Для настройки автоматических сообщений нам потребуется информация о действиях пользователя на сайте. Для 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 необходимо указать актуальное значение свойства.