חזרה למדריכים

פעולות חיצוניות (API)

חברו את הבוט למערכות חיצוניות והפכו אותו לעובד דיגיטלי אמיתי

8 דק' קריאה חבילת מתקדם + ניסיון
פעולות חיצוניות מאפשרות לבוט שלכם לתקשר עם מערכות חיצוניות בזמן אמת. במקום רק לענות לשאלות, הבוט יכול לבצע פעולות ממשיות - לבדוק סטטוס הזמנה, ליצור קישור תשלום, לעדכן CRM ועוד. הכל קורה אוטומטית בשיחה עם הלקוח.

מה הן פעולות חיצוניות?

פעולות חיצוניות הן חיבורים ל-API של מערכות חיצוניות שהבוט יכול להפעיל באמצעות בינה מלאכותית. כשלקוח שואל שאלה שדורשת מידע ממערכת חיצונית, הבוט מזהה את הצורך, מפעיל את הפעולה המתאימה, ומחזיר את התשובה ללקוח - הכל בתוך השיחה.

הטכנולוגיה מבוססת על Function Calling של Gemini AI - הבוט מקבל רשימה של פעולות זמינות עם תיאור של כל אחת, ומחליט בעצמו מתי להפעיל כל פעולה על סמך הקשר השיחה.

💡 בפשטות: אתם מגדירים מה הפעולות ואיך להפעיל אותן, והבוט מחליט מתי להשתמש בכל פעולה. לא צריך לכתוב קוד או לוגיקה - הבינה המלאכותית עושה זאת בעצמה.

זמינות בחבילות

תקופת ניסיון (14 יום)
חבילה בסיסית
חבילת מתקדם

פעולות חיצוניות זמינות בתקופת הניסיון (כדי שתוכלו לבדוק את הפיצ'ר) ובחבילת מתקדם. אם אתם בחבילה בסיסית ואתם צריכים את הפיצ'ר - שדרגו בעמוד המחירים.

דוגמאות לשימוש

הנה כמה מהתרחישים הנפוצים ביותר:

בדיקת סטטוס הזמנה קל להגדרה

הלקוח שואל "מה הסטטוס של ההזמנה שלי?" והבוט שולח בקשה למערכת ההזמנות שלכם ומחזיר תשובה מיידית.

היי, מה קורה עם ההזמנה שלי? מספר 12345
בודק סטטוס הזמנה...
ההזמנה מספר 12345 נמצאת בדרך אליך! 📦 היא נשלחה אתמול ומספר המעקב הוא IL12345678. צפי הגעה: מחר עד 18:00.
שדה דוגמה
כתובת URL https://api.myshop.co.il/orders/{{order_id}}
מתודה GET
פרמטר order_id - מספר הזמנה (מילת הלקוח)

יצירת קישור תשלום בינוני

הלקוח רוצה לשלם על שירות או מוצר? הבוט יוצר קישור תשלום מותאם אישית ושולח אותו ישירות בצ'אט.

אני רוצה לשלם על חבילת הפרימיום
יוצר קישור תשלום...
מעולה! הנה קישור התשלום עבור חבילת הפרימיום (₪199/חודש): https://pay.example.co.il/abc123
הקישור תקף ל-24 שעות. ✅
שדה דוגמה
כתובת URL https://api.payment.co.il/links
מתודה POST
פרמטרים product_name, amount, customer_phone

עדכון פרטי לקוח ב-CRM קל להגדרה

כשלקוח מעדכן כתובת, משנה מייל או מוסיף פרטים - הבוט יכול לעדכן את ה-CRM שלכם אוטומטית.

אפשר לעדכן את הכתובת שלי? רחוב הרצל 15, תל אביב
מעדכן כתובת ב-CRM...
הכתובת עודכנה בהצלחה! 🏠 הכתובת החדשה: רחוב הרצל 15, תל אביב. כל ההזמנות הבאות יישלחו לכתובת זו.

קביעת תור / פגישה בינוני

הבוט בודק זמינות ביומן וקובע תורים אוטומטית. מתאים לעסקים כמו מספרות, קליניקות, יועצים.

אני רוצה לקבוע תור לתספורת ביום שלישי
בודק זמינות ביומן...
ביום שלישי יש לנו מקום ב-10:00, 14:30 או 16:00. 💇 מה מתאים לך?
16:00 מעולה
קובע תור...
נקבע! ✅ תור לתספורת ביום שלישי ב-16:00. שלחתי לך תזכורת ב-SMS.

בדיקת מלאי בזמן אמת קל להגדרה

הלקוח שואל על זמינות מוצר? הבוט בודק ישירות מול מערכת המלאי שלכם ומחזיר תשובה מעודכנת.

יש לכם את הנעליים מדגם Air Max במידה 42?
בודק מלאי...
כן! 👟 יש לנו Air Max במידה 42 במלאי - 3 זוגות אחרונים! המחיר ₪449. רוצה להזמין?

איך מגדירים פעולה חיצונית

  1. גשו ללשונית "פעולות חיצוניות" בהגדרות הבוט

    בדשבורד, בתוך עמוד הגדרות הבוט, לחצו על הלשונית "פעולות חיצוניות".

  2. לחצו "הוסף פעולה חדשה"

    ייפתח טופס הגדרת הפעולה עם כל השדות. בהמשך המדריך יש הסבר מפורט על כל שדה.

  3. מלאו את השדות

    שם, שיטה, תיאור, URL, ובהתאם לצורך — Headers, Body Template, פרמטרים, וערכים סודיים.

  4. שמרו ובדקו בסימולטור

    עברו ללשונית "סימולטור" ונסו לשאול שאלה שאמורה להפעיל את הפעולה.

הסבר מפורט על כל שדה

השדות מוצגים בסדר שבו הם מופיעים בטופס הגדרת הפעולה.

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מחיקהביטול תור, מחיקת פריט מהעגלה
💡 לא בטוחים? רוב ה-APIs מתעדים איזו שיטה להשתמש. אם אתם לא בטוחים — 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" כדי להוסיף שורה.

KeyValueהסבר
AuthorizationBearer sk_live_abc123...טוקן אימות
Content-Typeapplication/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}}:

