В 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 %}