Typeform

TrueMetriks tracks every Typeform submission as a lead on your ad platforms. Here is how to set it up.

Video guide

How to connect Typeform to TrueMetriks

Connect Typeform to TrueMetriks

Step 1 - Open Settings

In TrueMetriks, pick the site you want from the selector at the top of the left sidebar, then click Settings at the bottom of the sidebar.

demo-brand.example

Web Analytics

  • Main
  • Revenue
  • Leads
  • Pages

Product Analytics

  • Funnels
  • Journeys
  • Products

Behavior

  • Events
  • Platform Health
  • Sessions
  • Users

Settings

  • UTM Builder
  • API
  • Integrations
  • Tutorial
  • Settings
In TrueMetriks, pick your site at the top, then click Settings at the bottom of the left sidebar.

Step 2 - Open the Typeform tile

Click the Integrations tab, then click the highlighted Typeform tile.

Integrations

Connect third-party data sources to fire events into TrueMetriks.

Typeform

Typeform

Not connected

Calendly

Calendly

Connected

Microsoft Clarity

Configured (1 project)

stripe

Stripe

Connected

Whop

Connected

In TrueMetriks, open Settings → Integrations and click the highlighted Typeform tile.

Step 3 - Generate your webhook URL and secret

Click Set up Typeform integration to generate your per-site webhook URL and HMAC secret.

← Back to Integrations

Typeform

Typeform is not configured yet. Click below to generate your per-site webhook URL and HMAC secret. Then paste them into each Typeform form you want to ingest events from.

Click Set up Typeform integration to generate your webhook URL and HMAC secret.

The page now shows your Webhook destination card with the Webhook URL and Webhook secret (HMAC SHA-256). Keep this tab open - you will copy both values into Typeform next.

Typeform

Webhook ready - waiting for your first Typeform submission to confirm wiring.

Webhook destination

Webhook URL

https://q.demo-brand.example/api/webhooks/typeform/14df34eb37606eaa4338f89228436a2b

Webhook secret (HMAC SHA-256)

327f3bc17ea234475e7f05d059ce96a5d3e47c8b0e4cfe95ee61b9bd217df6ae

How to verify wiring:

  1. In Typeform, open your form → Connect → Webhooks → Add webhook.
  2. Paste the URL above into "Endpoint" and the secret above into "Secret".
  3. Save the webhook in Typeform.
  4. Click the ... menu on the webhook row in Typeform → Send test request.
  5. Come back here and click Check for webhook below. The status will flip to Connected once the test arrives.
Copy the webhook URL and secret. You will paste both into your Typeform form next.

Step 4 - Add the webhook in Typeform

Open the form you want to track inside Typeform and go to the Connect tab, then Webhooks, then click Add a webhook. Paste your TrueMetriks Webhook URL into the Endpoint field and click Save webhook.

Add a webhook

Endpoint

We'll send your webhook to this URL

https://q.demo-brand.example/api/webhooks/typeform/14df34eb37606eaa4338f89228436a2b
In Typeform, open Connect → Webhooks → Add a webhook. Paste your TrueMetriks webhook URL into Endpoint and click Save webhook.

The webhook now appears in the list, but it starts OFF and has no secret yet.

https://q.demo-brand.example/api/webhooks/typeform/1... Webhook OFF
After you save the webhook it starts OFF. Click Edit to paste the secret first, then come back and flip the toggle.

Click Edit on the webhook row, paste your TrueMetriks Webhook secret into the Secret field, and click Save changes.

Edit webhook

Endpoint

We'll send your webhook to this URL

https://q.demo-brand.example/api/webhooks/typeform/14df...

Secret

Verify that requests are coming from Typeform and nobody else.

••••••••••••••••••••••••••••••••••••

Delete webhook

If you delete this webhook, we can't get it back for you after.

Click Edit on the webhook row, paste your TrueMetriks webhook secret into Secret, and click Save changes.

Now flip the toggle to Webhook ON. This step is required.

https://q.demo-brand.example/api/webhooks/typeform/1... Webhook ON
Once the secret is saved, flip the toggle to Webhook ON. This is required - an OFF webhook delivers nothing.

Step 5 - Send a test request and confirm the connection

On the webhook row in Typeform click View deliveries, then Send test request. A 200 response means TrueMetriks received and verified it.

Recent deliveries

11:55:36 · 1 Jun 2026

01KT19RDZ7QWY55B9XNG8YPQ30

TEST
REQUEST RESPONSE 200

Payload

