Перейти к содержанию

Интеграция с 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)   и в открывшемся окне заполняем:

  1. Название - r7k12id.
  2. Символный код - r7k12id.
  3. Тип поля - Строка.
  4. И нажимаем “Сохранить”.

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, ответственный менеджер выбирается из тех, кто работает в момент обработки заявки. Список менеджеров подгружается автоматически при создании интеграции, но для каждого из них нужно задать расписание. Для этого нужно зайти в интеграцию (вкладка “Настройки”), выбрать менеджера и нажать кнопку “Редактировать расписание” В расписании можно заполнить рабочее время на каждый день недели.