Agent Orchestrator
The Agent Orchestrator is an AI router. It reads an incoming message, picks one of the routes you define, and sends the workflow down that route's branch. It also extracts useful values from the message (names, dates, quantities, locations) so the next blocks can use them.
One block, many paths: Instead of writing long keyword conditions, describe each route in plain English. The AI reads your descriptions and decides where each message goes.
Key Features
- AI-Powered Routing: The model picks exactly one route based on your route descriptions
- One Branch per Route: Every route you add becomes its own outgoing connection on the canvas
- Default Branch: Messages that fit no route (greetings, unclear requests) go to the Default output
- Value Extraction: Values that are explicitly stated in the message are returned as key/value pairs (
params) - Bring Your Own Model: Optionally pick a provider, model, and your own credentials
Configuration
| Parameter | Type | Required | Description |
|---|---|---|---|
| Organization | Dropdown | No | AI provider: Gemini, OpenAI, Groq, or Anthropic |
| Model | Dropdown | No | The model to use, filtered by the chosen organization |
| Credentials | Dropdown | No | Your own API credentials for the chosen provider (optional, paid plans with Bring Your Own AI) |
| Input message | Text | Yes | The message to route, e.g. {{whatsAppTrigger.messageBody}} |
| Instructions (optional) | Text | No | Who this agent helps and any context it needs to route correctly |
| Routes | List | Yes (at least one) | Each route has a Name and a When to use this route description |
Routes
Each route has two fields:
| Field | Description |
|---|---|
| Name | Short label shown on the canvas, e.g. Sales |
| When to use this route | Plain-English description of the messages that belong here. The AI reads this to decide |
Every route appears as its own output on the block. Connect each output to the flow that should handle it. A Default output is always present for messages that match nothing.
Write clear, specific route descriptions. The AI only sees the route name and description — it cannot guess your intent from the name alone.
Setting up the block
- Add the Agent Orchestrator block after your trigger.
- Pick an Organization and a Model (and your own credentials if you use them).
- Set Input message to the incoming text, e.g.
{{whatsAppTrigger.messageBody}}. - Click Add Route for each path you need. Give each route a name and a description.
- Connect each route output (and the Default output) to the right downstream blocks.
Example: Customer message routing
A WhatsApp bot for a company receives all kinds of messages. Add three routes:
- Sales — "Questions about pricing, plans, demos, or buying the product."
- Support — "Problems, errors, bugs, or how-to questions from existing users."
- Billing — "Invoices, refunds, payment failures, or subscription changes."
A message like "My last invoice charged me twice" is routed to Billing, and params may contain the extracted detail (e.g. {"issue": "charged twice"}). A plain "Hi" goes to Default, where you can send a welcome message.
Output
Downstream blocks can reference the block's output:
| Field | Description |
|---|---|
routeName | Name of the chosen route (or Default) |
routeId | Id of the chosen route |
isFallback | true when no route matched and the Default branch was taken |
params | Key/value pairs extracted from the message (empty when nothing was stated) |
replyHint | One short sentence describing the detected intent |
inputMessage | The original message that was routed |