Connecting integration with AmoCRM in the integration catalog. We evaluate technical implementation

How to track the cost of an application if you are a web studio? The client's path to a transaction is long, winding and confusing. The client can go away to “think” and disappear, and a year later call as if nothing had happened and say: “I’m ready, issue an invoice.” To understand how you make money, you need deeper analytics than tracking goals in Metrics.

For example, clients come to us:

  • according to recommendations
  • from webinars and conferences

These are only the main channels, but there are also publications, business cards of the company in ratings, directories, and banners. Here we will buy advertising, here we will agree on an article, and here we will post a case. And it seems like there is activity, calls are coming in, the marketer is great. But how to understand:

  • How much do we actually earn from each channel?
  • How do the channels influence each other?

To answer these questions, we at Atvint decided to set up end-to-end analytics. Goal: see all financial data by source in a single report and manage the advertising budget based on this data.

Setting up end-to-end analytics


Sources

First, we defined what our sales funnel looks like. Sketched everything possible ways client from the first contact to the conclusion of the transaction.

List of all possible channels where leads can come from:

Capture points where we can get data:

  • Carrot Quest chat
  • dynamic call tracking Callibri
  • email
  • application form on the website

Application processing and transaction execution: amoCRM

Performance statistics: Google Analytics

Now this funnel needs to be connected into a single whole.

We evaluate technical implementation

The first thought is to set up the standard e-commerce module in Google Analytics. But there is a problem: our website is not an online store. There is no authorization, order form, shopping cart or payment. This means that the analytics counter will not be able to identify the user and collect transaction data.

Information to Google Analytics will have to be transferred from CRM. We wrote to amoCRM technical support. It turned out that we need to configure WebHooks - notifications third party applications about events that occurred in amoCRM.

Setting up - preparatory stage

We set up integration between the website, CRM, chat, tracking, email and Google.

amoCRM

Go to Settings - API. We copy the API key - it will be needed for integration with other services and for interaction of our API with the amoCRM API.

In the WebHooks block, select the actions for which amoCRM will send a request to the specified URL. The request contains information about the observable object in JSON format. In our case it is:

  • change in transaction status
  • change of transaction
  • deleting a deal
  • creating a contact
  • change contact

Setting up contacts. Go to “Settings - Fields - Contacts”. We have added the following fields: GA_id, Subscriber, IP. This is necessary for the correct transfer of data about incoming orders to Google Analytics.

Carrot Quest

Carrot Quest allows you to automatically create a contact in your CRM and transmits information about the traffic source. In order to correctly transfer information to Google, correct matching and further merging of the user, it was necessary to configure the transfer of google_id to CRM along with the rest of the contact data. After creating a deal, we received accurate data on this contact in the analytics system.

The difficulty of working with Carrot is that to set up integrations you cannot do without programming knowledge, despite the fact that the setup takes place from the admin panel. First, you need to set up the Data Collection Wizard. Go to “Tracking - Data Collection Wizard”. Select “Advanced Data Collection Wizard”.

For our work, it was essential to create one field: GA_id (see setting up contacts in amoCRM). In the “Selector Properties” block, enter the tag selector on the site (for example, input type="hidden"), from which the script will take the required value. In our case, we write the google_id of the site visitor into this input. And in the drop-down list, select the field in which the service will store the received value for each user.


Integrations. Choose amoCRM.


We fill in all fields.


Particular attention should be paid to the “Properties to be transferred” item. Here you need to select the field that you selected in step 2 (in our case it is “cid”). And in the text field you need to enter the name of the contact field from amoCRM, in which google_id is written (in our case “GA_id”).

Callibri

Call tracking works much the same as chat and automatically creates a contact in the CRM. If this contact did not previously exist in CRM, it creates a deal for each new call. Go to “Sites - Site name - Settings - Site”. "Synchronizations" tab. Select amoCRM and fill in the required fields. If you need to create a lead when calling, then select the appropriate item.


SendPulse

We use this system for email marketing. IN this service you just need to create the necessary address books and activate REST API and API 3.0 in the account settings in the “API” tab.



Diagrams

Basic setup

Description of external events

Sending a request to the API upon any action performed by the visitor on the site. The site is synchronized with Google Analytics, so a field with the visitor's ga_id is added to each request.

