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

Загрузка заявок в Roistat

Зачем загружать заявки

Roistat получает данные о заявках с сайта и сделках в CRM системе, чтобы использовать их в аналитике. Данные могут загружаться двумя способами. 

Первый способ - когда на сайте уже настроена отправка заявок в CRM. В этом случае они загружаются в Roistat после подключения CRM. Настройка минимальна: нужно только создать дополнительное поле в CRM и добавить скрипт на сайт, чтобы оно автоматически заполнялось уникальным номером посещения.

Используйте этот способ, если у вас уже настроена автоматическая отправка заявок с сайта в CRM и вы не хотите это менять.

При использовании второго способа заявки с сайта отправляются в Roistat (Каталог интеграций → Настройки подключенной интеграции → Список отправленных заявок), а затем в CRM.

Этот способ надежнее. Если в момент создания заявки CRM была недоступна, заявка не потеряется и будет создана в CRM, когда появится доступ (попытки отправить заявку будут продолжаться каждые 30 минут в течение двух суток). При этом в новую CRM не получится отправить не те заявки, так как передача заявок для каждой CRM настраивается индивидуально.

Настройка чуть сложнее: нужно внести изменения в скрипт отправки данных, который уже используется на вашем сайте. Впрочем, самое сложное здесь - найти на сайте этот скрипт, а изменить в нем несколько строк не составит труда.

Используйте этот способ, если заявки с сайта отправляются на электронную почту, а менеджеры создают их в CRM вручную.

Схематически способы загрузки данных выглядят так:

Заявки загружаются из CRM в Roistat

1.png

Заявки отправляются из Roistat в CRM

2.png

С определенной периодичностью Roistat обновляет данные по заявкам, которые были изменены в CRM. Дата создания заявок не имеет значения.

