Описание блоков (группа Общие)

Группа Общие состоит из блоков:

Блок Начало

Обязательный блок, который всегда ставится в начале сценария. Без этого блока сценарий не начнет работать. В одном сценарии может быть только один блок старта.

 

Блок Конец

Обязательный блок, может использоваться несколько раз. Без этого блока сценарий не сработает. Блок означает окончание (завершение) сценария. Все пути (ветки) сценария обязательно должны заканчиваться блоком Конец.

Настройка блоков в сценарии

Блок Таймер

Блок используется для создания задержки в работе сценария. Это по сути пауза, после которой сценарий продолжается.

Ставится перед тем блоком, перед которым нужна пауза.

Блок Таймер в сценарии

Например, человек подписался на рассылку. Сценарий запустится, система подождет 1 минуту и отравит первое письмо. После этого подождет 1 день и отправит второе письмо. На этом сценарий закончится.

У данного блока есть 3 параметра:

  • подождать
  • отправить
  • время отправки

Для работы блока Таймер необходимо выбрать хотя бы один параметр.
 
Параметр Подождать

Параметры блока "Таймер"
В этом параметре можно выбрать сколько необходимо подождать, чтобы сценарий пошел дальше. Это могут быть минуты, часы, дни, месяцы. Соответственно задаем количество минут, часов, дней, месяцев.

 


Важный момент! Если вы выбираете подождать 1 (2,3) день, это значит, что сценарий пойдет дальше через 24 (48, 72) часа с момента срабатывания сценария. Если клиент подписался на вашу рассылку в 15:00, то письмо он получит в 15:00 следующего дня.
 

Параметр Отправить.

Настройка блока "Таймер"Параметр в котором выбирается день отправки. Это хороший вариант для запуска регулярных автоматических рассылок.


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


 

 

 

 

Параметр Время отправки

Параметр Время отправки
Работает по принципу параметра Отправить. Если вы выставили время отправки 8:45, а сценарий запустился в 15:00, то клиент получит письмо в 8:45 на следующий день.

Вы можете выбрать один или несколько параметров для настройки блока Таймер.

Важный момент! Обратите внимание на логику работы данного блока.
Например, вы выбрали такие параметры:

  • подождать 1 день
  • отправить в понедельник
  • время отправки 7:45.

 

Сценарий запустился в воскресенье в 15:00. Система ждет 1 день (24 часа). Наступает понедельник. Время окончания работы параметра “Подождать 1 день” в нашем примере 15:00 в понедельник. Система проверяет параметр “Отправить”. У нас выбран понедельник и сегодня понедельник. Пока все хорошо. Система проверяет параметр “Время отправки”. Условиями задано 7:45, а сейчас 15:00. Условия не сработали. Это значит, что клиент получит не в этот понедельник письмо, а только в следующий в 7:45.

Внимательно выставляйте параметры!

Блок Задача

Цель этого блока - решить определенную задачу.

Всего в системе на данный момент есть 14 задач:

Подтвердить контакт

Цель задачи - подтвердить email-адрес подписчика и сделать его активным в системе.

Например, когда человек заполняет форму подписки - контакт попадает в eSputnik с неподтвержденным email, ему на почту приходит уведомление с просьбой подтвердить подписку. Пока человек не перейдёт по ссылке подтверждения, контакт будет оставаться в системе неподтвержденным и получать рассылки не будет. Когда человек подтверждает подписку - запускается сценарий подтверждения. Срабатывает задача Подтвердить контакт, и контакт становиться в системе активным.

Вот так выглядит самый простой сценарий подтверждения контакта.

Сценарий подтверждения контакта

У данной задачи 2 параметра:

  • Email контакта - В этом поле по умолчанию используется переменная ${EmailAddress}, поэтому вы можете оставить это поле пустым. Вы меняете ее только если создаете свою переменную в которой содержится email человека.
  • ID контакта - Если вы хотите подтвердить контакт не по email, а по его id в системе - прописываете название переменной, в которой содержится id контакта. По умолчанию в системе она называется ${ContactId}.

