URL/UTM Parameter Tracking
Heyflow avatar
Written by Heyflow
Updated over a week ago


In performance marketing, it is often helpful or necessary to pass parameters to the flow and the visitor's response, such as utm_source, utm_campaign, or gclid to identify and track the user.

There are 5 UTM parameters, you can add to your URL:

  • utm_source: The site (source), where your user is coming from, e.g. Google, Instagram, Facebook, etc.

  • utm_medium: The marketing medium, e.g. newsletter, banner, etc.

  • utm_campaign: The individual campaign name, e.g. Summer Sale, Christmas Promo, etc.

  • utm_term: The targeted paid keywords in a designated ad campaign.

  • utm_content: Used to tell apart similar content or links in the same ad. For instance, if you have two buttons in one email, you can use utm_content with different values to see which version works better.

You could also find click identifier in your responses, e.g. from Google (gclid), Facebook (fbclid), which are automatically added to the URL.

💡 Tip: You can also use URL parameters for personalization throughout your flow. Check out this article to learn more.


Stand-Alone (URL)

These parameters are usually found in the URL, e.g. heyflow.id/myflow?utm_source=Google&utm_campaign=spring01. This URL contains the following two parameters: utm_source and utm_campaign.

With Heyflow, passing these parameters from the URL is quite simple.

To enable UTM parameters, head over to the Settings page of your heyflow. On the Tracking tab, make sure the Pass URL parameters option is on.

🔎 We automatically add all URL parameters to your flow responses, so you do not need any hidden input fields. If you're using our integrations or webhook feature, check out the information below.

Important: The query string like ?utm_source=Google&utm_campaign=spring01 must follow the path, e.g. heyflow.id/myflow immediately: heyflow.id/myflow?utm_source=Google&utm_campaign=spring01.

The (optional) screen anchor, e.g. #start must be the last element of the URL: heyflow.id/myflow?utm_source=Google&utm_campaign=spring01#start


If you have embedded your heyflow on a website, you may want to pass all the parameters of the parent website to the heyflow.

For example, your heyflow could be embedded on your landing page my-website.com and the parameter could be passed in the URL, e.g. like this: my-website.com?utm_source=Google&utm_campaign=spring01.

With our website integration script, URL parameters from the parent page, can be automatically passed to your heyflow. You can find the setting Pass URL parameters for each website provider. Activate this option and (re-)insert the script onto your website (the attribute pass-parameters should now be included in the <heyflow> code snippet).

If you have both settings activated, 1) in the heyflow tracking setting and 2) in the website embedding settings, the URL parameters of the parent website will be automatically sent along with the response of each flow visitor.

Bonus: Manually add URL parameters to embedded Heyflow

Another method to add URL parameters to your (embedded) heyflow, is to define them in the <heyflow> tag directly, via the url-parameters attribute like so:

<heyflow url-parameters="utm_source=Google&utm_campaign=spring01"></heyflow>

The URL parameters defined here in the tag will be added to those passed read the URL.

❗ The url-parameters attribute must be filled when the heyflow is initialized. Updating the attribute after the heyflow has been loaded will not pass updated parameters.

Pass parameters to integrations

In order to map UTM parameters in your CRM tool, via Heyflow, it is not enough to simply have them in your responses. You need something more “tangible”, something like… a block!

In this case, we’ll have to use input fields. You’ll simply define the variable as the name of the respective UTM parameter (i.e. “utm_source”, “utm_medium”, etc.) and, preferably, hide the block, since you don’t want the visitors of your flow to see these fields:

This allows you to map these input fields, and link them to fields in your CRM tool, and you can easily pass on UTM parameters to your CRM tool, without your visitors noticing. Furthermore, UTM parameters will also get passed on via webhooks using this exact same method.

Did this answer your question?