WhatsApp Forms
| 3 minute read | Level: Intermediate | Last updated: February 2026 |
WhatsApp Forms
A step-by-step guide for NGOs to create, publish, use, and analyze WhatsApp Forms with Glific.
Introduction to WhatsApp Forms
WhatsApp Forms is an implementation of WhatsApp Flows in Glific (form-like interface introduced by WhatsApp), which allows NGOs to collect structured data inside WhatsApp—just like a Google Form, but fully embedded within the conversation. This can help you collect:
- Registrations
- Feedback
- Session attendance
- Health screening
- Field survey data
- Monitoring & evaluation responses
- And much more
WhatsApp Forms reduce back-and-forth messaging and ensure clean, structured data for reporting.
How to Create WhatsApp Forms in Glific
Steps:
- Go to
Quick Tools→WhatsApp Formsin Glific. - Click
CreateForm - Provide a form
titleandcategory - For data storage, add a
google sheetwith write access to the google service account to automatically capture the responses to the form. This step is optional. A google sheet can be added before the form issubmitted to Meta - Click on Save and go to the form builder interface
Navigating the form builder interface.
The form builder interface can be used to create forms
There are 3 major actions:
- Form Json - this allows you to toggle to the from json view, and edit things in the form json as it gets developed by adding screens and components from
- Save Draft - while the changes being made are auto-saved, this button is provided as a back-up.
- Submit to Meta - this is the final step of form creation. Click on
Submit to metaonce the form is ready to be used by over WhatsApp. Please note: once the form is submitted to meta, it cannot be changed further. To make changes, a new form will need to be created and modified.
Other details:
- There is a form builder section with buttons to add content to the form like dropdowns, checkboxes, date fields, titles, captions, images and new screens to build out the form with required fields.
- The preview section allows you to get a glimpse of how the form will turn out on WhatsApp. The preview has tabs to
preview, see thefield namesand therevision historyof the form. - Please note, the preview mode is not fully representative of how the form will look on WhatsApp of your beneficiaries, as this varies a lot based on the version of WhatsApp and the device type such as android, ios etc.
Form Builder Action
- Adding screens: Use
Add newbutton to the in line of the Screens header to add new screens. Screen title can be added in theScreen Nameentry field - Building the form: click on
Add Contentto select the type of data collection field you’d like to add under a particular screen.
Types of content that can be added
- Titles and Captions: Under the
Textcontent, heading, subheading, captions, and texts can be added to the form.
- Media: An image file, of type JPEG, PNG can be added upto 300kb in size.
- Text answer: A short answer, paragraph answer or date field can be captured using this type.
- Selection: Dropdown, Single choice, multiple choice, opt-in can be collected using the selection type of content
What are field names and how to use them?
Field names are the captions/ titles that appear above the input field in the form. This serves 2 function
- To appear as the caption for the user to see in the WhatsApp Form
- To appear as the header under which the responses are being captured. The header can be seen by toggling to
Field Namessection next toPreviewbutton
The header name can be changed by clicking on the edit button
Field names are useful to refer to any response from the form, and also the field names appear as the headers in the attached google sheet.
How to use field names in the flow
- A form message should be always followed by a
wait for responsenode. As shown in the screenshot below.
- The send message node 89e6 sends the HSM with form to the user,
- Wait for response node ad02 with the result name
result_1captures all the responses to the form questions by the user - The send message node 888f, is used to display back to the user one of the responses, by going into the responses and referring to the particular field name in this case -
preferred_mode_of_paymentby printing@results.result_1.preferred_mode_of_payment
What are Option Ids and how to use them
The options listed under selection type of the content - dropdown or single choice or multiple choice show up in the form json. Each option has a title which is text that appears to the user in the whatsapp interface to select. There is also an id, this id is what gets returned as the response and remains invisible to the user.
-
In the above screenshot, a short section of the form json can be seen corresponding to the question of preferred mode of payment, and the list of options.
-
The options show a distinct
titlewhich corresponds to what can be seen on the form page, and anidwhich is different from the title. -
Renaming the
option idin the form json is an important step to ensure data captured is clean and as per the requirements of the program.
Implications of the id
- This can help with multi-lingual forms by having the titles in local language, while the response getting captured and stored to be in english to help with collecting clean data.
- This can help with use cases where title and responses need to be abstracted away.
Form creation checklist
Checklist to make sure the form is completed
- There is a google sheet attached to the form for ease of collecting responses. While the responses to the form are synced to your bigquery by default, having a google sheet attached will help you to see responses quickly and easily.
- The
field namesunder which the responses will be captured is appropriate - The
option idsfor fields with options are renamed in the form JSON to reflect the values that need to be collected. - The form is
submitted to Meta.
How to Send WhatsApp Forms to users on WhatsApp
WhatsApp forms can be sent to users when the forms are attached to HSM messages.
Steps:
- Ensure that the form is
submitted to meta - Navigate to
Quick Tools->HSM Templates->Create - Follow the steps to create the HSM template, by giving it a
title,element name,bodyof the message, - Click on
Add buttonsand selectWhatsApp Forms - Select the form you wish to attach to the message
- Select the name of the screen that should open on clicking the form
- Give the title to the button
- Fill out the rest of the fields and apply for HSM
- Use this HSM message inside the Glific flow.
- Like any other HSM or send message node, ensure that this HSM follows a
wait for responsenode. This node will help to record the response to the form fields.
How the WhatsApp Form results can be used in the Glific flow
The responses to the form can be captured, and used in the Glific for taking actions such as write to google sheet or can be used in split by logic to create separate branches in the glific flow based on the responses received to any particular fields on the form.
To use this
- The field names for each field in the form come up on the “field names” screen of the form
- Take a note of all the these form field names
- In the flow, use
wait for responsenode after thesend contact a messagenode which is sending the form HSM message
How WhatsApp Form Results Come to BigQuery
- Ensure your Glific account is connected to BigQuery instance
- There are two new tables
whatsapp_formsandwhatsapp_forms_responses whatsapp_formsstores the forms and their statuses- ‘whatsapp_forms_responses` stores the responses recorded on each user
- Each row in
whatsapp_forms_responsesis a new entry recorded from a user from whatsapp - In
whatsapp_forms_responses, there is araw_responsefield which stores all the responses from a user. - To get a SQL snippet to help you extract the form responses to a Google Sheet, refer to the next section
WITH form_responses AS (
SELECT
wf.id AS form_id,
wf.name AS form_name,
wfr.raw_response,
wfr.submitted_at,
wfr.contact_name,
wfr.contact_phone,
wfr.contact_id
FROM
`your-project-name.your-dateset-name.whatsapp_forms` AS wf
JOIN
`your-project-name.your-dateset-name.whatsapp_forms_responses` AS wfr
ON
wf.id = CAST(wfr.whatsapp_form_id AS STRING)
WHERE
wf.name = 'you_form_name'
)
SELECT
form_id,
form_name,
submitted_at,
contact_name,
contact_phone,
contact_id,
-- Individual answers (use JSON_VALUE so you get scalar text, not JSON)
JSON_VALUE(raw_response, '$.screen_0_session_usefulness_0') AS session_usefulness,
JSON_VALUE(raw_response, '$.screen_0_Click_here_1') AS qual_feedback,
JSON_VALUE(raw_response, '$.screen_1_Call_back_required_0') AS call_back
FROM
form_responses
ORDER BY
submitted_at DESC;
In the above SQL snippet change the following
- Change the form name in the line
wf.name = form_name - Replace
your-project-name.your-dataset-namewith your actual project name and the data set name everywhere this is mentioned - Replace or add the variable names from your actual form under the
SELECT ...statement for extracting theJSON_VALUESfrom theraw_responses
Things to note:
- Saving the form does not publish the form; it must be
publishedto be used in HSMs. - Once the form is published, it cannot be edited.
- Only after publishing the form, it can be used via WhatsApp.
- One form can be linked to multiple HSM messages.
- Once the form is deactivated, the form cannot be used in new HSMs as long as the form stays in deactivated state
- Once a form is linked with an HSM message, even after it is deactivated, the HSM remains valid for users.
- Once a form is filled by a user in response to a message, it cannot be filled again on the same message
- It is possible to change the form variables names, by altering the fields in the form json
- It is possible to change the screen names by altering the screen id in the form json
- For multi-lingual use cases, separate forms must be created for each language.
- Each language variation must be attached to a language-specific HSM. Follow this documentation on multi-lingual HSMs to learn more.
FAQs
- What is the draft state of the form
Draft state of the form is when the form entity is created in Glific and it can be edited to improve the UI, but the form is not yet published with Meta, therefore it cannot be used in HSMs and it is not yet available to use via WhatsApp
- What is the published state
Published state is when the form is published with Meta and can be used to create a WhatsApp form-linked HSM message that can be sent to users via WhatsApp.
- What is the deactivated state
Deactivated state of the form is when the form can no longer be used for future HSMs. In this state, the HSMs which have the form linked already will remain operational.
- Why are there numbers at the beginning of the responses?
The responses captured from whatsapp forms are returned along with the index of the option chosen by the user, the numbers represent the index of choice.
- How much does it cost to send the form
Using the form in Business Initiated Message scenarios incurs the cost of category of the HSM message the form is attached to. Using the form under service message type scenarios is free of charge. Service messages means when a user initiates the conversation by entering a keyword or clicking on the WhatsApp keyword-encoded link and starting the conversation with the chatbot of your organization.