Slack

Everything you need to build a talent agent inside Slack

Full slack integration will only work when not in CLI mode. It is also recommended to run with the 'local' profile during development for simplification.

Building and maintaining a full Slack application be a pain. Fortunately, the SDK includes everything you need to get started building a Slack application that talks to your agents.

To get started, you're going to need some values from the Slack Apps dashboard. Go to https://api.slack.com/apps and click Create New App. Then click From a Manifest and choose your Slack workspace for development.

You can create your own manifest, or you can use the sample manifest thats included in the SDK (located in resources/slack_app_manifest.json) - included here for convenience:

{
  "display_information": {
    "name": "Sample - Talent AI",
    "description": "AI agents specializing in People & Culture!",
    "background_color": "#00acc2",
    "long_description": "Leading people means more than tracking projects. It’s about supporting growth, removing blockers, and keeping everyone aligned. TalentAgent makes it easy. \n\nTalentAgent is your behind-the-scenes AI People & Culture experts. \n\nIt transforms spreadsheets, feedback, and goals into clear insights and actionable tasks—so you can lead smarter and focus on what matters. \n\nNo dashboards. No extra tools. Just answers, insights, and action. "
  },
  "features": {
    "app_home": {
      "home_tab_enabled": true,
      "messages_tab_enabled": true,
      "messages_tab_read_only_enabled": false
    },
    "bot_user": {
      "display_name": "TalentAgent",
      "always_online": true
    },
    "slash_commands": [
      {
        "command": "/talent-welcome",
        "url": "https://sample.us-east.api.peoplelogic.dev/slack/events",
        "description": "See the installation welcome",
        "should_escape": false
      },
      {
        "command": "/talent-grant",
        "url": "https://sample.us-east.api.peoplelogic.dev/slack/events",
        "description": "Grants access to TalentAgent",
        "usage_hint": "[@user or #channel]",
        "should_escape": true
      },
      {
        "command": "/talent-revoke",
        "url": "https://sample.us-east.api.peoplelogic.dev/slack/events",
        "description": "Revokes access to TalentAgent",
        "usage_hint": "[@user or #channel]",
        "should_escape": true
      },
      {
        "command": "/talent-connect-workspace",
        "url": "https://sample.us-east.api.peoplelogic.dev/slack/events",
        "description": "Reconnects Slack & TalentAgent",
        "should_escape": false
      },
      {
        "command": "/talent-change-language",
        "url": "https://sample.us-east.api.peoplelogic.dev/slack/events",
        "description": "Changes TalentAgent's Locale",
        "should_escape": false
      }
    ]
  },
  "oauth_config": {
    "redirect_urls": [
      "https://sample.us-east.api.peoplelogic.dev/slack/oauth/redirect"
    ],
    "scopes": {
      "bot": [
        "app_mentions:read",
        "channels:history",
        "channels:read",
        "chat:write",
        "chat:write.customize",
        "commands",
        "files:read",
        "im:history",
        "im:read",
        "im:write",
        "mpim:write",
        "reactions:read",
        "reactions:write",
        "team:read",
        "users.profile:read",
        "users:read",
        "users:read.email"
      ]
    }
  },
  "settings": {
    "event_subscriptions": {
      "request_url": "https://sample.us-east.api.peoplelogic.dev/slack/events",
      "bot_events": [
        "app_home_opened",
        "app_mention",
        "app_uninstalled",
        "assistant_thread_context_changed",
        "assistant_thread_started",
        "message.im",
        "reaction_added"
      ]
    },
    "interactivity": {
      "is_enabled": true,
      "request_url": "https://sample.us-east.api.peoplelogic.dev/slack/interactions",
      "message_menu_options_url": "https://sample.us-east.api.peoplelogic.dev/api/v1/agents/common/slack/load-select-options"
    },
    "org_deploy_enabled": false,
    "socket_mode_enabled": false,
    "token_rotation_enabled": false
  }
}

Once you hit Save you'll be taken to a page that contains all your app credentials. You'll need these, we'll put them into your application.properties:

# Slack app setup
peoplelogic.agent.slack.clientId=${SLACK_CLIENT_ID:}
peoplelogic.agent.slack.clientSecret=${SLACK_CLIENT_SECRET:}
peoplelogic.agent.slack.signingSecret=${SLACK_SIGNING_SECRET:}
peoplelogic.agent.slack.name=slack-sample-agent

Now, just start up your agents and you can hit the installation url (for example: https://sample.us-east.api.peoplelogic.dev/slack/install) to install your new Slack application.

The application will walk you through basic setup right within Slack.

What can the provided Slack integration do?

  • Handle multiple threads of conversations

  • Handles interactions (@mention) in a channel

  • Seamlessly switches between agents within conversation

  • Cleanly handles long operations by keeping the user updated

  • Handles file uploads within the conversations

  • Slash commands to change locales (/talent-change-language)

  • Slash commands to add/remove users (/talent-grant or /talent-revoke)

Last updated

Was this helpful?