Создать контакт

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

 Важно! При подписке или передаче контакта любым специализирвоанным методом API, контакт создается без этого блока. Этот блок нужен только для очень специфических задач когда необходимо передать данные по контакту в событии методом /v1/event.

Создать контакт

У задачи есть 2 параметра:

  • email - обязательное поле для задачи. По умолчанию там уже прописана переменная ${EmailAddress}, которая вытягивает значение email c поступивших данных через API. Ее не видно, но по умолчанию она там присутствует. То есть этот блок можно оставить пустым, прописывать что-то в этом блоке не обязательно.
  • json - в этом поле прописывается строка или ставится переменная, содержащая строку в формате JSON с данными для заполнения полей контакта (телефон, имя, фамилия, город, дополнительные поля). Формат данных ниже.

Пример данных для поля json:

{"firstname":"...","lastname":"...","sms":"...","town":"...","profileInputs":[{"profileInputId":10001,"value":"..."}],"confirmed":true}
где profileInputs - массив дополнительных полей, profileInputId - id дополнительного поля, value - значение дополнительного поля, confirmed - статус email-адрес контакта (подтвержден/не подтвержден).
 

Обновить контакт

Задача используется для обновления информации контакта в системе, работает по принципу задачи Создать контакт. Единственная разница - в случае если контакт уже есть в системе, то он обновится, а если нет - система пропустит задачу и контакт создан не будет.

Задача актуальна если надо обновить данные контакта из события переданного по API методом /v1/event или если надо в сценарии задавать фиксированное значение дополнительного поля.

Задача Обновить контакт

У задачи есть 2 параметра:

  • email - обязательное поле для задачи. По умолчанию там уже прописана переменная ${EmailAddress}, которая вытягивает значение email c поступивших данных через API. Ее не видно, но по умолчанию она там присутствует. То есть этот блок можно оставить пустым, прописывать что-то в этом блоке не обязательно.
  • json - в этом поле прописывается строка или ставится переменная, содержащая строку в формате JSON с данными для заполнения полей контакта (телефон, имя, фамилия, город, дополнительные поля). Формат данных такой же, как и для задачи Создать контакт, но параметр confirmed игнорируется.

Обязательный email

Цель задачи - отправить письмо контакту несмотря на его статус в системе. То есть вы сможете отправить письмо всем (подтвержденным, неподтвержденным, отписавшимся, в спаме), кроме контактов из черного списка.

 Важно! Не использойте без надобнобности этот блок. Т.к. он игнорирует статус контакта возможны жалобы на спам. Данный блок нужен только для отправки новому (еще неподтвержденному) подписчику письма с кнопкой подтверждения подписки. Во всех остальных случаях для отправки письма используйте блок Email.

Задача Обязательный емейл

У блока есть 4 параметра:

  • Сообщение - обязательное поле. Выберите заранее созданное письмо, которое должно отправиться.
  • Email контакта - поле для ввода параметра из события, в котором передается email-адрес получателя. По умолчанию в это поле ставится стандартный параметр из системных событий eSputnik ${EmailAddress}.
  • ID Контакта - идентификатор контакта в системе eSputnik. Может использоваться для идентификации получателя вместо email-адреса.
  • JSON - произвольные данные в формте JSON, которые передаются в письмо. Если в параметре в событии вы передаете строку с такими данными, в это поле надо вставить этот параметр.

Получить промокод

Блок вытягивает из базы очередной промокод и передает в письмо. Подробнее о промокодах.

Параметры блока Задача

У задачи есть только один обязательный параметр - days.

  • days - количество дней, в течение которых промокод еще должен быть действующим.

​За этим блоком в сценарии стаится блок отправки сообщения (Email или SMS). В письме на месте промокода надо использовать переменную $!data.get('promocode').


Получить Промокод (с большой буквы)

Блок вытягивает из базы очередной промокод и передает в письмо. Подробнее о промокодах.


Получить промокод
 

У задачи 3 параметра (все обязательные):

  • days - количество дней, в течение которых промокод еще должен быть действующим
  • type - заданный вами для сегментации тип промокода
  • discount - размер скидки от 0 до 99.

