Як використовувати модифікатори змінних у чат-ботах
У чат-ботах SendPulse можна використовувати модифікатори для змінних, які перетворюють їх значення за заданими вами правилами. Наприклад, форматувати текст, дати, номери телефонів та URL-адреси.
Розглянемо, які бувають модифікатори та як їх використовувати у чат-ботах.
Синтаксис модифікаторів
Ви можете змінювати дані за допомогою {{ var_name | function(parameter="value") }}
, де:
var_name |
Назва змінної. |
function() |
Функція модифікатора. |
parameter |
Параметр функції. |
value |
Значення параметра. |
Ви можете використовувати синтаксис модифікаторів за декількома напрямками: дата, регістр слів, довжина рядків, номер телефону та URL-адреси.
Модифікатори рядків
str_to_lower() |
Переводить усі символи в нижній регістр.
Наприклад: змінна title = "Назва".
|
str_to_upper() |
Перекладає всі символи у верхній регістр.
Наприклад: змінна title = "назва".
Результат: НАЗВА. |
str_capitalize() |
Перетворює на рядок з першим великим символом.
Наприклад: змінна title = "моя назва".
Результат: Моя Назва. |
str_length() |
Повертає довжину рядка.
Наприклад: title = "назва".
Результат: 5. |
str_limit(limit="100", end="...") |
Обрізає рядок до вказаної довжини.
Ви можете обмежити кількість символів до 1000 під час надсилання тексту, щоб повідомлення було точно доставлене. Для цього пропишіть |
implode(separator="") |
Об'єднує елементи масиву з допомогою рядка separator .
|
array_get(key="*.keyname") |
Створює масив зі значень вказаних ключів масиву об'єктів. Витягує значення з вкладеного масиву або об'єкта, використовуючи «точкову» нотацію — один зі способів доступу до властивостей об'єкта та значень масиву, де фігурує точка Наприклад, вам необхідно отримати імена з масиву об'єктів. Тоді можете використовувати |
str | match(pattern="/.*some(regex).*/") |
Виводить рядок, що відповідає шаблону виразу. Якщо у регулярному вираженні є група Наприклад, щоб вивести частину посилання Результат: |
str | match_all(pattern="/.*(some)\s(regex).*/") |
Виводить масив рядків, що відповідає шаблону виразу. Якщо регулярному вираженні є групи, то виводить масив груп. Наприклад, щоб вивести частину посилання Результат: |
str | explode(separator="/") |
Розбиває рядок на масив за роздільником. Наприклад, щоб розбити рядок Результат: |
str | substr(start="",length="") |
Виводить рядок починаючи з вказаного символу та вказаною довжиною. Наприклад, щоб вивести частину рядка, починаючи з 23-символ та взяти наступні 11 символів, вкажіть Результат: |
|
Замінює частини тексту в рядку, які відповідають певному правилу, на вказаний текст або текстові рядки. Це корисно для автоматизації процесу заміни або видалення певних елементів тексту у великих обсягах даних.
Використання для одного рядка:
Функція застосовується безпосередньо до рядка ( Наприклад, якщо вхідний рядок — |
Модифікатори чисел і дат
number_round(precision="0", mode="ROUND_HALF_UP") |
Округляє число до зазначеної точності precision (кількість цифр після коми).
Якщо Якщо Можливі значення режиму округлення (mode) можна дізнатися детальніше з документації PHP. |
number_format(decimals="0", decimal_separator=".", thousands_separator=",") |
Форматує число згрупованими тисячами та десятковими цифрами.
Наприклад, щоб великі числа сприймалися легше, можна розділити комами тисячі. Для цього пропишіть |
date(from_format="d.m.Y", format="d.m.Y", modify="") |
Форматує рядок з датою згідно з переданим форматом.
Підтримуються лише такі модифікатори: Детальніше про модифікатори дат читайте в документації PHP. Наприклад, якщо ви хочете отримати дату у форматі «назва місяця та число», можете вказати Результат: January 5th. |
date_time(from_format="d.m.Y H:i", format="d.m.Y H:i", modify="") |
Повертає під час виведення значення з типом date_time .
Підтримуються модифікатори: |
Інші модифікатори
phone(formig-fix-handle_api_exceptionat="INTERNATIONAL") |
Форматує рядок із номером телефону згідно з переданим форматом.
Можливі варіанти формату:
|
urlencode |
Повертає строку, де всі не цифро-буквені символи крім -_. повинні бути замінені знаком відсотка (% ), за яким слідує два шістнадцяткових числа, а пробіли закодовані як знак додавання (+ ). Рядок кодується тим же способом, що й POST-дані веб-форми, тобто за типом контенту application/x-www-form-urlencoded .
Модифікатор можна використовувати для передачі отриманих від підписника значень далі в запит API, наприклад, як get-параметр. |
Особливості використання
Розглянемо особливості використання модифікаторів: які можуть бути помилки та як їх можна комбінувати.
В елементі Повідомлення ланцюжка або кампанії, а також у всіх інших елементах, де можна вставляти та використовувати змінні, ви можете застосовувати до них модифікатори. Найчастіше змінні отримують через функцію Чекати відповідь підписника або з відповіді елемента Запит API.
Під час виклику функції модифікатора, якщо вона не приймає параметри, можна упускати дужки ()
.
Якщо ім'я змінної містить символи }}
та |
, то вони повинні екрануватися \}\}
та \|
в імені.
Якщо значення параметра містить символи }}
, |
і "
, то вони повинні екрануватися \}\}
, \|
і \"
. Значення параметра завжди задається як рядок.
Можливі помилки
Якщо модифікатор не може обробити змінну, він повертає її в такому ж вигляді, як і була до застосування модифікатора. Наприклад, якщо до змінної ім'я = Ivan
застосувати модифікатор {{ ім'я|phone(format="INTERNATIONAL") }}
, ми отримаємо відповідь «Ivan», оскільки змінна не є телефоном.
Якщо модифікатор не можна застосувати до змінної, користувач не побачить помилку.
Помилки відображаються, тільки якщо є проблеми в синтаксисі модифікатора, а не в отриманих від користувача даних.
Комбінування модифікаторів
Ви можете комбінувати декілька модифікаторів, наприклад:
{{variable_name|modifier_name1(parameter_name1="value",parameter_name2="value",parameter_name3="value",)|modifier_name2()|modifier_name_N()}}
{{ім'я_змінної|ім'я_модифікатора1(ім'я_параметра1="значення", ім'я_параметра2="значення"ім'япараметра3="значення",)ім'я_модіфікатора2())
Наприклад, ви хочете обрізати довжину рядка змінної до 10 символів, а потім перетворити всі символи рядка у верхній регістр, то цей вираз буде мати такий вигляд:.
{{variable_name|modifier_name1(parameter_name1="value",parameter_name2="value",parameter_name3="value",)|modifier_name2()|modifier_name_N()}}
{{ String | str_limit(limit="10") | str_to_upper }}
Як використовувати модифікатори в конструкторі чат-ботів
Ви можете використовувати модифікатори у таких блоках:
Блок Повідомлення | У текстовому блоці — для надсилання модифікованого повідомлення. |
Блок Запит API | У полі посилання або тіла запиту — для надсилання модифікованого запиту. |
Блок Дія | У полі встановлення значення змінної у дії «Встановити змінну» — для збереження модифікованої змінної. |
Розглянемо кілька прикладів використання модифікаторів у чат-ботах SendPulse.
Приклад форматування імені підписника
Продумайте сценарій ланцюжка. У нашому прикладі ми збиратимемо відгуки відвідувачів, тому спочатку хочемо дізнатися ім'я гостя, а потім надати йому можливість написати свої враження.
Для цього зайдіть або створіть ланцюжок, додайте елемент Повідомлення і напишіть текст із запитом, які дані хочете отримати від підписника. У панелі редагування активуйте Чекати на відповідь підписника. У полі «Валідувати як» виберіть «Рядок» і виберіть змінну.
Натисніть Застосувати та додайте наступний елемент Повідомлення.
Підписник може ввести ім'я з маленької літери, але хочемо звертатися до нього правильно, тому в тексті використовуємо модифікатор змінної str_title().
Ось як це виглядає у підписника.
Приклад форматування дати
Також розглянемо варіант, якщо відвідувач хоче забронювати столик на конкретну дату. При цьому, щоб клієнту після вибору дати йому надійшло підтвердження про запис.
Додайте елемент Повідомлення, введіть текст із запитом, які дані хочете отримати від підписника. У панелі редагування активуйте «Чекати на відповідь підписника». У полі Валідувати як виберіть Дата і виберіть змінну.
Натисніть Застосувати та додайте наступний елемент Повідомлення.
Ми хочемо, щоб дата бронювання завжди відображалася в одному форматі, тому додаємо модифікатор {{ order_date | date(format ="d.m.Y") }}
.
Ось яка відповідь прийде користувачеві, коли вибере дату.
Приклад створення посилання в Google Календарі
Якщо ви хочете запропонувати користувачеві запланувати подію у календарі, можна додати доступні часові слоти за допомогою кнопок або швидких відповідей, або запропонувати ввести власні дату та час в елементі Повідомлення (Message).
Збережіть отримане значення змінної типу Дата та час
(Date and time).
Тепер, щоб отримати посилання на створення зустрічі в Google Календарі, задайте в елементі рядок:
https://www.google.com/calendar/render?action=TEMPLATE&text={{title|urlencode()}}&dates={{booked_datetime|date_time(format="YmdTHi00", modify="-2 hours")}}Z%2F{{booked_datetime|date_time(format="YmdTHi00", modify="-1 hours")}}Z&ctz=Europe%2FKyiv
Де title
— мінна з аудиторії чат-бота для назви зустрічі.
booked_datetime
— змінна для обраної дати та часу початку зустрічі.
Ymd
— рік, місяць і день, зазначені без пробілів.
Т
— Статичний роздільник дати та часу.
Hi
— Годинник і хвилини без пробілів.
00
— Статично задані секунди.
Перша дата та час – час старту зустрічі з поправкою на часовий пояс (-2 години для київського часу). Друга дата - закінчення через годину.
Z
— покажчик дати у часовому поясі UTC.
ctz=Europe%2FKyiv
— покажчик часового поясу, у якому створюється подія.
Припустимо, користувач вкаже дату і час: 28.02.2023 11:00
.
У такому разі чат-бот сформує посилання виду:
https://www.google.com/calendar/render?action=TEMPLATE&text=%D0%9F%D1%80%D0%B5%D0%B7%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D0%B8%D1%8F+%C2%ABUnidragon%C2%BB&dates=20230228T090000WITH%2F20230228T100000Z&ctz=Europe%2FKyiv
І відобразить як частину повідомлення.
Перейшовши за посиланням, користувач отримає готовий шаблон зустрічі у своєму календарі.
Оновлено: 23.08.2024
або