API Connections
Ikonekta ang inyong mga panlabas na API sa enuchat kaya ang AI at mga rule ay maaaring kumuha ng real-time na data mula sa inyong mga sistema.
Paano Gumagana
Ang API Connections ay nagpapahintulot sa inyo na i-integrate ang enuchat sa inyong sariling mga backend system — booking engines, CRMs, order management, inventory, at higit pa. Kapag nagtatanong ang isang bisita, maaaring tawagan ng enuchat ang inyong API upang makakuha ng totoong data at isama ito sa tugon.
Ang Daloy
- I-configure ang koneksyon — base URL at authentication ng inyong API
- Magdagdag ng mga endpoint — mga partikular na API call na may path templates at response mapping
- Gumawa ng rule — AI o static rule na may CALL_API action
- Magtatanong ang bisita — nag-trigger ang rule, tumatawag sa inyong API, nagma-map ng tugon sa session variables
- Sumasagot ang AI na may totoong data — ang session variables ay available sa AI para sa pagbuo ng tumpak na sagot
Halimbawa: Availability ng Kwarto ng Hotel
Bisita: "May available ba ang kwarto 205 sa susunod na linggo?"
Nagma-match ang AI Rule: "Kapag nagtatanong ang bisita tungkol sa availability ng kwarto"
CALL_API action: GET https://api.hotel.com/rooms/205/availability
Response mapped: room_available = true, price = "€120/gabi"
Sumasagot ang AI: "Ang kwarto 205 ay available sa susunod na linggo sa €120/gabi. Gusto ba ninyong i-book ito?"
Pag-set Up ng Koneksyon
Pumunta sa Settings → API Connections sa inyong dashboard.
1. Gumawa ng Koneksyon
Ang koneksyon ay kumakatawan sa isang panlabas na API. Kailangan ninyo ng:
| Field | Paglalarawan | Halimbawa |
|---|---|---|
| Pangalan | Isang label para sa koneksyong ito | Hotel Booking API |
| Base URL | Ang root URL ng API | https://api.hotel.com/v1 |
| Auth Type | Kung paano mag-authenticate | Bearer Token, OAuth2, atbp. |
2. Mga Uri ng Authentication
Wala
Para sa mga pampublikong API na hindi nangangailangan ng authentication.
API Key
Nagpapadala ng static key bilang header o query parameter.
| Field | Paglalarawan |
|---|---|
| Key | Ang value ng inyong API key |
| Header Name | Header na gagamitin (default: X-Api-Key) |
Ang key ay ipinapadala bilang: X-Api-Key: your_key_here
Bearer Token
Nagpapadala ng static token sa Authorization header.
Ipinapadala bilang: Authorization: Bearer your_token_here
Basic Auth
Nagpapadala ng username at password, naka-base64-encode.
Ipinapadala bilang: Authorization: Basic dXNlcjpwYXNz
OAuth 2.0 (Client Credentials)
Awtomatikong kumukuha ng access token at kina-cache ito hanggang sa pag-expire. Pinakamahusay para sa mga modernong API tulad ng Salesforce, Google, o mga custom OAuth server.
| Field | Paglalarawan |
|---|---|
| Token URL | OAuth token endpoint (hal. https://auth.example.com/oauth/token) |
| Client ID | Ang inyong OAuth client ID |
| Client Secret | Ang inyong OAuth client secret |
| Scope | Mga scope na pinaghihiwalay ng space (hal. read write) |
Awtomatikong hinahawakan ng enuchat ang token lifecycle — kumukuha sa unang tawag, kina-cache hanggang sa pag-expire, nire-refresh kapag kinakailangan.
Seguridad: Ang lahat ng credentials ay naka-encrypt at rest gamit ang libsodium. Hindi ito kailanman na-expose sa mga API response — masked values lamang ang ipinapakita sa dashboard.
Pag-configure ng mga Endpoint
Ang bawat koneksyon ay maaaring magkaroon ng maraming endpoint — mga partikular na API call na gusto ninyong gawin.
| Field | Paglalarawan | Halimbawa |
|---|---|---|
| Pangalan | Label para sa endpoint na ito | Suriin ang availability |
| Method | HTTP method | GET, POST, PUT, DELETE |
| Path | URL path (idinagdag sa base URL). Gamitin ang {'{'}variable} para sa mga dynamic value | /rooms/{'{'}roomId}/availability |
| Query Params | URL parameter bilang mga key-value pair. Sinusuportahan ng mga value ang {'{'}variable} | date={'{'}checkIn} |
| Body Template | JSON body para sa POST/PUT. Sinusuportahan ang {'{'}variable} interpolation | {'{'}"guest": "{'{'}name}"} |
| Response Mapping | I-map ang mga JSON response field sa session variables gamit ang dot notation | data.available → room_available |
| Paglalarawan | Konteksto para sa AI (kung anong data ang ibinabalik ng endpoint na ito) | Nagbabalik ng room availability at pricing |
Variable Interpolation
Gamitin ang {'{'}variableName} sa mga path, query params, at body template. Nagmumula ang mga variable sa:
- Session variables — na-set ng mga nakaraang rule (SET_VARIABLE action)
- Action params — naka-hardcode sa CALL_API rule action
Response Mapping
I-map ang mga JSON response field sa session variables gamit ang dot notation:
// Nagbabalik ang API ng:
{'{'}
"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"Ang mga naka-map na variable ay nakaimbak bilang session variables sa usapan at available sa AI para sa pagbuo ng mga tugon.
Paggamit sa mga Rule
Ang mga tawag sa API ay na-trigger ng CALL_API action sa mga rule. Maaari ninyong pagsamahin ang mga ito sa iba pang aksyon.
Recipe: Order Status Lookup
Koneksyon: Order Management API — https://api.shop.com/v2 — Bearer Token
Endpoint: GET /orders/{'{'}orderId} → nagma-map ng data.status → order_status, data.eta → delivery_eta
Rule (uri ng AI): "Kapag nagtatanong ang bisita tungkol sa katayuan ng kanilang order o delivery"
Mga Aksyon:
- CALL_API → Order Status endpoint
- REPLY_AI → Gumagamit ang AI ng
order_statusatdelivery_etaupang sumagot
Resulta: Bisita: "Nasaan ang order ko #4521?" — AI: "Ang inyong order #4521 ay kasalukuyang ipinadadala at dapat dumating pagsapit ng Huwebes."
Recipe: Real-Time Pricing
Koneksyon: Pricing API — https://pricing.example.com — API Key
Endpoint: GET /products/{'{'}productId}/price → nagma-map ng price → current_price, currency → price_currency
Rule (static): MESSAGE_MATCHES_REGEX: /\b(price|cost|how much)\b/i
Mga Aksyon:
- CALL_API → Pricing endpoint
- REPLY_TEXT → "Ang kasalukuyang presyo ay {'{'}current_price} {'{'}price_currency}."
Pagsubok
Palaging subukin ang inyong mga koneksyon at endpoint bago gamitin ang mga ito sa mga rule:
- Test Connection — bina-verify kung gumagana ang authentication (para sa OAuth2: kumukuha ng token)
- Test Endpoint — gumagawa ng totoong API call gamit ang mga sample variable at ipinapakita ang tugon
- Test Rule (dry-run) — sa Rules page, subukan kung magma-match ang isang rule at kung anong mga aksyon ang magsasagawa
Tip: Magsimula sa pagsubok sa koneksyon, pagkatapos bawat endpoint, pagkatapos ang kumpletong rule. Sa ganitong paraan, maaaring ihiwalay ninyo ang mga isyu sa bawat antas.
Seguridad
- Encryption at rest — ang lahat ng credentials ay naka-encrypt gamit ang libsodium bago storage
- Hindi kailanman na-expose — ang mga API response ay hindi kailanman may kasamang decrypted credentials, masked values lamang
- SSRF protection — hinaharang ng enuchat ang mga tawag sa localhost, mga private IP, at mga internal hostname
- Timeout — ang mga panlabas na API call ay may 5-segundong timeout upang pigilan ang pagka-hang
- OAuth2 token caching — ang mga access token ay secure na naka-cache at awtomatikong nire-refresh
- Tenant isolation — ang mga koneksyon ay naka-scope sa inyong tenant, hindi naa-access ng iba
Handa na bang ikonekta ang inyong mga API?
Simulan ang pag-integrate ng inyong mga sistema sa enuchat ngayon.
Magsimula nang Libre