10 default contact fields that capture the most recent and the original UTM values for:
- utm_campaign
- utm_source
- utm_medium
- utm_content
- utm_term
The original utm field could be a calculated field, something like mentioned in this discussion - Automatic lead source tracking - #7 by ledzee
The most recent value would be the most recent value of the utm on form submission or campaign event field changes or list upload.
To calculate all the “in between” touches, it will have to be a history table of the all of the combination of these values. Maybe a custom object?