Attribution breaks when every platform records only its own part of the journey. Advertising sees the click, analytics sees the session, the form tool sees the submission, the CRM sees a contact, and sales sees an opportunity. The business needs durable identifiers and field rules that connect these events without pretending every revenue outcome has one simple cause.
Define the questions before choosing the model
Decide whether the business needs to understand first discovery, recent campaign influence, lead creation, qualified pipeline, or closed revenue. Store these as distinct concepts. First-touch source should remain stable; latest-touch context may change with each new session; conversion source should describe the event that created the lead or opportunity. One field cannot answer every attribution question without being overwritten into meaninglessness.
Capture campaign context at the website boundary
Normalize UTM source, medium, campaign, content, and term. Retain landing page, referrer, timestamp, form identifier, and a consent-appropriate browser or session key. Store both raw and normalized values when campaign naming is inconsistent. Ensure a visitor moving between pages does not lose the original context before submitting.
Attach context to the contact and conversion event
When the form submits, send attribution fields with a stable submission identifier. Create or match the contact, then record a separate conversion event containing its source context. Do not overwrite original acquisition when an existing contact returns through a new campaign. Instead, add the new touchpoint and update latest-touch fields. This preserves acquisition history while allowing recent engagement reporting.
Original source is a historical fact. Latest source is a changing observation. Store them separately.
Carry attribution into pipeline and revenue
Link opportunities to the contact, account, and originating conversion event. Decide how multiple contacts and multiple opportunities are handled. Snapshot key attribution fields at opportunity creation so later contact updates do not rewrite historical pipeline reports. Connect booked appointments, attended meetings, proposals, and revenue with event timestamps rather than relying only on the current pipeline stage.
Reconcile platform reporting
Advertising platforms, analytics, and the CRM use different identity, windows, and models, so totals will not match perfectly. Reconcile by documented definitions instead of forcing equality. Monitor missing campaign values, unrecognized sources, duplicate submissions, contacts without conversion events, and opportunities without origin links. Investigate changes in those rates before trusting a performance shift.
Report decisions, not false precision
Use first-touch views for acquisition, conversion-source views for lead generation, and influenced-pipeline views for multi-touch journeys. Show unattributed activity instead of hiding it. Document attribution windows and exclusions. The objective is a consistent decision system for budget and follow-up—not a claim that one dashboard can prove the exact causal value of every touchpoint.
