Интеграция с AmoCRM¶
1. Устанавливаем код r7k12¶
Для корректной работы системы нужно установить код аналитики. Получить код можно на вкладке "Настройки" - подробнее по этой ссылке.
2. Настраиваем интеграцию с amoCRM¶
На вкладке Интеграциивыберите Создать интеграцию с amoCRM.
Далее нажмите кнопку Установить интеграцию:
После этого откроется окно авторизации в amoCRM. Необходимо зайти в систему под доступами вашей подключаемой amoCRM.
Далее выберите ваш аккаунт и нажмите кнопку "Разрешить" для завершения авторизации.
Предоставив доступ Вы получите уведомление в интерфейсе R7K12. Теперь вы можете создать интеграцию, нажав на кнопку Создать.
Интеграция успешно создана. Теперь можно переходить к настройкам интеграции.

3. Добавление поля r7k12 в amoCRM¶
Чтобы система могла идентифицировать каждую сделку с заходом пользователя, для этого в настройках сделки необходимо добавить текстовое поле r7k12id в которое будет записываться идентификатор визита R7K12.
Для этого зайдите в amoCRM, перейдите в раздел Сделки. Откройте любую сделку или создайте новую. Для создания новой сделки, нажмите в правом верхнем углу кнопку Новая сделка.
В окне свойств сделки перейдите на вкладку Настроить.
Откроется окно Настройка свойств полей и групп. Теперь можно произвести настройки полей.
В конце первого блока полей нажмите кнопку Добавить поле:
Вводим название поля r7k12id и нажимаем кнопку Сохранить.

Теперь поле r7k12id будет добавлено во все сделки amoCRM.
4. Распределение статусов сделок¶
После подключения amoCRM к R7K12 нужно распределить статусы сделок:
- Не учитывается — мусорные лиды, дублирующие сделки. Чтобы статистика была максимально корректна — не удаляйте сделки. Их лучше перемещать в специально отведенный статус (например, «Мусор»).
- В обработке — сделки, по которым идет работа (например, новые переговоры или комплектация товара).
- Успешно реализовано — сделки, по которым Вы уже получили деньги или «вот-вот» получите.
- Отказ — сделки, от которых клиент отказался или делает возврат.
5. Автоматическая отправка сделки в amoCRM¶
Если сделки уже создаются автоматически, необходимо заполнять дополнительное поле r7k12id у сделки значением куки r7k12_si. Session_id хранится в:
- куках (cookie) браузера (r7k12_si);
- локальном хранилище (localStorage) браузера (r7k12_si);
- в глобальной переменной JS (r7k12_si).
Получение ID визита рекомендуется реализовать через функцию “R7K12_CallBack”. Данная функция будет автоматически вызвана после отправки “pageview” и получения ID визита. Функция должна быть объявлена до инициализации скрипта счетчика. Пример строчки, которая получает значение этой куки:
$r7k12id = isset($_COOKIE[‘r7k12_si’]) ? $_COOKIE[‘r7k12_si’] : null;
При оформлении сделки на Вашем сайте она автоматически создается в amoCRM, при этом резервная копия информации о сделке будет сохранена в вашем аккаунте R7K12. Это позволит не беспокоиться о том, работает ли в данный момент amoCRM. В любом случае, информация будет сохранена и спустя некоторое время будет отправлена в amoCRM повторно.Необходимо сделать так, чтобы сделки с сайта отправлялись сразу в amoCRM. Для этого у нас есть готовое решение: проксирование сделок.
Чтобы настроить проксирование сделок в том файле, который обрабатывает формы на сайте (например, отправляет данные на почту), необходимо добавить следующий код: PHP или JavaScript. Скрипт выполняет одну и ту же работу и применяются в зависимости от ситуации.
При использовании PHP скрипта нужен будет скрипт проекта. Взять его можно из настроек проекта:

