דלגו לתוכן

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

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

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

עודכן 26.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

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

קבצים

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

תיאור הכלי מונה את סוגי הקבצים: תמונה, וידאו, אודיו ומסמך (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; מקטע בלי titleinteractiveLIST.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

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