🚀 למפתחים

מדריך למפתחים — Gambot API

ה-API הרשמי של Gambot לשליחת הודעות, ניהול תבניות, אנשי קשר, לידים ועוד.

אימות

כתובת בסיס
https://api.gambot.co.il/api/v1

Fallback: https://gambot.azurewebsites.net/api/v1

כל בקשה מאומתת באמצעות ה-Gambot Token של הארגון (מתחיל ב-gmbt_) — אותו טוקן המשמש גם ל-Webhooks. שלחו אותו באחת משלוש דרכים:

  • כותרת Authorization: Bearer gmbt_... (מומלץ)
  • כותרת X-Api-Key: gmbt_...
  • פרמטר Query ?api_key=gmbt_... (רק כשאין ברירה, למשל Zapier)

מצאו את הטוקן בפאנל הניהול תחת הגדרות → כללי. ה-API מופעל כברירת מחדל — אין צורך בהגדרה נוספת.

שמרו על הטוקן בסוד (כמו סיסמה). דלף? החליפו אותו בלחיצה אחת מההגדרות.

מעטפת התגובה

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

{
  "success": true,
  "message": "?",
  "data": { }
}

טיפול בשגיאות

שגיאות מוחזרות במעטפת אחידה. בנוסף ל-error (מחרוזת) וּ-message (טקסט לאדם), כל שגיאה כוללת כעת code קריא-למכונה (UPPER_SNAKE) שיציב לאורך זמן — העדיפו לבדוק אותו על פני ניתוח טקסט. חלק מהשגיאות מוסיפות data עם מצב מובנה (למשל האם ניתן לשלוח טקסט חופשי / תבנית). השדות החדשים נוספים בלבד ואינם שוברים לקוחות קיימים.

{
  "success": false,
  "error": "conversation_closed",
  "code": "CONVERSATION_WINDOW_CLOSED",
  "message": "A free-form WhatsApp message cannot currently be sent.",
  "data": { "canSendFreeText": false, "canSendTemplate": true }
}
HTTPcodeerrorתיאור
401AUTHENTICATION_REQUIREDmissing_api_key / invalid_api_keyטוקן חסר או שגוי
403API_DISABLEDapi_disabledה-API מושבת עבור ארגון זה
403INSUFFICIENT_PERMISSIONinsufficient_scopeלטוקן חסרה ההרשאה הנדרשת
400VALIDATION_ERRORmissing_fieldsחסרים שדות חובה
400INVALID_PHONE_NUMBERinvalid_phoneמספר טלפון לא תקין (E.164)
404RESOURCE_NOT_FOUNDnot_foundהמשאב לא נמצא
409CONVERSATION_WINDOW_CLOSEDconversation_closedחלון 24 השעות סגור — שלחו תבנית מאושרת
409CONFIRMATION_REQUIREDregular_window_confirmation_requiredדיוור טקסט חופשי ידלג על נמענים בחלון סגור — נדרש אישור/תבנית
502TEMPLATE_NOT_FOUNDsend_failedהתבנית לא נמצאה
502MISSING_TEMPLATE_VARIABLESsend_failedחסרים משתני תבנית או שאינם תואמים
502TEMPLATE_NOT_APPROVEDsend_failedהתבנית אינה מאושרת ע"י Meta
502SEND_FAILEDsend_failedהשליחה נכשלה (בעיה בצד WhatsApp)
402PAYMENT_METHOD_REQUIREDno_api_payment_methodאין אמצעי תשלום לחשבון ה-WhatsApp ב-Meta

בניית סוכני AI עם Gambot

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

codeתיאור
CONVERSATION_WINDOW_CLOSEDחלון 24 השעות סגור — שלחו תבנית מאושרת (list templates → send-template). data.canSendTemplate=true.
MISSING_TEMPLATE_VARIABLESשלפו את משתני התבנית (GET /templates/{id}/variables), בקשו מהמשתמש ערכים חסרים, ושלחו שוב עם כולם.
CONFIRMATION_REQUIREDדיוור טקסט חופשי ידלג על נמענים בחלון סגור — הציגו את הכמות (data.closedWindowCount) והעדיפו תבנית, או אשרו במפורש.
RESOURCE_NOT_FOUND / contactאל תנחשו נמען — חפשו איש קשר (GET /contacts) או צרו אחד לפני שליחה.
RATE_LIMITED / messaging limitsאל תנסו שוב בלולאה — פצלו לימים/בלוקים והמתינו. השתמשו בקמפיינים לדיוור המוני.
scheduled / acceptedתגובות מציינות אם הפעולה בוצעה, התקבלה או תוזמנה — קִראו את data.status ו-scheduledAt.

הודעות WhatsApp

שליחת הודעות טקסט חופשי ותבניות ללקוחות.

POST/messages/send-textהרשאה: messages:send

שליחת הודעת טקסט חופשי. מותרת רק בתוך חלון 24 השעות (מאז ההודעה האחרונה של הלקוח); מחוצה לו, שלחו תבנית.

פרמטרים
שםסוגמיקוםחובהתיאור
tostringbodyכןהנמען בפורמט בינלאומי (9725...). מקבל גם phoneNumber.
textstringbodyכןגוף ההודעה.
fromstringbodyלאארגונים מרובי-מספרים: מאיזה מספר לשלוח — מספר תצוגה או phoneNumberId (ראו GET /numbers). ברירת מחדל: המספר הראשי.
גוף הבקשה
{
  "to": "972501234567",
  "text": "שלום! תודה שפנית אלינו"
}
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/messages/send-text" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "to": "972501234567", "text": "Hello!" }'
תגובה לדוגמה
{
  "success": true,
  "message": "Message sent",
  "data": { "messageId": "wamid.HBg?" }
}
POST/messages/send-templateהרשאה: messages:send

שליחת תבנית מאושרת עם משתנים. יכולה לפתוח שיחה גם מחוץ לחלון 24 השעות.

פרמטרים
שםסוגמיקוםחובהתיאור
tostringbodyכןהנמען. מקבל גם phoneNumber.
templateIdstringbodyכןמזהה התבנית.
variablesstring[]bodyלאמשתני ה-Body לפי הסדר. לחלופין templateVariableQuery.
fromstringbodyלאארגונים מרובי-מספרים: מאיזה מספר לשלוח — מספר תצוגה או phoneNumberId (ראו GET /numbers). ברירת מחדל: המספר הראשי.
גוף הבקשה
{
  "to": "972501234567",
  "templateId": "welcome_new_customer_0626",
  "variables": ["דנה", "הזמנה #1234"]
}
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/messages/send-template" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "to": "972501234567", "templateId": "welcome_0626", "variables": ["Dana"] }'
תגובה לדוגמה
{
  "success": true,
  "message": "Template sent",
  "data": { "messageId": "wamid.HBg?" }
}
GET/messages/{messageId}/statusהרשאה: conversations:read

סטטוס שליחה של הודעה לפי מזהה ההודעה (ה-messageId שחוזר מ-send-text / send-template, או לכל נמען מ-campaigns/send). שימושי כשמשתמש אומר "לא רואה שההודעה הגיעה". אם הכשל הוא 131042 מתווסף בלוק paymentIssue שמסביר שאמצעי התשלום ל-API נפרד מזה של המודעות (Ads) — טעות נפוצה.

פרמטרים
שםסוגמיקוםחובהתיאור
messageIdstringpathכןמזהה ההודעה (wamid...) שהתקבל בשליחה.
phonestringqueryלאמספר הנמען לחיפוש מדויק ומהיר (מומלץ). ללא — נסרוק את הודעות הארגון.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/messages/wamid.HBgLOTcyNTA.../status?phone=972501234567" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{
  "success": true,
  "data": {
    "messageId": "wamid.HBg...",
    "phone": "972501234567",
    "status": "failed",
    "time": "2026-09-17T14:05:00Z",
    "errorMessage": "(131042) ...",
    "paymentIssue": {
      "code": 131042,
      "reason": "no_api_payment_method",
      "message": "אין אמצעי תשלום פעיל לחשבון ה-WhatsApp Business API ב-Meta.",
      "commonMistake": "טעות נפוצה: לחשוב שאמצעי התשלום של המודעות (Ads) מכסה גם הודעות API — אלו אמצעים נפרדים לגמרי.",
      "fix": "Meta Business Settings ▸ Billing & Payments של חשבון ה-WhatsApp — הוסיפו אמצעי תשלום."
    }
  }
}

שיחות

הצגת שיחות, קריאת היסטוריית הודעות ומספרי השולח של הארגון.

GET/numbersהרשאה: conversations:read

מספרי ה-WhatsApp המחוברים לשליחה (מספרי השולח) של הארגון. השתמשו ב-phoneNumberId או במספר התצוגה בתור "from" בשליחות, או כ-fromNumberId בקמפיינים. רלוונטי לארגונים מרובי-מספרים.

בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/numbers" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{
  "success": true,
  "data": {
    "count": 2,
    "items": [
      { "phoneNumberId": "1299669023229774", "displayNumber": "+972 50-397-1731", "isPrimary": true, "status": "CONNECTED" },
      { "phoneNumberId": "1288077087725822", "displayNumber": "+972 55-968-9759", "isPrimary": false, "status": "CONNECTED" }
    ]
  }
}
GET/conversationsהרשאה: conversations:read

הצגת שיחות (אנשי קשר) לפי ההודעה האחרונה.

פרמטרים
שםסוגמיקוםחובהתיאור
pageNumberintqueryלאברירת מחדל 1.
pageSizeintqueryלאברירת מחדל 50 (מקסימום 200).
searchstringqueryלאחיפוש חופשי.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/conversations?pageSize=50&search=דנה" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{
  "success": true,
  "data": {
    "pageNumber": 1,
    "pageSize": 50,
    "count": 2,
    "items": [ { "phoneNumber": "972501234567", "name": "דנה", "lastMessage": "?" } ]
  }
}
GET/conversations/{phone}/messagesהרשאה: conversations:read

היסטוריית ההודעות של שיחה אחת (עימוד לפי מזהה הודעה).

פרמטרים
שםסוגמיקוםחובהתיאור
phonestringpathכןמספר הטלפון של הלקוח.
pageSizeintqueryלאברירת מחדל 50 (מקסימום 200).
beforestringqueryלאשליפת הודעות לפני messageId זה.
afterstringqueryלאשליפת הודעות אחרי messageId זה.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/conversations/972501234567/messages?pageSize=50" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{
  "success": true,
  "data": { "messages": [ { "id": "?", "text": "?", "direction": "in", "time": "?" } ] }
}
GET/conversations/{phone}/windowהרשאה: conversations:read

האם חלון 24 השעות של שירות הלקוחות ב-WhatsApp פתוח עבור איש קשר זה? אם windowOpen=false חובה לשלוח תבנית מאושרת (טקסט חופשי נדחה). מחזיר המלצה ידידותית ל-AI.

פרמטרים
שםסוגמיקוםחובהתיאור
phonestringpathכןמספר הטלפון של הלקוח.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/conversations/972501234567/window" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{
  "success": true,
  "data": {
    "phone": "972501234567",
    "windowOpen": false,
    "canSendFreeText": false,
    "requiresTemplate": true,
    "reason": "The 24-hour customer-service window is CLOSED (the contact has not messaged in the last 24h).",
    "recommendation": "Free text will be rejected. Send an approved template.",
    "defaultTemplateId": null
  }
}
GET/conversations/slaהרשאה: conversations:read

שיחות לפי SLA של זמן-תגובה: מי ממתין למענה וכמה זמן. השעון מתחיל בהודעה הנכנסת האחרונה ונעצר בכל מענה (אנושי או בוט). level=open (ברירת מחדל: warn+breach), all, ok, warn, breach.

פרמטרים
שםסוגמיקוםחובהתיאור
levelstringqueryלאopen (ברירת מחדל) | all | ok | warn | breach
pageNumbernumberqueryלאמספר עמוד.
pageSizenumberqueryלאגודל עמוד (עד 200).
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/conversations/sla?level=open" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{
  "success": true,
  "data": {
    "level": "open",
    "config": { "warnMinutes": 180, "breachMinutes": 720, "statuses": ["Open","In Process"], "businessHoursEnabled": true },
    "count": 1, "total": 1,
    "items": [
      { "phone": "972501234567", "name": "Dana", "lastMessageTime": "2026-09-15T08:00:00Z",
        "lastConversationStatus": "Open", "waitingMinutes": 240, "level": "warn", "ownerId": "", "ownerName": "" }
    ]
  }
}
GET/conversations/{phone}/slaהרשאה: conversations:read

SLA של זמן-תגובה לשיחה אחת: האם הלקוח ממתין, כמה דקות, והרמה (ok/warn/breach).

פרמטרים
שםסוגמיקוםחובהתיאור
phonestringpathכןמספר הטלפון של הלקוח.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/conversations/972501234567/sla" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{
  "success": true,
  "data": {
    "phone": "972501234567", "name": "Dana", "lastMessageDirection": "inbound",
    "lastMessageTime": "2026-09-15T08:00:00Z", "lastConversationStatus": "Open",
    "waiting": true, "waitingMinutes": 240, "level": "warn",
    "config": { "warnMinutes": 180, "breachMinutes": 720, "businessHoursEnabled": true }
  }
}

תבניות

ניהול תבניות WhatsApp — רשימה, פרטים, משתנים ויצירה. יצירת תבנית תומכת ב-Header של טקסט או מדיה (תמונה/וידאו/מסמך), Body עם משתני {{1}}, Footer וכפתורים (Quick Reply / URL / טלפון). ראו דוגמאות מלאות למטה.

GET/templatesהרשאה: templates:read

כל התבניות של הארגון.

בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/templates" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{
  "success": true,
  "data": [ { "id": "?", "name": "welcome_0626", "language": "he", "status": "APPROVED" } ]
}
GET/templates/{templateId}הרשאה: templates:read

תבנית בודדת כולל סטטוס האישור של Meta.

פרמטרים
שםסוגמיקוםחובהתיאור
templateIdstringpathכןמזהה התבנית.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/templates/welcome_0626" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{
  "success": true,
  "data": { "id": "?", "name": "welcome_0626", "status": "APPROVED", "components": [ ? ] }
}
GET/templates/{templateId}/variablesהרשאה: templates:read

המשתנים הדינמיים של התבנית.

פרמטרים
שםסוגמיקוםחובהתיאור
templateIdstringpathכןמזהה התבנית.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/templates/welcome_0626/variables" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{
  "success": true,
  "data": [ { "key": "dynamic_var1", "label": "שם" } ]
}
POST/templatesהרשאה: templates:write

יצירת תבנית חדשה (נשלחת ל-Meta לאישור). תומכת ב-Header טקסט/מדיה, Body עם משתנים, Footer וכפתורים. שמות חייבים להיות באנגלית, lowercase_with_underscores.

