API-подключения

Подключайте внешние API к enuchat, чтобы AI и правила получали данные из ваших систем в реальном времени.

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

API-подключения позволяют интегрировать enuchat с вашими серверными системами — системами бронирования, CRM, управления заказами, складом и др. Когда посетитель задаёт вопрос, enuchat может вызвать ваш API, получить реальные данные и включить их в ответ.

Процесс

  1. Настройте подключение — базовый URL вашего API и аутентификация
  2. Добавьте endpoint — конкретные API-вызовы с шаблонами путей и маппингом ответов
  3. Создайте правило — AI или статическое правило с действием CALL_API
  4. Посетитель задаёт вопрос — правило срабатывает, вызывает ваш API, маппит ответ в переменные сессии
  5. AI отвечает с реальными данными — переменные сессии доступны AI для генерации точного ответа

Пример: Наличие номера в отеле

Посетитель: "Доступен ли номер 205 на следующей неделе?"

AI-правило совпало: "Когда посетитель спрашивает о наличии номера"

Действие CALL_API: GET https://api.hotel.com/rooms/205/availability

Ответ замаппен: room_available = true, price = "€120/ночь"

AI отвечает: "Номер 205 доступен на следующей неделе по цене €120/ночь. Хотите забронировать?"

Настройка подключения

Перейдите в Настройки → API-подключения в панели управления.

1. Создание подключения

Подключение представляет один внешний API. Вам нужно:

ПолеОписаниеПример
НазваниеМетка для этого подключенияHotel Booking API
Базовый URLКорневой URL APIhttps://api.hotel.com/v1
Тип авторизацииСпособ аутентификацииBearer Token, OAuth2 и др.

2. Типы аутентификации

Без аутентификации

Для публичных API, не требующих аутентификации.

API Key

Отправляет статический ключ в заголовке или параметре запроса.

ПолеОписание
КлючЗначение вашего API-ключа
Имя заголовкаИспользуемый заголовок (по умолчанию: X-Api-Key)

Ключ отправляется как: X-Api-Key: your_key_here

Bearer Token

Отправляет статический токен в заголовке Authorization.

Отправляется как: Authorization: Bearer your_token_here

Basic Auth

Отправляет имя пользователя и пароль в кодировке base64.

Отправляется как: Authorization: Basic dXNlcjpwYXNz

OAuth 2.0 (Client Credentials)

Автоматически получает access token и кэширует его до истечения. Лучший вариант для современных API — Salesforce, Google или собственные OAuth-серверы.

ПолеОписание
Token URLOAuth endpoint для получения токена (например, https://auth.example.com/oauth/token)
Client IDВаш OAuth client ID
Client SecretВаш OAuth client secret
ScopeОбласти доступа через пробел (например, read write)

enuchat автоматически управляет жизненным циклом токена — получает при первом вызове, кэширует до истечения, обновляет при необходимости.

Безопасность: Все учётные данные шифруются при хранении с помощью libsodium. Они никогда не отображаются в ответах API — в панели управления показываются только маскированные значения.

Настройка endpoint

Каждое подключение может иметь несколько endpoint — конкретных API-вызовов.

ПолеОписаниеПример
НазваниеМетка для этого endpointCheck availability
МетодHTTP-методGET, POST, PUT, DELETE
ПутьURL-путь (добавляется к базовому URL). Используйте {'{'}variable} для динамических значений/rooms/{'{'}roomId}/availability
Параметры запросаURL-параметры как пары ключ-значение. Значения поддерживают {'{'}variable}date={'{'}checkIn}
Шаблон телаJSON-тело для POST/PUT. Поддерживает интерполяцию {'{'}variable}{'{'}"guest": "{'{'}name}"}
Маппинг ответаМаппинг полей JSON-ответа в переменные сессии через точечную нотациюdata.available → room_available
ОписаниеКонтекст для AI (какие данные возвращает endpoint)Returns room availability and pricing

Интерполяция переменных

Используйте {'{'}variableName} в путях, параметрах запроса и шаблонах тела. Переменные поступают из:

  • Переменных сессии — установленных предыдущими правилами (действие SET_VARIABLE)
  • Параметров действия — жёстко заданных в действии CALL_API правила

Маппинг ответа

Маппинг полей JSON-ответа в переменные сессии через точечную нотацию:

// API returns:
{'{'}
  "data": {'{'}
    "available": true,
    "price": {'{'} "amount": 120, "currency": "EUR" }
  }
}

// Mapping:
data.available  →  room_available    // "true"
data.price.amount  →  room_price    // "120"
data.price.currency  →  room_currency  // "EUR"

Замаппенные переменные сохраняются как переменные сессии разговора и доступны AI для генерации ответов.

Использование с правилами

API-вызовы запускаются действием CALL_API в правилах. Вы можете комбинировать их с другими действиями.

Рецепт: Проверка статуса заказа

Подключение: Order Management API — https://api.shop.com/v2 — Bearer Token

Endpoint: GET /orders/{'{'}orderId} → маппинг data.statusorder_status, data.etadelivery_eta

Правило (AI-тип): "Когда посетитель спрашивает о статусе заказа или доставке"

Действия:

  1. CALL_API → endpoint статуса заказа
  2. REPLY_AI → AI использует order_status и delivery_eta для ответа

Результат: Посетитель: "Где мой заказ #4521?" — AI: "Ваш заказ #4521 сейчас в доставке и должен прибыть к четвергу."

Рецепт: Цены в реальном времени

Подключение: Pricing API — https://pricing.example.com — API Key

Endpoint: GET /products/{'{'}productId}/price → маппинг pricecurrent_price, currencyprice_currency

Правило (статическое): MESSAGE_MATCHES_REGEX: /\b(price|cost|how much)\b/i

Действия:

  1. CALL_API → endpoint цен
  2. REPLY_TEXT → "The current price is {'{'}current_price} {'{'}price_currency}."

Тестирование

Всегда тестируйте подключения и endpoint перед использованием в правилах:

  • Тест подключения — проверяет работу аутентификации (для OAuth2: получает токен)
  • Тест endpoint — выполняет реальный API-вызов с тестовыми переменными и показывает ответ
  • Тест правила (пробный запуск) — на странице Правил проверьте, сработает ли правило и какие действия будут выполнены

Совет: Начните с тестирования подключения, затем каждого endpoint, затем полного правила. Так вы сможете изолировать проблемы на каждом уровне.

Безопасность

  • Шифрование при хранении — все учётные данные шифруются с помощью libsodium перед сохранением
  • Никогда не раскрываются — ответы API никогда не содержат расшифрованных учётных данных, только маскированные значения
  • Защита от SSRF — enuchat блокирует вызовы к localhost, приватным IP и внутренним хостнеймам
  • Таймаут — вызовы внешних API имеют таймаут 5 секунд для предотвращения зависания
  • Кэширование токенов OAuth2 — access-токены кэшируются безопасно и обновляются автоматически
  • Изоляция аккаунтов — подключения привязаны к вашему аккаунту, недоступны для других

Готовы подключить ваши API?

Начните интеграцию ваших систем с enuchat уже сегодня.

Начать бесплатно