Интеграция с RetailCRM¶
1. Подключение счетчика R7K12¶
Для корректной работы системы нужно установить код аналитики. Получить код можно на вкладке "Настройки" - подробнее по этой ссылке.
2. Подключение RetailCRM¶
Для подключения CRM необходимо в закладке “Интеграции” => “Интеграция” => “CRM”, выбрать пиктограмму retail CRM
После чего у вас откроется окно настройки подключения CRM
В поле “поддомен”, выделено красным цветом, вводим поддомен нашей CRM. Поддомен это часть url к подключаемой CRM, например если url будет https://site.retailcrm.ru, то поддомен будет site.
Поле “API ключ” - значение берем из retailCRM. Для этого заходим: Настройки (1), интеграции (2), ключи доступа к API (3) и из столбца “Ключ”, берем значение ключа (4).
Для связи системы сквозной аналитики и retailCRM, необходимо создать поле r7k12id.
Для этого заходим в Настройки (1), Настройки (2), Пользовательские поля (3), Закладка Поля (4), нажимаем кнопку “Добавить” (5)
и в открывшемся окне
заполняем:
- Название - r7k12id.
- Символный код - r7k12id.
- Тип поля - Строка.
- И нажимаем “Сохранить”.
3. Автоматическая отправка сделки в RetailCRM¶
Если сделки уже создаются автоматически, необходимо заполнять дополнительное поле 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;
При оформлении сделки на Вашем сайте она автоматически создается в retailCRM, при этом резервная копия информации о сделке будет сохранена в вашем аккаунте R7K12. Это позволит не беспокоиться о том, работает ли в данный момент retailCRM. В любом случае, информация будет сохранена и спустя некоторое время будет отправлена в retailCRM повторно.Необходимо сделать так, чтобы сделки с сайта отправлялись сразу в retailCRM. Для этого у нас есть готовое решение: проксирование сделок.
Чтобы настроить проксирование сделок в том файле, который обрабатывает формы на сайте (например, отправляет данные на почту), необходимо добавить следующий код: PHP или JavaScript. Скрипт выполняет одну и ту же работу и применяются в зависимости от ситуации.
При использовании PHP скрипта нужен будет скрипт проекта. Взять его можно из настроек проекта:

3.1. На стороне сервера (скрипт PHP):¶
<?php
$KEY = 'PROJECT KEY'; //ключ проекта
$CRM = array(
'r7k12id' => isset($_COOKIE['r7k12_si']) ? $_COOKIE['r7k12_si'] : null,
'type' => 'Form', //Тип заявки (ОБЯЗАТЕЛЬНО)
'href' => 'http://example.com/page', //страница, с которой пришло обращение
'comment' => 'Коментарий к сделке', //Комментарий к сделке (НЕ ОБЯЗАТЕЛЬНО)
'name' => 'Имя клиента', //Название контакта (НЕ ОБЯЗАТЕЛЬНО)
'email' => '[email protected]', //E-mail адрес контакта (ОБЯЗАТЕЛЕН ЕСЛИ НЕ УКАЗАН ТЕЛЕФОН КОНТАКТА)
'phone' => '79001234567', //Телефон контакта (ОБЯЗАТЕЛЕН ЕСЛИ НЕ УКАЗАН E-MAIL КОНТАКТА)
'create_new_lead' => '1', //'0' - новая сделка создается только если нет сделки или предыдущая в статусе "успешно реализовано" или "возврат"; '1' - новая сделка создается в любом случае
'fields' => array(
// Массив дополнительных полей, если нужны.
'lead' => array(//Поля для сделок
// Примеры использования:
"price" => 453, // Сумма заказа
"responsible_user_id" => 3, // Ответственный по сделке (id менеджера)
"status_id" => 123123, // Создавать заказ с определенным статусом. Указывать необходимо ID статуса.
"orderMethod" => 'landing-page', //Способ создания заявки
// Заполнение пользовательских полей
'<Символьный код>' => 'Значение', // Строка
'<Символьный код>' => '1', // Флажок (1 – Отмечен, 0 – Снят)
'<Символьный код>' => '<Символьный код значения справочника>', // Справочник
//Следующие поля должны быть заданы в админке
"revenue" => "{revenue}", //Заполнение доп. поля "Доход"
"profit" => "123", //Заполнение доп. поля "Прибыль"
"cost" => "32", //Заполнение доп. поля "Себестоимость"
),
'contact' => array(//Поля для контактов
'<Символьный код>' => 'Значение', // Строка
'<Символьный код>' => '1', // Флажок (1 – Отмечен, 0 – Снят)
'<Символьный код>' => '<Символьный код значения справочника>', // Справочник
),
),
);
$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);
3.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’
// Подробную информацию о наименовании полей и получить список доп. полей вы можете в документации retailCRM: https://drive.google.com/drive/u/0/folders/0B4JFhepgs3XpdUlFR3RrQnVpSjA
},
contact: {
'3124124': 'Текст' // Заполнение доп. поля с ID ‘3124124’
// Подробную информацию о наименовании полей и получить список доп. полей вы можете в документации retailCRM: https://drive.google.com/drive/u/0/folders/0B4JFhepgs3XpdUlFR3RrQnVpSjA
}
}
}
});
3.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 в адресной строке
{source} // Utm source Визита
{medium} // Utm medium Визита
{campaign} // Utm campaign Визита
{adContent} // Utm adContent Визита
{keyword} // Utm keyword Визита
{gclId} // Google Adwords gclId
{deviceType} // Устройство пользователя
{browser} // браузер пользователя
{operatingSystem} // Операционная система пользователя
{operatingSystemVersion} // Версия операционной системы пользователя
{city} // Город пользователя
{region} // Регион пользователя
{country} // Страна пользователя
4. Менеджеры¶
Если в обращении не указан responsible_user_id, ответственный менеджер выбирается из тех, кто работает в момент обработки заявки. Список менеджеров подгружается автоматически при создании интеграции, но для каждого из них нужно задать расписание. Для этого нужно зайти в интеграцию (вкладка “Настройки”), выбрать менеджера и нажать кнопку “Редактировать расписание”
В расписании можно заполнить рабочее время на каждый день недели.