פרמטרים
שםסוגמיקוםחובהתיאור
namestringbodyכןשם התבנית (אנגלית, קווים תחתונים).
languagestringbodyכןקוד שפה, למשל he / en.
categorystringbodyכןMARKETING / UTILITY / AUTHENTICATION.
componentsobject[]bodyכןרכיבי התבנית: HEADER (TEXT או IMAGE/VIDEO/DOCUMENT), BODY, FOOTER, BUTTONS (QUICK_REPLY / URL / PHONE_NUMBER). לדיוור (MARKETING) יש לכלול Footer להסרה — אם לא נכלל, Gambot יוסיף אוטומטית "להסרה השב הסר". ראו דוגמאות למטה.
headerMediaUrlstringbodyלאקיצור: כתובת URL ציבורית של מדיה. Gambot מעלה אותה ל-Meta ומזריק את ה-header_handle לרכיב ה-HEADER אוטומטית.
headerFormatstringbodyלאפורמט ל-headerMediaUrl: IMAGE / VIDEO / DOCUMENT (ברירת מחדל IMAGE).
gmbtMediaIdstringbodyלאמזהה מדיה של Gambot (לתצוגה מקדימה). לרוב מיותר בעת שימוש ב-headerMediaUrl.
גוף הבקשה
{
  "name": "order_confirmation_0626",
  "language": "he",
  "category": "UTILITY",
  "components": [
    { "type": "HEADER", "format": "TEXT", "text": "הזמנה {{1}}", "example": { "header_text": ["1234"] } },
    { "type": "BODY", "text": "שלום {{1}}, הזמנה {{2}} התקבלה בהצלחה!", "example": { "body_text": [["דנה", "1234"]] } },
    { "type": "FOOTER", "text": "Gambot — שירות לקוחות" },
    { "type": "BUTTONS", "buttons": [
      { "type": "QUICK_REPLY", "text": "פרטי ההזמנה" },
      { "type": "URL", "text": "מעבר לאתר", "url": "https://shop.co.il/orders/{{1}}", "example": ["1234"] },
      { "type": "PHONE_NUMBER", "text": "התקשרו אלינו", "phone_number": "+972500000000" }
    ] }
  ]
}
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/templates" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "name": "order_confirmation_0626", "language": "he", "category": "UTILITY", "components": [ { "type": "BODY", "text": "שלום {{1}}" } ] }'
תגובה לדוגמה
{
  "success": true,
  "message": "Template created",
  "data": { "id": "?", "status": "PENDING" }
}
דוגמאות נוספות
1) טקסט בלבד (Body + משתנה)
curl -X POST "https://api.gambot.co.il/api/v1/templates" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "welcome_new_customer_0626",
  "language": "he",
  "category": "MARKETING",
  "components": [
    { "type": "BODY", "text": "ברוך הבא {{1}}! שמחים שהצטרפת אלינו", "example": { "body_text": [["דנה"]] } }
  ]
}'
2) Header טקסט + Footer
curl -X POST "https://api.gambot.co.il/api/v1/templates" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "appointment_reminder_0626",
  "language": "he",
  "category": "UTILITY",
  "components": [
    { "type": "HEADER", "format": "TEXT", "text": "תזכורת לתור" },
    { "type": "BODY", "text": "היי {{1}}, יש לך תור ב-{{2}}.", "example": { "body_text": [["דנה", "10:00"]] } },
    { "type": "FOOTER", "text": "ניתן לבטל עד 24 שעות מראש" }
  ]
}'
3) Header תמונה — קיצור headerMediaUrl (קריאה בודדת)
curl -X POST "https://api.gambot.co.il/api/v1/templates" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "promo_summer_sale_0626",
  "language": "he",
  "category": "MARKETING",
  "headerMediaUrl": "https://cdn.example.com/summer.jpg",
  "headerFormat": "IMAGE",
  "components": [
    { "type": "BODY", "text": "מבצע קיץ! עד 50% הנחה על {{1}} עכשיו.", "example": { "body_text": [["הכול"]] } },
    { "type": "FOOTER", "text": "בתוקף עד סוף החודש" },
    { "type": "BUTTONS", "buttons": [ { "type": "URL", "text": "למבצע", "url": "https://shop.co.il" } ] }
  ]
}'
4) Header תמונה — עם header_handle שהועלה מראש (ראו POST /templates/media)
curl -X POST "https://api.gambot.co.il/api/v1/templates" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "receipt_document_0626",
  "language": "he",
  "category": "UTILITY",
  "components": [
    { "type": "HEADER", "format": "DOCUMENT", "example": { "header_handle": ["4::aW1hZ2Uv...<handle-from-upload>"] } },
    { "type": "BODY", "text": "מצורפת הקבלה עבור הזמנה {{1}}.", "example": { "body_text": [["1234"]] } }
  ]
}'
5) Header וידאו
curl -X POST "https://api.gambot.co.il/api/v1/templates" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "product_demo_0626",
  "language": "he",
  "category": "MARKETING",
  "headerMediaUrl": "https://cdn.example.com/demo.mp4",
  "headerFormat": "VIDEO",
  "components": [
    { "type": "BODY", "text": "צפו בהדגמה של {{1}}", "example": { "body_text": [["המוצר החדש"]] } }
  ]
}'
6) כפתורים — Quick Reply + URL דינמי + טלפון
curl -X POST "https://api.gambot.co.il/api/v1/templates" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "order_shipped_0626",
  "language": "he",
  "category": "UTILITY",
  "components": [
    { "type": "BODY", "text": "הזמנתך {{1}} נשלחה!", "example": { "body_text": [["1234"]] } },
    { "type": "BUTTONS", "buttons": [
      { "type": "QUICK_REPLY", "text": "קיבלתי, תודה" },
      { "type": "URL", "text": "מעקב משלוח", "url": "https://track.co.il/{{1}}", "example": ["1234"] },
      { "type": "PHONE_NUMBER", "text": "התקשרו אלינו", "phone_number": "+972500000000" }
    ] }
  ]
}'
7) MCP — הכלי gambot_create_template (מדיה, כפתורים ו-Footer)
// MCP tool call — gambot_create_template
{
  "name": "promo_summer_sale_0626",
  "language": "he",
  "category": "MARKETING",
  "headerMediaUrl": "https://cdn.example.com/summer.jpg",
  "headerFormat": "IMAGE",
  "components": [
    { "type": "BODY", "text": "מבצע קיץ! עד 50% הנחה.", "example": { "body_text": [["הכול"]] } },
    { "type": "FOOTER", "text": "בתוקף עד סוף החודש" },
    { "type": "BUTTONS", "buttons": [ { "type": "QUICK_REPLY", "text": "אני רוצה!" } ] }
  ]
}
8) דיוור חכם — כפתור קישור + Footer הסרה (מתווסף אוטומטית)
curl -X POST "https://api.gambot.co.il/api/v1/templates" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "newsletter_promo_0626",
  "language": "he",
  "category": "MARKETING",
  "headerMediaUrl": "https://cdn.example.com/newsletter.jpg",
  "headerFormat": "IMAGE",
  "components": [
    { "type": "BODY", "text": "היי {{1}}, יש לנו חדשות! גלו את הקולקציה החדשה שלנו.", "example": { "body_text": [["דנה"]] } },
    { "type": "BUTTONS", "buttons": [ { "type": "URL", "text": "לצפייה בקולקציה", "url": "https://shop.co.il/new" } ] }
  ]
}
// category=MARKETING ואין FOOTER → Gambot יוסיף אוטומטית:
//   { "type": "FOOTER", "text": "להסרה השב הסר" }'
POST/templates/mediaהרשאה: templates:write

העלאת מדיה (תמונה/וידאו/מסמך) מכתובת URL ציבורית ל-Meta וקבלת header_handle לשימוש חוזר עבור רכיב HEADER של תבנית.

פרמטרים
שםסוגמיקוםחובהתיאור
urlstringbodyכןכתובת URL ציבורית של המדיה.
typestringbodyלאסוג MIME (למשל image/png, video/mp4, application/pdf).
גוף הבקשה
{
  "url": "https://cdn.example.com/summer.jpg",
  "type": "image/jpeg"
}
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/templates/media" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "url": "https://cdn.example.com/summer.jpg", "type": "image/jpeg" }'
תגובה לדוגמה
{
  "success": true,
  "message": "Media uploaded",
  "data": {
    "headerHandle": "4::aW1hZ2Uv...",
    "gmbtMediaId": "?",
    "mediaId": "?",
    "mediaUrl": "https://cdn.example.com/summer.jpg"
  }
}
דוגמאות נוספות
MCP — הכלי gambot_upload_template_media
// MCP tool call — gambot_upload_template_media
{ "url": "https://cdn.example.com/summer.jpg", "type": "image/jpeg" }
// → returns { headerHandle } to place in a HEADER component's example.header_handle

אנשי קשר

יצירה, שליפה ועדכון של אנשי קשר, כולל שדות בסיס ושדות דינמיים (Custom Fields).

GET/contacts/fieldsהרשאה: contacts:read

הגדרות השדות של איש קשר (בסיס + דינמיים). באנשי קשר, הערכים הדינמיים נשמרים כמפתחות ברמה העליונה — שלחו אותם תחת customFields.

בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/contacts/fields" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{
  "success": true,
  "data": { "count": 8, "fields": [
    { "Name": "name", "Type": "text", "Label": "שם", "Options": null },
    { "Name": "city", "Type": "select", "Label": "עיר", "Options": ["תל אביב", "חיפה"] }
  ] }
}
GET/contacts/ctwaהרשאה: contacts:read

אנשי קשר שנוצרו ממודעת Click-to-WhatsApp (CTWA) — כל אחד מועשר במידע על המודעה שממנה הגיע.

פרמטרים
שםסוגמיקוםחובהתיאור
adIdstringqueryלארק אנשי קשר מהמודעה הזו (referralSourceId).
sourceTypestringqueryלאמקור ההפניה: ad או post.
dateFromstringqueryלאתאריך התחלה yyyy-MM-dd (לפי תאריך יצירת איש הקשר).
dateTostringqueryלאתאריך סיום yyyy-MM-dd (כולל).
pageNumberintegerqueryלאמספר עמוד (ברירת מחדל 1).
pageSizeintegerqueryלאגודל עמוד 1–200 (ברירת מחדל 30).
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/contacts/ctwa?sourceType=ad&pageSize=20" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{
  "success": true,
  "data": { "pageNumber": 1, "pageSize": 20, "count": 1, "total": 1, "items": [
    {
      "phoneNumber": "972501234567",
      "name": "דנה כהן",
      "email": "",
      "ownerId": "?", "ownerName": "?",
      "createdOn": "2026-09-14 10:22:11",
      "keys": ["Leads", "Referral-ad"],
      "ctwa": {
        "adId": "120200000000000",
        "sourceType": "ad",
        "headline": "מבצע קיץ 50% הנחה",
        "body": "?",
        "sourceUrl": "https://fb.me/?",
        "platform": "facebook",
        "ctwaClid": "ARA?"
      }
    }
  ] }
}
POST/contactsהרשאה: contacts:write

יצירת איש קשר (מחזיר את הקיים אם הטלפון מוכר). כולל שדות דינמיים תחת customFields.

פרמטרים
שםסוגמיקוםחובהתיאור
phoneNumberstringbodyכןמספר הטלפון. מקבל גם to.
namestringbodyלאשם.
emailstringbodyלאאימייל.
keysstring[]bodyלאתגיות/רשימות (ברירת מחדל Leads).
customFieldsobjectbodyלאשדות דינמיים (נכתבים כמפתחות ברמה העליונה). ראו GET /contacts/fields.
גוף הבקשה
{
  "phoneNumber": "972501234567",
  "name": "דנה כהן",
  "email": "dana@example.com",
  "keys": ["Leads", "VIP"],
  "customFields": { "city": "תל אביב", "birthday": "1990-05-01" }
}
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/contacts" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "phoneNumber": "972501234567", "name": "Dana", "customFields": { "city": "תל אביב" } }'
תגובה לדוגמה
{ "success": true, "message": "Contact created", "data": { "id": "?" } }
GET/contacts/{phone}הרשאה: contacts:read

שליפת איש קשר לפי מספר טלפון.

פרמטרים
שםסוגמיקוםחובהתיאור
phonestringpathכןמספר הטלפון.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/contacts/972501234567" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "phoneNumber": "972501234567", "name": "Dana", "consent": true, "isSpam": false } }
PATCH/contacts/{phone}הרשאה: contacts:write

עדכון איש קשר — רק השדות שנשלחו, כולל שדות דינמיים תחת customFields, וכן consent/isSpam. מקבל גם POST.

פרמטרים
שםסוגמיקוםחובהתיאור
phonestringpathכןמספר הטלפון.
namestringbodyלאשם.
emailstringbodyלאאימייל.
keysstring[]bodyלאתגיות/רשימות.
consentbooleanbodyלאהסכמה לדיוור: true=הסכמה, false=הסרה (מוחרג מדיוורים).
isSpambooleanbodyלאסימון כספאם (מוחרג מדיוורים).
customFieldsobjectbodyלאשדות דינמיים.
גוף הבקשה
{ "name": "Dana Cohen", "customFields": { "city": "חיפה" } }
בקשה לדוגמה
curl -X PATCH "https://api.gambot.co.il/api/v1/contacts/972501234567" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Dana Cohen", "customFields": { "city": "חיפה" } }'
תגובה לדוגמה
{ "success": true, "message": "Contact updated" }
POST/contacts/{phone}/consentהרשאה: contacts:write

קביעת הסכמה לדיוור. consent=false מסיר את איש הקשר מכל הדיוורים העתידיים (הסרה מרשימת התפוצה).

פרמטרים
שםסוגמיקוםחובהתיאור
phonestringpathכןמספר הטלפון.
consentbooleanbodyכןtrue=הסכמה לדיוור, false=הסרה / הוסר מהתפוצה.
sourcestringbodyלאהערת תיעוד חופשית על מקור ההסכמה/ההסרה.
גוף הבקשה
{ "consent": false, "source": "phone call" }
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/contacts/972501234567/consent" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "consent": false, "source": "phone call" }'
תגובה לדוגמה
{ "success": true, "data": { "phoneNumber": "972501234567", "consent": false, "mailable": false }, "message": "Contact opted out — excluded from future broadcasts." }
POST/contacts/{phone}/spamהרשאה: contacts:write

סימון/ביטול סימון של איש קשר כספאם. סימון כספאם גם מסיר אותו מהתפוצה (consent=false).

פרמטרים
שםסוגמיקוםחובהתיאור
phonestringpathכןמספר הטלפון.
isSpambooleanbodyכןtrue=סמן כספאם, false=נקה את הסימון.
גוף הבקשה
{ "isSpam": true }
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/contacts/972501234567/spam" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "isSpam": true }'
תגובה לדוגמה
{ "success": true, "data": { "phoneNumber": "972501234567", "isSpam": true }, "message": "Contact marked as spam and excluded from broadcasts." }
GET/contacts/tagsהרשאה: contacts:read

תגיות אנשי הקשר של הארגון (keys) — התוויות שאיש קשר יכול לשאת ושקמפיינים מכוונים אליהן.

בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/contacts/tags" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "count": 3, "tags": ["Leads", "Customers", "VIP"] } }
GET/contacts/categoriesהרשאה: contacts:read

קטגוריות השיחה של הארגון. לאיש קשר יש לכל היותר קטגוריה אחת (בניגוד לתגיות).

בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/contacts/categories" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "count": 2, "categories": ["מכירות", "תמיכה"] } }
POST/contacts/{phone}/tagsהרשאה: contacts:write

הוספה/הסרה של תגיות לאיש קשר אחד — ממוזג עם התגיות הקיימות (ללא החלפה עיוורת). להחלפה מלאה השתמשו ב-PATCH עם keys.

פרמטרים
שםסוגמיקוםחובהתיאור
phonestringpathכןמספר הטלפון.
addstring[]bodyלאתגיות להוספה (נוצרות אוטומטית אם חדשות).
removestring[]bodyלאתגיות להסרה.
גוף הבקשה
{ "add": ["VIP"], "remove": ["Cold"] }
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/contacts/972501234567/tags" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "add": ["VIP"], "remove": ["Cold"] }'
תגובה לדוגמה
{ "success": true, "data": { "phoneNumber": "972501234567", "keys": ["Leads", "VIP"] }, "message": "Tags updated." }
POST/contacts/tags/bulkהרשאה: contacts:write

הוספה/הסרה של תגיות למספר אנשי קשר בבת אחת. בחרו את הקהל לפי phones ו/או fromTag (כל מי שמחזיק כרגע בתגית זו).

פרמטרים
שםסוגמיקוםחובהתיאור
phonesstring[]bodyלארשימת מספרי טלפון מפורשת.
fromTagstringbodyלאהחל על כל איש קשר שמחזיק כרגע בתגית זו.
addstring[]bodyלאתגיות להוספה.
removestring[]bodyלאתגיות להסרה.
גוף הבקשה
{ "fromTag": "Leads", "add": ["Q1-Campaign"] }
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/contacts/tags/bulk" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "fromTag": "Leads", "add": ["Q1-Campaign"] }'
תגובה לדוגמה
{ "success": true, "data": { "requested": 120, "updated": 120, "notFound": [] }, "message": "Tags updated on 120 contact(s)." }
POST/contacts/{phone}/statusהרשאה: contacts:write

קביעת סטטוס השיחה של איש הקשר (Open / In Process / Closed) — אותו שדה שתיבת הצ׳אט מסננת לפיו.

