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

Интеграция Roistat с RetailCRM

Интеграция CRM RetailCRM с Roistat. Как настроить отправку заявок в CRM через Roistat и загрузку из CRM контактов клиентов, выручки по заказу и себестоимости заказов.

Обратите внимание

Перед интеграцией необходимо установить счетчик Roistat.

Как работает интеграция

Отправка заявок в CRM

Если заявка не была помечена как дубль, то:

  1. Осуществляется поиск контактов (по всем контактам в CRM-системе) по номеру телефона или email-адресу.
  2. Если контакт найден, то создается привязанная к нему новая сделка. Если контакт не найден, создается новый контакт и новая сделка.
  • Если значение из поля Roistat будет случайно удалено, то при загрузке заявок (лидов и сделок) наша система самостоятельно определит источник обращения, чтобы сделка попала в нужный рекламный канал. Если менеджер принимает заказ по телефону, он может спросить промокод (настраивается отдельно) и ввести этот код в поле roistat.

  • Roistat передает в CRM ссылку на запись телефонного разговора вашего менеджера с клиентом.

  • Roistat поддерживает поля RetailCRM с типом Справочник.

Обратите внимание

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

Загрузка данных из CRM

Из CRM-системы в аналитику Roistat выгружаются данные по заказам и клиентам:

  • Из CRM в Аналитику загружается выручка по заказу. Выручка рассчитывается по следующей формуле: сумма товаров + стоимость доставки.
  • Загружается информация по себестоимости заказа по следующей формуле: себестоимость товаров + дополнительные статьи расходов. Для подсчета себестоимости используются значения из стандартных полей RetailCRM: purchaseSumm + delivery->netCost + сумма всех товаров сделки, полученных API-методом costs.
  • Загружается контактная информация по клиентам для Управления клиентами.

Данная интеграция позволяет использовать разные валюты в CRM и в проекте Roistat. При загрузке в Roistat данные будут переводиться в валюту проекта.

Шаг 1. Добавьте дополнительное поле roistat

В настройках сделки добавьте дополнительное текстовое поле с символьным кодом roistat. Для этого нужно:

  1. В RetailCRM перейти на вкладку Настройки (на панели слева), раскрыть список Системные, выбрать пункт Пользовательские поля и нажать Добавить.

    1.png

  2. Ввести параметры поля:

    • Поле для: Заказ
    • Название: roistat или любое другое
    • Символьный код: roistat
    • Тип поля: Строка
    • Отображение: Редактируется

    2.png

  3. Нажать Сохранить.

Если по каким-либо причинам вы создаете сделку вручную (например, для оффлайн-источников), вы можете заполнить поле roistat данными об источнике сделки. Тогда информация об источнике сделки будет отображена в Аналитике.

Чтобы отнести сделку к определенному рекламному каналу, вводите в поле roistat следующие маркеры:

  • yamarket{ID}, если хотите отнести сделку к каналу Яндекс.Маркет. Здесь и далее ID – идентификатор рекламного канала. Например, yamarket1.
  • direct{ID}, если хотите отнести сделку к каналу Яндекс.Директ. Например, direct2.
  • google{ID}, если хотите отнести сделку к каналу Google Ads. Например, google3.
  • merchant{ID}, если хотите отнести сделку к каналу Google Merchant Center. Например, merchant4.
  • vk{ID}, если хотите отнести сделку к каналу ВКонтакте. Например, vk5.
  • facebook{ID}, если хотите отнести сделку к каналу Facebook1. Например, facebook6.
  • mytarget{ID}, если хотите отнести сделку к каналу myTarget.
  • seo_yandex, если хотите отнести сделку к каналу SEO – Яндекс.
  • seo_google, если хотите отнести сделку к каналу SEO – Google.

