Голосові та чат-агенти на Voiceflow: розробка під ключ
Типовий запит: «У нас вже є FAQ і база знань, хочемо, щоб клієнти в чаті або по телефону отримували відповіді без оператора». Часто такі проекти впираються в ручну логіку — кожен канал (Web, Telegram, Twilio) живе окремо, і підтримка одного діалогу вимагає дублювання на трьох платформах. Voiceflow вирішує це одним візуальним холстом: створюєте флоу один раз — розгортаєте всюди.
Але є нюанс: просто намалювати граф недостатньо. Треба правильно налаштувати інтеграції, навчити RAG, оптимізувати TTS для голосу та вибудувати fallback-сценарії. Без цього агент буде втрачати контекст, давати нерелевантні відповіді або зациклюватися. Ми беремо на себе повний цикл, щоб ви отримали production-ready рішення.
Наші інженери мають досвід роботи з голосовими агентами на Twilio, чат-ботами для месенджерів і вбудовуванням RAG на основі Pinecone або ChromaDB. В результаті — агент, який розуміє до 90% запитів без участі оператора.
Як Voiceflow вирішує проблему дублювання логіки?
Завдяки єдиному runtime-агенту: діалоговий граф компілюється в абстрактне представлення, яке може бути викликане з будь-якого каналу через API або SDK. Наприклад, для Twilio використовується голосовий канал, для веба — чат-віджет, але флоу залишається одним. Це скорочує час розробки мультиканальних рішень у 2-3 рази порівняно з роздільною реалізацією.
Архітектура мультиканального агента
Voiceflow Canvas (візуальний редактор)
↓
Agent Runtime
/ | \
Voice Chat API
(Twilio) (Web) (Custom)
Типи блоків та їх призначення
- Speak / Text — відповідь агента
- Choice — кнопки або ключові фрази для вибору
- Capture — захоплення користувацького вводу (entity extraction)
- API Block — HTTP-запит до зовнішнього сервісу
- Code Block — JavaScript-логіка для складних обчислень
- AI Response — генеративна відповідь через GPT з контекстом
Інтеграція через Voiceflow Dialog Manager API
import requests
class VoiceflowDMClient:
"""Взаємодія з агентом через Dialog Manager API"""
def __init__(self, api_key: str, version_id: str):
self.api_key = api_key
self.version_id = version_id
self.base_url = "https://general-runtime.voiceflow.com"
self.headers = {
"Authorization": api_key,
"versionID": version_id,
"Content-Type": "application/json"
}
def send_message(self, user_id: str,
message: str,
variables: dict = None) -> list[dict]:
"""
Відправка повідомлення та отримання відповідей агента.
user_id: унікальний ідентифікатор сесії/користувача
Returns: список відповідних трейсів (текст, кнопки, аудіо)
"""
payload = {
"action": {
"type": "text",
"payload": message
},
"config": {
"tts": False,
"stripSSML": True
}
}
if variables:
payload["variables"] = variables
response = requests.post(
f"{self.base_url}/state/user/{user_id}/interact",
json=payload,
headers=self.headers
)
traces = response.json()
# Парсимо відповіді
responses = []
for trace in traces:
if trace["type"] == "text":
responses.append({
"type": "text",
"content": trace["payload"]["message"]
})
elif trace["type"] == "choice":
responses.append({
"type": "buttons",
"buttons": [b["name"] for b in trace["payload"]["buttons"]]
})
elif trace["type"] == "end":
responses.append({"type": "end"})
return responses
def launch_session(self, user_id: str,
variables: dict = None) -> list[dict]:
"""Запуск нової сесії (початок діалогу)"""
payload = {"action": {"type": "launch"}}
if variables:
payload["variables"] = variables
response = requests.post(
f"{self.base_url}/state/user/{user_id}/interact",
json=payload,
headers=self.headers
)
return response.json()
Як інтегрувати Voiceflow з вашим сайтом за 5 кроків
- Створіть агента в Voiceflow та налаштуйте базовий флоу (вітання, обробка інтентів, fallback).
- Скопіюйте Dialog Manager API ключ з налаштувань версії.
- Налаштуйте HTTP-запити з вашого сервера до ендпоінту
/state/user/{user_id}/interact. - Реалізуйте обробку відповідей: текст, кнопки, кінець сесії.
- Підключіть канал (веб-чат, Twilio, Telegram) через відповідний SDK або віджет.
Чому Voiceflow кращий за класичні фреймворки (Rasa, Dialogflow)?
Voiceflow виграє у швидкості прототипування в 3-5 разів — для MVP достатньо тижня замість місяця. При цьому не поступається в інтеграціях: Knowledge Base блок підтримує векторний пошук (embedding 1536-dim) через Pinecone/ChromaDB, що дає RAG-агентам релевантність на рівні 90%+. Для кастомної логіки доступний Code Block на JavaScript — можна реалізувати складну валідацію або виклик зовнішніх API.
Порівняння Voiceflow, Rasa та Dialogflow
| Параметр | Voiceflow | Rasa | Dialogflow |
|---|---|---|---|
| Час прототипу | 1-7 днів | 2-4 тижні | 1-2 тижні |
| Візуальний редактор | + (drag-n-drop) | - (код) | + (частково) |
| Знання коду | низьке | високе | середнє |
| Підтримка голосу | + (Twilio, Alexa) | +/- (кастом) | + (Telephony) |
| RAG з коробки | + (Knowledge Base) | +/- (потрібна інтеграція) | +/- (Enterprise) |
| Масштабування | хмарне, автоматичне | вимагає інфраструктури | хмарне |
Що входить в роботу?
| Етап | Що робимо | Термін (робочих днів) |
|---|---|---|
| Аудит | Аналіз існуючих процесів, збір бази знань, визначення інтентів | 2-3 дні |
| Проектування | Діаграма діалогів, маппінг entities, вибір каналів | 3-5 днів |
| Розробка | Складання графа у Voiceflow, налаштування інтеграцій (API, Code Block) | 5-10 днів |
| Тестування | QA по всіх каналах, A/B тестування інтентів, перевірка latency | 3-5 днів |
| Деплой та супровід | Розгортання у production, моніторинг, навчання команди | 2-3 дні |
При інтеграції з Twilio ми використовуємо готовий шаблон і допомагаємо з налаштуванням SSML для природного звучання мовлення. Що ви отримуєте: документацію на флоу, доступи до середовища, навчання операторів (1-2 години), гарантію коректної роботи 30 днів після релізу.
Типові помилки при розробці на Voiceflow
- Ігнорування fallback-сценаріїв. Якщо агент не розпізнає інтент — він повинен м'яко перепитати, а не падати в нескінченний цикл. Рекомендуємо додавати 2-3 рівні fallback з ескалацією на оператора.
- Переускладнення графа. Voiceflow візуальний, але якщо Canvas містить 200+ блоків, його складно підтримувати. Краще розділяти на sub-блоки (модулі) за функціями.
- Неоптимізований TTS. Для голосових каналів (Twilio) важливо налаштовувати SSML-теги (паузи, акценти), інакше мовлення звучить неприродньо.
Як почати?
Оцінимо ваш проект за 1-2 дні: проаналізуємо сценарії, порахуємо кількість інтентів, підберемо канали. Отримайте консультацію — просто зв'яжіться з нами. Працюємо під ключ з гарантією якості та дотриманням SLA.
Зв'яжіться з нами, щоб обговорити ваш проект. Замовте консультацію — оцінимо сценарії за 1-2 дні.







