dropsofsteel
03/13/2026, 12:04 PMAI Evy
03/13/2026, 12:05 PMAI Evy
03/13/2026, 12:05 PMfrom_number (номер звонящего) [(1) ]() [(2) ]()
3. Выполните API-запрос к вашей CRM, используя from_number
4. Верните данные в следующем формате [(2) ]() :
json
{
"call_inbound": {
"dynamic_variables": {
"first_name": "Иван",
"last_name": "Иванов",
"email": "ivan@example.com",
"caller_known": "true"
}
}
}AI Evy
03/13/2026, 12:05 PMcall_inbound с подключом dynamic_variables . Это отличается от исходящих звонков, где используется retell_llm_dynamic_variables напрямую [(3) ]() .
Вебхук должен быть настроен именно на уровне телефонного номера, а не только на уровне агента [(2) ]() . После настройки агент получит эти переменные и сможет использовать их в промпте для персонализации разговора [(3) ]() .AI Evy
03/13/2026, 12:05 PMAI Evy
03/13/2026, 12:05 PMdropsofsteel
03/13/2026, 12:07 PMAI Evy
03/13/2026, 12:07 PMAI Evy
03/13/2026, 12:07 PMinbound_webhook_url [(2) ]()
2. Через API при создании номера:
json
{
"inbound_webhook_url": "<https://example.com/inbound-webhook%22>
}
[(3) ]()
3. Через API при импорте номера:
json
{
"phone_number": "+14157774444",
"termination_uri": "someuri.pstn.twilio.com",
"inbound_webhook_url": "<https://example.com/inbound-webhook%22>
}
[(4) ]()
Что получает ваш webhook:
Retell отправит POST-запрос с данными [(1) ]() :
json
{
"event": "call_inbound",
"call_inbound": {
"agent_id": "agent_12345",
"from_number": "+12137771234",
"to_number": "+12137771235"
}
}
Что вы должны вернуть:
После запроса к вашей CRM верните :
json
{
"call_inbound": {
"dynamic_variables": {
"customer_name": "Иван Иванов",
"account_id": "12345"
}
}
}
Webhook на уровне номера позволяет обрабатывать каждый входящий звонок индивидуально, извлекая данные из CRM по from_number до начала разговора [(5) ]() .AI Evy
03/13/2026, 12:08 PMAI Evy
03/13/2026, 12:08 PMdropsofsteel
03/13/2026, 12:09 PMAI Evy
03/13/2026, 12:09 PMAI Evy
03/13/2026, 12:09 PM{{variable_name}} (не будут заполнены) [(3) ]()
Рекомендация:
Если вы хотите завершать звонок при ошибке вебхука, можно вернуть специальную переменную (например, SHOULD_HANG_UP: "true") и проверять её в агенте [(1) ]() . Однако это требует изменения логики обработки ошибок на вашем сервере, чтобы всегда возвращать статус 2xx .
Пример обработки в агенте:
Добавьте в промпт агента инструкцию проверять переменные:
Если {{customer_name}} отображается с фигурными скобками, используйте общее приветствие.
В противном случае поприветствуйте клиента по имени.
[(3) ]()
Это обеспечит корректную работу даже при отсутствии данных из CRM .AI Evy
03/13/2026, 12:09 PMAI Evy
03/13/2026, 12:09 PMdropsofsteel
03/13/2026, 12:20 PMAI Evy
03/13/2026, 12:20 PMAI Evy
03/13/2026, 12:21 PMjson
{
"event": "call_inbound",
"call_inbound": {
"agent_id": "agent_12345",
"from_number": "+12137771234",
"to_number": "+12137771235"
}
}
Шаг 3: Ваш сервер обращается к CRM
Ваш вебхук берет from_number (номер звонящего) и делает API-запрос к вашей CRM, чтобы найти информацию о клиенте по этому номеру [(2) ]() .
Шаг 4: Вы возвращаете данные в Retell
Ваш вебхук должен вернуть ответ со статусом 2xx в течение 10 секунд [(1) ]() . Формат ответа [(3) ]() :
json
{
"call_inbound": {
"dynamic_variables": {
"customer_name": "Иван Иванов",
"email": "ivan@example.com",
"account_id": "12345"
}
}
}AI Evy
03/13/2026, 12:21 PM{{customer_name}} (не заполнятся) [(4) ]()
Важно: Таймаут вебхука — 10 секунд [(1) ]() . Убедитесь, что ваш API-запрос к CRM выполняется быстро.AI Evy
03/13/2026, 12:21 PMAI Evy
03/13/2026, 12:21 PM