<!-- נוצר אוטומטית ממקור התיעוד הקנוני של Teloring. אין לערוך קובץ זה. -->

עמוד קנוני: https://docs.teloring.com/he/docs/product/studio/variables
עודכן לאחרונה: 2026-08-20T20:49:57.000Z

# משתנים

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

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

## התחביר

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

```text
שלום {{contact.name}}, קיבלנו את ההודעה שלך בנושא {{message.content}}.
```

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

## הוספת משתנה

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

![פאנל המשתנים הזמינים](pathname:///img/screenshots/he/product/studio/variables-panel.png)

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

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

## מרחבי השמות

| מרחב שמות | מגיע מ | דוגמה |
| --- | --- | --- |
| `system.*` | תמיד זמין | `{{system.timestamp}}` |
| `var.*` | [שמירה כמשתנה](./actions.md#save-as-variable) — נשמר בין הרצות | `{{var.last_order_id}}` |
| `message.*` | טריגר הודעה נכנסת | `{{message.content}}` |
| `conversation.*` | רוב טריגרי ופעולות השיחה | `{{conversation.id}}` |
| `conversation.custom_attributes.*` | [מאפייני השיחה](../conversation-attributes.md) של החשבון שלכם | `{{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.*`

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

| מאפיין | התנהגות |
| --- | --- |
| נוצר על ידי | פעולת [שמירה כמשתנה](./actions.md#save-as-variable) |
| היקף | לכל תהליך בנפרד — לשני תהליכים יכול להיות `var.counter` משלהם |
| זמינות | נטען ל**כל** הרצה של אותו תהליך, כך שהוא עובד כבר מהבלוק הראשון |
| מרחב שמות | נאלץ לתוך `var.`, כך שערך שמור לעולם אינו יכול לדרוס משתנה של מערכת, איש קשר, שיחה או הודעה |
| מפתחות דינמיים | מותרים — `var.{{contact.phone}}.address` שומר ערך אחד לכל מספר טלפון |
| מנוהל ב | **⚙ הגדרות התהליך ← משתנים שמורים**, שם אפשר לסקור ולמחוק אותם |

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

אילו משתנים יש לכם תלוי במה שהתחיל את התהליך. הרשימה המלאה של כל טריגר נמצאת בעמוד [טריגרים](./triggers.md); זו הגרסה הקצרה.

| טריגר | מה מקבלים |
| --- | --- |
| הודעה נכנסת | `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, או עברו עליו בלולאה בבלוק [קוד](./actions.md#code) |
| `{{customer.old}}` · `{{customer.new}}` · `{{record.old}}` · `{{record.new}}` | תמונות מצב לפני/אחרי | `{{record.new.status}}` |
| `{{conversation.custom_attributes}}` | כל [מאפייני השיחה](../conversation-attributes.md) | `{{conversation.custom_attributes.order_number}}` |

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

## מאפייני שיחה {#conversation-attributes}

[מאפייני שיחה](../conversation-attributes.md) הם השדות של החשבון שלכם על שיחה — *סיבת הפנייה*, *תוצאה*, *מספר הזמנה*. כל אחד מהם הופך למשתנה שנקרא על שם ה**מזהה API** שלו:

```
{{conversation.custom_attributes.reason_for_contact}}
{{conversation.custom_attributes.order_number}}
{{conversation.custom_attributes}}          ← המערך כולו, כאובייקט אחד
```

| עובדה | פירוט |
| --- | --- |
| מאיפה הם מגיעים | הטריגרים **הודעה נכנסת**, **שיחה נכנסת** ו**שינוי בשיחה** טוענים כולם את הערכים הנוכחיים של השיחה, כך שהם זמינים כבר מהבלוק הראשון. |
| אחרי שהם נכתבים | בלוק [שינוי שיחה](./actions.md#setting-conversation-attributes) שמגדיר מאפיינים מעדכן את המשתנים האלה, כך שכל בלוק שאחריו קורא את הערכים ה**חדשים**. |
| כשלא מולאו מעולם | מתפענחים לערך ריק, במקום להשאיר את ה‑`{{placeholder}}` הגולמי בבקשה שלכם. |
| שמות | ה**מזהה API**, לא התווית. שינוי התווית של מאפיין בטוח; שינוי מזהה ה‑API שלו משנה את שם המשתנה. |

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

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

## משתנים בגוף JSON {#variables-in-a-json-body}

בלוק [בקשת HTTP](./actions.md#http-request) מודע לטיפוסים כשהוא ממלא גוף JSON:

```json
{
  "customer": "{{contact.name}}",
  "answers": {{answers.list}},
  "greeting": "Hi {{contact.name}}!"
}
```

| מיקום | תוצאה |
| --- | --- |
| משתנה שממלא ערך שלם, חשוף או במרכאות מלאות | שומר על טיפוס ה‑JSON האמיתי שלו — מערך נשאר מערך, מספר נשאר מספר |
| משתנה בתוך מחרוזת ארוכה יותר | מוחלף כטקסט, עם מרכאות ותווים מיוחדים שעברו בריחה בטוחה |
| משתנה שאין לו ערך | נשאר ללא שינוי |

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

בתוך בלוק [קוד](./actions.md#code) אפשר להחליף משתנה בתוך המקור, או לקרוא אותו מאובייקט ה‑`variables` הקפוא:

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

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

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

## משתנים בתנאי

בכלל של [תנאי If/Else](./conditions.md#condition-ifelse), שדה **ערך / משתנה** מקבל מפתח פשוט **בלי** הסוגריים:

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

## טיפים מעשיים

- **התאימו אישית בזהירות.** ‏`{{contact.name}}` יכול להיות ריק עבור איש קשר חדש לגמרי ב‑WhatsApp. או שתקבלו ברכה מעט חשופה, או שתסתעפו קודם על `contact.name` עם האופרטור **קיים**.
- **העתיקו מזהים למערכות שלכם.** ‏`{{conversation.id}}`,‏ `{{contact.id}}` ו‑`{{system.execution_id}}` הם הערכים שכדאי לדחוף למערכת CRM חיצונית, כדי ששני הצדדים יוכלו להצטלב בהמשך.
- **השתמשו בפאנל, לא בזיכרון.** גרירת משתנה מ**המשתנים הזמינים** מבטיחה שהמפתח כתוב בדיוק כפי שסביבת הריצה מצפה.
- **הדפיסו כדי לבדוק.** אם אתם לא בטוחים מה משתנה מכיל, שתלו [הערה פרטית](./actions.md#private-note) זמנית בהסתעפות שמכילה אותו. ההערה פנימית, כך שהיא לא עולה לכם דבר ומציגה את הערך המפוענח בדיוק כפי שהתהליך ראה אותו.

## הבא

- [פעולות](./actions.md) — הפלטים של כל בלוק.
- [טריגרים](./triggers.md) — המשתנים של כל טריגר.
- [פתרון תקלות](./troubleshooting.md) — מה לעשות כשמשתנה מוצג ריק.
