Record webinar registrations as a conversion event
Every webinar registration fires a GA4 sign_up event carrying the session name, so registrations can be attributed campaign by campaign.
New submission on your webinar registration form
Send a GA4 sign_up event, or a custom event_registration event, with the webinar name as a parameter
One-directional. A submission triggers the action — nothing is written back into your form.
Webinar promotion runs across paid social, an email push and whatever organic traffic the topic pulls in. The registration total arrives in the webinar tool with none of that attached, which makes cost per registration a manual reconciliation every time.
Events teams use this to close the loop before the next campaign brief. One event per submission, tagged with the session name and how the registrant heard about it, puts registrations in the same acquisition table as the sessions that produced them.
Setting it up
- 1
Publish one webinar registration form per session in formformform, so the session name is fixed rather than typed. A form per session is also what lets you switch a Zap off once registration closes.
- 2
In Google Analytics, take the Measurement ID from your web data stream and create a Measurement Protocol API secret.
- 3
Set up the Zap: formformform as the trigger app, New Submission as the event, and the form for the session you are promoting.
- 4
Choose the Measurement Protocol action and settle the event name. sign_up keeps registrations inside GA4's recommended set; a custom event_registration keeps them apart from newsletter signups if you already send those. Pick one and use it for every session.
- 5
Add a webinar_name parameter as a constant set to the session title. Because there is a form per session, it is typed once in the Zap and cannot be misspelled by a registrant.
- 6
Map "How did you hear about this webinar?" into a registration_source parameter, and "Company Size" and "Job Title" into audience parameters if you report on registrant fit.
- 7
Register webinar_name, registration_source and any audience parameters as event-scoped custom dimensions before the first promotion goes live.
- 8
Mark the event as a key event, run one test registration through, confirm it in Realtime, then switch the Zap on.
What maps where
Using the Webinar Registration Form as the starting point. These are its real fields — swap in your own and the mapping works the same way.
| Form field | Google Analytics |
|---|---|
| How did you hear about this webinar? | registration_source event parameter, the self-reported channel to set against GA4's own attribution |
| Job Title | job_role event parameter, for judging registrant fit campaign by campaign |
| Company Size | company_size event parameter, registered as an event-scoped custom dimension |
| Email Updates | marketing_optin parameter recorded as true or false, showing how many registrants also join the list |
| Work Email | Hashed into user_id where you use one; the address goes to the webinar platform, not to Google Analytics |
Variations worth knowing
Registration and attendance are different numbers. Keep this Zap for the submission and add a second Zap from your webinar platform that sends an attended event with the same webinar_name. GA4 then holds both, and the drop between them is your show rate.
If a single form suits a recurring series better, add a question naming the session and map that answer into webinar_name instead of a constant. Keep the options a fixed list, since free text produces a new dimension value for every spelling people use.
If something isn't arriving
Realtime shows the event within seconds; the standard reports are what lag. GA4 processing usually takes several hours and can take a day, so check Realtime for delivery and give the acquisition tables until the next morning before deciding a registration went missing.
Look at the Zap history first. A missing or revoked Measurement Protocol API secret, or a filter step that quietly excluded the run, both end with no event and no complaint from Google Analytics — the Measurement Protocol returns success even when the payload is wrong.
Frequently asked questions
Can I attribute registrations to a specific paid campaign?
Only where the event can be tied to the visitor's session. The event carries the client ID the Zap supplies, so if the real one cannot be passed, use the self-reported source parameter alongside your landing page reports rather than expecting exact campaign credit.
Should I use sign_up or a custom event name for webinars?
sign_up is recommended by GA4 and works in reports with no setup, but it merges with every other signup you send. If webinars need their own line, use a custom event_registration name. Consistency across sessions matters more than which one you choose.
Do registrants need to accept cookies for this to work?
The event is sent server-side from Zapier, so it does not depend on the browser or on your on-page tag firing. That also puts it outside your consent banner, so say on the form what you record and keep personal details out of the event.
Related automations
- Count demo requests as a generate_lead conversion
Each demo request fires a GA4 generate_lead event, so completions sit in your reports next to the campaigns that produced them.
- Log support requests with the issue category attached
Each support request sends a form_submit event carrying the issue category, so you can see which topics drive people off the docs.
- Measure newsletter signups as a sign_up event
Every newsletter subscription sends a GA4 sign_up event, so you can build a funnel from landing page visit to completed signup.
- Track survey completions with the rating attached
Every product survey response sends a custom feedback_submitted event carrying the rating, so respondents become a segment you can analyse.
- Weigh quote requests by estimated deal size
Each quote request sends a generate_lead event with a value attached, so pages bringing bigger requests stand out from pages bringing many.
- Add webinar registrants to a remarketing list
Every webinar registration joins a Customer Match audience you can run follow-up campaigns to after the session.
Build the form first
The automation needs somewhere to fire from. Publish a form, connect it once, and every submission from then on runs this flow.
Start free