WhatsApp Flows
Lodgestory CRM › Settings → WhatsApp Flows
Build multi-screen, in-chat forms — bookings, surveys, lead capture — and collect structured answers without the guest ever leaving WhatsApp.
TL;DR
- What it is — a full editor for WhatsApp Flows inside Lodgestory: design screens visually or in JSON, preview live, publish, and send — no WhatsApp Manager required.
- Who it's for — Account Owners and Admins build and publish flows. Bot journeys and campaigns send them; answers land back in the inbox and in journey variables.
- Top outcome — structured data from guests (dates, choices, contact details, files) captured as clean key-value answers instead of free-text back-and-forth.
At a glance
| Plan tiers | All paid tiers. |
| Who can use it | Account Owners and Admins create, edit, and publish flows. |
| Channels | WhatsApp Official only. |
| Integrations | WhatsApp Templates (flow buttons), Bot Journeys (the WhatsApp Flow node), Campaigns (flow-button templates), Webhooks (flow.response_received). |
| Top limits | Flow definition up to 10 MB. Up to 3 inline images per screen; one photo or document picker per screen. Published flows can't be deleted — deprecate instead. Test sends require an open 24-hour window. |
| API | Dashboard feature today; flow responses reach you via the flow.response_received webhook. |
How to find it
Sidebar: Settings → WhatsApp Flows.
Direct URL: https://lodgestory.com/crm/settings/flows
The builder opens at /crm/settings/flows/builder?flowId={id}.
[SCREENSHOT: flows-landing.png — flow list with status chips]
What is WhatsApp Flows?
The problem it solves
Collecting structured information over chat is painful. "Which dates? How many guests? Which room type?" turns into ten messages, typos, and half-answers. WhatsApp Flows are Meta's answer: a tappable, multi-screen form that opens inside the WhatsApp conversation — dropdowns, date pickers, text fields, photo uploads — and returns one clean set of answers when the guest hits submit.
Until now, building a flow meant leaving your CRM for Meta's WhatsApp Manager. Lodgestory brings the whole lifecycle in-house: create, design, validate, publish, send, and collect responses without leaving Settings.
What you get
- A visual builder. Screens on the left, a live WhatsApp-style phone preview in the middle, properties on the right. Add components from a palette — headings, text, inputs, checkboxes, radio groups, dropdowns, chips, date and calendar pickers, opt-ins, links, images, image carousels, photo/document pickers, navigation lists, and If/Switch conditionals.
- A JSON view for power users. The same flow as raw Flow JSON in a code editor, kept in two-way sync with the visual view. Meta's validation errors appear as markers on the exact offending lines.
- Interactive preview. Fill the form in the preview, tap through screens, and see exactly what the completion payload will contain — before anything is published. A hosted Meta preview (shareable link, 30-day validity) is one toggle away for a pixel-perfect check.
- The full publish lifecycle. Draft → validate → publish → (deprecate). Test-send a draft to your own phone; publish when validation is clean.
- Import from WhatsApp Manager. Flows already built on your WhatsApp Business Account sync in with one click, editable like any other.
- Responses, correlated. Every send carries a unique flow token minted by Lodgestory. When the guest submits, the answers come back tied to the right chat, journey session, or campaign — rendered in the inbox and delivered to your webhooks.
Customer scenarios
- Booking enquiry form. A journey greets a new guest, then sends a flow: dates (calendar picker), party size (dropdown), room preference (radio group). The guest submits once; the journey stores each answer as a variable and routes to the right team with everything attached.
- Post-stay survey at scale. A campaign sends an approved template whose button opens a feedback flow. Each recipient gets their own tracked token; responses tally back against the campaign.
- Migrating from WhatsApp Manager. An operator built three flows in Meta's builder last year. Sync from WhatsApp Manager imports all three; the team refines them in Lodgestory's builder from then on.
Core concepts
| Term | What it means |
|---|---|
| Flow | A multi-screen form asset that lives on your WhatsApp Business Account. Identified by a Meta flow id. |
| Screen | One page of the flow. Screens link to each other; at least one is terminal (has the submit button). |
| Component | A building block on a screen — text, input, selection, media, or logic. |
| Flow JSON | The underlying definition Meta executes. The visual builder and the JSON view edit the same document. |
| Status | Draft, Published, Deprecated — plus Throttled and Blocked, which Meta applies when a flow misbehaves. |
| Flow token | A unique correlation id Lodgestory attaches to every send, so each response maps back to its chat, journey, or campaign. |
| Category | Meta's use-case label — Sign up, Sign in, Appointment booking, Lead generation, Contact us, Customer support, Survey, Other. |
Quick Start — build and test a flow in 15 minutes
Step 1 — Create the flow
Sidebar: Settings → WhatsApp Flows → New Flow. Name it (booking_enquiry_v1), pick one or more categories, create. The builder opens with a starter screen.
Step 2 — Design the screens
Add components from the palette; edit labels, options, and validation in the right-hand panel. Add more screens for longer forms; a screen's footer button either navigates to the next screen or completes the flow. Mark the last screen terminal — its footer is the submit.
[SCREENSHOT: flows-qs-builder.png — three-pane builder]
Step 3 — Preview interactively
Flip the preview into interactive mode: fill the inputs, tap through, and check the completion payload the flow will return. Anything Meta would reject shows up in the validation panel with a jump-to link.
Step 4 — Save and test-send
Save uploads the definition to Meta and refreshes validation. Test send delivers the draft to a phone number you choose — drafts arrive with a "draft" banner. The recipient must have messaged your WhatsApp number within the last 24 hours (that's a WhatsApp rule for interactive messages).
Step 5 — Publish
When validation is clean, Publish. The flow is now sendable everywhere: template flow buttons, the bot-journey node, campaigns.
What's next
- Wire it into a journey → Bot Journeys
- Attach it to a template button → WhatsApp Templates
- Broadcast it → Campaigns
How it works
A flow is an asset on your WhatsApp Business Account; Lodgestory keeps a synced copy and pushes every edit to Meta. Saving uploads the Flow JSON and returns Meta's validation verdict — errors are pinned to the exact line and component. Publishing makes the flow sendable to real guests.
Editing after publishing returns the flow to Draft: messages already sent keep the version they were sent with (Meta retains up to five), and new sends use the latest published version once you publish again. Published flows can never be deleted — deprecate retires one permanently instead (guests who already received it can still open and submit it, and those late responses are still captured). Only drafts can be deleted outright.
When a flow is sent — by a journey, a campaign, or a template button — Lodgestory mints a unique flow token for that exact send. The guest fills the form; WhatsApp returns the answers with that token; Lodgestory matches it back to the chat, the waiting journey node, or the campaign, stores the structured answers, renders them in the inbox, and fires the flow.response_received webhook.
If Meta's monitoring decides a flow is causing errors for users it can mark it Throttled (limited sending) or Blocked (no sending) — the status chip updates automatically via webhook, as do Meta's warnings when a flow's JSON version approaches end-of-life.
Features in depth
The flow list
Every flow with its status chip (Draft amber, Published teal, Deprecated grey, Throttled orange, Blocked red), categories, JSON version, an Imported badge for flows that came from WhatsApp Manager, validation-error count, and last-synced time. Actions per flow: open in builder, clone, publish, deprecate, delete (drafts only), copy flow id. Sync from WhatsApp Manager imports and refreshes everything on the account.
The builder
Three panes. Left: the screen list (add, duplicate, reorder, delete; terminal screens are badged) and the component palette — components that need a newer Flow JSON version than the flow targets are disabled with a note. Centre: the phone preview, static or interactive. Right: properties for whatever is selected — component fields, screen settings (id, title, terminal), or flow settings (name, categories, JSON version).
Components cover Meta's catalogue: headings and rich text; text inputs (text, number, email, phone, password) and text areas; checkbox groups, radio groups, dropdowns, and chip selectors; date and calendar pickers (single date or range); opt-ins and embedded links; inline images and image carousels; photo and document pickers; navigation lists; and If/Switch conditionals that show or hide content based on earlier answers.
The JSON view
A code editor over the same document — edits in either view stay in sync. Useful for bulk edits, copying screens between flows, or pasting examples from Meta's documentation. Meta's static validation errors (returned on every save) render as line markers here and as badges on the offending screens in the visual view.
Validation and publishing
Two layers: Lodgestory checks limits live while you edit (character caps, option counts, required submit buttons); Meta validates the whole definition on every save. Publish is enabled only when both are clean. The publish dialog spells out the consequences — editing afterwards returns the flow to Draft, and already-delivered messages keep their version.
Test sends
Send the current version to any phone number from the builder. Drafts go in draft mode (WhatsApp shows a draft banner); published flows send normally. The recipient must have an open 24-hour conversation window with your number — message the business number from the test phone first.
Responses in the inbox
A completed flow appears in the conversation as a Flow response card listing the submitted answers as label-value pairs. Photo and document answers reference the uploaded files. The plain-text transcript (search, previews, mobile) shows "Flow response".
Responses collected across a flow
The inbox shows one customer's answers in the context of their chat. To see everything a flow has collected, open Responses from the flow's actions menu on the flow list.
The panel lists submissions newest first, 50 at a time, with Previous / Next paging and the total count:
| Column | What it holds |
|---|---|
| Responded | When the customer submitted the flow. |
| Source | How the flow reached them — Journey, Campaign, Chat template, or Test send. |
| Chat | The conversation the response came from. |
| One column per field | Every field the flow captured, one column each. Fields differ per flow, so the columns are built from the responses themselves. |
Download CSV exports every response for that flow — not just the page on screen — with the same context columns plus one column per captured field.
Two things worth knowing about the data:
- Only completed submissions appear. Each send is tagged with its own token, and a row is created when the customer finishes the flow. Sends that were opened but abandoned, or never opened, produce no row.
- Every row carries its origin. Because the token records where the send came from, each response keeps its chat, and its campaign or bot-journey session when it had one — so campaign answers can be told apart from journey answers without extra tagging.
For exports across several flows at once, or on a date range, use the Reports module's Flow Responses export instead.
Roles and permissions
| Action | Account Owner | Admin | User | Bot |
|---|---|---|---|---|
| View flows | Yes | Yes | No | No |
| Create, edit, publish, deprecate | Yes | Yes | No | No |
| Sync from WhatsApp Manager | Yes | Yes | No | No |
| Test-send | Yes | Yes | No | No |
| Send via journeys, campaigns, template buttons | Yes | Yes | Yes | Yes |
Cross-module workflows
A. Structured intake inside a bot journey
Flows: build and publish booking_enquiry_v1. Bot Journeys: add a WhatsApp Flow node, pick the flow, map check_in → {{check_in}}, party_size → {{party_size}}. The journey waits for the submission, then a condition node routes on {{party_size}} and an agent-transfer node hands over with everything captured.
B. Feedback campaign
Templates: create a Marketing template with a Flow button pointing at your feedback flow; get it approved. Campaigns: broadcast it — every recipient automatically gets a unique flow token, and each submission is tracked back to the campaign.
C. Instant answer capture for integrations
Webhooks: subscribe to flow.response_received. Every submission arrives at your endpoint with the flow id, chat id, source (journey, campaign, chat template, or test send), campaign id when applicable, and the full answers object — ready to push into a PMS or booking engine.
Limits a user will run into
| Limit | Value |
|---|---|
| Flow definition size | Up to 10 MB |
| Inline images | Up to 3 per screen (keep each under ~300 KB) |
| Photo / document pickers | One per screen, not both on the same screen |
| Embedded links | Up to 2 per screen |
| Opt-ins | Up to 5 per screen |
| Footer button label | Up to 35 characters |
| Selection options | 1–20 for checkbox/radio groups; up to 200 for dropdowns |
| Retained versions at Meta | Last 5 published versions |
| Deleting | Drafts only — published flows must be deprecated |
| Test sends | Recipient needs an open 24-hour window |
Errors and FAQ
Errors you might see
| Message | What it means | What to do |
|---|---|---|
| Validation errors from Meta on save | The definition breaks a Flow JSON rule. | Open the validation panel; each error jumps to its screen or JSON line. |
| Publish is disabled | Validation isn't clean, or the flow isn't a draft. | Fix the listed issues; deprecated flows can't be published — clone instead. |
| Test send failed / not delivered | Usually the 24-hour window: the recipient hasn't messaged your number recently. | Message the business number from the test phone, then resend. |
| Only DRAFT flows can be deleted | The flow has been published at some point. | Deprecate it instead. |
| Deprecated flows cannot be edited | Deprecation is terminal. | Clone the flow and continue in the copy. |
| Flow is Throttled / Blocked | Meta's monitoring flagged user-facing errors. | Fix the flow (often a broken navigation or oversized images), republish, and the status recovers automatically. |
FAQ
Do I still need WhatsApp Manager?
No. Creating, editing, publishing, and deprecating all happen in Lodgestory. Flows you previously built in WhatsApp Manager import via Sync.
Can a flow call my server for dynamic screens?
Not yet. This release ships navigate flows — all screens and logic live in the definition, which covers forms, surveys, bookings, and lead capture. Endpoint-powered (data-exchange) flows, where Meta calls your server between screens, are planned for a later release; the builder already shows the endpoint fields as a preview.
Where do the answers go?
Three places at once: the conversation (a Flow response card), the sender's context (journey variables or campaign tracking), and your webhooks via flow.response_received.
What happens to guests mid-flow when I edit it?
Nothing — messages already sent keep the version they carried. New sends pick up your changes after you publish again.
Can I send a flow without a template?
Inside an open 24-hour window, journeys send flows as interactive messages — no template needed. Outside the window you need an approved template with a Flow button.
Why does my draft show a banner on the phone?
WhatsApp marks draft-mode sends visibly so testers can't confuse them with production. Publish to remove it.
Changelog
- Aug 2026 — Initial release: in-app flow builder (visual + JSON), publish lifecycle, WhatsApp Manager sync, test sends, flow tokens with inbox response cards, the bot-journey WhatsApp Flow node, campaign tracking, and the
flow.response_receivedwebhook.
Related modules and next steps
- WhatsApp Templates — attach flows to template buttons for out-of-window sends.
- Bot Journeys — the WhatsApp Flow node sends a flow and maps answers into variables.
- Campaigns — broadcast flow-button templates with per-recipient tracking.
- Webhooks —
flow.response_receiveddelivers every submission to your systems. - Connections — the WhatsApp Official channel flows live on.
Updated about 1 hour ago
