Product
One customer data layer. Every growth workflow.
SetRoasFlow sits between your website and the tools that act on it. Events come in once, become one profile per customer, and go back out to advertising, CRM, analytics and your own warehouse.
How it works
One path in, one path out.
Every event takes the same route, whichever tool it ends up in. That is the whole point of a data layer: you instrument once, and each destination gets the same complete record.
Sources
SetRoasFlow · at the edge
Consent gate
EU opt-in · US opt-out · GPC
Identity resolution
email, phone, order ID, session
Customer profile
lifetime value, orders, channel
Destinations
Advertising
SHA-256 hashed
Analytics
pseudonymous
CRM & email
plaintext, only if you connect it
Warehouse
your own storage
Customer data infrastructure
Every signal, collected once
Your site, your store and your backend all send events to one endpoint on your own domain. Nothing depends on a browser extension surviving, or on a pixel that Safari decides to expire.
Server-side event collection
Page views, add-to-carts, checkouts, purchases and any custom event you define, received at the edge in milliseconds.
Identity resolution
Email, phone, customer ID, session and anonymous ID collapse into a single identity, so the same person is one person across devices.
Unified customer profiles
One durable profile per customer with orders, lifetime value, first and last touch, and every event in order.
First-party by construction
Data is collected on your domain and stored under your account. There is no third-party cookie anywhere in the path.
Activation
Send the profile where the work happens
A profile that only lives in a dashboard changes nothing. Segments are built once and pushed to the tools that spend your budget and send your email.
Segments from real behaviour
Build audiences on lifetime value, order count, recency, channel, consent state or any attribute you collect.
Audience sync to advertising
Custom audiences and lookalike seeds pushed to Meta, Google Ads, TikTok, LinkedIn, X, Snapchat, Pinterest and Reddit.
CRM and lifecycle sync
The same segments kept in step with Klaviyo, HubSpot, Mailchimp and ActiveCampaign, so your flows always target the current list.
On-site personalization
The segment is resolved at the edge before the page paints, so content can change for a returning VIP without a flash of the default.
Measurement
Numbers that come from the same source as the ads
Attribution and ROAS are computed on the profiles that were actually sent to the platforms, not on a second, differently shaped copy of your data.
Attribution and ROAS by channel
Ad spend is imported automatically where the platform allows it, then matched against revenue per channel and per campaign.
Lifetime value and cohorts
See what a cohort is worth over time, not just what it bought on day one.
Repeat rate and churn
Who came back, who stopped, and how long that usually takes for your customers.
Data infrastructure
Your data leaves whenever you want it to
A data layer you cannot get out of is a lock-in, not infrastructure. Everything collected is exportable in the shape it was stored in.
Warehouse export
Stream events and profiles to BigQuery, Snowflake, Amazon S3 or Cloudflare R2 on a schedule you set.
Signed webhooks
Every batch is signed with HMAC-SHA256 so your endpoint can verify it came from us and was not altered.
Self-service deletion
Erase all tracking data for a website, or for the whole account, from settings. It runs immediately, without a support ticket.
Privacy
Consent decided before the data moves
Consent is not a checkbox we record after the fact. It is evaluated at the edge, per request, and it decides whether the event is dispatched at all.
Region-aware consent
Opt-in enforced for the EU, EEA, UK and Switzerland; opt-out honoured for the US and the rest of the world, including the Global Privacy Control signal.
Hashed before egress
Email and phone are hashed with SHA-256 before an advertising platform ever sees them. Plaintext only reaches CRMs you connect on purpose.
Processed at the edge
Events are handled in the Cloudflare region closest to the visitor, and only the data you configured is forwarded onward.
Live means running in production and validated on real accounts. Beta means built and working, but not yet validated with a customer account. We would rather label it than let you find out.
What you end up with
A profile, and the numbers built on it.
Scattered signals become one person with a history. Once that exists, attribution stops being a reconciliation exercise: revenue is already attached to the profile it came from.
Customers · Profile
Ava Morrison
Lifetime value
€2,480
Orders
12
Avg order
€207
Resolved into one identity
Recent
Acquisition · Last 30 days
Return on ad spend, by channel
spend imported automaticallyIllustrative: the layout is the product, the numbers are made up.
Ready to own your customer data?
Create your account, add the script or install the app, and your first customer profiles start forming today. Free while in beta.