{
  "event_type": "form_response",
  "form_response": {
    "hidden": {
      "tm_evid": "...", "tm_fbp": "...",
      "tm_fbclid": "...", "tm_gclid": "...",
      "utm_source": "...", "utm_medium": "..."
    }
  }
}
In Typeform, click View deliveries then Send test request. A 200 response means TrueMetriks received it - your status will flip to Connected.

Back in TrueMetriks, click Check for webhook. Within a few seconds the status flips to a green Connected with the time of the last webhook received.

← Back to Integrations

Typeform

Connected. Last webhook received: 01/06/2026, 06:15:16

When this webhook fires, trigger this event

Event to fire: Lead

Need a custom event name (for example to send a uniquely-named event to Facebook)? Create one on the Events page that fires when this event fires.

Connected. Pick the event each submission fires - Lead is the default.

Step 6 - Declare the tracking parameters on your form

Declaring these parameters is required for attribution to work. The TrueMetriks card lists exactly what to add.

Custom URL parameters to add (one-time per form)

Typeform only forwards URL parameters into the webhook payload when they are declared on the form. Without this step, Facebook Click ID / Google Click ID / TikTok Click ID will NOT reach Facebook or Google CAPI on form submissions - you'll see Leads with email but no click ID.

In Typeform: open the form → Workflow tab → Pull data in panel. The standard 5 UTM names (utm_source, utm_medium, utm_campaign, utm_term, utm_content) are already there under Source tracking - just toggle them ON. Then under Custom URL parameters, click + Add new parameter for EACH of the 8 names below.

tm_evid tm_fbp tm_fbc tm_fbclid tm_gclid tm_gbraid tm_wbraid tm_ttclid
The eight click-ID parameters TrueMetriks needs you to declare on each form, plus toggling on the five UTMs.

In Typeform, open the same form and go to the Workflow tab, then the Pull data in panel. Do three things there and click Save:

  • Under Source tracking, toggle ON the five UTM parameters: utm_source, utm_medium, utm_campaign, utm_term, utm_content.
  • Under Respondent information, toggle ON first_name, last_name, email, and phone_number so the submitter's identity rides along.
  • Under Custom URL parameters, click + Add new parameter once for each of the eight TrueMetriks names: tm_evid, tm_fbp, tm_fbc, tm_fbclid, tm_gclid, tm_gbraid, tm_wbraid, tm_ttclid.
Source tracking
utm_source
utm_medium
utm_campaign
utm_term
utm_content
Respondent information
first_name
last_name
email
phone_number
user_id
Custom URL parameters
tm_evid tm_fbp tm_fbc tm_fbclid tm_gclid tm_gbraid tm_wbraid tm_ttclid
In the form's Workflow → Pull data in panel: toggle ON the five UTMs under Source tracking and first_name / last_name / email / phone_number under Respondent information, then add the eight tm_ parameters under Custom URL parameters.

Repeat step 6 on every Typeform form you want to attribute. The webhook URL and secret are per site, so you only generate those once; the parameters are declared per form.

Step 7 - Choose the event to fire

Back in TrueMetriks, under When this webhook fires, trigger this event, pick the Event to fire.

Event to fire:
Lead
Schedule
The two built-in events: Lead (selected by default) and Schedule. Whichever you pick fires on every submission.

Two built-in events are available - Lead is the default:

  • Lead - the submission is a lead (the default, and what most forms are).
  • Schedule - treat the submission as a booking or appointment request.

Whichever you pick fires on every submission this webhook receives.

Want a uniquely-named Facebook event (for example Lead_Typeform) to also fire on every submission? Add it under Custom event mappings in your Facebook integration - it fires your custom name alongside the standard event on every submission, and restricted-category advertisers can uncheck the standard event so only the custom name fires. To fire a custom event only for specific forms or answers, use Custom events for specific forms below instead.

Step 8 - Add the attribution helper script

The attribution helper script fills the hidden fields you declared in step 6 so each submission carries its ad click IDs. Copy it from the card:

Attribution helper script (optional)

Drop this script on every landing page that hosts a Typeform embed. It auto-injects the visitor's TrueMetriks ID and Facebook / Google / TikTok click IDs into the hidden fields you added, so attribution survives the server-to-server webhook hop.

<script async src="https://q.demo-brand.example/t/forms.js"></script>
Copy the helper and paste it below your tracking snippet on every page that embeds Typeform.

Paste it on every landing page that hosts a Typeform embed, right below your existing TrueMetriks tracking snippet in the page's <head>. For example, in a GoHighLevel funnel's Head tracking code it sits directly under the install snippet:

← Back

Book a Call