# 1. הגדירו ערך סודי:
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
requiredtrue = הפעולה תיכשל אם המשתנה חסר. false = הבדיקה תתבצע רק אם הערך קיים
💡 מתי להשתמש: שדה זה אופציונלי אבל מומלץ מאוד כשהפעולה מבצעת שינויים (POST/PUT/DELETE). זה מונע מהבוט לשלוח ערכים שגויים ל-API שלכם.

9. מספרי טלפון מורשים

הגבלת גישה לפי מספר טלפון

שדה זה מאפשר להגביל את הפעולה למספרי טלפון ספציפיים בלבד. אם השדה ריק — הפעולה זמינה לכל הלקוחות. אם יש מספרים — רק הם יכולים להפעיל את הפעולה.

כתבו מספר אחד בכל שורה. המערכת מנרמלת אוטומטית (מסירה מקפים, ממירה 05x ל-9725x).

# דוגמה:
050-1234567
052-9876543
054-5555555

למה להשתמש בזה?

  • פעולות פנימיות/ניהוליות — למשל פעולת "יצירת חשבונית" שרק המנהל עם הטלפון הספציפי שלו יכול להפעיל
  • פעולות רגישות — כמו מחיקת נתונים או שינוי הרשאות, שצריכות להיות מוגבלות לאנשים מורשים בלבד
  • גישה מדורגת — פעולות מסוימות רק ללקוחות VIP
  • בדיקות — כשרוצים לבדוק פעולה חדשה רק על המספר שלכם לפני שפותחים לכולם
💡 דוגמה מעשית: חנות אונליין מגדירה פעולת "יצירת קוד קופון" עם הטלפון של המנהל בלבד. כשהמנהל כותב לבוט "תצור קופון 20% הנחה" — הפעולה מתבצעת. כשלקוח רגיל מנסה — הבוט פשוט לא מפעיל אותה.

