Platform
Chatbot Builder Bulk Messaging Team Inbox Mini CRM API & Webhooks AI Integration WhatsApp Flows
Industries
E-commerce & D2C Real Estate Education Healthcare Finance & BFSI Logistics Hospitality Retail
Integrations
Learn
Learning Hub Help & Docs Connect Guides Automation Codex Blog Message Templates
Pricing Start Free Trial →
HomeConnect › Connect Typeform to WhatsApp
Typeform Integration Guide · Forms / Productivity

Connect Typeform to WhatsApp

Send an instant WhatsApp message when someone completes your Typeform: a confirmation to the respondent, an alert to your team, or both. Typeform fires native webhooks on every submission, so no code or third-party tools are required.

Published 23 June 2026  ·  6 min read  ·  Forms / Productivity
Typeform has native webhooks: no code or Apps Script needed

Typeform posts the full form response to a URL you choose the moment it is submitted. Paste your WA.Expert webhook URL in Typeform's Connect panel and toggle the webhook on. That is the entire setup.

The answers array uses type-specific value fields

Each answer in the payload has a type field. The value is in a key that matches the type: type: text → read .text; type: email → read .email; type: phone_number → read .phone_number; type: choice → read .choice.label. Always check the type before reading the value.

Step 1: Get your WA.Expert webhook URL

In WA.Expert, create a new automation and set the trigger to Inbound Webhook. Copy the unique webhook URL shown in the trigger settings. This is where Typeform will POST responses.

Step 2: Add the webhook in Typeform

1
Open your Typeform in the editor. Click Connect in the top menu.
2
Click the Webhooks tab, then Add a webhook.
3
Paste your WA.Expert webhook URL and click Save webhook.
4
Toggle the webhook ON. Webhooks are off by default even after saving.
5
Click Test your webhook to send a sample payload. Check WA.Expert receives it before going live.
Toggle ON after saving

Typeform webhooks are disabled by default after you add them. You must explicitly toggle the webhook to ON. If responses are not reaching WA.Expert, the most common cause is a webhook that was saved but never toggled on.

Official docs

Typeform Webhooks: typeform.com/developers

Step 3: Understand the payload

When a Typeform is submitted, WA.Expert receives a payload like this:

Typeform form_response payload (received by WA.Expert)
{{
  "event_id":   "LtWXD3crgy",
  "event_type": "form_response",
  "form_response": {{
    "form_id":      "lT4Z3j",
    "token":        "a3a12ec67a1365927098a606107fac15",
    "submitted_at": "2026-06-23T08:30:00Z",
    "answers": [
      {{
        "type":  "short_text",
        "text":  "Priya Sharma",
        "field": {{"id":"JwWg","ref":"name_field","type":"short_text"}}
      }},
      {{
        "type":  "phone_number",
        "phone_number": "+919820000001",
        "field": {{"id":"SMEb","ref":"phone_field","type":"phone_number"}}
      }},
      {{
        "type":  "email",
        "email": "priya@example.com",
        "field": {{"id":"AbCd","ref":"email_field","type":"email"}}
      }},
      {{
        "type":   "choice",
        "choice": {{"label": "Product Demo"}},
        "field":  {{"id":"EfGh","ref":"enquiry_field","type":"multiple_choice"}}
      }}
    ]
  }}
}}

Map using field.ref to find each answer:
  ref "name_field"    -> answers[N].text           -> customer_name
  ref "phone_field"   -> answers[N].phone_number   -> customer_phone
  ref "email_field"   -> answers[N].email          -> customer_email
  ref "enquiry_field" -> answers[N].choice.label   -> enquiry_type

Answer type reference

The value field name changes with the question type. Use this table to find the right key for each answer:

Question type in Typeformanswers[N].typeValue field to read
Short text / Long textshort_text / long_textanswers[N].text
Emailemailanswers[N].email
Phone numberphone_numberanswers[N].phone_number
Numbernumberanswers[N].number
Yes / Nobooleananswers[N].boolean (true or false)
Multiple choice (single)choiceanswers[N].choice.label
Multiple choice (multi)choicesanswers[N].choices.labels (array)
Rating / Opinion scalenumberanswers[N].number
Datedateanswers[N].date (YYYY-MM-DD)
File uploadfile_urlanswers[N].file_url