Шаг 2. Подключите RetailCRM в каталоге интеграций

  1. В интерфейсе Roistat откройте раздел Интеграции.
  2. В блоке CRM выберите retailCRM и нажмите кнопку Настроить интеграцию.
  3. Заполните поля для авторизации в RetailCRM.

    4.png

    • В поле Адрес введите URL-адрес вашего проекта в RetailCRM. Обычно он выглядит так: https://<название проекта>.retailcrm.ru
    • В поле API-ключ введите API-ключ. Для этого скопируйте его в разделе RetailCRM Настройки → Интеграция → Ключи доступа к API.

      3-1.png

      Обратите внимание на доступы в настройках API-ключа в интерфейсе RetailCRM:

      • В блоке Разрешенные действия в API должны быть выбраны все пункты.
      • Если вы хотите, чтобы заказы загружались для всех магазинов, укажите тип доступа Доступ ко всем магазинам.

      4-2.png

  4. В настройках интеграции в проекте Roistat нажмите кнопку Сохранить.

  5. Откроется окно распределения статусов. При этом из RetailCRM загрузятся статусы сделок. Перетаскивая статусы сделок, распределите их по группам. Подробнее читайте в статье Распределение статусов сделок.
  6. Прочитайте Инструкцию по включению отправки заявок и нажмите Следующий шаг.
  7. Откроется окно расширенных настроек.

    6.png

    В расширенных настройках интеграции вы можете:

    • Указать параметры для фильтрации сделок. Для этого прочитайте статью Фильтрация сделок.
    • Указать значения полей бизнес-показателей (поле с выручкой, поле себестоимости, поле с прибылью). Для этого прочитайте статью Поля бизнес-показателей.

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

  8. На шаге Отправка заявок в CRM-систему: базовые настройки выберите из выпадающего списка магазин, в котором будут создаваться заказы. Укажите имена ответственных за заявки или оставьте это поле пустым. Нажмите кнопку Сохранить, чтобы применить изменения.

    7.png

  9. Откроется окно Отправка заявок в CRM-систему: создание задач.

    8.png

    Чтобы включить данный механизм, активируйте переключатель Создавать задачи при создании сделки. Автоматическое создание задач нужно для того, чтобы менеджеры оперативно реагировали на поступающие заявки.

    • Время на выполнение задачи – время, за которое задача должна быть выполнена. По умолчанию устанавливаются сутки, если в поле ничего не введено.
    • Текст задачи – текст, который будет отображаться в CRM.

Шаг 3. Настройте автоматическую отправку сделок в RetailCRM

Рекомендуем настроить передачу сделок в CRM через Roistat – механизм отправки сделок, при котором сделки сначала передаются в Roistat, затем отправляются в CRM. Механизм обладает рядом преимуществ. Подробнее читайте в статье Передача заявок в CRM через Roistat.

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

Пример кода, с помощью которого можно получить значение этой куки:

$roistatVisitId = array_key_exists('roistat_visit', $_COOKIE) ? $_COOKIE['roistat_visit'] : "неизвестно";

Примечание

В RetailCRM можно создавать заявки сразу в нескольких магазинах. Для этого в заявке в fields передайте параметр site с одним из символьных кодов магазина, и заказ будет создан в нужном магазине.

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

'items' => [
    [
        'offer'    => ['externalId' => 123],
        'quantity' => 5,
    ],
    [
        'offer'    => ['externalId' => 789],
        'quantity' => 10,
    ],
],
  • externalId — внешний код торгового предложения товара
  • quantity — количество данного товара

Настройка Товарной аналитики

Интеграция Roistat с RetailCRM позволяет использовать Товарную аналитику – инструмент, с помощью которого можно анализировать эффективность продаж категорий товаров и отдельных товаров.

Чтобы настроить Товарную аналитику:

  1. Убедитесь, что в RetailCRM созданы товары. Для этого в личном кабинете RetailCRM перейдите в раздел ПродажиСкладТовары. При необходимости создайте новый товар, нажав Новый товар.

    9.png

  2. В проекте Roistat откройте раздел Аналитика, перейдите на вкладку Товарная аналитика и нажмите Включить товарную аналитику.

    10.png

  3. После следующего импорта сделок из CRM информация о товарах попадет в Аналитику Roistat.

    Чтобы перейти в отчет по товарам, откройте раздел АналитикаОтчеты. Затем кликните по названию текущего отчета, чтобы открыть список всех доступных отчетов.

    11.png

    Раскройте группу Стандартные отчеты и выберите отчет Товары.

    12.png

    Также подробная информация о товаре отображается в карточке сделки.

    13.png

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

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

После того, как на сайте отправлена заявка, в RetailCRM создается новая сделка с заполненным полем Roistat ID. Сделки также отображаются и в Roistat:

  1. В проекте Roistat откройте раздел Интеграции.
  2. На виджете настроенной интеграции с RetailCRM нажмите кнопку Настроить интеграцию.
  3. В окне настройки интеграции пройдите по ссылке Список отправленных заявок.

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

