API везе
Повежите своје спољне API-је са enuchat-ом како би AI и правила могли дохватати податке у реалном времену из ваших система.
Како функционише
API везе вам омогућавају да интегришете enuchat са властитим backend системима — booking engine-има, 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 везе у свом dashboard-у.
1. Креирање везе
Веза представља један спољни API. Треба вам:
| Поље | Опис | Пример |
|---|---|---|
| Назив | Ознака за ову везу | Hotel Booking API |
| Основни URL | Root URL API-а | https://api.hotel.com/v1 |
| Тип аутентификације | Како се аутентификовати | Bearer токен, OAuth2, итд. |
2. Типови аутентификације
Без
За јавне API-је који не захтевају аутентификацију.
API кључ
Шаље статички кључ као заглавље или query параметар.
| Поље | Опис |
|---|---|
| Кључ | Вредност вашег API кључа |
| Назив заглавља | Заглавље за коришћење (подразумевано: X-Api-Key) |
Кључ се шаље као: X-Api-Key: your_key_here
Bearer токен
Шаље статички токен у 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 |
| Опсег | Размаком одвојени опсези (нпр. read write) |
enuchat аутоматски решава животни циклус токена — дохвата на први позив, кешира до истека, освежава по потреби.
Безбедност: Сви акредитиви су енкриптовани у мировању користећи libsodium. Никада се не излажу у API одговорима — само маскиране вредности се приказују у dashboard-у.
Конфигурисање endpoint-а
Свака веза може имати више endpoint-а — специфичне API позиве које желите направити.
| Поље | Опис | Пример |
|---|---|---|
| Назив | Ознака за овај endpoint | Провера доступности |
| Метода | HTTP метода | GET, POST, PUT, DELETE |
| Путања | URL путања (додата на основни URL). Користите {'{'}variable} за динамичке вредности | /rooms/{'{'}roomId}/availability |
| Query параметри | URL параметри као парови кључ-вредност. Вредности подржавају {'{'}variable} | date={'{'}checkIn} |
| Шаблон тела | JSON тело за POST/PUT. Подржава интерполацију {'{'}variable} | {'{'}"guest": "{'{'}name}"} |
| Мапирање одговора | Мапирајте поља JSON одговора у варијабле сесије користећи dot нотацију | data.available → room_available |
| Опис | Контекст за AI (које податке овај endpoint враћа) | Враћа доступност собе и цене |
Интерполација варијабли
Користите {'{'}variableName} у путањама, query параметрима и шаблонима тела. Варијабле долазе из:
- Варијабле сесије — постављене од стране претходних правила (SET_VARIABLE акција)
- Параметри акције — хардкодирани у акцији правила CALL_API
Мапирање одговора
Мапирајте поља JSON одговора у варијабле сесије користећи dot нотацију:
// 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 токен
Endpoint: GET /orders/{'{'}orderId} → мапира data.status → order_status, data.eta → delivery_eta
Правило (AI тип): "Када посетилац пита о статусу своје наруџбине или достави"
Акције:
- CALL_API → Order Status endpoint
- REPLY_AI → AI користи
order_statusиdelivery_etaза одговор
Резултат: Посетилац: "Где је моја наруџбина #4521?" — AI: "Ваша наруџбина #4521 се тренутно шаље и требала би стићи до четвртка."
Рецепт: Цене у реалном времену
Веза: Pricing API — https://pricing.example.com — API кључ
Endpoint: GET /products/{'{'}productId}/price → мапира price → current_price, currency → price_currency
Правило (статичко): MESSAGE_MATCHES_REGEX: /\b(price|cost|how much)\b/i
Акције:
- CALL_API → Pricing endpoint
- REPLY_TEXT → "Тренутна цена је {'{'}current_price} {'{'}price_currency}."
Тестирање
Увек тестирајте своје везе и endpoint-е пре него што их користите у правилима:
- Тест везе — проверава да ли аутентификација ради (за OAuth2: дохвата токен)
- Тест endpoint-а — прави стварни API позив са пример варијаблама и приказује одговор
- Тест правила (dry-run) — на страници Правила, тестирајте да ли би се правило подударило и које би се акције извршиле
Савет: Почните тестирањем везе, затим сваког endpoint-а, затим комплетног правила. На овај начин можете изоловати проблеме на сваком нивоу.
Безбедност
- Енкрипција у мировању — сви акредитиви су енкриптовани користећи libsodium пре похране
- Никада изложени — API одговори никада не укључују декриптоване акредитиве, само маскиране вредности
- SSRF заштита — enuchat блокира позиве на localhost, приватне IP-ове и интерне hostname-ове
- Timeout — спољни API позиви имају 5-секундни timeout како би се спречило висење
- OAuth2 кеширање токена — access токени се безбедно кеширају и аутоматски освежавају
- Изолација tenant-а — везе су ограничене на ваш tenant, недоступне другима
Спремни да повежете своје API-је?
Почните интегрисати своје системе са enuchat-ом већ данас.
Започните бесплатно