Logo
Logo
Talk Now

Trusted by 10,000+ businesses

WhatsApp

WhatsApp Flows Explained: Building In-Chat Forms Without a Website

A concrete, step-by-step look at how a WhatsApp Flow is actually built- screens, fields, navigation logic, and a real appointment-booking example- for businesses ready to build one.

Get Click Media8 min read
WhatsApp Flows Explained: Building In-Chat Forms Without a Website

If you want the full picture of what a WhatsApp Flow is and why it exists- the use cases, the case for keeping customers in-chat instead of redirecting them to a website, the business impact- we've already written that page in full depth: WhatsApp Flows. This page answers a narrower, more hands-on question: what does building a real Flow actually look like, screen by screen?

A WhatsApp Flow is a JSON-defined sequence of screens, each holding form fields, that opens natively inside a WhatsApp chat and submits its final answers back to your business through a webhook. Below is a walkthrough of a realistic Flow- a simple appointment-booking form- built the way a business would actually build one.

Quick answer: A WhatsApp Flow is built as a set of screens (each with its own fields and validation), connected by navigation logic, and finished with a completion action that fires a webhook. You test it in draft mode first, then publish it before it can be sent to real customers- an unpublished Flow cannot go live.

Get WhatsApp Business API- Flows · Chatbot · AI Agentic Commerce

A Real Example: Building an Appointment-Booking Flow

Take a salon, clinic, or service business that wants customers to book an appointment directly inside WhatsApp instead of calling in or filling out a website form. Here's how that Flow is typically structured.

Screen 1: Service Selection

The first screen keeps things short- one dropdown field listing the available services (haircut, consultation, repair visit, whatever applies), and optionally a second field for a specific staff member or location if the business has more than one. The goal on screen one is always the same: capture the minimum needed to know what the customer wants, then move on.

Screen 2: Date and Time

The second screen uses a date picker field so the customer taps a calendar instead of typing a date in free text- this alone removes an entire category of input errors ("15/3" vs "March 15" vs "next Tuesday"). Paired with the date picker is a time-slot field, usually a dropdown or radio group populated with the available slots. In more advanced builds, this list of slots is pulled live from the business's booking system via a backend call as soon as the customer picks a date, so they only ever see genuinely open times.

Screen 3: Confirmation and Submission

The final screen shows a read-only summary of what was selected- service, date, time- often alongside a name and phone confirmation field, and an embedded terms/opt-in checkbox if the business needs explicit consent recorded (for example, agreeing to a cancellation policy or to receive reminder messages). A submit button triggers the completion action, which packages the whole set of answers into one structured payload and sends it to the business via webhook- landing directly in a booking calendar or CRM, with no manual re-entry.

The Basic Component Types

Every WhatsApp Flow is built from a small, fixed set of field types, combined differently depending on what's being collected:

ComponentWhat it's for
Text input (single/multi-line)Free-text answers- name, notes, a short message
Dropdown / radio buttonsA single choice from a fixed list- service type, department, plan
CheckboxMulti-select options, or a single opt-in/consent tick box
Date pickerCalendar-based date selection with built-in validation
Embedded rich textTerms, policy text, or instructions shown inline, often paired with a consent checkbox

Design note: Each field type carries its own validation for free- a date picker can't submit an invalid date, a dropdown can't submit an option that isn't on the list. This is a meaningful reliability upgrade over asking the same questions in free-text chat replies, where typos and ambiguous answers are the norm.

Screens don't have to run in a fixed straight line. Navigation logic can branch based on an earlier answer- for example, if screen one's service dropdown selects "consultation," the Flow can route to a screen asking for a preferred doctor, while "repair visit" routes to a screen asking for the item's model number instead. This keeps each customer's path short and relevant instead of showing everyone every possible field.

Testing and Publishing- Don't Skip This Step

A Flow is built and refined in a draft state first. Before it ever reaches a real customer:

  1. Preview the screen flow. Step through each screen exactly as a customer would see it, checking that fields, labels, and navigation behave as intended.
  2. Submit test data. Send sample answers through and confirm the webhook payload arrives at your backend in the shape your system expects.
  3. Check edge cases. Test what happens with a blank required field, an unusual date, or a customer who backs out partway through.
  4. Publish the Flow. Only once testing is clean does the Flow get published- a Flow that hasn't been published cannot be attached to a live template or triggered for real customers.

Skipping straight to a live send without this cycle is the most common way a Flow ships with a broken webhook connection or a confusing screen order that nobody catches until customers start complaining.

Where Flows Fit Into a Bigger Automated Journey

A booking or lead-capture Flow like the one above is a strong standalone win, but it's also a building block. Once a business has Flows collecting structured data reliably, the natural next step is connecting that data to AI-driven conversations that can carry a customer all the way from "I'm looking for X" to a completed purchase- without a human in the loop for routine cases. That fuller journey, spanning discovery through checkout, is covered on our WhatsApp AI Agentic Commerce page.

