# Adding UTM parameters to contacts created via API

**URL:** <https://community.hubspot.com/t/adding-utm-parameters-to-contacts-created-via-api/138118>\
**Category:** APIs & Integrations\
**Tags:** contacts\
**Created:** [August 16, 2025, 8:35pm UTC](https://community.hubspot.com/t/adding-utm-parameters-to-contacts-created-via-api/138118 "2025-08-16T20:35:10Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![BAK](https://avatars.discourse-cdn.com/v4/letter/b/a587f6/32.png) [@BAK](https://community.hubspot.com/u/BAK)\
**Post date:** [August 16, 2025, 8:35pm UTC](https://community.hubspot.com/t/adding-utm-parameters-to-contacts-created-via-api/138118/1 "2025-08-16T20:35:10Z")

</div>

Dear Community,

We are trying to get web analytics for most of our signups. However due to cookie consent the hubspot sdk doesnt load for many of our users.

To make sure we have a hubspot contact for all our users we create users via api from our backend.

To still track the “Original Traffic Source” we would like to pass along utm parameters which are understood by hubspot as if the user was created via a form with a tracking code. However there are no hubspot native utm parameter properties.

Is there a way to still have hubspot correctly set its web analytics properties like “Original Traffic Source” when creating contacts via API?

Grateful for any help!

---

<div class="post-metadata">

**Author:** ![Berangere](https://d10pqhm3lwygmk.cloudfront.net/user_avatar/community.hubspot.com/berangere/32/220784_2.png) [@Berangere](https://community.hubspot.com/u/Berangere)\
**Post date:** [August 18, 2025, 7:14am UTC](https://community.hubspot.com/t/adding-utm-parameters-to-contacts-created-via-api/138118/2 "2025-08-18T07:14:15Z")

</div>

Hi @BAK and welcome, we are delighted to have you here!  
Great question, thanks for asking the HubSpot Community!  
Just to confirm, you’d like to set the “original traffic source” property via API or manually?  
Because when looking at this article “[HubSpot’s default contact properties](https://knowledge.hubspot.com/properties/hubspots-default-contact-properties)”, I can see that this property is automatically set by HubSpot. The property options are not editable, but an individual’s Original source value **can be manually changed** to any of the options.  
In case you’d like to set it via API, I’d love to put you in touch with our Top Experts: Hi [@sylvain\_tirreau](https://community.hubspot.com/t5/user/viewprofilepage/user-id/601366), @Anton and [@zach\_threadint](https://community.hubspot.com/t5/user/viewprofilepage/user-id/324811) do you have suggestions to help @BAK, please?  
Have a wonderful day and thanks so much for your help!  
Bérangère, HubSpot Community Manager

---

<div class="post-metadata">

**Author:** ![BAK](https://avatars.discourse-cdn.com/v4/letter/b/a587f6/32.png) [@BAK](https://community.hubspot.com/u/BAK)\
**Post date:** [August 23, 2025, 12:48pm UTC](https://community.hubspot.com/t/adding-utm-parameters-to-contacts-created-via-api/138118/3 "2025-08-23T12:48:40Z")

</div>

Hi [@BérangèreL](https://community.hubspot.com/t5/user/viewprofilepage/user-id/230185) ,

Thank you so much for the initiative.

Is the possibility to edit the “original traffic source” new?

We are already writing utm parameters from a third party tool to hubspot to custom properties and have created a waterfall similar to hubspots calculation of the traffic source.

A big problem however is that for many european visitors that dont accept our cookies and thus the hubspot sdk doesnt load, we dont have much information about them, which results to a lot of our signups being “unknown”.

Thank you!

---

<div class="post-metadata">

**Author:** ![Berangere](https://d10pqhm3lwygmk.cloudfront.net/user_avatar/community.hubspot.com/berangere/32/220784_2.png) [@Berangere](https://community.hubspot.com/u/Berangere)\
**Post date:** [August 25, 2025, 2:50pm UTC](https://community.hubspot.com/t/adding-utm-parameters-to-contacts-created-via-api/138118/4 "2025-08-25T14:50:51Z")

</div>

Hi @BAK, I hope that you are well!  
So, to confirm, the property options of the “organic traffic source” are not editable, but an individual’s Original source value can be manually changed to any of the current options.  
As @GRajput mentioned, one of the workarounds, even if I understand this is not ideal, would be to create a custom property (which I see you are already doing).  
In that case, for new feature suggestions, I’d recommend first to search and check if this idea is already present [on our Ideas Forum here](https://community.hubspot.com/t5/HubSpot-Ideas/idb-p/HubSpot_Ideas). If you find a similar idea, give it an upvote and share your unique use case in the comments.  
If the idea doesn’t exist already, please consider [posting and creating a new Idea on our Ideas Forum here](https://community.hubspot.com/t5/HubSpot-Ideas/idb-p/HubSpot_Ideas).  
Thank you for being part of the discussion!  
Have a lovely day!  
Bérangère

---

<div class="post-metadata">

**Author:** ![GRajput](https://d10pqhm3lwygmk.cloudfront.net/user_avatar/community.hubspot.com/grajput/32/102020_2.png) [@GRajput](https://community.hubspot.com/u/GRajput)\
**Post date:** [August 19, 2025, 1:18pm UTC](https://community.hubspot.com/t/adding-utm-parameters-to-contacts-created-via-api/138118/5 "2025-08-19T13:18:33Z")

</div>

Hi @BAK

You can not edit those properties as they are read only in HubSpot but for a work-around you can create a custom property and send values to it, and then you can filter the contacts out as per your need.

Thanks!

---

<div class="post-metadata">

**Author:** ![Berangere](https://d10pqhm3lwygmk.cloudfront.net/user_avatar/community.hubspot.com/berangere/32/220784_2.png) [@Berangere](https://community.hubspot.com/u/Berangere)\
**Post date:** [August 20, 2025, 7:57am UTC](https://community.hubspot.com/t/adding-utm-parameters-to-contacts-created-via-api/138118/6 "2025-08-20T07:57:58Z")

</div>

Hi @GRajput, I hope that you are well!  
Thanks for your contribution and for the workaround.  
Just to clarify, our articles have been recently updated and you can see on another source here: “[Understand Original and Latest traffic source properties](https://knowledge.hubspot.com/properties/understand-traffic-source-properties)” that:  
“The Original Traffic Source property tells you the first known source through which a contact interacted with your business. The Latest Traffic Source property shows the most recent known source. **These properties are automatically set by HubSpot, but you can update the value on a contact record manually.** ”.  
You cannot edit the Original or Latest Traffic Source property options, but you can manually change a contact’s property value to any of the existing traffic sources.  
If you edit a contact’s Original or Latest Traffic Source, the source drill-down property values will be cleared.  
Thanks and have a great day!  
Bérangère, HubSpot Community Manager

---

<div class="post-metadata">

**Author:** ![RubenBurdin](https://d10pqhm3lwygmk.cloudfront.net/user_avatar/community.hubspot.com/rubenburdin/32/75212_2.png) [@RubenBurdin](https://community.hubspot.com/u/RubenBurdin)\
**Post date:** [August 22, 2025, 9:44pm UTC](https://community.hubspot.com/t/adding-utm-parameters-to-contacts-created-via-api/138118/7 "2025-08-22T21:44:45Z")

</div>

Hi @BAK

You’re right that HubSpot doesn’t let you set the system analytics fields (like Original Source) through the API. They’re auto-populated by the tracking code and only editable manually in the UI.

What most teams do is capture the UTM values on your side and then push them into custom contact properties via the Contacts API. That way you can still report, segment, and filter based on the UTMs. Docs here explain the behavior of those source fields in detail and the list of default contact properties is here:

([Understand Original and Latest traffic source properties](https://knowledge.hubspot.com/properties/understand-traffic-source-properties) )

([HubSpot's default contact properties](https://knowledge.hubspot.com/properties/hubspots-default-contact-properties) )

If you absolutely need them in the “official” Original Source property, you can technically overwrite it via API, but keep in mind that HubSpot clears the drill-down fields when you do this. So best practice is usually custom properties + workflows for reporting.

On a related note, some teams sidestep the SDK limitations by syncing UTM data directly from backend signups into HubSpot in real time. A sync platform like Stacksync makes that part smoother since it keeps those UTM properties aligned between systems without extra scripts.

Hope this helps.

---

<div class="post-metadata">

**Author:** ![BAK](https://avatars.discourse-cdn.com/v4/letter/b/a587f6/32.png) [@BAK](https://community.hubspot.com/u/BAK)\
**Post date:** [August 23, 2025, 12:44pm UTC](https://community.hubspot.com/t/adding-utm-parameters-to-contacts-created-via-api/138118/8 "2025-08-23T12:44:17Z")

</div>

Hi @RubenBurdin ,

Thank you for the answer and elaborating on the problem here.

> On a related note, some teams sidestep the SDK limitations by syncing UTM data directly from backend signups into HubSpot in real time. A sync platform like Stacksync makes that part smoother since it keeps those UTM properties aligned between systems without extra scripts.
> 
> Hope this helps.
> 
> * * *

I’m a little confused by this part. We already are creating the contact via the api triggered by signups which we record in our backend.

We decided to do this as we felt the frontend wasn’t bullet proof with ad blockers etc.

The backend doesnt know the UTM parameters though.

We started using the “identify” function on the frontend to match frontend activity with a created contact. This works well sometimes but not always.

However it doesnt solve the problem thas Original Traffic Source is always “offline sources”.

Thank you for the help!
