Overview
The Channel Application connects your AI agents to external messaging platforms. Instead of users interacting through the Nadoo web interface, they communicate with your agent directly inside Slack, Discord, Telegram, KakaoTalk, Microsoft Teams, or WhatsApp. The Channel App handles platform-specific protocols, message formatting, and bidirectional communication — so your agent logic remains the same regardless of the delivery channel.Architecture
The channel system uses an adapter pattern with four key components that work together to process incoming messages and deliver responses.Message Flow
- Incoming webhook — A user sends a message on a messaging platform. The platform delivers a webhook payload to the Nadoo gateway.
- Adapter normalization — The channel adapter converts the platform-specific message format into a standard internal format.
- Session mapping — The session manager maps the platform user and channel to a Nadoo AI conversation session.
- Application processing — The message is routed to the configured Chat or Workflow application for processing.
- Response formatting — The application’s response is converted back into the platform’s native format (Slack blocks, Discord embeds, Telegram HTML, etc.).
- Delivery queue — The formatted response is queued for delivery with rate limiting, retry logic, and error handling.
Supported Channels
Slack
OAuth 2.0 authentication with event subscriptions, thread replies, and interactive components.
Discord
Bot token authentication with slash commands, rich embeds, and reaction handling.
Telegram
BotFather-based setup with automatic webhook registration and inline keyboards.
KakaoTalk
Skill-based integration for the Korean messaging platform with carousel cards and quick replies.
Microsoft Teams
Azure AD app registration with adaptive cards and messaging extensions.
Meta Business API with template messages, media support, and read receipts.
Creating a Channel App
Create the Application
From the workspace dashboard, click New Application and select Channel as the type.
Select the Channel Type
Choose the messaging platform you want to connect to (e.g., Slack, Telegram).
Provide Platform Credentials
Enter the required credentials for your chosen platform:
| Platform | Required Credentials |
|---|---|
| Slack | Bot Token, Signing Secret |
| Discord | Bot Token |
| Telegram | Bot Token (from BotFather) |
| KakaoTalk | API Key, Skill URL |
| Microsoft Teams | App ID, Client Secret, Tenant ID |
| Access Token, Phone Number ID |
Map to an Application
Select the Chat App or Workflow App that will process messages from this channel. The channel inherits all of the application’s capabilities — model configuration, knowledge bases, tools, and workflows.
Configure Webhook
Nadoo generates a unique webhook URL for your channel. Copy this URL and configure it in your messaging platform’s settings.
Channel Configuration
Each channel has platform-specific settings in addition to the standard application configuration.General Settings
| Setting | Description |
|---|---|
| Channel Type | The messaging platform (Slack, Discord, Telegram, etc.) |
| Application | The Chat or Workflow App that processes messages |
| Webhook URL | The auto-generated URL that receives incoming webhooks |
| Active | Toggle to enable or disable the channel |
Platform-Specific Settings
- Slack
- Discord
- Telegram
- KakaoTalk
- MS Teams
- WhatsApp
| Setting | Description |
|---|---|
| Bot Token | OAuth token starting with xoxb- |
| Signing Secret | Used to verify incoming webhook signatures |
| App ID | Your Slack app’s unique identifier |
| Respond in Thread | Whether to reply in threads or the main channel |
| Allowed Channels | Restrict the bot to specific channels (optional) |
Session Management
The channel system automatically manages conversation sessions across platforms.- Session mapping — Each unique combination of platform user and channel/group maps to a persistent Nadoo AI session
- Conversation continuity — Message history is maintained across interactions, enabling the agent to reference earlier context
- Session timeout — Sessions can be configured to reset after a period of inactivity
- Manual reset — Users can reset their session using a platform-specific command (e.g.,
/resetin Slack)
Resilience Features
The delivery queue ensures reliable message delivery with production-grade resilience:| Feature | Description |
|---|---|
| Rate Limiting | Per-channel rate limiters that respect each platform’s API quotas |
| Circuit Breaker | Stops sending to a failing platform after an error threshold, with automatic recovery |
| Retry Logic | Exponential backoff with jitter for transient failures (default: 3 retries) |
| Dead Letter Queue | Messages that fail after all retries are stored for inspection and replay |
Monitoring
The Channel App dashboard provides visibility into message flow and delivery:- Message volume — Incoming and outgoing message counts per channel
- Response time — Average time from message receipt to response delivery
- Delivery status — Success, retry, and failure counts
- Active sessions — Number of active conversation sessions per channel
- Error log — Detailed error messages for failed deliveries