פרמטרים
שםסוגמיקוםחובהתיאור
phonestringpathכןמספר הטלפון.
statusstringbodyכןOpen | In Process | Closed.
גוף הבקשה
{ "status": "Closed" }
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/contacts/972501234567/status" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "status": "Closed" }'
תגובה לדוגמה
{ "success": true, "data": { "phoneNumber": "972501234567", "status": "Closed" }, "message": "Conversation status updated." }
POST/contacts/{phone}/categoryהרשאה: contacts:write

קביעת קטגוריית השיחה (תווית אחת). מחרוזת ריקה מנקה אותה. ראו GET /contacts/categories.

פרמטרים
שםסוגמיקוםחובהתיאור
phonestringpathכןמספר הטלפון.
categorystringbodyכןתווית הקטגוריה (ריק מנקה).
גוף הבקשה
{ "category": "מכירות" }
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/contacts/972501234567/category" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "category": "מכירות" }'
תגובה לדוגמה
{ "success": true, "data": { "phoneNumber": "972501234567", "category": "מכירות" }, "message": "Conversation category updated." }

לידים

יצירה, שליפה, הצגה ועדכון של לידים — כולל כל שדות הבסיס והשדות הדינמיים (customFields).

GET/leads/fieldsהרשאה: leads:read

הגדרות השדות של ליד — baseFields + customFields. בלידים, הערכים הדינמיים נשמרים במפת customFields מקוננת.

בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/leads/fields" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{
  "success": true,
  "data": {
    "baseFields": ["title", "contactPhone", "value", "priority", "source", "status", "stageId", "..."],
    "customFields": [ { "key": "budget", "label": "תקציב", "type": "number" }, { "key": "region", "label": "אזור", "type": "select", "options": ["צפון", "דרום"] } ]
  }
}
GET/leadsהרשאה: leads:read

הצגת לידים (עם עימוד וחיפוש).

פרמטרים
שםסוגמיקוםחובהתיאור
pageNumberintqueryלאברירת מחדל 1.
pageSizeintqueryלאברירת מחדל 50 (מקסימום 200).
searchstringqueryלאחיפוש חופשי.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/leads?pageSize=50" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "total": 12, "count": 12, "items": [ { "id": "?", "title": "?" } ] } }
GET/leads/{leadId}הרשאה: leads:read

שליפת ליד בודד לפי מזהה.

פרמטרים
שםסוגמיקוםחובהתיאור
leadIdstringpathכןמזהה הליד.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/leads/LEAD_ID" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "id": "LEAD_ID", "title": "?", "status": "?" } }
POST/leadsהרשאה: leads:write

יצירת ליד CRM (איש קשר נוצר אם חסר, שליחת תבנית אופציונלית). מקבל את כל שדות הבסיס + customFields.

פרמטרים
שםסוגמיקוםחובהתיאור
leadobjectbodyכןאובייקט הליד: PhoneNumber (חובה), Name, Email, וכל שדה בסיס (title, value, priority, source, status, stageId, companyName…) + customFields.
templateMessageDataobjectbodyלאתבנית לשליחה מיידית לליד.
גוף הבקשה
{
  "lead": {
    "PhoneNumber": "972501234567",
    "Name": "דנה כהן",
    "Email": "dana@example.com",
    "title": "פנייה מהאתר",
    "value": "2500",
    "currency": "ILS",
    "priority": "high",
    "source": "website",
    "companyName": "Acme",
    "customFields": { "budget": "5000", "region": "צפון" }
  }
}
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/leads" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "lead": { "PhoneNumber": "972501234567", "Name": "Dana", "title": "Website lead", "customFields": { "budget": "5000" } } }'
תגובה לדוגמה
{ "success": true, "message": "Lead created successfully.", "data": { "leadId": "?" } }
PATCH/leads/{leadId}הרשאה: leads:write

עדכון ליד — כל שדה בסיס + customFields (ממוזג עם הקיים). מקבל גם POST.

פרמטרים
שםסוגמיקוםחובהתיאור
leadIdstringpathכןמזהה הליד.
titlestringbodyלאכותרת.
statusstringbodyלאסטטוס.
stageIdstringbodyלאשלב בצינור.
valuestringbodyלאערך העסקה.
tagsstring[]bodyלאתגיות.
customFieldsobjectbodyלאשדות דינמיים (ממוזגים עם הקיימים).
גוף הבקשה
{ "status": "in_progress", "value": "1500", "customFields": { "region": "דרום" } }
בקשה לדוגמה
curl -X PATCH "https://api.gambot.co.il/api/v1/leads/LEAD_ID" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "status": "in_progress", "customFields": { "region": "דרום" } }'
תגובה לדוגמה
{ "success": true, "message": "Lead updated" }

פניות

יצירה, שליפה, הצגה ועדכון של פניות (Tickets) — כולל שדות בסיס ושדות דינמיים (customFields).

GET/cases/fieldsהרשאה: cases:read

הגדרות השדות של פנייה — baseFields + customFields. בפניות, הערכים הדינמיים נשמרים במפת customFields מקוננת.

בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/cases/fields" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{
  "success": true,
  "data": {
    "baseFields": ["subject", "description", "contactPhone", "category", "priority", "statusId", "stageId", "..."],
    "customFields": [ { "key": "orderNumber", "label": "מספר הזמנה", "type": "text" } ]
  }
}
GET/casesהרשאה: cases:read

הצגת פניות (עם עימוד וחיפוש).

פרמטרים
שםסוגמיקוםחובהתיאור
pageNumberintqueryלאברירת מחדל 1.
pageSizeintqueryלאברירת מחדל 50 (מקסימום 200).
searchstringqueryלאחיפוש חופשי.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/cases?pageSize=50" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "total": 5, "count": 5, "items": [ { "id": "?", "subject": "?" } ] } }
GET/cases/{caseId}הרשאה: cases:read

שליפת פנייה בודדת לפי מזהה.

פרמטרים
שםסוגמיקוםחובהתיאור
caseIdstringpathכןמזהה הפנייה.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/cases/CASE_ID" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "id": "CASE_ID", "subject": "?", "statusId": "?" } }
GET/cases/slaהרשאה: cases:read

פניות לפי SLA לכל שלב: אילו פניות חרגו מיעד הזמן של השלב או בסיכון. status=open (ברירת מחדל: breached+at_risk), all, breached, at_risk, ok, none, resolved. מודע לשעות העבודה כשמוגדר.

פרמטרים
שםסוגמיקוםחובהתיאור
statusstringqueryלאopen (ברירת מחדל) | all | breached | at_risk | ok | none | resolved
pageNumbernumberqueryלאמספר עמוד.
pageSizenumberqueryלאגודל עמוד (עד 200).
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/cases/sla?status=open" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{
  "success": true,
  "data": {
    "status": "open",
    "config": { "businessHoursEnabled": true, "stages": [ { "stageId": "new", "stageName": "New", "hours": 1, "unit": "days", "enabled": true } ] },
    "count": 1, "total": 1,
    "items": [
      { "caseId": "CASE_ID", "subject": "Order issue", "contactPhone": "972501234567", "priority": "high",
        "stageId": "new", "stageName": "New", "stageEnteredAt": "2026-09-13T08:00:00Z", "stageDueAt": "2026-09-14T08:00:00Z",
        "slaHours": 1, "slaUnit": "days", "minutesInStage": 2880, "minutesRemaining": -1440, "breached": true, "status": "breached" }
    ]
  }
}
POST/casesהרשאה: cases:write

יצירת פנייה חדשה. כולל category ושדות דינמיים תחת customFields.

פרמטרים
שםסוגמיקוםחובהתיאור
subjectstringbodyכןנושא הפנייה.
descriptionstringbodyלאתיאור.
contactPhonestringbodyלאקישור לאיש קשר.
prioritystringbodyלאעדיפות.
categorystringbodyלאקטגוריה.
customFieldsobjectbodyלאשדות דינמיים. ראו GET /cases/fields.
גוף הבקשה
{ "subject": "בעיה בהזמנה", "contactPhone": "972501234567", "priority": "high", "category": "billing", "customFields": { "orderNumber": "1234" } }
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/cases" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "subject": "Order issue", "contactPhone": "972501234567", "customFields": { "orderNumber": "1234" } }'
תגובה לדוגמה
{ "success": true, "message": "Case created", "data": { "id": "?" } }
PATCH/cases/{caseId}הרשאה: cases:write

עדכון פנייה — שדות בסיס + customFields (ממוזג עם הקיים). מקבל גם POST.

פרמטרים
שםסוגמיקוםחובהתיאור
caseIdstringpathכןמזהה הפנייה.
statusIdstringbodyלאסטטוס.
prioritystringbodyלאעדיפות.
categorystringbodyלאקטגוריה.
customFieldsobjectbodyלאשדות דינמיים (ממוזגים עם הקיימים).
גוף הבקשה
{ "statusId": "closed", "customFields": { "resolution": "refunded" } }
בקשה לדוגמה
curl -X PATCH "https://api.gambot.co.il/api/v1/cases/CASE_ID" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "statusId": "closed", "customFields": { "resolution": "refunded" } }'
תגובה לדוגמה
{ "success": true, "message": "Case updated" }

משימות

יצירה, הצגה, שליפה ועדכון של משימות (עם קישור אופציונלי לאיש קשר).

GET/tasksהרשאה: tasks:read

הצגת המשימות של הארגון.

בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/tasks" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "count": 3, "items": [ { "id": "?", "title": "?" } ] } }
GET/tasks/{taskId}הרשאה: tasks:read

שליפת משימה בודדת לפי מזהה.

פרמטרים
שםסוגמיקוםחובהתיאור
taskIdstringpathכןמזהה המשימה.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/tasks/TASK_ID" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "id": "TASK_ID", "title": "?", "status": "open" } }
PATCH/tasks/{taskId}הרשאה: tasks:write

עדכון משימה — רק השדות שנשלחו. מקבל גם POST.

פרמטרים
שםסוגמיקוםחובהתיאור
taskIdstringpathכןמזהה המשימה.
statusstringbodyלאסטטוס (open/done…).
prioritystringbodyלאעדיפות.
dueDatestringbodyלאתאריך יעד.
גוף הבקשה
{ "status": "done" }
בקשה לדוגמה
curl -X PATCH "https://api.gambot.co.il/api/v1/tasks/TASK_ID" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "status": "done" }'
תגובה לדוגמה
{ "success": true, "message": "Task updated" }
POST/tasksהרשאה: tasks:write

יצירת משימה חדשה.

פרמטרים
שםסוגמיקוםחובהתיאור
titlestringbodyכןכותרת המשימה.
descriptionstringbodyלאתיאור.
dueDatestringbodyלאתאריך יעד.
prioritystringbodyלאעדיפות (low/medium/high).
contactPhonestringbodyלאקישור לאיש קשר.
גוף הבקשה
{ "title": "להתקשר לדנה", "dueDate": "2026-09-20", "priority": "high", "contactPhone": "972501234567" }
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/tasks" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "title": "Call Dana", "priority": "high" }'
תגובה לדוגמה
{ "success": true, "message": "Task created", "data": { "id": "?" } }

הערות

קריאת ההערות שנכתבו ידנית ומפוזרות ברחבי המערכת — על אנשי קשר (מהצ׳אט/ציר הזמן), לידים ופניות. זהו אותו מקור נתונים כמו "מרכז ההערות" שבמערכת. סננו לפי מקור, טווח תאריכים, כותב או חיפוש חופשי, ושלפו את ההערות של רשומה בודדת.

GET/notesהרשאה: notes:read

הצגה/חיפוש הערות מכל המקורות (אנשי קשר, לידים, פניות). ברירת מחדל: 30 הימים האחרונים.

פרמטרים
שםסוגמיקוםחובהתיאור
sourcestringqueryלאסינון לפי מקור: contact | lead | case (השמיטו לכולם).
dateFromstringqueryלאתאריך התחלה yyyy-MM-dd.
dateTostringqueryלאתאריך סיום yyyy-MM-dd (כולל).
userIdstringqueryלארק הערות שנכתבו על ידי משתמש זה (uID).
searchstringqueryלאהתאמת טקסט חופשי בתוך גוף ההערה.
pageNumberintqueryלאברירת מחדל 1.
pageSizeintqueryלאברירת מחדל 30 (מקסימום 200).
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/notes?source=lead&search=budget&pageSize=30" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{
  "success": true,
  "data": {
    "pageNumber": 1, "pageSize": 30, "count": 2, "total": 2,
    "items": [
      { "id": "?", "note": "Customer asked for a discount", "entityType": "lead", "entityId": "LEAD_ID", "contactId": "972501234567", "contactName": "Dana", "entityName": "Website lead", "createdOn": "2026-09-14T10:20:00Z", "createdById": "?", "createdByName": "Agent" }
    ]
  }
}
GET/notes/{entityType}/{entityId}הרשאה: notes:read

הערות עבור רשומה בודדת. entityType: contact | lead | case. עבור contact העבירו מספר טלפון כ-entityId.

פרמטרים
שםסוגמיקוםחובהתיאור
entityTypestringpathכןcontact | lead | case.
entityIdstringpathכןטלפון (עבור contact) או מזהה הליד/הפנייה.
limitintqueryלאמקסימום הערות (ברירת מחדל 50, מקסימום 500).
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/notes/lead/LEAD_ID" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "entityType": "lead", "entityId": "LEAD_ID", "count": 1, "items": [ { "id": "?", "note": "Follow up next week", "createdOn": "2026-09-14T10:20:00Z", "createdByName": "Agent" } ] } }

קמפיינים

קמפיינים לדיוור WhatsApp — יצירת כל סוג (הרצה ידנית או מתוזמן חד-פעמי/חוזר), הצגה, שליפה, עדכון, מחיקה, קריאת תוצאות, הרצה, שליחה אד-הוק ללא שמירה, ובדיקה לנמען בודד. קהל: רשימת טלפונים, Excel/CSV, או סינון CRM. משתני תבנית לכל נמען נשלחים כ-variables: { "var1": ?, "var2": ? } לפי סדר ה-placeholders בתבנית ({{1}}=var1). כך סוכן AI יכול לקחת קובץ Excel, למפות עמודה→משתנה, ולשלוח לכולם (MCP: gambot_send_campaign_from_excel).
ציות מובנה: כל ארגון מגיע עם תהליך הסרה פעיל — נמען שמשיב הסר/הסרה/stop/unsubscribe מסומן consent=false ומוחרג אוטומטית מדיוורים עתידיים. תגובות היצירה/הרצה/שליחה/בדיקה מחזירות זאת תחת optOut (enabled=true כברירת מחדל). אשרו הסכמה לדיוור באמצעות consentConfirmed (ברירת מחדל true), המוחזר תחת consent.
אימייל תוצאות: קמפיינים שנוצרים דרך ה-API/MCP שולחים אוטומטית סיכום תוצאות הרצה למחרת (sendResultsSummary=true, sendResultsAfterDays=1) עם ניתוח AI של התגובות (aiAnalysisEnabled=true) — ניתן לעקוף או להשבית כל אחד. עבור קמפיינים חוזרים, הרצה שנופלת בשבת/חג ישראלי מדולגת כברירת מחדל (holidayHandling="skip"; גם before/after/send).

GET/campaignsהרשאה: campaigns:read

הצגת כל הקמפיינים של הארגון.

בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/campaigns" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "count": 5, "items": [ { "campaingId": "?", "campaignName": "?", "campaignTrigger": "Manually", "messageType": "Template" } ] } }
GET/campaigns/scheduledהרשאה: campaigns:read

קמפיינים מתוזמנים הממתינים להרצה.

בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/campaigns/scheduled" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "count": 2, "items": [ { "campaignId": "?", "runAt": "2026-07-01T06:00:00Z", "status": "waiting" } ] } }
GET/campaigns/{campaignId}הרשאה: campaigns:read

קמפיין בודד לפי מזהה.

פרמטרים
שםסוגמיקוםחובהתיאור
campaignIdstringpathכןמזהה הקמפיין.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/campaigns/CAMPAIGN_ID" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "campaingId": "CAMPAIGN_ID", "campaignName": "?", "messageType": "Template", "wabaTemplateId": "?" } }
GET/campaigns/{campaignId}/resultsהרשאה: campaigns:read

תוצאות/דוח הרצה (נשלחו/נמסרו/נקראו/תגובות/הקלקות).

