Pre-Call Data Fetch позволяет обогащать call context внешними данными до того, как голосовой агент начнет говорить. Когда функция включена на узле Start Call, Агентика отправляет HTTP-запрос в ваш API сразу после инициации звонка. Пока ответ загружается, абонент слышит ring-back tone. Когда данные приходят, они объединяются с initial context звонка и становятся доступны как template variables в prompts и greetings.

Как это работает

  1. Звонок приходит (inbound) или инициируется (outbound).
  2. Агентика отправляет POST request на настроенный endpoint со стандартизированным payload.
  3. Абонент слышит ring-back tone, пока ожидается ответ.
  4. Ваш API отвечает JSON object с объектом initial_context.
  5. Переменные объединяются с initial context звонка.
  6. Голосовой агент стартует с полным доступом к полученным данным через синтаксис {{variable_name}}.

Конфигурация

Откройте редактор узла Start Call и раскройте Advanced Settings. Включите Pre-Call Data Fetch и настройте:

Формат запроса

Агентика отправляет POST request со следующим JSON payload:
Заголовок Content-Type установлен в application/json. Если вы настроили credential, соответствующий authentication header будет добавлен.

Ожидаемый формат ответа

Ваш API должен вернуть JSON object со статусом 2xx. Переменные, которые нужно добавить в call context, должны находиться внутри ключа initial_context:
Также можно поместить initial_context на верхний уровень:
Legacy-ключ dynamic_variables все еще принимается как drop-in alias для initial_context, поэтому существующие integrations продолжают работать без изменений. Для новых integrations используйте initial_context. Если response содержит оба ключа, приоритет у initial_context.
После получения response эти значения можно использовать везде, где поддерживаются template variables:
  • Greeting: Hello {{customer_name}}, thank you for calling!
  • Prompt: The customer is a {{loyalty_tier}} member with {{open_tickets}} open support tickets.
Если response не является valid JSON object, не содержит initial_context или legacy dynamic_variables, либо request fails или times out, звонок продолжается без дополнительного context. Pre-call fetch никогда не блокирует и не проваливает звонок.

Вложенные переменные

Если initial_context содержит вложенные объекты, обращайтесь к ним через dot notation:
В prompts используйте {{customer.name}} и {{customer.address.city}}.

Timeout

У запроса есть 10-second timeout. Если ваш API не ответит за это время, звонок продолжится без полученных данных. Проектируйте endpoint так, чтобы он отвечал как можно быстрее и минимизировал длительность ring-back tone.

Тестирование через Test Calls

Когда приходит настоящий телефонный звонок, context variables caller_number и called_number автоматически задаются telephony provider и включаются в pre-call data fetch request как from_number и to_number. Но когда вы делаете test call — web call (WebRTC) или phone test call из workflow editor — эти переменные по умолчанию недоступны. Чтобы имитировать telephony data во время тестирования:
  1. Откройте workflow и перейдите в Settings.
  2. В Context Variables добавьте:
    • caller_number — номер, который нужно имитировать как caller, например +12137771234.
    • called_number — номер, на который как будто позвонили, например +12137771235.
  3. Сохраните настройки.
Теперь при test call, web или phone, эти значения будут отправляться в pre-call data fetch request на ваш endpoint, позволяя проверить весь flow как при реальном inbound-звонке.
Эти context variables используются только во время test calls из workflow editor. В production inbound calls и campaign outbound calls используются реальные telephony data, а эти значения игнорируются.

Пример integration

Простой Node.js endpoint, который ищет клиента по номеру телефона: