Документация ›Ваш AI-агент

Кастомные инструменты (ваши API в чате)

Опишите инструменты, которые AI сможет вызывать во время разговора — поиск в вашей CRM, система бронирования, проверка по реестру, любая HTTP-доступная служба. Настраивается в Интеграции → «Просят проверить или записать — агент делает».

Работает во всех каналах сразу: телефонные звонки, виджет на сайте, Telegram-бот, WhatsApp (и Instagram после подключения — см. его раздел). AI решает когда вызвать инструмент по его description — пишите его так, как написали бы инструкцию для младшего ассистента.

Как работает вызов:

  1. Пользователь говорит то, на что AI может среагировать действием («проверьте мой бренд»).
  2. AI делает POST на ваш webhook_url с телом { "tool_name", "arguments": {…}, "call_id", "tenant_id" }.
  3. Ваш endpoint возвращает любой JSON-объект в пределах timeout_ms (по умолчанию 10 с).
  4. AI вплетает результат в следующую реплику человеческим языком.

Схема (JSON Schema для параметров):

{
  "name": "check_trademark",
  "description": "Check whether a brand name is already registered as a trademark.",
  "parameters": {
    "type": "object",
    "properties": {
      "name": { "type": "string", "description": "Brand name to check" },
      "mktu_class": { "type": "integer", "description": "MKTU class 1..45" }
    },
    "required": ["name"]
  },
  "webhook_url": "https://your-api.example.com/check-trademark",
  "auth_header": "Bearer your-secret",
  "timeout_ms": 10000,
  "enabled": true
}

Безопасность: URL должен быть публичным адресом — используйте HTTPS (localhost, приватные IP и cloud-metadata блокируются). В поле auth_header можно положить ваш Bearer-секрет — он придёт в заголовке Authorization.

Зарезервированные имена: submit_lead, transfer_to_operator, end_call, search_knowledge_base — встроенные, переопределить нельзя.

Сбои не ломают разговор: если ваш webhook упал или ответил >5xx, AI получает {"error":"…"} и мягко предложит оставить контакт. Беседа продолжается.