flowsk.com
Features

Five decisions, and what each one buys you

Flowsk is small on purpose. Each of these is a deliberate design decision about how attribution data should behave — and each one is the reason a specific class of wrong number stops appearing in your reports.

One visitor · one identity · one receipt
  1. Day 0 · 14:02 client $view

    Anonymous click from an ad

    utm_source=facebook · utm_campaign=spring-prospecting · fbclid=IwAR…

    A durable first-party id is minted by your server — not by JavaScript, so Safari does not delete it in seven days. The campaign that paid for this click is written to the visitor as first touch.

  2. Day 0 · 14:05 client $view

    Three pages, then leaves

    /collections/new → /products/lamp → /products/lamp?variant=black

    Behavioural events, sent client-side. Cheap, fast, and expendable — if an ad blocker eats one, nothing important is lost.

  3. Day 4 · 09:31 server identify

    Returns and gives an email

    hello@example.com · via: newsletter_popup

    The anonymous-to-known bridge. Every session before this moment retroactively belongs to a known person, and the server records what caused the identification — not just that it happened.

  4. Day 11 · 20:47 both purchase

    Buys — counted once

    order_10482 · $129.00 · confirmed by client + server

    The browser reports the purchase and so does your backend. A shared dedup key collapses them into one conversion, marked confirmed by both sides, with the server's amount as the truth.

This is not a model. It is the receipt for one conversion — and you can pull it for any of them.

first touch: facebook / spring-prospecting

All five, for $29 a month.

There are no tiers — every account gets the durable id, the server-side events, the de-duplication, the journeys and the reporting.