חיבורי API
חברו את ה-API החיצוניים שלכם ל-enuchat כדי ש-AI וכללים יוכלו לשלוף נתונים בזמן אמת מהמערכות שלכם.
איך זה עובד
חיבורי API מאפשרים לכם לשלב את enuchat עם מערכות ה-backend שלכם — מנועי הזמנות, CRM-ים, ניהול הזמנות, מלאי ועוד. כאשר מבקר שואל שאלה, enuchat יכול לקרוא ל-API שלכם כדי לקבל נתונים אמיתיים ולכלול אותם בתגובה.
הזרימה
- הגדירו חיבור — כתובת URL בסיסית של ה-API ואימות
- הוסיפו endpoints — קריאות API ספציפיות עם תבניות נתיב ומיפוי תגובה
- צרו כלל — כלל AI או סטטי עם פעולת CALL_API
- מבקר שואל שאלה — הכלל מופעל, קורא ל-API, ממפה את התגובה למשתני סשן
- AI עונה עם נתונים אמיתיים — משתני הסשן זמינים ל-AI ליצירת תשובה מדויקת
דוגמה: זמינות חדר מלון
מבקר: "האם חדר 205 פנוי בשבוע הבא?"
כלל AI מתאים: "כאשר מבקר שואל על זמינות חדרים"
פעולת CALL_API: GET https://api.hotel.com/rooms/205/availability
תגובה ממופה: room_available = true, price = "€120/לילה"
AI עונה: "חדר 205 פנוי בשבוע הבא ב-€120/לילה. האם תרצו להזמין?"
הגדרת חיבור
עברו ל-הגדרות → חיבורי API בלוח הבקרה.
1. צרו חיבור
חיבור מייצג API חיצוני אחד. אתם צריכים:
| שדה | תיאור | דוגמה |
|---|---|---|
| שם | תווית לחיבור זה | Hotel Booking API |
| כתובת URL בסיסית | כתובת URL שורשית של ה-API | https://api.hotel.com/v1 |
| סוג אימות | איך לאמת | Bearer Token, OAuth2, וכו' |
2. סוגי אימות
ללא
ל-API-ים ציבוריים שלא דורשים אימות.
API Key
שולח מפתח סטטי ככותרת או פרמטר שאילתה.
| שדה | תיאור |
|---|---|
| מפתח | ערך מפתח ה-API שלכם |
| שם כותרת | כותרת לשימוש (ברירת מחדל: X-Api-Key) |
המפתח נשלח כ: X-Api-Key: your_key_here
Bearer Token
שולח טוקן סטטי בכותרת Authorization.
נשלח כ: Authorization: Bearer your_token_here
Basic Auth
שולח שם משתמש וסיסמה, מקודדים ב-base64.
נשלח כ: Authorization: Basic dXNlcjpwYXNz
OAuth 2.0 (Client Credentials)
מביא access token אוטומטית ושומר במטמון עד לתפוגה. הטוב ביותר ל-API-ים מודרניים כמו Salesforce, Google או שרתי OAuth מותאמים.
| שדה | תיאור |
|---|---|
| כתובת URL לטוקן | endpoint לטוקן OAuth (למשל https://auth.example.com/oauth/token) |
| Client ID | מזהה לקוח OAuth שלכם |
| Client Secret | סוד לקוח OAuth שלכם |
| Scope | scopes מופרדים ברווח (למשל read write) |
enuchat מטפל במחזור חיי הטוקן אוטומטית — מביא בקריאה הראשונה, שומר במטמון עד לתפוגה, מרענן כשצריך.
אבטחה: כל האישורים מוצפנים במנוחה באמצעות libsodium. הם לעולם לא חשופים בתגובות API — רק ערכים מוסתרים מוצגים בלוח הבקרה.
הגדרת Endpoints
לכל חיבור יכולים להיות מספר endpoints — קריאות API ספציפיות שברצונכם לבצע.
| שדה | תיאור | דוגמה |
|---|---|---|
| שם | תווית ל-endpoint זה | בדיקת זמינות |
| שיטה | שיטת HTTP | GET, POST, PUT, DELETE |
| נתיב | נתיב URL (מצורף לכתובת בסיס). השתמשו ב-{'{'}variable} לערכים דינמיים | /rooms/{'{'}roomId}/availability |
| פרמטרי שאילתה | פרמטרי URL כצמדי מפתח-ערך. ערכים תומכים ב-{'{'}variable} | date={'{'}checkIn} |
| תבנית גוף | גוף JSON עבור POST/PUT. תומך באינטרפולציית {'{'}variable} | {'{'}"guest": "{'{'}name}"} |
| מיפוי תגובה | מפו שדות תגובת JSON למשתני סשן בסימון נקודות | data.available → room_available |
| תיאור | הקשר עבור AI (אילו נתונים endpoint זה מחזיר) | מחזיר זמינות חדר ותמחור |
אינטרפולציית משתנים
השתמשו ב-{'{'}variableName} בנתיבים, פרמטרי שאילתה ותבניות גוף. משתנים מגיעים מ:
- משתני סשן — שהוגדרו על ידי כללים קודמים (פעולת SET_VARIABLE)
- פרמטרי פעולה — מקודדים בפעולת CALL_API של הכלל
מיפוי תגובה
מפו שדות תגובת JSON למשתני סשן בסימון נקודות:
// 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"משתנים ממופים נשמרים כמשתני סשן בשיחה וזמינים ל-AI ליצירת תגובות.
שימוש עם כללים
קריאות API מופעלות על ידי פעולת CALL_API בכללים. אתם יכולים לשלב אותן עם פעולות אחרות.
מתכון: בדיקת סטטוס הזמנה
חיבור: Order Management API — https://api.shop.com/v2 — Bearer Token
Endpoint: GET /orders/{'{'}orderId} → ממפה data.status → order_status, data.eta → delivery_eta
כלל (סוג AI): "כאשר המבקר שואל על סטטוס ההזמנה או המשלוח"
פעולות:
- CALL_API → Order Status endpoint
- REPLY_AI → AI משתמש ב-
order_statusו-delivery_etaכדי להשיב
תוצאה: מבקר: "איפה ההזמנה שלי #4521?" — AI: "ההזמנה שלך #4521 כרגע בדרך ואמורה להגיע עד יום חמישי."
מתכון: תמחור בזמן אמת
חיבור: Pricing API — https://pricing.example.com — API Key
Endpoint: GET /products/{'{'}productId}/price → ממפה price → current_price, currency → price_currency
כלל (סטטי): MESSAGE_MATCHES_REGEX: /\b(price|cost|how much)\b/i
פעולות:
- CALL_API → Pricing endpoint
- REPLY_TEXT → "המחיר הנוכחי הוא {'{'}current_price} {'{'}price_currency}."
בדיקות
תמיד בדקו את החיבורים וה-endpoints לפני שימוש בכללים:
- בדקו חיבור — מוודא שאימות עובד (עבור OAuth2: מביא טוקן)
- בדקו Endpoint — מבצע קריאת API אמיתית עם משתני דוגמה ומציג את התגובה
- בדקו כלל (הרצה יבשה) — בדף הכללים, בדקו אם כלל יתאים ואילו פעולות יבוצעו
טיפ: התחילו בבדיקת החיבור, אז כל endpoint, ואז הכלל המלא. כך תוכלו לבודד בעיות בכל רמה.
אבטחה
- הצפנה במנוחה — כל האישורים מוצפנים באמצעות libsodium לפני אחסון
- לעולם לא חשופים — תגובות API לעולם לא כוללות אישורים מפוענחים, רק ערכים מוסתרים
- הגנת SSRF — enuchat חוסם קריאות ל-localhost, כתובות IP פרטיות ושמות מארח פנימיים
- Timeout — לקריאות API חיצוניות יש timeout של 5 שניות למניעת תליה
- שמירת טוקני OAuth2 במטמון — access tokens נשמרים בצורה מאובטחת ומתחדשים אוטומטית
- בידוד דיירים — חיבורים מוגבלים לדייר שלכם, לא נגישים לאחרים