Application from the site

When sending an application from a site form to the API, a request is generated to create or update a new visitor in amoCRM with information from the form, as well as additional information from request (ip, ga_id). A lead is also created in amoCRM. If the visitor has subscribed to the newsletter, a subscriber record is created in the API and an email with a confirmation link is sent to him (the visitor).

At the same time, a flag is added to the request to create or update a visitor, informing about the visitor's subscription. And a request is sent to the SendPulse IS to add the visitor’s email to address book unverified subscribers.

After confirming the subscription via the API, a request will be sent to the SendPulse API to transfer the visitor's mail to the address book of confirmed subscribers. In the future, you can send mailings to the specified books in the SendPulse interface.

Blog Subscription

This functionality is configured in the same way as described above, except for creating a lead.

Go to page

When you go to any page of the site, the visitor registers in the API. Its entry contains the ip and ga_id of the visitor. If the visitor is already registered and his ip and ga_id have not changed, nothing happens. This information will be needed later when linking several accounts in amoCRM.

The API also creates a request to create a note in the amoCRM profile. It contains information about the page, date and UTM tags. If the visitor is not registered in amoCRM, then nothing happens. If this is a new visitor, not registered in amoCRM, and he went to the site via an advertising link, then a user is created in amoCRM with data about his ip, ga_id and traffic source.

Clicking and copying email

When entering a site page, as described above, the table of site visitors is searched for the user by his ip and ga_id. If there is no such user, then one is created. Then it returns to the site unique identifier(6 characters). This identifier is substituted into links with Atvinta emails. This way you can uniquely identify the site visitor who decided to send the letter.

Phone call

The visitor calls the number indicated in the site header. The number in the site header is automatically generated using the Callibri service. Each visitor sees his own unique number. After the call, the call is redirected to real number sales department "Atvinta". Next, a user is created in Callibri and information about the visitor is assigned to him: phone, region, channel, traffic type, Page URL, duration of conversation and so on.

In parallel, amoCRM creates new user with all the information that can be linked to it. The label "Callibri" is added to this user. Using the Callibri API, you can get information about calls for a certain period.

Contact via Carrot Quest

Writing a message in the Carrot Quest dialog box in the lower right corner of the site. When you send the first message using the Carrot Quest service, a dialog is created in it in which the manager can execute the command to create a user in amoCRM.

Sending Email

Sending mail to one of electronic mailboxes"Atvints." In amoCRM you can link your email to your account and view all incoming emails directly from the amoCRM control panel. In our case, the linked mail is the same as on the site (to which the user ID is assigned).

On the letter page you can create a user contact and link a deal to it. The selected letter will be automatically attached to such a transaction.

Description of internal interaction

AmoCRM API

Sending requests from the API to amoCRM for various actions. Detailed documentation can be read here. This API was needed to automate some repetitive processes.

Search for contacts (GET contacts/list). The search is performed in all possible fields. To uniquely identify a site visitor, we search by the visitor’s IP and ga_id. This information is always transmitted when you navigate to any page of the site. If the user left a request or subscribed to the blog, then the phone and e-mail visitor.

Create or update a contact (POST contacts/set). When sending an application, going to a website from an advertising source, or subscribing to a blog, a contact is searched among amoCRM users and its information is updated, or, if there is no such contact, a new one is created and possible fields are filled in. When a user is updated, new mail and phone values ​​are added to the array rather than overwriting existing ones.

Creating or updating transactions (POST leads/set). After sending a request from the site to amoCRM, in addition to creating a user, a request is created that is linked to the created or found contact. The deal fields are filled in according to the form field values ​​(deal type, comment, attached file).

Measurement Protocol

Sending requests from the API to Google Analytics for various actions (to be described below).

Statistics transfer protocol Google data Analytics allows you to send raw data directly to Google servers Analytics via HTTP requests in virtually any environment. Using this protocol, developers can solve the following problems:

  • track how users interact with their company in new environments;
  • link online and offline activities to get a complete picture of customer behavior;
  • send data from both websites and the server.