Точную частоту обновления данных по заявкам можно посмотреть на странице [Состояние проекта](/settings/Nastroiki_proekta/Sostojanie_proekta. На этой странице вы можете запустить обновление заявок вручную.

По умолчанию Roistat запрашивает в CRM данные по заявкам, измененным в течение последних семи дней. Если по какой-либо причине доступ к вашей CRM отсутствовал больше семи дней, и заявки не обновились, напишите нам, мы поможем.

Если сделка была создана за последние 14 дней и была удалена, то она автоматически удалится и в Roistat. Если сделка была создана более 14 дней назад, то для удаления сделки необходимо инициировать обновление данных.

Как настроить загрузку заявок из CRM

Создание дополнительного поля

Когда клиент заходит на сайт, в браузере сохраняется информация о визите. Например, о том, откуда был совершен переход на сайт. Для связи визитов с заявками в CRM Roistat использует номер визита. Это уникальный номер посещения, который записывается в cookie roistat_visit. Содержимое этой cookie нужно передать в CRM вместе с созданной заявкой. Для этого сначала в CRM нужно создать дополнительное поле с именем roistat

Пример дополнительного поля roistat в amoCRM

3.jpg

Установка скрипта

Добавьте на страницу сайта скрипт, который получает значение cookie roistat_visit. Его нужно разместить до отправки данных в CRM. Пример скрипта:

$roistatVisitId = array_key_exists('roistat_visit', $_COOKIE) ? $_COOKIE['roistat_visit'] : 'nocookie'

Как настроить отправку заявок в CRM

Создание дополнительного поля

Как и в предыдущем случае? сначала нужно создать в CRM дополнительное поле с именем roistat, куда автоматически будет записываться номер визита. 

Настройка скрипта

  1. На сервере с вашим сайтом найдите файл, который обрабатывает форму заявки. Например, это может быть скрипт, который отправляет данные с формы на электронную почту.

  2. Данные в файле должны быть в кодировке UTF-8.

У меня кодировка Windows-1251. Как ее изменить?

Это можно сделать одним из способов:

  • Используйте функцию iconv(). Перед каждой переменной в файле вставьте строку:
$value = iconv("Windows-1251", "UTF-8", $value)

$value - это пример переменной. Замените value на имя своей переменной.

  • Передайте значение вашей кодировки в массиве полей, тогда Roistat автоматически преобразует данные в UTF-8. Например:
'fields'  => array("charset" => "Windows-1251")

См. подробнее как передавать значения дополнительных полей

  1. Отредактируйте файл, добавив в него наш скрипт. Он будет собирать данные из формы заявки и отправлять их в Roistat. На основе их Roistat создаст заявку в CRM. Пример скрипта:
<?php
$roistatData = array(
    'roistat' => isset($_COOKIE['roistat_visit']) ? $_COOKIE['roistat_visit'] : 'nocookie',
    'key'     => 'value', //вместо value нужно указать ключ для интеграции из вашего проекта Roistat
    'phone'   => 'value', //вместо value должен быть телефон клиента или переменная, в которую он передается
    'email'   => 'value', //вместо value должна быть электронная почта клиента или переменная, в которую она передается
    'fields'  => array(), //массив, в который можно передать значения дополнительных полей, а можно оставить пустым
);
file_get_contents("https://cloud.roistat.com/api/proxy/1.0/leads/add?" . http_build_query($roistatData));

Внимание!

Телефон и электронная почта - обязательные параметры. Нужно передать хотя бы один из них, иначе заявка не будет создана. Ключ интеграции - тоже обязательное поле, без него загрузка заявок не будет работать.

Ваш ключ для интеграции находится внизу раздела Каталог интеграции -> Подключенная CRM:

4.jpg

Дополнительные настройки

Ниже перечисленные полезные, но необязательные настройки. Если вам достаточно передавать в CRM стандартные поля заявки, не нужно автоматически перезванивать клиенту и проверять созданные заявки на дубли, можете сразу перейти к проверке. 

Обратный звонок

Если клиент оставил в форме заявки свой телефон, можно автоматически ему перезвонить. Для этого нужно:

  • Подключить опцию Ловец лидов, если у вас тариф Старт. На других тарифах Ловец лидов включен в стоимость

  • В разделе Ловец лидов → Обратный звонок разрешить обратный звонок и указать номер менеджера для переадресации звонка

9.gif

  • Передать параметр 'is_need_callback' => '1' в скрипте отправки данных формы заявки.
    $roistatData = array(
        'roistat' => isset($_COOKIE['roistat_visit']) ? $_COOKIE['roistat_visit'] : 'nocookie',
        'key'     => 'SECRET_KEY'
        'title'   => 'Название сделки',
        'name'    => 'Имя клиента',
        'phone'   => '79111234567',
        'is_need_callback' => '1', // Обратный звонок поступит на номер 79111234567. Если поменять 1 на 0, звонка не будет

Передача дополнительных полей

Вы можете создать дополнительные поля заявок в вашей CRM и автоматически заполнять их с помощью Roistat при создании заявки с сайта. Например, вы можете сразу назначить ответственного менеджера, передав его ID в нужное поле CRM.

Формат и названия дополнительных полей отличаются для разных CRM. Чтобы передавать в них значение, нужно знать ID полей. Если вы не можете узнать их самостоятельно, обратитесь к разработчикам своей CRM/CMS. 

У многих CRM/CMS систем есть API. C помощью API-метода можно выгрузить свои заявки, посмотреть, какие есть поля и какие у них ID. Посмотрите, к примеру, как сделать это в amoCRM.

$roistatData = array(
    'roistat' => isset($_COOKIE['roistat_visit']) ? $_COOKIE['roistat_visit'] : 'nocookie',
    'key'     => 'SECRET_KEY'
    'title'   => 'Название сделки',
    'comment' => 'Комментарий к сделке',
    'name'    => 'Имя клиента',
    'email'   => 'client@email.com',
    'phone'   => '79111234567',
    'fields'  => array(
        "price" => 123, // Поле бюджет в amoCRM
        "responsible_user_id" => 3, // Ответственный по сделке
        "1276733" => "Текст", // Заполнение доп. поля с ID 1276733
        "status_id" => 123123, // Создавать лид с определенным статусом в определенной воронке. Указывать необходимо ID статуса.
        "charset" => "Windows-1251", // Сервер преобразует значения полей из указанной кодировки в UTF-8
        "tags" => "Тег1, Тег2", // Название тегов через запятую
    ),
);
file_get_contents("https://cloud.roistat.com/api/proxy/1.0/leads/add?" . http_build_query($roistatData));

Использование переменных

Некоторым полям заявки можно присваивать значения свойств визита через переменные. Например, в дополнительное поле CRM можно передавать город, из которого клиент зашел на ваш сайт и оставил заявку.  

В каких полях заявки можно использовать переменные:

  • title
  • comment
  • name
  • дополнительные поля

Какие переменные можно использовать

Переменная Значение
{city} Название города посетителя
{country} Страна посетителя
{region} Регион посетителя
{ip} IP адрес посетителя
{visit} Номер визита
{firstVisit} Номер первого визита
{referrer} Страница с которой перешел посетитель
{domain} Домен сайта
{landingPage} Посадочная страница
{source} Источник (маркер)
{orderCreationMethod} Способ создания заявки (Коллтрекинг, Ловец лидов и т.д.)
{orderPage} Страница, с которой была оставлена заявка. Работает для заявок созданных с помощью "Заявок с форм сайта"
{utmSource} Значение метки utm_source у посетителя
{utmMedium} Значение метки utm_medium у посетителя
{utmCampaign} Значение метки utm_campaign у посетителя
{utmTerm} Значение метки utm_term у посетителя
{utmContent} Значение метки utm_content у посетителя
{callee} Набранный номер (если заявки отправляются Коллтрекингом Roistat)
{caller} Номер телефона клиента (если заявки отправляются Коллтрекингом Roistat)
{phone} Номер телефона, указанный клиентом
{name} Имя, указанное клиентом
{email} Email, указанный клиентом
{roistatParam1} Значение метки roistat_param1 у посетителя
{roistatParam2} Значение метки roistat_param2 у посетителя
{roistatParam3} Значение метки roistat_param3 у посетителя
{roistatParam4} Значение метки roistat_param4 у посетителя
{roistatParam5} Значение метки roistat_param5 у посетителя
{googleClientId} Значение ClientId, присвоенное счетчиком Google Analytics. Также эту переменную можно использовать для записи googleClientID в емейлтрекинге и в отправке заявок с форм сайта.
{metrikaClientId} Значение ym_uid, присовенное счетчиком Яндекс.Метрики. Также эту переменную можно использовать для записи googleClientID в емейлтрекинге и в отправке заявок с форм сайта.
{sourceLevel1} Значение источника (маркера) уровня 1
{sourceLevel2} Значение источника (маркера) уровня 2
{sourceLevel3} Значение источника (маркера) уровня 3
{sourceLevel4} Значение источника (маркера) уровня 4
{sourceLevel5} Значение источника (маркера) уровня 5
{sourceLevel6} Значение источника (маркера) уровня 6
{sourceLevel7} Значение источника (маркера) уровня 7
{sourceAliasLevel1} Человекочитаемое название источника (маркера) уровня 1
{sourceAliasLevel2} Человекочитаемое название источника (маркера) уровня 2
{sourceAliasLevel3} Человекочитаемое название источника (маркера) уровня 3
{sourceAliasLevel4} Человекочитаемое название источника (маркера) уровня 4
{sourceAliasLevel5} Человекочитаемое название источника (маркера) уровня 5
{sourceAliasLevel6} Человекочитаемое название источника (маркера) уровня 6
{sourceAliasLevel7} Человекочитаемое название источника (маркера) уровня 7
{visitor_uid} Значение Идентификатора пользователя AmoCRM

Пример использования переменных

$roistatData = array(
    'title' => 'Новая сделка {visit}', //Добавляем номер визита к названию заявки
    'name' => 'Имя клиента {visit}', //Добавляем номер визита к имени клиента
    'comment' => 'utm_source: {utmSource}, utm_medium: {utmMedium}, utm_campaign: {utmCampaign}', //Передаем utm-метки в комментарий к заявке
    'fields' => array(
        '1276733' => '{city}', // Сохраняем город посетителя в доп. поле с ID 1276733
        'tags' => 'Тег1, {utmSource}, {utmMedium}, {utmCampaign}', // Сохраняем значения utm-меток в тегах
    ),
);
file_get_contents("https://cloud.roistat.com/api/proxy/1.0/leads/add?" . http_build_query($roistatData));

Проверка на дубли

Подтверждение создания сделки в CRM

Используйте параметр 'sync' => '1', когда после отправки заявки с сайта в Roistat требуется получать от CRM подтверждение создания сделки. Если сделка создана успешно, скрипт вернет ее ID. Например, это можно использовать, чтобы после создания заявки сразу показывать клиенту номер заказа (обычно совпадает с ID сделки в CRM). Если сделку не удалось создать, вместо ID сделки будет ошибка.

Пример использования

$roistatData = array(
    'roistat' => isset($_COOKIE['roistat_visit']) ? $_COOKIE['roistat_visit'] : 'nocookie',
    'key'     => 'SECRET_KEY'
    'title'   => 'Название сделки',
    'name'    => 'Имя клиента',
    'phone'   => '79111234567',
    'sync' => '1',
);

Проверка работы

Создайте тестовую заявку с сайта. Все настроено правильно, если:

  • в разделе Каталог интеграций вашего проекта Roistat в Списке отправленных заявок подключенной интеграции появилась новая заявка.

5.png

  • в поле Промокод указан номер визита, а в поле Отправлен успешный статус отправки 6.png.

  • в CRM появилась новая заявка с этим номером визита в поле roistat.

Вы можете экспортировать список заявок в файл Excel. Для этого укажите нужный период и нажмите кнопку Скачать:

6.jpg

Решение проблем

Заявки с сайта нет в списке отправленных заявок

Это значит, что заявка либо не была отправлена с сайта в Roistat, либо не была им получена. Возможные причины:

  1. Проблема на стороне сервера, где расположен ваш сайт
  2. Ошибки в скрипте отправки данных.

Что делать:

  1. Измените последнюю строку в скрипте отправки данных с этой:

file_get_contents("<https://cloud.roistat.com/api/proxy/1.0/leads/add>?" . http_build_query($roistatData));

На эту:

file_get_contents("<http://cloud-reserved.roistat.com/api/proxy/1.0/leads/add>?" . http_build_query($roistatData));

Сохраните изменения и попробуйте создать заявку на сайте еще раз. Если она не появится в списке отправленных заявок, обратитесь за помощью с своему хостинг-провайдеру с вопросом, почему не отправляются данные на адреса https://cloud.roistat.com/api/proxy/1.0/leads/add и http://cloud-reserved.roistat.com/api/proxy/1.0/leads/add

  1. Проверьте, что в скрипте нет синтаксических ошибок. Воспользуйтесь сервисом валидации кода.

Заявка с сайта есть в списке отправленных заявок, но нет в CRM

Если заявка не была отправлена в CRM, у нее будет статус X. Возможные причины:

  1. Не настроена интеграция с CRM или к ней нет доступа
  2. Недостаточно прав на создание сделок в CRM
  3. В CRM есть обязательные поля, которые не заполняются при отправке заявки

Что делать:

  1. Проверьте, что правильно указали данные на странице настроек интеграции (Каталог интеграций → Настройки подключенной интеграции). Если все правильно, статус интеграции будет Активные 8.png
  2. Проверьте, что у вашего аккаунта CRM имеются права на создание сделок
  3. Если в CRM есть обязательные поля, которые не нужно передавать в скрипте отправки данных, сделайте эти поля необязательными. Если такие поля всегда должны заполняться, добавьте их в скрипт и присвойте им значение.

Если что-то не получается, напишите в службу поддержки.