Route by Signal
Branches the conversation based on the name of the signal that triggered the current flow activation, enabling signal-driven conditional logic.
The Route by Signal node branches the conversation based on which signal is currently active – that is, which signal triggered the current flow or handler execution. Use it when the same flow handles multiple signal types and needs to behave differently for each.
Available in: Handlers, custom Conversational Flows, and Automations.
Configuration
The node generates one output port per configured signal branch, plus a default "Else" port for unhandled signals.
Adding Signal Branches
Add a branch for each signal you want to handle explicitly. Select the signal from the dropdown list.
Typical Patterns
Signal Flow – Multi-Signal Handler
A Signal flow might handle several different custom signals:
Flow Entrypoint → On Signal ──► Route by Signal
├── product-scanned ──► Go to Flow (ProductInfo)
├── qr-code-detected ──► Go to Flow (QRLookup)
├── checkout-started ──► Go to Flow (Checkout)
└── default ──► Go to Flow (Agent)Signal Value
When a signal carries a value (e.g., a product ID sent from the embedding website), that value is accessible as {{message.signalValue}} using the Insert field picker in downstream nodes.
Predefined Signals
The four predefined signals are:
conversation-startconversation-stopconversation-language-changeface-detected
These can be used as branch conditions in Route by Signal, though they are more commonly handled by their dedicated Handlers.