Slack
Everything you need to build a talent agent inside Slack
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
}
}
You'll probably want to replace the URLs with a local hostname or development hostname first!
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?