Today's quick win: pass source fields into the CRM, then stop anything else from overwriting them
That is the whole tip. Capture where the lead came from at the moment of contact, write it to dedicated fields on the record, and lock those fields so no later automation, no intake update, no re-assignment, and no second form submission can quietly rewrite them.
It is small enough to finish without convening a committee. It is important enough that, once it is live, your duplicate conversions stop hiding.
Most firms treat attribution as a project — something that requires a new platform, a new agency, a six-week discovery phase, and a budget conversation. So it sits. Meanwhile, the data flowing into the CRM every day is being degraded by workflows nobody audited, and every report built on top of it inherits the damage.
Why overwriting is the problem, not missing data
Here is the pattern that shows up again and again in firms that already have tracking installed. The source data is being captured. A paid search visitor fills out a contact form, the hidden fields fire, and the record lands in the CRM with the campaign attached. So far, so good.
Then the lead calls back two days later from a tracked number. Or they return through a branded search and submit a second form. Or an intake specialist updates the record and a workflow stamps a default source value. Or a deduplication rule merges two records and keeps the newest field values.
Any one of those events can replace the original source with something generic — "Direct," "Website," "Phone," or whatever your CRM uses as a fallback. The record still looks complete. Nothing errors out. But the campaign that actually produced the lead has been erased, and the channel that happened to touch the lead last gets the credit.
That is how firms end up convinced that a channel is underperforming when it is actually feeding every other channel. It is also how the same lead gets counted twice — once in the ad platform, once in the CRM — with no way to reconcile the two because the connecting field no longer holds its original value.
Attribution does not usually break because the data was never captured. It breaks because something downstream was allowed to write over it.
What the fix actually looks like
You are doing three things. None of them require a platform migration.
1. Capture the source on first touch
Whatever your entry points are — organic landing pages, paid search, directory referrals, AI-assistant referrals, tracked phone numbers, chat — each one needs to write its source information into the CRM record at creation. UTM parameters, referrer, landing page, tracked number, session identifier. The specifics depend on your stack. The requirement does not: the record gets stamped the moment it is created.
2. Use dedicated fields that are not shared with anything else
Do not reuse a general-purpose "Lead Source" picklist that intake staff also edit by hand and that three workflows already touch. Create fields whose only job is to hold original-touch data. Separate them from any field a human updates during intake.
3. Make those fields write-once
This is the part firms skip. Set the field to populate only if empty. Exclude it from merge rules that favor the newest value. Audit every automation that writes to the contact or matter record and confirm none of them touch the protected fields. If your CRM supports field-level permissions, remove edit access entirely for anyone who does not need it.
If you want a second set of fields capturing last touch, build them separately. First touch and last touch are different questions. One field cannot answer both.
Then measure for 30 days
Once the fix is live, compare assisted conversions over the next 30 days against the prior period. You are specifically looking for two things.
- Channels that suddenly look better. These are the ones that were being stripped of credit by whatever was overwriting them. Paid search and display frequently show up here, because they generate the first touch and rarely the last.
- Duplicate conversions that become visible. When the original source survives intact, two records representing the same human are far easier to identify and collapse. Until then, they look like two different leads from two different channels.
Thirty days is enough to see directional movement without pretending one month of data is a verdict. Do not change your budget allocation in week two. Let the clean data accumulate, then act on it.
Where this fits in a real attribution system
Protecting source fields is one component of something larger. Bosseo's Lead Attribution is a system designed to connect visits, ads, AI referrals, calls, forms, and sessions to the same lead and the eventual matter — so the question is not "which channel got the last click" but "which investments produced signed cases."
That full picture takes work to build. The AI-referral piece alone is new territory for most firms, and connecting a session to a signed matter requires the CRM and the marketing layer to agree on identity in a way they usually do not out of the box.
But none of that is a reason to leave today's leak open. Do not wait for a full rebuild when one clear change can remove friction now. Every week you spend scoping the complete system is a week of degraded data flowing into the reports you will eventually use to judge the system's results.
A note for firms scaling page inventory
This matters more, not less, as your footprint grows. Firms running programmatic local SEO at scale — thousands of service-and-city pages across every practice area and every city they serve — are generating entry points faster than most CRM configurations can keep up with. If a lead can land on any one of ten thousand pages, the page that produced the contact is a genuinely useful piece of data. It is also the first thing a sloppy workflow throws away.
Geographic coverage infrastructure and attribution infrastructure are two halves of the same decision. Building the page inventory without protecting the source data means you will have no defensible way to prove which cities and practice areas are actually producing matters.
Your next step
Open your CRM. Pull up a lead record from last week that you know came from a paid campaign. Check whether the source field still reflects that campaign or whether it now reads "Direct," "Website," or blank.
If it changed, list every workflow and merge rule that can write to that field, and turn them off one at a time until the value holds. That is this week's work. It is finishable, it is cheap, and it makes every attribution decision after it more honest.
When you are ready to connect the rest of the chain — calls, sessions, AI referrals, and signed matters — see how Bosseo approaches Lead Attribution.
Next step
See how Bosseo closes this gap
Book a short call and we’ll show you exactly where the leak is.