Quick Answer: Design the CRM so lead source is captured once at creation, stored as immutable first-touch attribution, and then copied into conversion records as a locked historical field rather than overwritten by lifecycle updates. Use separate fields for first-touch source, last-touch source, UTM parameters, and conversion source mapping, with audit logs and an event history table so reporting can always reconstruct where the lead originated even after it becomes a customer.
To preserve historical lead source data after conversion, the CRM must treat attribution as an append-only data model, not a mutable status field. The cleanest approach is to store lead source metadata at the moment of capture, normalize it into dedicated attribution fields, and then freeze the original values when the record transitions to customer or deal status. For enterprise reporting, the system should also maintain a relational link between the lead, contact, account, and opportunity objects so source data survives merges, deduplication, and pipeline stage changes. This ensures sales, marketing, and finance teams can analyze true acquisition performance without losing the original traffic or referral context.