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

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