Put your agent in Slack
You add your own Slack app as a Slack connector; each workspace install names the runtime that replies. Operator’s organization Slack integration is separate and not needed.
You need: a deployed runtime with a version in the connector’s environment (Deploy) and a Slack account that can create apps.
1. Add Slack to your recipe
pnpm add @introspection-ai/recipe-channel-slack{ "pi": { "channels": [{ "provider": "slack" }] } }Add channels to the agent’s tools. It offers reply, send, list,
read, react, edit, retract, and fetch_file; limit them with
"commands": ["read", "reply"].
2. Create the Slack app
At api.slack.com/apps , choose Create New App → From scratch, one per connector environment.
| Slack page | Set |
|---|---|
| OAuth & Permissions → Redirect URLs | https://api.introspection.dev/v1/oauth/connections/callback |
| OAuth & Permissions → Bot Token Scopes | chat:write, app_mentions:read, channels:history, channels:read, groups:history, groups:read, im:history, im:read, im:write, mpim:history, mpim:read, channels:join, reactions:write, users:read, files:read |
| App Home | Turn on the Messages Tab. |
| Manage Distribution | Activate public distribution if another workspace installs it. |
| Basic Information | Copy the Client ID, Client Secret, and Signing Secret. |
3. Add the Slack connector
- In Settings → Connectors → New connector → Slack, pick the Environment and paste the three values.
- Copy the Webhook URL from the connector’s page. It is
https://api.introspection.dev/v1/webhooks/slack/<connector-id>; the ID is inintrospection connectors get <connector-slug> --query id -o table. - In the Slack app’s Event Subscriptions, paste it as the Request URL
and subscribe to the bot events
app_mention,message.channels,message.groups,message.im,message.mpim,app_uninstalled, andtokens_revoked.
4. Install it
introspection connectors authorize <connector-slug> --runtime support-agentApprove it in Slack. For a customer’s workspace, send them the link from
connectors authorize-url with the same arguments. A workspace runs the agent named agent.
5. Talk to it
Invite the app (/invite @your-app) and mention it; replies in the thread need
no mention. Memory belongs to the channel or DM; a thread quiet for over 14 days
starts a fresh task.
Verify
introspection connectors connections list --connector <connector-slug> -o table
introspection tasks list --limit 5 -o tableExpect one connection per workspace and a new task after a mention.
Or ask your agent: “Put my support-agent runtime in Slack.”
Know who wrote each message
Each Slack turn ends with <channel_context>, whose from is the sender’s
Slack user ID; the agent mentions them with <@U012ABC>. It is attribution,
not authorization: tools still act as the channel
(approve in Slack).
It also carries workspace_id, channel_id, message_id, and sent_at.
Post digests and reminders
- Mention the bot once in the target channel; that thread is the standing task.
- Get its task ID: the agent has it in
INTROSPECTION_TASK_ID. - An owner or admin creates an automation with that task as the target (Run on a schedule).
Tasks started elsewhere can’t post to Slack.
Limits
| Not supported | Do this instead |
|---|---|
| Uploading files | Upload to your storage through a tool and reply with the link. |
| Interrupts (approval buttons) | Ask in the thread with reply. |
| Emoji reactions as feedback | Reactions aren’t delivered; ask the user to reply in the thread. |