conversation_updated event that triggers downstream nodes — typically a Communication Actor or LLM Actor to handle the AI side of the conversation.
Think of it as the “ears and mouth” of your conversational workflow: it handles the connection to the outside world, but delegates the thinking to actor nodes.
When to use
- Multi-channel support inbox — listen for incoming messages on Gmail, Slack, or a web widget and route them to an AI agent
- Proactive outreach — start a conversation with a specific contact via email or Slack
- Conversation routing — combine with Condition nodes to send different conversations to different actors
- Separating channel logic from AI logic — use one Channel Dispatcher with multiple actors for different conversation types
If you want channel + AI handling in a single node, use Ask a Person instead. Channel Dispatcher is for the modular pattern where you separate concerns.
How it works
The Channel Dispatcher operates in one of two modes:Responder mode (default)
The workflow waits for people to reach out. When someone sends a message, a new conversation is created automatically and aconversation_updated event fires.
Use this for: support inboxes, chatbots, any workflow where you respond to incoming messages.
Initiator mode
The workflow starts the conversation proactively. It creates a conversation with a specified contact and sends the first message. Use this for: outbound campaigns, proactive notifications, scheduled check-ins.Example: AI support chatbot
Build a support chatbot on your website using the web widget channel:Add a Channel Dispatcher
Drag a Channel Dispatcher onto the canvas. Select Widget as the channel and Responder as the execution mode.
Connect an LLM Actor
Add an LLM Actor downstream. Connect it to the Channel Dispatcher’s
conversation_updated handle. Configure the LLM with your support system prompt.Handle conversation end
Connect the LLM Actor’s
conversationEnded handle to a Send Message node to send a closing message, or to further workflow logic (e.g., create a ticket in your CRM).Example: Email outreach with routing
Send a proactive email and route replies based on intent:Example: Multi-channel with actor routing
Listen on Slack and route different conversation types to different actors:Supported channels
| Channel | ID | Initiator | Responder | Magic Window |
|---|---|---|---|---|
| Web Widget | widget | — | Yes | Yes |
| Gmail | gmail | Yes | Yes | — |
| Outlook | outlook | Yes | Yes | — |
| Slack | slack | Yes | Yes | — |
| Slack (OAuth) | slack-user-behalf | Yes | Yes | — |
| Slackbot (built-in) | slackbot-builtin | — | Yes | — |
| SMS (Twilio) | twilioSMS | Yes | Yes | — |
| WhatsApp Business | whatsapp-business | — | Yes | — |
| Microsoft Teams | teams | — | Yes | — |
Settings
The communication channel to use (e.g.,
gmail, slack, widget).How conversations start:
- responder — wait for incoming messages
- initiator — start conversations proactively
Channel-specific settings (e.g., recipient email for Gmail initiator mode, Slack channel ID, polling interval). Supports variable interpolation.
Enable Magic Window for visual content alongside the conversation (widget channel only).
Outputs
The Channel Dispatcher itself does not produce direct outputs. Instead, it emits events through Dispatcher Handle nodes:The unique ID of the conversation that triggered the event.
Array of new messages received since the last event, each with
role, content, and createdAt.Full event payload including conversation metadata and channel information.
Events emitted
| Event | When it fires |
|---|---|
start_conversation | A new conversation is created (initiator mode) |
conversation_updated | A new message arrives in an existing conversation |
Related nodes
Communication Actor
Handle conversations using the Skillset Engine.
LLM Actor
Handle conversations using an LLM with tool calling.
Ask a Person
All-in-one alternative that combines channel + AI.
Send Message
Send messages through an active conversation.
