> ## Documentation Index
> Fetch the complete documentation index at: https://docs.senderz.app/llms.txt
> Use this file to discover all available pages before exploring further.

# שלב Webhook באוטומציה

> פנייה למערכת חיצונית מתוך אוטומציה: בקשת POST עם כותרות וגוף JSON משלכם, בדיקה לפני הפעלה ומעקב אחרי מה שחזר.

שלב **Webhook** מאפשר לאוטומציה לפנות למערכת אחרת. כשאיש קשר מגיע לשלב באוטומציה פעילה, Senderz שולח בקשת `POST` אחת לכתובת שהגדרתם בשלב. אחר כך איש הקשר ממשיך לשלב הבא, לא משנה מה הייתה התשובה.

עברתם מ-Klaviyo? השלב עובד כמו פעולת ה-webhook שם: כתובת יעד, כותרות וגוף JSON. תחביר תגיות המיזוג שונה, אז כדאי לקרוא את הסעיף על תגיות מיזוג לפני שמעתיקים גוף קיים.

<Info>
  כל איש קשר מקבל קריאה אחת. אין ניסיון חוזר אם הקריאה נכשלת, ואם השרת לא עונה
  תוך 10 שניות הבקשה נקטעת. האוטומציה ממשיכה בכל מקרה.
</Info>

<Note>
  רוצים לשלוח אירועים מ-Senderz למערכת שלכם עם חתימה וניסיונות חוזרים? בשביל זה
  יש [webhooks יוצאים](/en/integrations/webhooks-outbound).
</Note>

## הגדרת השלב

<Steps>
  <Step title="הוסיפו את השלב">
    גררו את **Webhook** מרשימת הבלוקים אל הקנבס, או הוסיפו אותו מכפתור ה-**+**
    שעל החיבור בין שני שלבים.
  </Step>

  <Step title="הזינו POST URL">
    הדביקו את הכתובת שאליה רוצים לשלוח. היא חייבת להתחיל ב-`https://`.
  </Step>

  <Step title="הוסיפו כותרות בקשה">
    שורה לכל כותרת, למשל `x-api-key` עם מפתח ה-API שקיבלתם מהספק.
  </Step>

  <Step title="כתבו גוף JSON או השאירו ריק">
    אם **גוף JSON** נשאר ריק, נשלח המבנה הרגיל של Senderz. אפשר גם לכתוב גוף
    משלכם.
  </Step>

  <Step title="בדקו">
    לחצו על **בדיקה** בעורך האוטומציה והריצו את האוטומציה עבור איש קשר אחד.
  </Step>
</Steps>

## POST URL

הכתובת צריכה להיות כתובת `https://` ציבורית בפורט ברירת המחדל, כלומר בלי מספר פורט.

* כתובות פרטיות, מקומיות ופנימיות נחסמות. הבדיקה רצה כששומרים את השלב, ושוב רגע לפני כל שליחה.
* Senderz לא עוקב אחרי הפניות (redirect). אם השרת עונה בקוד 3xx, הקריאה נרשמת כ"הופנתה". הזינו את הכתובת הסופית, לא כתובת שמפנה אליה.

## כותרות בקשה

כל כותרת היא שורה של מפתח וערך. למשל, `x-api-key` מעביר מפתח API.

* `Content-Type: application/json` נשלח כברירת מחדל. אפשר להוסיף שורת `Content-Type` משלכם כדי להחליף אותו.
* אי אפשר להשתמש בכותרות חיבור כמו `Host`, `Content-Length`, `Connection` ו-`Transfer-Encoding`.
* ערך צריך להיות בשורה אחת, בלי אותיות בעברית ובלי אימוג'י.
* השלב מראה כמה כותרות אפשר להוסיף ומה האורך המקסימלי של כל ערך.
* תגיות מיזוג עובדות גם בערכי הכותרות.

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

## גוף JSON

אם הגוף ריק, Senderz שולח את המבנה הזה:

```json theme={"system"}
{
  "event": "flow.webhook",
  "flowId": "…",
  "enrollmentId": "…",
  "contact": { "id": "…", "email": "…", "phone": "…", "firstName": "…", "lastName": "…" },
  "timestamp": "2026-09-15T10:27:01.000Z"
}
```

גוף שאתם כותבים צריך לעמוד בכללים האלה:

* JSON תקין.
* כל תגית מיזוג בתוך מרכאות כפולות, למשל `"{{ email }}"`.
* עד 20,000 תווים כפי שהוא כתוב, ופחות מכ-100 KB אחרי שהתגיות מתמלאות.

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

אם בזמן הריצה הגוף לא יוצא JSON תקין, שום דבר לא נשלח והקריאה נרשמת כ"גוף לא תקין".

## תגיות מיזוג

אפשר להשתמש בתגיות בגוף ובערכי הכותרות.

| תגית | מה היא מכילה |
| - | - |
| `{{ email }}` | כתובת האימייל של איש הקשר |
| `{{ phone }}` | מספר הטלפון בפורמט בינלאומי עם פלוס, למשל `+972501234567` |
| `{{ firstName }}` | השם הפרטי של איש הקשר |
| `{{ lastName }}` | שם המשפחה של איש הקשר |
| `{{ custom.<key> }}` | שדה מותאם אישית של איש הקשר, כש-`<key>` הוא המפתח של השדה |
| `{{ orderId }}`, `{{ amount }}`, `{{ currency }}` | ערכים מהאירוע שהפעיל את האוטומציה. שלושת אלה הם דוגמה מטריגרים של הזמנות |

