How to Save WhatsApp Flow Form Answers to Your CRM Automatically
A WhatsApp Flow collects a lead's budget, an address or an appointment in a few taps. The value is in what happens next: here is how to turn every answer into a customer profile field, without copying anything by hand.
MonoChat Team Updated: 7 min read
On this page
A WhatsApp Flow is the fastest way to collect structured information in a chat: a lead’s budget and timeline, a delivery address, an appointment slot, a sign-up with consent. The customer taps through a few screens and presses a button. Then, in many teams, an agent opens the conversation, reads the answers and types them into the CRM by hand.
That last step is where answers get lost, typed wrong or never typed at all. This guide shows how to save every answer straight to the customer’s profile fields in MonoChat, how to check them, and what to do with the data once it is there.
What happens when a customer submits a Flow
Meta describes WhatsApp Flows as “a way to build structured interactions for business messaging”, with uses such as collecting a customer’s contact details and the products they are interested in, or a quote built from their preferences.
When the customer completes a Flow, Meta sends the result to the business through the same webhook as every other customer message. It arrives as an interactive message of type nfm_reply, its visible body is always “Sent”, and the answers are in a field called response_json, shaped by the Flow JSON you designed. Two details matter for automation:
- The response does not include the Flow’s ID. If you send several forms, you need to tell them apart yourself, for example by their field names.
- The answers come with the field names you gave them in the form, so naming your fields well is half of the work.
In MonoChat, the submitted form appears in the conversation, and a flow can read each answer as a variable: {{message.payload.formData.<field name>}}.
Why save the answers to profile fields
| Answers left in the chat | Answers saved to profile fields |
|---|---|
| An agent has to scroll to find the budget | The budget is in the customer’s profile next to every conversation |
| Can’t filter or segment | Filter the CRM by any field, save the filter, use it as a broadcast audience |
| Nothing happens until someone reads it | A flow can assign, tag or reply the moment the answer is saved |
| Typing errors, missing fields | The value is converted to the field’s type, and a bad value is caught |
Since MonoChat 3.8.43 (2 November 2026), the Set Customer Profile Field node can fill a field From a Variable, including a WhatsApp Flow answer, and converts the value to the field’s type.
Step by step in MonoChat
1. Create the profile fields
In CRM › Profile Fields, create a field for each answer you want to keep, with the right type:
| Answer | Field type |
|---|---|
| Budget | Number |
| Preferred date | Date |
| Interest (one of several options) | List |
| Phone of another contact | Phone |
| Preferred language | Language |
Give each field a clear name. You will match these fields to the form’s answers in step 4.
2. Build the form
Go to Settings › Chat › Channels, open the ⋮ menu of your WhatsApp Business (Cloud) channel and choose Flows, then Create. Pick a template under Start from: Lead form, Appointment, Sign up, Delivery address, Feedback, NPS survey or Blank.
In the designer, each field’s Field name is generated from its label, and renaming a field updates every reference to it. Note the field names: email, budget, area, delivery_date. When two screens use the same field name, the answers are sent as <screen>_<name>, so keep names unique. Preview the form as the customer will see it, then Publish it.
3. Send the form to the customer
A Flow reaches the customer through a WhatsApp Flow button in a template message: when you create the template, choose the Flow, its action and its first screen. Send the template from a chat, from a flow that starts when a new customer writes, or after an ad click.
A short, clear template gets more forms completed:
Hi {{1}}, thanks for your message. So we only send you what fits, tell us your budget, area and timing in this short form. It takes less than a minute. [Open the form]
4. Save the answers with a flow
- Create a flow that starts on New Message Received: the form’s answers arrive as a message from the customer.
- Add a Set Customer Profile Field node.
- For each field, choose From a Variable and write the answer’s path, for example
{{message.payload.formData.email}},{{message.payload.formData.budget}},{{message.payload.formData.area}}. - Connect the On Fail output to an Assign Session node, so a person completes what could not be saved.
- Add a Set Customer Tag node, for example
form-completed, so the team can see and filter who finished the form.
5. Know what MonoChat accepts
The value must fit the field, as the help center describes:
| Field type | What it accepts |
|---|---|
| Number | A number |
| Date | An ISO 8601 date (2026-11-05 or 2026-11-05T14:30:00Z) or a Unix timestamp in seconds or milliseconds |
| Phone | A valid phone number |
| A valid email address | |
| List | One of the list’s options |
| Advanced list | One option’s ID or one of its names |
| Language | One of your active languages |
If a variable is empty or its value does not fit, the other fields are still saved and the node takes its On Fail output. A failed action node records its error in the run log, which names the field, so you can fix the form or the field.
A practical tip: make the form’s choices match your list field’s options word for word. A form option “Downtown” will not fill a list field whose option is “Downtown Dubai”.
6. Act on the saved data
Once the answers are fields, they work like any other customer data:
- Route the lead. A second flow that starts on Profile Field Updated can assign a lead with a budget above your threshold straight to a senior salesperson.
- Follow up at the right time. A date field such as “planned purchase date” can be checked with an If condition on profile fields: buyers within a month go to an agent today, later ones get a tag for a follow-up.
- Send the data on. An HTTP Request node can post the same values to your own CRM, ERP or booking system, using the flow’s variables.
- Segment. The CRM filters by every active profile field; a saved filter can be the audience of a broadcast, for customers who agreed to receive one.
Three examples
Real estate lead form. Purpose, area, budget and timeline go into four fields. A flow assigns buyers with a budget and a timeline under three months to the sales team, and tags the others for a later follow-up.
Delivery address for cash on delivery. After an order, the Delivery address form collects the address and the preferred delivery time. The flow saves both and posts them to the store with HTTP Request, then sends the customer a confirmation. Our cash-on-delivery guide covers the confirmation step.
Clinic appointment request. Treatment, preferred date and contact details are saved; the date field lets the front desk see every request for next week at a glance before confirming.
Consent belongs in the form too
A form that a customer fills in after writing to you is very different from an offer sent to someone who never asked. If you plan to send offers later, ask for consent clearly, separately from the form’s other questions: the Sign up template has a consent step, and the Opt-in node in flows asks the question you write and stores the customer’s answer. Send marketing only to customers who said yes; our opt-in guide explains why it protects your number as well.
Checklist before you go live
- Profile fields created with the right types.
- Form field names noted, unique and readable.
- Form choices match the list field’s options.
- Flow on New Message Received with Set Customer Profile Field From a Variable.
- On Fail goes to a person, and a tag marks completed forms.
- One test submission checked in the customer’s profile and the run log.
Start with one form
MonoChat is business messaging software and an official Meta Business Partner. It connects your own WhatsApp number to Meta’s Cloud API, builds WhatsApp Flows without Flow JSON, and saves their answers to your customer profiles with a flow you can build in minutes. The help article on flows shows every node.
You can start free at app.monochat.ai.
Sources
- Meta for Developers: WhatsApp Flows (opened 3 Nov 2026)
- Meta for Developers: Receiving the Flow response (opened 3 Nov 2026)
- MonoChat help center: Flows, Set Customer Profile Field from a variable (opened 3 Nov 2026)
- MonoChat help center: WhatsApp Flows (opened 3 Nov 2026)
- MonoChat release notes 3.8.43 (opened 3 Nov 2026)
Put this into practice with MonoChat