Персонализация по атрибутам события

Как добавить данные о действиях пользователя на вашем сайте в сообщение

В Carrot quest вы можете использовать данные из атрибутов событий пользователя, чтобы персонализировать содержание вашего сообщения на основе данных и действий конкретного пользователя. Можно подставлять в текст переменные, которые заменяются данными из карточки пользователя при отправке сообщения. или отображать в письме только контент  по условию, которое тоже строится на основе данных из событий пользователя.

На данный момент выполнять персонализацию по атрибутам события можно в теле триггерных / ручных поп-апов, емейлов, чата, триггерных сообщениях и чат-ботах в Telegram. В будущих обновлениях появится возможность использовать такую персонализацию в чат-ботах на сайте и в теме емейлов.

Про персонализацию на основе свойств пользователя - в сообщениях и ботах.


• В нашей системе выделены два типа событий: системные и пользовательские. При этом атрибуты событий также бывают системные и пользовательские. Весь список системных событий и атрибутов можно посмотреть здесь. Если какого-либо события, которое записывается в вашем проекте, нет в этом списке, оно является пользовательским.

• Настраивать персонализацию можно по атрибуту любого события. При этом данное событие не обязательно должно являться триггером для сообщения. Для отображения нужных данных в тексте сообщения в содержание поп-апа, письма и т.п. нужно разместить специальный скрипт.

Например, мы настроили сообщение, в котором триггером используется системное событие "Зашёл на сайт". У этого события есть системные атрибуты:

Чтобы подставить какое-то из этих атрибутов в сообщение, используйте конструкцию:

{{event['Название атрибута события']}}

Если вы создали сообщение с триггером "Зашел на сайт" и в содержании написали "Скачайте приложение для {{event['$os']}}", то пользователь увидит "Скачайте приложение для Windows 10".

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

{% set lastEvent = get_last_events('Название события')[0] %}

В этой строке 0 означает, что использоваться будут данные самого последнего события в карточке. Если указать 1 - будут использоваться атрибуты предпоследнего события, и так далее.

Следующей строкой мы указываем, какие атрибуты событий должны использоваться при подстановке в письме:

{% set lastEventProp = lastEvent.props['Название атрибута'] %}

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

💡Разберемся, как это работает, на примере. В нашей системе по завершении периода подписки в карточку лида отправляется событие, в атрибутах которого указывается номер проекта в Carrot quest и его название:

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

{% set lastEvent = get_last_events('Завершен период подписки')[0] %} 
{% set name = lastEvent.props['app_name'] %} 
{% set id = lastEvent.props['app'] %} 

Привет!
Появился новый счет для сайта {{ name }}.
Сформированный счет вы можете найти в разделе Оплата, и оплатить в течение 7 дней любым удобным способом ...

Размещаем скрипт и текст сообщения:

По тому же принципу можно добавлять код в емейл или сообщение типа "Чат".

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

🏘️ Персонализация в приглашении на просмотр квартиры

Допустим, при просмотре квартир на сайте вы передаете в карточку лида такое событие:

Теперь вы хотите отправить персонализированный поп-ап пользователю с приглашением на консультацию по выбору недвижимости. В сообщении можно разместить следующий текст и код: 

{% set lastEvent = get_last_events('Просмотрел квартиру')[0] %} 
{% set name = lastEvent.props['Название ЖК'] %} 
{% set area = lastEvent.props['Площадь квартиры'] %} 
{% set rooms = lastEvent.props['Количество комнат'] %} 

Здравствуйте, {{ user['$name'] }}  
Я консультант в агентстве недвижимости. Вижу, что вы интересовались квартирой в ЖК {{ name }} площадью {{ area }}. Эта квартира еще доступна к покупке.  
...

🎒 Персонализация в оповещении о назначенном уроке

Если вы работаете в сфере EdTech, наверняка на вашем сайте настроен сбор данных о том, на какое занятие записывается ученик. Например, таким образом:

Вы можете отправить ученику сообщение с напоминанием о предстоящем занятии:

{% set lastEvent = get_last_events('Записался на занятие')[0] %} 
{% set name = lastEvent.props['Преподаватель'] %} 
{% set date = lastEvent.props['Дата занятия'] %} 
{% set time = lastEvent.props['Время занятия'] %} 

Здравствуйте, {{ user['$name'] }}
Напоминаем, что {{ date }} в {{ time }} состоится ваше следующее занятие, преподаватель - {{ name }}
Ждем с нетерпением :)

Обратите внимание: если вы записываете дату в свойство пользователя, то с использованием цепочек сообщений вы также можете настроить отправку оповещения в определенное время, ориентируясь на передаваемую дату и время. Подробнее о таком сценарии настройки читайте в этой статье.

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

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

set total = [0] %}
{% for e in get_last_events('Посмотрел товар') %}
{% set amount = e.props['Название атрибута события с числами для сложения'] | int %}
{% if total.append(total.pop()+ amount) %} {% endif %}
{% endfor %}
<span>{{total[0]}}</span>

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

{% for e in get_last_events('Посмотрел товар') %}

нужно заменить на

{% for e in get_last_events('Посмотрел товар') [:10] %}

где 10 – количество событий (до 20 включительно).

Обратите внимание: если вы записываете стоимость и названия товаров в свойства лида, инструкцию по персонализации можно найти в этой статье.

📝 Подстановка альтернативного текста в случае, если в карточке лида нет такого события / атрибута события

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

{% if get_last_events('Название события') is defined %} Первый вариант текста
{% else %} Второй вариант текста {% endif %}

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

{% set lastEvent = get_last_events('Название события')[0] %} 
{% if lastEvent.props['Название атрибута'] == 'значение атрибута 1' %} Первый вариант текста
{% elif lastEvent.props['Название атрибута'] == 'значение атрибута 2' %} Второй вариант текста
{% else %} Третий вариант текста {% endif %}
Работает на