API-підключення
Підключіть свої зовнішні API до enuchat, щоб AI та правила могли отримувати дані з ваших систем у реальному часі.
Як це працює
API-підключення дозволяють інтегрувати enuchat з вашими власними бекенд-системами — движками бронювання, CRM, керуванням замовленнями, складом тощо. Коли відвідувач ставить запитання, enuchat може викликати ваш API, отримати реальні дані та включити їх у відповідь.
Процес
- Налаштуйте підключення — базовий URL вашого API та автентифікація
- Додайте endpoint-и — конкретні API-виклики з шаблонами шляхів і відображенням відповідей
- Створіть правило — AI або статичне правило з дією CALL_API
- Відвідувач ставить запитання — правило спрацьовує, викликає ваш API, відображає відповідь у змінні сесії
- 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 API | https://api.hotel.com/v1 |
| Тип автентифікації | Як автентифікуватися | Bearer Token, OAuth2 тощо |
2. Типи автентифікації
None
Для публічних 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-токен і кешує його до закінчення терміну дії. Найкраще для сучасних API, таких як Salesforce, Google чи власні OAuth-сервери.
| Поле | Опис |
|---|---|
| Token URL | OAuth token 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-викликів, які ви хочете виконувати.
| Поле | Опис | Приклад |
|---|---|---|
| Назва | Мітка для цього endpoint-а | Check 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) | Повертає доступність номера та ціни |
Інтерполяція змінних
Використовуйте {'{'}variableName} у шляхах, параметрах запиту й шаблонах тіла. Змінні походять з:
- Змінних сесії — встановлених попередніми правилами (дія SET_VARIABLE)
- Параметрів дії — захардкоджених у дії правила CALL_API
Відображення відповіді
Відображайте поля JSON-відповіді у змінні сесії через крапкову нотацію:
// API повертає:
{'{'}
"data": {'{'}
"available": true,
"price": {'{'} "amount": 120, "currency": "EUR" }
}
}
// Відображення:
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.status → order_status, data.eta → delivery_eta
Правило (тип AI): «Коли відвідувач запитує про статус замовлення або доставку»
Дії:
- CALL_API → endpoint Order Status
- REPLY_AI → AI використовує
order_statusіdelivery_eta, щоб відповісти
Результат: Відвідувач: «Де моє замовлення #4521?» — AI: «Ваше замовлення #4521 наразі в доставці й має надійти до четверга.»
Рецепт: ціни в реальному часі
Підключення: Pricing API — https://pricing.example.com — API Key
Endpoint: GET /products/{'{'}productId}/price → відображає price → current_price, currency → price_currency
Правило (статичне): MESSAGE_MATCHES_REGEX: /\b(price|cost|how much)\b/i
Дії:
- CALL_API → endpoint Pricing
- REPLY_TEXT → «Поточна ціна — {'{'}current_price} {'{'}price_currency}.»
Тестування
Завжди тестуйте підключення й endpoint-и перед використанням їх у правилах:
- Test Connection — перевіряє, чи працює автентифікація (для OAuth2: отримує токен)
- Test Endpoint — робить реальний API-виклик із тестовими змінними й показує відповідь
- Test Rule (dry-run) — на сторінці Правил тестуйте, чи збігається правило й які дії виконалися б
Порада: Почніть із тестування підключення, потім кожного endpoint-а, а потім повного правила. Так можна ізолювати проблеми на кожному рівні.
Безпека
- Шифрування в спокої — усі облікові дані шифруються через libsodium перед зберіганням
- Ніколи не розкриваються — API-відповіді ніколи не містять розшифрованих облікових даних, лише маскіровані значення
- SSRF-захист — enuchat блокує виклики на localhost, приватні IP та внутрішні імена хостів
- Таймаут — зовнішні API-виклики мають таймаут 5 секунд, щоб запобігти зависанню
- Кешування OAuth2-токенів — access-токени кешуються надійно й оновлюються автоматично
- Ізоляція тенантів — підключення обмежені вашим тенантом, недоступні іншим
Готові підключити свої API?
Починайте інтегрувати свої системи з enuchat уже сьогодні.
Почати безкоштовно