# Why Don’t UTMs Persist in the ‘Processing’ Fields on Leads and Contacts in Salesforce?

UTM data is intentionally transferred to Engagement records rather than being stored permanently on Leads and Contacts to ensure data integrity and accurate attribution tracking.

**How the Process Works:**

* When UTMs are written in the Processing fields on Leads and Contacts, the system creates an Engagement record with those values, and they are removed from the Lead or Contact.
* The UTMs are then accessible on the related Engagement record.

**Here’s why:**

* **Leveraging Existing Integration Points**
  * Our system writes UTM data first to Leads and Contacts on the way to the Engagement object rather than directly to the Engagement object because external systems like marketing automation platforms already write to Leads and Contacts in attribution events like web form submissions and list uploads, so we piggyback on those existing processes to pass the UTM data. This also allows the code in Salesforce to determine how the Engagement records are created rather than an external integration.
* **Ensuring Data Integrity**
  * Attribution data is controlled by the Engagement object in Salesforce following the principle that only one object should control a given type of information. This data can be accessed through relationships between objects. Thus, Leads and Contacts don’t store UTMs. They instead have relationships with Engagements, which store this info.
  * Each Lead or Contact can have multiple Engagements over time. Our system decides which Engagements should be used for reporting and how they are processed based on the states of Leads and Contacts at key moments. So we want to ensure users get their information from those Engagements, not necessarily the latest Engagement.
* **Ensuring Each Engagement Only Contains Info About One Interaction**
  * Lastly, we want to ensure that all the UTMs on a given Engagement record represent the same interaction. For example, let’s say that a Lead is first created from a web form with complete UTM data and then later updated again through a trade show list import with only partial UTM data. If we didn't clear the values in the Lead/Contact Processing fields each time, we'd end up with the second Engagement record with some UTMs from the list upload but others from the prior form submission.

For these reasons, UTM values are only temporarily stored in the Processing fields on Leads and Contacts while being transferred to the Engagement object, after which they are cleared from the Lead/Contact record. This ensures data integrity and accurate attribution tracking.

> **Pro-Tip 💡**
>
> If it would be helpful to have access to these values for troubleshooting purposes, simply ***add history tracking*** to the desired fields.

See also the [**Processing, RAW, and Reporting Fields**](https://help.integrousanalytics.com/v1/docs/processing-raw-and-reporting-fields-explained) article.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.integrousanalytics.com/faqs/why-dont-utms-persist-in-the-processing-fields-on-leads-and-contacts-in-salesforce.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