Always read the type field first, then look up the value in the matching key above.

Use field.ref, not the array index

Skipped optional questions are absent from the answers array. This means answers[0] is not always the first question in your form. If a respondent skipped an early optional question, everything shifts. Use answers[N].field.ref to identify each answer reliably. Set readable refs in Typeform under Logic → Field references (e.g. name_field, phone_field) and match on them in WA.Expert.

Worked example: lead form to WhatsApp alert

Full flow — Typeform lead submission to WhatsApp
1. Priya completes your Typeform lead form:
   Name: Priya Sharma
   WhatsApp: +919820000001
   Email: priya@example.com
   Enquiry: Product Demo

2. Typeform POSTs the form_response payload to WA.Expert.

3. WA.Expert maps from field.ref:
   customer_name  = 'Priya Sharma'   (ref: name_field, type: short_text -> .text)
   customer_phone = '+919820000001'   (ref: phone_field, type: phone_number -> .phone_number)
   customer_email = 'priya@example.com' (ref: email_field, type: email -> .email)
   enquiry_type   = 'Product Demo'   (ref: enquiry_field, type: choice -> .choice.label)

4. WA.Expert sends your team:
   'New Typeform lead: Priya Sharma (+919820000001)
    Enquiry: Product Demo | priya@example.com'

5. WA.Expert sends Priya:
   'Hi Priya, thanks for your interest in a Product Demo.
    Our team will reach you on this number within 2 hours.'

Handling retries and duplicates

If WA.Expert does not return a 2xx response, Typeform retries delivery. To avoid sending duplicate WhatsApp messages, track processed event_id values. If you receive the same event_id again, discard it.

Troubleshooting

SymptomLikely causeFix
No webhook firingWebhook toggled offIn Typeform Connect → Webhooks, check the webhook toggle is ON. Webhooks are off by default even after saving.
Wrong value read from answersUsing array index instead of field.refMatch answers using answers[N].field.ref, not position. Optional questions that were skipped shift all subsequent indexes.
Type error reading valueReading wrong value key for the typeCheck answers[N].type first. Then use the matching key: .text for short_text, .email for email, .phone_number for phone_number, .choice.label for choice.
Duplicate WhatsApp messagesTypeform retry on failed deliveryCheck WA.Expert is returning 2xx. Store processed event_id values and discard duplicates.
Phone number emptyUsed email field for phoneTypeform has a dedicated Phone Number field type. Use that for WhatsApp numbers; the value lands in .phone_number.
WA.Expert not receiving payloadAutomation not publishedEnsure the WA.Expert automation is published (not in draft). Use Typeform's Test webhook button to send a sample and verify receipt.

Common questions

How does Typeform send responses to WA.Expert?
+
Typeform POSTs a form_response payload to your WA.Expert webhook URL on each submission. The payload contains form_response.answers[], an array of answered questions.
Why does the value field name change?
+
Typeform uses the type to name the value key: type:text -> .text, type:email -> .email, type:phone_number -> .phone_number, type:choice -> .choice.label. Check type first.
Why is a question missing from answers?
+
Skipped optional questions are absent. Always use field.ref to identify answers, not array position.
What is field.ref?
+
A stable identifier for each question, set in Typeform under Logic → Field references. Use it to match answers reliably regardless of which questions were skipped.
Does Typeform retry failed webhooks?
+
Yes. If your endpoint doesn't return 2xx, Typeform retries. Track event_id and discard duplicates to avoid sending the same WhatsApp message twice.
Does this incur extra WA.Expert charges?
+
Each WhatsApp message uses a message credit. Utility: Rs. 0.14 on Starter, same Meta rates on Complete. No charge for receiving the webhook.

Connect Jotform to WhatsApp

Jotform native webhooks: similar to Typeform, simpler payload structure.

Read guide →

Connect Google Forms to WhatsApp

Google Forms via Apps Script: onSubmit trigger posts to WA.Expert.

Read guide →

External API Request Step

Master every field in WA.Expert's HTTP action step.

Read foundation guide →

Connect Typeform to WhatsApp today

Free trial, no credit card. If you get stuck, we answer live on WhatsApp.

Start Free Trial → Book a Demo
1