Інструкція
Markdown статті

Use Case 5: Формат номера телефону

Рівень: базовий · Модулі: Scenario Builder, Action Jail · Action: кастомна дія Action Jail

Необхідні права та доступ

Що потрібно Де в меню Навіщо
Scenario Builder Меню → Scenario Builder WaitForInput, виклик кастомної дії
Action Jail Меню → Action Jail Створення і тест JS-дії

Якщо розділу немає в меню — перевірте права облікового запису або зверніться до підтримки ConnectiveOne.

Бізнес-контекст

Клієнт вводить телефон у різних форматах (0800…, 380…, +380…) — для CRM, Registered Users і API потрібен єдиний формат +380XXXXXXXXX.

Очікуваний результат

  • Action Jail дія: вхід raw_phone → вихід normalized_phone.
  • Виклик зі сценарію → показ нормалізованого номера клієнту.
  • Невалідний ввід → edge error і повторний запит (не тиша).

Архітектура flow

WaitForInput (raw_phone) → Action (кастомна дія Action Jail)
   ├─ success → MessageKeyboard «Ваш номер: {{normalized_phone}}»
   └─ error   → «Невірний формат» → loop на WaitForInput

Покрокова реалізація

Крок 1. Action Jail — нова дія

Action Jail → Створити дію (можна AI-генерація з промптом нижче).

Контракт дії (що має робити код):

Вхід (з сценарію) Вихід Логіка
raw_phone (string) normalized_phone Прибрати пробіли/дужки; якщо 10 цифр з 0 — додати +38; якщо вже +380… — лишити
подія error Якщо менше 10 цифр або не схоже на UA номер

Промпт для AI-генерації (приклад):
«Action Jail: нормалізувати український телефон у формат +380XXXXXXXXX. Вхід raw_phone, вихід normalized_phone, return error якщо невалідно.»

Тест у Action Jail (вкладка «Тестування»):

raw_phone Очікування
0800123456 +380800123456 або +380… за вашим правилом
380501234567 нормалізується до +380501234567
+380501234567 без змін
abc error

Крок 2. WaitForInput — сирий номер

Параметр Значення
messageText «Введіть номер телефону»
outputVariable raw_phone
Validation phone або none на першому проході

Edges: → Action (кастомна дія).


Крок 3. Action — кастомна дія з Action Jail

node_params Значення Навіщо
raw_phone {{raw_phone}} Передати ввід з WaitForInput

(Імена параметрів — як у формі вашої дії в Inspector.)

Edges:

Edge Куди Навіщо
success / основний MessageKeyboard «Ваш номер: {{normalized_phone}}» Показати результат
error «Невірний формат. Спробуйте ще раз» → loop на WaitForInput Не залишати клієнта без відповіді

Крок 4. MessageKeyboard — результат

| Текст | Нормалізований номер: {{normalized_phone}} |


Крок 5 (опційно). MessageKeyboard з URL-кнопкою

Параметр Значення Навіщо
Кнопка Текст + URL у розширених налаштуваннях кнопки Без Action Jail для простого посилання
ActionType open-url (Telegram) Перевірити в preview / TG

→ Use Case 11 (просунутий рівень) для broadcast alias і масової відправки.

Критерії приймання (self-check Runs)

Типові помилки

Симптом Причина Що зробити
{{normalized_phone}} порожній Немає return { normalized_phone: '…' } у коді Виправити Action Jail
Завжди error Параметр у сценарії ≠ імені в Action Jail Звірити node_params і форму дії
Бот «замовкає» Edge error не підключений Підключити error → MessageKeyboard
Тест у Action Jail OK, у Runs — ні Інша назва action у сценарії Обрати правильну дію в Inspector

Пов'язана документація

Працюєте з власним ШІ-агентом?Встановіть відкритий skill, щоб ваш ШІ-агент працював з актуальною офіційною документацією ConnectiveOne.Отримати skillПотрібна підтримка?Не знайшли відповідь або потрібна допомога команди ConnectiveOne? Створіть запит у Client Portal.Створити запит