Link Tracking

When link tracking is enabled we can track general click metrics, to help you better understand the number and percentage of recipients who clicked links in your messages. We can also let you know which specific links your audience clicks.

Tracking links also allows you to see link clicks by going to a particular user’s Activity tab and expanding a Clicked Link entry:


 Your links must include the protocol — HTTP or HTTPS

We can’t track links if you don’t include the protocol. To generate secure HTTPS links, visit HTTPS Link Tracking.


For Campaigns and API Triggered Broadcasts, link tracking is enabled for emails in your workflows by default. While editing the workflow, tap the email you want to edit and a panel of options will appear on the left. Here’s a better image to show where you can enable/disable that for a whole email in one of those workflows:


For Newsletter Broadcasts, you can enable/disable link tracking for the whole message on the “Goal” tab during setup:


To track personalized links in transactional messages, you must populate your links using liquid. Use attributes or trigger properties—like {{trigger.custom_url}}—to enter custom URLs.

If you provide custom URLs directly in the body or subject of a transactional /send/email request, you should use data-cio-tag to group links together for reporting purposes:

<a href="" data-cio-tag="YOUR-LINK-GROUP-NAME">CLICK HERE</a>

If you enter fully personalized URLs (without liquid) in the body or subject of a transactional API request and enable link tracking, will track a new link for each transactional message you send, cluttering link tracking metrics.

Other message types

Link tracking is not enabled by default for other message types, but you can enable it for SMS, Push, webhooks, Slack, and mailto links. To track these, you will need to use a liquid tag when creating your link, like this:

{% cio_link url: %}

  • Adding a track value indicates to us that you would like to track this particular link.
  • Adding a url_params value indicates to us that you would like to add your URL parameters to this particular link. (Workspace-wide URL parameters are configured in your workspace settings.)
  • The default for both is true.

Here is an example showing the possibilities for both:

{% cio_link url: track: true/false url_params: true/false %}

 You may not want tracked links in non-email message types!

In order to track your links, we wrap the link’s URL in a URL that points to us so that we can log the click before forwarding the request to the final destination. This means that the URL we generate will generally be much longer than is desired for non-email message types.


When generated for an SMS message, such a long link could cause the message to be split in two which will break the link.

There are two ways of counting clicks in Which way is better depends on the information you need!

  1. Total clicks: For each tracked link in a given campaign or newsletter, you can find this in the “Top Clicked Links” metric in the campaign overview or newsletter report.


    The amounts listed are the total number of times each link has been clicked, which includes multiple clicks on the same link from the same user. This is not a count of unique links.

     Want to group links together in reports?

    You can use the tag data-cio-tag to track links of the same type—like all of your password reset links or all of your links to your users’ dashboards. This helps you gather usable metrics for links that include personalized variables.

    <a href="" data-cio-tag="YOUR-LINK-GROUP-NAME">CLICK HERE</a>

  2. Unique clicks: For a given tracked link, create a segment for the link you’d like to track, like this:


Then, when you save this segment, you’ll see how many people it contains. This is the number of unique clicks.

Automatically identify people who click tracked links

By default (for workspaces created after July 12, 2021), automatically appends a _cio_id parameter containing a person’s cio_idAn identifier for a person that is automatically generated by and cannot be changed. This identifier provides a complete, unbroken record of a person across changes to their other identifiers (id, email, etc). to tracked linksA link in a message that logs when a person clicks it. You can gather metrics for tracked links and use them to determine your audience’s level of engagement.. If your tracked links send people to a webpage containing our JavaScript snippet, the snippet automatically identifies people.

Even if you don’t use our JavaScript Snippet, you can still take advantage of the _cio_id parameter in tracked links to identify people. If you integrate directly with our API or one of our libraries, you can identify people using cio_<_cio_id-param-value> rather than a person’s ID or email address.

To change or disable this setting:

  1. Go to Settings > Workspace Settings.

  2. Go to URL Parameters. If you already have URL parameters enabled, click Settings; otherwise, click Get Started.

  3. Click Add _cio_id URL parameter.

    Auto-identify setting
    Auto-identify setting

This setting affects messages you send after you enable or disable it. It does not affect messages that you’ve already sent.

Security and privacy

You should not enable link tracking for links that contain secure or private information such as password resets or time-limited downloads.

Our tracked links are securely signed but the link information is not encrypted and is sent over HTTP by default. Optionally, you can choose to configure HTTPS Link Tracking, in which case we’ll generate https links instead whenever link tracking is enabled in your messages.

NOTE: If HSTS (HTTP Strict Transport Security) is enabled on your domain you must configure HTTPS Link Tracking or your tracked links will not resolve correctly.

Also be aware that we record clicked links in your Activity Logs and campaign metrics so the URLs of your tracked links may be logged and visible in your account. For this reason, we strongly recommend disabling link tracking for sensitive links.

There are a few ways to do this, depending on which links you want to disable.

If you’d like to prevent tracking for specific links within emails, you’ll want to add class="untracked" to the anchor element, like this:

<a href="" class="untracked">CLICK HERE</a>

If you’re using the drag-and-drop editor, you can remove tracking on specific text links by highlighting the text and then clicking Edit Link. From there you can add the untracked class under the Custom Attributes section.

Untracked text link in drag-and-drop editor
Untracked text link in drag-and-drop editor

You can also disable link tracking on Buttons and Images in the drag-and-drop editor by clicking on the content block and then scrolling the Content Properties menu down to the Attributes section. There you can add a class attribute, and give it a value of untracked.

Disable link tracking in drag-and-drop editor for other content blocks
Disable link tracking in drag-and-drop editor for other content blocks

 Need to disable link tracking and URL parameters on the same link?

You can add both the disable-url-params and untracked classes to the same class attribute in the drag-and-drop editor. Just be sure to leave a space between the two class names.

See the URL parameters page for help disabling URL parameters.

If you’d like to disable tracking for the entire email, you can do this within the workflow. Click the email you’d like to disable tracking for, and uncheck the ’track links’ box.


This will disable open and click tracking for that particular email only. If you want to disable tracking for a whole campaign, you will have to disable it in each email.

You can also disable open tracking for all messages sent from your workspace. This prevents emails from tracking opens, even if the Track opens and link clicks in this message setting is enabled at the message level.

Newsletter tracking can be disabled in the Goal section of the newsletter workflow:

Copied to clipboard!
Is this page helpful?