Google Analytics does not allow you to store any personally identifiable information. CRM systems often allow last-click tracking using UTM or their own parameters.
This situation leaves marketers with siloed data. On one hand side, Google Analytics, which contains web analytics data, on the other side CRM data. CRM data contains the key to analysing customer lifetime values and cohorts.
Many of our clients want to somehow connect both analytics and CRM data to make decisions based on the whole customer journey.
One way to circumvent this is by hashing the email address into Google Analytics during a form submission.
In this article I’ll explain how exactly to do this and how to connect the CRM data back to the hashed emails.
Here a quick summary on how it works:
We use the e-commerce transactions feature of Google Analytics to trigger a transaction on a form fill event. The transaction ID contains a hashed identifier (an email address). This allows us to understand the Google Analytics path of the user. In a second step we match the data from the CRM to understand how valuable the lead submission is. The lead could for example convert into an opportunity and into a paying customer, or it could be a junk lead.
Now back to our guide. It comprises of two steps:
Before you get started you will need to make sure that you have
- Edit rights on the Google Analytics view of your website
- Edit and publish rights on your Google Tag Manager container on your website
First of all we have to enable the E-commerce setup in Google Analytics (in case it is not yet turned on)
Google Tag Manager
Download the Tag Manager configuration by clicking on the image below.
Head to Google Tag Manager and head to the Admin section and in the Containers section select Import Container. Now you have to import the JSON file you have downloaded in Step 1 and select the workspace where you want to import it. Choose the import option Merge and select Rename conflicting tags, triggers, and variables
Head to the tag named ‘[windsor.ai] save transaction to Google Analytics’ and make sure that it is linked to the right Google Analytics variable.
Open the tag named ‘[windsor.ai] save hashed email as transaction id’. Now you can see that the tag triggers on
type="email". As there is no standard on how forms are built (unfortunately it can get messy) you will need to check your forms now. Here’s how I did it on our website:
Head to all the pages where you have an email field which you want to track. Right click on the email field and select inspect.
You will now see how the email field is defined. In the screenshot above you can see that on our website the
type="email". So we use this identifier in the tag. Please make sure to check your forms to make sure the tag fires correctly.
Step 5 (Optional, but please read)
I have set the triggers to fire on all DOM ready events. You might want to change it to trigger only on certain relevant forms and pages.
Now you can preview and publish your configuration. To test if it is working as expected you can submit a form. You should now see an e-commerce transaction logged in Google Analytics for each form fill.
To sync back the data you can now either use
A) A data integration software like ours, where you can match the data. Once the data is joined you can run a multi touch attribution model on the whole customer journey (across web analytics and CRM data). This allows you to get a clear picture across systems on what works, and what doesn’t. A sample customer journey visualization looks like this:
We integrate with Salesforce, Marketo, HubSpot, Zoho, Microsoft Dynamics and Stripe. You can start a free trial here.
B) Run manual Google Analytics exports and upload them into your CRM.