WhatsApp Flows Guide: Forms, Bookings and Lead Capture in Chat
WhatsApp Flows explained: how in-chat forms work, best use cases for bookings and lead capture, design rules, component limits and mistakes to avoid.
By OmniChannels.ai Editorial Team · Reviewed by BroadNet Messaging Solutions Team
Short answer
WhatsApp Flows are native, multi-screen forms that open inside a WhatsApp chat on the WhatsApp Business Platform. Customers can book appointments, request quotes, complete lead forms or give feedback without leaving the conversation, and the answers return to the business as structured data. Flows are built in Flow JSON, sent as a template or an in-session message, and can run with or without a live data endpoint.
On this page
Key takeaways
- WhatsApp Flows are structured, multi-screen forms that open inside the chat and return answers to the business as data, not free text.
- Flows can be sent as template messages or as interactive messages inside an open customer service window.
- Meta recommends endpointless Flows unless live data is needed, and data endpoint requests time out after 10 seconds.
- Meta's components reference allows up to 50 components per screen, but its best practices advise one task per screen and no more than 10 options per screen.
- Flows whose endpoints become unhealthy can be throttled to 10 messages per hour or blocked until health recovers.
This guide is for product, CX and marketing teams deciding whether WhatsApp Flows can replace web forms, booking pages or long back-and-forth chats. It covers what Flows are, where they work best, how to design them, the technical limits Meta publishes and the mistakes that make Flows fail in production.
What are WhatsApp Flows?
WhatsApp Flows are structured, multi-screen forms that open on top of a WhatsApp chat. The customer taps a button, completes a few screens and submits, and the business receives the answers as structured data.
Flows run on the WhatsApp Business Platform (API), not the WhatsApp Business app. Each Flow is defined in Flow JSON, which describes the screens, components and navigation. You can build and preview Flows in WhatsApp Manager or create them through the Flows API.
There are two technical styles:
- Endpointless Flows collect input and return it when the customer submits. Any dynamic data, such as the customer's name, is injected when you send the message.
- Endpoint-powered Flows call your server during completion, for example to show available time slots or calculate a quote. Data exchange is encrypted.
When should you use a Flow instead of chat or a web link?
Use a Flow when you need several structured answers in a fixed order. Use plain chat when the conversation is open-ended, and a web link when the task needs a full checkout, long documents or a logged-in account area.
| Task | Plain chat | WhatsApp Flow | Web link |
|---|---|---|---|
| Open question or complaint | Best | Poor fit | Poor fit |
| Lead qualification, 3 to 8 fields | Slow, error-prone | Best | Customer leaves chat |
| Appointment booking with live slots | Many messages | Good with endpoint | Good |
| Quote request with dates and options | Error-prone | Best | Good |
| Satisfaction survey after service | Acceptable | Good | Lower completion is common |
| Full ecommerce checkout | Poor fit | Limited | Best |
| Account login and settings | Poor fit | Only if necessary | Best |
Common use cases include insurance and loan quotes, property viewing requests, clinic and salon bookings, event registration, delivery preference updates, warranty registration with a photo upload, and post-service feedback. Meta's own getting-started examples cover pre-approved loans, insurance quotes, personalised offers and purchase interest.
How do you send a WhatsApp Flow?
You send a Flow as a message with a call-to-action button. There are two ways to deliver it.
- As a template message. Create a template with a Flow button and get it approved. This lets you start the conversation, for example a utility template inviting a customer to pick a delivery slot. Template category and pricing rules apply. See template categories and approval.
- As an interactive message in an open session. If the customer messaged you in the last 24 hours, you can send the Flow as an interactive message, for example when an agent offers a booking form during a chat. Our guide to the 24-hour customer service window explains the rules.
When the customer completes the Flow, a response message arrives at your webhook with the submitted fields. Use a flow_token to link the response to the right customer and conversation.
How should a WhatsApp Flow be designed?
Design for a phone, one thumb and a few minutes. Meta's best practices say a customer should be able to finish in no more than five minutes.
Design checklist
- One task per screen. Split multi-task forms across screens.
- Short titles with progress, such as "Question 2 of 4."
- Say how long it takes on the first screen.
- First screen matches the button. If the button says "Book a visit," the first screen is about booking a visit.
- Right component for the job: date picker for dates, text area for long text, radio buttons for one choice, checkboxes for several.
- No more than 10 options per screen; use a dropdown only when there are 8 or more options.
- Optional fields stay optional. Ask only what you need to act.
- Helper text for phone, date and email formats.
- Clear errors that explain how to fix the input.
- Summary screen before submit on multi-step Flows.
- Clear consent with a "Read more" link when you collect marketing opt-in.
- Confirmation message after submission with next steps and a contact route.
Technical rules worth knowing
- Data endpoint requests time out after 10 seconds. Cache data that rarely changes and avoid chained third-party calls.
- Make the first screen endpoint-free where possible and call the endpoint only on screens that need live data.
- Meta suggests setting
flow_tokenexpiry to two to three days, with a friendly message if the token has expired. - Keep the completion payload small and do not send base64 images in it.
What are the limits of WhatsApp Flows?
Meta publishes component-level limits. The figures below come from Meta's components reference at the time of writing; check it before building, because limits change between Flow JSON versions.
| Element | Limit (Meta components reference) |
|---|---|
| Components per screen | Up to 50 |
| Heading / subheading | 80 characters |
| Text input label | 20 characters |
| Radio buttons or checkboxes | 1 to 20 options |
| Dropdown | Up to 200 options, or 100 with images |
| Images per screen | Up to 3, JPEG or PNG |
| Opt-in components per screen | Up to 5 |
| Endpoint response time | 10-second timeout |
Operational limits matter as much as component limits:
- Lifecycle. Flows move from Draft to Published. Only drafts can be deleted, and Deprecated Flows can no longer be sent. Plan versioning before launch rather than editing a live Flow on the fly.
- Health monitoring. If WhatsApp detects unhealthy endpoint behavior, a Flow can be Throttled to 10 messages per hour, then Blocked if health worsens. Monitor error rate, latency and availability webhooks.
- Message costs still apply. The Flow travels in a template or session message, priced under normal rules. See our WhatsApp pricing guide.
Worked example: a Riyadh clinic booking Flow
Shifa Care, a synthetic multi-branch clinic in Riyadh, receives many WhatsApp messages asking for appointments. Agents spend several exchanges per booking collecting branch, specialty, date, time and patient details.
The team builds a four-screen Flow:
- Branch and specialty using radio buttons (five branches, eight specialties via dropdown).
- Date and time. An endpoint returns available slots for the chosen branch, with cached schedules to stay under the 10-second timeout.
- Patient details: name, date of birth with a date picker, and an optional note.
- Summary and consent, with a link to the privacy notice.
Agents send the Flow as an interactive message when a patient asks to book. For reminders, the clinic uses a utility template with a "Reschedule" Flow button. Completed bookings arrive at the webhook and are written to the scheduling system, and the patient receives a confirmation in Arabic or English. Free-text questions, such as insurance coverage, still go to agents in the inbox. For reminder timing, see our guide to appointment reminders.
Common mistakes with WhatsApp Flows
- Turning a web form into one long screen. Long screens load slowly and lose input if the customer exits mid-screen.
- Asking for login first. Put login near the end, only if needed, after the customer sees the benefit.
- No human fallback. Some customers will not complete a form. Keep a reply path to an agent.
- Ignoring endpoint health. A slow endpoint can get the Flow throttled or blocked across all customers.
- Collecting data you cannot protect. Store Flow responses under your privacy policy and applicable law, such as Saudi PDPL or GDPR.
- Marketing disguised as utility. A Flow button does not change template categorisation rules.
How OmniChannels.ai helps
OmniChannels.ai, powered by BroadNet Technologies, supports WhatsApp Flows and the foundation they depend on: WhatsApp Business API onboarding through Meta Embedded Signup, templates with variables, media and buttons with phone preview and approval tracking, and an Omni Inbox where agents handle the conversations that forms cannot. Delivery reports show how template invitations perform, and the systems behind your Flows connect through the public REST API and webhooks. Arabic and English are supported. Book a demo to scope your use case.
Frequently asked questions
Are WhatsApp Flows free?
Flows do not carry a separate Meta fee in themselves. You pay for the message that delivers the Flow according to normal WhatsApp pricing: a Flow sent as a marketing or utility template is charged by template category and country, and a Flow sent inside an open customer service window follows service-message rules. Confirm current rates in Meta's pricing documentation.
Do I need a developer to build a WhatsApp Flow?
Simple Flows can be built in the Flow Builder in WhatsApp Manager using Flow JSON and a live preview. Flows that check availability, prices or customer records in real time need a data endpoint, which requires a developer to build, host, secure and monitor it. Most teams start with endpointless Flows and add an endpoint later.
Can WhatsApp Flows collect payments or passwords?
Flows are designed for structured input such as text, dates, choices, opt-ins and media uploads. Meta supports marking fields as sensitive so they are hidden from the response message, and password fields are excluded by default. Card payments should go through a compliant payment method, not free-text card fields in a form.
What happens to the data a customer submits in a Flow?
When the customer completes the Flow, WhatsApp sends a response message to your webhook with the submitted fields. If the Flow uses a data endpoint, screens can also exchange encrypted data with your server during completion. Your system must store that data under your privacy policy and local data protection law.
Do WhatsApp Flows work on desktop?
Flows are designed for the WhatsApp mobile apps, and support on other clients can differ. Always test on the devices your customers actually use, and give a fallback, such as a link or a reply option, for customers who cannot open the Flow.
Sources
Keep reading
More guidesWhatsApp
WhatsApp Green Tick in 2026: Official Business Account Explained
WhatsApp green tick explained: Official Business Account vs Meta Verified, eligibility, how to apply on the API, why requests fail and what to do instead.
8 min read
WhatsApp
WhatsApp Template Categories, Approval and Recategorization
WhatsApp template categories explained: marketing, utility and authentication rules, why templates get rejected or recategorized, and how to get approved.
8 min read
Compliance
WhatsApp Business API Security and Privacy: What to Know
How WhatsApp Business API security really works: Cloud API encryption, 30-day retention, local storage, access control, PII in templates and vendor questions.
8 min read
