API veze
Povežite svoje vanjske API-je sa enuchatom kako bi AI i pravila mogli dohvaćati podatke u realnom vremenu iz vaših sistema.
Kako funkcioniše
API veze vam omogućavaju da integrišete enuchat sa vlastitim backend sistemima — booking engineima, CRM-ovima, upravljanjem narudžbama, inventarom i još više. Kada posjetitelj postavi pitanje, enuchat može pozvati vaš API da dobije stvarne podatke i uključi ih u odgovor.
Tok
- Konfigurišite vezu — osnovni URL vašeg API-a i autentifikaciju
- Dodajte endpointe — specifične API pozive sa šablonima putanje i mapiranjem odgovora
- Kreirajte pravilo — AI ili statičko pravilo sa CALL_API akcijom
- Posjetitelj postavlja pitanje — pravilo se pokreće, poziva vaš API, mapira odgovor u varijable sesije
- AI odgovara sa stvarnim podacima — varijable sesije su dostupne AI-u za generisanje tačnog odgovora
Primjer: Dostupnost hotelske sobe
Posjetitelj: "Je li soba 205 dostupna sljedeće sedmice?"
AI pravilo se podudara: "Kada posjetitelj pita o dostupnosti sobe"
CALL_API akcija: GET https://api.hotel.com/rooms/205/availability
Odgovor mapiran: room_available = true, price = "€120/noć"
AI odgovara: "Soba 205 je dostupna sljedeće sedmice za €120/noć. Želite li rezervisati?"
Postavljanje veze
Idite na Postavke → API veze u svom dashboardu.
1. Kreiranje veze
Veza predstavlja jedan vanjski API. Treba vam:
| Polje | Opis | Primjer |
|---|---|---|
| Naziv | Oznaka za ovu vezu | Hotel Booking API |
| Osnovni URL | Root URL API-a | https://api.hotel.com/v1 |
| Tip autentifikacije | Kako se autentifikovati | Bearer token, OAuth2, itd. |
2. Tipovi autentifikacije
Bez
Za javne API-je koji ne zahtijevaju autentifikaciju.
API ključ
Šalje statički ključ kao zaglavlje ili query parametar.
| Polje | Opis |
|---|---|
| Ključ | Vrijednost vašeg API ključa |
| Naziv zaglavlja | Zaglavlje za korištenje (zadano: X-Api-Key) |
Ključ se šalje kao: X-Api-Key: your_key_here
Bearer token
Šalje statički token u Authorization zaglavlju.
Šalje se kao: Authorization: Bearer your_token_here
Basic Auth
Šalje korisničko ime i lozinku, base64-enkodovano.
Šalje se kao: Authorization: Basic dXNlcjpwYXNz
OAuth 2.0 (Client Credentials)
Automatski dohvaća access token i kešira ga do isteka. Najbolje za moderne API-je poput Salesforcea, Googlea ili prilagođenih OAuth servera.
| Polje | Opis |
|---|---|
| Token URL | OAuth token endpoint (npr. https://auth.example.com/oauth/token) |
| Client ID | Vaš OAuth client ID |
| Client Secret | Vaš OAuth client secret |
| Opseg | Razmakom odvojeni opsegi (npr. read write) |
enuchat automatski rješava životni ciklus tokena — dohvaća na prvi poziv, kešira do isteka, osvježava po potrebi.
Sigurnost: Sve vjerodajnice su enkriptovane u mirovanju koristeći libsodium. Nikada se ne izlažu u API odgovorima — samo maskirane vrijednosti se prikazuju u dashboardu.
Konfigurisanje endpointa
Svaka veza može imati više endpointa — specifične API pozive koje želite napraviti.
| Polje | Opis | Primjer |
|---|---|---|
| Naziv | Oznaka za ovaj endpoint | Provjera dostupnosti |
| Metoda | HTTP metoda | GET, POST, PUT, DELETE |
| Putanja | URL putanja (dodata na osnovni URL). Koristite {'{'}variable} za dinamičke vrijednosti | /rooms/{'{'}roomId}/availability |
| Query parametri | URL parametri kao parovi ključ-vrijednost. Vrijednosti podržavaju {'{'}variable} | date={'{'}checkIn} |
| Šablon tijela | JSON tijelo za POST/PUT. Podržava interpolaciju {'{'}variable} | {'{'}"guest": "{'{'}name}"} |
| Mapiranje odgovora | Mapirajte polja JSON odgovora u varijable sesije koristeći dot notaciju | data.available → room_available |
| Opis | Kontekst za AI (koje podatke ovaj endpoint vraća) | Vraća dostupnost sobe i cijene |
Interpolacija varijabli
Koristite {'{'}variableName} u putanjama, query parametrima i šablonima tijela. Varijable dolaze iz:
- Varijable sesije — postavljene od strane prethodnih pravila (SET_VARIABLE akcija)
- Parametri akcije — hardkodirani u akciji pravila CALL_API
Mapiranje odgovora
Mapirajte polja JSON odgovora u varijable sesije koristeći dot notaciju:
// 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"Mapirane varijable se čuvaju kao varijable sesije na razgovoru i dostupne su AI-u za generisanje odgovora.
Korištenje sa pravilima
API pozivi se pokreću akcijom CALL_API u pravilima. Možete ih kombinovati sa drugim akcijama.
Recept: Pretraga statusa narudžbe
Veza: Order Management API — https://api.shop.com/v2 — Bearer token
Endpoint: GET /orders/{'{'}orderId} → mapira data.status → order_status, data.eta → delivery_eta
Pravilo (AI tip): "Kada posjetitelj pita o statusu svoje narudžbe ili dostavi"
Akcije:
- CALL_API → Order Status endpoint
- REPLY_AI → AI koristi
order_statusidelivery_etaza odgovor
Rezultat: Posjetitelj: "Gdje je moja narudžba #4521?" — AI: "Vaša narudžba #4521 se trenutno šalje i trebala bi stići do četvrtka."
Recept: Cijene u realnom vremenu
Veza: Pricing API — https://pricing.example.com — API ključ
Endpoint: GET /products/{'{'}productId}/price → mapira price → current_price, currency → price_currency
Pravilo (statičko): MESSAGE_MATCHES_REGEX: /\b(price|cost|how much)\b/i
Akcije:
- CALL_API → Pricing endpoint
- REPLY_TEXT → "Trenutna cijena je {'{'}current_price} {'{'}price_currency}."
Testiranje
Uvijek testirajte svoje veze i endpointe prije nego što ih koristite u pravilima:
- Test veze — provjerava da li autentifikacija radi (za OAuth2: dohvaća token)
- Test endpointa — pravi stvarni API poziv sa primjer varijablama i prikazuje odgovor
- Test pravila (dry-run) — na stranici Pravila, testirajte da li bi se pravilo podudarilo i koje bi se akcije izvršile
Savjet: Počnite testiranjem veze, zatim svakog endpointa, zatim kompletnog pravila. Na ovaj način možete izolirati probleme na svakom nivou.
Sigurnost
- Enkripcija u mirovanju — sve vjerodajnice su enkriptovane koristeći libsodium prije pohrane
- Nikada izložene — API odgovori nikada ne uključuju dekriptovane vjerodajnice, samo maskirane vrijednosti
- SSRF zaštita — enuchat blokira pozive na localhost, privatne IP-ove i interne hostname-ove
- Timeout — vanjski API pozivi imaju 5-sekundni timeout kako bi se spriječilo visenje
- OAuth2 keširanje tokena — access tokeni se sigurno keširaju i automatski osvježavaju
- Izolacija tenanta — veze su ograničene na vaš tenant, nedostupne drugima
Spremni da povežete svoje API-je?
Počnite integrisati svoje sisteme sa enuchatom već danas.
Započnite besplatno