Slack integration

Slack AI agents: a bot user your whole workspace can DM or mention

Slack is a channel of the app, not just a tool it can call. Slack (in) turns a DM or a mention into a conversation turn, the same graph that serves your website answers it, and Slack (out) posts the answer back into the thread as Slack formatting. The bot is your own Slack app, so it carries your name and icon; AgentRow verifies its token when you connect the workspace.

Tool type
Channel nodes
Auth type
your own Slack app: bot token + signing secret (Integrations → Slack workspaces)
Safety level
channel nodes; the agent's tools keep their own safety levels

What you can build

An internal assistant anyone in the company can DM: answers from knowledge bases and internal tools, with every turn traced.

A support bot in a shared channel: mention it in a thread, it answers there, and a hand-off moves the thread to your team's Inbox.

The same app on your website and in Slack, with one graph, one set of guardrails and one Inbox.

How to connect Slack

  1. 01On the Integrations page, copy the AgentRow manifest and create your Slack app from it: bot scopes, the app_mention and message.im events and the receiver URL are already filled in. Install it to the workspace.
  2. 02Paste the Bot User OAuth Token and the Signing Secret under Integrations → Slack workspaces. AgentRow checks the token against Slack and keeps the workspace on the integration; credentials never leave the API except per run.
  3. 03On the app's Workflow tab, put Slack (in) before Chat (in) and Slack (out) after Chat (out), pick the workspace on both (or create it right from the node), choose the triggers (DMs, mentions) and publish.
  4. 04Give Slack the receiver URL from the app's Credentials tab if you did not use the manifest. Slack's URL check is answered automatically.
  5. 05If the agent's tools act with an end-user access token, paste a personal access token as the workspace's tool access token (Settings → Access tokens) so those tools bind on Slack turns.

Example tool definition

The shape a tool takes in the AgentRow builder API. Credentials are stored on the tool's auth settings, not in its configuration, so they never reach a prompt. Placeholders in double braces are filled by the model from the input schema.

[
  {
    "id": "slack_in",
    "type": "slack_in",
    "config": { "integration_id": 8, "triggers": ["direct_message", "app_mention"] }
  },
  {
    "id": "slack_out",
    "type": "slack_out",
    "config": { "integration_id": 8, "reply_in_thread": true }
  }
]

What the run trace shows

Every turn shows its channel on the Chat (in) step (source, thread, caller), and every delivery is its own step after Chat (out) with the request, the channel's response, timing and a named error when it failed. Inbound events are listed on the app's Credentials tab with their outcome: accepted, duplicate or rejected, each with its reason.

Frequently asked questions

Does AgentRow run inside Slack as a bot?

Yes. Connect your workspace, add Slack (in) and Slack (out) to the app graph and publish. A DM is one ongoing conversation per person; a mention in a channel is answered in that message's thread.

Can the agent also post to Slack from a conversation on my website?

Yes, as a tool: an HTTP API tool for chat.postMessage with a scoped bot token, a safety level and optional approval. The channel nodes are for turns that start in Slack.

Can my team reply to a Slack thread from the Inbox?

Every Slack thread is a conversation, so it appears in the Inbox and a hand-off works over Slack. Delivering the team's replies back into Slack is on the roadmap.

Connect Slack to your first agent

Start a free trial and wire it up, or tell us which systems you need to connect and we will point you at the right tool definitions.