Група блоків Дія
Блоки групи Дія використовуються для керування сценарієм, контактами, подіями, замовленнями та промокодами.
Вони дають змогу:
- керувати часом виконання сценарію;
- додавати контакти до груп і видаляти їх із груп;
- створювати, оновлювати, підтверджувати, видаляти й отримувати дані контактів;
- запускати події та надсилати webhook-запити;
- отримувати дані замовлень;
- створювати й отримувати промокоди;
- позначати завершення сценарію або об'єднувати кілька гілок в одну.

Таймер
Блок використовується, щоб відтермінувати на заданий час наступну дію або надсилання повідомлення.
Додайте його перед блоком, для якого потрібна затримка.

Наприклад: після підтвердження підписки стартує сценарій з welcome-серією. Новий контакт отримує вітальне повідомлення відразу після підтвердження, потім друге email-повідомлення через два дні та третє через наступні три дні.
Блок Таймер має два параметри:
- Час очікування.
- Чекати до.
Можна вибрати один параметр або обидва, але для роботи блоку потрібно вказати принаймні один.

Час очікування
У цьому параметрі можна задати паузу перед спрацюванням наступного блоку. Виберіть зі списку одиницю вимірювання та вкажіть значення.

ВажливоЯкщо вибрати очікування 1/2/3 дні, сценарій продовжиться відповідно через 24/48/72 години з моменту спрацювання. Якщо користувач підписався на розсилку о 07:00, перше повідомлення він отримає о 07:00 наступного дня.
Чекати до
У параметрі Чекати до можна вручну вказати час, використати дані з додаткового поля картки контакту або з параметра контексту — події, що запускає сценарій.

Самостійні налаштування часу
Виберіть день тижня та час, у який має відбутися надсилання. Цей варіант можна використовувати для запуску регулярних автоматичних розсилок.

Якщо ви встановили час надсилання на 8:45, а сценарій запустився о 15:00, підписник отримає лист о 8:45 наступного дня, якщо не вказано конкретний день тижня.
ВажливоЯкщо сьогодні вівторок, а ви вибрали надсилання в понеділок, лист буде надіслано наступного понеділка, тобто майже через тиждень. Якщо сьогодні понеділок, підписник отримає лист сьогодні.
Використання часу з додаткового поля контакту
Наприклад, цю опцію можна використовувати для нагадувань, якщо ви збираєте в додаткові поля дані про час, коли підписники виконують певні дії: роблять покупки, тренуються, навчаються тощо.
Виберіть поле контакту, що містить час, якого потрібно дочекатися.

Час із поля контакту враховується за часовим поясом контакту і має передаватися в текстове поле у форматі HH:MM або HH:MM:SS. Якщо в полі контакту, що бере участь у сценарії, значення відсутнє або записане в некоректному форматі, в історії запуску сценарію відобразиться відповідна помилка.
Використання часу з параметра контексту
Цю опцію можна використовувати для нагадувань, якщо дані про час, коли підписники виконують певні дії, не прив'язані до додаткових полів. У такому випадку сценарій орієнтується на фактичні дані з події — наприклад, коли надійшла остання подія про початок тренування.
Вкажіть параметр події, що містить час, якого потрібно дочекатися.

Час із параметра події враховується за часовим поясом контакту і має передаватися в текстове поле у форматі ISO 8601. Якщо в події, що запускає сценарій, значення відсутнє або записане в некоректному форматі, в історії запуску сценарію відобразиться відповідна помилка.
Опція Використовувати часовий пояс контакту
Активація цієї опції дає змогу надсилати повідомлення в певний час з урахуванням часового поясу контакту.

Пріоритет параметрів блоку Таймер
Наприклад, ви скомбінували параметри так:
- Час очікування — 1 день;
- Чекати до понеділка;
- Години та хвилини — 8:45.

Сценарій запустився в неділю о 15:00. Система чекає 1 день (24 години). Настає понеділок. У нашому прикладі параметр Час очікування — 1 день завершується о 15:00 у понеділок.
Далі система перевіряє день тижня в параметрі Чекати до. Обрано понеділок, і сьогодні понеділок. Після цього система перевіряє час надсилання: в умовах встановлено 8:45, а зараз 15:00. Умова не виконується, тому підписник отримає лист не цього понеділка, а наступного о 8:45.
Кінець
Рекомендуємо використовувати блок Кінець наприкінці сценарію та всіх його гілок. Він допомагає візуально зрозуміти логіку сценарію та дії перед завершенням. Це особливо корисно, коли сценарій має розгалужену структуру та багато інших блоків.