פרמטרים
שםסוגמיקוםחובהתיאור
campaignIdstringpathכןמזהה הקמפיין.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/campaigns/CAMPAIGN_ID/results" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "count": 1, "results": [ { "CampaignResultsId": "?", "Status": "Sent All", "CampaignResultSummary": { "TotalContactsNumber": "120", "NumberOfSentMessage": "120", "NumberOfReadMessage": "88" } } ] } }
POST/campaignsהרשאה: campaigns:write

יצירת קמפיין — ידני או מתוזמן (חד-פעמי/חוזר). קהל: Excel, סינון CRM או רשימה. ראו דוגמאות מלאות למטה.

פרמטרים
שםסוגמיקוםחובהתיאור
campaignNamestringbodyכןשם הקמפיין.
messageTypestringbodyכןTemplate (תבנית) או regular (טקסט חופשי).
wabaTemplateIdstringbodyלאמזהה תבנית (חובה כאשר messageType=Template).
messagestringbodyלאטקסט ההודעה (כאשר regular).
campaignTriggerstringbodyלאManually (ברירת מחדל) או Scheduled.
scheduleTypestringbodyלאonce (חד-פעמי) או repeated (חוזר).
runAtstringbodyלאתאריך ושעת הרצה, למשל 2026-07-01T09:00:00.
timezonestringbodyלאאזור זמן IANA, למשל Asia/Jerusalem.
intervalstringbodyלאSecond/Minute/Hour/Day/Week/Month/Year (חוזר).
intervalNumberintbodyלאכל N מרווחים.
endConditionobjectbodyלא{ type: none|until|count, value }.
recipientSourcestringbodyלאלמשל "Excel".
ExcelDataobjectbodyלא{ recipients: [{ phone, variables, rowData }] }.
ContactFiltersobjectbodyלאפלח CRM: { filters:[…], logic:"AND|OR" }.
templateVariableQueryobject[]bodyלאממפה משתני תבנית לעמודות/שדות.
fromNumberIdstringbodyלאשולח לארגונים מרובי-מספרים — phoneNumberId או מספר תצוגה (ראו GET /numbers). ברירת מחדל: המספר הראשי.
sendResultsSummaryboolbodyלאשליחת סיכום תוצאות הרצה במייל אחרי כל הרצה. ברירת מחדל דרך ה-API/MCP: true. שלחו false להשבתה.
sendResultsAfterDaysintbodyלאכמה ימים אחרי ההרצה לשלוח את הסיכום במייל. ברירת מחדל: 1 (למחרת). טווח 1–60.
resultsEmailTostringbodyלאנמען הסיכום. ברירת מחדל: אימייל הארגון.
aiAnalysisEnabledboolbodyלאניתוח AI של התגובות (מענים, אוטומטי מול מתעניין, ROI) בתוך הסיכום. ברירת מחדל: true.
holidayHandlingstringbodyלאלקמפיינים חוזרים — כאשר הרצה נופלת בשבת/חג ישראלי: skip (ברירת מחדל דרך ה-API/MCP) | before | after | send.
גוף הבקשה
{
  "campaignName": "promo_summer_0626",
  "campaignTrigger": "Manually",
  "messageType": "Template",
  "wabaTemplateId": "promo_summer_sale_0626",
  "recipientSource": "Excel",
  "ExcelData": {
    "recipients": [
      { "phone": "972501234567", "variables": { "var1": "דנה" } },
      { "phone": "972507654321", "variables": { "var1": "יוסי" } }
    ]
  }
}
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/campaigns" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "campaignName": "promo_0626", "messageType": "Template", "wabaTemplateId": "promo_summer_sale_0626", "recipientSource": "Excel", "ExcelData": { "recipients": [ { "phone": "972501234567", "variables": { "var1": "דנה" } } ] } }'
תגובה לדוגמה
{
  "success": true,
  "message": "Create Campaign successfully",
  "data": {
    "campaignId": "?",
    "scheduling": {
      "isScheduled": true,
      "isRecurring": true,
      "holidayHandling": "skip",
      "holidayHandlingOptions": ["skip", "before", "after", "send"],
      "note": "For a scheduled/recurring campaign, occurrences on Shabbat/Israeli holiday are handled by holidayHandling. Ask the user (skip / before / after / send) and PATCH the campaign accordingly."
    }
  }
}
דוגמאות נוספות
1) ידני + קהל מסינון CRM
curl -X POST "https://api.gambot.co.il/api/v1/campaigns" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "campaignName": "vip_reactivation_0626",
  "campaignTrigger": "Manually",
  "messageType": "Template",
  "wabaTemplateId": "welcome_new_customer_0626",
  "ContactFilters": {
    "logic": "AND",
    "filters": [
      { "filterType": "group", "operator": "equals", "value": "VIP" }
    ]
  }
}'
2) מתוזמן חד-פעמי (once)
curl -X POST "https://api.gambot.co.il/api/v1/campaigns" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "campaignName": "holiday_greeting_0626",
  "campaignTrigger": "Scheduled",
  "scheduleType": "once",
  "runAt": "2026-09-20T09:00:00",
  "timezone": "Asia/Jerusalem",
  "messageType": "Template",
  "wabaTemplateId": "appointment_reminder_0626",
  "recipientSource": "Excel",
  "ExcelData": { "recipients": [ { "phone": "972501234567" } ] }
}'
3) מתוזמן חוזר (repeated) — שבועי עד תאריך
curl -X POST "https://api.gambot.co.il/api/v1/campaigns" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "campaignName": "weekly_newsletter_0626",
  "campaignTrigger": "Scheduled",
  "scheduleType": "repeated",
  "interval": "Week",
  "intervalNumber": 1,
  "runAt": "2026-07-06T08:00:00",
  "timezone": "Asia/Jerusalem",
  "endCondition": { "type": "until", "value": "2026-12-31T00:00:00" },
  "messageType": "regular",
  "message": "עדכון שבועי מאיתנו",
  "recipientSource": "Excel",
  "ExcelData": { "recipients": [ { "phone": "972501234567" } ] }
}'
4) חוזר לפי מספר הרצות (count)
curl -X POST "https://api.gambot.co.il/api/v1/campaigns" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "campaignName": "daily_tip_0626",
  "campaignTrigger": "Scheduled",
  "scheduleType": "repeated",
  "interval": "Day",
  "intervalNumber": 1,
  "runAt": "2026-07-01T07:00:00",
  "timezone": "Asia/Jerusalem",
  "endCondition": { "type": "count", "value": "7" },
  "messageType": "regular",
  "message": "הטיפ היומי שלכם",
  "ContactFilters": { "logic": "AND", "filters": [ { "filterType": "group", "operator": "equals", "value": "Leads" } ] }
}'
PATCH/campaigns/{campaignId}הרשאה: campaigns:write

עדכון קמפיין (שלחו את אובייקט הקמפיין המלא). מקבל גם POST.

פרמטרים
שםסוגמיקוםחובהתיאור
campaignIdstringpathכןמזהה הקמפיין.
גוף הבקשה
{ "campaignName": "promo_summer_0626_v2", "messageType": "Template", "wabaTemplateId": "promo_summer_sale_0626" }
בקשה לדוגמה
curl -X PATCH "https://api.gambot.co.il/api/v1/campaigns/CAMPAIGN_ID" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "campaignName": "promo_summer_0626_v2" }'
תגובה לדוגמה
{ "success": true, "message": "Update Campaign successfully" }
DELETE/campaigns/{campaignId}הרשאה: campaigns:write

מחיקת קמפיין.

פרמטרים
שםסוגמיקוםחובהתיאור
campaignIdstringpathכןמזהה הקמפיין.
בקשה לדוגמה
curl -X DELETE "https://api.gambot.co.il/api/v1/campaigns/CAMPAIGN_ID" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "message": "Campaign deleted" }
POST/campaigns/{campaignId}/runהרשאה: campaigns:run

הרצת קמפיין קיים (שמור) עכשיו — מזהה את הנמענים ומבצע.

פרמטרים
שםסוגמיקוםחובהתיאור
campaignIdstringpathכןמזהה הקמפיין.
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/campaigns/CAMPAIGN_ID/run" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{
  "success": true,
  "message": "Campaign run started.",
  "data": { "campaignResultsId": "?", "campaignId": "?", "status": "In Process", "summary": { "TotalContactsNumber": "120" } }
}
POST/campaigns/sendהרשאה: campaigns:run

הרצת קמפיין אד-הוק ללא שמירה. ספקו קהל (רשימת טלפונים / excel / סינון) והודעה (תבנית או טקסט).

פרמטרים
שםסוגמיקוםחובהתיאור
messageTypestringbodyכןTemplate או regular.
templateIdstringbodyלאמזהה תבנית (כאשר Template).
messagestringbodyלאטקסט (כאשר regular).
recipientPhoneNumbersstring[]bodyלארשימת טלפונים מפורשת.
excelRecipientsobject[]bodyלא[{ phone, variables, rowData }].
keysstring[]bodyלאקהל לפי תגיות/רשימות: שליחה לכל איש קשר המתויג באחת מאלה (למשל ["לקוחות חדשים"]). הדרך הפשוטה ל"שליחה לתגית X". מקבל גם tags.
filtersobjectbodyלאפלח CRM מתקדם — מתורגם למספרי טלפון. { logic, filters:[...] }. פריט תגית: { filterType:"group", operator:"equals", groupValue:["VIP"] }.
consentConfirmedboolbodyלאאישור הסכמה לדיוור לקהל זה. ברירת מחדל true. נמענים תמיד יכולים להסיר עצמם (ראו optOut בתגובה).
dryRunboolbodyלאתצוגה מקדימה בלבד — לא שולח. מחזיר את גודל הקהל, ולדיוור regular כמה נמענים עם חלון 24 שעות סגור (לא יקבלו אותו) בתוספת המלצה.
confirmRegularboolbodyלאנדרש כדי לשלוח בפועל דיוור "regular" (טקסט חופשי) דרך ה-MCP. בלעדיו השליחה נחסמת ומחזירה regular_window_confirmation_required עם מספר החלונות הסגורים — הציגו זאת למשתמש והמליצו על תבנית, ואז שלחו שוב עם confirmRegular=true. מתעלמים ממנו כאשר messageType=Template.
confirmOverLimitboolbodyלאנדרש כדי לשלוח בפועל דרך ה-MCP כשהקהל חורג ממגבלת הדיוור היומית של המספר. בלעדיו השליחה נחסמת ומחזירה messaging_limit_exceeded עם data.messagingLimit (tier, dailyLimit, guidance, suggestedBlocks) — הציגו למשתמש את המגבלה ואת שתי האפשרויות: בלוקים ידניים (חזרה עם confirmOverLimit=true בכל יום) או בלוקים מתוזמנים אוטומטית (קמפיין Scheduled לכל תאריך ב-suggestedBlocks).
fromNumberIdstringbodyלאשולח — phoneNumberId או מספר תצוגה (ראו GET /numbers). ברירת מחדל: המספר הראשי.
גוף הבקשה
{
  "messageType": "Template",
  "templateId": "promo_summer_sale_0626",
  "consentConfirmed": true,
  "excelRecipients": [
    { "phone": "972501234567", "variables": { "var1": "דנה" } },
    { "phone": "972507654321", "variables": { "var1": "יוסי" } }
  ]
}
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/campaigns/send" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "messageType": "Template", "templateId": "promo_summer_sale_0626", "recipientPhoneNumbers": ["972501234567","972507654321"] }'
תגובה לדוגמה
{
  "success": true,
  "message": "Campaign send started.",
  "data": {
    "result": { "campaignResultsId": "?", "status": "In Process", "source": "mcp" },
    "consent": { "confirmed": true, "source": "api" },
    "messagingLimit": {
      "tier": "TIER_2K",
      "dailyLimit": 2000,
      "dailyLimitLabel": "2,000 business-initiated conversations / 24h",
      "qualityRating": "GREEN",
      "audienceCount": 2,
      "withinLimit": true
    },
    "broadcastAllowance": {
      "enforced": true,
      "isTrial": true,
      "planName": "trial",
      "limit": 300,
      "used": 40,
      "remainingIncluded": 260,
      "bankBalance": 0,
      "available": 260,
      "audienceCount": 2,
      "withinAllowance": true
    },
    "optOut": {
      "enabled": true,
      "keywords": ["הסר", "הסרה", "stop", "unsubscribe"],
      "confirmationMessage": "הוסרת בהצלחה מרשימת התפוצה\nלא תקבל/י עוד הודעות שיווקיות",
      "howItWorks": "Any recipient who replies with an opt-out keyword is marked consent=false and is automatically excluded from all future broadcasts."
    }
  }
}
דוגמאות נוספות
שליחה לתגית (הדרך הפשוטה)
curl -X POST "https://api.gambot.co.il/api/v1/campaigns/send" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "messageType": "Template",
  "templateId": "promo_summer_sale_0626",
  "keys": ["לקוחות חדשים"]
}'
אד-הוק לפי סינון CRM
curl -X POST "https://api.gambot.co.il/api/v1/campaigns/send" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "messageType": "regular",
  "message": "מבצע חדש רק עבורכם!",
  "filters": { "logic": "OR", "filters": [ { "filterType": "group", "operator": "equals", "groupValue": ["VIP"] } ] }
}'
POST/campaigns/testהרשאה: campaigns:run

בדיקת קמפיין — שליחה לנמען בודד (תבנית או טקסט). מצוין לפני דיוור מלא.

פרמטרים
שםסוגמיקוםחובהתיאור
tostringbodyכןטלפון נמען הבדיקה.
messageTypestringbodyלאברירת מחדל Template אם templateId מוגדר.
templateIdstringbodyלאמזהה תבנית.
messagestringbodyלאטקסט (כאשר regular).
variablesobjectbodyלאמשתני תבנית, למשל { "var1": "דנה" }.
fromNumberIdstringbodyלאשולח — phoneNumberId או מספר תצוגה (ראו GET /numbers). ברירת מחדל: המספר הראשי.
גוף הבקשה
{
  "to": "972501234567",
  "messageType": "Template",
  "templateId": "promo_summer_sale_0626",
  "variables": { "var1": "דנה" }
}
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/campaigns/test" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "to": "972501234567", "templateId": "promo_summer_sale_0626", "variables": { "var1": "דנה" } }'
תגובה לדוגמה
{ "success": true, "message": "Test send started.", "data": { "campaignResultsId": "?", "status": "In Process" } }

הצעות מחיר

יצירה, הצגה, שליפה ועדכון של הצעות מחיר.

GET/quotesהרשאה: quotes:read

הצגת הצעות מחיר (עם עימוד וסינון סטטוס).

פרמטרים
שםסוגמיקוםחובהתיאור
pageNumberintqueryלאברירת מחדל 1.
pageSizeintqueryלאברירת מחדל 50.
searchstringqueryלאחיפוש.
statusstringqueryלאdraft/sent/accepted…
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/quotes?pageSize=50" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "total": 8, "items": [ { "id": "?", "quoteNumber": "Q-001", "total": 1500 } ] } }
GET/quotes/{quoteId}הרשאה: quotes:read

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

פרמטרים
שםסוגמיקוםחובהתיאור
quoteIdstringpathכןמזהה הצעת המחיר.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/quotes/QUOTE_ID" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "id": "QUOTE_ID", "items": [ ? ], "total": 1500 } }
POST/quotesהרשאה: quotes:write

יצירת הצעת מחיר. הגוף = שדות ההצעה (או תחת quoteData).

פרמטרים
שםסוגמיקוםחובהתיאור
titlestringbodyלאכותרת.
contactPhonestringbodyלאטלפון הלקוח.
itemsobject[]bodyלאשורות פריטים.
totalnumberbodyלאסה"כ.
currencystringbodyלאמטבע.
גוף הבקשה
{
  "title": "הצעת מחיר לייעוץ",
  "contactPhone": "972501234567",
  "currency": "ILS",
  "items": [ { "name": "ייעוץ", "quantity": 2, "price": 750 } ],
  "total": 1500
}
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/quotes" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "title": "Consulting", "total": 1500 }'
תגובה לדוגמה
{ "success": true, "message": "Quote created", "data": { "id": "?" } }
PATCH/quotes/{quoteId}הרשאה: quotes:write