5.1. На стороне сервера (скрипт PHP):¶
<?php
$KEY = 'PROJECT KEY';//ключ проекта
$CRM = array(
'r7k12id' => isset($_COOKIE['r7k12_si']) ? $_COOKIE['r7k12_si'] : null,
'type' => 'Form',//Тип заявки (ОБЯЗЯТЕЛЬНО)
'title' => 'Проверка макросов',//Заголовок заявки (НЕ ОБЯЗАТЕЛЬНО)
'comment' => 'Коментарий к сделке',//Комментарий к сделке (НЕ ОБЯЗАТЕЛЬНО)
'name' => 'Имя клиента',//Название контакта (НЕ ОБЯЗАТЕЛЬНО)
'email' => '[email protected]',//E-mail адрес контакта (ОБЯЗАТЕЛЕН ЕСЛИ НЕ УКАЗАН ТЕЛЕФОН КОНТАКТА)
'phone' => '79001234567',//Телефон контакта (ОБЯЗАТЕЛЕН ЕСЛИ НЕ УКАЗАН E-MAIL КОНТАКТА)
'create_new_lead' => '1', //'0' - новая сделка создается только если нет сделки или предыдущая в статусе "успешно реализовано" или "возврат"; '1' - новая сделка создается в любом случае
'fields' => array(
'lead' => array(//Поля для сделок
// Массив дополнительных полей, если нужны, или просто пустой массив. Более подробно про работу доп. полей можно посмотреть в видео в начале статьи
// Примеры использования:
"price" => 453, // Поле бюджет в amoCRM
"responsible_user_id" => 3, // Ответственный по сделке
"1276733" => "Текст", // Заполнение доп. поля с ID 1276733
"status_id" => 123123, // Создавать лид с определенным статусом в определенной воронке. Указывать необходимо ID статуса.
// Подробную информацию о наименовании полей и получить список доп. полей вы можете в документации amoCRM: https://developers.amocrm.ru/rest_api/#lead
// Более подробную информацию по работе с дополнительными полями в amoCRM, вы можете получить у нашей службы поддержки
"tags" => "Тест скриптов, Тег2", // Название тегов через запятую
//Следующие поля должны быть заданы в админке
"revenue" => "{revenue}", //Заполнение доп. поля "Доход"
"profit" => "123", //Заполнение доп. поля "Прибыль"
"proceeds" => "111", //Заполнение доп. поля "Выручка"
"cost" => "32", //Заполнение доп. поля "Себестоимость"
),
'contact' => array(//Поля для контактов
'123456' => 'Текст',
),
),
);
$context = stream_context_create(array(
'http' => array(
'method' => 'POST',
'content' => json_encode($CRM),
),
));
file_get_contents("https://r7k12.ru/".$KEY."/crm/", false, $context);
При использовании отправки через PHP более приемлемо использовать библиотеку cURL вместо функции file_get_contents(). Пример:
<?php
define('KEY','YOUR PROJECT KEY');
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://r7k12.ru/'.KEY.'/crm/');
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt(
$curl,
CURLOPT_POSTFIELDS,
urlencode(
json_encode(
[
'r7k12id' => !empty($_COOKIE['r7k12_si']) ? $_COOKIE['r7k12_si'] : null,
'type' => 'Form',
'comment' => 'Комментарий к сделке',
'name' => 'Имя клиента',
'email' => 'E-mail клиента',
'phone' => 'Телефон клиента',
'create_new_lead' => '0'
],
JSON_UNESCAPED_UNICODE
)
)
);
$out = curl_exec($curl);
curl_close($curl);
5.2 На стороне клиента (скрипт JS):¶
r7k12.push({
hit: 'crm',
data: {
type: "Form",//тип заявки
title: "Заявка с сайта",//Заголовок заявка
comment: "Сделка созданная с фронта",//комментарий
name: "Алексей Владимирович",//имя контакта
phone: "8-912-345-67-89",//телефон
fields: {//доп. поля
lead: {
cost: "{cost}",
revenue: "{revenue}",
price: 100,
'127633': 'Текст' // Заполнение доп. поля с ID ‘127633’
// Подробную информацию о наименовании полей и получить список доп. полей вы можете в документации amoCRM: https://developers.amocrm.ru/rest_api/#lead
},
contact: {
'3124124': 'Текст' // Заполнение доп. поля с ID ‘3124124’
// Подробную информацию о наименовании полей и получить список доп. полей вы можете в документации amoCRM: https://developers.amocrm.ru/rest_api/#contact
}
}
}
});
5.3 Список макросов для скрипта JS и PHP¶
Детальная информация о макросах которые можно использовать
{clientId} // ID пользователя в R7K12
{gaClientId} // Client_id Google Analytics
{ymClientId} // Client_id Яндекс Метрики
{idUser} // User_id сайта
{visitNumber} // Номер визита
{newVisit} // Новый ли визит
{visitStartTime} // Время старта визита
{visitEndTime} // Время окончания визита
{timeOfSite} // Время длительности визита
{url} // URL старта визита
{host} // Host старта визита
{path} // URL страницы без хоста
{query} // query
{hash} // hash в адресной строке
{source1} // UTM source Визита
{source2} // UTM medium Визита
{source3} // UTM campaign Визита
{source4} // UTM content Визита
{source5} // UTM term Визита
{gclId} // Google Adwords gclId
{deviceType} // Устройство пользователя
{browser} // браузер пользователя
{operatingSystem} // Операционная система пользователя
{operatingSystemVersion} // Версия операционной системы пользователя
{city} // Город пользователя
{region} // Регион пользователя
{country} // Страна пользователя
6. Менеджеры¶
Если в обращении не указан responsible_user_id, ответственный менеджер выбирается из тех, кто работает в момент обработки заявки. Список менеджеров подгружается автоматически при создании интеграции, но для каждого из них нужно задать расписание. Для этого нужно зайти в интеграцию (вкладка “Настройки”), выбрать менеджера и нажать кнопку “Редактировать расписание”
В расписании можно заполнить рабочее время на каждый день недели.
