Overview
Nadoo AI’s messaging channel system lets you deploy a single AI agent workflow to multiple messaging platforms simultaneously. A gateway service with an adapter pattern normalizes messages from different platforms into a common format, routes them through your workflow, and delivers the response back through the originating channel. Supported channels:Slack
OAuth-based integration with event subscriptions and interactive messages.
Discord
Bot token authentication with slash commands and rich embeds.
Telegram
BotFather setup with webhook delivery and inline keyboards.
KakaoTalk
Skill-based configuration for the Korean messaging platform.
Microsoft Teams
Azure AD app registration with adaptive cards and messaging extensions.
Meta Business API with template messages and media support.
Architecture
The channel system is composed of four key components that work together to process incoming messages and deliver responses.Channel Adapters
Each platform has a dedicated adapter that handles:- Inbound normalization — Convert platform-specific message formats (Slack blocks, Discord embeds, Telegram updates) into a standard internal format
- Outbound formatting — Convert the workflow’s response back into the platform’s native format with rich formatting
- Authentication — Manage platform-specific credentials (OAuth tokens, bot tokens, API keys)
- Event handling — Process platform events such as message reactions, button clicks, and slash commands
Webhook Manager
The webhook manager registers, validates, and routes incoming webhook payloads from each platform:- Automatic webhook URL generation for each channel
- Signature verification to ensure requests come from the genuine platform
- Payload parsing and routing to the correct channel adapter
Session Manager
Maps messaging platform conversations to Nadoo AI sessions:- Each unique user + channel combination maps to a persistent session
- Conversation history is maintained across messages within a session
- Sessions can be reset manually or after a configurable timeout
Delivery Queue
Handles outbound message delivery with resilience:- Rate limiting — Respects each platform’s message rate limits
- Circuit breaker — Stops sending to a platform that is returning errors, with automatic recovery
- Retry logic — Exponential backoff for transient failures
- Priority queue — Urgent messages (e.g., error notifications) are delivered first
Channel Setup
- Slack
- Discord
- Telegram
- KakaoTalk
- Microsoft Teams
- WhatsApp
Slack Integration
Authentication: OAuth 2.0Setup steps:- Create a Slack App at api.slack.com/apps
- Enable Event Subscriptions and set the Request URL to your Nadoo webhook endpoint
- Subscribe to
message.channels,message.im, andapp_mentionevents - Add the required OAuth scopes:
chat:write,channels:history,im:history,users:read - Install the app to your workspace
- Copy the Bot Token and paste it into the Nadoo channel configuration
- Direct messages and channel mentions
- Thread replies
- Interactive buttons and menus
- File uploads and downloads
- Slash commands
Resilience Features
The channel system is built with production-grade resilience patterns:| Feature | Description |
|---|---|
| Rate Limiting | Per-channel rate limiters that respect each platform’s API quotas (e.g., Slack: 1 msg/sec per channel) |
| Circuit Breaker | Automatically stops sending to a failing platform after a configurable error threshold, with periodic health checks to resume |
| Retry Logic | Exponential backoff with jitter for transient failures (default: 3 retries, base delay 1s) |
| Session Mapping | Stateful conversation tracking that survives gateway restarts via Redis-backed session storage |
| Dead Letter Queue | Messages that fail after all retries are stored for manual inspection and replay |