עדכון שדות הצעת מחיר (חלקי). מקבל גם POST.

פרמטרים
שםסוגמיקוםחובהתיאור
quoteIdstringpathכןמזהה הצעת המחיר.
statusstringbodyלאסטטוס.
גוף הבקשה
{ "status": "sent" }
בקשה לדוגמה
curl -X PATCH "https://api.gambot.co.il/api/v1/quotes/QUOTE_ID" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "status": "sent" }'
תגובה לדוגמה
{ "success": true, "message": "Quote updated" }

חשבוניות

יצירה, הצגה, שליפה, עדכון והפקה (issue) של חשבוניות.

GET/invoicesהרשאה: invoices:read

הצגת חשבוניות (עם עימוד וסינון סטטוס/סוג).

פרמטרים
שםסוגמיקוםחובהתיאור
pageNumberintqueryלאברירת מחדל 1.
pageSizeintqueryלאברירת מחדל 50.
statusstringqueryלאdraft/issued…
typestringqueryלאtax_invoice/receipt…
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/invoices?pageSize=50" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "total": 20, "items": [ { "id": "?", "documentNumber": "?", "total": 1755 } ] } }
GET/invoices/{invoiceId}הרשאה: invoices:read

שליפת חשבונית בודדת.

פרמטרים
שםסוגמיקוםחובהתיאור
invoiceIdstringpathכןמזהה החשבונית.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/invoices/INVOICE_ID" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "id": "INVOICE_ID", "status": "draft", "total": 1755 } }
POST/invoicesהרשאה: invoices:write

יצירת טיוטת חשבונית. הגוף = שדות החשבונית (או תחת invoiceData).

פרמטרים
שםסוגמיקוםחובהתיאור
typestringbodyלאtax_invoice / receipt / combined…
contactPhonestringbodyלאטלפון הלקוח.
itemsobject[]bodyלאשורות פריטים.
totalnumberbodyלאסה"כ.
גוף הבקשה
{
  "type": "tax_invoice",
  "contactPhone": "972501234567",
  "items": [ { "name": "שירות", "quantity": 1, "price": 1500 } ],
  "vatRate": 17,
  "total": 1755
}
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/invoices" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "type": "tax_invoice", "total": 1755 }'
תגובה לדוגמה
{ "success": true, "message": "Invoice created", "data": { "id": "?" } }
PATCH/invoices/{invoiceId}הרשאה: invoices:write

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

פרמטרים
שםסוגמיקוםחובהתיאור
invoiceIdstringpathכןמזהה החשבונית.
גוף הבקשה
{ "notes": "תודה!" }
בקשה לדוגמה
curl -X PATCH "https://api.gambot.co.il/api/v1/invoices/INVOICE_ID" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "notes": "Thanks!" }'
תגובה לדוגמה
{ "success": true, "message": "Invoice updated" }
POST/invoices/{invoiceId}/issueהרשאה: invoices:write

הפקת חשבונית — נועלת אותה ומקצה את מספר המסמך הרשמי.

פרמטרים
שםסוגמיקוםחובהתיאור
invoiceIdstringpathכןמזהה החשבונית.
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/invoices/INVOICE_ID/issue" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "message": "Invoice issued", "data": { "documentNumber": "2026-0001" } }

הזמנות

יצירה, הצגה, שליפה ועדכון של הזמנות חנות.

GET/ordersהרשאה: orders:read

הצגת הזמנות (סינון לפי סטטוס/חנות/טווח תאריכים).

פרמטרים
שםסוגמיקוםחובהתיאור
statusstringqueryלאסטטוס.
storeIdstringqueryלאמזהה החנות.
dateFromstringqueryלאמתאריך.
dateTostringqueryלאעד תאריך.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/orders?status=new" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "count": 4, "items": [ { "id": "?", "orderNumber": "1001", "total": 299 } ] } }
GET/orders/{orderId}הרשאה: orders:read

שליפת הזמנה בודדת.

פרמטרים
שםסוגמיקוםחובהתיאור
orderIdstringpathכןמזהה ההזמנה.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/orders/ORDER_ID" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "id": "ORDER_ID", "status": "new", "items": [ ? ] } }
POST/ordersהרשאה: orders:write

יצירת הזמנה. הגוף = שדות ההזמנה.

פרמטרים
שםסוגמיקוםחובהתיאור
customerNamestringbodyלאשם הלקוח.
customerPhonestringbodyלאטלפון הלקוח.
itemsobject[]bodyלאפריטים.
totalnumberbodyלאסה"כ.
גוף הבקשה
{
  "customerName": "דנה",
  "customerPhone": "972501234567",
  "items": [ { "name": "חולצה", "quantity": 2, "price": 99 } ],
  "total": 198,
  "status": "new"
}
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/orders" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "customerPhone": "972501234567", "total": 198 }'
תגובה לדוגמה
{ "success": true, "message": "Order created", "data": { "orderId": "?" } }
PATCH/orders/{orderId}הרשאה: orders:write

עדכון הזמנה (merge). מקבל גם POST.

פרמטרים
שםסוגמיקוםחובהתיאור
orderIdstringpathכןמזהה ההזמנה.
גוף הבקשה
{ "status": "shipped", "trackingNumber": "IL123" }
בקשה לדוגמה
curl -X PATCH "https://api.gambot.co.il/api/v1/orders/ORDER_ID" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "status": "shipped" }'
תגובה לדוגמה
{ "success": true, "message": "Order updated" }

חתימה אלקטרונית

קריאה בלבד — מסמכי חתימה, תוצאות החתימה שלהם, ושליפת קישור/י החתימה להפצה. יצירה מתבצעת בממשק Gambot.

GET/signaturesהרשאה: signatures:read

הצגת מסמכי חתימה (החדשים ראשונים).

פרמטרים
שםסוגמיקוםחובהתיאור
limitintqueryלאברירת מחדל 100.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/signatures?limit=100" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "count": 12, "items": [ { "id": "?", "documentName": "?", "status": "?" } ] } }
GET/signatures/{documentId}הרשאה: signatures:read

מסמך חתימה בודד כולל תוצאות החתימה (Signatures).

פרמטרים
שםסוגמיקוםחובהתיאור
documentIdstringpathכןמזהה המסמך.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/signatures/DOC_ID" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "id": "DOC_ID", "Signatures": [ { "signerName": "?", "signedAt": "?" } ] } }

טפסים

הגדרות טפסים, הגשות (תוצאות) והקישור הציבורי להפצה. יצירת טפסים מתבצעת בממשק Gambot.

GET/formsהרשאה: forms:read

הצגת טפסי ווב.

פרמטרים
שםסוגמיקוםחובהתיאור
limitintqueryלאברירת מחדל 200.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/forms" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "count": 3, "items": [ { "id": "?", "title": "טופס יצירת קשר" } ] } }
GET/forms/{formId}הרשאה: forms:read

הגדרת טופס בודד.

פרמטרים
שםסוגמיקוםחובהתיאור
formIdstringpathכןמזהה הטופס.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/forms/FORM_ID" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "id": "FORM_ID", "title": "?", "fields": [ ? ] } }
GET/forms/{formId}/submissionsהרשאה: forms:read

הגשות (תוצאות) של טופס.

פרמטרים
שםסוגמיקוםחובהתיאור
formIdstringpathכןמזהה הטופס.
limitintqueryלאברירת מחדל 500.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/forms/FORM_ID/submissions" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "count": 40, "items": [ { "id": "?", "data": { ? } } ] } }

תבניות מסמכים

תבניות מסמכים, הגשות מילוי (תוצאות), ויצירת קישור מילוי להפצה ללקוח.

GET/documentsהרשאה: documents:read

הצגת תבניות מסמכים.

פרמטרים
שםסוגמיקוםחובהתיאור
limitintqueryלאברירת מחדל 200.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/documents" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "count": 5, "items": [ { "id": "?", "name": "חוזה" } ] } }
GET/documents/{templateId}הרשאה: documents:read

תבנית מסמך בודדת.

פרמטרים
שםסוגמיקוםחובהתיאור
templateIdstringpathכןמזהה התבנית.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/documents/TEMPLATE_ID" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "id": "TEMPLATE_ID", "name": "?" } }
GET/documents/{templateId}/submissionsהרשאה: documents:read

הגשות מילוי שנוצרו מהתבנית (fill-only).

פרמטרים
שםסוגמיקוםחובהתיאור
templateIdstringpathכןמזהה התבנית.
limitintqueryלאברירת מחדל 500.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/documents/TEMPLATE_ID/submissions" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "count": 7, "items": [ { "id": "?", "Signatures": [ ? ] } ] } }
POST/documents/{templateId}/linkהרשאה: documents:read

יצירת קישור מילוי להפצה ללקוח מתבנית מסמך.

פרמטרים
שםסוגמיקוםחובהתיאור
templateIdstringpathכןמזהה התבנית.
contactPhonestringbodyלאטלפון איש הקשר — למילוי מראש של משתני התבנית.
leadIdstringbodyלאמזהה ליד — למילוי מראש של המשתנים.
documentNamestringbodyלאשם למסמך שנוצר (ברירת מחדל: שם התבנית).
languagestringbodyלאשפה (he/en/…). ברירת מחדל he.
expiresInDaysintbodyלאתוקף הקישור בימים (ברירת מחדל 30).
variablesobjectbodyלאערכים ידניים למשתני התבנית: { "key": "value" }.
גוף הבקשה
{
  "contactPhone": "+972501234567",
  "documentName": "חוזה שירות - דנה כהן",
  "language": "he",
  "variables": { "amount": "1,200 ₪", "startDate": "01/07/2026" }
}
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/documents/TEMPLATE_ID/link" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"contactPhone":"+972501234567","documentName":"חוזה שירות","variables":{"amount":"1,200 ₪"}}'
תגובה לדוגמה
{ "success": true, "message": "Distributable fill link created from the template.", "data": { "url": "https://gambot.co.il/ORG/form/NEW_DOC_ID/TOKEN?lang=he", "documentId": "NEW_DOC_ID", "templateId": "TEMPLATE_ID" } }

לתבנית מסמך אין קישור סטטי יחיד — כל לקוח ממלא עותק משלו, ולכן קריאה זו יוצרת מופע מילוי חדש ומחזירה את כתובת ה-/form/ שלו. זהו POST כי הוא יוצר מסמך.

משתמשים

ניהול משתמשי הארגון (חברי צוות) — הוספה, הצגה, שליפה, עדכון והשבתה.

GET/usersהרשאה: users:read

הצגת משתמשי הארגון (ללא בוטים מערכתיים).

בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/users" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "count": 4, "items": [ { "uID": "?", "FullName": "?", "SecurityRole": "Admin" } ] } }
GET/users/{userId}הרשאה: users:read

שליפת משתמש בודד.

פרמטרים
שםסוגמיקוםחובהתיאור
userIdstringpathכןמזהה המשתמש.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/users/USER_ID" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "uID": "USER_ID", "FullName": "?", "Status": "active" } }
POST/usersהרשאה: users:write

יצירה/הזמנה של משתמש — מקים את החשבון ושולח אימייל + WhatsApp.

פרמטרים
שםסוגמיקוםחובהתיאור
emailstringbodyכןכתובת אימייל.
fullNamestringbodyלאשם מלא (או firstName+lastName).
phoneNumberstringbodyלאטלפון.
securityRolestringbodyלאAdmin/StoreManager/StoreAgent/Chat/Basic/Custom.
languagestringbodyלאשפה.
גוף הבקשה
{
  "email": "agent@example.com",
  "fullName": "ישראל ישראלי",
  "phoneNumber": "972501234567",
  "securityRole": "StoreAgent"
}
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/users" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "email": "agent@example.com", "fullName": "Agent" }'
תגובה לדוגמה
{ "success": true, "message": "User created", "data": { "email": "agent@example.com" } }
PATCH/users/{userId}הרשאה: users:write

עדכון משתמש — רק השדות שנשלחו. מקבל גם POST.

פרמטרים
שםסוגמיקוםחובהתיאור
userIdstringpathכןמזהה המשתמש.
securityRolestringbodyלאתפקיד אבטחה.
statusstringbodyלאactive/inactive.
גוף הבקשה
{ "securityRole": "StoreManager" }
בקשה לדוגמה
curl -X PATCH "https://api.gambot.co.il/api/v1/users/USER_ID" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "securityRole": "StoreManager" }'
תגובה לדוגמה
{ "success": true, "message": "User updated" }
POST/users/{userId}/disableהרשאה: users:write

השבתת משתמש (status=inactive).

פרמטרים
שםסוגמיקוםחובהתיאור
userIdstringpathכןמזהה המשתמש.
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/users/USER_ID/disable" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "message": "User inactive" }
POST/users/{userId}/enableהרשאה: users:write

הפעלת משתמש (status=active).

פרמטרים
שםסוגמיקוםחובהתיאור
userIdstringpathכןמזהה המשתמש.
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/users/USER_ID/enable" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "message": "User active" }
DELETE/users/{userId}הרשאה: users:write

מחיקת משתמש לצמיתות (אימות + פרופיל).

פרמטרים
שםסוגמיקוםחובהתיאור
userIdstringpathכןמזהה המשתמש.
בקשה לדוגמה
curl -X DELETE "https://api.gambot.co.il/api/v1/users/USER_ID" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "message": "User deleted" }

בוטים ואוטומציות

יצירה וניהול של בוטים ואוטומציות צ׳אט ל-WhatsApp ("botomations") — בדיוק כמו בונה הבוטים שבמערכת (הם נשמרים לאותו runtime ומתנהגים זהה). שתי דרכים ליצור בוט: בונים ברמה גבוהה (keyword-reply, template-button-reply, menu) שמרכיבים עבורכם את סכימת הצעדים הנכונה, או POST של אובייקט הבוט המלא (name, status, steps[]) לשליטה מלאה. בוט הוא רשימת Steps — צעד 1 הוא הטריגר, השאר הם פעולות. Placeholders כמו {{Step_1_PhoneNumber}} ו-{{Step_1_Message}} נושאים את מספר הטלפון וטקסט ההודעה של איש הקשר המפעיל אל צעדים מאוחרים יותר.

GET/botsהרשאה: bots:read

הצגת בוטים/אוטומציות (עם סיכום לכל בוט). ?botsOnly=true מחזיר רק בוטים ויזואליים.

פרמטרים
שםסוגמיקוםחובהתיאור
botsOnlyboolqueryלארק בוטים ויזואליים (isBot). ברירת מחדל false.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/bots?botsOnly=false" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "count": 1, "items": [ { "id": "abc123", "name": "Greeting bot", "status": "active", "isBot": false, "isPrimaryFlow": false, "stepCount": 2, "trigger": "IncomingMessage" } ] } }
GET/bots/{botId}הרשאה: bots:read

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

פרמטרים
שםסוגמיקוםחובהתיאור
botIdstringpathכןמזהה הבוט.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/bots/BOT_ID" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "id": "abc123", "name": "Greeting bot", "status": "active", "steps": [ { "StepId": "Step_1", "type": "trigger", "action": "IncomingMessage", "config": { "messageType": "regular" } } ] } }
POST/bots/keyword-replyהרשאה: bots:write

בונה ברמה גבוהה: מענה אוטומטי להודעה נכנסת — לפי מילת מפתח אחת או יותר, או לכל הודעה.

פרמטרים
שםסוגמיקוםחובהתיאור
namestringbodyכןשם הבוט.
keywordsstring[]bodyלאמילות מפתח שמפעילות את הבוט (מותאמות ב-OR). חובה אלא אם anyMessage=true.
matchTypestringbodyלאequals|contains (ברירת מחדל equals).
anyMessageboolbodyלאמענה לכל הודעה נכנסת, תוך התעלמות ממילות מפתח.
replyTemplateNamestringbodyלאשם התבנית למענה. או replyText.
replyTextstringbodyלאמענה טקסט חופשי (עובד בתוך חלון 24 השעות).
statusstringbodyלאactive|inactive (ברירת מחדל active).
גוף הבקשה
{
  "name": "Greeting bot",
  "keywords": ["hi", "hello"],
  "matchType": "equals",
  "replyText": "Hi! How can we help?",
  "status": "active"
}
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/bots/keyword-reply" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Greeting bot", "keywords": ["hi","hello"], "replyText": "Hi! How can we help?" }'
תגובה לדוגמה
{ "success": true, "message": "Bot created.", "data": { "botId": "abc123", "name": "Greeting bot", "status": "active" } }

