<div dir="rtl" lang="he">

# תרגילים - שיעור 1.6: WhatsApp Business API

## מידע כללי
- **שיעור:** 1.6 – חיבור WhatsApp Business API למערכות (Make + n8n)
- **סוג השיעור:** מעשי (4 שעות)
- **הערה:** חלק מהתרגילים דורשים WABA מוגדר. לתרגילים ללא WABA — השתמשו בסביבת בדיקה שמסופקת.

---

## תרגיל 1: חישוב עלויות לפרויקט (20 דקות)

### הנחיות:
לקוח — רשת של 5 חדרי כושר — מבקש אוטומציה ל-WhatsApp. האנליזה שלכם:

- 500 תזכורות שיעורים ביום (Utility)
- 200 הודעות שיווק שבועיות לכל לקוח (1,200 לקוחות → Marketing)
- בממוצע 50 שאלות יום מלקוחות (Service)
- 100 אישורי רישום חודשיים (Utility)

### שאלות:
1. חשבו עלות API חודשית לכל קטגוריה (מחיר לשיחה: Marketing $0.14, Utility $0.05, Service $0)
2. מה העלות הכוללת בחודש?
3. כמה תגבו מהלקוח? (כולל עלויות + 40% מרווח + עלות Make/n8n)
4. מה ה-ROI של הלקוח אם אוטומציית התזכורות מפחיתה ביטולים ב-35%? (הניחו כל ביטול עולה לרשת 150 ₪)
5. כתבו הצעת מחיר קצרה (5-6 שורות) ללקוח.

---

## תרגיל 2: הגדרת Webhook ב-Meta (30 דקות)

### הנחיות (עם WABA):
1. צרו Scenario ב-Make עם Custom Webhook Trigger
2. העתיקו את ה-Webhook URL
3. ב-Meta Business Manager ← WhatsApp ← Configuration ← Webhook: הכניסו את ה-URL
4. הגדירו Verify Token (מחרוזת שאתם בוחרים)
5. Subscribe לאירוע `messages`
6. שלחו הודעת בדיקה למספר שלכם
7. בדקו שהנתונים הגיעו ל-Make

### אם אין WABA:
השתמשו ב-[Meta Webhook Tester](https://developers.facebook.com/tools/explorer/) ושלחו POST ידני עם מבנה הJSON של WhatsApp. תעדו מה ה-JSON שמגיע.

### שאלות:
- מה ה-path המלא ל-`text.body` בתוך ה-JSON?
- מה ה-path ל-`from` (מספר שולח)?
- למה צריך Filter לפני עיבוד?

---

## תרגיל 3: בוט Echo ב-Make (30 דקות)

### הנחיות:
בנו Scenario פשוט שמחזיר כל הודעה שמתקבלת:

1. **Webhook Trigger** — מקבל הודעות
2. **Filter** — רק type=text
3. **Set Multiple Variables** — חלצו: sender, messageText, senderName
4. **HTTP Request** — שלחו חזרה בדיוק את אותה ההודעה עם הקידומת "קיבלתי: "

### בדיקה:
שלחו "שלום" ← קיבלו "קיבלתי: שלום"
שלחו "מה שלומך?" ← קיבלו "קיבלתי: מה שלומך?"

### הרחבה (אופציונלי):
הוסיפו שאם המסר מכיל את המילה "עזרה" — שלחו הודעה ספציפית עם רשימת שירותים.

---

## תרגיל 4: בוט AI ב-Make (45 דקות)

### הנחיות:
בנו בוט WhatsApp שמחובר ל-AI ועונה על שאלות:

1. **Webhook + Filter** כמו בתרגיל קודם
2. **Claude / ChatGPT Module** עם System Prompt:
   > "אתה עוזר לקוחות של [שם עסק]. שמך [שם]. ענה בעברית, קצר ומקצועי. אם אינך יודע — אמור 'אעביר לנציג.'  אל תמציא מידע."
3. **HTTP Request** — שלח את תגובת ה-AI

### שאלות לבדיקה:
- שלחו שאלה לגיטימית על העסק
- שלחו שאלה שלא קשורה לעסק
- שלחו הודעה ב-Emoji בלבד
- מה הבוט עושה בכל מקרה?

### שיפור:
הוסיפו לוגיקה: אם השעה מחוץ לשעות פעילות — שלחו Template Message קבועה "קיבלנו את פנייתך, ניצור קשר בשעות הפעילות."

---

## תרגיל 5: אותו בוט ב-n8n (45 דקות)

### הנחיות:
בנו את אותו בוט AI מתרגיל 4 ב-n8n.

**ההבדלים שצריך לטפל בהם:**
1. **Switch Node ראשון** — IF method = GET → Return hub.challenge. IF method = POST → המשך
2. **Set Node** לחילוץ נתונים (path שונה מ-Make)
3. **IF Node** לסינון סוג הודעה
4. **AI Agent Node** עם אותו System Prompt
5. **HTTP Request Node** לשליחה — או WhatsApp Business Cloud Node

### תיעדו:
- מה קל יותר ב-Make? מה קל יותר ב-n8n?
- מה ההבדל בין path החילוץ בין Make ל-n8n?

---

## תרגיל 6: Template ו-Quick Reply (30 דקות)

### הנחיות:
צרו Template לתזכורת פגישה:

**Template:**
```
שלום {{1}}, תזכורת לפגישתך מחר {{2}} בשעה {{3}}.
לאישור לחצו ✅, לביטול לחצו ❌
```
**Quick Reply Buttons:** "אאשר" (ID: confirm), "אבטל" (ID: cancel)

### ב-Make/n8n:
1. שלחו את ה-Template עם פרמטרים אמיתיים
2. הוסיפו IF Node: אם messageType = button_reply
3. אם ID = confirm → עדכנו Google Sheets → שלחו "מעולה, הפגישה מאושרת!"
4. אם ID = cancel → עדכנו Sheets → שלחו "הפגישה בוטלה. ניצור קשר לתיאום מועד חדש."

---

## תרגיל 7 (משימת בית): מערכת WhatsApp שלמה

### הנחיות:
בנו מערכת WhatsApp מלאה לעסק לבחירתכם הכוללת:

**חובה:**
- קבלת הודעות עם AI שעונה
- לפחות Template Message אחד (תזכורת / אישור / שיווק)
- לוגיקת שעות — לא שולחים אחרי 21:00 ולפני 08:00
- Error Handler עם Slack/מייל אם שליחה נכשלת
- שמירת שיחות ב-Google Sheets

**בונוס:**
- Interactive Message עם Quick Reply לפחות
- בדיקת שבת (לא שולחים בשבת)
- Deduplication — לא מעבדים אותה הודעה פעמיים

**הגישו עד השיעור הבא:** Screenshot/Export של ה-Scenario/Workflow + הסבר קצר על ה-use case שבחרתם.

---

## קריטריונים להערכה

| קריטריון | ציון |
|---|---|
| Webhook פועל עם Filter נכון | 20% |
| AI עונה בצורה הגיונית | 25% |
| Template Message עובד | 20% |
| לוגיקת שעות ושבת | 15% |
| Error Handling ולוגים | 20% |

</div>
