Як використовувати модифікатори змінних у чат-ботах

У чат-ботах SendPulse можна використовувати модифікатори для змінних, які перетворюють їх значення за заданими вами правилами. Наприклад, форматувати текст, дати, номери телефонів та URL-адреси.

Розглянемо, які бувають модифікатори та як їх використовувати у чат-ботах.

Синтаксис модифікаторів

Ви можете змінювати дані за допомогою {{ var_name | function(parameter="value") }}, де:

  • var_name - це назва змінної;
  • function() – це функція модифікатора;
  • parameter – параметр функції;
  • value – значення параметра.

Ви можете використовувати синтаксис модифікаторів за декількома напрямками: дата, регістр слів, довжина рядків, номер телефону та URL-адреси.

Модифікатори рядків

str_to_lower() Переводить усі символи в нижній регістр.

Наприклад: змінна title = "Назва".

{{ title | str_to_lower() }}
Результат: назва.

str_to_upper() Перекладає всі символи у верхній регістр.

Наприклад: змінна title = "назва".

{{ title | str_to_upper() }}

Результат: НАЗВА.

str_capitalize() Перетворює на рядок з першим великим символом.

Наприклад: змінна title = "моя назва".

{{ title | str_capitalize() }}

Результат: Моя Назва.

str_length() Повертає довжину рядка.

Наприклад: title = "назва".

{{ title | str_length() }}

Результат: 5.

str_limit(limit="100", end="...") Обрізає рядок до вказаної довжини.
  • limit — необов'язковий параметр, що визначає максимальну довжину рядка (за замовчуванням 100 символів).
  • end — необов'язковий параметр, що передає символи в кінці обмеженого рядка (за замовчуванням "...").

Ви можете обмежити кількість символів до 1000 під час надсилання тексту, щоб повідомлення було точно доставлене. Для цього пропишіть {{info | str_limit(limit="1000") }}.

implode(separator="") Об'єднує елементи масиву з допомогою рядка separator.
  • separator — необов'язковий параметр (за замовчуванням порожній рядок. Наприклад: {{ $["list"] | implode(separator=", ") }} виведе через кому дані з масиву, отриманого після запиту зовнішніх даних.
array_get(key="*.keyname")

Створює масив зі значень вказаних ключів масиву об'єктів.

Витягує значення з вкладеного масиву або об'єкта, використовуючи «точкову» нотацію — один зі способів доступу до властивостей об'єкта та значень масиву, де фігурує точка (.) і *, як зріз з масиву та номер елемента в масиві, тобто, може бути така адресація: array.*.object.id. Наприклад, вам необхідно отримати імена з масиву об'єктів. Тоді можете використовувати {{$["users"] | array_get(key="*.name") | implode(separator="\n") }}, щоб вивести порядково поля name з масиву об'єктів.

Модифікатори чисел і дат

number_round(precision="0", mode="ROUND_HALF_UP") Округляє число до зазначеної точності precision (кількість цифр після коми).

number_round — округлює до нуля(за замовчуванням 0).

Якщо precision позитивний, число округляється до точності precision цифр після коми.

Якщо precision негативний, число округляється до точності precision цифр перед десятковою комою, тобто до найближчого кратного pow (10, -precision). Наприклад, для precision -1 число округляється до десятків, для precision -2 до сотень.

Можливі значення режиму округлення (mode) можна дізнатися детальніше з документації PHP.

number_format(decimals="0", decimal_separator=".", thousands_separator=",") Форматує число згрупованими тисячами та десятковими цифрами.
  • decimals — встановлює число знаків після коми. Якщо 0, decimal_separator опускається у значенні, що повертається.
  • decimal_separator — встановлює роздільник дробової частини.
  • thousands_separator — встановлює роздільник тисяч.

Наприклад, щоб великі числа сприймалися легше, можна розділити комами тисячі. Для цього пропишіть number_format(thousands_separator=",")

date(from_format="dmY", format="dmY", modify="") Форматує рядок з датою згідно з переданим форматом.
  • from_format — необов'язковий параметр, вказує з якого формату конвертувати дані дати. (за замовчуванням: 'd.m.Y').
  • format — необов'язковий параметр, вказує, в який формат перетворювати дані дати (за замовчуванням: 'd.m.Y').
  • modify — необов'язковий параметр, що модифікує саму дату, наприклад, "+1 day" додасть один день від початкової дати.

Підтримуються лише такі модифікатори:+/-day(s), +/-month(s), +/-year(s).

Детальніше про модифікатори дат читайте в документації PHP.

Наприклад, якщо ви хочете отримати дату у форматі «назва місяця та число», можете вказати {{ signup_date | date(format ="F jS")}}

