דילוג לתוכן הראשי

משתנים

משתנה הוא מציין מקום שסטודיו ממלא בזמן שהתהליך רץ. כתבו {{contact.name}} בהודעה והלקוח יראה דנה.

המשתנים הם מה שהופך תהליך לאישי במקום משומר, והם הדרך שבה בלוק אחד מעביר מידע לבלוק הבא.

התחביר

תמיד שני סוגריים מסולסלים סביב מפתח:

שלום {{contact.name}}, קיבלנו את ההודעה שלך בנושא {{message.content}}.
כללפירוט
פורמט{{namespace.key}} — למשל {{conversation.id}}
אותיותהמפתחות באותיות קטנות עם נקודות.
מפתחות לא מוכריםנשארים בדיוק כפי שהם, כך שטעות הקלדה מופיעה בפלט במקום להיעלם בשקט.
היכן הם עובדיםבכל שדה טקסט, אזור טקסט, כתובת, ערך כותרת, גוף JSON, שדה אימייל או אופרנד של תנאי.

הוספת משתנה

בחרו בלוק ופתחו את המשתנים הזמינים בפאנל הצדדי. הוא מציג את כל מה שהבלוקים שלפני הבלוק הזה מפיקים, מקובץ לפי מרחב שמות.

פאנל המשתנים הזמינים

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

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

מרחבי השמות

מרחב שמותמגיע מדוגמה
system.*תמיד זמין{{system.timestamp}}
var.*שמירה כמשתנה — נשמר בין הרצות{{var.last_order_id}}
message.*טריגר הודעה נכנסת{{message.content}}
conversation.*רוב טריגרי ופעולות השיחה{{conversation.id}}
conversation.custom_attributes.*מאפייני השיחה של החשבון שלכם{{conversation.custom_attributes.outcome}}
contact.*טריגרי שיחה והודעה{{contact.name}}
channel.*טריגרי שיחה והודעה{{channel.name}}
customer.*טריגרי לקוח{{customer.name}}
record.* · objects.*טריגר רשומת לקוח ופעולת רשומת לקוח{{record.id}}
agent.*טריגר סטטוס נציג{{agent.name}}
call.* · voice.*טריגר ופעולות קול{{call.caller_id}}
form.* · answers.* · hiddenValues.* · sourceParams.*טריגר מילוי טופס{{answers.email}}
webhook.*טריגר Webhook נכנס{{webhook.body.order_id}}
schedule.*טריגרי לוח זמנים{{schedule.triggered_at}}
alert.*טריגר התראת אנליטיקס{{alert.current_value}}
change.* · ai.*טריגר שינוי בשיחה{{change.type}} · {{ai.signal}}
reply.* · client_reply.*פעולת מענה בהודעה{{client_reply.content}}
http.*פעולת בקשת HTTP{{http.json.status}}
email.*פעולת שליחת אימייל{{email.status}}
code.*פעולת קוד{{code.result}}
datetime.*פעולת תאריך ושעה{{datetime.result}}
condition.* · availability.* · business_hours.*בלוקי תנאי{{availability.status}}
session.* · saved_variable.* · private_note.* · wait.*הפעולות המתאימות{{session.resolved}}

משתני מערכת

תמיד נוכחים, בכל תהליך, כבר מהבלוק הראשון.

משתנהמכיל
{{system.timestamp}}הזמן הנוכחי, בפורמט ISO
{{system.account_id}}מזהה החשבון שלכם
{{system.flow_id}}התהליך שרץ
{{system.execution_id}}ההרצה הספציפית הזו

כדאי לכלול את {{system.execution_id}} בבקשות HTTP ובכותרות אימייל — זו הדרך המהירה ביותר לקשור רשומה חיצונית בחזרה להרצה מסוימת של סטודיו.

משתנים שמורים — var.*

משתנים רגילים חיים בדיוק הרצה אחת. משתנה שמור חי לנצח.

מאפייןהתנהגות
נוצר על ידיפעולת שמירה כמשתנה
היקףלכל תהליך בנפרד — לשני תהליכים יכול להיות var.counter משלהם
זמינותנטען לכל הרצה של אותו תהליך, כך שהוא עובד כבר מהבלוק הראשון
מרחב שמותנאלץ לתוך var., כך שערך שמור לעולם אינו יכול לדרוס משתנה של מערכת, איש קשר, שיחה או הודעה
מפתחות דינמייםמותרים — var.{{contact.phone}}.address שומר ערך אחד לכל מספר טלפון
מנוהל ב⚙ הגדרות התהליך ← משתנים שמורים, שם אפשר לסקור ולמחוק אותם

מדריך לפי טריגר

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

טריגרמה מקבלים
הודעה נכנסתmessage.*,‏ conversation.*,‏ contact.*,‏ channel.*
שיחה נכנסתcall.*,‏ conversation.*,‏ contact.*,‏ channel.*
מילוי טופסform.*,‏ submission.id,‏ answers.*,‏ hiddenValues.*,‏ sourceParams.*,‏ contact.id,‏ conversation.id
שינוי בשיחהconversation.* (כולל previous_*),‏ change.*,‏ ai.*,‏ contact.*,‏ channel.*
טריגר לקוחcustomer.* (כולל customer.old / customer.new),‏ event.*
טריגר רשומת לקוחrecord.*,‏ objects.*,‏ customer.*,‏ event.*
שינוי סטטוס נציגagent.*
לוח זמנים חוזר / זמן מתוזמןschedule.*
Webhook נכנסwebhook.*, ובנוסף משתנה אחד לכל שדה שנלמד
התראת אנליטיקסalert.*