10. אפשרויות נוספות

מתגים

מתגהסבר
☑️ דרוש אישור מהלקוח לפני הפעלה כשמופעל, הבוט ישאל את הלקוח "אתה בטוח?" לפני שמבצע את הפעולה. מומלץ לפעולות שמבצעות שינויים (תשלום, ביטול תור, עדכון פרטים) כדי למנוע טעויות.
☑️ פעולה פעילה כשכבוי, הפעולה לא תהיה זמינה לבוט בכלל (גם לא ב-AI). שימושי כדי לכבות זמנית פעולה בלי למחוק אותה.

בדיקה וניפוי שגיאות

שימוש בסימולטור

הסימולטור הוא הכלי הטוב ביותר לבדיקת פעולות חיצוניות לפני שמפעילים אותן על לקוחות אמיתיים:

  1. עברו ללשונית "סימולטור"

    שלחו הודעה שאמורה להפעיל את הפעולה.

  2. בדקו שהבוט מזהה את הפעולה הנכונה

    אם הבוט לא מפעיל את הפעולה — בדקו שהתיאור מספיק ברור ושהפעולה פעילה.

  3. בדקו שהפרמטרים נשלפים נכון

    אם הבוט שואל שאלות מיותרות — אולי תיאורי הפרמטרים לא ברורים מספיק.

בעיות נפוצות ופתרונות

הבוט לא מפעיל את הפעולה

בדקו:

  • שהתיאור ברור ומסביר מתי הפעולה רלוונטית
  • שהפעולה פעילה (המתג "פעולה פעילה" דלוק)
  • שההודעה שלכם באמת מתאימה לתיאור הפעולה
  • אם יש טלפונים מורשים — שהמספר שלכם ברשימה

הפעולה נכשלת (שגיאה מה-API)

בדקו:

  • שכתובת ה-URL נכונה ונגישה
  • שכל ה-Headers שנדרשים קיימים (כולל מפתחות API)
  • שהשיטה נכונה (GET/POST/PUT/DELETE)
  • שה-API שלכם מחזיר JSON תקין
  • שהערכים הסודיים מוגדרים נכון (אם משתמשים ב-{{secret:...}})

הבוט מחלץ פרמטרים לא נכונים

בדקו:

  • שתיאורי הפרמטרים (description) ספציפיים ומדויקים
  • שהסוג נכון (string/number/boolean)
  • שסימנתם ב-required רק פרמטרים שבאמת הכרחיים
  • שהגדרתם חוקי תיקוף למשתנים קריטיים

הפעולה עובדת בסימולטור אבל לא בוואטסאפ

בדקו:

  • אם הגדרתם טלפונים מורשים — הטלפון בוואטסאפ צריך להיות ברשימה
  • שהחבילה שלכם תומכת בפעולות חיצוניות (מתקדם או ניסיון)

טיפים למקצוענים

📝 תיאורים הם המפתח: תיאור טוב של הפעולה הוא ההבדל בין בוט שמפעיל אותה בזמן הנכון לבין בוט שלא. כתבו בדיוק מתי ולמה להפעיל את הפעולה, ופרטו גם מקרים שבהם לא להשתמש.
🎯 התחילו פשוט: התחילו עם פעולה אחת פשוטה (כמו בדיקת סטטוס) ובדקו שהכל עובד לפני שמוסיפים עוד פעולות. קל יותר לאתר בעיות כשעובדים בהדרגה.
🔐 אבטחה: הפעילו "דרוש אישור" לכל פעולה שמבצעת שינויים. השתמשו בטלפונים מורשים לפעולות רגישות. הגדירו חוקי תיקוף למניעת ערכים שגויים.
🧪 בדיקות: תמיד בדקו בסימולטור לפני שפותחים ללקוחות. שימו את הטלפון שלכם בטלפונים מורשים, בדקו שהכל עובד, ואז מחקו את ההגבלה.

מוכנים להתחיל?

גשו לדשבורד וצרו את הפעולה החיצונית הראשונה שלכם