Referral & UTM attribution
Captures where a visitor came from — a referral code (/r/CODE or ?ref=) and utm_* campaign params — into a first-touch cookie, and attaches it to leads (the contact form today, flow intake later) so they're credited to their source. GA reads utm_* natively too.
If you are building a front end
Your front end calls this over the same-origin `/api/v1` proxy — no backend code to write, no schema to design. Endpoints: Attached to the contact submit payload; consumed by your contact endpoint / future Genesis CRM lead-intake..
Bring any front end — hand-written, or generated with Lovable, v0, Bolt, Claude, or Cursor. You get auth, a multi-tenant database, payments through your own Stripe, and email/SMS without writing or hosting a backend.
- How to turn it on
- Always on. Share referral links as /r/<code>; campaign links with utm_* params. lib/attribution.ts getAttribution() exposes it to any lead-creating surface.
- Who can use it
- none (non-sensitive marketing cookie, SameSite=Lax).
- The API behind it
Attached to the contact submit payload; consumed by your contact endpoint / future Genesis CRM lead-intake.- Where it lives
- /r/[code] (referral landing)every page (first-touch capture)/contact (attached to lead)
See it in context
Marketing & lead capture — the full walkthrough, step by step: Landing pages, giveaways, quizzes, and attribution — clicks become tracked leads.
Machine-readable
This page is generated from our published capability catalog. Point your AI assistant at /features.json (or /llms.txt) and it can read every feature, how to enable it, and the endpoints behind it — then build against them.