Matomo tracking solution
If you design landing pages in Creatio using Landing Page Designer, use Google Analytics 4 (GA4) to collect website analytics. Creatio supports GA4 natively starting from version 8.3.1 and provides out-of-the-box landing page performance dashboards with daily data synchronization. Learn more: Use Google Analytics on landing pages designed in Creatio.
If your landing pages are built outside Creatio, use Matomo or GA4 to track contacts who submit forms or follow links in bulk emails sent from Creatio Marketing products.
Matomo collects detailed reports on your website and its visitors. The reports include the search engines and keywords the visitors used, the language they speak, which pages they like, and the files they download.
You can use Matomo data associated with specific Creatio contacts to personalize product and service offers as well as improve your website UX. For example:
- Evaluate which products or services interest the contact the most.
- Create detailed marketing reports using filters by contact channels, traffic sources, and location.
- Analyze which website pages users visit the most or on which pages they spend the most time.
- Review which OS and devices your customers use the most and optimize the website accordingly.
Use the imported data with Creatio to segment contacts for bulk emails and marketing campaigns as well as build detailed analytical reports.
Before you can use Matomo data in Creatio, make sure you have an active Matomo account. Learn more: How to create a Matomo Cloud account (official vendor documentation).
Connect Matomo tracking solution
1. Retrieve connection data from Matomo
- Log in to Matomo as a superuser of the relevant website.
- Open Administration → Personal → Security.
- Click Create new token.
- Confirm your account password.
- Enter a description for the token.
- Make sure the Only allow secure requests checkbox is cleared, then click Create new token. Matomo displays the Auth token once, so copy it somewhere safe.
- Open the Matomo dashboard and copy the full domain, including the subdomain, from the browser address bar.
2. Connect Matomo in Creatio
- Click the
button to open the System Designer. - Open the System settings section.
- Open the "Address of Matomo API service" (
MatomoAPIAddresscode) system setting. - Paste the Matomo service domain you copied in the previous section into the Default value field.
- Save the changes.
- Open the "Matomo API key" (
MatomoAPIKeycode) system setting. - Paste the Auth token you copied in the previous section into the Default value field.
- Save the changes.
As a result, Creatio will identify contacts who follow links in bulk emails.
To import Matomo data of users who submit forms, proceed to the next step.
3. Connect your external landing page to Creatio
Before you perform the setup, make sure your external landing page is connected to Matomo.
We recommend connecting external landing pages to Creatio using webhooks.
If you use a landing page service that supports webhook integration, follow the instructions in Retrieve a webhook in Creatio. Then perform the additional setup below.
-
Add the following script to the landing page:
<script>
function createOrReplaceInput(inputName, inputValue, formSelector, currentForm) {
var existingInput = jQuery(formSelector + " input[name='" + inputName + "']")[0];
if (existingInput) {
existingInput.value = inputValue;
} else {
var newInput = document.createElement('input');
newInput.setAttribute('type', 'hidden');
newInput.setAttribute('name', inputName);
newInput.setAttribute('value', inputValue);
currentForm.appendChild(newInput);
}
}
/* Generate an individual VisitorId and sync it with Matomo. */
function defineVisitor() {
_paq.push([function () {
var visitorId = this.getVisitorId();
var currentUrl = window.location.href;
/* For each form, add hidden TrackingUserId and PageUrl fields. */
var formsCollection = document.getElementsByTagName('form');
for (var i = 0; i < formsCollection.length; i++) {
var formSelector = "";
if (formsCollection[i].id) {
formSelector = "#" + formsCollection[i].id;
} else if (formsCollection[i].name) {
formSelector = "form[name='" + formsCollection[i].name + "']";
}
createOrReplaceInput("TrackingUserId", visitorId, formSelector, formsCollection[i]);
createOrReplaceInput("PageUrl", currentUrl, formSelector, formsCollection[i]);
}
}]);
}
jQuery(document).ready(defineVisitor);
</script> -
Add extra TrackingUserId and PageUrl hidden fields to the relevant landing page.
-
Ensure the webhook is connected to the "Submission" (
FormSubmitcode) Creatio object ("Submitted form" in Creatio 8.3.0 and earlier).
If you use a landing page created in the Landingi.com page builder, follow the instructions in the article: Landingi, Creatio, and Matomo integration (official vendor documentation).
If you use the web-to-object mechanism to integrate your external landing page with Creatio, follow the instructions in the article: Integrate with landing pages via web-to-object mechanism. Then perform the additional setup below.
- Go to the Landing pages and web forms section in Creatio. Find the landing page you want to integrate. The record must have the "Contact registration form" type.
- Open the landing page you want to integrate.
- Copy the code snippet in the Connect your landing page to Creatio and set up field mapping between the lead page and landing page form block.
- Replace the old snippet with the new snippet in the source code of the landing page.
Import Matomo data
After Creatio identifies a contact, it imports that contact's Matomo data recorded over the past year. Creatio identifies contacts and imports their Matomo data in two ways:
- When a user submits a form on a landing page that involves contact creation, the standard contact identification mechanism runs and Creatio imports the Matomo data immediately.
- When a user follows a link in a bulk email sent using Creatio Marketing tools, Creatio uses the contact ID embedded in the link and imports the Matomo data as part of the next update scheduled by the "Matomo data synchronization for contacts by userId" business process.
Out of the box, Creatio updates most Matomo data of identified contacts once a day. To modify the update time and frequency, edit the start timer of the "Matomo data synchronization for contacts by userId" business process.
Importing large volumes of data can affect website performance. Optimize synchronization time and frequency for your business case.
Matomo data passed with the submitted forms is always updated in real time. View the imported data on the Marketing tab of the contact page in Creatio. Learn more: Analyze online behavior of a contact.
Creatio uses a unified contact identification mechanism for form submissions on landing pages that involve contact creation. Learn more: Contact identification from web form submissions. The contact identification procedure has the following restrictions:
- If a user enters data of a different contact in the form, Creatio associates Matomo data with the contact whose data was specified.
- If a user submits multiple forms as part of a single session and enters different contact data in each submission, Creatio associates Matomo data with the contact whose data was specified in the earliest submission.
- If a user forwards a bulk email and the new recipient follows the link, Creatio associates Matomo data of the user who followed the link with the original recipient.
Imported data reference
Creatio imports web session and web action data from Matomo and displays it on the Marketing tab of the contact page. A web session is a website visit during which a contact takes particular steps. A web action is a particular step the contact takes as part of a web session.
Learn more about web session data in the table below.
Data type | Description |
|---|---|
Start date | Date and time when the first web action took place. |
Duration, sec | Time between the session start date and the time of the last web action, in seconds. |
Country | Value imported into the "Country (string)", "Country code", and "Country (lookup)" columns. Creatio selects the lookup value based on the code from the Countries lookup. Creatio does not add new lookup values if imported data contains values missing from the lookup. You can add custom values to the Countries lookup manually. |
Region | Value imported into the "Region (string)", "Region code", and "Region (lookup)" columns. Creatio selects the lookup value based on the code from the States/provinces lookup. Creatio does not add new lookup values if imported data contains values missing from the lookup. You can add custom values to the States/provinces lookup manually. |
City | Value imported into the "City (string)" and "City (lookup)" columns. Creatio selects the lookup value based on the English name in the Cities lookup among the values filtered by the specified Countries and States/provinces lookup values. Creatio does not add new lookup values if imported data contains values missing from the lookup. You can add custom values to the Cities lookup manually. |
Location | Geographic latitude and longitude imported as a string. |
Source | Creatio selects the lookup value from the Lead sources lookup. Imported data is matched to the lookup values based on the following rules, from higher to lower priority:
To edit the lookup, add it manually in the Lookups section.
2. If data includes the Creatio does not add new lookup values if imported data contains values missing from the lookup. You can add custom values to the Lead sources lookup manually. Make sure to fill out the "Default channel" column of the lookup value if you add a custom value. |
Channel | Creatio selects the lookup value from the Lead channels lookup. If the imported data includes the If the "Channel" column is not populated based on channel data, Creatio can populate it based on the Lead sources lookup. To edit the lookup created based on the "Channel code" ( Creatio does not add new lookup values if imported data contains values missing from the lookup. You can add custom values to the Lead channels lookup manually. |
Referrer type and name | Value imported into the "Referrer name (string)" and "Referrer type (lookup)" columns. Creatio selects the lookup value based on the "Matomo code" column of the Referrer type lookup value. The "Referrer name (lookup)" column is not populated. Creatio adds new lookup values if the imported data contains values missing from the lookup. Developers can add custom values to the lookup manually. |
Referrer keyword | Keywords the user entered into the search engine before loading the page referrer URL. |
Page referrer URL | URL of the page from which the user went to your landing page. |
utm_id | Marketing code. |
utm_source | Marketing code. |
utm_medium | Marketing code. |
utm_campaign | Marketing code. |
utm_term | Marketing code. |
utm_content | Marketing code. |
Platform | Operating system of the user. |
Device | Type of device the user is on. Value imported into the "Device (string)" column as a single string containing the device type, brand, and model. The "Device (lookup)" column is not populated by Matomo. |
IP address | IP address of the user. |
Learn more about web action data in the table below.
Data type | Description |
|---|---|
Id | ID of the web session that includes the web action. |
Action start date | Date and time when the action was triggered in Matomo. The value roughly corresponds to when the user performed the action. The difference between this value and the time of the actual action is usually negligible. |
Action type | Creatio selects the lookup value from the Web tracking action types lookup. Imported data is mapped to Web tracking action types lookup values via the "Matomo code" column. The values of the "Name" column can be arbitrary but cannot be localized. The "Name" and "Matomo code" columns of the lookup values added by Creatio are populated automatically. Creatio adds new lookup values if the imported data contains values missing from the lookup. Developers can add custom values to the lookup manually. |
Web page | Creatio selects the lookup value from the lookup created based on the "Web page" ( |
Web page URL address | URL of the page where the event took place. |