Skip to main content

Рендеринг шаблонів

Шаблонні змінні позначаються синтаксисом {{подвійні_фігурні_дужки}}. Дані беруться з initial_context — заданого через API-тригер, лист кампанії або Отримання даних перед дзвінком, що збагачує контекст на старті дзвінка, — а також, лише в тілах запитів вузла «Вебхук», з gathered_context (змінних, видобутих під час дзвінка). Синтаксис залежить від того, де ви його використовуєте:

Промпти вузлів агента

У промпті вузла агента посилайтесь на кожне поле initial_context напряму за назвою. Вкладені значення підтримуються через крапкову нотацію. Приклад: якщо початковий контекст такий
пишіть промпт так, щоб звернутися до імені абонента: Промпт: Ти — Аліса, і зараз розмовляєш з {{user.name}}.
Змінні, видобуті під час дзвінка (gathered_context), недоступні в промптах вузлів агента — промпт може посилатись лише на поля initial_context. Щоб використати видобуті дані, надішліть їх через вузол «Вебхук».

Перевірка при створенні кампанії

Коли агента ставлять на кампанію зі списків довідника, платформа звіряє всі {{змінні}} його промптів із колонками, які оголошені у вибраних списках, і не дає створити кампанію, якщо якоїсь бракує:
Два способи це владнати: додати колонку у файл і завантажити список заново, або прибрати змінну з промпту — чи дати їй значення за замовчуванням, якщо вона не обовʼязкова. Памʼятайте про службові назви: номер — це {{phone_number}}, зовнішній ідентифікатор — завжди {{ext_customer_id}}, хоч би як звалася колонка у вашому файлі.

Тіло запиту вузла «Вебхук»

При побудові тіла запиту вузла «Вебхук» об’єкти контексту вкладені під своїми назвами, тож звертайтесь до них із префіксами initial_context. та gathered_context.: Значення в тілі запиту: {{initial_context.user.name}} або {{gathered_context.call_disposition}}

Фільтри

Після назви змінної можна вказати фільтр через вертикальну риску: {{змінна | фільтр}}. Фільтр змінює те, як значення потрапляє в промпт — це єдиний спосіб вплинути на результат підстановки, не змінюючи самі дані.

Значення за замовчуванням

Якщо змінна відсутня або порожня, текст після риски підставляється замість неї:
За наявного first_name прозвучить ім’я, інакше — «шановний клієнте». Підтримується і давніший запис {{first_name | fallback:шановний клієнте}} — він робить те саме.

Фільтри озвучування

Ці фільтри перетворюють значення так, щоб синтез мовлення читав його розбірливо. На відміну від значення за замовчуванням, вони не підставляються замість порожньої змінної — порожнє значення лишається порожнім. digits — читає ідентифікатор по одній цифрі словами. Літери й роздільники лишаються як є, тому префікс договору звучить як слово, а цифри — окремо. Найкращий вибір для номерів договорів, рахунків і телефонів: абонент встигає записати, а синтез не намагається прочитати 2599 як «дві тисячі п’ятсот дев’яносто дев’ять». spaced — розділяє всі символи пробілами, не перетворюючи цифри на слова. Простіший за digits, але результат залежить від того, як синтез сам прочитає окрему цифру. money — сума словами з назвою валюти. Розуміє 1234.50, 1234,50, 1 234,50 і 1,234.50. Нульові копійки не озвучуються: 1234.00 прозвучить як «одна тисяча двісті тридцять чотири гривні». За замовчуванням гривня; інша валюта — аргументом після двокрапки:
words — просте число словами, без валюти. Числівник у чоловічому роді («тридцять днів», «два платежі»); для сум використовуйте money, він узгоджує рід і відмінок із валютою.

Відмінок

Фільтри повертають називний відмінок і не вміють відмінювати. Тому будуйте фразу так, щоб називний лягав природно:
Конструкції на кшталт «на суму …» вимагають знахідного відмінка й прозвучать граматично неточно.

Якщо фільтр не спрацював

Нерозпізнане ім’я фільтра трактується як значення за замовчуванням, а воно підставляється лише для порожньої змінної. Тому помилка в назві виглядає так, ніби фільтра немає зовсім: значення озвучується без змін. Якщо {{contract_number | digits}} читається як звичайне число — спершу перевірте написання назви фільтра.

Використання шаблонних змінних для тестування

Шаблонні змінні, задані в Налаштування сценарію → Контекстні змінні, включаються в тестові дзвінки (веб і телефонні) з редактора сценарію. Це зручно для симуляції даних, що зазвичай надходять через телефонію або API-тригер.
Image
Наприклад, можна задати caller_number і called_number як контекстні змінні, щоб протестувати Отримання даних перед дзвінком без реального вхідного дзвінка.
Ці контекстні змінні використовуються лише під час тестових дзвінків з редактора сценарію. У продакшн-дзвінках (вхідних і вихідних кампаніях) використовуються реальні дані телефонії, а ці значення ігноруються.

Вузли

Голосові агенти складаються з різних вузлів. Вони можуть містити інструкції для агента, дозволяти налаштувати API-тригер, яким можна запускати дзвінок, або вебхук, що оновлює результати дзвінка у вашій CRM чи запускає подальший сценарій у n8n. Опис усіх вузлів, які можна використати при побудові голосового агента, — у відповідних сторінках розділу Вузли.