Принцип работы рассмотрим на примере. В параметрах укажем следующие данные:

  • days - 10
  • type - newyear
  • discount - 25

Это значит, что сценарий вытянет промокод со скидкой 25%, который находится в группе newyear и срок действия которого не меньше 10 дней. Если под данный критерий попадает несколько промокодов - система сама выберет один из них.

За блоком "Получить Промокод" в сценарии стаится блок отправки сообщения (Email или SMS). В письме на месте промокода надо использовать переменную $!data.get('promocode').

Создать промокод

Цель задачи - создать (сгенерировать) промокод и передать его в письмо, которое идет следующее по цепочке. В таком случае промокод сгенерирует система eSputnik и передаст данные в письмо. Подробнее.

Параметры блока Задача
 

У задачи 4 параметра:

  • days - указывается количество дней до окончания действия промокода.
  • type - указывается число от 0 до 9.
  • discount - размер скидки. Если вы хотите сгенерировать промокод по которому вы дарите подарок клиенту - в поле discount ставите 0.
  • key - ключ шифрования. Можно не менять и оставить по умолчанию.

Все параметры обязательны для заполнения.
За этим блоком в сценарии стаится блок отправки сообщения (Email или SMS). В письме на месте промокода надо использовать переменную $!data.get('promocode').

Получить заказ

Цель задачи - вытянуть данные о заказе и передать их в письмо. Задача актуальна только в случае, когда вы передаете данные о заказах в eSputnik методом API. Подробнее по работе с заказами.

Получить заказ

Задача может использоваться в сценариях уведомления клиента о заказах, доставки и т.д. То есть везде, где необходимы данные о заказе.

Задача работает так:

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

Брошенные просмотры по email

Цель задачи - вытянуть данные о просмотренных товарах и передать их в письмо. Задача актуальна только если вы передаете данные о брошенных просмотрах в eSputnik через систему Softcube. Подробнее.

Брошенные просмотры


Задача работает следующим образом:

  • в систему поступают данные о брошенных просмотрах
  • блок вытягивает все данные, которые передаются с брошенным просмотром.
  • полученные данные передаются в письмо.
  • в письме указывается несколько просмотренных товаров и несколько рекомендаций.

У задачи есть 4 обязательных параметра:

  • tenantId - оставьте без изменений
  • apiKey - оставьте без изменений
  • blockId - служебный параметр. Правильное значение вам сообщит служба поддержки
  • email - email пользователя, бросившего просмотр. Обычно в этом поле должен быть параметр ${contacts}

Брошенные корзины по email

Цель задачи - вытянуть данные о незавершенном заказе и передать их в письмо. Задача актуальна только если вы передаете данные о брошенных корзинах в eSputnik через систему Softcube. Подробнее.

Брошенные корзины

Работает аналогично задачи Брошенные просмотры по email:

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

У задачи есть 4 обязательных параметра:

  • tenantId - оставьте без изменений
  • apiKey - оставьте без изменений
  • blockId - служебный параметр. Правильное значение вам сообщит служба поддержки
  • email - email пользователя, бросившего просмотр. Обычно в этом поле должен быть параметр ${contacts}

Рекомендации по email

Цель задачи - передать данные с рекомендациями в письмо.

Задача работает по то тому же принципу, что и Брошенные просмотры по email и Брошенные корзины по email. Только вместо информации о просмотренных страницах или незаконченном заказе вытягивается информация с рекомендациями.

Рекомендации по емейл

У задачи есть 4 обязательных параметра:

  • tenantId - оставьте без изменений
  • apiKey - оставьте без изменений
  • blockId - служебный параметр. Правильное значение вам сообщит служба поддержки
  • email - email пользователя, бросившего просмотр. Обычно в этом поле должен быть параметр ${contacts}

Получить контакт

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

Получить контакт

Задача работает следующим образом:

  • в системе создается (регистрируется) событие, которое содержит данные о контакте
  • блок вытягивает все данные по контакту, которые хранятся в базе
  • полученные данные передаются в письмо

У блока есть 3 параметра:

  • ContactId - id контакта в системе eSputnik
  • EmailAddress - email-адрес контакта
  • Phone - номер телефона контакта.

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

