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

Use Case 6: Реєстрація + повторний візит

Рівень: базовий · Модулі: Scenario Builder, Settings → Registered Users · Actions: registered_users__get, registered_users__set

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

Що потрібно Де в меню Навіщо
Scenario Builder Меню → Scenario Builder Get/set на Start і в гілці реєстрації
Settings → Registered Users Налаштування → Registered Users Поля профілю first_name, phone

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

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

Перший візит — реєстрація (ім'я, опційно телефон); наступний — вітання по імені без повторного опитування.

Ключова ідея: змінні діалогу vs профіль клієнта

До Use Case 6 ви працювали з {{user_input}}, кнопками та API — це змінні поточного діалогу. Use Case 6 додає запам'ятати клієнта між зверненнями.

Змінні діалогу (state) Registered Users (профіль)
Простими словами «Стікер» на одну розмову «Картка» клієнта в базі
Скільки живе Один Run / один діалог Наступний візит, новий діалог
Як записати Автоматично між нодами ({{user_name}} тощо) Action registered_users__set
Як прочитати {{назва}} у наступних нодах цього ж Run registered_users__get → edge success / error

Міні-приклад

  1. Клієнт пише «Олена» → «Привіт, Олена!» — ім'я з змінної діалогу, все ок до кінця цього Run.
  2. Клієнт повертається завтра (або новий Run у preview):
    • без registered_users__set — бот знову «не знає» Олену;
    • з __set на першому візиті + __get на старті другого — «Вітаємо, Олена!».

Правило: все, що зібрали на реєстрації, збережіть через registered_users__set. На наступному візиті спочатку registered_users__get.

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

  • registered_users__get на старті → success / error.
  • error → збір даних → registered_users__set.
  • success → «Вітаємо, {{registration:first_name}}!»
  • Новий Run після реєстрації → __get success з тим самим ім'ям.

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

Start → registered_users__get
   ├─ success → «Вітаємо, {{registration:first_name}}!»
   └─ error → WaitForInput (ім'я, телефон) → registered_users__set → «Дякуємо!»

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

Крок 0. Registered Users — поля моделі

Settings → Registered Users → додати поля профілю (якщо ще немає):

Поле в моделі Тип Навіщо
first_name text Ім'я для вітання
phone phone Опційно для Use Case 5/6

Дані в action потрапляють через constants registration:first_name, registration:phone тощо.


Крок 1. Action на Start — registered_users__get

Що робить: шукає профіль за chat_id + channel поточного діалогу; якщо знайдено — завантажує в registration:*.

node_params Значення Навіщо
check_by_phone false На навчанні — lookup по поточному чату

Edges:

Edge Коли Куди Навіщо
success Профіль є MessageKeyboard «Вітаємо, {{registration:first_name}}!» Повторний візит
error Новий клієнт гілка реєстрації (крок 2) Очікувана гілка, не баг

Крок 2. Гілка error — збір даних

WaitForInput — ім'я

Параметр Значення
messageText «Як до вас звертатися?»
outputVariable registration:first_name

WaitForInput — телефон (опційно)

| outputVariable | registration:phone |

Edges: ланцюжок WaitForInput → Action registered_users__set.


Крок 3. Action — registered_users__set

Що робить: збирає всі constants registration:* і зберігає профіль у БД Registered Users.

node_params Значення Навіщо
check_by_phone false Зв'язок з поточним chat_id
active 1 Активний профіль

Edges:

Edge Куди
success MessageKeyboard «Дякуємо за реєстрацію, {{registration:first_name}}!»
error «Не вдалося зберегти дані» + перевірити поля моделі

Крок 4. Тест «між діалогами»

  1. Preview: пройти error → реєстрацію → success на __set.
  2. Завершити Runновий Run.
  3. На Start __get → має бути success, {{registration:first_name}} заповнене.

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

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

Симптом Причина Що зробити
Другий Run знову реєстрація __set не виконався або невірні поля Перевірити trace першого Run
__set error Поле не в моделі Registered Users Додати поле в Settings
{{registration:first_name}} порожній Невірний outputVariable Формат registration:first_name
Профіль «зникає» Тест у тому ж Run Завершити Run і відкрити новий

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

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