Attribution for humans: tying website chats to revenue
A plain-English guide to attribution: how to connect website conversations, forms and bookings to deals and revenue, without a data science team.
The marketing team says the website generated 400 leads last quarter. The sales team says most of them were rubbish. The finance director asks a simple question: how much revenue came from the website? Nobody can answer it, and the meeting moves on with everyone still believing what they believed before.
Attribution exists to settle that argument. It has a reputation for being complicated, mostly because the vendors who sell it like to talk about multi-touch models and algorithmic weighting. The useful version is much simpler, and this guide is about that version.
What you’re actually trying to know
Forget the models for a moment. Most teams want answers to three plain questions:
- Which website conversations turned into money?
- Which pages, campaigns and prompts started those conversations?
- Is the effort we put into each one paying back?
You can answer all three with one discipline: making sure every lead carries its origin with it, from the first message on the website to the closed deal in the CRM. Everything else is refinement.
Step 1: Capture the origin at the moment of contact
The best time to record where a lead came from is when they make contact, not later. Later, someone has to guess, and people guess in their own favour.
At the moment a visitor starts a conversation, fills in a form or books a meeting, record:
- The page they were on. The specific URL, not just “website”.
- How they got to the site. Source, medium and campaign (UTM parameters if you use them, or the referrer if not).
- What captured them. Which form, chat flow, AI agent or booking page.
- What they asked for. The topic or intent, as structured data rather than buried in a message.
Most of this is available automatically if the tool capturing the lead passes it on. Serviceform does this: conversations, forms and bookings carry their context into the CRM integration, so the record shows where the lead started. Uprealer’s CRM integration does the same for estate agencies, including lead attribution and reporting.
Step 2: Make sure it survives the trip to the CRM
This is where most attribution breaks. The website tool knows exactly where the lead came from. Then it sends an email notification to a salesperson, who types the name into the CRM by hand, and the origin is gone.
Check the plumbing:
- Do website leads create or update CRM records automatically?
- Do the origin fields land in actual CRM fields, not just a notes box?
- When a lead matches an existing contact, does the new origin get recorded, or overwritten, or lost?
- If a salesperson creates the deal later, is it linked to the lead that started it?
It’s worth submitting a test lead and following it all the way through. If you can’t find the page it came from on the deal record, neither can your reports.
Step 3: Pick a simple model and stick with it
An attribution model is just a rule for giving credit when more than one thing contributed. The common ones:
- First touch. Credit goes to whatever first brought the person in. Good for understanding what creates demand.
- Last touch. Credit goes to the last thing before they converted. Good for understanding what closes it.
- Linear. Credit is split evenly across every recorded touch.
- Position-based. Most credit to first and last touch, the rest spread across the middle.
There’s no correct model. There are only models that answer different questions. For most teams connecting website conversations to revenue, we’d suggest recording both first and last touch and looking at both. If the same page shows up strongly in both, you’ve found something important. If a page only shows up as a first touch, it’s starting relationships that something else finishes, which is still valuable and easy to undervalue.
The important thing is consistency. Changing the model every quarter makes trends meaningless.
Step 4: Report on outcomes, not activity
Once origins reach the CRM, you can build the report that settles the meeting from the start of this article. Group closed revenue (and pipeline, if your sales cycle is long) by origin:
| Origin | Leads | Meetings booked | Deals won | Revenue |
|---|---|---|---|---|
| Pricing page chat | … | … | … | … |
| Product page form | … | … | … | … |
| Blog articles | … | … | … | … |
Fill it in with your own numbers. What usually happens is that the table looks very different from the “leads by source” chart. A page producing modest lead volume can turn out to produce a large share of revenue, and a high-volume source can turn out to produce almost nothing. We’ve argued in the case against more leads that this is the normal state of affairs rather than an exception.
A worked example
Say a B2B firm gets 200 website leads a quarter. These numbers are hypothetical. Ninety come from a newsletter signup on the blog, sixty from a general contact form, and fifty from a conversational flow on the pricing and service pages that ends in a booking.
By lead count, the blog wins. Once origin is tracked through to won deals, the picture might flip: the pricing-page flow could account for most of the closed revenue, because those visitors were already evaluating and the flow got them into a meeting the same day. That’s not an argument for scrapping the blog. It’s an argument for knowing what each source is for, and judging it accordingly.
Common traps
- Attributing everything to “direct”. Usually means tracking isn’t capturing the referrer or campaign. Fix the capture, not the report.
- Counting the same lead twice. A person who chats, then fills in a form, then books, is one lead with three touches, not three leads.
- Ignoring offline steps. If a website chat leads to a phone call that leads to a deal, the call needs to be logged against the same record, or the website gets no credit.
- Waiting for perfect data. You won’t get it. Partial, consistent attribution beats perfect attribution you never implement.
Where to start
If you have nothing today, do these three things this month:
- Make sure every website lead lands in the CRM automatically, with the page URL and source attached.
- Add a “lead origin” field to deals and make sure it’s populated from the lead.
- Run one report at quarter end: revenue won, grouped by origin.
That’s it. It won’t satisfy a data scientist, but it’ll answer the finance director, and it’ll tell you which website conversations deserve more of your attention. For more on what makes those conversations worth having in the first place, see your website is a salesperson.
The short version
Attribution isn’t a modelling problem. It’s a record-keeping problem. Capture where each conversation started, make sure that information survives the journey into your CRM, and report on revenue rather than form fills. Do that consistently and the arguments about which leads are good get much shorter.