First-Party Attribution & Intent Personalization Engine
A first-party attribution and intent engine that captures every ad touch, scores every visitor in real time, personalizes the portfolio to what they came looking for, and delivers the full click-to-CRM chain — built, deployed, and QA'd end-to-end by the agent on assignment.
What was getting in the way.
Ad clicks were going dark between the click and the CRM. UTMs and gclids got stripped by redirects and single-page navigation, the CRM only saw whoever filled a form — with no memory of the visits before it — and there was no way to feed real outcomes back to Google's bidding. Every visitor also saw the same generic portfolio no matter what they came looking for.
Context
The agency's own lead-gen site — dogfooding the engine as a proving ground before client rollout.
How the work runs.
- 01
Capture the click
Visitor lands on any tagged URL → SDK captures 20+ ad/click parameters, referrer, and landing page; first touch written once, never overwritten.
- 02
Stream every page view
Each view streams to a secure ingest function adding geo and a privacy-safe device fingerprint that matches return visitors across devices and incognito.
- 03
Score behavior in real time
Pricing/contact views, case-study views, form starts, dwell time, and return visits roll into a per-visitor lead score.
- 04
Personalize the portfolio
Pages browsed infer the visitor's industry → the portfolio grid silently reorders to lead with matching case studies — a dog trainer searching "dog training" sees dog-training wins first.
- 05
Deliver the chain to the CRM
On form submit, the full attribution chain (UTMs, gclid, first + last touch) rides into the CRM contact as custom fields, plus a join key linking the person to their entire anonymous browsing history.
- 06
Keep outcomes export-ready
An export view keeps gclid + outcome + score ready for Google Ads offline-conversion upload, so closed revenue can train the bidding.
- 07
QA the whole chain
The agent runs automated browser E2E QA — synthetic tagged visit → database rows → CRM fields — read-only against production.
Evidence from the workflow.


Each system has a role.
Record of Truth — Every visit, score, and touch — first-party, owned, service-role protected.
Website + Cloud Database
Record of Truth · Intake — Leads enriched with the full attribution chain as custom fields.
CRM
Signal — Campaign tagging and click identifiers feeding the capture SDK.
Tag Manager / Analytics
Action — Offline-conversion feedback so closed revenue trains the bidding. (Next phase)
Google Ads
Action — Weekly attribution & lead-quality digest where the team works. (Next phase)
Slack
Assurance — Synthetic tagged visits verified through to database and CRM, read-only.
Browser E2E QA
Why this is Coworker.
Takes assignments and reports back. You hand it work, it prepares and returns a result.
Built as a Coworker: designed, built, deployed, and QA'd end-to-end by the agent on assignment. It graduates to Operator when the scheduled reporting and export cadence turns on.
Attribution tables are service-role only — no public read · IPs truncated + hashed, never stored raw · Privacy-policy disclosure ships only with human approval (pending) · QA runs read-only against production · Test records flagged and purged on human sign-off · Scoring weights and featured slugs are human-tunable.
Effects / Outcomes
Designed, built, deployed, and E2E-verified in one working day — ~1.6 platform credits build cost
Zero performance tax: +0.13% bundle size, no blocking scripts, forms untouched and regression-tested same day
Verified end-to-end: synthetic ad-click visitor scored 77, personalized the portfolio, arrived in the CRM with every UTM + gclid intact
Find where a workflow like this fits.
Start with the systems, work, constraints, and authority already present in your operation.