פעולות חיצוניות (API)
חברו את הבוט למערכות חיצוניות והפכו אותו לעובד דיגיטלי אמיתי
מה הן פעולות חיצוניות?
פעולות חיצוניות הן חיבורים ל-API של מערכות חיצוניות שהבוט יכול להפעיל באמצעות בינה מלאכותית. כשלקוח שואל שאלה שדורשת מידע ממערכת חיצונית, הבוט מזהה את הצורך, מפעיל את הפעולה המתאימה, ומחזיר את התשובה ללקוח - הכל בתוך השיחה.
הטכנולוגיה מבוססת על Function Calling של Gemini AI - הבוט מקבל רשימה של פעולות זמינות עם תיאור של כל אחת, ומחליט בעצמו מתי להפעיל כל פעולה על סמך הקשר השיחה.
זמינות בחבילות
פעולות חיצוניות זמינות בתקופת הניסיון (כדי שתוכלו לבדוק את הפיצ'ר) ובחבילת מתקדם. אם אתם בחבילה בסיסית ואתם צריכים את הפיצ'ר - שדרגו בעמוד המחירים.
דוגמאות לשימוש
הנה כמה מהתרחישים הנפוצים ביותר:
בדיקת סטטוס הזמנה קל להגדרה
הלקוח שואל "מה הסטטוס של ההזמנה שלי?" והבוט שולח בקשה למערכת ההזמנות שלכם ומחזיר תשובה מיידית.
| שדה | דוגמה |
|---|---|
| כתובת URL | https://api.myshop.co.il/orders/{{order_id}} |
| מתודה | GET |
| פרמטר | order_id - מספר הזמנה (מילת הלקוח) |
יצירת קישור תשלום בינוני
הלקוח רוצה לשלם על שירות או מוצר? הבוט יוצר קישור תשלום מותאם אישית ושולח אותו ישירות בצ'אט.
הקישור תקף ל-24 שעות. ✅
| שדה | דוגמה |
|---|---|
| כתובת URL | https://api.payment.co.il/links |
| מתודה | POST |
| פרמטרים | product_name, amount, customer_phone |
עדכון פרטי לקוח ב-CRM קל להגדרה
כשלקוח מעדכן כתובת, משנה מייל או מוסיף פרטים - הבוט יכול לעדכן את ה-CRM שלכם אוטומטית.
קביעת תור / פגישה בינוני
הבוט בודק זמינות ביומן וקובע תורים אוטומטית. מתאים לעסקים כמו מספרות, קליניקות, יועצים.
בדיקת מלאי בזמן אמת קל להגדרה
הלקוח שואל על זמינות מוצר? הבוט בודק ישירות מול מערכת המלאי שלכם ומחזיר תשובה מעודכנת.
איך מגדירים פעולה חיצונית
-
גשו ללשונית "פעולות חיצוניות" בהגדרות הבוט
בדשבורד, בתוך עמוד הגדרות הבוט, לחצו על הלשונית "פעולות חיצוניות".
-
לחצו "הוסף פעולה חדשה"
ייפתח טופס הגדרת הפעולה עם כל השדות. בהמשך המדריך יש הסבר מפורט על כל שדה.
-
מלאו את השדות
שם, שיטה, תיאור, URL, ובהתאם לצורך — Headers, Body Template, פרמטרים, וערכים סודיים.
-
שמרו ובדקו בסימולטור
עברו ללשונית "סימולטור" ונסו לשאול שאלה שאמורה להפעיל את הפעולה.
הסבר מפורט על כל שדה
השדות מוצגים בסדר שבו הם מופיעים בטופס הגדרת הפעולה.
1. שם הפעולה (אנגלית) + שיטה
שני שדות אלה מופיעים באותה שורה:
שם הפעולה
שם טכני באנגלית שמזהה את הפעולה. חייב להיות ייחודי, בלי רווחים, ומומלץ להשתמש ב-underscore. השם הזה משמש את המערכת פנימית — הלקוח לא רואה אותו.
check_order_status
create_payment_link
update_customer_address
get_stock_availability
book_appointment
# דוגמאות לא טובות:
בדיקת הזמנה ← עברית
check order ← רווחים
שיטה (Method)
סוג בקשת ה-HTTP שתישלח ל-API. בחרו לפי סוג הפעולה:
| שיטה | מתי להשתמש | דוגמאות |
|---|---|---|
GET | קבלת מידע (קריאה בלבד) | בדיקת סטטוס, בדיקת מלאי, קבלת פרטי לקוח |
POST | יצירה של משהו חדש | יצירת קישור תשלום, קביעת תור, שליחת הודעה |
PUT | עדכון מידע קיים | עדכון כתובת, שינוי פרטי הזמנה |
DELETE | מחיקה | ביטול תור, מחיקת פריט מהעגלה |
GET לקריאת מידע, POST ליצירה.
2. תיאור (מוצג ל-AI — מתי להפעיל?)
תיאור הפעולה
זה השדה החשוב ביותר. התיאור מוצג ל-AI והוא מחליט על סמך התיאור הזה מתי להפעיל את הפעולה. ככל שהתיאור מדויק יותר — הבוט יפעיל את הפעולה בזמן הנכון.
כתבו בתיאור:
- מתי להפעיל — באיזה מצב/שאלה
- מה הפעולה עושה
- מה לא — מקרים שבהם אין להשתמש (אופציונלי)
בדוק סטטוס הזמנה לפי מספר הזמנה. השתמש כאשר לקוח שואל
מה קורה עם ההזמנה שלו, איפה ההזמנה, או מתי היא תגיע.
אל תשתמש בפעולה זו לשאלות כלליות על משלוחים.
# דוגמה לא טובה (כללית מדי):
בדיקת הזמנה
3. כתובת URL
כתובת ה-API
הכתובת שאליה תישלח הבקשה. אפשר לשלב משתנים דינמיים בתוך ה-URL
באמצעות סוגריים מסולסלים כפולים {{variable}}:
https://api.example.com/orders/{{order_id}}
# משתנה כ-query parameter:
https://api.example.com/search?phone={{customer_phone}}&status={{status}}
# מספר משתנים בנתיב:
https://api.example.com/users/{{user_id}}/orders/{{order_id}}
משתנים מובנים שהמערכת מספקת אוטומטית (לא צריך לבקש מהלקוח):
| משתנה | מקור | דוגמה |
|---|---|---|
{{customer_phone}} | מספר הטלפון של הלקוח (מ-WhatsApp) | 972501234567 |
{{current_date}} | התאריך והשעה הנוכחיים | 2026-03-19T10:30:00.000Z |
{{customer_phone}} מגיע ישירות מ-WhatsApp ולא ניתן לשינוי
על ידי הלקוח או על ידי ה-AI. זה מבטיח שתמיד תקבלו את הטלפון האמיתי.
4. Headers
כותרות HTTP
Headers הם מידע נוסף שנשלח עם הבקשה — בעיקר לצורך אימות מול ה-API. כל header מורכב מ-Key (שם) ו-Value (ערך). לחצו "+ הוסף header" כדי להוסיף שורה.
| Key | Value | הסבר |
|---|---|---|
Authorization | Bearer sk_live_abc123... | טוקן אימות |
Content-Type | application/json | פורמט הנתונים |
X-API-Key | {{secret:api_key}} | מפתח API (סודי) |
{{secret:name}} בתוך ה-Value כדי להפנות לערך סודי
(ראו "ערכים סודיים" בהמשך). כך המפתח לא נחשף בטקסט גלוי.
5. Body Template (JSON)
תוכן הבקשה
שדה זה מופיע רק כשהשיטה היא POST, PUT או DELETE (ב-GET אין body).
כאן מגדירים את מבנה ה-JSON שיישלח לשרת. אפשר לשלב משתנים עם {{variable}}.
דוגמה 1 — יצירת קישור תשלום:
"customer_name": "{{customer_name}}",
"customer_phone": "{{customer_phone}}",
"amount": {{amount}},
"currency": "ILS",
"description": "{{product_name}}"
}
דוגמה 2 — עדכון כתובת לקוח ב-CRM:
"phone": "{{customer_phone}}",
"address": {
"street": "{{street}}",
"city": "{{city}}"
}
}
דוגמה 3 — קביעת תור:
"service": "{{service_type}}",
"date": "{{appointment_date}}",
"time": "{{appointment_time}}",
"customer_phone": "{{customer_phone}}",
"notes": "{{notes}}"
}
"currency": "ILS") נשלחים כמו שהם בכל
בקשה. משתנים עם {{...}} מוחלפים אוטומטית בערך שהבוט חילץ מהשיחה או במשתנים מובנים.
6. ערכים סודיים
ערכים סודיים (לא נשלחים ל-AI)
ערכים סודיים מאפשרים לשמור מפתחות API, טוקנים וסיסמאות בצורה מאובטחת. הערכים לעולם לא נשלחים ל-AI ולא נחשפים בממשק (מוצגים כנקודות, אפשר ללחוץ על אייקון 👁️ כדי לחשוף את הערך זמנית).
כל ערך סודי מורכב מ-Key (שם) ו-Value (הערך הסודי). לחצו "+ הוסף סוד" להוספה.
איך להשתמש: הפנו לערך סודי בתוך Headers או Body Template עם {{secret:key_name}}:
Key: api_key
Value: sk_live_abc123xyz789
# 2. השתמשו בו ב-Header:
Key: Authorization
Value: Bearer {{secret:api_key}}
# 3. או ב-Body Template:
{
"api_key": "{{secret:api_key}}",
"phone": "{{customer_phone}}"
}
• ערכים סודיים לעולם לא מוחלפים בתוך ה-URL — רק ב-Headers וב-Body
• לא לשים מפתחות API בתיאור הפעולה או בתיאורי הפרמטרים — שם ה-AI רואה אותם
• ודאו שה-API שלכם משתמש ב-HTTPS (לא HTTP)
7. Parameters (JSON — פורמט Gemini FunctionDeclaration)
הגדרת פרמטרים ל-AI
שדה זה אופציונלי ומגדיר אילו פרמטרים הבוט צריך לחלץ מהשיחה עם הלקוח. הפורמט הוא JSON לפי תקן Gemini FunctionDeclaration (דומה ל-JSON Schema).
הבוט משתמש ב-description של כל פרמטר כדי להבין מה לחלץ מהשיחה. אם פרמטר מוגדר כ-required, הבוט ישאל את הלקוח אם המידע חסר.
דוגמה 1 — בדיקת סטטוס הזמנה (פרמטר אחד):
"type": "object",
"properties": {
"order_id": {
"type": "string",
"description": "מספר הזמנה של 4-10 ספרות שהלקוח קיבל באימייל"
}
},
"required": ["order_id"]
}
דוגמה 2 — יצירת קישור תשלום (מספר פרמטרים):
"type": "object",
"properties": {
"product_name": {
"type": "string",
"description": "שם המוצר או השירות שהלקוח רוצה לשלם עליו"
},
"amount": {
"type": "number",
"description": "סכום התשלום בשקלים"
}
},
"required": ["product_name", "amount"]
}
דוגמה 3 — קביעת תור (עם פרמטר אופציונלי):
"type": "object",
"properties": {
"service_type": {
"type": "string",
"description": "סוג השירות: תספורת, צביעה, החלקה"
},
"date": {
"type": "string",
"description": "התאריך המבוקש בפורמט YYYY-MM-DD"
},
"notes": {
"type": "string",
"description": "הערות נוספות מהלקוח (אופציונלי)"
}
},
"required": ["service_type", "date"]
}
| מאפיין | ערכים | הסבר |
|---|---|---|
type | "object" | תמיד "object" ברמה העליונה |
properties | אובייקט של פרמטרים | כל פרמטר מוגדר בתוך properties |
| type (של פרמטר) | "string", "number", "boolean" | סוג הערך שהבוט יחלץ |
description | טקסט חופשי | השדה הכי חשוב — מסביר ל-AI מה לחלץ |
required | מערך של שמות | פרמטרים שחובה למלא. הבוט ישאל אם חסרים |
"מספר",
כתבו "מספר הזמנה של 4-10 ספרות שהלקוח קיבל באימייל".
ככל שהתיאור מפורט יותר — הבוט מחלץ את המידע הנכון.
8. חוקי תיקוף משתנים (JSON)
אימות ערכים עם Regex
שדה אופציונלי שמאפשר להגדיר חוקי תיקוף (validation) לכל משתנה באמצעות ביטויים רגולריים (regex). אם ערך לא עובר את הבדיקה — הפעולה לא תתבצע.
זה שימושי כדי למנוע שליחת ערכים לא חוקיים ל-API (למשל: מספר הזמנה שלא בפורמט הנכון).
דוגמה 1 — מספר הזמנה (4-10 ספרות בלבד):
"order_id": {
"pattern": "^\\d{4,10}$",
"required": true
}
}
דוגמה 2 — מספר טלפון ישראלי + אימייל:
"phone": {
"pattern": "^0[5-9]\\d{7,8}$",
"required": true
},
"email": {
"pattern": "^[^@]+@[^@]+\\.[^@]+$",
"required": false
}
}
דוגמה 3 — סכום כספי (מספר חיובי):
"amount": {
"pattern": "^\\d+(\\.\\d{1,2})?$",
"required": true
}
}
| מאפיין | הסבר |
|---|---|
pattern | ביטוי רגולרי (regex) שהערך חייב לעבור. חשוב: ב-JSON צריך כפל backslash: \\d במקום \d |
required | true = הפעולה תיכשל אם המשתנה חסר. false = הבדיקה תתבצע רק אם הערך קיים |
9. מספרי טלפון מורשים
הגבלת גישה לפי מספר טלפון
שדה זה מאפשר להגביל את הפעולה למספרי טלפון ספציפיים בלבד. אם השדה ריק — הפעולה זמינה לכל הלקוחות. אם יש מספרים — רק הם יכולים להפעיל את הפעולה.
כתבו מספר אחד בכל שורה. המערכת מנרמלת אוטומטית (מסירה מקפים, ממירה 05x ל-9725x).
050-1234567
052-9876543
054-5555555
למה להשתמש בזה?
- פעולות פנימיות/ניהוליות — למשל פעולת "יצירת חשבונית" שרק המנהל עם הטלפון הספציפי שלו יכול להפעיל
- פעולות רגישות — כמו מחיקת נתונים או שינוי הרשאות, שצריכות להיות מוגבלות לאנשים מורשים בלבד
- גישה מדורגת — פעולות מסוימות רק ללקוחות VIP
- בדיקות — כשרוצים לבדוק פעולה חדשה רק על המספר שלכם לפני שפותחים לכולם
10. אפשרויות נוספות
מתגים
| מתג | הסבר |
|---|---|
| ☑️ דרוש אישור מהלקוח לפני הפעלה | כשמופעל, הבוט ישאל את הלקוח "אתה בטוח?" לפני שמבצע את הפעולה. מומלץ לפעולות שמבצעות שינויים (תשלום, ביטול תור, עדכון פרטים) כדי למנוע טעויות. |
| ☑️ פעולה פעילה | כשכבוי, הפעולה לא תהיה זמינה לבוט בכלל (גם לא ב-AI). שימושי כדי לכבות זמנית פעולה בלי למחוק אותה. |
בדיקה וניפוי שגיאות
שימוש בסימולטור
הסימולטור הוא הכלי הטוב ביותר לבדיקת פעולות חיצוניות לפני שמפעילים אותן על לקוחות אמיתיים:
-
עברו ללשונית "סימולטור"
שלחו הודעה שאמורה להפעיל את הפעולה.
-
בדקו שהבוט מזהה את הפעולה הנכונה
אם הבוט לא מפעיל את הפעולה — בדקו שהתיאור מספיק ברור ושהפעולה פעילה.
-
בדקו שהפרמטרים נשלפים נכון
אם הבוט שואל שאלות מיותרות — אולי תיאורי הפרמטרים לא ברורים מספיק.
בעיות נפוצות ופתרונות
הבוט לא מפעיל את הפעולה
בדקו:
- שהתיאור ברור ומסביר מתי הפעולה רלוונטית
- שהפעולה פעילה (המתג "פעולה פעילה" דלוק)
- שההודעה שלכם באמת מתאימה לתיאור הפעולה
- אם יש טלפונים מורשים — שהמספר שלכם ברשימה
הפעולה נכשלת (שגיאה מה-API)
בדקו:
- שכתובת ה-URL נכונה ונגישה
- שכל ה-Headers שנדרשים קיימים (כולל מפתחות API)
- שהשיטה נכונה (GET/POST/PUT/DELETE)
- שה-API שלכם מחזיר JSON תקין
- שהערכים הסודיים מוגדרים נכון (אם משתמשים ב-
{{secret:...}})
הבוט מחלץ פרמטרים לא נכונים
בדקו:
- שתיאורי הפרמטרים (description) ספציפיים ומדויקים
- שהסוג נכון (
string/number/boolean) - שסימנתם ב-required רק פרמטרים שבאמת הכרחיים
- שהגדרתם חוקי תיקוף למשתנים קריטיים
הפעולה עובדת בסימולטור אבל לא בוואטסאפ
בדקו:
- אם הגדרתם טלפונים מורשים — הטלפון בוואטסאפ צריך להיות ברשימה
- שהחבילה שלכם תומכת בפעולות חיצוניות (מתקדם או ניסיון)