Slack Integration
Give your agents the ability to post into Slack — alerting a team channel when a VIP hangs up, opening an incident thread when a call hits the escalation rules, or DM’ing the on-call engineer with a structured summary. Perfect for voice-to-humans handoff: end a call, then route the context to the right internal team without anyone watching a queue.Connecting Slack
Connection goes through Slack’s verified OAuth flow — you do not need to register your own Slack app, paste a bot token, or manage signing secrets. thinnestAI brokers the OAuth through Composio.Step 1: Connect via OAuth
- Navigate to Agents and select your agent.
- Open the Tools section and click Add Tool.
- Select Slack.
- Click Connect Slack.
- A Slack sign-in popup opens. Authenticate with the workspace you want the agent to post into, review the requested scopes, and click Allow.
Workspace-scoped. Each Slack connection is bound to one workspace. To post into multiple workspaces, add the Slack tool to the agent once per workspace — each connection is stored separately.
Step 2: Choose Allowed Actions
Four capability toggles control which action groups the agent can invoke:| Toggle | Default | What it unlocks |
|---|---|---|
| Send Messages | ✅ On | Post to channels, DMs, and threads |
| Channel Management | Off | Create channels, invite/remove users, archive |
| User Directory | ✅ On | Look up users by email or name, fetch profile |
| Files & Reactions | Off | Upload files, add emoji reactions |
Available Actions
Messaging (4)
| Action | Description |
|---|---|
| Send Message | Post a message to a channel or DM |
| Send Threaded Reply | Reply inside an existing thread (by thread_ts) |
| Update Message | Edit a previously-sent message |
| Delete Message | Remove a message the agent sent |
Channels (3) — opt-in
| Action | Description |
|---|---|
| Create Channel | Create a new public or private channel |
| Invite User to Channel | Add a user to a channel by user ID or email |
| Archive Channel | Archive a channel (soft-delete) |
Users (3)
| Action | Description |
|---|---|
| Find User by Email | Look up a workspace user by email address |
| List Users | Paginate the workspace directory |
| Get User Info | Fetch profile, timezone, and status for a user ID |
Files & Reactions (3) — opt-in
| Action | Description |
|---|---|
| Upload File | Attach a file (PDF, image, transcript) to a message |
| Add Reaction | React to a message with an emoji |
| Remove Reaction | Remove a previously-added reaction |
Voice-AI Use Cases
Slack pairs naturally with the voice tools for internal handoffs — context flows from the caller into the team’s existing incident or CRM channels without anyone polling a queue.VIP Escalation Alert
Incident Routing
Sales Handoff
Example: Incident-Handoff Agent
Build a voice agent that takes emergency calls and routes context to Slack automatically.Agent Setup
| Field | Value |
|---|---|
| Name | Emergency Intake |
| Model | GPT-4o |
| Tools | Slack, Google Sheets |
Agent Instructions
Combining with Other Tools
| Combination | Use Case |
|---|---|
| Slack + Voice | Post-call escalation, VIP alerts, incident routing |
| Slack + Google Sheets | Log every Slack handoff for weekly review |
| Slack + Gmail | Follow a Slack DM with an email summary for audit trail |
| Slack + CRM Webhooks | Notify a channel whenever a deal stage changes mid-call |
| Slack + WhatsApp | Dual-channel: Slack for internal team, WhatsApp for the caller |
Security & Privacy
- OAuth tokens are encrypted at rest. thinnestAI never sees your Slack password.
- Per-user scoping — Each user’s workspace connection is isolated. An agent owned by User A cannot post into User B’s workspace.
- Revoke access — Disconnect from the config modal, or revoke directly from Slack → Settings & administration → Manage apps.
- Scopes requested —
chat:write,users:read,users:read.email, optionallychannels:manage,files:write, andreactions:writedepending on toggles. - No audit bypass — every agent-posted message appears in Slack’s audit log with the connected user as the author.
Troubleshooting
| Issue | Solution |
|---|---|
| ”Channel not found” | The bot must be invited to private channels. Public channels work by default once authorized. |
| ”Missing scope: channels:manage” | You toggled on Channel Management after the initial connect — reconnect to refresh scopes. |
| Messages arrive with a generic bot name | Slack displays the connected user’s name on agent-sent messages. Customize via Slack workspace settings → App icon. |
| ”not_in_channel” error | Agent tried to post in a channel it isn’t a member of. Use Invite User to Channel first, or post from a channel the user is already in. |
| DMs fail to unknown users | Find User by Email returns null if the email isn’t tied to a workspace account. Check the user’s Slack primary email matches what the agent is searching for. |
Next Steps
- Voice — Pair Slack with inbound calls for instant handoff.
- Google Sheets — Log every Slack handoff into a shared tracker.
- WhatsApp — Customer-facing follow-up to pair with internal Slack routing.

