דלגו לתוכן

או התחילו מנקודה בטוחה: אינדקס הכלים המלא · מפת הטבלאות המרכזיות

מערכת חדשה — 14 יום חינם

כלי הודעות — WhatsApp ואימייל

עודכן 31.08.2026

כלי אחד, שני מצבי הפעלה: גילוי (מחזיר מידע, לא שולח) ושליחה.

הפרמטר טיפוס מה חוזר
getNumbers Boolean מספרי השליחה הזמינים — ומהם ערך ה‑fromPhoneNumberId
getTemplates Boolean התבניות המאושרות, כולל מערך ה‑components המלא של כל אחת
JSON
{ "getNumbers": true }
{ "getTemplates": true }

שתי הקריאות בטוחות ואינן שולחות דבר. הן תמיד הצעד הראשון.

שליחה — קבוצות הפרמטרים

Section titled “שליחה — קבוצות הפרמטרים”

הצירוף המינימלי, כפי שהשרת מנסח אותו כשחסר משהו: Every request must include phoneNumber and fromPhoneNumberId. Additionally, you must specify the content using either message, fileBase64, or a template. — שני פרמטרי הכתובת תמיד, ועוד בדיוק אחד מסוגי התוכן. fileDBName לבדו אינו נחשב תוכן.

כתובות

הפרמטר טיפוס המשמעות
phoneNumber String הנמען, בפורמט בינלאומי בלי + — למשל 972500000000
fromPhoneNumberId String מזהה מספר השולח. Channels.Identity
wabaId String חשבון WhatsApp Business, כשיש יותר מאחד

תוכן

הפרמטר טיפוס המשמעות
message String גוף ההודעה. תומך בסימון של WhatsApp: *מודגש*, _נטוי_, ~מחוק~, `קוד`, ואמוג’ים

שרשור ותיעוד

הפרמטר טיפוס המשמעות
conversationId String צירוף ההודעה לשיחה קיימת
contextId String מזהה ההודעה שאליה משיבים — מייצר תשובה משורשרת
savedInTable + savedInObjectId String היכן לתעד את ההודעה כשלא משתמשים ב‑conversationId

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

קבצים

הפרמטר טיפוס המשמעות
fileBase64 String תוכן הקובץ. לפי הסכימה חייב לכלול קידומת Data‑URI (data:application/pdf;base64,…). ה‑WAF אינו חוסם את הקידומת מול MCP (ב‑REST כן — במכוון) — ראו למעלה
fileName String שם הקובץ הנשלח. חובה יחד עם fileBase64 — בלעדיו: Error: fileName is required if fileBase64 is provided.
fileDBName String שליחת קובץ שכבר שמור ב‑CRM, לפי שמו (יחד עם message או template). המסלול המוכר מקצה לקצה

תיאור הכלי מונה תמונה, וידאו, אודיו ומסמך (PDF). רשימת הפורמטים המדויקת היא של WhatsApp Cloud API (Meta), לא של המוצר.

תבניות

הפרמטר טיפוס המשמעות
template Object { name ✔, language, components ✔ } — ה‑components מועתקים כמות שהם מ‑getTemplates
WATemplateParams Object הערכים שממלאים את ה‑{{1}}, {{2}} של התבנית

אלמנטים אינטראקטיביים

הפרמטר המבנה המגבלה
interactiveButtons [{ title ✔, id }] עד 3 כפתורי תשובה מהירה
interactiveCTA { title ✔, url, HEADER_TEXT, FOOTER_TEXT } כפתור קריאה‑לפעולה אחד
interactiveLIST { BUTTON_TEXT ✔, SECTIONS ✔, HEADER_TEXT, FOOTER_TEXT } 1–10 מקטעים { title ✔, rows ✔ }, בכל מקטע 1–10 שורות { id ✔, title ✔, description }

המגבלות נאכפות בוולידציית הסכימה, לפני השרת: כפתור רביעי ⇒ interactiveButtons: Too big: expected array to have <=3 items; מקטע בלי title ⇒ interactiveLIST.SECTIONS.0.title: Invalid input; 11 שורות ⇒ rows: Too big: expected array to have <=10 items; interactiveCTA בלי title, או template בלי components — אותו סוג שגיאה. כולן מתחילות ב‑Input validation error.