To build the necessary reports, we needed to match transactions in amoCRM with products in GA. To do this, we represented deals as transactions, and the sales stages of deals as goods of a given transaction. Ultimately, we should have been interested only in the cost of the entire transaction, and not its goods (we will describe why in the Webhooks section). We used product categories as types of service transactions (Development, SMM, SEO, and so on).

Data filling occurs only in automatic mode. The following methods were mainly used:

  • creating a new transaction;
  • adding a product to an existing transaction;
  • sending events.

WebHooks

Sending requests from amoCRM to the API when making certain actions(will be described below).

When performing certain actions in the amoCRM interface, a notification about this event is sent to the Atwinta API. Also attached to this notification is the object with which the action occurred, in JSON format.

Adding, changing a contact - Changing a deal. Notification of transaction transfer is sent to new stage sales Contains a deal object (its name, cost, sales stage id, deal type).

The Atwinta API side also stores transactions. This is done to keep transaction values ​​in GA up to date because transaction values ​​can change multiple times. If the value of an existing transaction has changed, then it is necessary to add transactions to the transaction using the Measurement Protocol new product. At a price of this product there will be not a new value of the transaction value, but the difference between the new and old value.

Thus, the final price of the transaction (deal) will correspond to the current cost of the transaction in amoCRM. This was done due to the impossibility of deleting or editing transaction goods using MeasurementProtocol.

Change of transaction status. The same notification as above is sent to the server. When the sales stage of a deal changes, an event is sent to the GA side with information about which deal and what stage this deal has moved to. This way you can track the number of completed and unrealized transactions.

Deleting a deal. When a transaction is deleted, a request is sent to the GA side to add another product to the list of transaction goods. The price of this product will be equal to -X, where X is the cost of the current transaction. This way we will exclude this transaction from the reports.

Difficulties and nuances

As it turns out, technically setting up end-to-end analytics is not that difficult. The main thing is to initially make a list of all the sources we need, and then just follow the checklist. But there were also some peculiarities.

Communication with technical support

I constantly had to write to technical support of the services and clarify the setup details. The answers often gave rise to new questions. Although they responded to us quickly, overall the correspondence took a lot of time.

Features of the operation of different services

When setting up, you need to take into account the logic and functionality of the work different systems. For example, Carrot Quest and Callibri are chat and call tracking. Both determine the source of the request and transfer it to CRM. But Callibri can create a deal automatically, and in Carrot Quest a deal is created from a contact. One system transmits google_id without additional settings, in the other you need to add functionality.

Advanced e-commerce module

The standard Google Analytics e-commerce module is not suitable for selling services. For example, if a transaction does not go through, it does not allow the item to be deleted during the transaction. In the case of services, a transaction does not mean receiving money. That's why we connected the advanced trading module.

The logic there is as follows: a lead is a product that goes through several stages of the transaction. We have three stages: transferred to the manager, implemented and not implemented. An event is sent to Google indicating that the transaction has reached a certain step. If the transaction does not actually take place, the product is recalled.

Sales department training

Since we do not have automatic transactions, the transaction status is updated by the sales department. In this case, you need to follow a certain algorithm of actions. If the manager does not enter data into the CRM or makes a mistake, the statistics in Analytics will be incorrect. Sales department specialists had to be trained in the new algorithm and encouraged to follow it.

How much did it cost

Some numbers: 68 hours of programmer work, 10 hours of manager work. Setup cost: 101,400 rubles.

Result

As we wanted, now all sources and financial indicators are in a single report.

What we analyze

  • Traffic.
  • Number of goals achieved.
  • Leads.
  • Advertising costs for each channel.

This can be seen without end-to-end analytics. Here's what else we see:

  • conversion from lead to sale;
  • income for each lead by traffic source;
  • the amount of money actually earned from different channels;
  • number of requests from each lead;
  • number of refusals at the stages of the sales funnel.

What to do about it

Now you can measure the ROI for any traffic source.

It turned out that there were almost twice as many applications from Google than from Yandex. It turns out that Google works twice as efficiently. But at the same time, traffic from Google brings us less money. Consequently, either the traffic itself is less commercial, or the audience is less solvent.

On one of the reports, we noticed an interesting picture when comparing Yandex. Direct" and "VKontakte". As it turned out, the number of transitions from Yandex. Direct" is almost three times more than with VKontakte, and the number of applications is six times more.

