> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trackfunnels.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Frequently Asked Questions about TrackFunnels UTM Tool

> Answers to the most common questions about TrackFunnels features, plans, pricing, email tracking pixels, integrations, and merge codes.

TrackFunnels helps marketing teams build consistent UTM links, track email opens in GA4, and attribute conversions from tools like ActiveCampaign, Calendly, and Jotform. Below are answers to the questions we hear most often. If you can't find what you're looking for, email [malik@trackfunnels.com](mailto:malik@trackfunnels.com).

## General

Find answers to broad questions about what TrackFunnels is, how UTM tracking works, and why consistent UTM values matter for your analytics.

<AccordionGroup>
  <Accordion title="Is TrackFunnels free?">
    Yes — the UTM Link Builder is completely free. [Create a free account](https://trackfunnels.com/utm-links-builder) and start building consistent tracking URLs right away.

    Upgrading to the **Pro plan** unlocks:

    * Email tracking pixels for GA4 (via the Measurement Protocol)
    * Integrations with ActiveCampaign, Calendly, and Jotform

    You can upgrade from your account settings at any time.
  </Accordion>

  <Accordion title="What are UTM parameters?">
    UTM parameters are short tags you append to a URL so Google Analytics can identify exactly where a visitor came from. A typical UTM-tagged link looks like this:

    ```text theme={null}
    https://example.com/landing-page?utm_source=newsletter&utm_medium=email&utm_campaign=spring-promo
    ```

    GA4 reads these tags when a visitor lands on your page and attributes the session to the correct traffic source, medium, and campaign. Without UTM parameters, traffic often shows up as "direct" or "unattributed" in your reports.

    TrackFunnels helps you build these URLs consistently so your GA4 data stays clean and comparable over time.
  </Accordion>

  <Accordion title="Why does consistency matter in UTM tracking?">
    GA4 is case-sensitive and treats every unique string as a separate value. That means `Google`, `google`, and `GOOGLE` appear as three distinct traffic sources in your reports, even though they all refer to the same channel.

    Without enforced rules, teams end up with fragmented data — duplicated campaigns, ambiguous sources, and conversion attribution that's hard to trust.

    TrackFunnels solves this by enforcing lowercase values and a set of approved UTM terms across your whole team. Every link built through TrackFunnels follows the same rules automatically, so your GA4 reports stay clean without requiring manual auditing.

    <Tip>
      Set up your UTM rules once in TrackFunnels and share the link builder with your entire marketing team. Everyone gets consistent output, no matter who builds the link.
    </Tip>
  </Accordion>
</AccordionGroup>

## Email Tracking

Learn which plan you need, how GA4 Measurement Protocol handles email opens, and how to get the most accurate attribution from your email campaigns.

<AccordionGroup>
  <Accordion title="What plan do I need for email tracking pixels?">
    Email tracking pixels are a **Pro plan** feature. The free plan does not include access to the Pixel Builder, Pixels Dashboard, Set Up GA4, or Email Tracking Settings tabs.

    [Sign up and upgrade at trackfunnels.com](https://trackfunnels.com/utm-links-builder) to unlock email tracking.
  </Accordion>

  <Accordion title="Why does each email open create a new user in GA4?">
    Email opens are tracked using the **GA4 Measurement Protocol**, which treats every hit as an offline interaction — outside the normal browser session. By default, the Measurement Protocol starts a new session and creates a new user in GA4 for each hit, because there's no browser cookie to tie the open to an existing user profile.

    You can prevent this by configuring the **GA4 Client ID Personalization Tag** in **Account Settings → Email Tracking Settings**. When you provide the merge code for your CRM's stored GA4 client ID field, TrackFunnels passes that ID with each pixel hit. GA4 then links the email open to the existing user instead of creating a new one.

    <Note>
      This only works if your CRM stores the GA4 client ID for each contact. If you haven't set that up yet, contact your email platform's support team to confirm how to capture and store the `_ga` cookie value per contact.
    </Note>
  </Accordion>

  <Accordion title="Can I edit a pixel after creating it?">
    No — pixels cannot be edited after creation. This is by design, because changing a pixel's parameters after it has been embedded in sent emails would cause inconsistencies in your GA4 data.

    If you need to change a pixel's configuration:

    1. Go to your **Pixels Dashboard**.
    2. Delete the existing pixel.
    3. Create a new pixel with the correct settings using the **Email Tracking Pixel Builder**.
    4. Re-embed the new pixel in your email template.

    <Warning>
      Deleting a pixel removes it from TrackFunnels but does not affect historical data already recorded in GA4.
    </Warning>
  </Accordion>

  <Accordion title="Does TrackFunnels support UTM parameters in email tracking pixels?">
    Not directly. The GA4 Measurement Protocol does not support passing standard UTM parameters (`utm_source`, `utm_medium`, etc.) with each hit.

    Instead, TrackFunnels uses **12 dedicated event parameters** to relay campaign attribution information from your emails to GA4:

    | Parameter                       | Purpose                              |
    | ------------------------------- | ------------------------------------ |
    | `email_attribution_source`      | Traffic source (e.g. `newsletter`)   |
    | `email_attribution_medium`      | Medium (e.g. `email`)                |
    | `email_attribution_campaign`    | Campaign name                        |
    | `email_attribution_campaign_id` | Campaign ID                          |
    | `email_attribution_term`        | Keyword / term                       |
    | `email_attribution_content`     | Ad or content variant                |
    | `email_subject`                 | Subject line of the email            |
    | `email_content`                 | Content identifier                   |
    | `email_status`                  | Always `open`                        |
    | `email_contact_id`              | Recipient contact ID from your CRM   |
    | `email_open_time`               | Timestamp of the open                |
    | `email_extra_param`             | Free-form field for custom use cases |

    To report on these parameters in GA4, you need to register each one as a **custom dimension** in your GA4 account under **Admin → Custom definitions**.
  </Accordion>

  <Accordion title="Do I need a Data Processing Agreement?">
    TrackFunnels can sign a Data Processing Agreement (DPA) if your compliance requirements need one. Reach out to [malik@trackfunnels.com](mailto:malik@trackfunnels.com) to request a DPA.

    <Warning>
      If you are sending emails to recipients in the **European Economic Area (EEA)**, tracking email opens may have implications under GDPR. TrackFunnels handles the technical data processing, but **you are responsible** for your own privacy policy and for ensuring you have the appropriate legal basis to track your recipients. Consult your legal advisor before deploying email tracking pixels to EEA contacts.
    </Warning>
  </Accordion>
</AccordionGroup>

## Integrations

Understand how TrackFunnels connects to ActiveCampaign, Calendly, and Jotform via webhooks, and what to expect when attribution data flows in.

<AccordionGroup>
  <Accordion title="What plan do I need for integrations?">
    All integrations — ActiveCampaign, Calendly, and Jotform — require a **TrackFunnels Pro account**.

    Additionally, the **Calendly integration** requires a **paid Calendly account**. Calendly's API, which powers the webhook connection, is only available to paid Calendly subscribers.

    Jotform integration works with all Jotform plans.
  </Accordion>

  <Accordion title="How do TrackFunnels integrations work?">
    Every TrackFunnels integration is built on **webhooks**. Here's the general flow:

    1. In your TrackFunnels account, go to **Account Settings → Integrations** and click **Integrate** next to the tool you want to connect.
    2. Generate a webhook URL inside TrackFunnels.
    3. Paste that webhook URL into the third-party tool (ActiveCampaign, Calendly, or Jotform) and configure which events should trigger it.
    4. When a qualifying event occurs in the third-party tool (a link click, a booking, a form submission), it sends the event data to TrackFunnels via the webhook.
    5. TrackFunnels matches the incoming data to your UTM links and displays the attribution in your dashboard.

    <Tip>
      Keep the TrackFunnels integration tab open while you configure the third-party tool so you can easily copy the webhook URL without switching accounts.
    </Tip>
  </Accordion>

  <Accordion title="Will spam bookings or form submissions appear in my dashboard?">
    Yes. Because the webhook fires automatically whenever an event occurs in Calendly or Jotform, any spam bookings or bot submissions will be passed to TrackFunnels and will appear in your dashboard.

    TrackFunnels cannot filter these out on your behalf. To reduce spam:

    * For **Calendly**: enable captcha or approval workflows in your Calendly event settings.
    * For **Jotform**: use Jotform's built-in spam protection and CAPTCHA features in your form settings.

    <Note>
      Managing spam at the source is the most reliable approach, as webhook calls happen before any filtering TrackFunnels could apply.
    </Note>
  </Accordion>

  <Accordion title="Can I delete submissions from the Calendly or Jotform dashboard?">
    No — you cannot remove individual rows from the Calendly Attribution Dashboard or the Jotform Form Submissions Dashboard in TrackFunnels.

    You can use the **search box** at the top of each dashboard to filter down to the submissions you care about.

    If you need additional filtering or bulk-removal options, click the **Request a Feature** button in the bottom-right corner of your TrackFunnels account to submit a request.
  </Accordion>
</AccordionGroup>

## Merge Codes

Merge codes let TrackFunnels personalise each email pixel with real contact data at send time. These questions explain what they are and where to find them.

<AccordionGroup>
  <Accordion title="What is a merge code?">
    A merge code (also called a merge field or personalization tag, depending on your CRM) is a placeholder you add to an email that your CRM automatically replaces with per-recipient data at send time. For example, adding `|FNAME|` to an email body becomes `"Dear Sarah,"` for one recipient and `"Dear Marcus,"` for another.

    Every contact record in your CRM has a unique contact ID. TrackFunnels uses **the merge code for that contact ID** in your email tracking pixel so that each open can be attributed to a specific contact in your GA4 data.

    When TrackFunnels sends the pixel hit to GA4, the contact ID merge code has already been resolved to the real contact ID by your CRM, so GA4 receives a concrete identifier rather than a placeholder string.
  </Accordion>

  <Accordion title="Where do I find my CRM's contact ID merge code?">
    See the [Merge Codes reference page](/features/merge-codes) for a table of contact ID merge codes organised by CRM. It covers Mailchimp, ActiveCampaign, Infusionsoft, HubSpot, Pardot, and more.

    Here are a few common ones to get you started:

    | CRM            | Merge Code                   |
    | -------------- | ---------------------------- |
    | ActiveCampaign | `%CONTACTID%`                |
    | Mailchimp      | `*\|UNIQID\|*`               |
    | HubSpot        | `{{ contact.hs_object_id }}` |
    | Infusionsoft   | `~Contact.Id~`               |
    | Pardot         | `%%crm_id%%`                 |

    If your CRM isn't listed on the reference page, check your CRM's help documentation for "merge tags", "merge fields", or "personalization tokens" — then look for the **Contact ID** or **Contact Record ID** field specifically.

    If you still can't find it, email [malik@trackfunnels.com](mailto:malik@trackfunnels.com) and we'll help you track it down.
  </Accordion>
</AccordionGroup>
