Перейти к основному содержимому
Действия

Актуальные данные во время звонка

Пусть агент спрашивает у вашей системы заказ, остаток на складе или данные аккаунта, пока звонящий ждёт.

С API-инструментом RAG агент прямо посреди разговора запрашивает у вашей системы актуальные данные — статус заказа, остаток товара, данные аккаунта — и отвечает по ним. Когда его вызвать, агент решает сам по вашему описанию.

Настройка​

  1. Добавьте инструмент

    Откройте агента → Действия → Добавить инструмент → CRM и сервисы → API-инструмент RAG.

  2. Опишите его и направьте на ваш эндпоинт
    ПолеЧто указать
    Названиенапример, Поиск заказа
    Общее условиеКогда его использовать, например, клиент спрашивает о статусе заказа
    URL API-эндпоинтанапример, https://api.yourshop.com/orders/{order_id} — {placeholders} заполняются значениями, которые собрал агент
    HTTP-методGET, POST, PUT, DELETE или PATCH
    Сообщение при выполненииЧто агент говорит, пока ждёт, например, Секунду, проверяю ваш заказ
    Таймаут запроса (мс)Сколько ждать ответа; по умолчанию 5000
    Заголовки, Query-параметрыНеобязательные постоянные значения, например ваш API-ключ
  3. Укажите, что агент должен узнать

    Схема параметров (JSON) перечисляет значения, которые агент узнаёт у звонящего и отправляет, — см. ниже. Если обязательного значения не хватает, агент сначала спросит его.

подсказка

Всегда заполняйте Сообщение при выполнении — тишина, пока идёт запрос, звучит как оборвавшийся звонок.

Схема параметров​

Это не само тело запроса, а JSON Schema значений, которые нужно собрать. Куда они попадают:

СлучайКуда идёт значение
В URL есть {name}В URL
GET, DELETEОстальное — как ?key=value
POST, PUT, PATCHОстальное — как тело JSON

Поиск заказа по номеру:

{
"type": "object",
"properties": {
"order_id": {
"type": "string",
"description": "Номер заказа, о котором спрашивает клиент, обычно от 6 до 10 цифр. Если не назвал, спроси."
}
},
"required": ["order_id"]
}

Бронирование с несколькими значениями:

{
"type": "object",
"properties": {
"product_id": { "type": "string", "description": "ID товара из предыдущего поиска." },
"quantity": { "type": "integer", "minimum": 1, "maximum": 10, "description": "Сколько штук. По умолчанию 1." },
"delivery_method": { "type": "string", "enum": ["pickup", "home_delivery", "locker"], "description": "Как клиент хочет получить товар." },
"customer_email": { "type": "string", "format": "email", "description": "Email для подтверждения. Если не назвал, спроси." }
},
"required": ["product_id", "delivery_method", "customer_email"]
}

Статичный эндпоинт, например часы работы: { "type": "object", "properties": {} }.

Хорошие схемы для голоса:

  • Держите схему плоской: 3–5 значений.
  • Пишите description для каждого значения, с примерами, — именно они лучше всего направляют агента.
  • Для фиксированных вариантов используйте enum: агент сопоставит «синий» с blue.
  • Помечайте значение как required, только если без него запрос не сработает.
  • Используйте имена в snake_case, совпадающие с {placeholders} в URL.

Примеры использования​

  • Статус заказа — «Где мой заказ 482913?»
  • Наличие — проверить остаток или свободный столик в вашей собственной системе.
  • Вопросы по аккаунту — баланс, конец договора, открытые тикеты.

Частые проблемы​

ПроблемаЧто проверить
Агент его не вызываетПусть Общее условие называет конкретный запрос
Ваш эндпоинт получает пустые значенияИмена в схеме должны в точности совпадать с {placeholders}
Агент говорит, что не смог проверитьВаш эндпоинт отвечал дольше таймаута или вернул ошибку