The costs for Yandex.Direct are three times higher than for VKontakte.

But in terms of income, Yandex.Direct is only 15% ahead of VKontakte.

We conclude that we need to actively develop the community in social network VKontakte, attract subscribers and increase coverage.

We also compared two well-known sites with ratings from studios and agencies (let's call them X and Y). The number of transitions of site X is two times less than that of Y, and the number of applications is the same.

The income from site X is 82% higher than from site Y. It is more advisable to buy advertising on the site that converts more money, despite the high cost of accommodation. Now we can understand whether the placement will pay off or not.

By setting up end-to-end analytics, you will see which channels bring you money and which do not.

Hello, dear friends!

Good news for all users of the LPgenerator SaaS platform - the platform has been integrated with the online CRM system for managing marketing events amoCRM. What is revolutionary about this update? The answer is simple: amoCRM has many unique advantages that are not available to its market competitors.

amoCRM as intuitively accessible to users of any level clear system accounting potential clients and transactions are noticeably superior in functionality to the usual Excel tables or Google Docs. With similar ease of use, amoCRM allows you to store not only contact databases, but also the history of negotiations for each individual transaction (deal database); assign tasks to managers and notify about created tasks; create analytical reports on the completed transaction.

Compared to marketing solutions of a similar class - Highrise, onlineCRM SugarCRM - the amoCRM system is optimized for work in the B2B sphere, has such vital necessary tool analytics as a sales funnel and works correctly with the Russian language. Against the background of expensive powerful CRM systems such as Dynamics, SalesForce, Siebel this decision stands out in positive side because it is much easier to use and does not require special skills or prior training.

This is just the shortest list of amoCRM benefits that are now available to clients of the LPgenerator marketing platform.

Integration setup

In order to connect to your LPgenerator account, you need to take a few simple steps:

1. Enter the “Integrations” section of the conversion optimization center for the page with the lead form, the data from which you want to transfer to amoCRM.

Pay attention! There are no required fields for integration. The lead will be transferred without any problems, even if your lead form has only one “Phone” field.

A contact without a name will be named “None” and will contain all the data sent from the fields:

2. Click the “amoCRM” button:

3. In the window that appears, enter in order: “Name account in amoCRM” (for example, for site.amocrm.ru it will be site), “User login” (e-mail) and “User key”:

4. Click the “Check data” button.

5. If all data is entered correctly, you will see the message “Verification successful”:

Once the integration is enabled, you must resave all page options

Where can I get an API key?

To get an API key:

1. Login to your personal account at amocrm.ru.

2. Click on your profile icon and select “Edit profile”:

What fields are transmitted

Data from the fields “Name”, “Phone” and “Email” will be transferred to standard amoCRM fields:

Data from non-standard fields (that is, all fields except “Name”, “Phone” and “Email”) will go to “Additional parameters”:

In addition to the data transmitted from the form fields, amoCRM receives information about the IP address and page name. This is shown in additional parameters contact and deal (how to enable the creation of deals will be discussed below).

Please note: the page title is transferred from the LPgenerator system and can be easily changed. There is no need to resave the page after changing the name. You can edit the name here:

Integration operation diagram

1) We send a request to amoCRM.ru containing the e-mail of the visitor who left the lead on landing page. The system automatically checks whether there is this number phone or e-mail in AmoCRM.

2) If two sent leads contain same number phone or email, then applications will not be duplicated - the data of the second lead will be entered in the notes to the first. Example of a phone merge:

Similarly, leads will be merged if they have the same email.

Creating new fields in the AmoCRM table and passing data to them

Integration allows you to create your own fields in AmoCRM and transfer data from certain fields of the LPgenerator lead form to them.

At this point we will dwell in more detail and tell you how to work with this function.

For example, you want to get a client's address.

1. Go to the landing page editor, which is integrated with AmoCRM:

2. Open the lead form editor. To do this, double-click on its fields:

3. In the form editor, click on the field for which you want to configure data transfer and go to the “Field Settings” section.

In our example, select the “Delivery Address” field:

4. In the settings on the left in “Name in crm” enter the name of the field:

Looking ahead, we will say that this name will completely coincide with the field in AmoCRM. We will create it there a little later, and it will be displayed directly in the contact card:

