flowsk.com
Webflow guide

First-party attribution for Webflow

Webflow gives you a custom-code field and nothing else — no server, no middleware, no webhook you write yourself. That constrains what is possible, and it is worth being honest about the ceiling rather than pretending otherwise.

Quick answer

Durable id (server-set) + client events (behaviour) + server events (truth) + dedup key

Snippet in Project Settings → Custom Code; conversions confirmed by whatever processes the payment or form. The one decision that matters on Webflow: who writes the visitor id. Written by JavaScript it lives 7 days in Safari; written by a server it lasts as long as you set it.

Project Settings → Custom Code → Head Code. Publish to apply — the code does not take effect in the designer preview.

What Webflow gives you for free

Every stack has a natural advantage for first-party measurement. Use it before reaching for a tag manager.

Custom code in head runs early, before most embeds

Native form submissions are easy to identify on

Webflow Logic / webhooks can forward form submissions server-side

What breaks on Webflow

The failure modes specific to this stack — the ones a generic install guide will not warn you about.

No server, so no server-set cookie

Without your own backend, the visitor id must be written by JavaScript — which means the Safari 7-day cap applies.

Fix  Compensate with early email identification: on Webflow sites, the form is the durable identifier.

Ecommerce checkout is hosted

Webflow's checkout is on their infrastructure; your custom code does not run there the same way.

Fix  Use the order confirmation page plus a webhook from your payment processor for the authoritative event.

Embeds load in iframes

Third-party form and booking embeds run in an iframe and cannot see your page's identity.

Fix  Pass the visitor id into the embed URL as a query parameter so the downstream tool records it.

Frequently asked questions

Can Webflow do ITP-proof attribution?

Not fully on its own — with no server of your own, the visitor id has to be set by JavaScript, so Safari caps it at 7 days. What you can do is identify early: capture the email on the first form, and the journey survives on identity instead of on a cookie.

Where do I put the tracking snippet in Webflow?

Project Settings → Custom Code → Head Code, then publish. Page-level custom code works too, but site-level means you never forget a page.

How do I track Webflow form submissions?

Listen for the native form submit event for the client-side signal, and forward the submission server-side via a Webflow webhook or an automation tool for the authoritative confirmation.

What about Webflow Ecommerce?

Use your payment processor's webhook (Stripe, for example) as the source of truth for purchases. That event comes from a server and cannot be blocked.

See the receipt for every conversion.

Flowsk Signals stitches the anonymous click to the email to the purchase — first-party, server-side, de-duplicated on a key you choose. One snippet, $29/mo, and a journey you can inspect event by event.