Multi-step WhatsApp Flows: forms inside the chat, no external links
Native multi-screen forms inside WhatsApp — sub-second open from the chat, no external links, response lands back in the conversation. Pro+ on Cloud API, included in your plan.
What WhatsApp Flows are
Most "form on WhatsApp" experiences today are a hack: the AI types a paragraph asking five questions, the customer answers one, the AI re-asks the next four, and the conversation collapses into a back-and-forth that takes minutes per lead. The good ones link out to a Typeform or a Google Form, which loads in a separate browser, asks the customer to type their email and phone all over again, and breaks the chat session.
Meta Flows is Meta's answer to that problem — a native multi-screen interactive type that opens inside WhatsApp itself. The customer taps a single card in the chat, an in-app sheet slides up in under a second, they tap through 1-5 screens of structured inputs (text, dropdowns, radio, checkboxes, date pickers, photo upload), and submit. The response lands back in the same WhatsApp conversation as a structured payload that Botline normalizes into a synthesised user message — your AI sees something like "Form submitted: Name=Sara, Email=sara@…, Budget=mid-range" and replies as if the customer had typed it.
No external link. No re-typing. No new tab. The friction between "interested customer" and "qualified lead" goes from minutes to seconds.
Three high-value use cases to ship this week
Flows shine for any moment where you need more than a single answer but less than a full website form:
- Lead-capture survey — name, email, business size, budget, when-to-buy. Five questions across two screens. Use it on a paid ad campaign that drives WhatsApp clicks: the customer hits the Click-to-WhatsApp button, the AI says hi and sends the lead form, the customer fills it in 30 seconds, and the AI either books a demo or hands off to a human depending on the budget answer.
- Support intake form — issue category dropdown, severity radio, optional photo upload, free-text description. One screen. Use it the moment a customer says "I have a problem" — the AI sends the form, the customer attaches a screenshot of the broken thing, and your support team gets a triage-ready ticket with all the context already attached.
- Post-purchase NPS — score 0-10 radio, "what would have made it a 10?" free-text, optional follow-up consent checkbox. One screen. Trigger it 7 days after a Shopify or WooCommerce order delivers, and the response rate routinely beats post-purchase email by 5-10x because it's native to the chat.
Plan gate: Pro+ on Cloud API, no upcharge
Flows are a Meta WhatsApp Cloud API feature — they don't exist on the free Baileys QR connection. You need a Cloud API line connected to your account, which means Pro or Enterprise plan and a Meta Business account in good standing.
If you're already on Pro+ with Cloud API connected, Flows are included in your plan at no upcharge from Botline. You pay Meta directly per Cloud API conversation rate (Flow sends are billed as marketing-tier or utility-tier conversations depending on the category you author the Flow with) — Botline takes nothing on top.
How the AI deploys a Flow: <code><flow id="slug" /></code>
Botline's responder AI gets a new prompt block listing every published Flow on your account by slug. When a customer signals an intent that matches a Flow — "I want to book a demo", "I have a complaint", "can you help me with my order?" — the AI emits an XML-like tag in its reply:
Sure, let me grab a few details. <flow id="lead_capture" />
Botline post-processes the output, strips the tag from the customer-visible text, resolves the slug to the published Meta Flow, and sends an interactive message with a single "Open form" button. The customer taps it, fills the form, submits, and your AI sees a normal turn in the conversation that says something like "[Flow lead_capture submitted] Name=Sara, Email=sara@example.com, Budget=mid-range". The same XML-tag pattern that powers <button-menu />, <list />, and <catalog /> in the rest of the interactive library.
You don't prompt-engineer this manually. Add a Flow, give it a memorable slug, publish it, and the AI starts deploying it the next time a relevant intent shows up. If you want to nudge it more aggressively, mention the slug in your AI's system prompt — the standard prompt-engineering pattern.
Author a Flow (paste Meta Flow JSON)
Open Dashboard → WhatsApp → Flows and click + New flow. Botline v1 ships paste-only authoring — you build the Flow JSON in Meta's WhatsApp Flow Builder at business.facebook.com, validate it there with their previewer, and paste the JSON into Botline. A drag-and-drop editor inside Botline ships in v2.
To author the JSON:
- Go to business.facebook.com with the same admin account that owns your WhatsApp Business Account.
- Open WhatsApp Manager → Account Tools → Flows → Create Flow.
- Pick a category — SIGN_UP for lead capture, SUPPORT for intake, SURVEY for NPS, CONTACT_US, CUSTOMER_SUPPORT, APPOINTMENT_BOOKING, or OTHER. The category drives Meta's billing tier and approval bar.
- Use Meta's visual builder to lay out screens with input components — TextInput, Dropdown, RadioButtonsGroup, CheckboxGroup, DatePicker, PhotoPicker, etc.
- Click Preview to render the Flow in a simulator. Iterate until it looks right.
- Open the JSON tab in Meta's builder and copy the entire JSON object.
Back in Botline, paste the JSON into the Flow JSON textarea, give the Flow a memorable slug (e.g. lead_capture, support_intake, post_purchase_nps) and a category, and click Submit to Meta. Botline forwards the JSON to Meta's Flow API, gets back a Flow ID, and starts polling for status. The dashboard list shows status — Draft, Submitted, Published, Rejected — and a manual "Publish" button once status flips to Published.
Approval is fast: the typical round-trip is 2-5 minutes for utility/support categories and up to a few hours for marketing categories. Status flips live in the Flows list — no need to refresh manually.
Broadcast a Flow to a segmented audience
Open Dashboard → WhatsApp → Broadcasts and click + New broadcast. The 4-step composer adds a third template kind alongside Meta Template and Catalog Drop:
- Template — pick template kind Flow send and select one of your Published Flows.
- Audience — filter active conversations (tags, recency, status, assigned agent) or upload an E.164 CSV.
- Schedule — send now, or pick a date and time in your tenant timezone.
- Review — final summary with audience size, scheduled time, and an estimated cost preflight in your tenant currency.
Flow sends respect the same quality-rating guardrails as regular marketing broadcasts — Yellow rating triggers a soft warning, Red blocks marketing-category Flows outright (utility-category Flows are exempt). Opted-out contacts are auto-skipped from the audience.
A typical NPS rollout: schedule a Flow send to "all customers whose last order delivered 7 days ago", let Meta deliver, watch responses land in the Flow detail page over the next 24-72 hours, export to CSV for analysis.
Where responses land
Every Flow submission lands in two places:
- The customer's WhatsApp conversation — as a synthesised user message that the AI processes like a normal turn. Your AI replies in context, asks a follow-up question, escalates to a human, books a meeting — whatever your prompt says to do for that intent. The synthesised message has a structured payload attached so the AI can read individual field values cleanly.
- The Flow detail page at /dashboard/whatsapp/flows → tap any Flow → Responses tab. Every submission is logged with timestamp, contact phone, and the full submitted JSON. Export to CSV from the same page for analysis or import into your CRM.
The double-write means Flow submissions never get lost — even if the AI misses the synthesised message (e.g. you've paused the AI for that line), the response is still on the Flow detail page waiting for you. And because the same submission also lives in the conversation, you don't have to glue together two separate systems to follow up on a hot lead.
Troubleshoot common issues
Most issues during Flow setup fall into one of four buckets:
- "Flow JSON invalid" on submit — your pasted JSON has a structural error Meta caught upfront. The exact reason is shown inline. The most common culprit is a stray comma or a missing screen ID; re-validate inside Meta's Flow Builder previewer before pasting.
- Stuck on "Submitted" for more than an hour — Meta's approval queue is slow today. Check status manually with the Refresh button on the Flows list. If it stays stuck more than 24h, contact Meta support — Botline can't accelerate Meta-side queues.
- "Rejected" status — Meta returned a category mismatch or a content rule violation. The rejection reason is shown inline. Edit the Flow JSON in Meta's builder, fix the issue, and re-submit from Botline.
- AI not deploying the Flow — your AI doesn't see the Flow in its prompt block. Confirm the Flow status is Published (not Draft / Submitted / Rejected). If it's Published and the AI still isn't deploying it, mention the slug explicitly in your system prompt: "When a customer asks to book a demo, send the lead_capture flow."
If a Flow send is failing to deliver to a specific recipient, check the Broadcasts page — Meta returns a per-recipient error code that Botline surfaces inline (most common: "Recipient does not support Flows" for very old WhatsApp clients on feature phones).
What's next
Flows compose naturally with the rest of Botline:
- Pair a Flow with the broadcast composer — author the form once, ship it to a segmented audience, track responses in one place.
- The AI uses Flows alongside the rest of the interactive library — Reply Buttons for short choices, List Pickers for service menus, Catalog for shoppable feeds, Flows when you need 1-5 screens of structured input.
- If you haven't connected Cloud API yet, follow the Cloud API connection guide first.
Open Flows, paste your first Flow JSON, and the AI will be sending native multi-step forms before lunch. Questions? Email support@botline.cc or WhatsApp +92 322 4031899 — we read every message.