После настройки интеграции рекомендуем воспользоваться следующими вспомогательными инструментами:

Передача заявок при интеграции RetailCRM и Telegram

Вы можете настроить передачу заявок с номером визита из Telegram в Roistat, если у нас настроена интеграция RetailCRM с Telegram.

  1. Убедитесь, что на сайте установлен счетчик Roistat. Сразу после кода счетчика вставьте следующий скрипт:

    <script>
        (function() {
            if (window.roistat !== undefined) {
                handler();
            } else {
                var pastCallback = typeof window.onRoistatAllModulesLoaded === "function" ? window.onRoistatAllModulesLoaded : null;
                window.onRoistatAllModulesLoaded = function () {
                    if (pastCallback !== null) {
                        pastCallback();
                    }
                    handler();
                };
            }
    
            function handler() {
                function init() {
                    appendMessageToLinks();
    
                    var delays = [1000, 5000, 15000];
                    setTimeout(function func(i) {
                        if (i === undefined) {
                            i = 0;
                        }
                        appendMessageToLinks();
                        i++;
                        if (typeof delays[i] !== 'undefined') {
                            setTimeout(func, delays[i], i);
                        }
                    }, delays[0]);
                }
    
                function replaceQueryParam(url, param, value) {
                    var explodedUrl = url.split('?');
                    var baseUrl = explodedUrl[0] || '';
                    var query = '?' + (explodedUrl[1] || '');
                    var regex = new RegExp("([?;&])" + param + "[^&;]*[;&]?");
                    var queryWithoutParameter = query.replace(regex, "$1").replace(/&$/, '');
                    return baseUrl + (queryWithoutParameter.length > 2 ? queryWithoutParameter  + '&' : '?') + (value ? param + "=" + value : '');
                }
    
                function appendMessageToLinks() {
                    var message = 'roistat_{roistat_visit}';
                    var text    = message.replace(/{roistat_visit}/g, window.roistatGetCookie('roistat_visit'));
                    text = encodeURI(text);
                    var linkElements = document.querySelectorAll('[href*="//t.me"]');
                    for (var elementKey in linkElements) {
                        if (linkElements.hasOwnProperty(elementKey)) {
                            var element = linkElements[elementKey];
                            element.href = replaceQueryParam(element.href, 'start', text);
                        }
                    }
                }
                if (document.readyState === 'loading') {
                    document.addEventListener('DOMContentLoaded', init);
                } else {
                    init();
                }
            };
        })();
    </script>
    
  2. Если вы ещё не используете бота Telegram, создайте его:

    • Найдите бота @BotFather в Telegram.
    • Запустите бота, отправив в чат команду /start.
    • Отправьте в чат команду /newbot.
    • Создайте бота, следуя инструкции, которую предоставляет @BotFather.

    После создания бота вам будет выдан API-токен. Сохраните его, он понадобится для настройки интеграции.

    Если у вас есть готовый бот, зайдите в диалог с @BotFather и найдите в истории сообщений API-токен соответствующего бота.

  3. В интерфейсе RetailCRM перейдите в раздел АдминистрированиеИнтеграцияКлючи доступа к API и создайте API-ключ, который будет использоваться для передачи сообщений. При создании ключа выберите все метода раздела Интеграция.

    14.png

  4. Перейдите в раздел АдминистрированиеИнтеграцияМаркетплейс, откройте модуль интеграции с Telegram и нажмите Подключить. На странице подключения укажите URL вашей RetailCRM и API-ключ, созданный в п.3 в разделе Ключи доступа к API. Затем сохраните изменения.

    15.png

    После сохранения появится дополнительная вкладка Боты, где нужно указать API-токен, полученный в п.2 при создании бота.

    16.png

  5. Когда клиент впервые напишет в Telegram, в RetailCRM будет передан номер визита в формате /start roistat_{number}, где {number} – номер визита. В примере ниже номер визита – 100500.

    17.jpg

    Чтобы данные по этой заявке передались в Roistat, при создании сделки номер визита нужно скопировать в поле roistat, созданное при интеграции с RetailCRM.


  1. Правообладателем Facebook является запрещенная на территории РФ компания Meta Platforms, признанная судом экстремистской.