Daemon Collector
Скопировать ссылку на статью
Скопировано

Daemon Collector — специализированная системная служба, обеспечивающая тесное взаимодействие системы с пользователями, которые находятся на вашем сайте. Collector легко устанавливается на сайт с помощью js-вставок и позволяет:

  • видеть в интерфейсе системы, кто из ваших клиентов находится в данный момент на сайте
  • собирать контактные данные пользователей в момент их ухода с сайта
  • быстро подключать формы заявок и обратной связи вашего сайта к системе

Инициализация

Разместите этот код непосредственно перед закрывающим тегом </head>

<script type="text/javascript">
        (function(_,r,e,t,a,i,l){_['retailCRMObject']=a;_[a]=_[a]||function(){(_[a].q=_[a].q||[]).push(arguments)};_[a].l=1*new Date();l=r.getElementsByTagName(e)[0];i=r.createElement(e);i.async=!0;i.src=t;l.parentNode.insertBefore(i,l)})(window,document,'script','https://collector.retailcrm.pro/w.js','_rc');

        _rc('create', 'ключ-сайта', {
                customer: {
                        externalId: 'ID-клиента-на-сайте  (customer.externalId в crm)'
                }
        });

        _rc('send', 'pageView');
</script>

В вызове _rc('create'... происходит инициализация контекста. Обязательным параметром для этого вызова является ключ сайта ключ-сайта, которые генерируется при активации сайта в разделе системы ''Настройки > Интеграция > Collector''.

Если пользователь авторизован на сайте, необходимо передавать внешний идентификатор пользователя в ключе customer.externalId (в качестве значения должен выступать внешний идентификатор клиента). Если же пользователь не авторизован, то ключ customer.externalId указывать не нужно.

Также можно установить актуальный идентификатор клиента (customer.externalId) с помощью следующего метода:

_rc('use', 'customer', { externalId: 'ID-клиента-на-сайте (customer.externalId в crm)' })

Данный метод будет полезен, например, для SPA-сайтов (single page application), когда Collector уже встроен на сайт. Посетитель сайта заходит не авторизовавшись - Collector подключается (происходит инициализация), но при вызове метода create не передается идентификатор клиента. В этом случае данный метод решает эту проблему, передавая id клиента, например, сразу же после того, как клиент авторизуется на сайте.

Ниже вы можете найти примеры установки счетчика.

Также возможно производить отслеживание online-статуса клиента на сайте. Отслеживание возможно как при помощи формы захвата для клиентов, оформивших через неё заказ, так и по метке clientId, при наличии интеграции с Google Analytics на сайте и настроенного модуля интеграции CRM и GA.

Помимо индикатора в списке клиентов есть фильтр по статусу Online.

Collector пытается идентифицировать клиента, пришедшего на сайт, по любому из следующих параметров:

  • Идентификатору клиента на сайте customer.externalId '(если он указан)'

  • Метке _ga Google Analytics

  • Собственной метке Collector-а

Подключение формы захвата

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

Важно!

Стандартная форма захвата срабатывает при отводе мыши за границы сайта. Поэтому она не срабатывает в мобильной версии сайта.

Форма представляет из себя подключаемый модуль, для загрузки модуля используется команда require.

_rc('require', 'capture-form');

По умолчанию форма будет показана пользователю один раз независимо от того, оставил он в итоге контакты или просто закрыл форму. В параметре period можно задать (в минутах), через какое время форма будет показана пользователю повторно:

_rc('require', 'capture-form', {
        'period': 60 * 24 * 30 // показать через месяц
});

Важно!

Форма не будет показана пользователю, авторизованному на сайте, то есть если в коде вызова _rc('create'... указан параметр customer.externalId.

По умолчанию в форме отображаются поля Имя name, Телефон phone, Email email. Вы можете настроить состав полей:

_rc('require', 'capture-form', {
        'fields': {
                'name': {},
                'phone': { required: true, label: 'Phone' } // телефон обязателен
        }
});

Также можно переопределить вводный текст и надпись на кнопке:

_rc('require', 'capture-form', {
        'fields': {
                'phone': { required: true }
        },
        labelPromo: "Хотите, мы вам перезвоним?",
        labelSend: "Перезвоните мне!"
});

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

name Имя
email Email
phone Телефон
customerComment Комментарий пользователя
orderType Тип заказа
orderMethod Способ оформления
itemId ID товара на сайте
customSomeField Пользовательские поля

Значения для пользовательских полей указываются с префиксом custom, после которого нужно указывать код пользовательского поля в camelСase. Например, пользовательское поле bonus_code требуется указывать в виде customBonusCode.

_rc('require', 'capture-form', {
        orderMethod: 'online',
        email: "user@example.net",
        customTransactionId: "acde1625ab7"
});

Вы можете вручную вызвать показ формы:

_rc('capture-form:show', {
        'fields': ['phone']
});

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

Вы можете полностью заменить форму, которая будет использоваться для взаимодействия с пользователем, для этого вам необходимо передать параметр form при инициализации:

_rc('require', 'capture-form', {
        form: {
                show: function () {
                        // код, который покажет пользователю форму, например:
                        // $('#my-cool-form').show();
                },
                hide: function () {
                        // код, который закроет форму, например:
                        // $('#my-cool-form').hide();
                }
     }
});

Отправку данных вам также необходимо реализовать самостоятельно.

Отправка заявки

Daemon Collector позволяет отправлять заявки с вашего сайта в систему, не прибегая к взаимодействию с полноценным API системы. Отправка осуществляется с помощью вызова _rc('send', 'order', {...}).

_rc('send', 'order', {
        'name': 'Виктор',
        'email': 'some-email@mail.ru'
});

При отправке можно указывать те же параметры, что и для формы захвата.

Ниже приведен пример отправки формы обратной связи в систему.

Примеры

Пример кода для инициализации отслеживания на landing page

Так будет выглядеть код отслеживания при установке на сайты без пользовательской базы, например, на landing page.

<script type="text/javascript">
        (function(_,r,e,t,a,i,l){_['retailCRMObject']=a;_[a]=_[a]||function(){(_[a].q=_[a].q||[]).push(arguments)};_[a].l=1*new Date();l=r.getElementsByTagName(e)[0];i=r.createElement(e);i.async=!0;i.src=t;l.parentNode.insertBefore(i,l)})(window,document,'script','https://collector.retailcrm.pro/w.js','_rc');

        _rc('create', 'RC-16632969589');
        _rc('send', 'pageView');
</script>

Пример кода шаблона на php для инициализации отслеживания

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

<script type="text/javascript">
        (function(_,r,e,t,a,i,l){_['retailCRMObject']=a;_[a]=_[a]||function(){(_[a].q=_[a].q||[]).push(arguments)};_[a].l=1*new Date();l=r.getElementsByTagName(e)[0];i=r.createElement(e);i.async=!0;i.src=t;l.parentNode.insertBefore(i,l)})(window,document,'script','https://collector.retailcrm.pro/w.js','_rc');

<?php
        $params = array();
        if ($customer->isAuth()) {
                $params['customer'] = [
                        'externalId' => $customer->getId(),
                ];
        }

        echo sprintf("_rc('create', 'RC-16632969589', %s);\n", json_encode((object) $params));
?>

        _rc('send', 'pageView');
</script>

Пример отправки заявки в систему через js api

Допустим, есть landing page с формой заявки, который подключен к CPA-сети. Нам требуется отправлять форму в систему с указанием ID транзакции CPA-сети в пользовательском поле transaction_id.

1) Заводим пользовательское поле transaction_id.

2) Подключаем jQuery для удобства работы с формой заявки и jQuery-плагин для получения URL-параметров:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript" src="/jquery.url.js"></script>