Результат: January 5th.

Інші модифікатори

phone(formig-fix-handle_api_exceptionat="INTERNATIONAL") Форматує рядок із номером телефону згідно з переданим форматом.
  • format — необов'язковий параметр, вказує, який формат перетворювати номер телефону (за замовчуванням INTERNATIONAL).

Можливі варіанти формату:

  • INTERNATIONAL (+380 63 333 333 33)
  • NATIONAL (063 333 3333)
  • E164 (+380633333333)
  • RFC3966 (tel:+380-63-33-3333)
urlencode Повертає строку, де всі не цифро-буквені символи крім -_. повинні бути замінені знаком відсотка (%), за яким слідує два шістнадцяткових числа, а пробіли закодовані як знак додавання (+). Рядок кодується тим же способом, що й POST-дані веб-форми, тобто за типом контенту application/x-www-form-urlencoded.

Модифікатор можна використовувати для передачі отриманих від підписника значень далі в запит API, наприклад, як get-параметр.

Особливості використання

Розглянемо особливості використання модифікаторів: які можуть бути помилки та як їх можна комбінувати.

В елементі «Повідомлення» блоку ланцюжка або кампанії, а також у всіх інших елементах, де можна вставляти та використовувати змінні, ви можете застосовувати до них модифікатори. Найчастіше змінні отримують через функцію «Введення користувацьких змінних» або з відповіді елемента «Запит API».

Під час виклику функції модифікатора, якщо вона не приймає параметри, можна упускати дужки "()".

Якщо ім'я змінної містить символи }} та | , то вони повинні екрануватися \}\} та \| в імені.

Якщо значення параметра містить символи }}, | і " , то вони повинні екрануватися \}\}, \| і \". Значення параметра завжди задається як рядок.

Можливі помилки

Якщо модифікатор не може обробити змінну, він повертає її в такому ж вигляді, як і була до застосування модифікатора. Наприклад, якщо до змінної ім'я = 'Ivan' застосувати модифікатор {{ ім'я|phone(format="INTERNATIONAL") }}, ми отримаємо відповідь «Ivan», оскільки змінна не є телефоном.

Якщо модифікатор не можна застосувати до змінної, користувач не побачить помилку.

Помилки відображаються, тільки якщо є проблеми в синтаксисі модифікатора, а не в отриманих від користувача даних.

Комбінування модифікаторів

Ви можете комбінувати декілька модифікаторів, наприклад:

{{ім'я_змінної|ім'я_модифікатора1(ім'я_параметра1="значення", ім'я_параметра2="значення"ім'япараметра3="значення",)ім'я_модіфікатора2())

Наприклад, ви хочете обрізати довжину рядка змінної до 10 символів, а потім перетворити всі символи рядка у верхній регістр, то цей вираз буде мати такий вигляд: {{ String | str_limit(limit="10") | str_to_upper }}.

Як використовувати модифікатори в конструкторі чат-ботів

Розглянемо кілька прикладів використання модифікаторів у чат-ботах SendPulse.

Приклад форматування імені підписника

Продумайте сценарій ланцюжка. У нашому прикладі ми збиратимемо відгуки відвідувачів, тому спочатку хочемо дізнатися ім'я гостя, а потім надати йому можливість написати свої враження.

Для цього зайдіть або створіть ланцюжок, додайте елемент «Повідомлення» і напишіть текст із запитом, які дані хочете отримати від підписника. У панелі редагування активуйте «Чекати на відповідь підписника». У полі «Валідувати як» виберіть «Рядок» і виберіть змінну.

Натисніть «Застосувати» та додайте наступний елемент «Повідомлення».

Підписник може ввести ім'я з маленької літери, але хочемо звертатися до нього правильно, тому в тексті використовуємо модифікатор змінної str_title().

Ось як це виглядає у підписника.

Приклад форматування дати

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

Додайте елемент «Повідомлення», введіть текст із запитом, які дані хочете отримати від підписника. У панелі редагування активуйте «Чекати на відповідь підписника». У полі «Валідувати як» виберіть «Дата» і виберіть змінну.

Натисніть «Застосувати» та додайте наступний елемент «Повідомлення».

Ми хочемо, щоб дата бронювання завжди відображалася в одному форматі, тому додаємо модифікатор {{ order_date | date(format ="d.m.Y") }}.

Ось яка відповідь прийде користувачеві, коли вибере дату.

Оцініть, наскільки стаття була корисною "Як використовувати модифікатори змінних у чат-ботах"

Оцінка: 4 / 5

    Спробуйте бота для розсилок в Facebook Messenger безкоштовно