Skip to main content

Create a form on WhatsApp

Collect customer information right in the WhatsApp conversation and reuse it in your flows and tools.

The WAX Form block lets you send a form that opens directly in WhatsApp: your customer fills it in without leaving the conversation, and each answer is saved automatically on their contact record.

📲 Try a WAX form: scan this QR code with your phone, or tap here from your mobile, then send the pre-filled message on WhatsApp. You'll receive a demo form that shows all the options.

Why use a form?

  • Collect several pieces of information at once: the customer fills in all the fields in a single form, instead of answering a series of messages.

  • Enrich your contact records: each answer is saved in an attribute, ready to be used to segment, personalize or route the rest of the flow.

  • Zero friction: no external link or web page to load, everything happens in WhatsApp.

Use cases: joining your WhatsApp club with the customer's preferences, detailed review after a purchase, appointment or quote request, entering a giveaway, lead qualification.

Before you start: what you need to know

  • In your campaigns and automations: you can send a form in a campaign (to a contact list) as well as in an automation.

  • Only available on templates: the form is sent through a WhatsApp template, not in a free-form reply.

  • Utility or marketing: the form's template can be approved in the utility or marketing category, depending on its content. A form linked to an order or a service (appointment, delivery details…) can be utility; a promotional form (club, giveaway…) will be marketing. To learn more: Templates: marketing and utility

  • Meta approval required: like any template, it must be approved by Meta before it can be sent, including for your tests.

  • WhatsApp only: a form can't be sent by RCS or SMS. For these channels, see the alternative at the end of this article.

  • One answer per form: the customer can only fill in and send a form they received once.

  • List your questions and attributes: for each piece of information to collect, plan the contact attribute that will store it (see step 2).

Step 1️⃣: Add the Form block and write the intro message

In the Flow Builder (automation or campaign), drag in the Form block. Your customer will first receive a WhatsApp message (the template) with a button that opens the form. This message has several sections:

Header

Optional. An image (or a short text) at the top of the message, to catch the eye.

  • Examples: a photo of your store or products, a "Join the club" visual.

Body

Required. The main text: explain what the form is for, what the customer gets out of it and how long it takes. You can insert variables, such as the first name.

Examples:

  • "Hi [first name], join our WhatsApp club and get offers tailored to you! Answer 3 questions, it takes 30 seconds."

  • "Hi [first name], how was your last order? Share your feedback in 1 minute."

  • "Would you like to book an appointment in store? Tell us when you're available and we'll get back to you quickly."

Footer

Optional. A short grey line below the message, useful for a privacy or unsubscribe note.

  • Examples: "Your data stays confidential", "Reply STOP to unsubscribe".

Button that opens the form

Required. This button opens the form in WhatsApp. Choose a short, action-oriented label.

  • Examples: Answer · Join the club · Give feedback · Book a slot · Complete my profile

Step 2️⃣: Build your form and create your attributes

The sections of the form

The form that opens when the button is tapped is made of:

  • Title: the name shown at the top of the form (e.g. "Join the club", "Your feedback matters", "Book an appointment").

  • Pages: you can spread your questions over several pages. The customer moves from one page to the next and only sees a few questions at a time.

  • Fields: the questions asked on each page, each linked to an attribute (see below).

  • Submit button: the button that sends the form, on the last page (e.g. "Send", "Submit my answers", "Sign me up").

Example of a 3-page form for a WhatsApp club:

  • Page 1 – About you: first name, email

  • Page 2 – Your preferences: favorite category, size

  • Page 3 – One last thing: "What do you expect from the club?"

Good to know:

  • The customer can go back at any time, including to a previous page, to change their answers before sending the form.

  • Answers are saved only when the form is finally sent. If the customer closes it before the end, the answers already entered are lost.

Create the attributes that will store the answers

Each field of the form must be linked to a Contact Attribute: that's where WAX saves the customer's answer. Without an attribute, the answer isn't kept on the contact record.

  1. Create the attribute from the form editor when you set up the field, or in advance in Attribute > New Attribute.

  2. Give it a clear name, in lowercase and without spaces (e.g. city, clothing_size, favorite_product).

  3. Reuse an existing attribute if the information already exists (e.g. email, first_name) rather than creating a variant.

⚠️ If you then send this data to your CRM, use exactly the same attribute name on both sides. To learn more: How to use Contact Attributes and Tags in WAX

Choose the right field type

Add your fields, link each one to its attribute, set whether it's required or optional, then reorder them by drag and drop.

Text Input: a short, one-line answer.

  • "Your first name" → first_name

  • "Your email address" → email

  • "Your zip code" → zip_code

  • "Your city" → city

  • "Your order number" → order_number

  • "Your date of birth (DD/MM)" → date_of_birth

Text Area: a long answer, over several lines.

  • "Tell us about your experience" → customer_review

  • "Describe what you need" → need

  • "A question for our team?" → customer_question

  • "What could we improve?" → suggestion

