Skip to main content

Identifying contacts via CRM tracking codes

Using CRM Tracking Codes to Track Contact Engagement.

Who is this article for:

Marketing teams, RevOps, and CRM admins who want Turtl to recognize their contacts automatically when they open a piece of Turtl content, without asking the contact to fill in a form or click a unique tracking URL. If you’re using HubSpot, Marketo, Salesforce Marketing Cloud Account Engagement (formerly Pardot), or MS Dynamics, this article is for you.


A quick reminder: what is Intent Signal Matching

Intent Signal Matching (ISM) is Turtl’s ability to turn an anonymous person into a Known Contact in your CRM and tie their Turtl engagement to their contact record. The contact identification part within ISM works through three methods that can run alongside each other:

  • Lead forms. The contact identifies themselves by submitting a form on a piece of Turtl content.

  • Lead Capture URLs (LCURLs). The contact is identified by a unique tracking URL generated for them in a CRM email.

  • CRM tracking codes. The contact is identified automatically via your CRM’s existing tracking cookies and email tokens, with no form fill or unique URL needed.

This article focuses on the third method. For the first two, there are dedicated articles for each CRM.

Availability

Identifying contacts via CRM tracking codes is currently available for HubSpot, Marketo, Salesforce Marketing Cloud Account Engagement (formerly Pardot) and MS Dynamics. If you wish to have this capability for your CRM, contact our Support and leave us a feedback.


How can contacts be identified through CRM tracking codes

Your CRM is already tracking visitors on your own website today, through a small JavaScript snippet it provides (Marketo’s Munchkin, the HubSpot Tracking Code, or the Account Engagement Tracking Code). That snippet does two things: it sets an anonymous first-party cookie on your domain that records browsing behaviour, and it reads an email tracking token (such as Marketo’s mkt_tok) when contacts click links from CRM-sent emails. Together they let your CRM identify a contact at the moment they click an email, and tie any past anonymous behaviour to them once they’re known.

Turtl plugs into that exact system. Turtl doesn’t create a new identity graph or use third-party data; it reads what your CRM is already setting.

Here’s what happens when a contact opens a piece of Turtl content:

  1. The contact clicks a link to your Turtl content, typically from an email sent through your CRM. The link carries the CRM’s email tracking token.

  2. Turtl’s tracking code reads the token when the content loads.

  3. Turtl asks the CRM to resolve the identity by sending the token across and asking which contact it belongs to.

  4. The contact becomes a Known Contact in Turtl. Every page read and interaction from that point on is attributed to them.

  5. Engagement flows back to the CRM (dependent on your CRM setup) as custom events, plus engagement score and topics of interest as contact-level properties.

Turtl is purely a reader of the CRM’s cookies and tokens; it doesn’t write or modify them. The CRM stays in full control of identity management, and Turtl just uses what’s already there.


What you need to enable CRM tracking code

Configured once, it runs automatically. No per-content steps required.


Why a CNAME is recommended

A CNAME (for example, content.yourcompany.com) puts your Turtl content on your own website's domain. That has one big payoff: Turtl can recognize everyone your CRM already knows, not just people clicking your emails. Every recognized reader shows up as a known contact in your analytics, with their engagement tied to their CRM record.

Your CRM keeps a memory of known contacts as they browse your website. When your Turtl content lives on your domain too, it shares that memory, and the memory stays fresh because every visit to any page of your site renews it. So Turtl recognizes:

- Contacts who identified themselves elsewhere on your site (a form fill, an earlier campaign) and open your Turtl Doc for the first time
- Contacts opening your content on a new device, once they've identified themselves on your site from that device.

Without a CNAME, your Turtl content sits on turtl.co, outside your website, and starts with an empty memory. Identification only begins when a contact clicks a tracked email link into your content. That memory isn't renewed by their visits to your website, and browsers like Safari delete it within days, so return visitors soon become anonymous again. For most customers, the majority of reading happens on return visits rather than the first click, so email clicks alone capture only a small share of your readers.

In short: without a CNAME you identify the readers your emails send, briefly. With a CNAME you identify everyone your CRM knows, for as long as they keep visiting your site.


Edge cases worth knowing about

A few scenarios where cookies matching may not identify a contact, even when everything is configured correctly:

  • The contact has declined cookies through your site’s cookie banner. Turtl respects the same consent your CRM does, no consent, no identification.

  • The contact is using an ad blocker that blocks CRM tracking scripts. ISM relies on the CRM’s tracking script being able to run.

  • The contact cleared their cookies since they last identified themselves. They’ll appear anonymous until they identify again (form fill or fresh email click).

  • The email was sent outside your CRM: for example, a sales rep pastes a Turtl Doc URL into a plain Outlook email. The URL won’t have a CRM tracking token, so the contact will be anonymous on arrival. (If they have a CRM cookie from a previous visit to your website, ISM may still identify them via the cookie, but only if a CNAME is in place.)

  • Safari and Firefox limit first-party cookies set via JavaScript to a 7-day lifetime under their privacy protections (Safari’s ITP, Firefox’s ETP). Readers who haven’t visited recently may need to re-identify.

These are inherent to how cookie-based tracking works across the web, they apply equally to your CRM’s tracking of your own website. ISM doesn’t introduce new gaps; it inherits the same limits.

Expert tip

For maximum identification coverage, combine Intent Signal Matching with Lead Capture URLs (LCURLs) for high-priority sends. LCURLs guarantee identification regardless of cookie state, and the two run alongside each other without conflict.


Additional reading

Did this answer your question?