משתנים של אובייקטים ומערכים

חלק מהמשתנים מכילים אובייקט או רשימה שלמים, ולא ערך בודד:

משתנהמבנהלהגיע לתוכו באמצעות
{{http.json}}אובייקט התגובה{{http.json.order_id}}
{{webhook.body}}גוף הבקשה{{webhook.body.customer.email}}
{{webhook.query}} · {{webhook.headers}}אובייקטים{{webhook.query.token}}
{{answers}}תשובות לפי מזהה שדה{{answers.email}}
{{hiddenValues}}ערכים מוסתרים לפי מזהה שדה{{hiddenValues.campaign_id}}
{{sourceParams}}פרמטרים בכתובת{{sourceParams.utm_source}}
{{answers.list}}מערך של תשובותהעבירו אותו בשלמותו לבקשת HTTP, או עברו עליו בלולאה בבלוק קוד
{{customer.old}} · {{customer.new}} · {{record.old}} · {{record.new}}תמונות מצב לפני/אחרי{{record.new.status}}
{{conversation.custom_attributes}}כל מאפייני השיחה{{conversation.custom_attributes.order_number}}

המפתחות המדויקים בתוך האובייקטים האלה מגיעים מהנתונים שלכם. ‏{{answers.email}} עובד רק אם לשדה בטופס יש מזהה השדה email; ‏{{webhook.body.order_id}} עובד רק אם המטען באמת מכיל order_id. עבור Webhooks, השתמשו בלמידת הבקשה הבאה וסטודיו יציג לכם את המפתחות האמיתיים.

מאפייני שיחה

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

{{conversation.custom_attributes.reason_for_contact}}
{{conversation.custom_attributes.order_number}}
{{conversation.custom_attributes}} ← המערך כולו, כאובייקט אחד
עובדהפירוט
מאיפה הם מגיעיםהטריגרים הודעה נכנסת, שיחה נכנסת ושינוי בשיחה טוענים כולם את הערכים הנוכחיים של השיחה, כך שהם זמינים כבר מהבלוק הראשון.
אחרי שהם נכתביםבלוק שינוי שיחה שמגדיר מאפיינים מעדכן את המשתנים האלה, כך שכל בלוק שאחריו קורא את הערכים החדשים.
כשלא מולאו מעולםמתפענחים לערך ריק, במקום להשאיר את ה‑{{placeholder}} הגולמי בבקשה שלכם.
שמותהמזהה API, לא התווית. שינוי התווית של מאפיין בטוח; שינוי מזהה ה‑API שלו משנה את שם המשתנה.

שלחו את כל המערך למערכת חיצונית בשדה אחד על ידי הצבת {{conversation.custom_attributes}} בגוף JSON, או בחרו אחד לצורך חיפוש:

{
"conversation_id": "{{conversation.id}}",
"order": "{{conversation.custom_attributes.order_number}}",
"disposition": {{conversation.custom_attributes}}
}

משתנים בגוף JSON

בלוק בקשת HTTP מודע לטיפוסים כשהוא ממלא גוף JSON:

{
"customer": "{{contact.name}}",
"answers": {{answers.list}},
"greeting": "Hi {{contact.name}}!"
}
מיקוםתוצאה
משתנה שממלא ערך שלם, חשוף או במרכאות מלאותשומר על טיפוס ה‑JSON האמיתי שלו — מערך נשאר מערך, מספר נשאר מספר
משתנה בתוך מחרוזת ארוכה יותרמוחלף כטקסט, עם מרכאות ותווים מיוחדים שעברו בריחה בטוחה
משתנה שאין לו ערךנשאר ללא שינוי

משתנים בבלוק קוד

בתוך בלוק קוד אפשר להחליף משתנה בתוך המקור, או לקרוא אותו מאובייקט ה‑variables הקפוא:

// מוחלף לפני הרצת הקוד
const name = "{{contact.name}}";

// נקרא לפי מפתח — עדיף לערכים שעשויים להכיל מרכאות
const phone = variables["contact.phone"];

return name + " / " + phone.replace(/^\+/, '');

משתנים בתנאי

בכלל של תנאי If/Else, שדה ערך / משתנה מקבל מפתח פשוט בלי הסוגריים:

שדהכתבו
ערך / משתנהmessage.content
השוואה מול (כמשתנה)var.expected_answer
השוואה מול (כטקסט)sales

טיפים מעשיים

  • התאימו אישית בזהירות.{{contact.name}} יכול להיות ריק עבור איש קשר חדש לגמרי ב‑WhatsApp. או שתקבלו ברכה מעט חשופה, או שתסתעפו קודם על contact.name עם האופרטור קיים.
  • העתיקו מזהים למערכות שלכם.{{conversation.id}},‏ {{contact.id}} ו‑{{system.execution_id}} הם הערכים שכדאי לדחוף למערכת CRM חיצונית, כדי ששני הצדדים יוכלו להצטלב בהמשך.
  • השתמשו בפאנל, לא בזיכרון. גרירת משתנה מהמשתנים הזמינים מבטיחה שהמפתח כתוב בדיוק כפי שסביבת הריצה מצפה.
  • הדפיסו כדי לבדוק. אם אתם לא בטוחים מה משתנה מכיל, שתלו הערה פרטית זמנית בהסתעפות שמכילה אותו. ההערה פנימית, כך שהיא לא עולה לכם דבר ומציגה את הערך המפוענח בדיוק כפי שהתהליך ראה אותו.

הבא