Steps Stats Sales Security Events Settings

Tracking & scripts

Add third-party tracking and analytics scripts to your funnel.

Head tracking code

<script async src="https://q.demo-brand.example/t/s-ghl/9bf78a6b.js"></script>

<script async src="https://q.demo-brand.example/t/forms.js"></script>
Funnel Settings → Tracking & scripts → Head tracking code - the forms.js helper sits directly below your TrueMetriks install snippet.

The same applies to ClickFunnels, custom sites, and any other platform install - paste the helper into the head, below your tracker.

On WordPress you do not touch any code. In the TrueMetriks plugin settings, open the Calendly & Typeform card and tick Load Calendly / Typeform attribution helper - the plugin injects it for you on every page.

Calendly & Typeform

Embedding Calendly or Typeform on this site? Enable this to also load the TrueMetriks attribution helper. It passes the visitor's tracking ID and ad-platform click IDs into the form so bookings and submissions attribute back to the ad that drove them.

Load Calendly / Typeform attribution helper
In the WordPress plugin: tick this box and Save - the helper is injected on every page automatically.

See the WordPress install guide for where the plugin settings live.

Verify it end to end

Submit your form once from a visit that came in through your site. Within a few seconds the submission appears in the visitor's timeline as your chosen event, with the form answers attached:

[email protected] 👁 1 Lead 1 Facebook /contact
Timeline Session Info
1

demo-brand.example/

18 min, 12 sec

2

demo-brand.example/contact

53 sec

Lead

Budget: $5k - $10k customer_type: new How did you hear about us: Instagram utm_source: facebook
The submission lands in the visitor's timeline as a Lead event, with the form answers attached as event properties.

Custom events for specific forms (optional)

Your Lead (or Schedule) event fires on every submission automatically. Add a group here to also fire a custom Facebook event when a submission comes from a specific form and, optionally, answers a question a certain way. This is how you send a distinct conversion for a high-intent form or answer without changing what fires for everyone else.

How Typeform custom events for specific forms work

How it works

A group is made of a Typeform form to target (by its exact title) and, optionally, one or more questions whose answers must match:

  • A group also fires its own custom event. It does not change or gate the standard Lead/Schedule, which still fires on every submission.
  • Leave a group's form title empty to apply it to any form.
  • A submission that matches several groups fires them all, so two groups can target the same form with different answers and trigger two different custom events.
  • A group with no custom event selected does nothing - you must select or create one.
  • Answers match case-insensitive but otherwise exactly (not "contains") - "Yes" matches "yes", but the answer must be copied verbatim. This works best with Multiple Choice questions, where the answer options are fixed and you can copy them word for word. Free-text answers are unpredictable, so avoid them.

Step A - Add a group

On the Typeform page, scroll to Custom events for specific forms (optional) and click + Add group.

Custom events for specific forms (optional)

Lead fires on every submission automatically. Add a group to also fire a custom Facebook event when a submission comes from a specific form and, optionally, answers questions a certain way. Each group fires its own custom event, and a submission that matches several groups fires them all.

No groups yet. Your Lead event still fires on every submission.

With no groups, only your standard Lead event fires. Click Add group to add a custom event for a specific form.

Step B - Find your form title and answers in Typeform

The values you match on come straight from your form. Open the form in Typeform: the form title is in the breadcrumb at the top left. Use Multiple Choice questions so the answer options are fixed, and copy each option verbatim (the match is case-insensitive but otherwise literal).

Forms › Quiz - Test 1 Content Workflow Connect Share Results
1First Question
2Second Question
3Third Question
4Your Name
5Email

First Question*

1
2
3
In Typeform, the form title (here "Quiz - Test 1") is in the breadcrumb at the top left. Each question's name (for example "First Question") and its answer choices (1, 2, 3) are what you copy into the fire condition.

Step C - Set the form, conditions, and the custom event to fire

Back in TrueMetriks, name the group and type the exact Typeform form title (leave it empty to apply to any form). Add a condition with the exact Question and one or more Accepted answers - one per line, click + Add answer for each. The group matches when the submitter's answer is one of those values.

Custom events for specific forms (optional)

Lead fires on every submission automatically. Add a group to also fire a custom Facebook event when a submission comes from a specific form and, optionally, answers questions a certain way.

Untitled group Investment Quiz · 1 condition · fires no event selected

IF a submission matches this form and these answers

Typeform form title

Investment Quiz

The exact title of the Typeform form this group applies to (for example "Quiz - Test 1"). Leave empty to apply to every form.

Question

How much money can you invest?

Accepted answers (one per line)

