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:
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.
Turtl’s tracking code reads the token when the content loads.
Turtl asks the CRM to resolve the identity by sending the token across and asking which contact it belongs to.
The contact becomes a Known Contact in Turtl. Every page read and interaction from that point on is attributed to them.
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.
Connect your CRM integration in Turtl’s in-app Integrations Hub (the Integrate menu).
Activate the tracking code feature in your CRM integration settings. Step-by-step instructions per CRM:
MS Dynamics Tracking code - article soon to be added
(Recommended) Set up a CNAME so your Turtl content sits on a subdomain of your own website.
Why a CNAME is recommended
Modern CRMs use first-party cookies, which browsers only let the originating domain read. Because Turtl sits on its own domain (turtl.co) by default, browsers treat it as third-party to your CRM’s cookie, even though you set the integration up yourself.
A CNAME (e.g. content.customer.com pointing to Turtl) puts your Turtl content on a subdomain of your own website. Browsers then treat it as first-party, and identification has reliable access to the cookie.
Without a CNAME, identification still works for contacts who arrive directly from a CRM email click (the tracking token is in the URL itself, no cookie reading needed). With a CNAME, identification also extends to:
Return visitors who bookmarked your Turtl content and come back later
Contacts who open Turtl content on a new device after identifying themselves elsewhere on your site
Anyone whose identity exists in the CRM cookie but who isn’t arriving via a freshly tracked email
For most customers, the majority of post-click reading happens on return visits, so a CNAME is worth setting up.
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.