JSON
// הודעת טקסט מינימלית
{ "fromPhoneNumberId": "100000000000000",
"phoneNumber": "972500000000",
"message": "*שלום רב!*\nההצעה שביקשת מוכנה 🚀" }
JSON
// תשובה עם PDF, בתוך שיחה קיימת
{ "conversationId": "L7y9ieFPBh",
"fromPhoneNumberId": "100000000000000",
"phoneNumber": "972500000000",
"contextId": "RoUWBMnQoM",
"message": "מצורף המסמך המבוקש",
"fileBase64": "data:application/pdf;base64,JVBERi0xLjcKJc…",
"fileName": "quote-1042.pdf" }
JSON
// הודעה עם כפתורים
{ "fromPhoneNumberId": "100000000000000",
"phoneNumber": "972500000000",
"message": "לאשר את מועד הפגישה?",
"interactiveButtons": [
{ "title": "מאשר", "id": "confirm" },
{ "title": "לשנות", "id": "reschedule" }
] }

חלון 24 השעות — מגבלת פלטפורמה, לא של המוצר

Section titled “חלון 24 השעות — מגבלת פלטפורמה, לא של המוצר”

בונה את שלד ה‑WATemplateParams מתוך רכיבי תבנית.

הפרמטר טיפוס חובה המשמעות
templateComponents Array<Object> ✔ מערך ה‑components שהועתק מפלט getTemplates
JSON
// רכיב קלט — כפי שהוא חוזר מ-getTemplates, כולל בלוק example:
{ "type": "BODY", "text": "שלום {{1}}, בהמשך לפנייתך מספר {{2}}…",
"example": { "body_text": [["דנה", "1042"]] } }
// מה שחוזר:
{ "BODY": ["דנה", "1042"] }

הערכים שחוזרים הם הדוגמאות של Meta מתוך example. לתבנית שמיועדת לטריגר או לקמפיין, החליפו אותם ב‑placeholders של ה‑CRM:

JSON
{ "BODY": ["{{{AccountId.Name}}}", "{{{Name}}}"] }

תבנית מלאה מחזירה מפתח לכל רכיב: HEADER — מתוך example.header_text (כותרת טקסט) או example.header_handle (כותרת תמונה — ה‑URL של התמונה), BODY — מתוך example.body_text, ו‑button-URL — מתוך ה‑example של כפתור URL דינמי. רכיבי FOOTER וכפתורי QUICK_REPLY לא מייצרים מפתח.

זרימת התבניות המאושרות

Section titled “זרימת התבניות המאושרות”
1. Send-WhatsApp-Message { getTemplates: true }
↓ בחירת התבנית, העתקת components כמות שהם
2. Get-WhatsApp-Template-Params { templateComponents: [...] }
↓ קבלת שלד WATemplateParams
3. החלפת ערכי הדוגמה בערכים אמיתיים או ב-{{{placeholders}}}
↓
4. Send-WhatsApp-Message { fromPhoneNumberId, phoneNumber, template, WATemplateParams }

בלי פרמטרים. מחזיר את חשבונות השליחה של האימייל:

JSON
[ { "objectId": "smtp12345x",
"SenderEmail": "info@company.co.il",
"SenderName": "שירות לקוחות",
"UserId": { "__type": "Pointer", "className": "_User", "objectId": "2b0QVKoigE" } } ]

ה‑objectId הוא הערך של emailAccount בפעולת אימייל בטריגר. SenderName ו‑SenderEmail הם מה שהנמען רואה.

JSON
{ "actionType": "email",
"actionData": { "email": {
"emailAccount": "smtp12345x",
"template": "tmpl098765",
"emailType": "field", "emailTarget": "Email",
"emailSubject": "עדכון בנוגע ל-{{{Name}}}",
"saveToEmailsTable": true } } }

אין יומן הודעות אחד. כל ערוץ כותב למקום אחר:

הערוץ היכן מחפשים
WhatsApp דרך הערוץ Conversations + ConversationMessages (שדות Message, Direction, failed, failedAt, errors) — טבלאות השיחות של MyChat. טבלת _syslogWA אינה קיימת במערכת חדשה
WhatsApp — דיוור (MyCampaigns) _syslogCampaignWA
SMS טבלת SMS (From, To, Content, Status, TemplateId) · ברמת הספק: _syslogSMS
אימייל שנשלח מטריגר עם saveToEmailsTable טבלת Emails (MailFrom, MailTo, Subject, SendAt, SendStatus, ErrorMessage)
שינוי ברשומה שההודעה נקשרה אליה _Timeline

הפירוט המלא: יומנים וראיות.