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

# הגדרת WhatsApp

> חברו את מספר ה-WhatsApp Business API ל-Tedro והגדירו מסרים ו-webhooks.

# הגדרת WhatsApp

המדריך הזה מכסה את כל מה שצריך כדי לחבר את מספר ה-WhatsApp Business API שלכם ל-Tedro, להגדיר webhooks ולהבין את מדיניות המסרים של WhatsApp.

## דרישות מוקדמות

לפני שמחברים את WhatsApp, ודאו שיש לכם:

* **Meta Business Account** ([business.facebook.com](https://business.facebook.com))
* **גישה ל-WhatsApp Business API** מופעלת בחשבון ה-Meta Business שלכם
* **מספר טלפון מאומת** שרשום ב-WhatsApp Business API, ולא מספר WhatsApp אישי
* Workspace של Tedro עם תפקיד **Admin**

<Note>
  אם עדיין אין לכם גישה ל-WhatsApp Business API, אפשר להגיש בקשה דרך [Meta Business Suite](https://business.facebook.com). בדרך כלל האישור מתקבל תוך 1-2 ימי עסקים.
</Note>

## חיבור המספר

<Steps>
  ### פתיחת הגדרות הערוץ

  עברו אל **Settings > Channels** בתוך ה-workspace שלכם ב-Tedro.

  ### התחלת החיבור

  לחצו על **Connect Channel** ובחרו ב-**WhatsApp** מתוך רשימת הערוצים.

  ### אישור דרך Meta

  זרימת Meta Embedded Signup תיפתח בחלון קופץ. המשיכו לפי השלבים:

  1. התחברו לחשבון ה-Meta Business שלכם, אם עדיין לא התחברתם
  2. בחרו את **WhatsApp Business Account** שתרצו לחבר
  3. בחרו את **מספר הטלפון** שייקשר למערכת
  4. אשרו את ההרשאות הדרושות כדי ש-Tedro תוכל לשלוח ולקבל הודעות בשמכם

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

  אחרי שהאישור הושלם, הערוץ יופיע ברשימת הערוצים עם סטטוס **Connected**. אפשר לאמת זאת על ידי לחיצה על **Send Test Message** בדף פרטי הערוץ.
</Steps>

## הגדרת Webhook

Tedro רושמת אוטומטית את כתובת ה-webhook מול Meta כאשר אתם מחברים את המספר. נקודת הקצה היא:

```
https://api.tedro.io/webhooks/whatsapp
```

הפלטפורמה מטפלת ב:

* **Webhook verification** (מנגנון GET challenge/response של Meta)
* **עיבוד הודעות נכנסות** (אירועי POST שמגיעים מ-Meta)
* **אימות חתימת webhook** (ולידציית HMAC-SHA256 לכל בקשה נכנסת)
* **הגנה מפני replay** (אימות timestamp בחלון של 5 דקות)
* **עיבוד אידמפוטנטי** (dedupe keys מונעים טיפול כפול באותה הודעה)

<Warning>
  אל תשנו ידנית את כתובת ה-webhook ב-Meta App Dashboard אלא אם קיבלתם הנחיה מפורשת מתמיכת Tedro. קונפיגורציה שגויה תמנע מהודעות להגיע.
</Warning>

## בדיקת החיבור

לאחר החיבור:

1. עברו אל **Settings > Channels** ולחצו על ערוץ ה-WhatsApp שלכם
2. לחצו על **Send Test Message**
3. הזינו מספר טלפון שאליו תישלח הודעת הבדיקה
4. ודאו שההודעה אכן מגיעה ליעד

אם הבדיקה נכשלת, בדקו:

* שמספר ה-WhatsApp Business API שלכם מאומת כראוי ב-Meta Business Suite
* של-access token יש את ההרשאות הנדרשות
* שחשבון ה-Meta Business שלכם אינו מוגבל או תחת בדיקה

## מדיניות המסרים של WhatsApp

WhatsApp אוכפת מדיניות מסרים מחמירה, ו-Tedro מכבדת אותה אוטומטית בזמן הריצה. חשוב להבין את הכללים האלה כדי לבנות workflows תקינים.

### חלון שירות לקוחות של 24 שעות

<Warning>
  WhatsApp מאפשרת לשלוח **הודעות חופשיות** רק בתוך **24 שעות** מההודעה הנכנסת האחרונה של הלקוח. זהו "customer service window".
</Warning>

* **בתוך החלון** (עד 24 שעות מהודעת הלקוח האחרונה): ניתן לשלוח כל הודעת טקסט באמצעות הצומת `wa.send_message`.
* **מחוץ לחלון** (יותר מ-24 שעות מאז הודעת הלקוח האחרונה): חובה להשתמש ב-**message template** מאושרת מראש דרך הצומת `wa.send_template`.

Tedro אוכפת זאת אוטומטית. אם צומת `wa.send_message` מנסה לשלוח מחוץ לחלון, זמן הריצה יחסום את הפעולה וירשום שגיאה ב-run steps.

### טיפול בהסרה מרשימה

כאשר לקוח שולח **STOP**, **unsubscribe** או מילות מפתח דומות:

* Tedro מגדירה אוטומטית `contacts.opted_out = true` ברשומת ה-contact
* **כל המסרים לאותו contact נעצרים** -- לא נשלחות הודעות נוספות, בלי קשר ללוגיקת ה-workflow
* ה-contact חייב לשלוח הודעה חדשה כדי לחדש את הקשר, פעולה שמנקה את דגל ה-opt-out

<Note>
  טיפול ב-opt-out הוא דרישה של מדיניות WhatsApp. אל תנסו לעקוף או לבטל את ההתנהגות הזו בתהליכי העבודה שלכם.
</Note>

### תבניות הודעה

תבניות WhatsApp הן פורמטים מאושרים מראש שנדרשים לשליחה יזומה מחוץ לחלון ה-24 שעות.

**איך תבניות עובדות:**

1. יוצרים תבניות בתוך [Meta Business Suite](https://business.facebook.com) תחת חשבון ה-WhatsApp Business שלכם
2. שולחים אותן ל-**Meta review** (האישור מתקבל בדרך כלל תוך דקות עד כמה שעות)
3. לאחר האישור, משתמשים בשם התבנית בקונפיגורציית `wa.send_template`
4. תבניות תומכות ב-**parameters** -- ערכים דינמיים כמו שם לקוח, מספר הזמנה וכדומה

**קטגוריות נפוצות של תבניות:**

* **Utility**: עדכוני הזמנה, תזכורות לפגישות, הודעות משלוח
* **Marketing**: מבצעים, השקות מוצר והודעות שיווקיות, תחת בדיקה מחמירה יותר
* **Authentication**: סיסמאות חד-פעמיות וקודי אימות

<Note>
  Meta מטפלת באישור התבניות באופן מלא. ל-Tedro אין שליטה על תהליך האישור. להכוונה מפורטת, עיינו ב-[מסמכי התבניות של Meta](https://developers.facebook.com/docs/whatsapp/message-templates).
</Note>

### דרישת Handoff

לכל workflow שפורסם ב-Tedro חייב להיות לפחות צומת `wa.handoff` אחד שניתן להגיע אליו. כך מובטח ש:

* לקוחות תמיד יכולים להגיע לנציג אנושי
* נושאים מורכבים שה-AI לא מצליח לפתור מטופלים על ידי אדם
* העסק שלכם נשאר תואם להנחיות השירות של WhatsApp

הפלטפורמה בודקת זאת בזמן **publish** וחוסמת פרסום כאשר אין מסלול handoff זמין.

## דף פרטי הערוץ

לכל ערוץ WhatsApp מחובר יש דף פרטים ייעודי שנגיש דרך **Settings > Channels > \[Channel Name]** ומציג:

* **סטטוס חיבור** ומדדי בריאות
* חותמת זמן של **ה-webhook האחרון שהתקבל**
* **כמות הודעות** ב-24 השעות האחרונות
* **workflow משויך** אם קיים
* אפשרויות לניהול וקונפיגורציה של הערוץ

## פתרון תקלות

| בעיה                              | פתרון                                                                                               |
| --------------------------------- | --------------------------------------------------------------------------------------------------- |
| הודעות לא מגיעות                  | בדקו את סטטוס ה-webhook בדף פרטי הערוץ. ודאו שב-Meta App Dashboard מופיעה מסירה מוצלחת של webhooks. |
| שגיאות "Outside messaging window" | הלקוח לא שלח הודעה ב-24 השעות האחרונות. השתמשו ב-`wa.send_template` במקום ב-`wa.send_message`.      |
| שליחת תבניות נכשלת                | ודאו שהתבנית מאושרת ב-Meta Business Suite וששם התבנית תואם בדיוק.                                   |
| Opt-out לא עובד                   | ודאו שהשדה `opted_out` של ה-contact אכן מתעדכן. בדקו את זיהוי מילות המפתח כמו STOP בתוך run logs.   |
| אימות webhook נכשל                | אל תשנו ידנית את כתובת ה-webhook. אם הרישום האוטומטי נכשל, פנו לתמיכת Tedro.                        |