Например, если вы хотите идентифицировать человека не по email, а по его id в системе - прописываете название переменной, в которой содержится id контакта. По умолчанию в системе она называется ${ContactId}.

В письме можно использовать такие переменные:

  • $!data.get('firstName') - имя
  • $!data.get('lastName') - фамилия
  • $!data.get('email') - email-адрес
  • $!data.get('sms') - номер телефона
  • $!data.get('contactKey') - ключ контакта
  • $!data.get('id') - id контакта в системе
  • $!data.get('createdDate') - дата создания
  • $!data.get('updatedDate') - дата последнего изменения контакта
  • $!data.get('confirmed') - статус email-адреса контакта (true - подтвержден, false - не подтвержден)
  • $!data.get('fields').get('12345') - дополнительные поля. 12345 - id дополнительного поля.

Запустить событие

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

Запустить событие

У задачи есть 3 параметра:

  • eventTypeId - Обязательное поле. В нем необходимо выбрать тип событий, который мы хотим запустить
  • keyValue - ключ события, которое мы хотим запустить. Например, здесь может быть переменная, содержащая email. Если поле не запролнено - будет использоваться ключ из события, которое запустило текущий сценарий
  • params - массив параметров, которые мы хотим передать в запускаемое событие. Если не заполнено - будут переданы параметры из события, запустившего текущий сценарий. Формат параметров такой:
    [{"name":"paramName,"value":"значение параметра"}]

Блок Условие

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

  • если да - сценарий выполняет одно действие
  • если нет - другое

Блок имеет один вход и 2 выхода (один - если Да, второй - если Нет).

У блока есть 5 задач:

Проверить событие

Цель задачи - проверить состоялось нужное событие или нет за период с момента запуска сценария. Поиск событий производится по ключам.

Проверка события

У задачи есть 2 параметра:

  • Ключ - какой ключ события искать. Например, в качестве ключей проверяемых событий используется email-адрес. Таким образом в этом поле должен быть параметр, содержащий email-адрес. Это параметр из события, запустившего текущий сценарий. Если он называется Email Address, то в поле надо написать ${EmailAddress}
  • Тип события - тип событий, которые проверять

Переменная соответствует регулярному выражению

Цель задачи - проверить определенную переменную из события или полученые другими блоками данные и в зависимости от этого скорректировать дальнейший ход сценария.

Например, мы можем проверить кто наш пользователь - мужчина или женщина и исходя из этого скорректировать ход сценария.

Переменная соответствия

У задачи есть 2 параметра:

  • name - название переменной, которую необходимо проверить. Это может быть парамтер из события. Заметьте, что в данное поле название параметра записывается без ${}.
    Если же мы проверяем данные, полученные другими блоками сценария, то надо использовать системную переменную smartMessageJson.
  • pattern - регулярное выражение на соответствие с которым проверяем данные. Например, хотим проверить что параметр "address" из события содержит текст Киев. В этом случае в pattern прописываем .*Киев.*

Контакт подтвержден

Цель задачи - проверить подтвержден ли имейл контакта или нет и в зависимости от этого скорректировать дальнейший ход сценария.

Контакт подтверждён

Как работает данная задача

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

В этом случае:

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

У задачи есть 2 параметра:

  • EmailAddress - email-адрес контакта
  • ContactId - id контакта в системе

По умолчанию система проверят подтвержден контакт или нет по email. Если вы хотите, чтобы идентификация шла по id контакта, необходимо в поле ContactId вписать переменную ${ContactId}.

Контакт существует

Цель задачи - проверить существует контакт или нет и в зависимости от этого скорректировать дальнейший ход сценария. Работает аналогично задаче Контакт подтвержден.

Контакт существует

У данной задачи есть 2 параметра:

  • EmailAddress
  • ContactId

По умолчанию система проверяет существует контакт или нет по email. Если вы хотите, чтобы идентификация шла по id контакта, необходимо в поле ContactId вписать переменную ${ContactId}.

Читать дальше

Часть 2. Описание блоков (группа Действия)

Часть 3. Описание блоков (группа Условия)