The problem
When I joined Clearbit, we couldn't say which campaign was better than any other. All attribution was done in Excel or through a third-party consulting firm. Every time I presented a report, it led to five more questions - "can I see it this way?" - which meant building another report.
The real issue wasn't the model. It was that nobody could see a person's full journey in one place.
How I built it
We collected events through Segment - website visits, signups, email opens, webinar attendance, blog reads, book downloads, contact requests - and piped them into Redshift. I used dbt to create individual models for each event type, then joined them together into one touchpoint table.
So you could see: John Smith first came to us in 2017 via Connect. Two days later, a Facebook ad. Three days after that, a page visit. Two years later, he came back and signed up. Full journey, tracked across time.
We tagged the converting touch at each funnel stage - what action made someone a lead, what made them an MQL, what made them a SQL. The demand team could go in and say "Facebook paid social is the highest volume driver for MQLs" without me building them a single report.
Most people looked at the touchpoints table and thought it was simple. They had no idea there were 75 dbt models behind it. They just queried attribution_touchpoints and got what they needed.
Getting it into Salesforce
The attribution data lived in mode reports, and our sales leaders just weren't going into mode. I wanted to put the data where the teams already lived.
We synced the touchpoints into Salesforce as a custom object - linked to leads and opportunities so the full journey showed up right on the record. The sales team could see every touchpoint, the converting action at each funnel stage, and which campaigns actually drove pipeline.
That was the whole point. They didn't need to ask me for a report. They didn't need to learn a new tool. It was just there, on the lead record, where they already worked.
What I learned
- Start with the decision, not the data. I had grand plans for multi-touch attribution. Turns out stakeholders mostly cared about conversion events at key funnel stages. So I started with last-touch - not because it was "right," but because it answered the questions people were actually asking.
- Put the data where the teams live. Don't make sales learn your BI tool. Push attribution into Salesforce, into the CRM, into whatever they already open every day.
- Ask what campaigns they want to run. When I asked the marketing team what metrics they wanted, they said yes to everything and used half of it. Better to start with the campaigns, then figure out which data points make them better.
- Attribution without action is just reporting. The model only matters if it changes how the team spends money or prioritizes channels.