Typeform
TrueMetriks tracks every Typeform submission as a lead on your ad platforms. Here is how to set it up.
Video guide
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.
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
Not connected
Calendly
Connected
Microsoft Clarity
Configured (1 project)
Stripe
Connected
Whop
Connected
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.
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
Webhook secret (HMAC SHA-256)
How to verify wiring:
- In Typeform, open your form → Connect → Webhooks → Add webhook.
- Paste the URL above into "Endpoint" and the secret above into "Secret".
- Save the webhook in Typeform.
- Click the ... menu on the webhook row in Typeform → Send test request.
- Come back here and click Check for webhook below. The status will flip to Connected once the test arrives.
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.
Endpoint
We'll send your webhook to this URL
The webhook now appears in the list, but it starts OFF and has no secret yet.
Click Edit on the webhook row, paste your TrueMetriks Webhook secret into the Secret field, and click Save changes.
Endpoint
We'll send your webhook to this URL
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.
Now flip the toggle to Webhook ON. This step is required.
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.
11:55:36 · 1 Jun 2026
01KT19RDZ7QWY55B9XNG8YPQ30
TESTPayload
{
"event_type": "form_response",
"form_response": {
"hidden": {
"tm_evid": "...", "tm_fbp": "...",
"tm_fbclid": "...", "tm_gclid": "...",
"utm_source": "...", "utm_medium": "..."
}
}
}
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
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.
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.
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, andphone_numberso 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.
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.
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.
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
Tracking & scripts
Add third-party tracking and analytics scripts to your funnel.
Head tracking code
<script async src="https://q.demo-brand.example/t/forms.js"></script>
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.
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:
demo-brand.example/
18 min, 12 sec
demo-brand.example/contact
53 sec
Lead
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 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.
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).
First Question*
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.
IF a submission matches this form and these answers
Typeform form title
The exact title of the Typeform form this group applies to (for example "Quiz - Test 1"). Leave empty to apply to every form.
Question
Accepted answers (one per line)
Select or create a custom event - a group without one does nothing.
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
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
Fire when
See guide- 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.
IF a submission matches this form and these answers
Typeform form title
The exact title of the Typeform form this group applies to (for example "Quiz - Test 1"). Leave empty to apply to every form.
Question
Accepted answers (one per line)
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.
IF a submission matches this form and these answers
Typeform form title
Leave empty to apply to every form.
Question
Accepted answers (one per line)
Select or create a custom event - a group without one does nothing.
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
Fire a custom event name alongside the standard one (e.g. Lead + Typeform_HotLead for granular reporting).
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.