חזרה
    מדריכים מעשיים
    WhatsApp
    Meta Cloud API

    בוט WhatsApp רשמי עם Meta Cloud API - הקמה מאפס

    רועי טל
    פורסם: 25.6.2026
    12 דקות קריאה
    בוט WhatsApp רשמי עם Meta Cloud API - הקמה מאפס
    מדריך מעשי WhatsApp Meta Cloud API
    בוט WhatsApp רשמי עם Meta Cloud API

    מאת רועי טל · 25 ביוני 2026 · 12 דקות קריאה

    תארו לעצמכם שהעסק שלכם שולח ומקבל הודעות WhatsApp אוטומטית - אישורי הזמנה, תזכורות, מענה אוטומטי - ישירות מול ה-API הרשמי של Meta, בלי שום מתווך כמו GreenAPI. אני אראה לכם בדיוק איך מקימים את זה מאפס: שליטה מלאה, חינמי לבדיקות, ורשמי לגמרי. את הבוט הזה אני מריץ על העסק שלי - הוא מריץ deploy לאתר, מושך נתונים מהדשבורד ושולח לי סיכומים, הכל מתוך וואטסאפ.

    הדמיה של שיחת WhatsApp עם הבוט על מסך טלפון

    בקצרה: WhatsApp Cloud API הוא הממשק הרשמי של Meta לשליחה וקבלה של הודעות WhatsApp ישירות בקוד, בלי מתווך. במדריך הזה נקים אותו מאפס: אפליקציית Meta, מספר בדיקה חינמי, טוקן System User קבוע, ושרת Webhook (Supabase Edge Function) שמקבל הודעות ומשיב אוטומטית. חינמי לבדיקות; בפרודקשן משלמים רק על הודעות תבנית שאתם יוזמים מחוץ לחלון 24 השעות.

    מה תשיגו בסוף המדריך הזה

    • אפליקציית Meta מחוברת ל-WhatsApp עם מספר בדיקה פעיל
    • טוקן גישה קבוע (System User) - לא פג כל 24 שעות
    • שרת Webhook שמקבל הודעות נכנסות בזמן אמת
    • בוט שמשיב אוטומטית דרך ה-Cloud API הרשמי
    • ההודעה הראשונה נשלחת ומתקבלת - בלי שום שירות צד-שלישי

    לפני שמתחילים - מה נדרש

    חשבון Meta

    חשבון Facebook ו-Meta Business. כאן נוצרת האפליקציה ב-developers.facebook.com.

    מספר טלפון

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

    Endpoint ל-Webhook

    כתובת HTTPS ציבורית. הכי פשוט - Supabase Edge Function או Cloudflare Worker (חינמי).

    למה Cloud API ולא GreenAPI?

    ה-Cloud API הוא הדרך הרשמית של Meta. הוא חינמי לחלוטין לבדיקות, אין מתווך שמחזיק את ההודעות שלכם, ואין סיכון שהחשבון ייחסם בגלל אוטומציה לא רשמית. החיסרון היחיד - ההקמה הראשונית מורכבת קצת יותר. בדיוק בשביל זה כתבתי את המדריך הזה.

    Cloud API מול GreenAPI - מה ההבדל

    Meta Cloud API GreenAPI ודומיו
    רשמיותממשק רשמי של Metaצד-שלישי לא רשמי
    סיכון חסימהאיןקיים (אוטומציה לא רשמית)
    מי מחזיק את ההודעותאתם ו-Meta בלבדהמתווך
    עלותחינם לבדיקות; בפרודקשן רק הודעות תבנית יזומותמנוי חודשי קבוע
    מהירות הקמהאיטית יותר (המדריך הזה)מהירה
    פרודקשן בקנה מידהמתאים מאודמוגבל

    לאן אפשר לחבר את הבוט

    חשוב להבהיר: WhatsApp עצמו לא דורש שום AI. השרת שבניתם הוא צינור פשוט - הוא מקבל הודעות ושולח תשובות, וזהו. מה שהבוט באמת עושה תלוי במה שתחברו מאחורי הצינור, וזה לגמרי בידיים שלכם: הקוד והמערכות שלכם, כלי Google, או מודל AI כמו Claude שיהפוך אותו לחכם ויענה בשפה חופשית (בדיוק ה"שדרוג" שבחלק ג׳). כל דבר שתחברו - דרך API פשוט או דרך MCP (פרוטוקול שמחבר כלים חיצוניים) - הופך לפקודה שאתם שולחים בוואטסאפ. הנה החיבורים הכי שימושיים:

    המערכות שכבר בניתם

    דשבורד, מסד נתונים או CRM שבניתם - שלפו מהם מידע והפעילו בהם פעולות מרחוק: "כמה הזמנות נכנסו היום?", "תפתח לי משימה", "תריץ deploy לאתר". הבוט הזה כבר עושה בדיוק את זה.

    כלי Google

    Gmail, Calendar, Drive ואנשי קשר ישירות מהצ׳אט: "תשלח מייל סיכום ללקוח", "תקבע פגישה מחר ב-10:00", "תמצא לי את המסמך מהשבוע שעבר".

    סוכני AI אוטונומיים

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

    תשלומים וחשבוניות

    חברו למערכת הנהלת החשבונות: "תוציא דרישת תשלום ל-X", "תכין הצעת מחיר", "מה התזרים החודש?" - והכל נרשם אצלכם אוטומטית.

    תזכורות ואוטומציות

    אישורי הזמנה, תזכורות תור ומעקבים אחרי לקוחות - נשלחים אוטומטית בזמן הנכון, בלי שתיגעו.

    לידים ומענה 24/7

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

    ורעיון אחרון: חברו מאגר ידע (RAG) ושאלו את הבוט על המסמכים והנתונים הפנימיים שלכם - "מה סוכם בפגישה עם הספק?", "מה המדיניות שלנו על החזרות?".

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

    מסלול אוטומטי - Claude בונה את השרת

    את הקליקים בלוח של Meta אי אפשר להאציל (זה הממשק שלהם), אבל את החלק הקשה - השרת - Claude כותב ומפרסם לבד.

    בדוגמאות אני עובד עם Claude Code, אבל זה עובד בדיוק אותו דבר עם Codex או כל סוכן קוד אחר שאתם רגילים אליו - פשוט הדביקו לו את אותה ההוראה.

    1

    צד Meta - אפליקציה, מספר בדיקה וטוקן

    החלק הזה נעשה בלוח הבקרה של Meta ואי אפשר לדלג עליו. עברו על שלבים 1 עד 11 במסלול הטכני למטה (עם צילומי המסך) ושמרו 3 ערכים: Phone Number ID, הטוקן הקבוע, ומספר הבדיקה. בתוך זה גם הוסיפו ואמתו את הטלפון האישי שלכם כנמען בדיקה (שלבים 3-4), כדי שתוכלו לבדוק בסוף.

    2

    Claude בונה ומפרסם את שרת ה-Webhook

    פתחו את Claude Code בתיקיית הפרויקט והדביקו את ההוראה. הוא יכתוב את ה-Edge Function, יגדיר את הסודות, ויפרסם - ויחזיר לכם את ה-Callback URL ואת ה-Verify token.

    תגידו ל-Claude

    הקם לי שרת Webhook לבוט WhatsApp דרך ה-Cloud API של Meta. צור Supabase Edge Function שמאמתת את ה-Verify token (בקשת GET עם hub.challenge), מקבלת הודעות נכנסות (POST), ומשיבה אוטומטית דרך graph.facebook.com עם הטוקן שלי. שמור את הטוקן, ה-Phone Number ID וה-Verify token כ-secrets, פרסם עם no-verify-jwt, ובסוף תן לי את ה-Callback URL ואת ה-Verify token להדביק בלוח של Meta.

    אשרו כל פעולה ש-Claude מבקש - יצירת קובץ, הגדרת secrets, פרסום. כשהוא יבקש, הדביקו לו את הטוקן הקבוע ואת ה-Phone Number ID ששמרתם בשלב 1. כשהוא מסיים - העתיקו את שני הערכים שהוא נותן.

    3

    חברו את ה-Webhook בלוח של Meta

    חזרו ל-Meta (שלבים 12 עד 16 במסלול הטכני) והדביקו את ה-Callback URL ואת ה-Verify token ש-Claude נתן. לחצו Verify and save, ואז הירשמו לשדה messages.

    שימו לב: ה-Verify token שתדביקו ב-Meta חייב להיות זהה בדיוק לזה ש-Claude שמר ב-secrets. אם הם שונים - האימות ייכשל.

    4

    בדיקה - שלחו הודעה לבוט

    1. 1. מהטלפון ששמתם כנמען בדיקה, שלחו הודעה למספר הבדיקה של WhatsApp
    2. 2. הבוט אמור להשיב אוטומטית תוך שניות
    3. 3. אם לא הגיע - חזרו ל-Claude וכתבו "הבוט לא עונה, בדוק את הלוגים של ה-Edge Function ואת ה-Webhook ותקן" - הוא יבדוק את ה-payload שנכנס ואת התשובה שיוצאת

    שגיאה נפוצה: הבוט מקבל הודעות אבל לא עונה

    בדרך כלל זה אומר שהטוקן או ה-Phone Number ID שגויים, או שהטוקן הזמני (24ש') פג. ה-Webhook מצליח להיכנס, אבל הקריאה החוזרת ל-graph.facebook.com נכשלת בשקט.

    איך מתקנים: כתבו ל-Claude "הטוקן של WhatsApp פג, החלף אותו בטוקן הקבוע ועדכן את ה-secret". ודאו שאתם משתמשים בטוקן ה-System User הקבוע (שלב 11), לא בטוקן הזמני.

    מסלול טכני - שליטה מלאה

    מסלול טכני - שליטה מלאה

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

    חלק א׳

    אפליקציה, WhatsApp ומספר בדיקה

    1

    יצירת האפליקציה ב-Meta for Developers

    היכנסו ל-developers.facebook.comMy AppsCreate App. בחרו סוג Business, תנו שם (לדוגמה: RT-AI bot) וקשרו ל-Meta Business account שלכם. זה השלב היחיד שאין לו צילום - אחריו האפליקציה כבר קיימת.

    2

    הוספת מוצר WhatsApp ו-Generate token

    במסך WhatsApp תופיע הכרטיסייה Step 1. Try it out עם מספר בדיקה שמוקצה לכם אוטומטית (חינמי). לחצו Generate token כדי לקבל טוקן זמני לבדיקות מהירות.

    מסך WhatsApp - Step 1 Try it out, מספר בדיקה וכפתור Generate token
    ① לחצו על Generate token. באותו מסך, במקטע "Send and receive messages", מופיע גם Phone Number ID (לצד מספר השולח) - העתיקו ושמרו אותו יחד עם מספר הבדיקה.

    שימו לב: הטוקן הזה זמני - פג אחרי 24 שעות. הוא מצוין כדי לבדוק שהכל עובד, אבל לפרודקשן תפיקו טוקן קבוע בחלק ב׳.

    3

    הוספת מספר נמען לבדיקות

    בחלון Add a recipient phone number אפשר להוסיף עד 5 מספרים שיקבלו הודעות בדיקה בחינם. הזינו את המספר האישי שלכם ולחצו Next.

    חלון Add a recipient phone number עם שדה הטלפון וכפתור Next
    ① הזינו את מספר הטלפון, ואז ② Next.
    4

    אימות הנמען

    Meta שולחת קוד בן 5 ספרות ב-WhatsApp למספר שהזנתם. הקלידו אותו בתיבות ולחצו Next. מעכשיו המספר הזה יכול לקבל מכם הודעות בדיקה.

    חלון Verify your phone number עם תיבות קוד האימות וכפתור Next
    ① הקלידו את קוד 5 הספרות, ואז ② Next.
    חלק ב׳

    טוקן קבוע דרך System User

    הטוקן הזמני נוח לבדיקות אבל פג כל 24 שעות. טוקן System User יכול להיות קבוע (או 60 יום), והוא מה שמריץ את הבוט בפרודקשן. את כל החלק הזה עושים ב-Business Settings ← Users ← System Users.

    5

    יצירת System User ופתיחת אשף הטוקן

    אם אין לכם עדיין System User, צרו אחד: במסך System Users לחצו הוספה (Add), תנו שם (לדוגמה whatsapp-bot), בחרו תפקיד Admin, וצרו. עכשיו בחרו אותו ולחצו יצירת אסימון (Generate token). ראשית בוחרים את האפליקציה: בחרו את זו שיצרתם בשלב 1 מהדרופדאון, ולחצו הבא.

    אשף יצירת אסימון - בחירת האפליקציה בדרופדאון
    ① בחרו את האפליקציה בדרופדאון, ואז ② הבא.
    6

    בחירת תפוגת הטוקן

    לבוט פרודקשן בחרו "אף פעם" (Never) - רק היא נותנת טוקן קבוע שלא פג (זה הטוקן שהובטח). 60 ימים מתאים רק אם אתם מעדיפים רוטציה - אחרת הבוט "ימות" בעוד חודשיים. לחצו הבא.

    מסך בחירת תפוגת האסימון - 60 ימים
    ① בחרו את משך התפוגה, ואז ② הבא.
    7

    "אין הרשאות זמינות" - חוזרים אחורה

    בשלב זה תראו הודעה שאין הרשאות זמינות - כי עדיין לא הקצתם נכסים ל-System User. לחצו הקודם כדי קודם להקצות את הנכסים.

    מסך אין הרשאות זמינות עם כפתור הקודם
    ① לחצו הקודם כדי להקצות נכסים.
    8

    הקצאת נכס - האפליקציה

    בחרו סוג נכס אפליקציות, בחרו את האפליקציה בדרופדאון, ולחצו הקצאת נכסים.

    בחירת נכס מסוג אפליקציות בדרופדאון
    ① בחרו את האפליקציה, ואז ② הקצאת נכסים.
    9

    גישה מלאה לאפליקציה

    הפעילו את ה-toggle ניהול אפליקציה (גישה מלאה), ולחצו הקצאת נכסים.

    הפעלת toggle ניהול אפליקציה - גישה מלאה
    ① הפעילו את ה-toggle "ניהול אפליקציה", ואז ② הקצאת נכסים.
    10

    הקצאת חשבון WhatsApp

    חזרו על אותו תהליך עם סוג נכס חשבונות WhatsApp: בחרו את החשבון, הפעילו גישה מלאה (ניהול חשבונות WhatsApp Business), ולחצו הקצאת נכסים.

    הקצאת חשבון WhatsApp עם גישה מלאה
    ① הפעילו את הרשאות הגישה המלאה, ואז ② הקצאת נכסים.
    11

    בחירת הרשאות ויצירת הטוקן

    חזרו למסך ההרשאות וסמנו את שתי ההרשאות: whatsapp_business_management ו-whatsapp_business_messaging. לחצו יצירת אסימון.

    בחירת ההרשאות whatsapp_business_management ו-whatsapp_business_messaging
    ① סמנו את שתי ההרשאות, ואז ② יצירת אסימון.

    שמרו את הטוקן עכשיו

    הטוקן מוצג פעם אחת בלבד. העתיקו אותו מיד למקום בטוח. זה הטוקן הקבוע שישב ב-secret של השרת בתור WHATSAPP_TOKEN. לא חושפים אותו בקוד או בצ׳אט.

    חלק ג׳

    שרת ה-Webhook

    ה-Webhook הוא הלב של הבוט: כתובת HTTPS אחת שעושה שני דברים. ב-GET היא מאמתת מול Meta (מחזירה את ה-hub.challenge אם ה-Verify token תואם), וב-POST היא מקבלת כל הודעה נכנסת ומשיבה דרך ה-Cloud API. הנה Supabase Edge Function מלאה ומוכנה:

    supabase/functions/whatsapp-webhook/index.ts
    const VERIFY_TOKEN = Deno.env.get("WHATSAPP_VERIFY_TOKEN")!;
    const WHATSAPP_TOKEN = Deno.env.get("WHATSAPP_TOKEN")!;
    const PHONE_NUMBER_ID = Deno.env.get("WHATSAPP_PHONE_NUMBER_ID")!;
    
    Deno.serve(async (req) => {
      const url = new URL(req.url);
    
      // 1) אימות ה-Webhook - Meta קוראת פעם אחת ב-GET
      if (req.method === "GET") {
        const mode = url.searchParams.get("hub.mode");
        const token = url.searchParams.get("hub.verify_token");
        const challenge = url.searchParams.get("hub.challenge");
        if (mode === "subscribe" && token === VERIFY_TOKEN) {
          return new Response(challenge, { status: 200 });
        }
        return new Response("Forbidden", { status: 403 });
      }
    
      // 2) הודעות נכנסות ב-POST. תמיד מחזירים 200 מהר - אחרת Meta
      //    מנסה שוב ושוב ובסוף מכבה את ה-Webhook.
      if (req.method === "POST") {
        try {
          const body = await req.json();
          const value = body?.entry?.[0]?.changes?.[0]?.value;
          const msg = value?.messages?.[0];
          // value.statuses = עדכוני נמסר/נקרא; הודעות שאינן טקסט - מתעלמים בשקט
          if (msg && msg.type === "text") {
            await sendWhatsApp(msg.from, "קיבלתי: " + msg.text.body);
          }
        } catch (err) {
          console.error("webhook error", err);
        }
        return new Response("EVENT_RECEIVED", { status: 200 });
      }
    
      return new Response("Method Not Allowed", { status: 405 });
    });
    
    async function sendWhatsApp(to: string, text: string) {
      const res = await fetch(
        "https://graph.facebook.com/v23.0/" + PHONE_NUMBER_ID + "/messages",
        {
          method: "POST",
          headers: {
            "Authorization": "Bearer " + WHATSAPP_TOKEN,
            "Content-Type": "application/json",
          },
          body: JSON.stringify({
            messaging_product: "whatsapp",
            to: to,
            text: { body: text },
          }),
        },
      );
      // בלי השורה הזו, כשל (טוקן שפג, Phone Number ID שגוי) נבלע בשקט
      if (!res.ok) console.error("send failed", res.status, await res.text());
    }

    לפני הפקודות ודאו ש-Supabase CLI מותקן (npm i -g supabase), שאתם מחוברים (supabase login) ושהפרויקט מקושר (supabase link). את <your-project> מחליפים ב-project ref שלכם - מופיע בכתובת הדשבורד וב-Settings.

    הגדירו את שלושת הסודות (מהערכים ששמרתם בחלקים א׳ ו-ב׳):

    terminal
    supabase secrets set WHATSAPP_TOKEN=הטוקן_הקבוע
    supabase secrets set WHATSAPP_PHONE_NUMBER_ID=ה_Phone_Number_ID
    supabase secrets set WHATSAPP_VERIFY_TOKEN=מחרוזת-סודית-שתמציאו

    ופרסמו את ה-Function:

    supabase functions deploy whatsapp-webhook --no-verify-jwt

    למה --no-verify-jwt?

    כברירת מחדל, Edge Function של Supabase דורשת JWT של Supabase בכל בקשה. אבל Meta קוראת ל-Webhook בלי שום טוקן כזה - אז בלי הדגל הזה כל בקשה מ-Meta תיחסם ב-401, וה-Webhook לעולם לא יאומת. הדגל מאפשר ל-Meta להגיע ל-Function.

    אבטחה - אמתו את החתימה של Meta (מומלץ מאוד לפרודקשן)

    בגלל ש---no-verify-jwt פותח את ה-endpoint לכולם, כל מי שמגלה את ה-Callback URL יכול לשלוח אליו payload מזויף ולגרום לבוט לשלוח הודעות על חשבון הטוקן שלכם. לכן Meta חותמת כל בקשה, ולפני שמגיבים חשוב לאמת את החתימה. קוראים את הגוף כטקסט גולמי, מחשבים HMAC-SHA256 עם ה-App Secret, ומשווים ל-header x-hub-signature-256.

    const APP_SECRET = Deno.env.get("WHATSAPP_APP_SECRET")!;
    
    async function valid(raw: string, sig: string) {
      const key = await crypto.subtle.importKey("raw",
        new TextEncoder().encode(APP_SECRET),
        { name: "HMAC", hash: "SHA-256" }, false, ["sign"]);
      const mac = await crypto.subtle.sign("HMAC", key,
        new TextEncoder().encode(raw));
      const hex = [...new Uint8Array(mac)]
        .map((b) => b.toString(16).padStart(2, "0")).join("");
      return sig === "sha256=" + hex;
    }
    
    // בתוך ה-POST, לפני העיבוד:
    const raw = await req.text();
    const sig = req.headers.get("x-hub-signature-256") ?? "";
    if (!(await valid(raw, sig))) {
      return new Response("Forbidden", { status: 401 });
    }
    const body = JSON.parse(raw); // במקום await req.json()

    הוסיפו סוד רביעי - את ה-App Secret מ-Meta App ← Settings ← Basic ← App Secret: supabase secrets set WHATSAPP_APP_SECRET=...

    ה-Callback URL שתדביקו ב-Meta הוא:

    https://<your-project>.supabase.co/functions/v1/whatsapp-webhook

    שדרוג: בוט חכם, לא רק "מהדהד"

    הקוד למעלה רק מחזיר "קיבלתי: ...". כדי שהבוט באמת יחשוב, החליפו את קריאת sendWhatsApp בקריאה ל-LLM (כאן Claude) והחזירו את תשובתו:

    בתוך ה-POST, במקום ה-echo
    const ai = await fetch("https://api.anthropic.com/v1/messages", {
      method: "POST",
      headers: {
        "x-api-key": Deno.env.get("ANTHROPIC_API_KEY")!,
        "anthropic-version": "2023-06-01",
        "content-type": "application/json",
      },
      body: JSON.stringify({
        model: "claude-opus-4-8",
        max_tokens: 400,
        messages: [{ role: "user", content: msg.text.body }],
      }),
    });
    const data = await ai.json();
    await sendWhatsApp(msg.from, data.content[0].text);
    חלק ד׳

    חיבור ה-Webhook ב-Meta

    12

    מעבר ל-Production setup

    חזרו למסך WhatsApp ועברו לכרטיסייה Step 2. Production setup. זהו מסך מעבר שטוען את הגדרות ה-Webhook.

    מסך Step 2 Production setup נטען
    מסך המעבר ל-Production setup.
    13

    הגדרת ה-Webhook

    בחלון Configure Webhooks מלאו: ב-Callback URL את כתובת ה-Function מחלק ג׳, וב-Verify token את אותה מחרוזת סודית ששמתם ב-WHATSAPP_VERIFY_TOKEN. לחצו Verify and save.

    חלון Configure Webhooks עם שדות Callback URL ו-Verify token וכפתור Verify and save
    ① Callback URL · ② Verify token · ③ Verify and save.

    שגיאה נפוצה: Verify token שלא תואם

    ה-Verify token שאתם מקלידים כאן חייב להיות זהה בדיוק ל-WHATSAPP_VERIFY_TOKEN שבשרת. אם יש הבדל אחד - אפילו רווח - Meta תשלח GET, השרת יחזיר 403, והאימות ייכשל עם "The callback URL or verify token couldn't be validated".

    איך מתקנים: ודאו ששתי המחרוזות זהות בדיוק, ושפרסמתם מחדש את ה-Function אחרי הגדרת ה-secret.

    14

    Webhook מאומת

    אם הכל תקין, יופיע סימן ירוק ליד Configure Webhooks, ולצדו השלבים הבאים (רישום מספר, תשלום, בדיקה). מצוין - השרת שלכם מחובר ל-Meta.

    Webhook הוגדר בהצלחה עם סימן ירוק ורשימת השלבים הבאים
    ① הסימן הירוק ליד "Configure Webhooks" - האימות הצליח.
    15

    הרשמה לשדות ה-Webhook

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

    רשימת שדות ה-Webhook עם toggles להרשמה
    ① הפעילו את ה-toggle (מתג ההרשמה) ליד השדה הרצוי. זו אותה רשימת שדות שבשלב הבא.
    16

    הרשמה לשדה messages - הקריטי

    באותה רשימה מהשלב הקודם, זה השדה החשוב ביותר. השדה messages הוא מה שמפעיל קבלת הודעות נכנסות - בלעדיו השרת לעולם לא יקבל את ההודעות של המשתמשים. הפעילו אותו עד שהוא מסומן כ-Subscribed.

    השדה messages מסומן כ-Subscribed
    ① ודאו ש-"messages" וה-toggle שלו מופעלים (Subscribed).

    סיום - מעבר לפרודקשן

    עד כאן הכל עובד עם מספר הבדיקה. כדי לרשום את המספר העסקי האמיתי שלכם (ולשלוח לכל לקוח, לא רק ל-5 הנמענים), צריך שני דברים: אימות עסקי (Business Verification) במנהל העסקים, ומעבר של האפליקציה ממצב Development ל-Live (המתג למעלה במסך). אחרי ששניהם מאושרים - הבוט מוכן לפרודקשן מלא.

    חלון 24 השעות ותבניות הודעה

    אחרי שלקוח כותב לכם, יש לכם 24 שעות להשיב לו בהודעת טקסט חופשית. מחוץ לחלון הזה - אפשר לפנות אליו רק עם הודעת תבנית (template) שאושרה מראש על ידי Meta.

    לכן בדיקות מענה (כמו במדריך הזה) תמיד עובדות בתוך החלון. ליצירת קשר יזום - הכינו ואשרו תבניות מראש בלוח של Meta.

    כמה זה עולה

    • בדיקות: מספר הבדיקה ועד 5 נמענים - חינם לגמרי.
    • פרודקשן: מענה לשירות לקוחות בתוך חלון 24 השעות - חינם. משלמים רק על הודעות תבנית יזומות מחוץ לחלון, לפי קטגוריה ומדינה (חיוב per-message מאז יולי 2025, לא per-conversation).
    • השרת: ה-Webhook על Supabase נכנס בנוחות ל-free tier.

    המחירון הרשמי המעודכן מקושר ב"מקורות רשמיים" בסוף המדריך.

    בדיקה ופתרון בעיות

    איך לבדוק

    1. 1. מהטלפון שאימתתם כנמען, שלחו הודעה למספר הבדיקה
    2. 2. צפו בלוגים: supabase functions logs whatsapp-webhook
    3. 3. אמורה להגיע בקשת POST עם ה-payload, ותשובה אוטומטית "קיבלתי: ..."
    4. 4. ההודעה החוזרת אמורה להופיע ב-WhatsApp שלכם תוך שניות

    בעיות נפוצות

    האימות נכשל ב-Verify and save

    ה-Verify token לא תואם, או שכחתם --no-verify-jwt. בדקו את שניהם.

    הודעות נכנסות לא מגיעות

    לא נרשמתם לשדה messages (שלב 16), או שהאפליקציה עדיין ב-Development והמספר לא ברשימת הנמענים.

    נכנס אבל לא עונה

    הטוקן פג (זמני, 24ש') או שה-Phone Number ID שגוי. החליפו לטוקן הקבוע מחלק ב׳.

    7 הטעויות הנפוצות - צ'קליסט מהיר

    1. 1. שכחתם --no-verify-jwt בפרסום - Meta נחסמת ב-401 וה-Webhook לא מתאמת.
    2. 2. ה-Verify token לא זהה בין Meta לשרת (לרוב רווח נסתר בסוף).
    3. 3. עדיין על הטוקן הזמני (24ש') במקום טוקן System User קבוע.
    4. 4. לא נרשמתם לשדה messages (שלב 16) - אין הודעות נכנסות.
    5. 5. האפליקציה עדיין ב-Development והמספר לא ברשימת הנמענים המאומתים.
    6. 6. ניסיתם לפנות יזום מחוץ לחלון 24 השעות בלי תבנית מאושרת.
    7. 7. בלבול בין Phone Number ID ל-WABA ID (חשבון ה-WhatsApp).

    שאלות נפוצות

    האם ה-Cloud API באמת חינמי?

    לבדיקות - כן, לגמרי (מספר בדיקה ועד 5 נמענים). בפרודקשן, מענה בתוך חלון 24 השעות חינם; משלמים רק על הודעות תבנית יזומות מחוץ לחלון, לפי קטגוריה ומדינה.

    צריך אימות עסקי (Business Verification)?

    למספר הבדיקה - לא. כדי לרשום את המספר העסקי האמיתי ולעבור ל-Live - כן.

    מה ההבדל בין טוקן זמני לקבוע?

    הטוקן הזמני פג אחרי 24 שעות (טוב לבדיקה מהירה). טוקן System User עם תפוגה "אף פעם" הוא קבוע, ומריץ את הבוט בפרודקשן.

    איפה מאחסנים את ה-Webhook?

    בכל endpoint HTTPS ציבורי. הכי פשוט - Supabase Edge Function או Cloudflare Worker, ששניהם עם free tier שמספיק.

    אפשר עם Codex במקום Claude?

    כן. כל סוכן קוד שאתם עובדים איתו עובד - ההוראות זהות, פשוט מדביקים לו את אותה הוראה.

    מקורות רשמיים

    הירשמו לעדכונים במייל

    רוצים להישאר צעד אחד קדימה?

    עדכונים על כלי AI, מדריכים וטיפים - ישר למייל. בלי ספאם.