Для настройки автоматических сообщений нам потребуется информация о действиях пользователя на сайте. Для SaaS интересны такие события и свойства как: регистрация, оплата заказа, доход с пользователя и др. Ниже приведены примеры скриптов, при выполнении которых на определенных страницах сайта нужные данные будут отправляться в Carrot quest. Также важным моментом интеграции является настройка передачи User ID и загрузка информации о пользователях, которые посещали сайт до установки сервиса.
Подробнее о всех возможностях использования API можно узнать в разделе для разработчиков.
User ID мы используем для объединения пользователей с разных устройств. Как только пользователь авторизуется в вашей системе необходимо передать нам его ID, командой (пример):
carrotquest.auth('25', 'hmac-sha256-hash');
Первый аргумент — User ID. Второй — хеш HMAC SHA 256 (Текстом для хеширования является User ID, ключом - User Auth Key его можно узнать в панели администратора, раздел Настройки - Разработчикам).
Пример на PHP:
$userId = '…'; $hash = hash_hmac('sha256', $userId, 'User-Auth-Key' ); echo "carrotquest.auth('".$userId."', '".$hash."')"
Подробнее об передаче User ID можно посмотреть в этой статье, а о методе в разделе для разработчиков.
Соответствующий скрипт должен срабатывать в момент регистрации, либо авторизации:
carrotquest.track("$registered", {"$email": user_email, "$name": user_name});
carrotquest.track("$authorized", {"$email": user_email, "$name": user_name});
вместо user_email в обоих случаях необходимо подставить емейл пользователя, а вместо user_name - имя пользователя.
Для записи этих свойств должен выполняться скрипт при каждой отправке данных, введенных в поля "Имя", "Email" или "Телефон" на сайте (регистрация, авторизация, подписка или отправка любой формы обратной связи). Используйте в скрипте передачу только тех свойств, поля для которых есть в самой форме. Например, при отправке формы, где есть только "Имя" и "Email", убирайте из скрипта запись свойства $phone:
carrotquest.identify([ {op: "update_or_create", key: "$email", value: user_email}, {op: "update_or_create", key: "$phone", value: user_phone}, {op: "update_or_create", key: "$name", value: user_name} ]);
где вместо user_email необходимо подставить емейл пользователя, вместо user_phone - телефон пользователя, а user_name заменить на имя пользователя.
Для передачи любых других событий (зашел на страницу "Контакты", просмотрел видеоролик, поделился ссылкой с друзьями, подписался на рассылку новостей и т.д.) можно воспользоваться методами JS API:
// Без параметров carrotquest.track('Event name'); // С параметрами carrotquest.track('Event name', { 'param1': 'value1', 'param2': 340, 'param3': '2014-05-23T05:12:45', 'param4': false, 'param5': ['key1', 'key2', 'key3'] });
либо методами Web API:
//Без параметров curl -X POST \ --data-urlencode "event=Order Created" \ --data-urlencode "auth_token=XXX" \ "https://api.carrotquest.io/v1/users/{id}/events" //С параметрами curl -X POST \ --data-urlencode "event=Order Created" \ --data-urlencode 'params={"item": "chicken"}' \ --data-urlencode "auth_token=XXX" \ "https://api.carrotquest.io/v1/users/{id}/events"
где ID это идентификатор пользователя из нашей системы (id пользователя лежит в cookie carrotquest_uid). Так же можно использовать ваш User ID в случае, если настроено склеивание. Подробнее о методах track и events.
Для установка свойств пользователя (идентификации) так же есть методы на JS API и Web API. Пример на JS API:
// Упрощенный формат: carrotquest.identify({'$name': 'Maks', 'myProp': 'myValue'}); // Сложный формат: carrotquest.identify([ {op: 'add', key: 'segment1', value: 1}, {op: 'update_or_create', key: 'segment2', value: 1}, ]);
Пример на Web API:
curl -X POST \ --data-urlencode "operations=[{op: "update_or_create","key: "$name", value: "Maks"}]" \ --data-urlencode "auth_token=XXX" \ "https://api.carrotquest.io/v1/users/{id}/props"
При заходе на страницу, подтверждающую успешное оформление заказа, должен выполняться следующий скрипт:
carrotquest.track('$order_completed', { "$order_id": order_id, "$order_id_human": order_id_human, "$order_amount": order_amount }); carrotquest.identify([ {op: "add", key: "$orders_count", value: 1}, {op: "add", key: "$revenue", value: order_amount}, {op: "update_or_create", key: "$last_payment", value: order_amount} ]);
вместо order_amount необходимо вставить сумму заказа;
вместо order_id - id заказа в вашей системе;
вместо order_id_human - id заказа который видит человек при покупке (не обязательное поле).
На странице успеха оплаты должен выполняться следующий скрипт:
carrotquest.track("$order_paid", {"$order_id": order_id});
вместо order_id подставляем ID заказа.
На странице успеха оплаты должен выполняться следующий скрипт:
carrotquest.identify([ {op: "update_or_create", key: "$last_payment", value: order_amount}, ]);
вместо order_amount необходимо вставить сумму заказа.
На странице успеха оплаты должен выполняться следующий скрипт:
carrotquest.identify([ {op: "add", key: "$profit", value: order_amount} ]);
вместо order_amount необходимо вставить сумму заказа.
На странице успеха оплаты должен выполняться следующий скрипт:
carrotquest.identify([ {op: "add", key: "$orders_count", value: 1} ]);
вместо 1 необходимо указать актуальное значение свойства.