Webflow's native Form Block can carry TraceLead's attribution in hidden inputs. Webflow sends every named input with the submission, so the values appear in Site settings → Forms submissions, the notification email and any integration (Zapier, Make, a webhook) that reads the form.
Status: tested on every release against a Webflow Form Block's published markup (tests/e2e/fixtures/webflow.html). Not yet verified on a live Webflow site; see the integrations ledger.
1. Add the snippet
In Site settings → Custom code → Head code, paste the TraceLead tag and the consent call from Installing the snippet. Custom code needs a paid Webflow site plan. Publish the site.
2. Add hidden inputs to the form
The Designer has no hidden-field element, so use one of these. Both work on the same form.
Option A: an Embed element (recommended)
Drag an Embed element inside the Form Block and paste the inputs you want:
<input type="hidden" name="tl_channel">
<input type="hidden" name="tl_source">
<input type="hidden" name="tl_utm_campaign">
<input type="hidden" name="tl_landing_page">
The names must match your site's field mappings in TraceLead; tl_<field> is the default. The full list of fields is in Installing the snippet.
Option B: a Text Field with a custom attribute
Add a Text Field to the form, give it the name you want to see in submissions (for example Source), add the custom attribute data-tracelead with the value source under Element settings → Custom attributes, and hide it with a class set to display: none. The snippet fills any input carrying data-tracelead, whatever its name. Do not make the field required.
3. Check it
Open the published page with ?utm_source=test&utm_medium=cpc, accept the consent banner, submit the form and open the submission in Site settings → Forms. tracelead('diagnostics', console.log) in the browser console shows how many inputs each mapping matched.
Limits
- Webflow form submissions run through Webflow's own handler; TraceLead never sees the answers. The lead count on your TraceLead dashboard comes from the snippet noticing the submit, with the form's
id(wf-form-<name>). - Pages with a CMS template work the same way; the Embed element can be part of a Symbol so every form carries it.