Создание сценария
Мастер создания сценариев представляет собой визуальную канву для построения логики коммуникаций с контактами через drag-and-drop перетаскивание блоков и соединение их линиями связи.
Канва
Для того чтобы создать сценарий, перейдите в Рассылки ➔ Сценарии. После того, как имя сценария было задано, вы попадете на канву, на которой необходимо размещать блоки.
На канве можно найти различные инструменты, которые могут помочь вам при работе:
- Режимы перемещения по канве/выбора объектов (V)
- Отмена и повтор действия (Ctrl+Z и Ctrl+Shift+Z)
- Масштабирование - с помощью колеса мыши (Ctrl+scroll) или лупы в нижнем меню
- Полноэкранный режим (Ctrl+O)
- Показ/скрытие превью сценария (Ctrl+M)
Кроме инструментов навигации доступно еще несколько полезных функций:
- Скачивание сценария в формате изображения
- Список всех горячих клавиш
Блоки
Настройки блоков находятся справа в сайдбаре. Перетащите блок на канву и откройте настройки двойным кликом.
Для каждого сценария обязательно создать хотя бы один начальный и завершающий блок. Остальные блоки вы можете комбинировать на свое усмотрение и задачи.
Начальный блок - это событие, которое должно произойти, чтобы контакт начал прохождение сценария. Вы можете использовать несколько начальных и финальных блоков внутри одного сценария. Важная настройка начального блока - «Обработка дубликатов». Она регулирует поведение сценария в случае, если один и тот же контакт начинает его, еще не завершив предыдущее прохождение. Будьте внимательны, так как при использовании нескольких начальных блоков эта настройка будет синхронизирована и применена в каждом из них.
Начальные блоки
- подписка - старт сценария при подписке с сайта, по АПИ, через импорт контактов, сегмент, карточку контакта или после разрешения на отправку Mobile Push
- на конкретную группу рассылок - контакт начнет сценарий, когда подпишется на выбранную группу рассылок
- на группу рассылок с учетом сегмента - контакт начнет сценарий, когда подпишется на выбранную группу рассылок и в том случае, если подойдет под условия выбранного сегмента (проверка на сегмент будет происходить в момент подписки на группу, т.е. в момент старта сценария). Если в сегменте были установлены ограничения, то они не будут учтены при запуске сценария, т.к. каждый контакт пересчитывается индивидуально.
- на любую группу рассылок с учетом сегмента - контакт начнет сценарий, когда подпишется на любую из созданных в аккаунте групп рассылок и в том случае, если подойдет под условия выбранного сегмента (проверка на сегмент будет происходить в момент подписки на группу, т.е. в момент старта сценария)
- на Mobile Push - контакт начнет сценарий, когда разрешит отправку Mobile Push в приложении
- сообщение - клик (по любой или указанной ссылке) или открытие выбранного сообщения
- API - получение АПИ-запроса на старт сценария с предварительной проверкой контакта на соответствие условиям выбранного сегмента (выбор сегмента необязателен)
- изменение данных -
- старт при изменении поля данных контакта на любое, отличное от текущего, значение или же на указанное
- старт при изменении email на любое значение, заполненное или пустое (если ранее имевшийся у контакта email был удален)
- расписание - старт по заданному расписанию с обязательной проверкой на соответствие сегменту (контакт начнет сценарий только в том случае, если подойдет под его условия). Если в сегменте были установлены ограничения на количество контактов, то они будут учтены при пересчете, и в сценарий будет запущено ограниченное количество контактов.
Обратите внимание: активация сценария происходит не мгновенно. Рекомендуем активировать сценарий минимум за 1 минуту до запланированного времени старта сценария. В противном случае возможен простой до 1,5 минуты до фактического старта сценария.
| Кейс | Время в блоке | Время активации | Старт сценария | Разница между активацией и временем в блоке | Сценарий запустится |
|---|---|---|---|---|---|
| Активация после времени старта в блоке «Расписание» | 14:00:00 | 14:00:30 | 14:02:00 | < 1 мин | через 1,5 мин от времени активации |
| 14:00:00 | 14:01:30 | 14:01:30 | >1 мин | сразу после активации | |
| Активация до времени старта в блоке «Расписание» | 14:00:00 | 13:59:30 | 14:01:00 | < 1 мин | через 1,5 мин от времени активации |
| 14:00:00 | 13:58:30 | 14:00:00 | l >1 мин | сработает в запланированное время блока |
- пользовательское событие - старт происходит при получении пользовательского события и при условии, что переданные в событии параметры соответствуют настроенным в блоке ограничениям
Основные блоки
- отправка сообщения - доступные каналы: Емейл, Mobile Push, СМС. Подробнее о создании сообщений сценариев читайте здесь;
- пауза - ожидание:
- перед наступлением следующего события
- ожидание конкретной даты
- до/после даты в выбранном поле сценария
- до/после даты в выбранном поле данных;
- распределение:
- по сегментам - контакт пойдет по пути того сегмента, под условия которого он подходит. Если контакт удовлетворяет условиям нескольких сегментов - он перейдет по ветке первого подходящего. Ограничения, используемые в сегментах, не будут учтены в рамках этого блока сценария.
- по полям сценария - контакты пойдут по той ветке, которой удовлетворяет их значение в поле сценария. Если контакт подойдет под условия сразу нескольких веток - он перейдет по первой подходящей
- поровну - контакты будут делиться на равные группы по числу настроенных веток
- по долям - контакты будут делиться в настраиваемом вами соотношении по задаваемому количеству групп (веток сценария).;
Обратите внимание: Перед запуском блока «Распределение» выполняется автоматическая задержка в 2 минуты, необходимая для актуализации данных о контактах.
- изменение данных - значение выбранного поля данных контакта, проходящего через блок, будет изменено. Если поле будет выбрано, но новое значение не задано, то при прохождении блока значение в этом поле затрется на пустоту;
- API-запрос - укажите эндпоинт, тип запроса, заголовки, задайте параметры и тело (можно использовать динамический контент)
Завершающий блок
- первый вариант настройки не совершает никаких действий с контактами
- переподписать на группы рассылок - при завершении сценария контакт можно отписать от групп рассылок и подписать на группы рассылок. Нельзя выбрать одну и ту же группу в отписке и подписке.
- удалить контакт - при завершении сценария контакт будет удален, восстановить его можно в разделе удаленных.
Если в вашем сценарии предусмотрен завершающий блок удаления контакта или отписки от всех групп рассылок сразу после блока с отправкой сообщения, то мы рекомендуем поставить между этими двумя блоками небольшую паузу. Почтовики не всегда мгновенно обрабатывают запросы на отправку сообщений, поэтому может случиться такое, что контакт будет удален или отписан от групп раньше, чем сообщение будет ему отправлено.
Обратите внимание, если контакт в процессе прохождения сценария лишается идентификатора - настроенная логика в блоке завершения сценария продолжит работать: если вы настроили подписку контакта на группу рассылок, то контакт будет на нее подписан даже без идентификатора.
Блок «Пауза»: ограничение часов выхода из блока
Общая информация
По умолчанию контакт выходит из блока «Пауза» сразу, как только заканчивается заданная длительность. Если пауза закончилась ночью, следующее сообщение сценария тоже уйдёт ночью.
Чтобы этого избежать, в варианте настройки «Задать длительность» можно ограничить часы, в которые контакты могут покидать блок. Если пауза закончилась вне разрешённых часов, контакт остаётся в блоке до начала ближайшего разрешённого периода.
Настройка доступна только для варианта «Задать длительность». Для других вариантов блока «Пауза» она не применяется.
Как настроить часы выхода из блока
- Перетащите блок «Пауза» на канву и откройте его настройки двойным кликом.
- Выберите вариант настройки «Задать длительность» и укажите длительность паузы.
- Отметьте чек-бокс «Указать часы выхода из блока».
- Укажите период в полях «с» (начало) и «до» (конец). По умолчанию выбран период с 09:00 до 18:00. Под полями отображается пояснение, например: «Контакт выйдет из блока с 09:00 до 18:00 по часовому поясу аккаунта Europe/Moscow». В нём подставляются указанные вами часы и часовой пояс вашего аккаунта.
- Сохраните сценарий.
Если чек-бокс не отмечен, поля для ввода времени не отображаются, и блок работает как раньше: контакт выходит сразу по окончании паузы.
Особенности настройки
- в блоке можно задать только один интервал в сутки — несколько временных окон задать нельзя;
- интервал действует ежедневно — разбивка по дням недели не поддерживается;
- время считается по часовому поясу аккаунта (по умолчанию — Москва) — часовой пояс самого контакта не учитывается.
Как работает ограничение
- Пауза закончилась в разрешённый период — контакт выходит из блока как обычно, без ожидания;
- Пауза закончилась вне разрешённого периода — контакт остаётся в блоке до начала ближайшего разрешённого периода. Если на текущие сутки период уже прошёл, ожидание переносится на начало периода следующего дня.
Пример. Настроен период с 09:00 до 18:00.
| Когда закончилась пауза | Когда контакт выйдет из блока |
|---|---|
| Сегодня в 12:00 | Сегодня в 12:00 |
| Сегодня в 06:00 | Сегодня в 09:00 |
| Сегодня в 21:30 | Завтра в 09:00 |
Что происходит с контактами при изменениях
| Ситуация | Что происходит с контактами, ожидающими выхода |
|---|---|
| Вы изменили часы выхода, пока в блоке есть ожидающие контакты | Время выхода для них пересчитывается в соответствии с новыми часами |
| Вы сняли отметку с чек-бокса, пока в блоке есть ожидающие контакты | Контакты сразу выходят из блока, не дожидаясь начала разрешённого периода |
| Сценарий приостановили, а затем возобновили, пока контакт ждал разрешённого периода | Если разрешённый период уже наступил, контакт сразу выходит из блока. Если нет — продолжает ждать его начала |
| Блок «Пауза» удалили из сценария | Контакты завершают сценарий независимо от того, ждали они разрешённого периода или нет |
Для блоков «Пауза», которые уже настроены и работают, ничего менять не нужно. У них чек-бокс по умолчанию не отмечен, поэтому логика их работы не изменится.
Валидация и сохранение
Если чек-бокс «Указать часы выхода из блока» отмечен, поля «с» и «до» обязательны для заполнения:
- если после выхода из поля оно осталось пустым, поля подсвечиваются красной рамкой, а под ними появляется сообщение «Введите время»;
- если значения в полях «с» и «до» совпадают, оба поля подсвечиваются красной рамкой и отображается сообщение «Время «с» и «до» не должно совпадать»;
- если снять отметку с чек-бокса, поля скрываются, а все ошибки сбрасываются.
Сохранить сценарий как черновик можно при любом состоянии полей, в том числе пустых или с совпадающими значениями.
Активировать сценарий можно только после того, как оба поля заполнены и значения в них различаются.
Как узнать, когда контакты выйдут из блока
Количество контактов, находящихся в блоке «Пауза», отображается в нижней части блока в деталях сценария. Чтобы увидеть список контактов, нажмите на это число. Откроется окно «Контакты находятся в блоке Пауза», в котором в столбце «Планируемый выход из блока» указано, когда контакт покинет блок:
- если чек-бокс «Указать часы выхода из блока» не отмечен, дата выхода рассчитывается стандартно: дата входа в блок плюс длительность паузы;
- если чек-бокс отмечен, дата выхода равна началу ближайшего разрешённого периода, то есть времени, до которого контакт ожидает в блоке.
Создание контакта при старте сценария
По умолчанию запрос на старт сценария сработает только для контакта, который уже есть в базе (аналогичным образом удаленный контакт не будет восстановлен и не начнет сценарий). Настройка в начальном блоке “API-запрос” позволит передать в сценарий в том числе новый контакт не из базы (он будет создан, если не был найден, а сценарий для него запущен).
Особенности работы настройки создания контактов:
- если чекбокс активен, то новые и удаленные контакты будут автоматически созданы/восстановлены и начнут сценарий, для этого не потребуется отдельным запросом предварительно создавать контакты;
- чекбокс настраивается для каждого API блока отдельно, поэтому в одном сценарии может быть несколько начальных API блоков, как с активной настройкой на создание, так и с неактивной.
Обратите внимание: если для существующего (или удаленного контакта) будет передан новый, ранее не существующий у него идентификатор - он не будет добавлен этому контакту. Если вам нужна логика объединения, воспользуйтесь любым API-запросом на создание контакта, предусматривающим параметр method (например), до запроса на запуск сценария с этим контактом
Правила создания новых контактов через начальный блок API
При активной настройке создания любой передаваемый API-запросом контакт в первую очередь проверяется на существование в базе вашего аккаунта. Если контакт не был в ней найден, то далее происходит проверка на его наличие среди удаленных, если и там не было обнаружено совпадений - в enKod создается новый контакт, а сценарий с ним запускается.
Глобально идентификаторы необходимы для поиска контакта или создания нового:
- если это новый контакт - ему создаются все переданные идентификаторы;
- если в базе будет найден хотя бы один из переданных идентификаторов - запустится сценарий для этого существующего контакта, но другие переданные идентификаторы ему не записываются.
Контакт не существует (и не является удаленным)
- передан только емейл; его нет в базе - создается контакт с емейлом, с этим контактом запускается сценарий;
- передан только телефон; его нет в базе - создается контакт с телефоном, с этим контактом запускается сценарий;
- переданы и емейл, и телефон; обоих идентификаторов нет в базе - создается контакт с емейлом и телефоном, с этим контактом запускается сценарий.
Контакт в списке удаленных
Если передан удаленный контакт - он восстанавливается, а сценарий с ним - запускается. Правила восстановления:
- передан только емейл, он есть в удаленных - контакт будет восстановлен, с этим контактом будет запущен сценарий;
- передан только телефон, он есть в удаленных - контакт будет восстановлен, с этим контактом будет запущен сценарий;
- переданы емейл и телефон:
- емейл есть в удаленных, телефон не существует в базе или в удаленных - контакт с емейлом будет восстановлен, телефон ему добавлен не будет. Сценарий с контактом будет запущен;
- телефон есть в удаленных, емейл не существует - контакт с телефоном будет восстановлен, емейл ему добавлен не будет. Сценарий с контактом будет запущен;
- оба идентификатора есть в удаленных у разных контактов - восстанавливается контакт с емейлом, с этим контактом будет запущен сценарий. Контакт с телефоном восстановлен не будет, телефон останется за удаленным контактом и не будет добавлен к контакту с емейлом.
Хотя бы один идентификатор контакта есть в базе или в списке удаленных
- Передан контакт с емейлом и телефоном, при этом емейл есть в базе у контакта А, а телефон есть в удаленных у контакта B - запускаем сценарий для контакта А (с емейлом), контакт с телефоном не восстанавливается.
- Передан контакт с емейлом и телефоном, при этом телефон есть в базе у контакта А, а емейл есть в удаленных у контакта B - запускаем сценарий для контакта А (с телефоном), контакт с емейлом не восстанавливается.