Field name requirements:

  • strictly introduced lowercase letters and without spaces (can be replaced with underscore);
  • It is allowed to use the Cyrillic alphabet, but we recommend entering the name in Latin characters to avoid encoding failures when transferring data;
  • numbers are not supported.

Example of a correct address name:

5. When choosing a name for the field, keep in mind that in the “Leads” section it will be called exactly as you write:

If you actively use our CRM, you can configure the columns in a way convenient for you:

6. Once you have selected the field name and entered it, save the page:

7. Go to your AmoCRM account, click on “Settings” at the bottom left and go to the “Fields” section:

9. Click the “Add Field” button at the top right:

10. In the window that opens, enter a name for the field. It should be identical to what was entered in the lead form settings. Click "Save":

Do not change the remaining field settings and leave them as default.

11. Done! Send a test lead with landing page, filling in the field that you configured, and check the display of data in AmoCRM:

Automatic creation deals

This function is available in integration with amoCRM and allows you to create deals simultaneously with a contact.

To activate it, open the integration settings in the “Conversion Optimization Center” and check the “Create a new deal” checkbox:

1) a lead is sent from a page integrated with amoCRM:

2) amoCRM receives data from the form and creates a contact:

3) in parallel with this, a deal is created, and all the data from the contact is included in it:

Automatic deal creation can be disabled in the integration settings. Just uncheck the box and resave the page.

Transfer of UTM tags

If you track traffic sources and UTM tags, then information on them can now be transferred to amoCRM along with lead data.

The tags will go into the note:


High conversions to you!

Advanced integration settings

  1. Specify parameters for filtering transactions; for this, read the article.
  2. Specify the values ​​of the business indicator fields; for this, read the article.
  3. Click the button Save.

Sending applications to "Unsorted"

By default, orders are created as deals. If you need to, create requests in essence " Unassembled", configure this mechanism step by step:

  1. Check the box Send leads to Unsorted.
  2. In amoCRM, connect the form even if you will not place it on the site. This is necessary due to implementation features transferring applications to CRM via Roistat. In the integration settings with amoCRM in the field Form ID enter the ID of the form connected to amoCRM.

    How to find out the form ID in amoCRM

    In the field Form ID insert Form ID from the previous step.

    In the field Form name insert Form name from the previous step.

  3. In the field Form location enter the text that will be displayed in the deal header with status Unassembled .
  4. In the field Funnel ID enter the identifier of the status funnel in amoCRM to which transactions with the status coming from Roistat will be assigned Unassembled. If you do not specify a funnel ID, deals will be assigned to the status funnel, which is located first in the list of status funnels in amoCRM:

    How to find out the ID of a status funnel

Creating tasks

In order for managers to work more effectively with incoming requests, You can set the creation of tasks to the responsible manager for new requests in the CRM system.

The mechanism only works when creating applications as Transactions in AmoCRM. When sending to Unassembled, tasks will not be installed.

Distribution of applications

You can specify which managers to place new requests in the CRM system. Managers will be appointed in order.

In the field Responsible for applications Enter manager identifiers separated by commas. Using this list, Roistat automatically distributes transactions to the specified managers.

How to find out manager ID


If you want the manager transferring the deal from status Unassembledto any other status, appointed responsible for the transaction, leave this field Responsible for applications empty.

To assign a repeat customer request to the same manager who is responsible for the contact, enable the appropriate setting at this step.

Customizing behavior

Enable this mechanism if you want the sale date to be downloaded directly from your CRM systems. It is based on the standard definition of winning a deal for a CRM system.

If you are using your status to determine the sale of a deal, use general mechanism determining the date of sale.

Step 4. Set up automatic sending of deals to amoCRM

We recommend configure the transfer of transactions to CRM through Roistat - a mechanism for sending transactions, in which transactions are first transferred to Roistat, then sent to CRM. The mechanism has a number of advantages. More details read the article .

If sending transactions from the website to CRM is already configured using your code, you need to fill out an additional field to exchange data with Roistat roistat transactions by browser cookie value roistat_visit .

Example code that can be used to get the value of this cookie:

Checking work


Roistat can create transactions in amoCRM only if the CRM is paid for or the test tariff is active. Otherwise, no transactions are created.

  • No labels