ספקו replyTemplateName או replyText. מחוץ לחלון 24 השעות חובה להשיב בתבנית מאושרת.

דוגמאות נוספות
קריאת כלי MCP
gambot_create_keyword_autoreply({
  name: "Greeting bot",
  keywords: ["hi", "hello"],
  replyText: "Hi! How can we help?"
})
POST/bots/template-button-replyהרשאה: bots:write

בונה ברמה גבוהה: מענה אוטומטי כשאיש קשר לוחץ על כפתור בתבנית ששלחתם. כל כפתור מנתב למענה משלו.

פרמטרים
שםסוגמיקוםחובהתיאור
namestringbodyכןשם הבוט.
templateNamestringbodyכןהתבנית שכפתוריה מפעילים את הבוט.
buttonsobject[]bodyכן[{ button (הכותרת שלו), replyTemplateName?, replyText? }]. כפתור ללא מענה מזוהה אך לא שולח דבר.
statusstringbodyלאactive|inactive (ברירת מחדל active).
גוף הבקשה
{
  "name": "Support router",
  "templateName": "welcome_gambot_0926",
  "buttons": [
    { "button": "Sales", "replyText": "A sales rep will contact you shortly." },
    { "button": "Support", "replyTemplateName": "support_hours" }
  ]
}
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/bots/template-button-reply" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Support router", "templateName": "welcome_gambot_0926", "buttons": [ { "button": "Sales", "replyText": "A sales rep will contact you shortly." } ] }'
תגובה לדוגמה
{ "success": true, "message": "Bot created.", "data": { "botId": "def456", "name": "Support router", "status": "active" } }
POST/bots/menuהרשאה: bots:write

בונה ברמה גבוהה: בוט תפריט — תבנית פתיחה עם כפתורים שכל אחד מנתב למענה. אותו מבנה שבונה הבוטים פורס בתור "הבוט הראשי".

פרמטרים
שםסוגמיקוםחובהתיאור
namestringbodyכןשם הבוט.
openingTemplateNamestringbodyכןתבנית הפתיחה עם הכפתורים.
optionsobject[]bodyכן[{ button, replyTemplateName?, replyText? }] — אפשרות אחת לכל כפתור.
statusstringbodyלאactive|inactive (ברירת מחדל active).
גוף הבקשה
{
  "name": "Main menu",
  "openingTemplateName": "welcome_gambot_0926",
  "options": [
    { "button": "Prices", "replyTemplateName": "price_list" },
    { "button": "Book", "replyText": "Great! Reply with your preferred date." }
  ]
}
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/bots/menu" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Main menu", "openingTemplateName": "welcome_gambot_0926", "options": [ { "button": "Prices", "replyTemplateName": "price_list" } ] }'
תגובה לדוגמה
{ "success": true, "message": "Bot created.", "data": { "botId": "ghi789", "name": "Main menu", "status": "active" } }
דוגמאות נוספות
קריאת כלי MCP
gambot_create_menu_bot({
  name: "Main menu",
  openingTemplateName: "welcome_gambot_0926",
  options: [
    { button: "Prices", replyTemplateName: "price_list" },
    { button: "Book", replyText: "Great! Reply with your preferred date." }
  ]
})
POST/botsהרשאה: bots:write

יצירת בוט מאובייקט botomation מלא (שליטה מלאה). העדיפו את הבונים ברמה גבוהה אלא אם דרושים צעדים מותאמים.

פרמטרים
שםסוגמיקוםחובהתיאור
namestringbodyכןשם הבוט.
stepsobject[]bodyכןרשימת הצעדים. צעד 1 = טריגר. כל צעד: { StepId, type: "trigger|action", action: "IncomingMessage|SendMessage|switchCase|…", config }.
statusstringbodyלאactive|inactive (ברירת מחדל active).
isBotboolbodyלאקבעו true לבוט ויזואלי.
גוף הבקשה
{
  "name": "Custom flow",
  "status": "active",
  "steps": [
    { "StepId": "Step_1", "type": "trigger", "action": "IncomingMessage",
      "config": { "messageType": "regular", "triggerMode": "conditions",
        "conditionGroups": [ { "logicOperator": "AND", "conditions": [ { "operator": "equals", "value": "start", "field": "message" } ] } ] } },
    { "StepId": "Step_2", "type": "action", "action": "SendMessage",
      "config": { "messageType": "regular", "phoneNumber": "{{Step_1_PhoneNumber}}", "messageContent": "Welcome!" } }
  ]
}
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/bots" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Custom flow", "status": "active", "steps": [ { "StepId": "Step_1", "type": "trigger", "action": "IncomingMessage", "config": { "messageType": "regular" } }, { "StepId": "Step_2", "type": "action", "action": "SendMessage", "config": { "messageType": "regular", "phoneNumber": "{{Step_1_PhoneNumber}}", "messageContent": "Welcome!" } } ] }'
תגובה לדוגמה
{ "success": true, "message": "Bot created.", "data": { "botId": "jkl012", "name": "Custom flow", "status": "active" } }

name ו-steps[] הם חובה. ניתן לעטוף את האובייקט תחת "bot" או "botomationData". צעדים ללא StepId מושלמים אוטומטית.

POST/bots/{botId}/statusהרשאה: bots:write

הפעלה או השבתה של בוט.

פרמטרים
שםסוגמיקוםחובהתיאור
botIdstringpathכןמזהה הבוט.
statusstringbodyלאactive|inactive. לחלופין active:true|false.
גוף הבקשה
{ "status": "inactive" }
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/bots/BOT_ID/status" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "status": "inactive" }'
תגובה לדוגמה
{ "success": true, "message": "Bot updated.", "data": { "botId": "abc123", "status": "inactive" } }
PATCH/bots/{botId}הרשאה: bots:write

עדכון בוט (שלחו את אובייקט הבוט המלא). POST לאותה כתובת מתקבל גם כן.

פרמטרים
שםסוגמיקוםחובהתיאור
botIdstringpathכןמזהה הבוט.
גוף הבקשה
{ "name": "Greeting bot (v2)", "status": "active", "steps": [ /* full steps[] */ ] }
בקשה לדוגמה
curl -X PATCH "https://api.gambot.co.il/api/v1/bots/BOT_ID" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Greeting bot (v2)", "status": "active", "steps": [] }'
תגובה לדוגמה
{ "success": true, "message": "Bot updated.", "data": { "botId": "abc123" } }
DELETE/bots/{botId}הרשאה: bots:write

מחיקת בוט.

פרמטרים
שםסוגמיקוםחובהתיאור
botIdstringpathכןמזהה הבוט.
בקשה לדוגמה
curl -X DELETE "https://api.gambot.co.il/api/v1/bots/BOT_ID" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "message": "Bot deleted.", "data": { "botId": "abc123" } }

הצטרפות (Onboarding)

הקמת חשבון חדש (ארגון + משתמש ראשון) — ניסיון חינם או ישירות בתשלום עם כרטיס שמור. השתמשו במספר בדיקה של Meta, מספר WhatsApp Business קיים (coexistence), מספר משלכם (BYO), או קנו מספר/SIM מאיתנו לפי מדינה (Twilio). גלובלי: שלחו companyInfo.timezone (IANA) ו-companyInfo.country (ISO-3166) — הם מניעים את התזמון (קמפיינים, תזכורות, שעות עבודה) ואת הלוקאל. אף אחד מהם לא מכשיל את ההצטרפות: timezone חסר/לא תקין נגזר מ-country, אחרת ברירת המחדל היא Asia/Jerusalem. סוכן AI שמחזיק בכרטיס הלקוח יכול להוסיף אמצעי תשלום ישירות. חלונית ה-Meta היא שלב בדפדפן, ולכן מוחזר קישור מתארח והקוד מוחלף דרך ה-API. סדר חובה: (1) קודם יוצרים את החשבון — POST /onboarding/create-trial-self-serve (ציבורי, בלי מפתח ובלי טופס; אם מושמט organizationName הוא נוצר אוטומטית); (2) רק אז פותחים את wabaConnectUrl שחזר מהיצירה (או GET /onboarding/waba/connect-link עם ה-organizationName שחזר); (3) בודקים התקדמות עם GET /onboarding/status. אין להמציא שם ארגון — קישור/חיבור לארגון שלא נוצר יחזיר 404 ORGANIZATION_NOT_FOUND.

POST/onboarding/check-organizationהרשאה: onboarding:read

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

פרמטרים
שםסוגמיקוםחובהתיאור
companyNamestringbodyכןשם החברה.
companyIdNumberstringbodyכןח.פ/ע.מ (9 ספרות).
גוף הבקשה
{ "companyName": "כהן ובניו", "companyIdNumber": "514999999" }
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/onboarding/check-organization" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"companyName":"Cohen & Sons","companyIdNumber":"514999999"}'
תגובה לדוגמה
{ "success": true, "data": { "sanitizedOrgName": "?", "nameExists": false, "countByCompanyId": 0, "existingIncomplete": false, "resumeUrl": null } }
POST/onboarding/organization-nameהרשאה: onboarding:read

יצירת שם ארגון ייחודי מהשם + ח.פ/ע.מ (מוסיף סיומת אם תפוס).

פרמטרים
שםסוגמיקוםחובהתיאור
companyNamestringbodyכןשם החברה.
companyIdNumberstringbodyכןח.פ/ע.מ.
גוף הבקשה
{ "companyName": "כהן ובניו", "companyIdNumber": "514999999" }
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/onboarding/organization-name" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"companyName":"Cohen & Sons","companyIdNumber":"514999999"}'
תגובה לדוגמה
{ "success": true, "data": { "organizationName": "cohen-sons-514999999" } }
POST/onboarding/available-numbersהרשאה: onboarding:read

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

פרמטרים
שםסוגמיקוםחובהתיאור
countryCodestringbodyכןקוד מדינה ISO-3166 alpha-2 (למשל US, GB, IL).
numberTypestringbodyלאlocal/mobile/tollfree/national (ברירת מחדל local).
גוף הבקשה
{ "countryCode": "US", "numberType": "local" }
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/onboarding/available-numbers" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"countryCode":"US","numberType":"local"}'
תגובה לדוגמה
{ "success": true, "data": { "countryCode": "US", "numberType": "local", "count": 2, "numbers": [ { "phoneNumber": "+1201555....", "friendlyName": "(201) 555-....", "locality": "Jersey City", "region": "NJ", "capabilities": { "voice": true, "sms": true, "mms": true } } ] } }

העבירו את ה-phoneNumber שנבחר ל-create-trial/create-paid כ-simInfo.selectedSimNumber עם simInfo.purchaseInTwilio=true.

POST/onboarding/create-trial-self-serveהרשאה: public (no key)

שלב 1 — יצירת חשבון חדש בלי מפתח API ובלי למלא טופס (ניסיון חינם). זו נקודת הכניסה לסוכן AI/MCP שאין לו עדיין טוקן. אם organizationName מושמט הוא נוצר אוטומטית משם החברה + ח.פ.

פרמטרים
שםסוגמיקוםחובהתיאור
companyInfoobjectbodyכן{ companyName, companyIdNumber (ח.פ/ת.ז) — חובה כשאין organizationName; organizationName (אופציונלי), country (ISO-3166), timezone (IANA) }.
contactInfoobjectbodyכן{ contactFullName, contactEmail, contactPhoneNumber } — לשם נשלחים פרטי ההתחברות.
useFreeNumber / useCoexisting / simInfoobjectbodyלאאפשרויות מספר, כמו ב-create-trial. רכישת מספר מאיתנו דורשת verificationId מאומת (/onboarding/verification/send ואז /verify).
גוף הבקשה
{
  "companyInfo": { "companyName": "Acme Inc", "companyIdNumber": "123456789", "country": "US", "timezone": "America/New_York" },
  "contactInfo": { "contactFullName": "John Doe", "contactEmail": "john@acme.com", "contactPhoneNumber": "12015550100" },
  "useFreeNumber": true
}
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/onboarding/create-trial-self-serve" \
  -H "Content-Type: application/json" \
  -d '{ "companyInfo": { "companyName": "Acme Inc", "companyIdNumber": "123456789", "country": "US" }, "contactInfo": { "contactFullName": "John Doe", "contactEmail": "john@acme.com", "contactPhoneNumber": "12015550100" }, "useFreeNumber": true }'
תגובה לדוגמה
{ "success": true, "message": "Trial account created successfully.", "data": { "organizationName": "acme-inc-123456789", "billing": "trial", "wabaConnectUrl": "https://gambot.co.il/complete-waba/acme-inc-123456789?lang=en", "paymentUrl": "https://gambot.co.il/addpayment?organizationName=acme-inc-123456789", "statusUrl": "https://api.gambot.co.il/api/v1/onboarding/status?organization=acme-inc-123456789" } }

השתמשו ב-organizationName וב-wabaConnectUrl שחזרו — לעולם אל תמציאו שם ארגון. אחרי היצירה: פתחו את wabaConnectUrl בדפדפן ובדקו התקדמות עם GET /onboarding/status.

POST/onboarding/create-trialהרשאה: onboarding:write

יצירת ארגון בניסיון חינם + משתמש ראשון (ללא כרטיס). פרטי ההתחברות נשלחים באימייל וב-WhatsApp.

פרמטרים
שםסוגמיקוםחובהתיאור
useFreeNumberboolbodyלאמספר הבדיקה החינמי של Meta (לבדיקות בלבד).
useCoexistingboolbodyלאמספר WhatsApp Business קיים (simInfo.simNumberEntered).
planstringbodyלאBasic/Premium/Enterprise.
currencystringbodyלאILS/USD/EUR/GBP.
companyInfoobjectbodyכן{ organizationName (חובה), timezone (IANA, מומלץ; נגזר מ-country אם הושמט), country (ISO-3166), companyName, idNumber, companyUrl, companyPhoneNumber }.
contactInfoobjectbodyלא{ contactFullName, contactEmail, contactPhoneNumber }.
simInfoobjectbodyלא{ hasSim, simNumberEntered, selectedSimNumber, purchaseInTwilio }. לרכישת מספר מאיתנו: purchaseInTwilio=true + selectedSimNumber.
גוף הבקשה
{
  "plan": "Basic",
  "currency": "USD",
  "companyInfo": { "organizationName": "acme-inc-123", "companyName": "Acme Inc", "idNumber": "123456789", "timezone": "America/New_York", "country": "US" },
  "contactInfo": { "contactFullName": "John Doe", "contactEmail": "john@acme.com", "contactPhoneNumber": "12015550100" },
  "simInfo": { "hasSim": false, "purchaseInTwilio": true, "selectedSimNumber": "+12015550123" }
}
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/onboarding/create-trial" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"plan":"Basic","currency":"USD","companyInfo":{"organizationName":"acme-inc-123","companyName":"Acme Inc","idNumber":"123456789","timezone":"America/New_York","country":"US"},"contactInfo":{"contactFullName":"John Doe","contactEmail":"john@acme.com","contactPhoneNumber":"12015550100"},"simInfo":{"hasSim":false,"purchaseInTwilio":true,"selectedSimNumber":"+12015550123"}}'
תגובה לדוגמה
{ "success": true, "message": "Trial account created successfully.", "data": { "organizationName": "acme-inc-123", "accountType": "twilio_purchase", "country": "US", "timeZone": "America/New_York", "purchasedNumber": "+12015550123", "billing": "trial", "wabaConnectUrl": "https://gambot.co.il/complete-waba/acme-inc-123" } }

companyInfo.timezone (IANA) מומלץ — אם חסר/לא תקין הוא נגזר מ-country, אחרת ברירת המחדל היא Asia/Jerusalem (לעולם לא מכשיל את ההצטרפות). אפשרויות מספר: useFreeNumber → useCoexisting → מספר משלכם (simInfo.simNumberEntered) → רכישה מאיתנו (purchaseInTwilio=true + selectedSimNumber מ-available-numbers).

POST/onboarding/create-paidהרשאה: onboarding:write

יצירת חשבון ישירות בתשלום (ללא חודש ניסיון). כרטיס הוא חובה — הטוקן שלו נשמר והחיוב מתחיל מיד.