Frequently Asked Questions

What is a WhatsApp Flow, in simple terms? A WhatsApp Flow is a structured, multi-screen form that opens and runs entirely inside a WhatsApp chat- with real form controls like dropdowns, date pickers, and checkboxes- so a customer can complete a booking, application, or order without ever leaving the conversation or being redirected to a website.

How many screens can a WhatsApp Flow have? There's no fixed cap that most businesses ever bump into- Flows commonly run anywhere from a single screen to five or six. The practical guideline is fewer screens with focused fields on each one: a Flow that asks for everything on one long screen defeats the purpose, and one with too many screens raises drop-off, so most well-designed Flows land in the 2-4 screen range.

What component types can I use inside a Flow? The common building blocks are single-line and multi-line text inputs, dropdown lists, radio button groups, checkboxes, date pickers, and embedded rich text- often used to show terms and conditions with an opt-in checkbox tied to it. Each field type comes with its own validation, so a date picker only accepts valid dates and a dropdown only accepts one of its listed options.

Do I need a developer to build a WhatsApp Flow? You need someone comfortable with a JSON-based screen definition and, for anything beyond a static form, a small amount of backend work to receive the webhook and to handle dynamic data such as pulling live appointment slots. It's not full application development, but it isn't a pure drag-and-drop exercise either- most businesses have their BSP or a developer build and maintain it.

Can a WhatsApp Flow connect to my booking system or CRM in real time? Yes. A Flow can be configured to call your backend as the customer moves between screens- for example, to fetch real available time slots for the date they picked- and the final submission is delivered to your systems via a webhook, typically landing straight in a CRM, booking calendar, or order database.

Do I need to test a Flow before customers can use it? Yes, and this step shouldn't be skipped. Flows are built and tested in a draft/sandbox state first- you preview the exact screen flow, submit test data, and confirm the webhook payload lands correctly- before the Flow is published for real customers to use.

Does a WhatsApp Flow need to be published before it goes live? Yes. A Flow exists in draft while you're building and testing it, and it has to be explicitly published before it can be attached to a live template message or sent to real customers. An unpublished Flow simply can't be triggered outside of testing.

What happens to the data after a customer submits a Flow? The final screen's completion action packages the full set of answers into a single structured response and sends it back to the business- usually via a webhook- so it can be pushed directly into whatever system needs it, rather than a human having to read and re-type a chat transcript.

Get Started

For the complete case for using Flows- including the full use-case list and why in-chat completion beats an external redirect- read WhatsApp Flows. If you're ready to connect Flow-collected data into a fuller AI-driven buying journey, see WhatsApp AI Agentic Commerce.

Get WhatsApp Business API- Start Onboarding · Request a Demo

whatsapp flows explainedhow to build a whatsapp flowwhatsapp flow examplewhatsapp in-chat form builderwhatsapp appointment booking flowwhatsapp flow screens and fieldswhatsapp flow webhookpublish whatsapp flow

Frequently Asked Questions

A WhatsApp Flow is a structured, multi-screen form that opens and runs entirely inside a WhatsApp chat- with real form controls like dropdowns, date pickers, and checkboxes- so a customer can complete a booking, application, or order without ever leaving the conversation or being redirected to a website.

There's no fixed cap that most businesses ever bump into- Flows commonly run anywhere from a single screen to five or six. The practical guideline is fewer screens with focused fields on each one: a Flow that asks for everything on one long screen defeats the purpose, and one with too many screens raises drop-off, so most well-designed Flows land in the 2-4 screen range.

The common building blocks are single-line and multi-line text inputs, dropdown lists, radio button groups, checkboxes, date pickers, and embedded rich text- often used to show terms and conditions with an opt-in checkbox tied to it. Each field type comes with its own validation, so a date picker only accepts valid dates and a dropdown only accepts one of its listed options.

You need someone comfortable with a JSON-based screen definition and, for anything beyond a static form, a small amount of backend work to receive the webhook and to handle dynamic data such as pulling live appointment slots. It's not full application development, but it isn't a pure drag-and-drop exercise either- most businesses have their BSP or a developer build and maintain it.

Yes. A Flow can be configured to call your backend as the customer moves between screens- for example, to fetch real available time slots for the date they picked- and the final submission is delivered to your systems via a webhook, typically landing straight in a CRM, booking calendar, or order database.

Yes, and this step shouldn't be skipped. Flows are built and tested in a draft/sandbox state first- you preview the exact screen flow, submit test data, and confirm the webhook payload lands correctly- before the Flow is published for real customers to use.

Yes. A Flow exists in draft while you're building and testing it, and it has to be explicitly published before it can be attached to a live template message or sent to real customers. An unpublished Flow simply can't be triggered outside of testing.

The final screen's completion action packages the full set of answers into a single structured response and sends it back to the business- usually via a webhook- so it can be pushed directly into whatever system needs it, rather than a human having to read and re-type a chat transcript.

Related Articles