מדריך למפתחים — Gambot API
ה-API הרשמי של Gambot לשליחת הודעות, ניהול תבניות, אנשי קשר, לידים ועוד.
אימות
https://api.gambot.co.il/api/v1Fallback: 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 }
}| HTTP | code | error | תיאור |
|---|---|---|---|
| 401 | AUTHENTICATION_REQUIRED | missing_api_key / invalid_api_key | טוקן חסר או שגוי |
| 403 | API_DISABLED | api_disabled | ה-API מושבת עבור ארגון זה |
| 403 | INSUFFICIENT_PERMISSION | insufficient_scope | לטוקן חסרה ההרשאה הנדרשת |
| 400 | VALIDATION_ERROR | missing_fields | חסרים שדות חובה |
| 400 | INVALID_PHONE_NUMBER | invalid_phone | מספר טלפון לא תקין (E.164) |
| 404 | RESOURCE_NOT_FOUND | not_found | המשאב לא נמצא |
| 409 | CONVERSATION_WINDOW_CLOSED | conversation_closed | חלון 24 השעות סגור — שלחו תבנית מאושרת |
| 409 | CONFIRMATION_REQUIRED | regular_window_confirmation_required | דיוור טקסט חופשי ידלג על נמענים בחלון סגור — נדרש אישור/תבנית |
| 502 | TEMPLATE_NOT_FOUND | send_failed | התבנית לא נמצאה |
| 502 | MISSING_TEMPLATE_VARIABLES | send_failed | חסרים משתני תבנית או שאינם תואמים |
| 502 | TEMPLATE_NOT_APPROVED | send_failed | התבנית אינה מאושרת ע"י Meta |
| 502 | SEND_FAILED | send_failed | השליחה נכשלה (בעיה בצד WhatsApp) |
| 402 | PAYMENT_METHOD_REQUIRED | no_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
שליחת הודעות טקסט חופשי ותבניות ללקוחות.
/messages/send-textהרשאה: messages:sendשליחת הודעת טקסט חופשי. מותרת רק בתוך חלון 24 השעות (מאז ההודעה האחרונה של הלקוח); מחוצה לו, שלחו תבנית.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
to | string | body | כן | הנמען בפורמט בינלאומי (9725...). מקבל גם phoneNumber. |
text | string | body | כן | גוף ההודעה. |
from | string | body | לא | ארגונים מרובי-מספרים: מאיזה מספר לשלוח — מספר תצוגה או 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?" }
}/messages/send-templateהרשאה: messages:sendשליחת תבנית מאושרת עם משתנים. יכולה לפתוח שיחה גם מחוץ לחלון 24 השעות.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
to | string | body | כן | הנמען. מקבל גם phoneNumber. |
templateId | string | body | כן | מזהה התבנית. |
variables | string[] | body | לא | משתני ה-Body לפי הסדר. לחלופין templateVariableQuery. |
from | string | body | לא | ארגונים מרובי-מספרים: מאיזה מספר לשלוח — מספר תצוגה או 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?" }
}/messages/{messageId}/statusהרשאה: conversations:readסטטוס שליחה של הודעה לפי מזהה ההודעה (ה-messageId שחוזר מ-send-text / send-template, או לכל נמען מ-campaigns/send). שימושי כשמשתמש אומר "לא רואה שההודעה הגיעה". אם הכשל הוא 131042 מתווסף בלוק paymentIssue שמסביר שאמצעי התשלום ל-API נפרד מזה של המודעות (Ads) — טעות נפוצה.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
messageId | string | path | כן | מזהה ההודעה (wamid...) שהתקבל בשליחה. |
phone | string | query | לא | מספר הנמען לחיפוש מדויק ומהיר (מומלץ). ללא — נסרוק את הודעות הארגון. |
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 — הוסיפו אמצעי תשלום."
}
}
}שיחות
הצגת שיחות, קריאת היסטוריית הודעות ומספרי השולח של הארגון.
/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" }
]
}
}/conversationsהרשאה: conversations:readהצגת שיחות (אנשי קשר) לפי ההודעה האחרונה.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
pageNumber | int | query | לא | ברירת מחדל 1. |
pageSize | int | query | לא | ברירת מחדל 50 (מקסימום 200). |
search | string | query | לא | חיפוש חופשי. |
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": "?" } ]
}
}/conversations/{phone}/messagesהרשאה: conversations:readהיסטוריית ההודעות של שיחה אחת (עימוד לפי מזהה הודעה).
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
phone | string | path | כן | מספר הטלפון של הלקוח. |
pageSize | int | query | לא | ברירת מחדל 50 (מקסימום 200). |
before | string | query | לא | שליפת הודעות לפני messageId זה. |
after | string | query | לא | שליפת הודעות אחרי 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": "?" } ] }
}/conversations/{phone}/windowהרשאה: conversations:readהאם חלון 24 השעות של שירות הלקוחות ב-WhatsApp פתוח עבור איש קשר זה? אם windowOpen=false חובה לשלוח תבנית מאושרת (טקסט חופשי נדחה). מחזיר המלצה ידידותית ל-AI.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
phone | string | path | כן | מספר הטלפון של הלקוח. |
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
}
}/conversations/slaהרשאה: conversations:readשיחות לפי SLA של זמן-תגובה: מי ממתין למענה וכמה זמן. השעון מתחיל בהודעה הנכנסת האחרונה ונעצר בכל מענה (אנושי או בוט). level=open (ברירת מחדל: warn+breach), all, ok, warn, breach.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
level | string | query | לא | open (ברירת מחדל) | all | ok | warn | breach |
pageNumber | number | query | לא | מספר עמוד. |
pageSize | number | query | לא | גודל עמוד (עד 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": "" }
]
}
}/conversations/{phone}/slaהרשאה: conversations:readSLA של זמן-תגובה לשיחה אחת: האם הלקוח ממתין, כמה דקות, והרמה (ok/warn/breach).
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
phone | string | path | כן | מספר הטלפון של הלקוח. |
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 / טלפון). ראו דוגמאות מלאות למטה.
/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" } ]
}/templates/{templateId}הרשאה: templates:readתבנית בודדת כולל סטטוס האישור של Meta.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
templateId | string | path | כן | מזהה התבנית. |
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": [ ? ] }
}/templates/{templateId}/variablesהרשאה: templates:readהמשתנים הדינמיים של התבנית.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
templateId | string | path | כן | מזהה התבנית. |
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": "שם" } ]
}/templatesהרשאה: templates:writeיצירת תבנית חדשה (נשלחת ל-Meta לאישור). תומכת ב-Header טקסט/מדיה, Body עם משתנים, Footer וכפתורים. שמות חייבים להיות באנגלית, lowercase_with_underscores.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
name | string | body | כן | שם התבנית (אנגלית, קווים תחתונים). |
language | string | body | כן | קוד שפה, למשל he / en. |
category | string | body | כן | MARKETING / UTILITY / AUTHENTICATION. |
components | object[] | body | כן | רכיבי התבנית: HEADER (TEXT או IMAGE/VIDEO/DOCUMENT), BODY, FOOTER, BUTTONS (QUICK_REPLY / URL / PHONE_NUMBER). לדיוור (MARKETING) יש לכלול Footer להסרה — אם לא נכלל, Gambot יוסיף אוטומטית "להסרה השב הסר". ראו דוגמאות למטה. |
headerMediaUrl | string | body | לא | קיצור: כתובת URL ציבורית של מדיה. Gambot מעלה אותה ל-Meta ומזריק את ה-header_handle לרכיב ה-HEADER אוטומטית. |
headerFormat | string | body | לא | פורמט ל-headerMediaUrl: IMAGE / VIDEO / DOCUMENT (ברירת מחדל IMAGE). |
gmbtMediaId | string | body | לא | מזהה מדיה של 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" }
}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": [["דנה"]] } }
]
}'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 שעות מראש" }
]
}'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" } ] }
]
}'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"]] } }
]
}'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": [["המוצר החדש"]] } }
]
}'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" }
] }
]
}'// 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": "אני רוצה!" } ] }
]
}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": "להסרה השב הסר" }'/templates/mediaהרשאה: templates:writeהעלאת מדיה (תמונה/וידאו/מסמך) מכתובת URL ציבורית ל-Meta וקבלת header_handle לשימוש חוזר עבור רכיב HEADER של תבנית.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
url | string | body | כן | כתובת URL ציבורית של המדיה. |
type | string | body | לא | סוג 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 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).
/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": ["תל אביב", "חיפה"] }
] }
}/contacts/ctwaהרשאה: contacts:readאנשי קשר שנוצרו ממודעת Click-to-WhatsApp (CTWA) — כל אחד מועשר במידע על המודעה שממנה הגיע.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
adId | string | query | לא | רק אנשי קשר מהמודעה הזו (referralSourceId). |
sourceType | string | query | לא | מקור ההפניה: ad או post. |
dateFrom | string | query | לא | תאריך התחלה yyyy-MM-dd (לפי תאריך יצירת איש הקשר). |
dateTo | string | query | לא | תאריך סיום yyyy-MM-dd (כולל). |
pageNumber | integer | query | לא | מספר עמוד (ברירת מחדל 1). |
pageSize | integer | query | לא | גודל עמוד 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?"
}
}
] }
}/contactsהרשאה: contacts:writeיצירת איש קשר (מחזיר את הקיים אם הטלפון מוכר). כולל שדות דינמיים תחת customFields.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
phoneNumber | string | body | כן | מספר הטלפון. מקבל גם to. |
name | string | body | לא | שם. |
email | string | body | לא | אימייל. |
keys | string[] | body | לא | תגיות/רשימות (ברירת מחדל Leads). |
customFields | object | body | לא | שדות דינמיים (נכתבים כמפתחות ברמה העליונה). ראו 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": "?" } }/contacts/{phone}הרשאה: contacts:readשליפת איש קשר לפי מספר טלפון.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
phone | string | path | כן | מספר הטלפון. |
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 } }/contacts/{phone}הרשאה: contacts:writeעדכון איש קשר — רק השדות שנשלחו, כולל שדות דינמיים תחת customFields, וכן consent/isSpam. מקבל גם POST.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
phone | string | path | כן | מספר הטלפון. |
name | string | body | לא | שם. |
email | string | body | לא | אימייל. |
keys | string[] | body | לא | תגיות/רשימות. |
consent | boolean | body | לא | הסכמה לדיוור: true=הסכמה, false=הסרה (מוחרג מדיוורים). |
isSpam | boolean | body | לא | סימון כספאם (מוחרג מדיוורים). |
customFields | object | body | לא | שדות דינמיים. |
{ "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" }/contacts/{phone}/consentהרשאה: contacts:writeקביעת הסכמה לדיוור. consent=false מסיר את איש הקשר מכל הדיוורים העתידיים (הסרה מרשימת התפוצה).
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
phone | string | path | כן | מספר הטלפון. |
consent | boolean | body | כן | true=הסכמה לדיוור, false=הסרה / הוסר מהתפוצה. |
source | string | body | לא | הערת תיעוד חופשית על מקור ההסכמה/ההסרה. |
{ "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." }/contacts/{phone}/spamהרשאה: contacts:writeסימון/ביטול סימון של איש קשר כספאם. סימון כספאם גם מסיר אותו מהתפוצה (consent=false).
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
phone | string | path | כן | מספר הטלפון. |
isSpam | boolean | body | כן | 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." }/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"] } }/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": ["מכירות", "תמיכה"] } }/contacts/{phone}/tagsהרשאה: contacts:writeהוספה/הסרה של תגיות לאיש קשר אחד — ממוזג עם התגיות הקיימות (ללא החלפה עיוורת). להחלפה מלאה השתמשו ב-PATCH עם keys.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
phone | string | path | כן | מספר הטלפון. |
add | string[] | body | לא | תגיות להוספה (נוצרות אוטומטית אם חדשות). |
remove | string[] | 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." }/contacts/tags/bulkהרשאה: contacts:writeהוספה/הסרה של תגיות למספר אנשי קשר בבת אחת. בחרו את הקהל לפי phones ו/או fromTag (כל מי שמחזיק כרגע בתגית זו).
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
phones | string[] | body | לא | רשימת מספרי טלפון מפורשת. |
fromTag | string | body | לא | החל על כל איש קשר שמחזיק כרגע בתגית זו. |
add | string[] | body | לא | תגיות להוספה. |
remove | string[] | 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)." }/contacts/{phone}/statusהרשאה: contacts:writeקביעת סטטוס השיחה של איש הקשר (Open / In Process / Closed) — אותו שדה שתיבת הצ׳אט מסננת לפיו.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
phone | string | path | כן | מספר הטלפון. |
status | string | body | כן | 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." }/contacts/{phone}/categoryהרשאה: contacts:writeקביעת קטגוריית השיחה (תווית אחת). מחרוזת ריקה מנקה אותה. ראו GET /contacts/categories.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
phone | string | path | כן | מספר הטלפון. |
category | string | body | כן | תווית הקטגוריה (ריק מנקה). |
{ "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).
/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": ["צפון", "דרום"] } ]
}
}/leadsהרשאה: leads:readהצגת לידים (עם עימוד וחיפוש).
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
pageNumber | int | query | לא | ברירת מחדל 1. |
pageSize | int | query | לא | ברירת מחדל 50 (מקסימום 200). |
search | string | query | לא | חיפוש חופשי. |
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": "?" } ] } }/leads/{leadId}הרשאה: leads:readשליפת ליד בודד לפי מזהה.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
leadId | string | path | כן | מזהה הליד. |
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": "?" } }/leadsהרשאה: leads:writeיצירת ליד CRM (איש קשר נוצר אם חסר, שליחת תבנית אופציונלית). מקבל את כל שדות הבסיס + customFields.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
lead | object | body | כן | אובייקט הליד: PhoneNumber (חובה), Name, Email, וכל שדה בסיס (title, value, priority, source, status, stageId, companyName…) + customFields. |
templateMessageData | object | body | לא | תבנית לשליחה מיידית לליד. |
{
"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": "?" } }/leads/{leadId}הרשאה: leads:writeעדכון ליד — כל שדה בסיס + customFields (ממוזג עם הקיים). מקבל גם POST.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
leadId | string | path | כן | מזהה הליד. |
title | string | body | לא | כותרת. |
status | string | body | לא | סטטוס. |
stageId | string | body | לא | שלב בצינור. |
value | string | body | לא | ערך העסקה. |
tags | string[] | body | לא | תגיות. |
customFields | object | body | לא | שדות דינמיים (ממוזגים עם הקיימים). |
{ "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).
/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" } ]
}
}/casesהרשאה: cases:readהצגת פניות (עם עימוד וחיפוש).
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
pageNumber | int | query | לא | ברירת מחדל 1. |
pageSize | int | query | לא | ברירת מחדל 50 (מקסימום 200). |
search | string | query | לא | חיפוש חופשי. |
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": "?" } ] } }/cases/{caseId}הרשאה: cases:readשליפת פנייה בודדת לפי מזהה.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
caseId | string | path | כן | מזהה הפנייה. |
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": "?" } }/cases/slaהרשאה: cases:readפניות לפי SLA לכל שלב: אילו פניות חרגו מיעד הזמן של השלב או בסיכון. status=open (ברירת מחדל: breached+at_risk), all, breached, at_risk, ok, none, resolved. מודע לשעות העבודה כשמוגדר.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
status | string | query | לא | open (ברירת מחדל) | all | breached | at_risk | ok | none | resolved |
pageNumber | number | query | לא | מספר עמוד. |
pageSize | number | query | לא | גודל עמוד (עד 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" }
]
}
}/casesהרשאה: cases:writeיצירת פנייה חדשה. כולל category ושדות דינמיים תחת customFields.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
subject | string | body | כן | נושא הפנייה. |
description | string | body | לא | תיאור. |
contactPhone | string | body | לא | קישור לאיש קשר. |
priority | string | body | לא | עדיפות. |
category | string | body | לא | קטגוריה. |
customFields | object | body | לא | שדות דינמיים. ראו 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": "?" } }/cases/{caseId}הרשאה: cases:writeעדכון פנייה — שדות בסיס + customFields (ממוזג עם הקיים). מקבל גם POST.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
caseId | string | path | כן | מזהה הפנייה. |
statusId | string | body | לא | סטטוס. |
priority | string | body | לא | עדיפות. |
category | string | body | לא | קטגוריה. |
customFields | object | body | לא | שדות דינמיים (ממוזגים עם הקיימים). |
{ "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" }משימות
יצירה, הצגה, שליפה ועדכון של משימות (עם קישור אופציונלי לאיש קשר).
/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": "?" } ] } }/tasks/{taskId}הרשאה: tasks:readשליפת משימה בודדת לפי מזהה.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
taskId | string | path | כן | מזהה המשימה. |
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" } }/tasks/{taskId}הרשאה: tasks:writeעדכון משימה — רק השדות שנשלחו. מקבל גם POST.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
taskId | string | path | כן | מזהה המשימה. |
status | string | body | לא | סטטוס (open/done…). |
priority | string | body | לא | עדיפות. |
dueDate | string | body | לא | תאריך יעד. |
{ "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" }/tasksהרשאה: tasks:writeיצירת משימה חדשה.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
title | string | body | כן | כותרת המשימה. |
description | string | body | לא | תיאור. |
dueDate | string | body | לא | תאריך יעד. |
priority | string | body | לא | עדיפות (low/medium/high). |
contactPhone | string | body | לא | קישור לאיש קשר. |
{ "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": "?" } }הערות
קריאת ההערות שנכתבו ידנית ומפוזרות ברחבי המערכת — על אנשי קשר (מהצ׳אט/ציר הזמן), לידים ופניות. זהו אותו מקור נתונים כמו "מרכז ההערות" שבמערכת. סננו לפי מקור, טווח תאריכים, כותב או חיפוש חופשי, ושלפו את ההערות של רשומה בודדת.
/notesהרשאה: notes:readהצגה/חיפוש הערות מכל המקורות (אנשי קשר, לידים, פניות). ברירת מחדל: 30 הימים האחרונים.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
source | string | query | לא | סינון לפי מקור: contact | lead | case (השמיטו לכולם). |
dateFrom | string | query | לא | תאריך התחלה yyyy-MM-dd. |
dateTo | string | query | לא | תאריך סיום yyyy-MM-dd (כולל). |
userId | string | query | לא | רק הערות שנכתבו על ידי משתמש זה (uID). |
search | string | query | לא | התאמת טקסט חופשי בתוך גוף ההערה. |
pageNumber | int | query | לא | ברירת מחדל 1. |
pageSize | int | query | לא | ברירת מחדל 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" }
]
}
}/notes/{entityType}/{entityId}הרשאה: notes:readהערות עבור רשומה בודדת. entityType: contact | lead | case. עבור contact העבירו מספר טלפון כ-entityId.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
entityType | string | path | כן | contact | lead | case. |
entityId | string | path | כן | טלפון (עבור contact) או מזהה הליד/הפנייה. |
limit | int | query | לא | מקסימום הערות (ברירת מחדל 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).
/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" } ] } }/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" } ] } }/campaigns/{campaignId}הרשאה: campaigns:readקמפיין בודד לפי מזהה.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
campaignId | string | path | כן | מזהה הקמפיין. |
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": "?" } }/campaigns/{campaignId}/resultsהרשאה: campaigns:readתוצאות/דוח הרצה (נשלחו/נמסרו/נקראו/תגובות/הקלקות).
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
campaignId | string | path | כן | מזהה הקמפיין. |
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" } } ] } }/campaignsהרשאה: campaigns:writeיצירת קמפיין — ידני או מתוזמן (חד-פעמי/חוזר). קהל: Excel, סינון CRM או רשימה. ראו דוגמאות מלאות למטה.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
campaignName | string | body | כן | שם הקמפיין. |
messageType | string | body | כן | Template (תבנית) או regular (טקסט חופשי). |
wabaTemplateId | string | body | לא | מזהה תבנית (חובה כאשר messageType=Template). |
message | string | body | לא | טקסט ההודעה (כאשר regular). |
campaignTrigger | string | body | לא | Manually (ברירת מחדל) או Scheduled. |
scheduleType | string | body | לא | once (חד-פעמי) או repeated (חוזר). |
runAt | string | body | לא | תאריך ושעת הרצה, למשל 2026-07-01T09:00:00. |
timezone | string | body | לא | אזור זמן IANA, למשל Asia/Jerusalem. |
interval | string | body | לא | Second/Minute/Hour/Day/Week/Month/Year (חוזר). |
intervalNumber | int | body | לא | כל N מרווחים. |
endCondition | object | body | לא | { type: none|until|count, value }. |
recipientSource | string | body | לא | למשל "Excel". |
ExcelData | object | body | לא | { recipients: [{ phone, variables, rowData }] }. |
ContactFilters | object | body | לא | פלח CRM: { filters:[…], logic:"AND|OR" }. |
templateVariableQuery | object[] | body | לא | ממפה משתני תבנית לעמודות/שדות. |
fromNumberId | string | body | לא | שולח לארגונים מרובי-מספרים — phoneNumberId או מספר תצוגה (ראו GET /numbers). ברירת מחדל: המספר הראשי. |
sendResultsSummary | bool | body | לא | שליחת סיכום תוצאות הרצה במייל אחרי כל הרצה. ברירת מחדל דרך ה-API/MCP: true. שלחו false להשבתה. |
sendResultsAfterDays | int | body | לא | כמה ימים אחרי ההרצה לשלוח את הסיכום במייל. ברירת מחדל: 1 (למחרת). טווח 1–60. |
resultsEmailTo | string | body | לא | נמען הסיכום. ברירת מחדל: אימייל הארגון. |
aiAnalysisEnabled | bool | body | לא | ניתוח AI של התגובות (מענים, אוטומטי מול מתעניין, ROI) בתוך הסיכום. ברירת מחדל: true. |
holidayHandling | string | body | לא | לקמפיינים חוזרים — כאשר הרצה נופלת בשבת/חג ישראלי: 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."
}
}
}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" }
]
}
}'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" } ] }
}'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" } ] }
}'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" } ] }
}'/campaigns/{campaignId}הרשאה: campaigns:writeעדכון קמפיין (שלחו את אובייקט הקמפיין המלא). מקבל גם POST.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
campaignId | string | path | כן | מזהה הקמפיין. |
{ "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" }/campaigns/{campaignId}הרשאה: campaigns:writeמחיקת קמפיין.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
campaignId | string | path | כן | מזהה הקמפיין. |
curl -X DELETE "https://api.gambot.co.il/api/v1/campaigns/CAMPAIGN_ID" \
-H "Authorization: Bearer gmbt_YOUR_TOKEN"{ "success": true, "message": "Campaign deleted" }/campaigns/{campaignId}/runהרשאה: campaigns:runהרצת קמפיין קיים (שמור) עכשיו — מזהה את הנמענים ומבצע.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
campaignId | string | path | כן | מזהה הקמפיין. |
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" } }
}/campaigns/sendהרשאה: campaigns:runהרצת קמפיין אד-הוק ללא שמירה. ספקו קהל (רשימת טלפונים / excel / סינון) והודעה (תבנית או טקסט).
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
messageType | string | body | כן | Template או regular. |
templateId | string | body | לא | מזהה תבנית (כאשר Template). |
message | string | body | לא | טקסט (כאשר regular). |
recipientPhoneNumbers | string[] | body | לא | רשימת טלפונים מפורשת. |
excelRecipients | object[] | body | לא | [{ phone, variables, rowData }]. |
keys | string[] | body | לא | קהל לפי תגיות/רשימות: שליחה לכל איש קשר המתויג באחת מאלה (למשל ["לקוחות חדשים"]). הדרך הפשוטה ל"שליחה לתגית X". מקבל גם tags. |
filters | object | body | לא | פלח CRM מתקדם — מתורגם למספרי טלפון. { logic, filters:[...] }. פריט תגית: { filterType:"group", operator:"equals", groupValue:["VIP"] }. |
consentConfirmed | bool | body | לא | אישור הסכמה לדיוור לקהל זה. ברירת מחדל true. נמענים תמיד יכולים להסיר עצמם (ראו optOut בתגובה). |
dryRun | bool | body | לא | תצוגה מקדימה בלבד — לא שולח. מחזיר את גודל הקהל, ולדיוור regular כמה נמענים עם חלון 24 שעות סגור (לא יקבלו אותו) בתוספת המלצה. |
confirmRegular | bool | body | לא | נדרש כדי לשלוח בפועל דיוור "regular" (טקסט חופשי) דרך ה-MCP. בלעדיו השליחה נחסמת ומחזירה regular_window_confirmation_required עם מספר החלונות הסגורים — הציגו זאת למשתמש והמליצו על תבנית, ואז שלחו שוב עם confirmRegular=true. מתעלמים ממנו כאשר messageType=Template. |
confirmOverLimit | bool | body | לא | נדרש כדי לשלוח בפועל דרך ה-MCP כשהקהל חורג ממגבלת הדיוור היומית של המספר. בלעדיו השליחה נחסמת ומחזירה messaging_limit_exceeded עם data.messagingLimit (tier, dailyLimit, guidance, suggestedBlocks) — הציגו למשתמש את המגבלה ואת שתי האפשרויות: בלוקים ידניים (חזרה עם confirmOverLimit=true בכל יום) או בלוקים מתוזמנים אוטומטית (קמפיין Scheduled לכל תאריך ב-suggestedBlocks). |
fromNumberId | string | body | לא | שולח — 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": ["לקוחות חדשים"]
}'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"] } ] }
}'/campaigns/testהרשאה: campaigns:runבדיקת קמפיין — שליחה לנמען בודד (תבנית או טקסט). מצוין לפני דיוור מלא.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
to | string | body | כן | טלפון נמען הבדיקה. |
messageType | string | body | לא | ברירת מחדל Template אם templateId מוגדר. |
templateId | string | body | לא | מזהה תבנית. |
message | string | body | לא | טקסט (כאשר regular). |
variables | object | body | לא | משתני תבנית, למשל { "var1": "דנה" }. |
fromNumberId | string | body | לא | שולח — 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" } }הצעות מחיר
יצירה, הצגה, שליפה ועדכון של הצעות מחיר.
/quotesהרשאה: quotes:readהצגת הצעות מחיר (עם עימוד וסינון סטטוס).
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
pageNumber | int | query | לא | ברירת מחדל 1. |
pageSize | int | query | לא | ברירת מחדל 50. |
search | string | query | לא | חיפוש. |
status | string | query | לא | 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 } ] } }/quotes/{quoteId}הרשאה: quotes:readשליפת הצעת מחיר בודדת.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
quoteId | string | path | כן | מזהה הצעת המחיר. |
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 } }/quotesהרשאה: quotes:writeיצירת הצעת מחיר. הגוף = שדות ההצעה (או תחת quoteData).
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
title | string | body | לא | כותרת. |
contactPhone | string | body | לא | טלפון הלקוח. |
items | object[] | body | לא | שורות פריטים. |
total | number | body | לא | סה"כ. |
currency | string | body | לא | מטבע. |
{
"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": "?" } }/quotes/{quoteId}הרשאה: quotes:writeעדכון שדות הצעת מחיר (חלקי). מקבל גם POST.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
quoteId | string | path | כן | מזהה הצעת המחיר. |
status | string | body | לא | סטטוס. |
{ "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) של חשבוניות.
/invoicesהרשאה: invoices:readהצגת חשבוניות (עם עימוד וסינון סטטוס/סוג).
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
pageNumber | int | query | לא | ברירת מחדל 1. |
pageSize | int | query | לא | ברירת מחדל 50. |
status | string | query | לא | draft/issued… |
type | string | query | לא | 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 } ] } }/invoices/{invoiceId}הרשאה: invoices:readשליפת חשבונית בודדת.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
invoiceId | string | path | כן | מזהה החשבונית. |
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 } }/invoicesהרשאה: invoices:writeיצירת טיוטת חשבונית. הגוף = שדות החשבונית (או תחת invoiceData).
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
type | string | body | לא | tax_invoice / receipt / combined… |
contactPhone | string | body | לא | טלפון הלקוח. |
items | object[] | body | לא | שורות פריטים. |
total | number | body | לא | סה"כ. |
{
"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": "?" } }/invoices/{invoiceId}הרשאה: invoices:writeעדכון חשבונית (חסום לאחר הפקה/נעילה). מקבל גם POST.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
invoiceId | string | path | כן | מזהה החשבונית. |
{ "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" }/invoices/{invoiceId}/issueהרשאה: invoices:writeהפקת חשבונית — נועלת אותה ומקצה את מספר המסמך הרשמי.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
invoiceId | string | path | כן | מזהה החשבונית. |
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" } }הזמנות
יצירה, הצגה, שליפה ועדכון של הזמנות חנות.
/ordersהרשאה: orders:readהצגת הזמנות (סינון לפי סטטוס/חנות/טווח תאריכים).
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
status | string | query | לא | סטטוס. |
storeId | string | query | לא | מזהה החנות. |
dateFrom | string | query | לא | מתאריך. |
dateTo | string | query | לא | עד תאריך. |
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 } ] } }/orders/{orderId}הרשאה: orders:readשליפת הזמנה בודדת.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
orderId | string | path | כן | מזהה ההזמנה. |
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": [ ? ] } }/ordersהרשאה: orders:writeיצירת הזמנה. הגוף = שדות ההזמנה.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
customerName | string | body | לא | שם הלקוח. |
customerPhone | string | body | לא | טלפון הלקוח. |
items | object[] | body | לא | פריטים. |
total | number | body | לא | סה"כ. |
{
"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": "?" } }/orders/{orderId}הרשאה: orders:writeעדכון הזמנה (merge). מקבל גם POST.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
orderId | string | path | כן | מזהה ההזמנה. |
{ "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.
/signaturesהרשאה: signatures:readהצגת מסמכי חתימה (החדשים ראשונים).
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
limit | int | query | לא | ברירת מחדל 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": "?" } ] } }/signatures/{documentId}הרשאה: signatures:readמסמך חתימה בודד כולל תוצאות החתימה (Signatures).
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
documentId | string | path | כן | מזהה המסמך. |
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": "?" } ] } }/signatures/{documentId}/linkהרשאה: signatures:readקישור/י החתימה להפצה לחותמים (קישור אחד לכל חותם).
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
documentId | string | path | כן | מזהה מסמך החתימה. |
curl "https://api.gambot.co.il/api/v1/signatures/DOC_ID/link" \
-H "Authorization: Bearer gmbt_YOUR_TOKEN"{ "success": true, "data": { "documentId": "DOC_ID", "fillOnly": false, "url": "https://gambot.co.il/ORG/esignature/DOC_ID/sign/TOKEN?lang=he", "signers": [ { "name": "דנה", "role": "signer1", "url": "https://gambot.co.il/ORG/esignature/DOC_ID/sign/TOKEN?lang=he" } ] } }קישורי החתימה קיימים לאחר שבקשת החתימה נשלחה. אם למסמך אין עדיין טוקן — מוחזרת שגיאת no_link.
טפסים
הגדרות טפסים, הגשות (תוצאות) והקישור הציבורי להפצה. יצירת טפסים מתבצעת בממשק Gambot.
/formsהרשאה: forms:readהצגת טפסי ווב.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
limit | int | query | לא | ברירת מחדל 200. |
curl "https://api.gambot.co.il/api/v1/forms" \
-H "Authorization: Bearer gmbt_YOUR_TOKEN"{ "success": true, "data": { "count": 3, "items": [ { "id": "?", "title": "טופס יצירת קשר" } ] } }/forms/{formId}הרשאה: forms:readהגדרת טופס בודד.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
formId | string | path | כן | מזהה הטופס. |
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": [ ? ] } }/forms/{formId}/linkהרשאה: forms:readהקישור הציבורי הקבוע של הטופס — להפצה ללקוחות (WhatsApp/אימייל/SMS/QR).
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
formId | string | path | כן | מזהה הטופס. |
curl "https://api.gambot.co.il/api/v1/forms/FORM_ID/link" \
-H "Authorization: Bearer gmbt_YOUR_TOKEN"{ "success": true, "data": { "formId": "FORM_ID", "slug": "יצירת-קשר", "url": "https://gambot.co.il/forms/ORG/יצירת-קשר" } }קישור קבוע לשימוש חוזר — כל הגשה נכנסת להגשות של הטופס.
/forms/{formId}/submissionsהרשאה: forms:readהגשות (תוצאות) של טופס.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
formId | string | path | כן | מזהה הטופס. |
limit | int | query | לא | ברירת מחדל 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": { ? } } ] } }תבניות מסמכים
תבניות מסמכים, הגשות מילוי (תוצאות), ויצירת קישור מילוי להפצה ללקוח.
/documentsהרשאה: documents:readהצגת תבניות מסמכים.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
limit | int | query | לא | ברירת מחדל 200. |
curl "https://api.gambot.co.il/api/v1/documents" \
-H "Authorization: Bearer gmbt_YOUR_TOKEN"{ "success": true, "data": { "count": 5, "items": [ { "id": "?", "name": "חוזה" } ] } }/documents/{templateId}הרשאה: documents:readתבנית מסמך בודדת.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
templateId | string | path | כן | מזהה התבנית. |
curl "https://api.gambot.co.il/api/v1/documents/TEMPLATE_ID" \
-H "Authorization: Bearer gmbt_YOUR_TOKEN"{ "success": true, "data": { "id": "TEMPLATE_ID", "name": "?" } }/documents/{templateId}/submissionsהרשאה: documents:readהגשות מילוי שנוצרו מהתבנית (fill-only).
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
templateId | string | path | כן | מזהה התבנית. |
limit | int | query | לא | ברירת מחדל 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": [ ? ] } ] } }/documents/{templateId}/linkהרשאה: documents:readיצירת קישור מילוי להפצה ללקוח מתבנית מסמך.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
templateId | string | path | כן | מזהה התבנית. |
contactPhone | string | body | לא | טלפון איש הקשר — למילוי מראש של משתני התבנית. |
leadId | string | body | לא | מזהה ליד — למילוי מראש של המשתנים. |
documentName | string | body | לא | שם למסמך שנוצר (ברירת מחדל: שם התבנית). |
language | string | body | לא | שפה (he/en/…). ברירת מחדל he. |
expiresInDays | int | body | לא | תוקף הקישור בימים (ברירת מחדל 30). |
variables | object | body | לא | ערכים ידניים למשתני התבנית: { "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 כי הוא יוצר מסמך.
משתמשים
ניהול משתמשי הארגון (חברי צוות) — הוספה, הצגה, שליפה, עדכון והשבתה.
/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" } ] } }/users/{userId}הרשאה: users:readשליפת משתמש בודד.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
userId | string | path | כן | מזהה המשתמש. |
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" } }/usersהרשאה: users:writeיצירה/הזמנה של משתמש — מקים את החשבון ושולח אימייל + WhatsApp.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
email | string | body | כן | כתובת אימייל. |
fullName | string | body | לא | שם מלא (או firstName+lastName). |
phoneNumber | string | body | לא | טלפון. |
securityRole | string | body | לא | Admin/StoreManager/StoreAgent/Chat/Basic/Custom. |
language | string | body | לא | שפה. |
{
"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" } }/users/{userId}הרשאה: users:writeעדכון משתמש — רק השדות שנשלחו. מקבל גם POST.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
userId | string | path | כן | מזהה המשתמש. |
securityRole | string | body | לא | תפקיד אבטחה. |
status | string | body | לא | 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" }/users/{userId}/disableהרשאה: users:writeהשבתת משתמש (status=inactive).
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
userId | string | path | כן | מזהה המשתמש. |
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" }/users/{userId}/enableהרשאה: users:writeהפעלת משתמש (status=active).
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
userId | string | path | כן | מזהה המשתמש. |
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" }/users/{userId}הרשאה: users:writeמחיקת משתמש לצמיתות (אימות + פרופיל).
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
userId | string | path | כן | מזהה המשתמש. |
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}} נושאים את מספר הטלפון וטקסט ההודעה של איש הקשר המפעיל אל צעדים מאוחרים יותר.
/botsהרשאה: bots:readהצגת בוטים/אוטומציות (עם סיכום לכל בוט). ?botsOnly=true מחזיר רק בוטים ויזואליים.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
botsOnly | bool | query | לא | רק בוטים ויזואליים (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" } ] } }/bots/{botId}הרשאה: bots:readבוט בודד עם הגדרת הצעדים המלאה שלו.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
botId | string | path | כן | מזהה הבוט. |
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" } } ] } }/bots/keyword-replyהרשאה: bots:writeבונה ברמה גבוהה: מענה אוטומטי להודעה נכנסת — לפי מילת מפתח אחת או יותר, או לכל הודעה.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
name | string | body | כן | שם הבוט. |
keywords | string[] | body | לא | מילות מפתח שמפעילות את הבוט (מותאמות ב-OR). חובה אלא אם anyMessage=true. |
matchType | string | body | לא | equals|contains (ברירת מחדל equals). |
anyMessage | bool | body | לא | מענה לכל הודעה נכנסת, תוך התעלמות ממילות מפתח. |
replyTemplateName | string | body | לא | שם התבנית למענה. או replyText. |
replyText | string | body | לא | מענה טקסט חופשי (עובד בתוך חלון 24 השעות). |
status | string | body | לא | 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 השעות חובה להשיב בתבנית מאושרת.
gambot_create_keyword_autoreply({
name: "Greeting bot",
keywords: ["hi", "hello"],
replyText: "Hi! How can we help?"
})/bots/template-button-replyהרשאה: bots:writeבונה ברמה גבוהה: מענה אוטומטי כשאיש קשר לוחץ על כפתור בתבנית ששלחתם. כל כפתור מנתב למענה משלו.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
name | string | body | כן | שם הבוט. |
templateName | string | body | כן | התבנית שכפתוריה מפעילים את הבוט. |
buttons | object[] | body | כן | [{ button (הכותרת שלו), replyTemplateName?, replyText? }]. כפתור ללא מענה מזוהה אך לא שולח דבר. |
status | string | body | לא | 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" } }/botsהרשאה: bots:writeיצירת בוט מאובייקט botomation מלא (שליטה מלאה). העדיפו את הבונים ברמה גבוהה אלא אם דרושים צעדים מותאמים.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
name | string | body | כן | שם הבוט. |
steps | object[] | body | כן | רשימת הצעדים. צעד 1 = טריגר. כל צעד: { StepId, type: "trigger|action", action: "IncomingMessage|SendMessage|switchCase|…", config }. |
status | string | body | לא | active|inactive (ברירת מחדל active). |
isBot | bool | body | לא | קבעו 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 מושלמים אוטומטית.
/bots/{botId}/statusהרשאה: bots:writeהפעלה או השבתה של בוט.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
botId | string | path | כן | מזהה הבוט. |
status | string | body | לא | 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" } }/bots/{botId}הרשאה: bots:writeעדכון בוט (שלחו את אובייקט הבוט המלא). POST לאותה כתובת מתקבל גם כן.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
botId | string | path | כן | מזהה הבוט. |
{ "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" } }/bots/{botId}הרשאה: bots:writeמחיקת בוט.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
botId | string | path | כן | מזהה הבוט. |
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.
/onboarding/check-organizationהרשאה: onboarding:readבדיקה האם כבר קיים ארגון עבור חברה + ח.פ/ע.מ, והאם ניתן להמשיך הצטרפות שלא הושלמה.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
companyName | string | body | כן | שם החברה. |
companyIdNumber | string | body | כן | ח.פ/ע.מ (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 } }/onboarding/organization-nameהרשאה: onboarding:readיצירת שם ארגון ייחודי מהשם + ח.פ/ע.מ (מוסיף סיומת אם תפוס).
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
companyName | string | body | כן | שם החברה. |
companyIdNumber | string | body | כן | ח.פ/ע.מ. |
{ "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" } }/onboarding/available-numbersהרשאה: onboarding:readהצגת מספרי טלפון הזמינים לרכישה עבור מדינה (Twilio) — בחרו אחד לרכישה כ-SIM של החשבון.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
countryCode | string | body | כן | קוד מדינה ISO-3166 alpha-2 (למשל US, GB, IL). |
numberType | string | body | לא | 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.
/onboarding/create-trial-self-serveהרשאה: public (no key)שלב 1 — יצירת חשבון חדש בלי מפתח API ובלי למלא טופס (ניסיון חינם). זו נקודת הכניסה לסוכן AI/MCP שאין לו עדיין טוקן. אם organizationName מושמט הוא נוצר אוטומטית משם החברה + ח.פ.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
companyInfo | object | body | כן | { companyName, companyIdNumber (ח.פ/ת.ז) — חובה כשאין organizationName; organizationName (אופציונלי), country (ISO-3166), timezone (IANA) }. |
contactInfo | object | body | כן | { contactFullName, contactEmail, contactPhoneNumber } — לשם נשלחים פרטי ההתחברות. |
useFreeNumber / useCoexisting / simInfo | object | body | לא | אפשרויות מספר, כמו ב-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.
/onboarding/create-trialהרשאה: onboarding:writeיצירת ארגון בניסיון חינם + משתמש ראשון (ללא כרטיס). פרטי ההתחברות נשלחים באימייל וב-WhatsApp.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
useFreeNumber | bool | body | לא | מספר הבדיקה החינמי של Meta (לבדיקות בלבד). |
useCoexisting | bool | body | לא | מספר WhatsApp Business קיים (simInfo.simNumberEntered). |
plan | string | body | לא | Basic/Premium/Enterprise. |
currency | string | body | לא | ILS/USD/EUR/GBP. |
companyInfo | object | body | כן | { organizationName (חובה), timezone (IANA, מומלץ; נגזר מ-country אם הושמט), country (ISO-3166), companyName, idNumber, companyUrl, companyPhoneNumber }. |
contactInfo | object | body | לא | { contactFullName, contactEmail, contactPhoneNumber }. |
simInfo | object | body | לא | { 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).
/onboarding/create-paidהרשאה: onboarding:writeיצירת חשבון ישירות בתשלום (ללא חודש ניסיון). כרטיס הוא חובה — הטוקן שלו נשמר והחיוב מתחיל מיד.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
card | object | body | כן | חובה. { cardNumber, expirationDate ("MM/YY"), cvv?, holderId? }. הכרטיס נשלח רק לספק הסליקה תואם-PCI ואינו נשמר. |
companyInfo | object | body | כן | { organizationName (חובה), timezone (IANA, מומלץ; נגזר מ-country אם הושמט), country (ISO-3166), … }. |
plan | string | body | לא | Basic/Premium/Enterprise. |
simInfo | object | body | לא | כמו ב-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.
/onboarding/add-payment-methodהרשאה: billing:writeאימות כרטיס מול ספק הסליקה (Tranzila) ושמירת הטוקן שלו בארגון — סוכן AI עם כרטיס הלקוח מוסיף אמצעי תשלום ללא הדף המתארח.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
organizationName | string | body | כן | שם הארגון. |
card | object | body | כן | חובה. { cardNumber, expirationDate ("MM/YY"), cvv?, holderId? }. |
plan | string | body | לא | תוכנית (לקוד המוצר). |
{ "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.
/onboarding/payment-linkהרשאה: onboarding:readבניית קישור תשלום מתארח מאובטח (Tranzila) להוספת כרטיס עבור ארגון. ה-API לעולם אינו מטפל בנתוני הכרטיס.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
organizationName | string | body | כן | שם הארגון. |
plan | string | body | לא | תוכנית. |
price | string | body | לא | מחיר. |
paymentCycle | string | body | לא | monthly/yearly. |
currency | string | body | לא | מטבע. |
contactEmail | string | body | לא | אימייל ליצירת קשר. |
{ "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¤cy=ILS" } }שתפו את הקישור עם הלקוח כדי להזין כרטיס בדף המאובטח; טוקן הכרטיס נשמר אוטומטית בהצלחה.
/onboarding/waba/connect-linkהרשאה: public (no key)שלב 2 — קבלת כתובת הדף המתארח להשלמת Meta Embedded Signup (חיבור WhatsApp). החשבון חייב כבר להיות קיים (שלב 1).
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
organization | string | query | כן | שם הארגון כפי שהוחזר מיצירת החשבון (organizationName). לא להמציא. |
curl "https://api.gambot.co.il/api/v1/onboarding/waba/connect-link?organization=YOUR_ORGANIZATION_NAME"{ "success": true, "data": { "url": "https://gambot.co.il/complete-waba/acme-inc-123456789?lang=en" } }ארגון שלא נוצר מחזיר 404 עם code=ORGANIZATION_NOT_FOUND — צרו קודם חשבון עם POST /onboarding/create-trial-self-serve.
/onboarding/statusהרשאה: public (no key)שלב 3 — התקדמות ההצטרפות של ארגון: האם החשבון נוצר, האם יש כרטיס, והאם WhatsApp מחובר. לבדיקה חוזרת עד status=connected.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
organization | string | query | כן | שם הארגון שחזר מיצירת החשבון. |
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.
/onboarding/waba/exchange-tokenהרשאה: waba:writeהשלמת Meta Embedded Signup ע"י החלפת ה-code מחלונית הפייסבוק — רושמת את ה-WABA, ה-webhooks והטלפון.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
code | string | body | כן | קוד ההרשאה מחלונית Meta Embedded Signup. |
organization | string | body | כן | שם הארגון. |
isCoexisting | bool | body | לא | חיבור coexistence. |
coexistingPhoneNumber | string | body | לא | מספר קיים (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 (מניעת כפילויות).
/webhooks/forwardהרשאה: webhooks:writeרישום (או עדכון) webhook: מגדיר את כתובת היעד שאליה גמבוט תעביר אירועים. שקול-ערך פרוגרמטי למסך הגדרות → העברת אירועים (Webhook). כשמופעל — חובה כתובת http(s) תקינה.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
url | string | body | כן | כתובת היעד שתקבל POST-ים (מומלץ https). לדוגמה https://your-server.com/webhook. |
authHeader | string | body | לא | ערך שיישלח מילולית ככותרת Authorization בכל קריאה (למשל "Bearer my-secret"). אמתו אותו אצלכם. |
events | object | body | לא | אילו אירועים להעביר: { 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.
/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 }
}
}/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 } }/webhooks/testהרשאה: webhooks:writeשליחת אירוע-דוגמה (incoming_message מסומן test:true) לכתובת הרשומה — או לכתובת שתעבירו בגוף — והחזרת תוצאת המסירה. מושלם לוודא שנקודת הקצה שלכם מקבלת את הקריאות. המסירה נרשמת בלוג.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
url | string | body | לא | כתובת לבדיקה במקום הרשומה (מאפשר לבדוק לפני רישום). |
authHeader | string | body | לא | כותרת 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 בקריאות אחרות (למשל טפסי ליד/יומן/שליחת מייל).
/connectionsהרשאה: connections:readהצגת כל החיבורים של הארגון + מספרי ה-WhatsApp. ?type= מסנן לפי סוג חיבור (למשל FacebookLeadAds).
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
type | string | query | לא | סינון לפי 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 } ] } }gambot_list_connections({})אימייל (שליחה + קמפיינים)
שליחת מייל בודד וקמפייני דיוור במייל דרך תיבת ה-Google/Microsoft המחוברת (הגדרות → חיבורים). הריצו GET /connections כדי לראות אילו ספקים מחוברים. קמפייני מייל רצים על אותו מנוע שליחה עמיד ומתחדש כמו באפליקציה — בטוח לכמויות גדולות וללא כפילויות.
/email/sendהרשאה: email:sendשליחת מייל בודד. HTML כברירת מחדל (isHtml=false לטקסט). ספק אופציונלי: google/microsoft או connectionId.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
to | string | body | כן | כתובת הנמען. |
subject | string | body | כן | נושא. |
body | string | body | כן | גוף ההודעה (HTML כברירת מחדל). |
isHtml | bool | body | לא | האם הגוף HTML (ברירת מחדל true). |
cc | string[] | body | לא | עותק (CC). |
bcc | string[] | body | לא | עותק מוסתר (BCC). |
provider | string | body | לא | תיבה לשליחה: 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" } }gambot_send_email({
to: "customer@example.com",
subject: "Your quote",
body: "<p>Hi!</p>"
})/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" } ] } }/email/campaigns/{campaignId}הרשאה: email:readקמפיין מייל בודד.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
campaignId | string | path | כן | מזהה הקמפיין. |
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" } }/email/campaignsהרשאה: email:writeיצירת קמפיין מייל. תוכן: templateId או subject+body מוטבעים. קהל: contactFilters (סגמנט CRM) או excelRecipients. run=true יוצר ושולח מיד.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
campaignName | string | body | כן | שם הקמפיין. |
templateId | string | body | לא | תבנית מייל שמורה (או subject+body). |
subject | string | body | לא | נושא מוטבע. |
body | string | body | לא | גוף HTML מוטבע. |
provider | string | body | לא | תיבה לשליחה: google/microsoft או connectionId. |
contactFilters | object | body | לא | סגמנט CRM: { filters:[…], logic:"AND" }. |
excelRecipients | object[] | body | לא | נמענים מפורשים: [{ email, name, variables }]. |
run | bool | body | לא | יצירה ושליחה מיידית בקריאה אחת. |
{
"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" } }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
})/email/campaigns/{campaignId}/runהרשאה: email:runהרצת (שליחת) קמפיין מייל שמור עכשיו. מנוע עמיד ומתחדש — בטוח לכמויות גדולות וללא כפילויות.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
campaignId | string | path | כן | מזהה הקמפיין. |
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; ריק ⇒ היומן המחובר הראשון).
/calendar/eventsהרשאה: calendar:readאירועי יומן בטווח תאריכים. ברירת מחדל: החודש הנוכחי.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
provider | string | query | לא | איזה יומן: google/microsoft או connectionId. ריק ⇒ הראשון המחובר. |
startDate | string | query | לא | תחילת טווח (ISO-8601). ברירת מחדל: תחילת החודש. |
endDate | string | query | לא | סוף טווח (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" } ] } }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}}).
/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" } ] } }/leadformsהרשאה: leadforms:readהצגת טפסי ה-Lead של דף מחובר. ?connectionId ריק ⇒ החיבור הראשון.
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
connectionId | string | query | לא | מזהה חיבור 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" } ] } }/bots/facebook-lead-replyהרשאה: bots:writeיצירת בוט שמגיב אוטומטית לליד חדש מטופס פייסבוק. ספקו connectionId ומענה (replyTemplateName או replyText); formIds אופציונלי (ריק ⇒ כל טופס בדף).
| שם | סוג | מיקום | חובה | תיאור |
|---|---|---|---|---|
name | string | body | כן | שם הבוט. |
connectionId | string | body | כן | מזהה חיבור Facebook Lead Ads. |
formIds | string[] | body | לא | מזהי טפסים ספציפיים. ריק ⇒ כל טופס בדף. |
replyTemplateName | string | body | לא | תבנית WhatsApp מאושרת למענה. או replyText. |
replyText | string | body | לא | מענה טקסט חופשי. |
status | string | body | לא | 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" } }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" }
}
}
}MCP מקוון (מתארח) — לכל כלי AI
כלים מבוססי-ענן שלא יכולים להריץ תהליך מקומי (ChatGPT, Claude, Gemini, Base44, Lovable, n8n, Make ועוד) מתחברים לאותו שרת MCP דרך כתובת URL מתארחת (Streamable HTTP) במקום npx — וחושפים את כל 133 הכלים. השלבים זהים בכל מקום; רק היכן שמדביקים את ה-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). כך או כך הארגון מזוהה אוטומטית מהזהות שלכם.
/.well-known/oauth-protected-resource/mcp ו-/.well-known/oauth-authorization-server. בריאות השרת: /health.- בכלי שלכם, פתחו היכן שמוסיפים שרתי/מחברי MCP (בדרך כלל: Settings → Connectors / Integrations / MCP Servers).
- בחרו סוג שרת Remote / URL / HTTP (לא Local/Command).
- הדביקו את ה-Server URL שלמעלה.
- אמתו: אם הכלי מציע OAuth / Sign in — פשוט התחברו (ללא טוקן). אחרת הוסיפו כותרת
Authorization: Bearer gmbt_...או הדביקו את הטוקן בשדה ה-Token/API Key. - שמרו והפעילו. הכלי מגלה אוטומטית את כל 133 הכלים והארגון מזוהה מהזהות שלכם.
לכלים שמשתמשים בקובץ תצורה (JSON)
כלים שתומכים בשרת MCP מרוחק דרך JSON (למשל Cursor, VS Code, Windsurf) — השתמשו בבלוק הזה:
{
"mcpServers": {
"gambot": {
"url": "https://gambot-mcp.azurewebsites.net/mcp",
"headers": { "Authorization": "Bearer gmbt_your_token_here" }
}
}
}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 — ראו את סעיף בוטים ואוטומציות.