פרמטרים
שםסוגמיקוםחובהתיאור
cardobjectbodyכןחובה. { cardNumber, expirationDate ("MM/YY"), cvv?, holderId? }. הכרטיס נשלח רק לספק הסליקה תואם-PCI ואינו נשמר.
companyInfoobjectbodyכן{ organizationName (חובה), timezone (IANA, מומלץ; נגזר מ-country אם הושמט), country (ISO-3166), … }.
planstringbodyלאBasic/Premium/Enterprise.
simInfoobjectbodyלאכמו ב-create-trial.
גוף הבקשה
{
  "plan": "Premium",
  "currency": "USD",
  "useCoexisting": true,
  "companyInfo": { "organizationName": "acme-inc-123", "companyName": "Acme Inc", "idNumber": "123456789", "timezone": "America/New_York", "country": "US" },
  "contactInfo": { "contactFullName": "John Doe", "contactEmail": "john@acme.com", "contactPhoneNumber": "12015550100" },
  "simInfo": { "hasSim": true, "simNumberEntered": "12015550100" },
  "card": { "cardNumber": "4580000000000000", "expirationDate": "05/28", "cvv": "123" }
}
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/onboarding/create-paid" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"plan":"Premium","currency":"USD","useCoexisting":true,"companyInfo":{"organizationName":"acme-inc-123","companyName":"Acme Inc","idNumber":"123456789","timezone":"America/New_York","country":"US"},"contactInfo":{"contactFullName":"John Doe","contactEmail":"john@acme.com","contactPhoneNumber":"12015550100"},"simInfo":{"hasSim":true,"simNumberEntered":"12015550100"},"card":{"cardNumber":"4580000000000000","expirationDate":"05/28","cvv":"123"}}'
תגובה לדוגמה
{ "success": true, "message": "Paid account created successfully.", "data": { "organizationName": "acme-inc-123", "accountType": "coexisting", "billing": "paid", "wabaConnectUrl": "https://gambot.co.il/complete-waba/acme-inc-123" } }

אם החשבון נוצר אך שמירת הכרטיס נכשלה — נסו שוב עם /onboarding/add-payment-method.

POST/onboarding/add-payment-methodהרשאה: billing:write

אימות כרטיס מול ספק הסליקה (Tranzila) ושמירת הטוקן שלו בארגון — סוכן AI עם כרטיס הלקוח מוסיף אמצעי תשלום ללא הדף המתארח.

פרמטרים
שםסוגמיקוםחובהתיאור
organizationNamestringbodyכןשם הארגון.
cardobjectbodyכןחובה. { cardNumber, expirationDate ("MM/YY"), cvv?, holderId? }.
planstringbodyלאתוכנית (לקוד המוצר).
גוף הבקשה
{ "organizationName": "acme-inc-123", "plan": "Premium", "card": { "cardNumber": "4580000000000000", "expirationDate": "05/28", "cvv": "123" } }
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/onboarding/add-payment-method" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"organizationName":"acme-inc-123","plan":"Premium","card":{"cardNumber":"4580000000000000","expirationDate":"05/28","cvv":"123"}}'
תגובה לדוגמה
{ "success": true, "message": "Payment method saved. The card token is on file for this organization.", "data": { "organizationName": "acme-inc-123" } }

הכרטיס נשלח רק לספק הסליקה תואם-PCI; Gambot שומר טוקן בלבד (4 ספרות אחרונות + תוקף). לחלופין מתארחת השתמשו ב-/onboarding/payment-link.

POST/onboarding/payment-linkהרשאה: onboarding:read

בניית קישור תשלום מתארח מאובטח (Tranzila) להוספת כרטיס עבור ארגון. ה-API לעולם אינו מטפל בנתוני הכרטיס.

פרמטרים
שםסוגמיקוםחובהתיאור
organizationNamestringbodyכןשם הארגון.
planstringbodyלאתוכנית.
pricestringbodyלאמחיר.
paymentCyclestringbodyלאmonthly/yearly.
currencystringbodyלאמטבע.
contactEmailstringbodyלאאימייל ליצירת קשר.
גוף הבקשה
{ "organizationName": "YOUR_ORGANIZATION_NAME", "plan": "Basic", "price": "179", "paymentCycle": "monthly", "currency": "ILS", "contactEmail": "dana@example.com" }
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/onboarding/payment-link" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"organizationName":"YOUR_ORGANIZATION_NAME","plan":"Basic","price":"179","paymentCycle":"monthly","currency":"ILS"}'
תגובה לדוגמה
{ "success": true, "message": "Secure hosted payment link.", "data": { "url": "https://gambot.co.il/addpayment?organizationName=acme-inc-123456789&plan=Basic&price=179&paymentCycle=monthly&currency=ILS" } }

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

GET/onboarding/statusהרשאה: public (no key)

שלב 3 — התקדמות ההצטרפות של ארגון: האם החשבון נוצר, האם יש כרטיס, והאם WhatsApp מחובר. לבדיקה חוזרת עד status=connected.

פרמטרים
שםסוגמיקוםחובהתיאור
organizationstringqueryכןשם הארגון שחזר מיצירת החשבון.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/onboarding/status?organization=YOUR_ORGANIZATION_NAME"
תגובה לדוגמה
{ "success": true, "data": { "organization": "acme-inc-123456789", "accountCreated": true, "cardOnFile": false, "wabaConnected": false, "status": "account_created", "wabaConnectUrl": "https://gambot.co.il/complete-waba/acme-inc-123456789?lang=en", "nextStep": "Account created. The customer must finish connecting WhatsApp in the browser via wabaConnectUrl." } }

status: not_found | account_created | connected.

POST/onboarding/waba/exchange-tokenהרשאה: waba:write

השלמת Meta Embedded Signup ע"י החלפת ה-code מחלונית הפייסבוק — רושמת את ה-WABA, ה-webhooks והטלפון.

פרמטרים
שםסוגמיקוםחובהתיאור
codestringbodyכןקוד ההרשאה מחלונית Meta Embedded Signup.
organizationstringbodyכןשם הארגון.
isCoexistingboolbodyלאחיבור coexistence.
coexistingPhoneNumberstringbodyלאמספר קיים (coexistence).
גוף הבקשה
{ "code": "AQD...", "organization": "YOUR_ORGANIZATION_NAME", "isCoexisting": true, "coexistingPhoneNumber": "972501234567" }
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/onboarding/waba/exchange-token" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"code":"AQD...","organization":"YOUR_ORGANIZATION_NAME"}'
תגובה לדוגמה
{ "success": true, "message": "WhatsApp (WABA) connected successfully.", "data": { "organization": "acme-inc-123456789", "message": "Business token updated successfully for organization." } }

ה-code מתקבל מחלונית Meta Embedded Signup (שלב בדפדפן, למשל בדף connect-link). ה-API אינו יכול להנפיק אותו בעצמו.

Webhooks (רישום והעברת אירועים)

מיועד למי שבונה מערכת/אינטגרציה שצריכה לקבל הודעות ועדכונים בחזרה מגמבוט בזמן אמת — למשל לסנכרן ל-CRM/DB שלכם, להפעיל סוכן, או לעדכן אפליקציה. רשמו את נקודת הקצה שלכם פעם אחת (POST /webhooks/forward) וגמבוט תשלח לכם (POST) כל אירוע תואם ברגע שהוא קורה — הודעות נכנסות, סטטוסי הודעה ועדכוני תבניות. זהו ה-webhook של המערכת: מטא שולחת אלינו, ואנחנו מעבירים אליכם — אינכם צריכים לנהל מנוי Meta Graph. Best practice: אמתו כל בקשה מול כותרת ה-Authorization שהגדרתם, השיבו 2xx במהירות ועבדו את האירוע אסינכרונית, נתבו לפי X-Gambot-Event, והשתמשו במזהה ההודעה שב-meta_obj ל-idempotency (מניעת כפילויות).

POST/webhooks/forwardהרשאה: webhooks:write

רישום (או עדכון) webhook: מגדיר את כתובת היעד שאליה גמבוט תעביר אירועים. שקול-ערך פרוגרמטי למסך הגדרות → העברת אירועים (Webhook). כשמופעל — חובה כתובת http(s) תקינה.

פרמטרים
שםסוגמיקוםחובהתיאור
urlstringbodyכןכתובת היעד שתקבל POST-ים (מומלץ https). לדוגמה https://your-server.com/webhook.
authHeaderstringbodyלאערך שיישלח מילולית ככותרת Authorization בכל קריאה (למשל "Bearer my-secret"). אמתו אותו אצלכם.
eventsobjectbodyלאאילו אירועים להעביר: { incomingMessage, messageStatus, templateStatus, other } — כולם boolean, ברירת מחדל true (הכל). אפשר גם לשלוח אותם ברמת השורש.
גוף הבקשה
{
  "url": "https://your-server.com/webhook",
  "authHeader": "Bearer my-secret",
  "events": { "incomingMessage": true, "messageStatus": true, "templateStatus": true, "other": true }
}
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/webhooks/forward" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "url": "https://your-server.com/webhook", "authHeader": "Bearer my-secret" }'
תגובה לדוגמה
{
  "success": true,
  "message": "Webhook registered. Matching events will be POSTed to this URL as they occur.",
  "data": {
    "registered": true,
    "url": "https://your-server.com/webhook",
    "hasAuthHeader": true,
    "events": { "incomingMessage": true, "messageStatus": true, "templateStatus": true, "other": true }
  }
}

המטען שתקבלו הוא "מעטפה": { type, event, types[], organization, receivedAt, meta_obj } כאשר meta_obj הוא ה-payload המקורי של מטא. בנוסף ל-Authorization נשלחות הכותרות X-Gambot-Organization ו-X-Gambot-Event.

GET/webhooks/forwardהרשאה: webhooks:read

קריאת הרישום הנוכחי: האם מופעל, כתובת היעד, האם מוגדרת כותרת Authorization, ואילו אירועים מועברים.

בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/webhooks/forward" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{
  "success": true,
  "data": {
    "enabled": true,
    "url": "https://your-server.com/webhook",
    "hasAuthHeader": true,
    "events": { "incomingMessage": true, "messageStatus": true, "templateStatus": true, "other": true }
  }
}
DELETE/webhooks/forwardהרשאה: webhooks:write

ביטול רישום (השבתת ההעברה). הכתובת וההגדרות נשמרות, כך שהפעלה מחדש היא POST יחיד.

בקשה לדוגמה
curl -X DELETE "https://api.gambot.co.il/api/v1/webhooks/forward" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "message": "Webhook unregistered (event forwarding disabled).", "data": { "registered": false } }
POST/webhooks/testהרשאה: webhooks:write

שליחת אירוע-דוגמה (incoming_message מסומן test:true) לכתובת הרשומה — או לכתובת שתעבירו בגוף — והחזרת תוצאת המסירה. מושלם לוודא שנקודת הקצה שלכם מקבלת את הקריאות. המסירה נרשמת בלוג.

פרמטרים
שםסוגמיקוםחובהתיאור
urlstringbodyלאכתובת לבדיקה במקום הרשומה (מאפשר לבדוק לפני רישום).
authHeaderstringbodyלאכותרת Authorization לשליחה בבדיקת ה-URL החלופי.
גוף הבקשה
{ "url": "https://your-server.com/webhook" }
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/webhooks/test" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "url": "https://your-server.com/webhook" }'
תגובה לדוגמה
{
  "success": true,
  "message": "Test event delivered successfully.",
  "data": {
    "delivered": true,
    "statusCode": 200,
    "durationMs": 142,
    "responsePreview": "ok",
    "sentEnvelope": { "type": "incoming_message", "event": "incoming_message", "organization": "your-org", "test": true, "meta_obj": { } }
  }
}

טיפ: לבדיקה מהירה בלי שרת משלכם — צרו כתובת חד-פעמית ב-webhook.site והעבירו אותה כ-url; תראו את הקריאה מגיעה שם בזמן אמת.

חיבורים (אינטגרציות)

רשימת האינטגרציות המחוברות של הארגון — בדיוק כמו הגדרות → חיבורים: חשבונות מייל ויומן (Google/Microsoft OAuth), דפי פייסבוק ל-Lead Ads, חיבורי חנות/CRM, וכן מספרי ה-WhatsApp של הארגון. מוחזר מידע לא-רגיש בלבד (מזהים, ספק, סטטוס, אימייל החשבון) — טוקנים וסודות אף פעם לא נחשפים. השתמשו ב-id של חיבור כ-connectionId בקריאות אחרות (למשל טפסי ליד/יומן/שליחת מייל).

GET/connectionsהרשאה: connections:read

הצגת כל החיבורים של הארגון + מספרי ה-WhatsApp. ?type= מסנן לפי סוג חיבור (למשל FacebookLeadAds).

פרמטרים
שםסוגמיקוםחובהתיאור
typestringqueryלאסינון לפי connectionType, למשל FacebookLeadAds.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/connections" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "count": 2, "connections": [ { "id": "conn_abc", "kind": "oauth", "provider": "google", "name": "Google Calendar & Gmail", "status": "connected", "email": "me@company.com" } ], "whatsappNumbers": [ { "id": "1029384756", "kind": "whatsapp", "provider": "meta", "displayNumber": "+972 50-000-0000", "isPrimary": true } ] } }
דוגמאות נוספות
קריאת כלי MCP
gambot_list_connections({})

אימייל (שליחה + קמפיינים)

שליחת מייל בודד וקמפייני דיוור במייל דרך תיבת ה-Google/Microsoft המחוברת (הגדרות → חיבורים). הריצו GET /connections כדי לראות אילו ספקים מחוברים. קמפייני מייל רצים על אותו מנוע שליחה עמיד ומתחדש כמו באפליקציה — בטוח לכמויות גדולות וללא כפילויות.

POST/email/sendהרשאה: email:send

שליחת מייל בודד. HTML כברירת מחדל (isHtml=false לטקסט). ספק אופציונלי: google/microsoft או connectionId.

פרמטרים
שםסוגמיקוםחובהתיאור
tostringbodyכןכתובת הנמען.
subjectstringbodyכןנושא.
bodystringbodyכןגוף ההודעה (HTML כברירת מחדל).
isHtmlboolbodyלאהאם הגוף HTML (ברירת מחדל true).
ccstring[]bodyלאעותק (CC).
bccstring[]bodyלאעותק מוסתר (BCC).
providerstringbodyלאתיבה לשליחה: google/microsoft או connectionId. ריק ⇒ הראשונה הזמינה.
גוף הבקשה
{
  "to": "customer@example.com",
  "subject": "Your quote",
  "body": "<p>Hi, your quote is attached.</p>",
  "isHtml": true
}
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/email/send" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "to": "customer@example.com", "subject": "Your quote", "body": "<p>Hi!</p>" }'
תגובה לדוגמה
{ "success": true, "message": "Email sent.", "data": { "messageId": "…", "provider": "microsoft", "sentAt": "2026-07-01T09:00:00Z" } }
דוגמאות נוספות
קריאת כלי MCP
gambot_send_email({
  to: "customer@example.com",
  subject: "Your quote",
  body: "<p>Hi!</p>"
})
GET/email/campaignsהרשאה: email:read

הצגת כל קמפייני המייל של הארגון.

בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/email/campaigns" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "count": 1, "items": [ { "CampaignId": "ec_123", "CampaignName": "July newsletter", "Status": "Draft" } ] } }
GET/email/campaigns/{campaignId}הרשאה: email:read

קמפיין מייל בודד.

פרמטרים
שםסוגמיקוםחובהתיאור
campaignIdstringpathכןמזהה הקמפיין.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/email/campaigns/CAMPAIGN_ID" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "CampaignId": "ec_123", "CampaignName": "July newsletter", "Status": "Draft" } }
POST/email/campaignsהרשאה: email:write

יצירת קמפיין מייל. תוכן: templateId או subject+body מוטבעים. קהל: contactFilters (סגמנט CRM) או excelRecipients. run=true יוצר ושולח מיד.