אפשר להוסיף ערך חלופי אחרי קו אנכי. `{{ firstName|friend }}` ישתמש ב-`friend` כשאין לאיש הקשר שם פרטי.

<Warning>
  תגיות של Klaviyo, כמו `{{ person.phone_number|default:'' }}`, לא עובדות
  ב-Senderz. החליפו אותן בתגיות של Senderz, למשל `{{ phone }}`.
</Warning>

## דוגמה: שליחת תבנית WhatsApp דרך ספק הודעות

ההגדרה הזו שולחת תבנית WhatsApp דרך ה-API של ספק הודעות. הכתובת, מזהה התבנית ושמות השדות הם דוגמה בלבד. את הערכים האמיתיים תקבלו מהספק שלכם.

**POST URL**

```text theme={"system"}
https://api.example-provider.com/sendWhatsAppMessage
```

**כותרות בקשה**

| מפתח | ערך |
| - | - |
| `x-api-key` | מפתח ה-API שקיבלתם מהספק |

**גוף JSON**

```json theme={"system"}
{
  "templateId": "1234567890",
  "receiverPhoneNumber": "{{ phone }}",
  "templateParams": ["{{ firstName|friend }}"]
}
```

בדקו מול הספק באיזה פורמט הוא מצפה למספר הטלפון ואילו פרמטרים התבנית צריכה. Senderz שולח מספרי טלפון עם פלוס, למשל `+972501234567`.

## בדיקה לפני הפעלה

לחצו על **בדיקה** בעורך האוטומציה, בחרו איש קשר והריצו. האוטומציה רצה פעם אחת עבור איש הקשר הזה.

* שלבי Webhook נקראים באמת, עם הפרטים של איש הקשר שבחרתם. אם השלב שולח הודעה דרך הספק, איש הקשר יקבל אותה, אז כדאי לבדוק קודם על איש קשר שלכם.
* בבדיקה אין המתנות. שלבי המתנה מדולגים.
* חלון הבדיקה מראה מה כל שלב Webhook קיבל בחזרה: קוד ה-HTTP, כמה זמן לקחה הקריאה ואת תחילת התשובה.

## מעקב אחרי קריאות

בחרו את שלב ה-Webhook בעורך כדי לראות את **קריאות אחרונות** מ-30 הימים האחרונים. מופיע שם כמה קריאות התקבלו, ולכל קריאה אחרונה:

* התוצאה
* קוד ה-HTTP
* כמה זמן לקחה הקריאה
* האם זו הייתה קריאה אמיתית או בדיקה
* תחילת התשובה

חלקים בתשובה שנראים כמו כתובות אימייל או מספרי טלפון מוסתרים.

| תוצאה | מה זה אומר |
| - | - |
| התקבלה | השרת ענה בקוד 2xx |
| נדחתה | השרת ענה בקוד 4xx או 5xx |
| הופנתה | השרת ענה בקוד 3xx. Senderz לא עוקב אחרי הפניות |
| אין תגובה | עבר זמן ההמתנה, או שהייתה תקלת רשת |
| הכתובת נחסמה | הכתובת לא עברה את בדיקת האבטחה |
| גוף לא תקין | הגוף לא יצא JSON תקין, ולכן שום דבר לא נשלח |

## פתרון בעיות

<AccordionGroup>
  <Accordion title="נדחתה עם קוד 400, 401 או 403" icon="circle-question">
    בדרך כלל מפתח ה-API שגוי או חסר, או שהספק לא מקבל את הגוף ששלחתם. קראו את
    תחילת התשובה תחת **קריאות אחרונות** או בחלון הבדיקה.
  </Accordion>

  <Accordion title="אין תגובה" icon="circle-question">
    השרת לא ענה תוך 10 שניות.
  </Accordion>

  <Accordion title="גוף לא תקין" icon="circle-question">
    תגית מיזוג נמצאת מחוץ למרכאות, או שה-JSON שבור. שימו כל תגית בתוך מרכאות
    כפולות ובדקו סוגריים ופסיקים.
  </Accordion>

  <Accordion title="אף אחד לא נכנס לאוטומציה" icon="circle-question">
    בדקו את הטריגר ואת הגדרות הכניסה. אם האוטומציה מוגדרת לכניסה פעם אחת בלבד,
    איש קשר שכבר עבר בה לא ייכנס שוב. וגם הוספה של מישהו לרשימה שהוא כבר נמצא
    בה לא נחשבת הצטרפות לרשימה. פרטים נוספים ב-[Flow triggers](/en/messaging/flows/triggers).
  </Accordion>
</AccordionGroup>

## שמירה על מפתחות API

התייחסו למפתחות API כמו לסיסמאות. אל תדביקו אותם בצ'אטים ואל תצלמו אותם במסך. אם מפתח נחשף, בקשו מהספק מפתח חדש.

## עוד בנושא

<CardGroup cols={2}>
  <Card title="שלבים ופעולות באוטומציה" icon="layer-group" href="/en/messaging/flows/steps">
    כל הבלוקים שאפשר להוסיף לאוטומציה.
  </Card>

  <Card title="טריגרים של אוטומציה" icon="bolt" href="/en/messaging/flows/triggers">
    מה מפעיל אוטומציה, סינון טריגרים וכללי כניסה חוזרת.
  </Card>

  <Card title="Webhooks יוצאים" icon="arrow-right-from-bracket" href="/en/integrations/webhooks-outbound">
    שליחת אירועים מ-Senderz למערכות שלכם, עם חתימה.
  </Card>

  <Card title="Make.com" icon="puzzle-piece" href="/he/integrations/make">
    טריגרים ופעולות בתרחישי Make דרך ה-API הציבורי.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.