Skip to main content

Overview

The Slack integration lets you deploy Nadoo AI agents directly into your Slack workspace. Users interact with the agent through direct messages, channel mentions, and slash commands. The integration supports threaded conversations, interactive buttons, file uploads, and rich message formatting.

Setup

Follow these steps to connect your Nadoo AI agent to Slack.
1

Create a Slack App

  1. Go to the Slack API portal and click Create New App.
  2. Select From scratch and give your app a name (e.g., “Nadoo AI Agent”).
  3. Choose the Slack workspace where you want to install the app.
  4. Click Create App.
2

Configure OAuth Scopes

Navigate to OAuth & Permissions in the left sidebar and add the following Bot Token Scopes:
ScopePurpose
chat:writeSend messages as the bot
channels:historyRead messages in public channels
groups:historyRead messages in private channels
im:historyRead direct messages
mpim:historyRead group direct messages
users:readLook up user display names
files:readAccess files shared in conversations
commandsRegister slash commands
Click Install to Workspace and authorize the app. Copy the Bot User OAuth Token (starts with xoxb-).
3

Set Event Subscriptions

Navigate to Event Subscriptions and toggle Enable Events to on.Set the Request URL to your Nadoo AI webhook endpoint:
https://your-instance.example.com/api/v1/webhooks/handle/slack
Slack will send a verification challenge to this URL. Nadoo AI handles the challenge automatically.Under Subscribe to bot events, add:
EventDescription
message.channelsMessages posted in public channels
message.groupsMessages posted in private channels
message.imDirect messages to the bot
message.mpimMessages in group DMs with the bot
app_mentionWhen the bot is @mentioned
Click Save Changes.
4

Configure Slash Commands (Optional)

Navigate to Slash Commands and click Create New Command.
FieldExample Value
Command/ask
Request URLhttps://your-instance.example.com/api/v1/webhooks/handle/slack
Short DescriptionAsk the AI agent a question
Usage Hint[your question]
Click Save.
5

Configure in Nadoo AI

In the Nadoo AI platform:
  1. Navigate to your workspace and open Channels.
  2. Click Add Channel and select Slack.
  3. Enter the following credentials:
FieldValue
Bot TokenThe xoxb- token from Step 2
Signing SecretFound under Basic Information > App Credentials
WorkflowSelect the workflow to handle Slack messages
  1. Click Save and toggle the channel to Active.
6

Test the Integration

Open Slack, find your bot in the Direct Messages sidebar, and send a test message. The bot should respond using the configured workflow.You can also @mention the bot in a channel: @Nadoo AI Agent what is our refund policy?

Webhook URL Configuration

The Slack integration uses a single webhook endpoint for all events:
POST /api/v1/webhooks/handle/slack
This endpoint handles:
  • URL verification challenges — Slack sends a challenge parameter during setup that must be echoed back
  • Event callbacks — Message events, app mentions, and interactive component payloads
  • Slash commands — Payloads from registered slash commands
  • Interactive messages — Button clicks, menu selections, and modal submissions

Signature Verification

Every incoming request from Slack is verified using the Signing Secret. Nadoo AI computes an HMAC-SHA256 signature of the request body using the signing secret and compares it to the X-Slack-Signature header. Requests with invalid signatures are rejected with a 401 status.

Supported Features

Messages and Threads

FeatureDescription
Direct messagesUsers send messages directly to the bot for private conversations
Channel messagesThe bot responds when @mentioned in a channel
Thread repliesThe bot replies in the same thread to keep conversations organized
Conversation contextPrevious messages in the thread are included as conversation history

Interactive Components

FeatureDescription
ButtonsThe agent can send messages with clickable buttons for user choices
MenusDropdown menus for selecting from a list of options
ModalsPop-up dialogs for collecting structured input from users

Slash Commands

Register custom slash commands that trigger your workflow with a specific intent:
  • /ask [question] — Ask the agent a question
  • /summarize — Summarize the current channel conversation
  • /search [query] — Search the knowledge base

File Handling

FeatureDescription
File uploadsUsers can attach files to their messages. The agent can process uploaded documents.
File downloadsThe agent can share files (reports, exports) back to the user

Rate Limits and Best Practices

Slack API Rate Limits

Slack enforces rate limits on API calls. Nadoo AI’s delivery queue respects these limits automatically.
API MethodRate Limit
chat.postMessage1 message per second per channel
conversations.history50 requests per minute
files.upload20 requests per minute

Best Practices

Configure the bot to always reply in threads when responding in channels. This keeps the channel clean and groups related messages together. Thread context is automatically included in the conversation history.
For longer processing times, the bot sends a typing indicator so users know a response is coming. This is handled automatically by the Slack adapter.
Slack messages have a 40,000-character limit. For longer responses, the adapter automatically splits them into multiple messages. Consider configuring your workflow to produce concise responses.
Slack supports Block Kit for rich message formatting. The adapter converts Markdown from your workflow responses into Slack-compatible formatting, including bold, italic, code blocks, and lists.
Instead of adding the bot to all channels, invite it only to specific channels where it is needed. This reduces noise and gives you control over where the agent operates.

Troubleshooting

IssueSolution
Bot does not respondVerify the webhook URL is correct and the channel is set to Active in Nadoo AI
”dispatch_failed” in Slack logsCheck that event subscriptions are configured and the Nadoo AI backend is reachable
401 errors on webhookVerify the Signing Secret matches between Slack and Nadoo AI
Duplicate responsesEnsure only one event type is subscribed for each message source (e.g., do not subscribe to both message.channels and app_mention if you want only @mention responses)

Next Steps