API Connections
Verbind uw externe API's met enuchat zodat AI en regels realtime data uit uw systemen kunnen ophalen.
Hoe het werkt
API Connections laten u enuchat integreren met uw eigen backendsystemen — boekingsengines, CRM's, orderbeheer, voorraad en meer. Wanneer een bezoeker een vraag stelt, kan enuchat uw API aanroepen om echte data op te halen en deze in het antwoord op te nemen.
Het proces
- Configureer een verbinding — de basis-URL en authenticatie van uw API
- Voeg endpoints toe — specifieke API-aanroepen met padsjablonen en response-mapping
- Maak een regel — een AI- of statische regel met een CALL_API-actie
- Bezoeker stelt een vraag — de regel wordt geactiveerd, roept uw API aan, mapt het antwoord naar sessievariabelen
- AI antwoordt met echte data — de sessievariabelen zijn beschikbaar voor AI om een nauwkeurig antwoord te genereren
Voorbeeld: hotelkamerbeschikbaarheid
Bezoeker: "Is kamer 205 volgende week beschikbaar?"
AI-regel matcht: "Wanneer bezoeker vraagt naar kamerbeschikbaarheid"
CALL_API-actie: GET https://api.hotel.com/rooms/205/availability
Response gemapt: room_available = true, price = "€120/nacht"
AI antwoordt: "Kamer 205 is volgende week beschikbaar voor €120/nacht. Wilt u deze boeken?"
Een verbinding instellen
Ga naar Instellingen → API Connections in uw dashboard.
1. Maak een verbinding
Een verbinding vertegenwoordigt één externe API. U heeft nodig:
| Veld | Beschrijving | Voorbeeld |
|---|---|---|
| Naam | Een label voor deze verbinding | Hotel Booking API |
| Basis-URL | De root-URL van de API | https://api.hotel.com/v1 |
| Auth-type | Hoe te authenticeren | Bearer Token, OAuth2, enz. |
2. Authenticatietypen
Geen
Voor openbare API's die geen authenticatie vereisen.
API Key
Stuurt een statische sleutel als header of queryparameter.
| Veld | Beschrijving |
|---|---|
| Sleutel | Uw API-sleutelwaarde |
| Header-naam | Te gebruiken header (standaard: X-Api-Key) |
De sleutel wordt verstuurd als: X-Api-Key: your_key_here
Bearer Token
Stuurt een statisch token in de Authorization-header.
Verstuurd als: Authorization: Bearer your_token_here
Basic Auth
Stuurt gebruikersnaam en wachtwoord, base64-gecodeerd.
Verstuurd als: Authorization: Basic dXNlcjpwYXNz
OAuth 2.0 (Client Credentials)
Haalt automatisch een toegangstoken op en cached dit tot vervaldatum. Het beste voor moderne API's zoals Salesforce, Google of aangepaste OAuth-servers.
| Veld | Beschrijving |
|---|---|
| Token-URL | OAuth token-endpoint (bijv. https://auth.example.com/oauth/token) |
| Client ID | Uw OAuth client-ID |
| Client Secret | Uw OAuth client secret |
| Scope | Door spaties gescheiden scopes (bijv. read write) |
enuchat regelt de tokenlevenscyclus automatisch — haalt op bij de eerste aanroep, cached tot vervaldatum, vernieuwt wanneer nodig.
Beveiliging: Alle inloggegevens worden versleuteld opgeslagen met libsodium. Ze worden nooit in API-responses getoond — alleen gemaskeerde waarden zijn zichtbaar in het dashboard.
Endpoints configureren
Elke verbinding kan meerdere endpoints hebben — specifieke API-aanroepen die u wilt doen.
| Veld | Beschrijving | Voorbeeld |
|---|---|---|
| Naam | Label voor dit endpoint | Beschikbaarheid controleren |
| Methode | HTTP-methode | GET, POST, PUT, DELETE |
| Pad | URL-pad (toegevoegd aan basis-URL). Gebruik {'{'}variable} voor dynamische waarden | /rooms/{'{'}roomId}/availability |
| Queryparameters | URL-parameters als sleutel-waardeparen. Waarden ondersteunen {'{'}variable} | date={'{'}checkIn} |
| Body-sjabloon | JSON-body voor POST/PUT. Ondersteunt {'{'}variable}-interpolatie | {'{'}"guest": "{'{'}name}"} |
| Response-mapping | Map JSON-responsevelden naar sessievariabelen met puntnotatie | data.available → room_available |
| Beschrijving | Context voor AI (welke data dit endpoint retourneert) | Retourneert kamerbeschikbaarheid en prijzen |
Variabele-interpolatie
Gebruik {'{'}variableName} in paden, queryparameters en body-sjablonen. Variabelen komen van:
- Sessievariabelen — ingesteld door eerdere regels (SET_VARIABLE-actie)
- Actieparameters — hardgecodeerd in de CALL_API-regelactie
Response-mapping
Map JSON-responsevelden naar sessievariabelen met puntnotatie:
// 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"Gemapte variabelen worden opgeslagen als sessievariabelen op het gesprek en zijn beschikbaar voor AI om antwoorden te genereren.
Gebruik met regels
API-aanroepen worden geactiveerd door de CALL_API-actie in regels. U kunt ze combineren met andere acties.
Recept: bestelstatus opzoeken
Verbinding: Orderbeheer API — https://api.shop.com/v2 — Bearer Token
Endpoint: GET /orders/{'{'}orderId} → mapt data.status → order_status, data.eta → delivery_eta
Regel (AI-type): "Wanneer de bezoeker vraagt naar hun bestelstatus of levering"
Acties:
- CALL_API → Bestelstatus-endpoint
- REPLY_AI → AI gebruikt
order_statusendelivery_etaom te antwoorden
Resultaat: Bezoeker: "Waar is mijn bestelling #4521?" — AI: "Uw bestelling #4521 wordt momenteel verzonden en zou donderdag moeten aankomen."
Recept: realtime prijzen
Verbinding: Prijs-API — https://pricing.example.com — API Key
Endpoint: GET /products/{'{'}productId}/price → mapt price → current_price, currency → price_currency
Regel (statisch): MESSAGE_MATCHES_REGEX: /\b(price|cost|how much)\b/i
Acties:
- CALL_API → Prijs-endpoint
- REPLY_TEXT → "De huidige prijs is {'{'}current_price} {'{'}price_currency}."
Testen
Test altijd uw verbindingen en endpoints voordat u ze in regels gebruikt:
- Test verbinding — controleert of authenticatie werkt (voor OAuth2: haalt een token op)
- Test endpoint — doet een echte API-aanroep met voorbeeldvariabelen en toont het antwoord
- Test regel (dry-run) — op de pagina Regels kunt u testen of een regel zou matchen en welke acties er zouden worden uitgevoerd
Tip: Begin met het testen van de verbinding, dan elk endpoint, dan de volledige regel. Zo kunt u problemen op elk niveau isoleren.
Beveiliging
- Versleuteling in rust — alle inloggegevens worden versleuteld met libsodium vóór opslag
- Nooit zichtbaar — API-responses bevatten nooit ontsleutelde inloggegevens, alleen gemaskeerde waarden
- SSRF-bescherming — enuchat blokkeert aanroepen naar localhost, privé-IP's en interne hostnamen
- Timeout — externe API-aanroepen hebben een timeout van 5 seconden om vastlopen te voorkomen
- OAuth2-tokencaching — toegangstokens worden veilig gecached en automatisch vernieuwd
- Tenant-isolatie — verbindingen zijn beperkt tot uw tenant, ontoegankelijk voor anderen
Klaar om uw API's te verbinden?
Begin vandaag nog met het integreren van uw systemen met enuchat.
Gratis aan de slag