פרמטרים
שםסוגמיקוםחובהתיאור
campaignNamestringbodyכןשם הקמפיין.
templateIdstringbodyלאתבנית מייל שמורה (או subject+body).
subjectstringbodyלאנושא מוטבע.
bodystringbodyלאגוף HTML מוטבע.
providerstringbodyלאתיבה לשליחה: google/microsoft או connectionId.
contactFiltersobjectbodyלאסגמנט CRM: { filters:[…], logic:"AND" }.
excelRecipientsobject[]bodyלאנמענים מפורשים: [{ email, name, variables }].
runboolbodyלאיצירה ושליחה מיידית בקריאה אחת.
גוף הבקשה
{
  "campaignName": "July newsletter",
  "subject": "What's new in July",
  "body": "<h1>Hello!</h1>",
  "contactFilters": { "filters": [ { "filterType": "group", "operator": "equals", "groupValue": ["VIP"] } ], "logic": "OR" },
  "run": true
}
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/email/campaigns" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "campaignName": "July newsletter", "subject": "Hi", "body": "<h1>Hello</h1>", "run": true }'
תגובה לדוגמה
{ "success": true, "message": "Email campaign created and run started.", "data": { "campaignId": "ec_123", "status": "Running" } }
דוגמאות נוספות
קריאת כלי MCP
gambot_create_email_campaign({
  campaignName: "July newsletter",
  subject: "Hi",
  body: "<h1>Hello</h1>",
  contactFilters: { filters: [{ filterType: "group", operator: "equals", groupValue: ["VIP"] }], logic: "OR" },
  run: true
})
POST/email/campaigns/{campaignId}/runהרשאה: email:run

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

פרמטרים
שםסוגמיקוםחובהתיאור
campaignIdstringpathכןמזהה הקמפיין.
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/email/campaigns/CAMPAIGN_ID/run" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "message": "Email campaign run started.", "data": { "campaignId": "ec_123", "status": "Running" } }

יומן

קריאת אירועי יומן מיומן Google/Microsoft מחובר (הגדרות → חיבורים). בחרו יומן דרך provider (google/microsoft או connectionId; ריק ⇒ היומן המחובר הראשון).

GET/calendar/eventsהרשאה: calendar:read

אירועי יומן בטווח תאריכים. ברירת מחדל: החודש הנוכחי.

פרמטרים
שםסוגמיקוםחובהתיאור
providerstringqueryלאאיזה יומן: google/microsoft או connectionId. ריק ⇒ הראשון המחובר.
startDatestringqueryלאתחילת טווח (ISO-8601). ברירת מחדל: תחילת החודש.
endDatestringqueryלאסוף טווח (ISO-8601). ברירת מחדל: התחלה + חודש.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/calendar/events?startDate=2026-07-01&endDate=2026-07-31" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "count": 1, "startDate": "2026-07-01T00:00:00Z", "endDate": "2026-07-31T00:00:00Z", "events": [ { "Id": "evt_1", "Provider": "google", "Title": "Demo call", "StartDateTime": "2026-07-03T10:00:00Z", "EndDateTime": "2026-07-03T10:30:00Z" } ] } }
דוגמאות נוספות
קריאת כלי MCP
gambot_list_calendar_events({ startDate: "2026-07-01", endDate: "2026-07-31" })

טפסי ליד (Facebook Lead Ads)

גילוי דפי הפייסבוק וטפסי ה-Lead שמחוברים, ויצירת בוט שמגיב אוטומטית ברגע שמגיע ליד חדש מטופס. הזרימה: (1) הציגו חיבורים, (2) הציגו את טפסי הליד של דף, (3) צרו בוט עם טריגר FacebookLeadAds — כאן דרך /bots/facebook-lead-reply. שדות הליד זמינים כ-placeholders (למשל {{Step_1_facebook_lead_data_full_name}}).

GET/leadforms/connectionsהרשאה: leadforms:read

הצגת דפי הפייסבוק המחוברים ל-Lead Ads. ה-connectionId מכל פריט משמש בקריאות הבאות.

בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/leadforms/connections" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "count": 1, "connections": [ { "connectionId": "conn_fb1", "provider": "facebook", "name": "My Page", "status": "active", "pageId": "123", "pageName": "My Page" } ] } }
GET/leadformsהרשאה: leadforms:read

הצגת טפסי ה-Lead של דף מחובר. ?connectionId ריק ⇒ החיבור הראשון.

פרמטרים
שםסוגמיקוםחובהתיאור
connectionIdstringqueryלאמזהה חיבור Facebook Lead Ads. ריק ⇒ הראשון.
בקשה לדוגמה
curl "https://api.gambot.co.il/api/v1/leadforms?connectionId=conn_fb1" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN"
תגובה לדוגמה
{ "success": true, "data": { "connectionId": "conn_fb1", "pageId": "123", "count": 2, "forms": [ { "id": "form_1", "name": "Summer promo", "status": "ACTIVE" } ] } }
POST/bots/facebook-lead-replyהרשאה: bots:write

יצירת בוט שמגיב אוטומטית לליד חדש מטופס פייסבוק. ספקו connectionId ומענה (replyTemplateName או replyText); formIds אופציונלי (ריק ⇒ כל טופס בדף).

פרמטרים
שםסוגמיקוםחובהתיאור
namestringbodyכןשם הבוט.
connectionIdstringbodyכןמזהה חיבור Facebook Lead Ads.
formIdsstring[]bodyלאמזהי טפסים ספציפיים. ריק ⇒ כל טופס בדף.
replyTemplateNamestringbodyלאתבנית WhatsApp מאושרת למענה. או replyText.
replyTextstringbodyלאמענה טקסט חופשי.
statusstringbodyלאactive|inactive (ברירת מחדל active).
גוף הבקשה
{
  "name": "FB lead welcome",
  "connectionId": "conn_fb1",
  "formIds": ["form_1"],
  "replyTemplateName": "lead_welcome_new_customer_0626"
}
בקשה לדוגמה
curl -X POST "https://api.gambot.co.il/api/v1/bots/facebook-lead-reply" \
  -H "Authorization: Bearer gmbt_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "name": "FB lead welcome", "connectionId": "conn_fb1", "replyTemplateName": "lead_welcome_new_customer_0626" }'
תגובה לדוגמה
{ "success": true, "message": "Bot created.", "data": { "botId": "bot_fb1", "name": "FB lead welcome", "status": "active" } }
דוגמאות נוספות
קריאת כלי MCP
gambot_create_facebook_lead_bot({
  name: "FB lead welcome",
  connectionId: "conn_fb1",
  formIds: ["form_1"],
  replyTemplateName: "lead_welcome_new_customer_0626"
})

הרשאות (Scopes)

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

הרשאהתיאור
messages:sendשליחת הודעות ותבניות
conversations:readקריאת שיחות והודעות
templates:readקריאת תבניות
templates:writeיצירת תבניות
contacts:readקריאת אנשי קשר
contacts:writeיצירה/עדכון אנשי קשר
leads:readקריאת לידים
leads:writeיצירה/עדכון לידים
cases:readקריאת פניות
cases:writeיצירה/עדכון פניות
tasks:readקריאת משימות
tasks:writeיצירה/עדכון משימות
notes:readקריאת הערות
quotes:readקריאת הצעות מחיר
quotes:writeיצירה/עדכון הצעות מחיר
invoices:readקריאת חשבוניות
invoices:writeיצירה/עדכון/הפקת חשבוניות
orders:readקריאת הזמנות
orders:writeיצירה/עדכון הזמנות
signatures:readקריאת מסמכי חתימה
forms:readקריאת טפסים והגשות
documents:readקריאת תבניות מסמכים והגשות
users:readקריאת משתמשים
users:writeיצירה/עדכון/מחיקת משתמשים
campaigns:readקריאת קמפיינים ותוצאות
campaigns:writeיצירה/עדכון/מחיקת קמפיינים
campaigns:runהרצת קמפיינים (כולל בדיקה)
bots:readקריאת בוטים ואוטומציות
bots:writeיצירה/עדכון/מחיקה/החלפת מצב בוטים
onboarding:readבדיקת ארגון + חיפוש מספרים + קישורי הצטרפות/תשלום
onboarding:writeיצירת חשבון (ניסיון או תשלום)
billing:writeהוספת אמצעי תשלום (כרטיס שמור)
waba:writeחיבור WhatsApp (Meta Embedded Signup)
webhooks:readקריאת רישום ה-webhook
webhooks:writeרישום/עדכון/מחיקה ובדיקה של webhook
connections:readקריאת חיבורים (אינטגרציות מחוברות)
email:sendשליחת מייל בודד
email:readקריאת קמפייני מייל
email:writeיצירת קמפייני מייל
email:runהרצת קמפייני מייל
calendar:readקריאת אירועי יומן
leadforms:readקריאת דפים וטפסי ליד של פייסבוק

העברת אירועים (Webhook)

ניתן להגדיר ש-Gambot יעביר כל אירוע ש-Meta שולחת (הודעות נכנסות, סטטוסי הודעות, עדכוני תבניות ועוד) אל השרת שלכם. אנחנו עוטפים את הנתונים במעטפת JSON קטנה שמוסיפה type בשורש (סוג האירוע) ושומרת את ה-payload המקורי של Meta תחת meta_obj — כך שהצד שלכם יודע מיד מה קרה ללא ניתוח עמוק.

איך מפעילים

בפאנל הניהול: הגדרות → כללי → העברת אירועים (Webhook). סמנו את התיבה, הזינו כתובת URL (חובה), אופציונלית כותרת Authorization, ובחרו אילו אירועים להעביר. כברירת מחדל כל האירועים פעילים. אפשר גם לרשום פרוגרמטית דרך ה-API (POST /webhooks/forward) או דרך כלי ה-MCP (gambot_register_webhook) — ולבדוק עם POST /webhooks/test.

מה מקבלים

עבור כל אירוע אנחנו שולחים POST אל ה-URL שלכם עם המעטפת (הנתונים המקוריים של Meta תחת meta_obj) והכותרות. ערכי ה-type הם: incoming_message (הודעה נכנסת), message_status (נשלח/נמסר/נקרא/נכשל), template_status_update (שינוי/אישור תבנית), template_category_update, template_quality_update, ואחר.

Headerתיאור
Authorizationהערך שהגדרתם (אם קיים).
X-Gambot-Organizationשם הארגון שלכם.
X-Gambot-Eventסוג האירוע (תואם ל-type בשורש), למשל incoming_message.

גוף לדוגמה (מעטפת העוטפת את ה-payload של Meta):

{
  "type": "incoming_message",
  "types": ["incoming_message"],
  "event": "incoming_message",
  "organization": "your-org",
  "receivedAt": "2026-01-01T12:00:00.000Z",
  "meta_obj": {
    "object": "whatsapp_business_account",
    "entry": [{
      "id": "<WABA_ID>",
      "changes": [{
        "field": "messages",
        "value": {
          "metadata": { "display_phone_number": "9725...", "phone_number_id": "..." },
          "contacts": [{ "profile": { "name": "דנה" }, "wa_id": "972501234567" }],
          "messages": [{
            "from": "972501234567",
            "id": "wamid.HBg...",
            "timestamp": "1757600000",
            "type": "text",
            "text": { "body": "שלום, אשמח לקבל פרטים" }
          }]
        }
      }]
    }]
  }
}
טיפ: החזירו 200 OK מהר ועבדו אסינכרונית. ההעברה היא fire-and-forget (ללא ניסיון חוזר). Meta בדרך כלל שולחת סוג אירוע אחד לכל webhook — אם כיביתם את הסוג הזה, הוא פשוט לא יועבר.

שרת MCP

שרת ה-Gambot MCP חושף את כל ה-API ככלים (tools) עבור סוכני AI כמו Cursor, Claude, ChatGPT ו-Gemini — שליחת הודעות, ניהול לידים, חשבוניות, משתמשים ועוד — הכול דרך שפה טבעית. הוא עוטף את אותו api/v1 ומאמת עם ה-Gambot Token שלכם. למדו עוד בעמוד WhatsApp MCP.

התקנה מקומית (Desktop — Cursor / Claude Desktop)

# No install or build needed — your MCP client runs it on demand:
npx -y gambot-mcp

חיבור ל-Cursor / Claude Desktop

הוסיפו ל-.cursor/mcp.json (או claude_desktop_config.json) והפעילו מחדש:

{
  "mcpServers": {
    "gambot": {
      "command": "npx",
      "args": ["-y", "gambot-mcp"],
      "env": { "GAMBOT_TOKEN": "gmbt_your_token_here" }
    }
  }
}
➕ הוספה ל-Cursor (בלחיצה אחת)לאחר ההוספה, הדביקו את ה-Gambot Token שלכם ב-env של השרת.

MCP מקוון (מתארח) — לכל כלי AI

כלים מבוססי-ענן שלא יכולים להריץ תהליך מקומי (ChatGPT, Claude, Gemini, Base44, Lovable, n8n, Make ועוד) מתחברים לאותו שרת MCP דרך כתובת URL מתארחת (Streamable HTTP) במקום npx — וחושפים את כל 133 הכלים. השלבים זהים בכל מקום; רק היכן שמדביקים את ה-URL ואיך מאמתים משתנה.

כתובת השרת (Server URL)
https://gambot-mcp.azurewebsites.net/mcp
אימות — שתי אפשרויות

השרת תומך בשתי דרכים להתחבר; בחרו את זו שהכלי שלכם מציע:
1) OAuth 2.0 (הכי קל) — הדביקו רק את ה-Server URL והכלי יפתח מסך התחברות (OAuth → PKCE → רישום לקוח דינמי). אידיאלי למחברי ChatGPT/Claude וכל כלי שמציע "Add custom connector" עם URL בלבד — ללא העתקת טוקן ידנית.
2) Bearer Token — כותרת HTTP Authorization: Bearer gmbt_your_token_here (או הדביקו את ה-Gambot Token בשדה ה-API Key / Token). כך או כך הארגון מזוהה אוטומטית מהזהות שלכם.

גילוי אוטומטי (Manifest): כלים תומכי-OAuth קוראים את המטא-דאטה מ-/.well-known/oauth-protected-resource/mcp ו-/.well-known/oauth-authorization-server. בריאות השרת: /health.
שלבים כלליים (עובדים בכל כלי)
  1. בכלי שלכם, פתחו היכן שמוסיפים שרתי/מחברי MCP (בדרך כלל: Settings → Connectors / Integrations / MCP Servers).
  2. בחרו סוג שרת Remote / URL / HTTP (לא Local/Command).
  3. הדביקו את ה-Server URL שלמעלה.
  4. אמתו: אם הכלי מציע OAuth / Sign in — פשוט התחברו (ללא טוקן). אחרת הוסיפו כותרת Authorization: Bearer gmbt_... או הדביקו את הטוקן בשדה ה-Token/API Key.
  5. שמרו והפעילו. הכלי מגלה אוטומטית את כל 133 הכלים והארגון מזוהה מהזהות שלכם.

לכלים שמשתמשים בקובץ תצורה (JSON)

כלים שתומכים בשרת MCP מרוחק דרך JSON (למשל Cursor, VS Code, Windsurf) — השתמשו בבלוק הזה:

{
  "mcpServers": {
    "gambot": {
      "url": "https://gambot-mcp.azurewebsites.net/mcp",
      "headers": { "Authorization": "Bearer gmbt_your_token_here" }
    }
  }
}
טיפ: אם כלי מבקש רק "URL" ללא אפשרות כותרות, בדרך כלל ניתן לצרף את הטוקן כפרמטר query — https://gambot-mcp.azurewebsites.net/mcp?token=gmbt_your_token_here. העדיפו את כותרת ה-Authorization כשאפשר.
לאחר החיבור, הסוכן יכול לקרוא לכלים כמו gambot_send_text, gambot_create_lead, gambot_issue_invoice, gambot_create_user ועוד (133 כלים). לתבניות עם מדיה, כפתורים ו-Footer: gambot_create_template (העבירו headerMediaUrl) ו-gambot_upload_template_media. בניית בוטים בשיחה: gambot_create_keyword_autoreply, gambot_create_template_button_autoreply, gambot_create_menu_bot, וכן gambot_create_bot/gambot_list_bots/gambot_get_bot/gambot_set_bot_status/gambot_delete_bot — ראו את סעיף בוטים ואוטומציות.

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

קחו את ה-Gambot Token שלכם מההגדרות ושלחו את הבקשה הראשונה שלכם.

פתחו חשבון חינם