API propojení
Propojte své externí API s enuchat, aby AI a pravidla mohly načítat data v reálném čase z vašich systémů.
Jak to funguje
API propojení vám umožňují integrovat enuchat s vašimi vlastními backendovými systémy — rezervačními enginy, CRM, správou objednávek, inventářem a dalšími. Když se návštěvník na něco zeptá, enuchat může zavolat vaše API pro získání skutečných dat a zahrnout je do odpovědi.
Průběh
- Nakonfigurujte propojení — základní URL a autentizaci vašeho API
- Přidejte endpointy — konkrétní API volání s šablonami cest a mapováním odpovědí
- Vytvořte pravidlo — AI nebo statické pravidlo s akcí CALL_API
- Návštěvník položí otázku — pravidlo se spustí, zavolá vaše API, namapuje odpověď na session proměnné
- AI odpoví se skutečnými daty — session proměnné jsou dostupné AI pro generování přesné odpovědi
Příklad: Dostupnost hotelového pokoje
Návštěvník: "Je pokoj 205 volný příští týden?"
AI pravidlo odpovídá: "Když se návštěvník ptá na dostupnost pokoje"
Akce CALL_API: GET https://api.hotel.com/rooms/205/availability
Mapování odpovědi: room_available = true, price = "€120/noc"
AI odpoví: "Pokoj 205 je příští týden volný za €120/noc. Přejete si rezervovat?"
Nastavení propojení
Přejděte do Nastavení → API propojení v panelu.
1. Vytvořte propojení
Propojení reprezentuje jedno externí API. Potřebujete:
| Pole | Popis | Příklad |
|---|---|---|
| Název | Štítek pro toto propojení | Hotel Booking API |
| Základní URL | Kořenová URL API | https://api.hotel.com/v1 |
| Typ autentizace | Způsob autentizace | Bearer Token, OAuth2 atd. |
2. Typy autentizace
None
Pro veřejné API, které nevyžadují autentizaci.
API Key
Odesílá statický klíč jako hlavičku nebo query parametr.
| Pole | Popis |
|---|---|
| Key | Hodnota vašeho API klíče |
| Header Name | Hlavička k použití (výchozí: X-Api-Key) |
Klíč se odesílá jako: X-Api-Key: your_key_here
Bearer Token
Odesílá statický token v hlavičce Authorization.
Odesílá se jako: Authorization: Bearer your_token_here
Basic Auth
Odesílá uživatelské jméno a heslo, base64 kódované.
Odesílá se jako: Authorization: Basic dXNlcjpwYXNz
OAuth 2.0 (Client Credentials)
Automaticky načte přístupový token a cachuje ho do vypršení platnosti. Ideální pro moderní API jako Salesforce, Google nebo vlastní OAuth servery.
| Pole | Popis |
|---|---|
| Token URL | OAuth token endpoint (např. https://auth.example.com/oauth/token) |
| Client ID | Vaše OAuth client ID |
| Client Secret | Váš OAuth client secret |
| Scope | Scope oddělené mezerami (např. read write) |
enuchat životní cyklus tokenů spravuje automaticky — načte při prvním volání, cachuje do vypršení, obnoví při potřebě.
Bezpečnost: Všechny přihlašovací údaje jsou šifrovány v klidu pomocí libsodium. Nikdy nejsou vystaveny v API odpovědích — v panelu se zobrazují pouze maskované hodnoty.
Konfigurace endpointů
Každé propojení může mít více endpointů — konkrétních API volání, která chcete provádět.
| Pole | Popis | Příklad |
|---|---|---|
| Název | Štítek pro tento endpoint | Zkontrolovat dostupnost |
| Metoda | HTTP metoda | GET, POST, PUT, DELETE |
| Cesta | URL cesta (připojena k základní URL). Použijte {'{'}variable} pro dynamické hodnoty | /rooms/{'{'}roomId}/availability |
| Query parametry | URL parametry jako páry klíč-hodnota. Hodnoty podporují {'{'}variable} | date={'{'}checkIn} |
| Šablona těla | JSON tělo pro POST/PUT. Podporuje interpolaci {'{'}variable} | {'{'}"guest": "{'{'}name}"} |
| Mapování odpovědi | Mapování polí JSON odpovědi na session proměnné pomocí tečkové notace | data.available → room_available |
| Popis | Kontext pro AI (jaká data tento endpoint vrací) | Vrací dostupnost pokoje a cenu |
Interpolace proměnných
Použijte {'{'}variableName} v cestách, query parametrech a šablonách těla. Proměnné pocházejí z:
- Session proměnných — nastavených předchozími pravidly (akce SET_VARIABLE)
- Parametrů akce — pevně zakódovaných v akci CALL_API pravidla
Mapování odpovědi
Mapujte pole JSON odpovědi na session proměnné pomocí tečkové notace:
// 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"Namapované proměnné jsou uloženy jako session proměnné na konverzaci a jsou dostupné AI pro generování odpovědí.
Použití s pravidly
API volání se spouštějí akcí CALL_API v pravidlech. Můžete je kombinovat s dalšími akcemi.
Recept: Vyhledání stavu objednávky
Propojení: Order Management API — https://api.shop.com/v2 — Bearer Token
Endpoint: GET /orders/{'{'}orderId} → mapuje data.status → order_status, data.eta → delivery_eta
Pravidlo (AI typ): "Když se návštěvník ptá na stav objednávky nebo doručení"
Akce:
- CALL_API → endpoint stavu objednávky
- REPLY_AI → AI použije
order_statusadelivery_etapro odpověď
Výsledek: Návštěvník: "Kde je moje objednávka #4521?" — AI: "Vaše objednávka #4521 je aktuálně odeslaná a měla by dorazit do čtvrtka."
Recept: Ceny v reálném čase
Propojení: Pricing API — https://pricing.example.com — API Key
Endpoint: GET /products/{'{'}productId}/price → mapuje price → current_price, currency → price_currency
Pravidlo (statické): MESSAGE_MATCHES_REGEX: /\b(price|cost|how much)\b/i
Akce:
- CALL_API → endpoint cen
- REPLY_TEXT → "Aktuální cena je {'{'}current_price} {'{'}price_currency}."
Testování
Vždy otestujte svá propojení a endpointy před použitím v pravidlech:
- Test propojení — ověří, že autentizace funguje (pro OAuth2: načte token)
- Test endpointu — provede skutečné API volání se vzorovými proměnnými a zobrazí odpověď
- Test pravidla (dry-run) — na stránce Pravidla otestujte, zda by pravidlo odpovídalo a jaké akce by se provedly
Tip: Začněte testováním propojení, pak každého endpointu, poté kompletního pravidla. Takto můžete izolovat problémy na každé úrovni.
Bezpečnost
- Šifrování v klidu — všechny přihlašovací údaje jsou šifrovány pomocí libsodium před uložením
- Nikdy nevystaveny — API odpovědi nikdy neobsahují dešifrované přihlašovací údaje, pouze maskované hodnoty
- SSRF ochrana — enuchat blokuje volání na localhost, privátní IP a interní hostnames
- Timeout — externí API volání mají 5sekundový timeout pro zabránění zamrznutí
- OAuth2 caching tokenů — přístupové tokeny jsou bezpečně cachovány a automaticky obnovovány
- Izolace tenantů — propojení jsou omezena na vašeho tenanta, nepřístupná ostatním