Cloudo AgentsCloudo Agents

Connect your agent to Slack

About 10 minutes. By the end, you'll have your agent answering in a Slack workspace — either as a teammate your colleagues @-mention, or as a DM-able assistant.

Before you start

  • An agent already deployed and showing active in the portal
  • A Slack workspace where you have permission to install apps. If your workspace requires admin approval for new apps, you'll need an admin to approve the install — most small workspaces don't require this.
  • About 10 minutes
The mental model

A Slack “app” is a bundle of permissions (called scopes) that you install into a specific workspace. You create the app in Slack's admin site, pick the scopes you want (read messages, send messages, etc.), install it into your workspace, and Slack hands you two secrets: a Bot Token (acts on the bot's behalf) and a Signing Secret (lets OpenClaw verify incoming events really came from Slack). You paste both into OpenClaw and the agent is live.

Step 1 — Create a Slack app

  1. Go to api.slack.com/apps. Sign in if you aren't already.
  2. Click Create New App, then From scratch.
  3. Give it a name — this is what shows up in Slack as the bot's display name. Using your agent's name is fine. Example: Acme Support.
  4. Pick the workspace you want to install into. Click Create App.

Step 2 — Add bot scopes

  1. You should now be on your app's settings page. In the left sidebar, click OAuth & Permissions.
  2. Scroll to ScopesBot Token Scopes. Click Add an OAuth Scope and add each of these:
    • app_mentions:read — receive @-mentions of the bot
    • chat:write — post messages as the bot
    • channels:history — read messages in public channels the bot is in
    • im:history — read direct messages sent to the bot
    • im:read — find direct message channels
    • im:write — start a direct message with a user
    • users:read — resolve user IDs to display names (so the agent can address people by name)
  3. If you want the bot to also work in private channels, add groups:history. If you want it in shared channels with external orgs, add conversations.connect:read. Skip these unless you need them — fewer scopes is better.

Step 3 — Subscribe to events

  1. In the left sidebar, click Event Subscriptions and toggle Enable Events to on.
  2. For Request URL, paste your agent's Slack event URL from OpenClaw — you'll get this in Step 5. Skip this field for now; come back to fill it in.
  3. Scroll to Subscribe to bot eventsAdd Bot User Event and add:
    • app_mention — bot gets notified when someone @-mentions it
    • message.im — bot receives direct messages
    • message.channels — bot sees messages in public channels it's in (skip if you only want @-mention behavior)
  4. Click Save Changes at the bottom.

Step 4 — Install the app into your workspace

  1. Back in OAuth & Permissions, scroll to the top and click Install to Workspace.
  2. Slack shows the requested scopes. Review them, then click Allow.
  3. You land back on the OAuth & Permissions page. Copy the Bot User OAuth Token — it starts with xoxb-:
    xoxb-1234567890123-1234567890123-abcdefGHIJKLmnopQRSTuvwx
  4. Now click Basic Information in the left sidebar. Scroll to App Credentials and copy the Signing Secret (click Show first). It looks like a long hex string.
Both values are secrets

The bot token lets anyone post and read as your bot in this workspace. The signing secret lets anyone forge events that look like they came from Slack. Don't paste either into public channels, screenshots, gists, or git commits. If a token leaks, click Revoke Token on the OAuth page and reinstall; if the signing secret leaks, regenerate it in Basic Information.

Step 5 — Paste both into OpenClaw

  1. From the Cloudo portal, click Open my OpenClaw on the agent you want to connect.
  2. Open the Channels tab.
  3. Click Slack, then Connect.
  4. Paste the Bot Token (Step 4) and the Signing Secret (Step 4) into the matching fields.
  5. Click Save. OpenClaw shows you the Request URL the Slack app needs:
    https://<your-agent>.cloudoagents.com/slack/events
  6. Copy that URL.

Step 6 — Finish wiring the Slack app to OpenClaw

  1. Back in your Slack app's settings, return to Event Subscriptions.
  2. Paste the Request URL from Step 5 into the Request URL field.
  3. Slack immediately pings the URL with a verification challenge. Within a second or two it should say Verified ✓ in green. If it shows red, jump to Troubleshooting.
  4. Click Save Changes.
  5. Slack may prompt you to reinstall the app to pick up the new event URL — click Reinstall and approve.

Step 7 — Invite the bot and say hello

  1. In Slack, open the channel you want the bot in. Type /invite @Acme Support (substituting your bot's name) and hit enter. Slack adds the bot to the channel.
  2. @-mention the bot:
    @Acme Support hi, what can you do?
  3. The agent should reply within a few seconds, in its configured voice.
  4. Or open a direct message with the bot from the Slack sidebar and just message it — no @-mention needed in a DM.

Optional polish

Slash commands

OpenClaw can register Slack slash commands like /ask, /reset, /contact-human. Configure them in OpenClaw's Slack channel config; OpenClaw walks you through adding the matching command in your Slack app's Slash Commands page (one entry per command, pointing at the same Request URL pattern).

Channel scoping

By default the bot responds anywhere it's been invited. If you want it only in specific channels, just don't invite it to the others. To restrict more tightly, use OpenClaw's Slack channel allowlist setting.

App icon + description

Back in your Slack app's Basic Information page, scroll to Display Information: upload a square icon (your logo works), set a short description, pick a background color. This is what teammates see when they hover the bot's name or open its profile.

Distribute to other workspaces

If you want the same agent installable into other workspaces (e.g. you're selling a Slack-based product to your own customers), enable Public Distribution on the Manage Distribution page. Each workspace install creates a separate bot token; OpenClaw stores them per-workspace.

Troubleshooting

Request URL verification fails (red “Your URL didn't respond”)

Check, in order:

  1. Your agent's subdomain — shown next to Open my OpenClaw in the portal — loads in a browser. If not, the agent isn't reachable and Slack can't reach it either.
  2. The URL ends in exactly /slack/events (no trailing slash, no typo).
  3. You pasted the Signing Secret into OpenClaw (Step 5), not the App ID or Client Secret. Slack's challenge is signed, so a missing signing secret causes the verification to fail silently.

“not_in_channel” or bot replies in DM but not in a channel

The bot has to be invited to each channel it speaks in. In the channel, type /invite @YourBot. Slack does not auto-add bots to channels even if they havechannels:history.

“missing_scope” error in OpenClaw's logs

Add the missing scope on the Slack app's OAuth & Permissions page, then reinstall the app (the page prompts you). The bot token issued before the scope change won't work for the new scope until you reinstall.

Bot is in the channel but doesn't respond when @-mentioned

Check, in order:

  1. You added the app_mention bot event in Event Subscriptions (Step 3) and saved.
  2. You reinstalled the app after adding the event (Slack prompts; it's easy to skip).
  3. Your credit balance is above zero — the connection stays live, but the agent won't reply if credit has run out.
  4. OpenClaw's Channels tab shows the connection as connected (not error).

I want to uninstall the bot from a workspace

In Slack: Workspace settingsManage apps → find your app → Remove app. The app stays registered in api.slack.com (you can reinstall), but the bot is gone from the workspace and the token is invalidated.

I want to delete the app entirely

api.slack.com/apps → your app → Basic Information Delete App at the bottom. This permanently invalidates the token and signing secret.


Done. Your agent is now answering on Slack with the same SOUL and skills as on every other channel. One agent, every channel.

Next up: connect Discord or Telegram if you haven't already, or head back to the docs index.

Connect Slack — Cloudo docs