> For the complete documentation index, see [llms.txt](https://docs.reo.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.reo.dev/best-practices-for-setting-up-utms-with-reo.dev.md).

# Best Practices for Setting Up UTMs with Reo.dev

Reo.dev captures the UTM parameters on your inbound URLs and turns them into filters you can segment, track, and build automations on. The cleaner your UTMs are, the cleaner your segments will be.

This guide covers how to set up your UTMs so they work well inside Reo. It assumes you have already configured your UTM parameters on the Configurations page. For the setup steps, see the [UTM Tracking & Segmentation guide](https://docs.reo.dev/configurations/utm-parameters).

{% hint style="info" %}
Why this matters in Reo: Reo captures each distinct value it sees for a configured parameter, exactly as it appears in the URL. Paid\_Social, paid\_social, and paid-social are stored as three different values. Consistent UTMs keep your dropdowns short and your segments accurate.
{% endhint %}

#### 1. Plan your taxonomy before you configure

A UTM parameter in Reo cannot be edited after it is created. To change one, you delete it and add the corrected version. Decide your naming conventions up front so you are not reworking them later.

Keep a shared reference (a simple spreadsheet works) that documents:

* Which parameters your team uses (`utm_source`, `utm_medium`, `utm_campaign`, and any custom ones).
* The approved values for each, for example, the exact list of mediums you allow.
* The format rules everyone follows.

Everyone building campaign links should work from the same reference. This is the single biggest lever on segmentation quality.

#### 2. Keep value formatting consistent

Because Reo captures values verbatim, small inconsistencies create duplicate values that clutter your filter dropdowns and split your segments. Here are a few examples we have seen work well:

* **Use lowercase everywhere.** `newsletter`, not `Newsletter`.
* **Pick one word separator and keep it.** Use `_` or consistently, for example `paid_social`. Do not mix `paid_social` and `paid-social`.
* **Keep values short and predictable.** Values that follow a pattern are easier to search and select when a parameter has many entries.

{% hint style="info" %}
Inconsistent casing or separators are the most common reason a segment misses accounts. ads and Ads will not match the same filter value.
{% endhint %}

#### 3. Configure your parameters early

Reo begins capturing UTM values once the parameter is configured and your tracking beacon is live, the same way Key Page tracking works. Values that arrived before the parameter existed are not captured retroactively.

Set up the parameters you plan to use before, or at the same time as, launching a campaign. If you know an ad campaign starts on a given date, configure `utm_id` and any other parameters ahead of that date so no traffic is missed.

#### 4. Use custom parameters for dimensions the standard five do not cover

If you track a dimension that the five standard UTM parameters do not capture, add it as a custom parameter. Common examples include a region tag, an audience or persona tag, or an internal campaign ID.

Keep custom parameter names consistent with your existing convention, and add them to your shared taxonomy reference so the rest of the team uses the same spelling.

#### 5. Align campaign names with how you report

Your `utm_campaign` values become the labels you segment and filter on inside Reo. Name campaigns the way you want to see them in a segment, not with internal codes only you understand.

A readable value such as `q4_enterprise_ads` is easy to select and interpret. A value such as `cmp_4471` is not.

#### 6. Pair campaign landing pages with Key Pages

A campaign URL can be both a Key Page and a UTM URL. When a landing page qualifies for both, Reo shows both tags in the Activity Timeline.

If a campaign points to a high-intent page such as pricing or a demo request, configure that page as a Key Page as well. You then get two complementary signals: the campaign the account came from, and the intent of the page they landed on.

**Example: combine Key Page and UTM in one segment.**

Say you want the accounts that came from your paid campaign *and* viewed your pricing page. Build a segment with both filters and match on all conditions.

<figure><img src="https://2705882080-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx46P5sAHxDG7PqOdVLxI%2Fuploads%2FZiIUe3BarXJql8RDCSgu%2FScreenshot%202026-09-21%20at%2011.55.18%E2%80%AFAM.png?alt=media&amp;token=5e721265-c90b-4f77-9f74-ea31ef078804" alt=""><figcaption></figcaption></figure>

This returns only the accounts that arrived through paid social and reached pricing, a much stronger intent signal than either filter alone. Layer on an Account filter such as ICP Fit Score to narrow further to accounts worth prioritizing.

#### 7. Know which filter to use when you segment

Reo gives you two UTM filters, and picking the right one keeps your segments accurate:

* **UTM Parameters** is for granular targeting. Select a parameter *and* specific values to find accounts that came through those exact values, for example `utm_medium` = `paid_social`. Use it when you care about a particular campaign, medium, or source.
* **UTM Categories** is for broader targeting. Select a parameter to find every account that came through a link carrying it, regardless of value. Use it when you want all tagged traffic in one segment, for example, every account that arrived through any campaign-tagged link.

A simple way to remember it: UTM Parameters answers "which value did they come from?" and UTM Categories answers "did they come from a tagged link at all?" Because UTM Parameters has no "Select all" option, UTM Categories is also how you capture every value of a parameter in one go.

#### 8. Turn UTM signals into real-time alerts

Use **Automations** to know exactly when an account, developer, or buyer in your segment/list shows activity via your UTM parameters.

Pick a segment/list that matters to your team and add an Automation on it. \
\
The **UTM Parameters and Categories** filter shows up on the Conditions step, so you can point an alert at one specific campaign or medium.

<figure><img src="https://2705882080-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx46P5sAHxDG7PqOdVLxI%2Fuploads%2FvVuOjp75NRCLTMtw27Cu%2FScreenshot%202026-10-05%20at%203.16.29%E2%80%AFPM.png?alt=media&amp;token=29f90490-e5db-4f20-95eb-149413edc209" alt=""><figcaption></figcaption></figure>

A few patterns worth setting up:

* **Paid campaign hits a target account:** Alert your AEs in Slack when an account in your target list arrives through `utm_medium` = `paid_social` or `paid_search`, so they know the ad spend is landing on the right companies.

<figure><img src="https://2705882080-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx46P5sAHxDG7PqOdVLxI%2Fuploads%2FsgDvCyx9TBYBDwVHB0MV%2FScreenshot%202026-10-05%20at%203.44.26%E2%80%AFPM.png?alt=media&amp;token=5ae8c28e-97b1-4555-b7b6-b2ab4793a83d" alt=""><figcaption></figcaption></figure>

* **High-intent campaign page:** Combine a UTM condition with a Key Page condition (for example, a campaign that points to pricing) and alert the owning rep as it happens.

<figure><img src="https://2705882080-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx46P5sAHxDG7PqOdVLxI%2Fuploads%2FKXA9iFhMMV4GLpv56Rvh%2FScreenshot%202026-10-05%20at%203.43.09%E2%80%AFPM.png?alt=media&amp;token=3fd4078c-49db-4333-b578-5a6e2e3ab5a3" alt=""><figcaption></figcaption></figure>

* **Daily campaign digest:** For broader campaigns, send a once-daily summary instead of real-time alerts to avoid noise, using **UTM Categories** to capture all traffic from a campaign type.

<figure><img src="https://2705882080-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx46P5sAHxDG7PqOdVLxI%2Fuploads%2FazoABGeusPOxBDMhDWFR%2FScreenshot%202026-10-05%20at%203.46.10%E2%80%AFPM.png?alt=media&amp;token=081912e2-6297-457f-ab90-dd5ac0b0df0b" alt=""><figcaption></figcaption></figure>

Route alerts to a Slack channel for team visibility or a direct message for the account owner, and pick **As events happen** for hot signals or **Once daily as a summary** for volume. See [Automations](https://docs.reo.dev/automations) for the full setup.

#### 9. Validate your setup

After you configure a parameter and launch a campaign, confirm that Reo is capturing the values you expect:

1. Visit one of your live campaign URLs yourself, or wait for early traffic. Expect up to 24 hours for the first set of activity to start reflecting.
2. Open the account or developer in the **Activity Timeline**.
3. Look for the **UTM** tag on the relevant activity card. Hover over it to confirm it shows the value you expect, for example `automation_alert`.

<figure><img src="https://2705882080-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx46P5sAHxDG7PqOdVLxI%2Fuploads%2Fcko4vr3zbtMwmZzzEIKm%2FScreenshot%202026-09-21%20at%2012.21.58%E2%80%AFPM.png?alt=media&amp;token=cccb82da-9080-4527-a746-bdfa35213941" alt=""><figcaption></figcaption></figure>

4. Open a segment, add the **UTM Parameters** filter, and check that your values appear in the dropdown.

If the value looks wrong or is missing, the most likely cause is an inconsistency in how the URL was tagged. If not, reach out to your account manager for additional help.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.reo.dev/best-practices-for-setting-up-utms-with-reo.dev.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
