API-forbindelser
Forbind dine eksterne API'er til enuchat, så AI og regler kan hente realtidsdata fra dine systemer.
Sådan fungerer det
API-forbindelser lader dig integrere enuchat med dine egne backend-systemer — bookingmotorer, CRM'er, ordrestyring, lager og mere. Når en besøgende stiller et spørgsmål, kan enuchat kalde dit API for at få rigtige data og inkludere dem i svaret.
Flowet
- Konfigurér en forbindelse — dit API's basis-URL og autentificering
- Tilføj endpoints — specifikke API-kald med stiskabeloner og svarafbildning
- Opret en regel — en AI- eller statisk regel med en CALL_API-handling
- Besøgende stiller et spørgsmål — reglen udløses, kalder dit API, afbilder svaret til sessionsvariabler
- AI svarer med rigtige data — sessionsvariablerne er tilgængelige for AI til at generere et nøjagtigt svar
Eksempel: Hotelværelsestilgængelighed
Besøgende: „Er værelse 205 ledigt næste uge?“
AI-reglen matcher: „Når besøgende spørger om værelsestilgængelighed“
CALL_API-handling: GET https://api.hotel.com/rooms/205/availability
Svar afbildet: room_available = true, price = „120€/nat“
AI svarer: „Værelse 205 er ledigt næste uge for 120€/nat. Vil du booke det?“
Opsætning af en forbindelse
Gå til Indstillinger → API-forbindelser i dit dashboard.
1. Opret en forbindelse
En forbindelse repræsenterer ét eksternt API. Du har brug for:
| Felt | Beskrivelse | Eksempel |
|---|---|---|
| Navn | En etiket for denne forbindelse | Hotel Booking API |
| Basis-URL | API'ets rod-URL | https://api.hotel.com/v1 |
| Auth-type | Hvordan man autentificerer | Bearer Token, OAuth2, osv. |
2. Autentificeringstyper
Ingen
Til offentlige API'er, der ikke kræver autentificering.
API-nøgle
Sender en statisk nøgle som en header eller forespørgselsparameter.
| Felt | Beskrivelse |
|---|---|
| Nøgle | Din API-nøgleværdi |
| Headernavn | Header at bruge (standard: X-Api-Key) |
Nøglen sendes som: X-Api-Key: your_key_here
Bearer Token
Sender et statisk token i Authorization-headeren.
Sendt som: Authorization: Bearer your_token_here
Basic Auth
Sender brugernavn og adgangskode, base64-kodet.
Sendt som: Authorization: Basic dXNlcjpwYXNz
OAuth 2.0 (Client Credentials)
Henter et access token automatisk og cacherer det indtil udløb. Bedst til moderne API'er som Salesforce, Google eller brugerdefinerede OAuth-servere.
| Felt | Beskrivelse |
|---|---|
| Token URL | OAuth token endpoint (f.eks. https://auth.example.com/oauth/token) |
| Client ID | Dit OAuth client ID |
| Client Secret | Din OAuth client secret |
| Scope | Mellemrumsadskilte scopes (f.eks. read write) |
enuchat håndterer token-livscyklussen automatisk — henter ved første kald, cacherer indtil udløb, fornyer efter behov.
Sikkerhed: Alle legitimationsoplysninger krypteres i hvile ved hjælp af libsodium. De eksponeres aldrig i API-svar — kun maskerede værdier vises i dashboardet.
Konfiguration af endpoints
Hver forbindelse kan have flere endpoints — specifikke API-kald, du vil foretage.
| Felt | Beskrivelse | Eksempel |
|---|---|---|
| Navn | Etiket for dette endpoint | Tjek tilgængelighed |
| Metode | HTTP-metode | GET, POST, PUT, DELETE |
| Sti | URL-sti (tilføjet til basis-URL). Brug {'{'}variable} til dynamiske værdier | /rooms/{'{'}roomId}/availability |
| Forespørgselsparametre | URL-parametre som nøgle-værdi-par. Værdier understøtter {'{'}variable} | date={'{'}checkIn} |
| Body-skabelon | JSON-krop til POST/PUT. Understøtter {'{'}variable} interpolation | {'{'}"guest": "{'{'}name}"} |
| Svarafbildning | Afbild JSON-svarfelter til sessionsvariabler ved hjælp af punktnotation | data.available → room_available |
| Beskrivelse | Kontekst for AI (hvilke data dette endpoint returnerer) | Returnerer værelsestilgængelighed og priser |
Variabelinterpolation
Brug {'{'}variableName} i stier, forespørgselsparametre og body-skabeloner. Variabler kommer fra:
- Sessionsvariabler — sat af tidligere regler (SET_VARIABLE-handling)
- Handlingsparametre — hardkodet i CALL_API-regelhandlingen
Svarafbildning
Afbild JSON-svarfelter til sessionsvariabler ved hjælp af punktnotation:
// 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"Afbildede variabler gemmes som sessionsvariabler på samtalen og er tilgængelige for AI til at generere svar.
Brug med regler
API-kald udløses af CALL_API-handlingen i regler. Du kan kombinere dem med andre handlinger.
Opskrift: Ordre status opslag
Forbindelse: Order Management API — https://api.shop.com/v2 — Bearer Token
Endpoint: GET /orders/{'{'}orderId} → afbilder data.status → order_status, data.eta → delivery_eta
Regel (AI-type): „Når besøgende spørger om deres ordrestatus eller levering“
Handlinger:
- CALL_API → Ordrestatus endpoint
- REPLY_AI → AI bruger
order_statusogdelivery_etatil at svare
Resultat: Besøgende: „Hvor er min ordre #4521?“ — AI: „Din ordre #4521 sendes i øjeblikket og bør ankomme senest torsdag.“
Opskrift: Realtidspriser
Forbindelse: Pricing API — https://pricing.example.com — API-nøgle
Endpoint: GET /products/{'{'}productId}/price → afbilder price → current_price, currency → price_currency
Regel (statisk): MESSAGE_MATCHES_REGEX: /\b(price|cost|how much)\b/i
Handlinger:
- CALL_API → Prissætnings endpoint
- REPLY_TEXT → „Den nuværende pris er {'{'}current_price} {'{'}price_currency}.“
Test
Test altid dine forbindelser og endpoints, før du bruger dem i regler:
- Test forbindelse — verificerer at autentificering fungerer (for OAuth2: henter et token)
- Test endpoint — foretager et rigtigt API-kald med prøvevariabler og viser svaret
- Test regel (dry-run) — på Regler-siden, test om en regel ville matche, og hvilke handlinger der ville udføres
Tip: Start med at teste forbindelsen, derefter hvert endpoint, derefter den komplette regel. På den måde kan du isolere problemer på hvert niveau.
Sikkerhed
- Kryptering i hvile — alle legitimationsoplysninger krypteres ved hjælp af libsodium før lagring
- Aldrig eksponeret — API-svar inkluderer aldrig dekrypterede legitimationsoplysninger, kun maskerede værdier
- SSRF-beskyttelse — enuchat blokerer kald til localhost, private IP'er og interne værtsnavne
- Timeout — eksterne API-kald har en 5-sekunders timeout for at forhindre hængninger
- OAuth2 token caching — access tokens caches sikkert og fornyes automatisk
- Tenant-isolation — forbindelser er afgrænset til din tenant, utilgængelige for andre
Klar til at forbinde dine API'er?
Begynd at integrere dine systemer med enuchat i dag.
Kom i gang gratis