Connect Slack to your organization
Connect a Slack workspace to ORQO so Chief of Staff can receive and answer your messages, and agents can deliver workflow output to Slack channels and DMs.
| Category | Communication |
| Capabilities | Send + Receive |
| Auth | Bot token + signing secret |
You'll switch back and forth between two browser tabs: api.slack.com (your Slack app) and ORQO Settings. The whole setup takes about 10 minutes.
Prerequisites
- A Slack workspace where you can install apps
- Access to your organization's Settings area in ORQO
1. Create a Slack app
- Go to api.slack.com/apps → Create New App → From scratch.
- Name it (e.g. "ORQO") and pick your workspace.
- On Basic Information, scroll to App Credentials and copy the Signing Secret — you'll need it shortly.
2. Add bot scopes and install to the workspace
- Open OAuth & Permissions in the left sidebar.
- Under Scopes → Bot Token Scopes, add:
chat:write— send messagesim:history— read direct messages sent to the botim:write— open and reply in DMsusers:read— resolve who sent a messagechannels:read— list public channels (optional, for channel delivery)
- Scroll up and click Install to Workspace, then Allow.
- Copy the Bot User OAuth Token (
xoxb-…).
You now have the two secrets ORQO needs: the bot token (xoxb-…) and the signing secret.
3. Install Slack in ORQO
- In ORQO, go to Settings → Integrations.
- Find the Slack tile and click Install.
ORQO creates the Slack integration for your org and adds two empty credentials — SLACK_BOT_TOKEN and SLACK_SIGNING_SECRET — already linked to it.
4. Fill in the credentials
- Go to Settings → Credentials.
- Edit SLACK_BOT_TOKEN and paste your
xoxb-…bot token. - Edit SLACK_SIGNING_SECRET and paste the signing secret from step 1.
These are already linked to the Slack app, so you don't need to attach them manually.
5. Copy your webhook URL
- Back in Settings → Integrations, click the Slack card to open it.
- Find the Webhook URL field and copy the whole thing. It looks like:
https://orqo.ooopps.com/api/v1/webhooks/aB3xK7q...Zp9w2R
That long string at the end is a unique, per-organization token — not an app name or ID. Copy the entire URL straight from this field; don't retype or shorten it.
6. Point Slack at your webhook URL
Back in your Slack app at api.slack.com:
- Open Event Subscriptions in the left sidebar and toggle Enable Events on.
- Paste your ORQO webhook URL into the Request URL field.
The webhook URL goes in Event Subscriptions → Request URL. Do not paste it into OAuth & Permissions → Redirect URLs — that field is for something else, never verifies, and your messages will silently go nowhere.
- Slack immediately sends a verification challenge to the URL. ORQO answers it automatically, so the field should flip to Verified ✓ within a second. If it shows a red error instead, re-check that you copied the full URL into the right field.
- Scroll to Subscribe to bot events and add:
message.im— direct messages to the botapp_mention— when someone @mentions the bot in a channel
- Click Save Changes. If Slack prompts you to reinstall the app (scopes changed), do it.
7. Register yourself as a contact
Chief of Staff only talks to known contacts — this keeps your organization's private AI from answering strangers. Add yourself (and anyone else who should use it):
- In ORQO, go to Settings → Contacts and create a contact.
- Add a channel: choose Slack as the app, and set the address to your Slack user ID.
- Set priority to Primary and save.
In Slack, click your profile picture → Profile → the ⋮ (More) menu → Copy member ID. It starts with U (e.g. U01ABCDEF).
Messages from anyone not registered as a contact are silently ignored. If the bot stays quiet, this is the first thing to check.
8. Test it
Send a direct message to your Slack bot from a registered contact. Chief of Staff should reply within a few seconds.
If nothing comes back, see Troubleshooting below.
Routing
Inbound Slack messages are routed to Chief of Staff by default — that's what you want for a conversational assistant. You'll see an Inbound Routing option on the Slack card; leave it on Chief of Staff unless you specifically want Slack events to fire workflow triggers or a public chatbot instead.
Available tools
Once connected, agents can use these Slack tools in workflows:
| Tool | Description |
|---|---|
send_slack_message | Send a message to a Slack channel or DM |
list_slack_channels | List channels the bot can access |
Platform notes
- Threads & DMs — replies in a Slack thread stay threaded; DM conversations persist across messages.
- Signature verification — every inbound event is verified via the
X-Slack-Signatureheader (HMAC-SHA256) using your signing secret, so a wrong or missing secret will block messages. - Session reset — send
reset,new session,clear session, orstart overin the DM to clear the conversation and start fresh.
Troubleshooting
| Symptom | Likely cause |
|---|---|
| Request URL won't verify in Slack | URL pasted into the wrong field (must be Event Subscriptions → Request URL), or not copied in full. |
| Verified, but the bot never replies to a DM | You're not registered as a contact (step 7), or the message.im event / im:history scope is missing. |
| "Signature verification failed" | The SLACK_SIGNING_SECRET in ORQO doesn't match this Slack app's signing secret. |
| Bot replies in the WebUI but not Slack | The webhook URL points at a different organization's token — confirm you copied it from this org's Slack card. |
Sending Files (Outbound)
Chief of Staff can send files through Slack — documents and artifacts from a project's library, or files shared earlier in the conversation. Slack accepts virtually any file type (PDF, Office documents, images, video, audio, text, code, and archives), with a size limit of roughly 1 GB per file.
What's next
- Chief of Staff AI — what your Slack assistant can actually do
- Apps & Channels — the architecture behind this
- Webhooks — routing inbound events to workflows instead