I have over $5000
I'm ready with $10000
THEN also fire Select a custom event... + Create new

Select or create a custom event - a group without one does nothing.

A group scoped to the "Investment Quiz" form. It fires its custom event only when "How much money can you invest?" is answered "I have over $5000" or "I'm ready with $10000" (case-insensitive, matched verbatim). Pick the event under also fire, or click Create new.

Then, under also fire, pick the custom event this group fires. If you have already created one, select it from the dropdown. Otherwise click Create new:

Create custom event

Standard event

Lead

Follows the "Event to fire" you chose above (currently Lead). Change it there and new custom events ride along with that event instead.

Custom event name

Typeform_HotLead

Fire when

See guide
Always
Cancel Create
Standard event is locked to your Event to fire (Lead here). Name the custom event, leave Fire when on Always (or choose New customers only / Returning only), then click Create. It is created as a Facebook Custom Conversion tagged Typeform.
  • Standard event is locked to the Event to fire you chose above (Lead or Schedule) - the custom event rides along with it.
  • Custom event name is the uniquely-named event Facebook records (for example Typeform_HotLead).
  • Fire when is Always by default, with New customers only and Returning only also available.

Click Create and the custom event is created as a Facebook Custom Conversion, tagged Typeform.

Step D - Add more conditions or groups, then save

Click + Add condition to require more than one answer. With two or more conditions a Match mode appears: ALL conditions must match (AND) or ANY condition matches (OR). Add more groups to target other forms or answers. Click Save changes when you are done.

Custom events for specific forms (optional)

Lead fires on every submission automatically. Each group also fires its own custom event, and a submission that matches several groups fires them all.

High-intent leads Investment Quiz · 2 conditions · fires Typeform_HotLead

IF a submission matches this form and these answers

Typeform form title

Investment Quiz

The exact title of the Typeform form this group applies to (for example "Quiz - Test 1"). Leave empty to apply to every form.

Match mode: ALL conditions must match (AND) ANY condition matches (OR)

Question

How much money can you invest?

Accepted answers (one per line)

I have over $5000
I'm ready with $10000
Are you ready to start now?
Yes
THEN also fire Typeform_HotLead locked

The custom event locks once the group is saved (same rule as Facebook custom events). Form title, questions and answers above stay editable. To fire a different event, remove this group and add a new one.

Untitled group Any form · 1 condition · fires no event selected

IF a submission matches this form and these answers

Typeform form title

e.g. Lead form

Leave empty to apply to every form.

Question

Exact question text

Accepted answers (one per line)

e.g. yes
THEN also fire Select a custom event... + Create new

Select or create a custom event - a group without one does nothing.

The first group is saved, so its custom event Typeform_HotLead is locked (the form, questions, and answers stay editable). Two or more conditions reveal the Match mode (ALL/AND or ANY/OR). Add more groups to fire more custom events; click Save changes when done.

Once a group is saved, its custom event locks - the form title, questions, and answers stay editable. To fire a different event, remove the group and add a new one.

Where the custom event shows up, and how to remove it

Each custom event you create appears in your Facebook integration under Tracking, in the Custom events list, tagged with its standard event and its origin (for example Lead and Typeform):

Custom events

See guide Create

Fire a custom event name alongside the standard one (e.g. Lead + Typeform_HotLead for granular reporting).

Lead Typeform Typeform_HotLead
In your Facebook integration under Tracking, the event you created shows in the Custom events list with two tags: its standard event (Lead) and its origin (Typeform). Removing the group does not delete it here - delete it from this list to remove it entirely.

Removing a group does not delete this event - it lives on your Facebook pixel as a Custom Conversion, so it stays available to select for other groups. To delete it entirely, remove it from the Custom events list in your Facebook integration.

Frequently asked questions

Why do I have to declare tracking parameters on the form?

Typeform only forwards URL parameters into the webhook payload when they are declared on the form. Without this step your Facebook, Google, and TikTok click IDs never reach the ad platforms, so you would see Leads with an email but no click ID.

Is the webhook URL and secret per form or per site?

The webhook URL and secret are per site, so you generate them once. The tracking parameters, however, must be declared on every Typeform form you want to attribute.

Can I fire a custom event only for specific forms or answers?

Yes. Your Lead or Schedule event fires on every submission, but you can add groups that also fire a custom Facebook event only when a submission comes from a specific form or answers a question a certain way. Each matching group fires its own custom event.

Need help with this?

Reach us instantly on WhatsApp, or send us a message and we will get back to you. On workdays we usually respond in less than 24 hours.

or send us a message