Uploading data from a CRM
You can add the customer data and order data from your CRM to your site statistics. This information helps you to:
Build end-to-end analytics
By sending actual sales or transaction statuses from your CRM to Yandex Metrica, you can match them with user's online history on your site and get a comprehensive analysis of your sales funnel.
Optimize your ads in Yandex Direct
Create goals for confirmed user actions or transaction statuses from your CRM and use them to optimize advertising for paid orders, signed contracts, payment after site form submissions, or other actions.
Create segments
Create user segments based on offline data and look-alike user identification. Segments can also include customers who didn’t visit the site before making a purchase.
Get more accurate data
Minimize discrepancies between the data from Yandex Metrica and the information from your CRM system or sales department.
Classify form submissions
Not all form submissions and placed orders on the site result in payments. Send data on "good" submissions to identify your most effective sales channels.
Build ROPO reports
If you have physical stores, you can send sales and transaction data from those locations to measure the impact of online advertising on your offline sales.
You can upload information to Yandex Metrica using the API, integration with CRM, and via Conversion Center in Yandex Direct.
What data can be transmitted to Yandex Metrica
You can transmit:
Customer information
-
- Customer IDs from your CRM.
- Names.
- Additional parameters of your choice.
- IDs that Yandex Metrica can use to find their sessions in the tag (
ClientId
,emails
,phones
).
In the future, this information will allow you to create segments based on customer data from your CRM.
Orders (transactions)
-
- Order IDs from your CRM.
- ID of the customer who placed the order.
- Order time.
- Order status, revenue, cost, and currency.
In addition, you can send information about the products or services included in the order. If Yandex Metrica matches a customer session from your tag to a transmitted order, then, depending on the transmitted order status, the corresponding goals for the session are considered achieved.
Furthermore, you can create segments for customers based on specific order statuses, high spending, frequent orders, and other criteria.
How Yandex Metrica links CRM data to sessions
When you send order or transaction information from your CRM to Yandex Metrica, the service matches it to the closest session on your site based on time. The user is identified based on the data you have sent as identifiers of the customer who has placed the order (ClientId
, emails
, phones
).
Orders from your CRM can be matched to sessions and users within 21 days after the current date. After a successful order match, you have 111 days from the start of the session to edit the order, including its status, total amount, or items. For more information about the matching window, see Offline conversion tracking.
Matching orders to sessions is a key step in end-to-end analytics. It allows you to match site users not only to orders, order statuses, and purchased goods or services, but also to the achieved goals that are associated with those order statuses.
Orders that can’t be matched to a session only appear in the Users and customers report and aren’t included in other Yandex Metrica reports. In addition, the service doesn’t send goals associated with order statuses to Yandex Direct for sessions that are matched to this ad source.
To ensure the accuracy of your reports and the effectiveness of your marketing strategies, make sure that all orders are correctly matched to their corresponding sessions:
- Check the IDs passed to Yandex Metrica, including the
ClientId
, phone numbers, and emails of your customers, and make sure that they're correct. - Transmit data for orders placed within the last 21 days. Orders that are older than 21 days at the time of transmission can't be matched to user sessions (this limitation doesn't apply to updating already matched orders).
- Use the
ClientId
to transmit orders to Yandex Metrica. This is a more reliable method of matching orders compared to phone numbers and email addresses. We recommend passing theClientId
for every transaction created in your CRM system.
Note
If you can't obtain the ClientId
(for example, if it's an offline purchase) or set up its transmission to your CRM, use Advanced Matching: enable the Advanced tracking settings option in the tag settings for more accurate order matching by email and phone number.
Analyzing and managing CRM order statuses
Matching orders to sessions in Yandex Metrica helps you measure the effectiveness of your traffic by transmitting order statuses. Yandex Metrica reports support segmentation by all 5 types of order status:
- Order created: Default status ID is
IN_PROGRESS
. Transmitting this status type completes the goal CRM: Order created. - Order paid: Default status ID is
PAID
. Transmitting this status type completes the goal CRM: Order paid. - Order canceled: Default status ID is
CANCELLED
. Transmitting this status type completes the goal CRM: order canceled. - Spam order: Default status ID is
SPAM
. Transmitting this status type completes the goal CRM: spam order. - Order in a different status: If you transmit the ID of a JavaScript event goal that you manually created for the tag, the order is assigned the
OTHER
status type.
Simplified transmission of CRM data supports 4 standard status types: IN_PROGRESS
, PAID
, SPAM
, and CANCELLED
, as well as JavaScript goal IDs.
Usage example
Suppose a customer fills out a contact form on your site. You capture the user's ClientId
and send it to your CRM along with the form data.
Here’s what the order lifecycle and tracking of its associated goals might look like:
-
Transaction creation. As soon as a new transaction appears in your CRM, transmit an order with the
IN_PROGRESS
status and the transaction number from the CRM to Yandex Metrica. Doing this completes the Order created goal for the user's session in the tag. -
Quality lead. After you have communicated with the customer and confirmed their interest, change the transaction status in your CRM to Quality lead. For this status, create a JavaScript event goal named “Good leads” with the ID
good_lead
on the tag.Use the order number to transmit an update with the new
good_lead
status to Yandex Metrica. This completes two goals for the user’s session: Order created and Good leads. The status of the order itself changes to Order in a different status. -
Payment. After the customer pays for your services, update the order for the last time, transmitting the
PAID
order status to Yandex Metrica. This completes the Order paid goal for the customer’s session. This way, three goals that were mapped to your CRM statuses are completed for the user’s session, and the order status changes to Order paid.
As a result of your interaction with the customer, three goals associated with order status changes in your CRM system are considered achieved for their session. By following these steps, you can accurately track the progress of customer interactions and the effectiveness of your marketing efforts.
With full data transmission, you can implement complex logic for goals associated with CRM order statuses.
Usage example
Suppose you work for a chain of dental clinics with multiple branches. Using full CRM data transmission, you’ve synced your CRM statuses with the order statuses in Yandex Metrica.
A customer submitted a request on the site, you called them back and scheduled a professional dental cleaning at Branch #1. Later, the customer called you back and canceled the appointment. Eventually, they called again to schedule a tooth extraction at Branch #2, came to the appointment, and paid for the services.
In the CRM, the transaction journey based on the customer’s statuses appears as follows:
New lead — Appointment at Branch #1 — Appointment canceled — Appointment at Branch #2 — Services paid
In Yandex Metrica, you created order statuses with matching names and established the following logic:
-
New lead: Order status is
new_lead
. Completes the Order created goal. Order status type is In progress. -
Appointment at Branch #1: Order status is
zapis1
. On the Yandex Metrica tag, completes the JavaScript goals Appointment at Branch #1 with the IDzapis1
and All appointments with the IDvse_zapisi
. Order status type is Order in a different status. -
Appointment canceled: Order status is
CANCELLED
. Doesn’t complete any goals. Order status type is Canceled. -
Appointment at Branch #2: Order status is
zapis2
. On the Yandex Metrica tag, completes the JavaScript goals Appointment at Branch #2 with the IDzapis2
and All appointments with the IDvse_zapisi
. Order status type is Order in a different status. -
Services paid: Order status is
paid_in_filial2
. Completes the goal Order paid and the JavaScript goal Payments at Branch #2 with the IDoplaty_2_filial
on the Yandex Metrica tag. Order status type is Order paid.
For all achieved goals, the profit from the transactions specified in the CRM is passed as revenue. You can use revenue by goal for the Maximum conversions strategy with cost capping by Cost revenue ratio in Yandex Direct.
Getting started
1. Prepare the data
-
Yandex Metrica matches CRM data to users and their site sessions. To match the data, Yandex Metrica uses customer characteristics (
phones
,emails
,phones_md5
,emails_md5
) and a specialClientId
. TheYandex Metrica
ClientId allows for the most accurate matching of orders to user sessions on the site, so we highly recommend sending it.How do I set up ClientID transmission
-
Transmission of the
ClientId
involves including the unique identifier of the Yandex Metrica user in transaction records within your CRM system. Configure the transmission of this parameter based on the user contact channel:-
Forms and orders on the site. Obtain the
ClientId
using thegetClientID
JavaScript method and include it in the hidden field of your lead forms for subsequent transmission to the CRM. -
User calls. If your CRM transactions result from calls, you’re likely using a call tracking service. Check if your call tracking system can pass the
ClientId
to transactions in your CRM. -
User emails. For email-initiated transactions, use email tracking services that can identify the sender’s
ClientId
by substituting the email address on your site. These services can then send information about new emails directly to your CRM as transactions. -
Messenger chats. For customers originating from messengers, initiate the
getClientID
method on the site and include theClientId
in the deeplink (Telegram, Viber) or in the message template (WhatsApp). When creating a transaction, specify the ID in a separate field. -
Site widgets. Make sure that your site widgets can pass the Yandex Metrica
ClientId
to your CRM when transmitting transactions.
Note
If you can't obtain the
ClientId
(for example, if it's an offline purchase) or set up its transmission from your CRM, use the Advanced tracking settings option in the tag settings to more accurately match orders using email or phone number. -
-
2. Upload data about customers and orders
-
You can upload the data:
- Via the Yandex Metrica API — you can use either a simplified upload format (with a minimal number of identifiers and settings) or a detailed one (with an option to send custom fields in orders and customers, product lists, and status matching);
- Using the CRM integration;
- via Conversion Center in Yandex Direct.
Note
Your uploaded CSV file should be no larger than 1 GB and use UTF-8 encoding.
Immediately after uploading, the information appears on the Users and customers → Clients page in Yandex Metrica. To check if the upload is correct, you can also use the API method.
Note
You can transmit data for up to 100,000 orders per customer.
After data transfer in Yandex Metrica:
- End-to-end analytics reports become available (Order sources from CRM report and Sources, costs, and ROI report).
- New metrics will become available: All orders, Orders in progress, Paid orders, Spam orders, Orders with a different status, Canceled orders, Conversion to order, Conversion to payment, Average order value, Revenue, Profit.
- New conversions, such as “CRM: Order created” and “CRM: Order paid”, appear on the Conversions page. The statistics become available once the uploaded conversion data is linked to visits, which happens the first time you successfully upload data.
- Goals appear for tracking conversions related to orders. For example, “CRM: Order created”, “CRM: Order in progress”. They are displayed on the Goals page. Goals can be used in Yandex Metrica reports and for setting up campaigns in Yandex Direct.
Note
The data will appear in Yandex Metrica reports within 2 hours of upload.
3. View statistics
-
Orders are transmitted to Yandex Metrica with different statuses:
- In progress.
- Paid.
- Canceled.
- Spam orders.
- Orders with a different status (orders whose status matches the created JavaScript goal on the tag).
These statuses can be used in Yandex Metrica reports for segmentation.
To view statistics, use:
- The Order sources from CRM report to analyze the sources of orders.
- The Sources, costs, and ROI report to analyze your ad spending and ad effectiveness.
- “Users and customers” report to view all the clients transferred from the CRM and their orders on the Clients tab.
- Any reports where you can select goals. By selecting the goals you used when sending order statuses, you can track the sales funnel stages you are interested in.
Questions and answers
Can I delete the data uploaded from the CRM?
The data can’t be deleted. If an order’s status in your CRM changes to “Spam”, the order information will be updated in Yandex Metrica and will no longer be displayed in order metrics.
A similar logic applies to goals. If an order has been linked to a session, all goals sent for the order will remain in these sessions as conversions.
Why do I have duplicate customers or orders in Yandex Metrica?
The data might be duplicated if:
- The data from the CRM was transferred to Yandex Metrica with the same IDs.
- You uploaded previously transmitted information once again, for example, when migrating to another CRM.
Why can't I match orders after switching CRMs?
After changing the CRM, order data may come to Yandex Metrica with the same IDs that were used in the previous CRM.
However, if the order parameters (for example, the date created) are different, Yandex Metrica interprets these as attempts to update existing orders, not as new orders. Since you can't change the date created of an already sent order, orders can't be matched to sessions.
To resolve this issue, make sure that the order IDs don’t overlap between different CRMs.
Useful links |
Online training |