Conversation flows
Build multi-step automations on a visual canvas with branches, delays, and HTTP calls.
Open Autoreply → Flow.
What this page is for
A flow is a visual conversation tree: send messages, wait for replies, branch on conditions, call external APIs, store variables, and add delays. Flows run without an agent online — ideal for onboarding wizards, support routing, and guided ordering.
Each device handles inbound messages in one mode. For flows to run, set On incoming message to Flow on the device under Channel → WhatsApp → Devices or Channel → Telegram → Devices.
Each device can be linked to only one flow at a time — not multiple flows on the same line or bot. One flow may still link to many devices. The device picker hides lines and bots that are already linked to another flow; to move a device, open that other flow, remove the device, then link it here.

Sample data shown.
Flow list
| Column / control | What it does |
|---|---|
| New flow | Opens a blank canvas editor. |
| Search flows… | Filters by name (minimum 3 characters). |
| Name | Flow title. |
| Nodes | Number of steps on the canvas. |
| Channels | Click N linked to see WhatsApp lines or Telegram bots attached to this flow. |
| Actions | Edit flow (opens the editor page) or Delete flow. |
Create a flow
- Click New flow.
- Open Settings (left panel) — enter a Name, set Session duration, and link WhatsApp or Telegram devices.
- Click + (bottom-right of the canvas) to open the node palette — add Start is already on the canvas for new flows.
- Add nodes (Text, Response, Condition, etc.) and connect output dot → input dot.
- Click each node to edit its content (message text, HTTP URL, condition branches, and so on).
- Click Run to simulate the path with a test message before going live.
- Click Save (or Create).
Flow editor
The editor opens on its own page when you create or edit a flow. By default the Settings panel is hidden so the canvas uses the full width — click Settings in the header to open name, session, and device options.

Sample data shown.
Header
| Control | What it does |
|---|---|
| Settings / Hide settings | Show or hide the left panel (name, session, devices). |
| Back | Return to the flow list. |
| Save / Create | Persist the flow to your account. |
Settings panel
Click Settings to open the left panel.

Sample data shown.
| Field | What it does |
|---|---|
| Name | Flow title — shown in the list. |
| Session — Duration / Unit | How long conversation context lasts (for example 1 day). Used for runtime and reporting. |
| Device picker | Link one or more WhatsApp or Telegram devices. Same pattern as Autoreply — search, pick rows, or use All / All filtered. Each device can belong to one flow only; devices already on another flow are not shown until you unlink them there. |
Canvas toolbar
| Control | What it does |
|---|---|
| − / + | Zoom out and in. |
| Fit | Frame all nodes in view. |
| Tidy | Auto-arrange nodes on the grid. |
Canvas interactions:
- Pan — drag the dotted background.
- Zoom — Ctrl/Cmd + scroll.
- Connect — drag from an output dot (right of a node) to an input dot (left of another node).
- Edit node — click the pen icon on hover, or click the node card.
- Delete connection — hover an edge and click the × button.
Every flow needs a Start node — execution begins there when a message arrives.
Add node palette
Click + (next to Run) to open the palette.

Sample data shown.
| Group | Nodes |
|---|---|
| Message | Text, Media |
| Response | Response — pause until the user replies |
| Logic | Condition, Store, Delay |
| Action | HTTP — call an external URL |
Legacy API and Webhook nodes may appear on older flows — use HTTP for new work.
Edit a node (example: Text)
Click a node’s pen icon to open its editor.

Sample data shown.
Type / in text fields to insert flow variables such as {{message}}, {{sender}}, or values from Store nodes. Server tokens like [[date-dd-mm-yyyy]] come from Resources → Variables.
| Node | Main settings |
|---|---|
| Text | Message body. |
| Media | File URL and optional Caption. |
| Response | No extra fields — waits for the next inbound message (available as {{message}} downstream). |
| Condition | If / Else if branches on fields (message, sender, Store variables, etc.) with operators like =, contains, startswith. Connect each branch output separately; use Else when nothing matched. |
| Store | Save part of the conversation into a named variable for later nodes. |
| Delay | Wait N seconds before continuing. |
| HTTP | Method, URL, headers, body — branches on Success or Failed. Use Test inside the node to verify the request. |
Click Done to close the node editor.
Try a flow (Run)
Click Run on the canvas to simulate the conversation without sending real messages.

Sample data shown.
- Type a first user message and click Run.
- Follow the log as each node executes.
- At a Response node, type a reply in the input and click Reply.
- At an HTTP node during simulation, choose Success or Failed to preview each branch.
Click Stop or close the panel to reset. Fix the canvas, then test again before linking production devices.
Link a flow to devices
- In the editor Settings panel, pick WhatsApp or Telegram devices (or both on the same flow).
- Save the flow.
- On each linked device, open Channel → channel → Devices, edit the device, and set On incoming message to Flow.
When a message arrives on that device, Kirisan runs that one linked flow from the Start node. A device cannot run two flows — if it is already linked elsewhere, remove it from that flow first, then add it here. Only one inbound handler is active per device — Flow replaces Autoreply, Spreadsheet, and Webhook for that line or bot.
Flows vs keyword autoreply
| Keyword autoreply | Flow |
|---|---|
| Single-shot reply or submission start | Multi-turn dialog with branches |
| Fast to set up in a modal | Better for wizards, menus, and API lookups |
| List order — first keyword match wins | One flow per device — many templates can share a device, but a device runs only one flow |
Use Autoreply for simple FAQs; use Flow when the user must answer several questions or you need conditions and HTTP calls.
Tips
- Keep Start → first Text short so users get a quick acknowledgment.
- Use Store + Condition to remember choices (for example product category).
- Put specific Condition branches above broad ones — first match wins, then Else.
- A device runs one flow only — unlink it from another flow before moving it.
- Test with Run before linking production devices.
- Session duration in Settings controls how long context lasts between messages from the same sender.
Related
- Autoreply — simple keyword replies
- Submissions — structured forms (alternative to long flows)
- Spreadsheet — sheet-based replies without a canvas
- Variables —
{{message}}, Store fields, and[[…]]tokens