Open Flows
Sidebar → Flows → New flow.Give it a name (VIP WhatsApp routing) and an optional description.
Drop a Trigger
From the node palette on the left, drag Trigger onto the canvas.Click it to configure:
- Channel — WhatsApp
- Event — Message received
Add a Condition
Drag Condition onto the canvas and connect Trigger → Condition.Click to configure:
- Field —
contact.tags - Operator —
contains - Value —
vip
yes (matches) and no (doesn’t).Add a Handoff
Drag Handoff onto the canvas. Connect the condition’s yes output to it.Configure:
- Target type — Team
- Team — Senior support (or whoever handles VIPs)
- Reason — “VIP customer on WhatsApp” (shown to the assignee)
Let the AI handle the rest
Leave the no output unconnected. When the condition doesn’t match, the flow simply ends — and the AI agent on the channel continues normally.
Save and test
Hit Save. The flow is saved as a draft — it doesn’t run yet.Click Test run → simulate a WhatsApp message with a VIP tag. Watch the flow light up each node as it executes.See Publish and test for the full testing workflow.
Canvas basics
- Drag from a node’s handle to another node to connect.
- Click a node to open its config panel on the right.
- Right-click to delete, duplicate, or re-arrange.
- Space + drag (or scroll wheel) to pan.
- Cmd+Enter saves.
Auto-layout
Messy canvas? Click Auto-layout in the toolbar to let Keloa tidy the nodes based on their connections.Versions and rollback
Every Publish snapshots the flow. If the new version misbehaves, open the flow → Versions → roll back to any previous published version.Common flow patterns
- Welcome message — Trigger (conversation opened) → Message (“Hi, welcome to Acme!”)
- After-hours — Trigger (message received) → Condition (business hours?) → Message (“We’re back at 9”)
- Auto-tag by keyword — Trigger → Condition (message.body contains “refund”) → Action (tag: returns)
- CSAT — Trigger (conversation resolved) → Resolve (csat_enabled: true)