Точка перевірки
Якщо сценарій має складні розгалуження, розмістіть цей блок у потрібному місці, а потім перевірте в історії запусків сценарію, чи пройшов контакт визначеним шляхом. Також блок Точка перевірки підходить для зведення кількох гілок в одну. Не всі блоки дозволяють підключати кілька гілок, а цей блок вирішує таке завдання.

Назва — єдиний параметр блоку.
Додати до групи
Блок використовується для додавання контакту до групи.

Блок має базові та розширені параметри.

Базовий параметр:
| Параметр | Налаштування |
|---|---|
| Група (обов'язковий параметр) | У цьому полі виберіть групу, до якої буде додано контакт. |
Випадки використання розширених параметрів розглянуто в окремій статті.

Webhook
Налаштування, тестування та керування блоком Webhook докладно описано в окремій статті: Вебхуки в сценаріях.
Запустити подію
Мета блока — ініціювати запуск іншої події зі сценарію. Наприклад, один сценарій може запускати інший.
ПриміткаПеред використанням блока заздалегідь створіть тип події, яку плануєте запускати.

Базові параметри
- Подія (обов'язковий параметр) — виберіть тип події, що запускатиметься.
- Параметри — задайте одну або кілька пар ключ-значення, які система передасть у подію.

Натисніть + Додати параметр, щоб створити новий параметр, або Кошик, щоб видалити його.

ПриміткаЗмінні нечутливі до регістру (case-insensitive). Наприклад,
Розширені параметри (опційно)
- Ключ унікальності — ключ події, яку потрібно запустити. Наприклад, це може бути змінна, що містить email. Якщо поле не заповнене, система використовує ключ із події, що запустила поточний сценарій.
- JSON — дані у форматі JSON, які передаються в подію, якщо відповідних параметрів немає у полі Параметри.

Підтримуються два формати JSON.
- Спрощений формат
{ "paramName": "value" }.
Приклад:
{
"city": "Poltava",
"street": "Kharkivska",
"contactId": "3089912515"
}- Масив пар
name–value.
Приклад:
[
{"name": "city", "value": "Poltava"},
{"name": "street", "value": "Kharkivska"},
{"name": "contactId", "value": "3089912515"}
]
ПриміткаДля доступу до параметрів події використовуйте:
${event.data.parameter}— селектор через крапку для вкладених параметрів;${event.array[0].parameter}— селектор за індексом для елементів масиву.
Пріоритет параметрів
Під час виконання блока система об'єднує дані, вказані в полях Параметри та JSON.
Якщо однаковий параметр задано в обох місцях, система застосує значення з поля Параметри, оскільки воно має вищий пріоритет. У наведеному прикладі до події буде передаватися значення [email protected].

Видалити з групи
Блок використовується для видалення контакту з групи.

Блок має базові та розширені параметри.

Базовий параметр:
| Параметр | Налаштування |
|---|---|
| Група (обов'язковий параметр) | У цьому полі виберіть групу, з якої буде видалено контакт. |
Примітка
- Видалити контакт можна тільки зі статичної групи (списку).
- Після видалення з групи контакт залишиться в системі.
Випадки використання розширених параметрів розглянуто в окремій статті.

Оновлення додаткових полів
Додаткові поля містять інформацію про контакти: кількість замовлень, улюблені бренди тощо. Блок Оновлення додаткових полів автоматизує оновлення контактних даних. Коли блок активується в сценарії, він шукає контакт у системі та оновлює вказані поля.
Щоб додати поля, які потрібно оновити:
- Відкрийте список + Додати поле та виберіть у ньому те, яке потрібно оновити, або знайдіть його через пошук.

- У рядку Значення введіть статичне значення поля або динамічну змінну.

Якщо тип додаткового поля числовий, виберіть оператор:
=— полю буде присвоєно значення, передане в блоці;+— до наявного значення в полі буде додано значення, передане в блоці. Якщо результат буде більший за максимальне значення діапазону поля, запишеться максимально допустиме значення.-— від наявного значення в полі буде віднято значення, передане в блоці. Якщо результат буде менший за мінімальне значення діапазону поля, запишеться мінімально допустиме значення.

- Щоб додати інші правила, повторіть кроки 1 і 2.
- Збережіть сценарій.
Система виконує валідацію доданих полів та їхніх значень. Якщо валідацію не пройдено, відобразиться повідомлення про помилку.
Щоб видалити створене правило з налаштувань блока, натисніть іконку кошика.

Створити контакт
Блок використовується для створення контакту в системі. Якщо профіль із такою email-адресою вже існує, його буде оновлено. Якщо немає — буде створено новий контакт.
ВажливоБлок Створити контакт потрібен лише для специфічних випадків, коли дані передаються за API методом Generate event v3 і під час створення контакту потрібно записати тільки частину даних. Наприклад, ви передали подію методом
Generate event v3для контакту, якого немає в системі. За допомогою цього блока можна створити контакт. Для всіх інших методів блок не потрібен.

Блок має три параметри:
- Email — обов'язкове поле, якщо потрібно створити контакт за email.
- Номер телефону — обов'язкове поле, якщо потрібно створити контакт за номером телефону.
- JSON — рядок або змінна з рядком у форматі
JSON, що містить дані для заповнення полів контакту: телефон, ім'я, прізвище, місто, додаткові поля. Якщо поле не заповнити, у контакті залишиться тільки email. Щоб зберегти ім'я, прізвище, дату народження тощо, обов'язково передайте ці дані в JSON.
У полі JSON можна вказати змінну contactJson. У цьому випадку REST API виконає валідацію значень параметра. Якщо параметри контакту передано з помилками, у попередженні буде вказано невалідні параметри та допустимі значення.
Приклад даних для поля JSON:
{
"firstname": "...",
"lastname": "...",
"sms": "...",
"town": "...",
"timeZone": "Etc/GMT+03",
"languageCode": "uk",
"FIELD_LIST_NAME": {
"FIELD_NAME": "exampleValue"
},
"confirmed": false
}Де:
FIELD_LIST_NAME— назва списку додаткових полів;FIELD_NAME— назва додаткового поля;exampleValue— значення додаткового поля;confirmed— статус email-адреси контакту (підтверджено/не підтверджено).
Якщо потрібно створити контакт із певним значенням поля типу дата, використовуйте формат такого вигляду: YYYY-MM-DD:
{
"FIELD_LIST_NAME": {
"DATA": "2023-11-06"
}
}Якщо потрібно створити контакт із певним значенням поля типу дата з часом, використовуйте формат такого вигляду: YYYY-MM-DDThh:mm:
{
"FIELD_LIST_NAME": {
"DATA": "2023-11-06T16:42"
}
}
Зверніть увагуДо додаткового поля можна звертатися не лише за назвою, а й за його ID. У такому випадку формат має бути таким:
{ "profileInputs": [ { "profileInputId": 10001, "value": "2023-11-06" } ] }
ВажливоПід час пошуку контактів для блоків Створити контакт, Оновлення контакту, Отримати контакт, Підтвердити контакт, Видалити контакт застосовуються такі правила:
- ID контакту має найвищий пріоритет серед усіх параметрів.
- Якщо задано externalCustomerId, пошук контакту виконуватиметься за externalCustomerId.
- Якщо externalCustomerId не задано, пошук контакту виконуватиметься за email-адресою або номером телефону.
Видалити контакт
Блок призначений для автоматичного видалення контактів із бази даних — наприклад, щоб не перевищувати ліміт тарифного плану.

У параметрі Причина видалення можна вказати текст, який відображатиметься у списку видалених контактів (наприклад, Inactive contact). Поле необов'язкове.
Видалений контакт можна відновити.
ВажливоПошук контакту виконується за тими самими правилами, що й у блоці Створити контакт: ID контакту має найвищий пріоритет, далі використовується externalCustomerId, email-адреса або номер телефону.
Підтвердити контакт
Мета блока — підтвердити email-адресу підписника і зробити його активним у системі, щоб йому надходили листи.
Наприклад, коли людина заповнює форму підписки, контакт потрапляє до eSputnik із непідтвердженим email. На цю адресу надходить повідомлення з проханням підтвердити підписку. Доки користувач не перейде за посиланням підтвердження, контакт не отримуватиме розсилки. Коли користувач підтверджує підписку, запускається сценарій, спрацьовує блок Підтвердити контакт, і контакт стає активним у системі.

Блок має розширені параметри.
Докладніше про розширені параметри блоків сценаріїв >
ВажливоПошук контакту виконується за тими самими правилами, що й у блоці Створити контакт: ID контакту має найвищий пріоритет, далі використовується externalCustomerId, email-адреса або номер телефону.
Оновити контакт
Блок використовується для оновлення інформації про контакт у системі й працює за принципом блока Створити контакт. Єдина відмінність: якщо контакт уже є в системі, він оновиться, а якщо немає — система не створить дубль і просто пропустить дію.
Блок актуальний, коли потрібно оновити дані контакту з події, переданої API методом Generate event v3, або задати в сценарії фіксоване значення додаткового поля.

Блок має чотири параметри:
- ID контакту — якщо потрібно оновити контакт не за email, а за його ID в системі, вкажіть назву змінної або ціле число, що містить ID контакту. Наприклад,
${contactId}або123345. - Email — обов'язкове поле для блока. Наприклад,
${emailAddress}або[email protected]. Якщо в події інша назва змінної, вкажіть саме її. У системних подіях eSputnik змінна називаєтьсяemailAddress. Системні події генеруються всередині системи: клік кнопки в листі, запуск регулярного сценарію за групою, форма підписки, реактивація за допомогою RFM-аналізу. Для них у поле потрібно вписати${emailAddress}. - Номер телефону — номер телефону контакту.
- JSON — рядок або змінна з рядком у форматі
JSON, що містить дані для заповнення полів контакту: телефон, ім'я, прізвище, адреса, країна, місто, область, поштовий індекс, додаткові поля. Формат даних такий самий, як і для блока Створити контакт, але параметрconfirmedігнорується.
ВажливоПошук контакту виконується за тими самими правилами, що й у блоці Створити контакт: ID контакту має найвищий пріоритет, далі використовується externalCustomerId, email-адреса або номер телефону.
Отримати контакт
Мета блока — отримати дані про контакт і передати їх у лист або до блоку Умови. Наприклад, можна надсилати лист із контактними даними щоразу, коли в базі з'являється новий підписник, або після реєстрації надсилати клієнтові його реєстраційні дані.

Блок працює так:
- У системі створюється (реєструється) подія, яка містить дані про контакт.
- Блок отримує всі наявні дані щодо контакту, які зберігаються в базі.
- Отримані дані передаються в email.
Блок має чотири параметри:
- ID контакту — ID контакту в системі eSputnik.
- Email — email-адреса контакту.
- Номер телефону — номер телефону контакту.
- Токен — мобільний токен контакту.
Параметри ID контакту, Email, Номер телефону та Токен використовуються для вибору способу ідентифікації контакту. Одне з цих полів має бути обов'язково заповнене відповідними даними.
Наприклад, щоб ідентифікувати людину не за email, а за її ID в системі, вкажіть назву змінної, яка містить ID контакту. За замовчуванням у системі вона називається ${contactId}.
У повідомленні можна використовувати такі змінні:
$!firstName— ім'я;$!lastName— прізвище;$!email— email-адреса;$!sms— номер телефону;$!contactKey— ключ контакту;$!id— ID контакту в системі;$!createdDate— дата створення;$!updatedDate— дата останньої зміни контакту;$!confirmed— статус email-адреси контакту (true— підтверджено,false— не підтверджено);$!fields['1234']— додаткові поля. Замість1234потрібно підставити ID додаткового поля.
Ви можете активувати прапорець Шукати тільки ID контакту для пошуку контакту лише за його ID.

ВажливоПошук контакту виконується за тими самими правилами, що й у блоці Створити контакт: ID контакту має найвищий пріоритет, далі використовується externalCustomerId, email-адреса або номер телефону.
Отримати замовлення
Мета блока — отримати дані із замовлення та передати їх до листа. Наприклад, статус замовлення.
Блок застосовується лише у сценаріях, у яких події передаються API методом Add orders.

Щоб налаштувати параметри блока Отримати замовлення, розгорніть список Отримати замовлення по і виберіть один із варіантів:
- ID замовлення. Вибирайте цей варіант, коли потрібно отримати дані замовлення за ID, сформованим у eSputnik.
- Зовнішній ID замовлення. Вибирайте цей варіант, коли потрібно отримати дані замовлення за ID, який ви передаєте в eSputnik.

Поле ID замовлення/Зовнішній ID замовлення необов'язкове. Блок автоматично отримує всі параметри з події.
Блок працює так:
- Система отримує дані про замовлення.
- Блок отримує всі дані, передані разом із замовленням, і зберігає їх у контексті сценарію. Надалі ці дані можна використовувати в будь-якому місці сценарію — наприклад, як значення змінних у повідомленнях.
Докладніше про роботу із замовленнями читайте у статті Автоматизація роботи із замовленнями.
Запуск за часом
Блок використовується для надсилання повідомлення:
- за N днів/годин/хвилин до дати й часу, які ви передаєте в події,
- із зазначенням часу запуску (з події або вказаного вручну),
- за датою з параметра події або датою, вказаною в блоці.
Важливо
- Якщо час запуску береться з події, враховується переданий часовий пояс.
- Якщо час вказується вручну, блок запуститься за часовим поясом, вказаним у налаштуваннях вашого облікового запису eSputnik.

У полі За___ днів/годин/хвилин вкажіть, за який час до дати потрібно надіслати повідомлення: за 1 годину, 3 дні, 10 хвилин тощо.
У полі Перед датою вкажіть динамічну змінну, якою цей параметр позначений у події. За замовчуванням це ${starDate}.

ВажливоДопускаються два формати дати й часу:
- За часом UTC: 2011-12-03T10:15:30;
- За часом UTC із коригуванням за таймзоною: 2011-12-03T10:15:30+02:00.
+02:00 у цьому випадку — коригування часу для подій в Україні, оскільки час у Києві взимку на 2 години випереджає UTC. Повний список країн і регіонів можна переглянути тут.
Активуйте опцію Використовувати часовий пояс контакту, щоб запускати блок у певний час з урахуванням часового поясу контакту.

Створити промокод
Мета блока — згенерувати промокод і передати його до наступного листа в ланцюжку. Параметри шифруються за вашим ключем; коли користувач вводить промокод на сайті, зворотний алгоритм розшифровує ці параметри. Докладніше про промокоди.

Блок має чотири обов'язкові параметри:
- Дні — кількість днів до завершення терміну дії промокоду. Система додасть це значення до поточної дати й зашифрує отриману дату завершення в промокод. За замовчуванням у це поле підставляється
${days}. - Тип — тип промокоду. Можна використовувати до 32 типів промокодів, які ви задаєте самостійно. Наприклад: промокод за підписку —
type 0, до дня народження —type 1, реактивація —type 3тощо. У змінній вказується число від 0 до 31, яке відповідає потрібному типу. За замовчуванням у це поле підставляється${type}. - Знижка — розмір знижки. Використовується для генерації промокоду, коли знижка надається у відсотках від суми замовлення. Значення має бути двозначним, тому знижки до 10% потрібно доповнювати нулем попереду. Наприклад, для підстановки в лист знижки 5% вкажіть
05. За замовчуванням у це поле підставляється${discount}. - Ключ — ключ шифрування. Можна залишити ключ, що використовується за замовчуванням. За замовчуванням у це поле підставляється
${key}.
Після цього блока в сценарії додайте блок надсилання повідомлення: Email, SMS, Viber тощо.

У листі на місці промокоду використовуйте змінну $!data.get('promocode') або $!promocode.

Отримати промокод
Блок підставляє до листа черговий промокод із бази. Докладніше про завантажувані промокоди.

Блок має три обов'язкові параметри:
- Дні — кількість днів від поточної дати, протягом яких промокод має бути дійсним;
- Тип — заданий вами для сегментації тип промокоду;
- Знижка — розмір знижки від 01 до 99.
За цими параметрами система відбиратиме промокоди із завантаженої бази. Розглянемо принцип роботи на прикладі. У параметрах зазначено такі значення: дні — 10, тип — newyear, знижка — 25.

Це означає, що сценарій візьме з бази промокод зі знижкою 25%, типом newyear і терміном дії не менше 10 днів. Якщо заданим умовам відповідають кілька промокодів, система вибере один із них.
Після блоку Отримати промокод у сценарії додайте блок надсилання повідомлення.

У місці повідомлення, де має бути промокод, вкажіть змінну $!promocode.
Updated 2 days ago