3) Добавляем код отслеживания Collector:

<script type="text/javascript">
        (function(_,r,e,t,a,i,l){_['retailCRMObject']=a;_[a]=_[a]||function(){(_[a].q=_[a].q||[]).push(arguments)};_[a].l=1*new Date();l=r.getElementsByTagName(e)[0];i=r.createElement(e);i.async=!0;i.src=t;l.parentNode.insertBefore(i,l)})(window,document,'script','https://collector.retailcrm.pro/w.js','_rc');

        _rc('create', 'RC-16632969589');
        _rc('send', 'pageView');
</script>

4) Настраиваем отправку формы. При отправке заявки указываем для нее способ оформления «Форма обратной связи» feedback. После отправки уведомляем пользователя о результате отправки формы.

<script type="text/javascript">
$(function() {
        $('#feedback-form').submit(function() {
                _rc('send', 'order', {
                        'name': $(this).find('input[name=name]').val(),
                        'email': $(this).find('input[name=email]').val(),
                        'customTransactionId': url('?transaction_id'),
                        'orderMethod': 'feedback',
                        'callback': function(success, response) {
                                // уведомляем пользователя о результате отправки формы
                                // вместо alert() можно вывести более юзер-френдли сообщение
                                if (success) {
                                        alert('Спасибо, ваша заявка принята! Её номер: ' + response.id); 
                                } else {
                                        alert('К сожалению, не удалось отправить заявку.');
                                }
                        }
                });

                return false;
        })
})
</script>

Что такое response.id в Demon Collector?

response.id в Demon Collector - это externalId заказа в CRM.

Благодарим за отзыв.
Была ли статья полезна?
Нет
  • Рекомендации не помогли
  • Нет ответа на мой вопрос
  • Текст трудно понять
  • Не нравится описанный функционал
Да
Следующая статья
Загрузка каталога в систему через ICML
Формат ICML является расширением формата YML, позволяющий выгружать техническую информацию о товарах в систему, а также сложную структуру каталогов с торговыми предложениями. В статье разберем используемые элементы и особенности формирования каталога.