PROJECT / ANALYTICS
Marketing Attribution
MARKETING SOURCE → CRM → REPORTING
Marketing spend looked busy in clicks and opens, but nobody could defend which channels actually produced clients. Wired tracking and reporting so ROI was clear.
- Project type
- Marketing attribution / analytics
- Role
- Marketing consultant + integrator
- Systems
- WordPress · Salesforce · GA4 · Looker Studio
- Status
- Internal system
THE STARTING POINT
Clicks and opens. Not clients.
A multi-office professional firm was spending across Google Ads, email, events, and referrals. Leadership could see activity - clicks, opens, impressions - and could not defend which of those channels actually produced clients. UTM parameters were inconsistent. GA4 was installed, but it was not measuring the funnel that mattered.
THE ATTRIBUTION MODEL
The source has to still be there when the form is submitted.
This is not a first-touch, last-touch, or multi-touch model in Salesforce. It is operational: the campaign identifiers that arrived with the click have to survive the visit, land on the form, and sit on the CRM record that sales actually uses - so reporting can follow a client back to a channel and a campaign.
CAPTURED
- Standardized UTM source, medium, and campaign
- Channel - Google Ads, email, events, referrals
- Pardot campaigns tagged with the same convention
CONNECTED TO
- The WordPress form submission, via Gravity Forms
- The matching record in Salesforce
- Reporting by channel, source, and campaign - spend, leads, and revenue
HOW THE DATA CONNECTS
Attribution has to survive the visit.
A landing-page form is straightforward. The failure is the person who clicks an ad, browses, then submits a form on another page - and the campaign identifiers never make it into the CRM. GA4 was re-instrumented around the actual sales funnel; the CRM path is what made ROI defensible.
- 01
Standardize
The same UTM convention on every campaign so channels can be compared.
- 02
Persist
A WordPress snippet appends UTM parameters onto redirect pages so they are not dropped while someone browses.
- 03
Capture
Gravity Forms passes those values into Salesforce with the submission.
- 04
Report
Dashboards in the CRM first. Looker Studio and Sheets where the CRM ran out of room. Quarterly and annual reports for the executive team.
WHAT IT MAKES VISIBLE
Spend decisions from clients, not clicks.
Someone can now answer which channels and campaigns produce clients, and which only produce activity - using the same source data that sits on the CRM record.
OPERATING VIEW
- Channel, source, and campaign in CRM dashboards
- GA4 conversion events aligned to the sales funnel
LEADERSHIP VIEW
- Looker Studio and Sheets for spend, leads, and revenue
- Quarterly and annual reports for budget decisions
WHERE IT LANDED
Marketing activity now lands on CRM records with consistent source and campaign data. Reporting can follow that into channel and campaign ROI, so spend decisions rest on which work produced clients - not on clicks and opens.
Channels that looked busy but did not produce clients were cut. I designed and built the tracking and reporting. It runs as an internal system.
MORE WORK
01SYSTEMS
WhatConverts → Salesforce
Paid leads were sitting in one tool while sales waited on manual CRM entry. Built a pipeline so new leads land in Salesforce in seconds, ready to call.
VIEW PROJECT →02WEBSITE
One Drop Refillery
A local refill shop needed a website that matched the store - Square checkout, pickup, events, and analytics the owner could run without a developer on call.
VIEW PROJECT →
Dupey Consulting