Skip to main content

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.

WhatsApp

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 Integration

Authentication: OAuth 2.0Setup steps:
  1. Create a Slack App at api.slack.com/apps
  2. Enable Event Subscriptions and set the Request URL to your Nadoo webhook endpoint
  3. Subscribe to message.channels, message.im, and app_mention events
  4. Add the required OAuth scopes: chat:write, channels:history, im:history, users:read
  5. Install the app to your workspace
  6. Copy the Bot Token and paste it into the Nadoo channel configuration
Supported features:
  • 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:
FeatureDescription
Rate LimitingPer-channel rate limiters that respect each platform’s API quotas (e.g., Slack: 1 msg/sec per channel)
Circuit BreakerAutomatically stops sending to a failing platform after a configurable error threshold, with periodic health checks to resume
Retry LogicExponential backoff with jitter for transient failures (default: 3 retries, base delay 1s)
Session MappingStateful conversation tracking that survives gateway restarts via Redis-backed session storage
Dead Letter QueueMessages that fail after all retries are stored for manual inspection and replay

Next Steps