Connect Slack
Say you want to mention the platform's Slack app in a channel and have an Agent handle the conversation. This guide connects the workspace to Slack once, then wires a Workflow to a specific team and channel so a mention actually starts a run — with an agent step carrying the thread's continuity.
Before you start
- Owner or admin role in the workspace — connecting and disconnecting Slack is restricted to those roles.
- A published Agent for the pipeline's agent step to delegate to — see Agents.
- Familiarity with how a Workflow's trigger and steps fit together — see Workflows.
Steps
- Go to Settings → Integrations.
- Click Connect Slack. This is a full navigation to Slack's own consent page — not a popup — so the browser leaves the app briefly and comes back once you approve.
- Approve the install on Slack's page. You land back on the Integrations panel with the team listed as connected. The platform stores only an encrypted bot token; your Slack password never touches it.
- Create a Workflow (or open an existing one) and expand its Trigger card.
- Pick Slack. The routing rules appear: optionally set a channel id to restrict the trigger to one channel — leave it blank and any channel the app is in can trigger it.
- Decide Only @mentions of the app — on by default, meaning only an explicit @-mention starts a run in a fresh thread. Replies in a thread the Workflow is already conversing in dispatch regardless of this setting, since a reply is part of a conversation already underway.
- Decide Include direct messages — off by default; turn it on if DMs to the app should also trigger runs.
- In the binding card below, pick the connected team and click Bind. The rules above are draft state until you do; change them afterwards and the card asks you to Update binding before they apply to live events.
- Build the pipeline — for a conversational bot, a single Agent step: pick the published Agent, write its instructions referencing the incoming message with
@trigger.text(sender and channel are there too, as@trigger.userand@trigger.channel), and set its session mode to thread. That's what makes consecutive messages in one Slack thread continue one ongoing session, so the Agent remembers the conversation. Then click Publish. - In Slack, invite the app to the channel you want it watching:
/invite @YourBot. The app cannot see messages in a channel it hasn't been invited to, published Workflow or not — this step is easy to forget because nothing in the platform's UI prompts for it.
What you should see
Mention the app in a channel it's been invited to, for example @YourBot summarize this thread. Each message starts its own pipeline run — visible in the Workflow's Runs tab, with the agent step's full transcript embedded in the run's timeline — while the thread session mode keeps them one conversation from the Agent's point of view.
A reply posts back into the thread only when the Workflow declares one: an onComplete.slackReply template in its configuration, rendered against the run's final scope when the run succeeds and posted with the connected team's bot token. A Workflow that declares no reply posts nothing — the run still happened, its record is the Runs tab.
Operational notes
- Incoming Slack requests are signature-verified within a replay window before anything is dispatched.
- The workspace and Workflow are resolved from the Slack team id together with the trigger's binding — a team can be connected to only one workspace at a time.
- A DM conversation keys its continuity on the DM channel itself rather than a thread, so a 1:1 exchange stays one ongoing session too.
- A message arriving while the previous run of the same Workflow is still live is skipped for overlap, not queued — see Workflows.
- Declared-reply delivery is at-least-once: a rare crash between posting the reply and recording it can cause a duplicate. That's expected behavior, not a bug.
- A failed or canceled run posts nothing to Slack at all — there's no partial reply to send.
Disconnecting
Settings → Integrations → Disconnect, behind a confirmation. Disconnecting stops Workflows bound to that team from receiving Slack events — said plainly, that's the consequence, not something recoverable without reconnecting and rebinding.
If it doesn't work
- The bot doesn't respond to a mention — check it's actually invited to the channel, check whether
mentionOnlyor a channel-id restriction on the binding is excluding it, and confirm the Workflow is published (a draft binding doesn't fire). - Runs start but nothing posts back — the Workflow declares no
onComplete.slackReply, which is the default: no declared reply, no post. Read the runs in the Runs tab. - DMs don't trigger anything —
includeDirectMessagesdefaults to off; turn it on for that binding if you want DMs to start runs. - A reply arrives twice — expected at-least-once delivery behavior after a rare crash mid-delivery, not a bug to chase.
See Settings for the rest of what lives under workspace settings, Triggers for how the other trigger kinds compare, and troubleshooting for anything not covered above.