API-anslutningar
Anslut dina externa API:er till enuchat så att AI och regler kan hämta realtidsdata från dina system.
Så fungerar det
API-anslutningar låter dig integrera enuchat med dina egna backend-system — bokningsmotorer, CRM, orderhantering, lager och mer. När en besökare ställer en fråga kan enuchat anropa ditt API för att få verkliga data och inkludera dem i svaret.
Flödet
- Konfigurera en anslutning — ditt API:s bas-URL och autentisering
- Lägg till endpoints — specifika API-anrop med sökvägsmallar och svarsmappning
- Skapa en regel — en AI eller statisk regel med en CALL_API-åtgärd
- Besökare ställer en fråga — regeln utlöses, anropar ditt API, mappar svaret till sessionsvariabler
- AI svarar med verkliga data — sessionsvariablerna är tillgängliga för AI att generera ett korrekt svar
Exempel: Hotellrumstillgänglighet
Besökare: „Är rum 205 tillgängligt nästa vecka?"
AI-regel matchar: „När besökare frågar om rumstillgänglighet"
CALL_API-åtgärd: GET https://api.hotel.com/rooms/205/availability
Svar mappat: room_available = true, price = „120 €/natt"
AI svarar: „Rum 205 är tillgängligt nästa vecka för 120 €/natt. Vill du boka det?"
Sätta upp en anslutning
Gå till Inställningar → API-anslutningar i din panel.
1. Skapa en anslutning
En anslutning representerar ett externt API. Du behöver:
| Fält | Beskrivning | Exempel |
|---|---|---|
| Namn | En etikett för denna anslutning | Hotellbokning-API |
| Bas-URL | API:ets rot-URL | https://api.hotel.com/v1 |
| Auth-typ | Hur man autentiserar | Bearer Token, OAuth2, etc. |
2. Autentiseringstyper
Ingen
För offentliga API:er som inte kräver autentisering.
API-nyckel
Skickar en statisk nyckel som en header eller query-parameter.
| Fält | Beskrivning |
|---|---|
| Nyckel | Ditt API-nyckelvärde |
| Headernamn | Header att använda (standard: X-Api-Key) |
Nyckeln skickas som: X-Api-Key: your_key_here
Bearer Token
Skickar en statisk token i Authorization-headern.
Skickas som: Authorization: Bearer your_token_here
Basic Auth
Skickar användarnamn och lösenord, base64-kodade.
Skickas som: Authorization: Basic dXNlcjpwYXNz
OAuth 2.0 (Client Credentials)
Hämtar en åtkomsttoken automatiskt och cachar den tills den går ut. Bäst för moderna API:er som Salesforce, Google eller anpassade OAuth-servrar.
| Fält | Beskrivning |
|---|---|
| Token-URL | OAuth-token-endpoint (t.ex. https://auth.example.com/oauth/token) |
| Client ID | Ditt OAuth-klient-ID |
| Client Secret | Din OAuth-klienthemlighet |
| Scope | Mellanslagsseparerade scopes (t.ex. read write) |
enuchat hanterar tokenlivscykeln automatiskt — hämtar vid första anropet, cachar tills den går ut, uppdaterar vid behov.
Säkerhet: Alla inloggningsuppgifter krypteras i vila med libsodium. De exponeras aldrig i API-svar — bara maskerade värden visas i panelen.
Konfigurera endpoints
Varje anslutning kan ha flera endpoints — specifika API-anrop du vill göra.
| Fält | Beskrivning | Exempel |
|---|---|---|
| Namn | Etikett för denna endpoint | Kontrollera tillgänglighet |
| Metod | HTTP-metod | GET, POST, PUT, DELETE |
| Sökväg | URL-sökväg (läggs till bas-URL). Använd {'{'}variable} för dynamiska värden | /rooms/{'{'}roomId}/availability |
| Query-params | URL-parametrar som nyckel-värde-par. Värden stöder {'{'}variable} | date={'{'}checkIn} |
| Body-mall | JSON-kropp för POST/PUT. Stöder {'{'}variable}-interpolation | {'{'}"guest": "{'{'}name}"} |
| Svarsmappning | Mappa JSON-svarsfält till sessionsvariabler med punktnotation | data.available → room_available |
| Beskrivning | Kontext för AI (vilken data denna endpoint returnerar) | Returnerar rumstillgänglighet och priser |
Variabelinterpolation
Använd {'{'}variableName} i sökvägar, query-parametrar och body-mallar. Variabler kommer från:
- Sessionsvariabler — satta av tidigare regler (SET_VARIABLE-åtgärd)
- Åtgärdsparametrar — hårdkodade i CALL_API-regeln
Svarsmappning
Mappa JSON-svarsfält till sessionsvariabler med punktnotation:
// API returnerar:
{'{'}
"data": {'{'}
"available": true,
"price": {'{'} "amount": 120, "currency": "EUR" }
}
}
// Mappning:
data.available → room_available // "true"
data.price.amount → room_price // "120"
data.price.currency → room_currency // "EUR"Mappade variabler lagras som sessionsvariabler i konversationen och är tillgängliga för AI att generera svar.
Användning med regler
API-anrop utlöses av CALL_API-åtgärden i regler. Du kan kombinera dem med andra åtgärder.
Recept: Orderstatusuppslagning
Anslutning: Orderhanterings-API — https://api.shop.com/v2 — Bearer Token
Endpoint: GET /orders/{'{'}orderId} → mappar data.status → order_status, data.eta → delivery_eta
Regel (AI-typ): „När besökaren frågar om sin orderstatus eller leverans"
Åtgärder:
- CALL_API → Orderstatus-endpoint
- REPLY_AI → AI använder
order_statusochdelivery_etaför att svara
Resultat: Besökare: „Var är min order #4521?" — AI: „Din order #4521 skickas för tillfället och bör anlända senast torsdag."
Recept: Realtidspriser
Anslutning: Pris-API — https://pricing.example.com — API-nyckel
Endpoint: GET /products/{'{'}productId}/price → mappar price → current_price, currency → price_currency
Regel (statisk): MESSAGE_MATCHES_REGEX: /\b(price|cost|how much)\b/i
Åtgärder:
- CALL_API → Pris-endpoint
- REPLY_TEXT → „Det aktuella priset är {'{'}current_price} {'{'}price_currency}."
Testning
Testa alltid dina anslutningar och endpoints innan du använder dem i regler:
- Testa anslutning — verifierar att autentisering fungerar (för OAuth2: hämtar en token)
- Testa endpoint — gör ett verkligt API-anrop med exempelvariabler och visar svaret
- Testa regel (dry-run) — på Regler-sidan, testa om en regel skulle matcha och vilka åtgärder som skulle utföras
Tips: Börja med att testa anslutningen, sedan varje endpoint, sedan hela regeln. På så sätt kan du isolera problem på varje nivå.
Säkerhet
- Kryptering i vila — alla inloggningsuppgifter krypteras med libsodium före lagring
- Aldrig exponerade — API-svar inkluderar aldrig dekrypterade inloggningsuppgifter, bara maskerade värden
- SSRF-skydd — enuchat blockerar anrop till localhost, privata IP:n och interna värdnamn
- Timeout — externa API-anrop har en 5-sekunders timeout för att förhindra hängning
- OAuth2-tokencaching — åtkomsttokens cachas säkert och uppdateras automatiskt
- Tenant-isolering — anslutningar är begränsade till din tenant, otillgängliga för andra