Flows
Flows are Lane.Chat's automation engine: event-triggered sequences of conditions and actions that run server-side on a conversation. They power welcome messages, keyword replies, lead-capture forms, routing, and rich-message sequences — without any code on your side.
Flows are authored in the dashboard. This page explains the concepts a developer integrating with Lane.Chat needs to know; it is not a Flow-builder tutorial.
Triggers
A Flow runs in response to an event on a conversation. Common triggers include:
- Chat started — a new conversation opens.
- Visitor message — a message arrives (optionally keyword-matched).
- Button click — the visitor taps a rich-message button. The postback (
button_id,button_value,button_text) is available to the Flow. - No reply / no agent, rating submitted, keyword detected, and working / off hours are also available.
A form submission does not start a Flow — it resumes one already paused on a form step (see Waiting and resuming); the submitted values become form.* variables.
Actions
Actions are the steps a Flow executes. The set includes (among others):
- Send message — plain text, with
{{variable}}interpolation. - Send rich message — any of the six rich types (
markdown,card,buttons,carousel,form,link). - Send button group — a quick set of reply buttons.
- Ask for email — gate the input until the visitor provides a valid email.
- Transfer to agent — hand the conversation to a human.
- Rate chat, request binding, API call, and more.
All visitor-facing copy supports template variables and per-language {lang: text} maps.
Waiting and resuming
Some actions pause the Flow until the visitor does something:
- A form with a
flow_step_idsubmit action pauses until the visitor submits (POST /v1/forms/submit), then resumes with the values injected asform.*variables. - A button group pauses until the visitor clicks a button.
While a Flow is waiting, ordinary visitor messages still pass through — keyword Flows and AI can still answer; the paused execution simply stays waiting until its expected input arrives.
Egress and channels
Everything a Flow sends goes out through the single agent-to-visitor dispatch path, which broadcasts to the widget over WebSocket and fans out to native channels (Telegram, WhatsApp, Slack, email) with per-channel translation and a text fallback. You author a message once; each channel renders it as best it can.
Observability
Flow executions are traced. Execution history, trigger attempts, stats, dry-run, and versioning are available in the dashboard.