Мост просит сделать шаг, который сценарий разрешил во время разговора. Нужен, когда бот должен не только говорить, но и вызвать действие.
Scope
operator:run
Заголовки
Content-Type: application/jsonX-Api-Key— ключ проектаIdempotency-Key— для повторного запроса с тем же результатом
Выполнить действие бота по ходу звонка
POST /v1/ai-operator/voice-bridge/tools/execute. Scope operator:run.
Учебный пример магазина «Северная полка». Это не запись из вашей базы. Здесь мост: запрос и ответ на одном вызове.
Запрос
{
"data": {
"projectId": "11111111-1111-4111-8111-111111111111",
"runId": "9d9d9d9d-9d9d-49d9-89d9-9d9d9d9d9d9d",
"tool": "lookup_product"
}
}Ответ (успех, 200)
{
"success": true,
"data": {
"sessionId": "9d9d9d9d-9d9d-49d9-89d9-9d9d9d9d9d9d",
"projectId": "11111111-1111-4111-8111-111111111111",
"status": "ready",
"scenarioId": "9b9b9b9b-9b9b-49b9-89b9-9b9b9b9b9b9b"
}
}Пример cURL
curl -X POST "https://api-external.brifly.online/v1/ai-operator/voice-bridge/tools/execute" \
-H "Content-Type: application/json" \
-H "X-Api-Key: {{api_key}}" \
-d '{"data": {"projectId": "11111111-1111-4111-8111-111111111111", "runId": "9d9d9d9d-9d9d-49d9-89d9-9d9d9d9d9d9d", "tool": "lookup_product"}}'Ошибки
401INVALID_API_KEY— нет ключа или ключ отозван.403FORBIDDEN_SCOPE— у ключа нетoperator:run.403PROJECT_MISMATCH— в теле другой проект.429RATE_LIMIT_EXCEEDED— заголовокRetry-After.400VALIDATION_ERROR— не хватает поля вdata.
Ограничения
- Проект и пользователь берутся из ключа. Чужой
data.projectIdотвечает403PROJECT_MISMATCH.