Choice list: the customer picks from options you define. Ideal for consistent answers that are easy to segment.

  • "Your size": XS / S / M / L / XL → clothing_size

  • "Your skin type": Dry / Combination / Oily / Sensitive → skin_type

  • "You mostly shop for": Yourself / Someone close / Both → shopping_for

  • "Your favorite store": list of your stores → store

  • "Your rating": 1 to 5 → satisfaction_score

💡 Plan a way out in your choice lists: an option like "Other" or "None of these". You can then direct these customers to another solution (website, advisor…).

💡 Keep each page light: 2 to 4 fields per page. If you have many questions, spread them over several pages rather than putting everything on one. And since answers are only saved when the form is finally sent, the shorter the form, the fewer answers you lose along the way.

Step 3️⃣: Get the form approved by Meta

  1. Save the form.

  2. Choose the template category (utility or marketing), then submit it to Meta for approval.

⚠️ No testing before approval: until Meta approves the template, it stays a draft and can't be sent, even to yourself. Plan for this delay before launch. Template pending? My template is pending: what should I do?

Step 4️⃣: Send a confirmation message

Connect a message (for example a quick reply) to the output of the button that opens the form. This message is sent automatically as soon as the customer has sent the form: it's the perfect moment to confirm their answers were received.

Example: "Thanks [first name], your answers have been saved! Here's your welcome code: CLUB10"

If the rest of the flow needs to wait for the customer's reply, you can also use a Wait block with the Wait after an answer option: the flow only continues once the customer has replied.

Finally, remember to connect the Form block's fallback output to a backup SMS or RCS message: it's sent if the form couldn't be delivered on WhatsApp. This output only accepts a message on another channel.

Step 5️⃣: Tag the people who filled in the form

To easily find all the customers who filled in your form, add a tag right after the confirmation message.

  1. After the confirmation message, add a Set data block.

  2. Add a tag with a clear name, for example club_form_completed or form_review_october.

  3. Then create a segment on this tag: you get the list of all respondents, to target in your campaigns or export.

💡 Use one tag per form: you can measure how many people answered each one and avoid sending a form again to someone who already filled it in (condition on the tag).

What if the customer doesn't finish the form?

Until the customer sends the form, no answer is saved, the confirmation message isn't sent and the tag isn't added. So you can easily follow up:

  • In an automation: on another branch of the flow, add a Wait block (for example 24 hours), then a Conditional Split on the tag. If the contact doesn't have the club_form_completed tag, send them a reminder with the form.

  • In a campaign: target a segment of contacts who received the form but don't have the tag, and send them the form again.

Reminder example: "[first name], you're just seconds away from joining the club and getting your welcome code!"

Step 6️⃣: Get and use the answers

Answers are saved in the attributes when the customer sends the form. You can find and use them in several ways:

  • Contact record: open a customer's profile to see all their answers.

  • Segments: target your contacts by the form's tag or by their answers (e.g. all customers whose clothing_size = M).

  • CSV export: export your segment to analyze the answers in a spreadsheet.

  • Personalization: use the attributes as variables in your next messages (e.g. "Your size M is back in stock!").

  • Rest of the flow: add a Conditional Split block on an answer to send each customer the right message.

Send the answers to your CRM through the API

To send the answers to your CRM, Zapier or Make, add a Webhook block and include the form's attributes in the body (e.g. {{city}}, {{clothing_size}}). Two options:

  • Immediately: place the Webhook right after the confirmation message; the data is sent as soon as the customer has sent the form.

  • After a while: place a Wait block (for example 1 hour or 24 hours) before the Webhook, to send the data in batches or after any reminder.

Step 7️⃣: Test before turning it on

Once the template is approved by Meta, send yourself the form, fill it in, then check that the confirmation message arrives, that the answers show up on your contact record, that the tag is added and that you appear in the segment.

⚠️ Test with a phone that has a WhatsApp account: a form can't be sent by RCS or SMS. On a number without WhatsApp, you won't receive the form (only the fallback message, if you set one up).

💡 Since a form can only be filled in once, send yourself the form again for each new test.

To learn more: Test an automation

Alternative: collect information without a form (RCS, SMS, or simple questions)

For one or two questions, or for the RCS and SMS channels, you can also ask your questions one at a time in the flow:

  • Quick reply buttons: the customer picks from options, and a Set data block saves their choice in an attribute.

  • Free-text answer: a Wait block with the Wait after an answer option saves what the customer writes in an attribute.

Tips

  • Personalize your intro message with the customer's first name.

  • State the goal and the time it takes (e.g. "3 questions, 30 seconds").

  • Give a reason to answer: discount code, access to exclusive content, personalized recommendations…

  • Prefer choice lists to free-text fields when you can: answers are easier to segment.

  • Reassure customers about the privacy of the data you collect.

  • Measure the completion rate: compare the number of tagged contacts with the number of forms sent (Performances tab of your automations, see Discover Automations).

Did this answer your question?