Skip to main content
URL/UTM Parameter Tracking
Heyflow avatar
Written by Heyflow
Updated over 3 months ago

Intro

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.


Setup

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

ā— Important: If you have duplicated values in your URL parameters, e.g.
ā€‹?utm_campaign=abc&utm_campaign=abc will deduplicate,
ā€‹?utm_campaign=abc&utm_campaign=foobar, the value in the flow will be always the last one for all implementations and redirects (in this case foobar).


Embedded

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. Passing parameters from the parent page are now synced with your heyflowā€™s settings and enabled by default.

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-wrapper> tag directly, via the url-parameters attribute like so:

<heyflow-wrapper flow-id="test" url-parameters="utm_source=Google&utm_campaign=spring01"></heyflow-wrapper>

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?