מדריך אדמין

HELP

איך אני...

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

קטגוריות

📄 מדריכים חינמיים

קבצי PDF שמועלים ל-Storage תחת free-guides/ ומקבלים לינק מקוצר אוטומטי (app.womanswisdom.co/s/...) עם ספירת קליקים.

איך אני מעלה מדריך חדש?
  1. היכנסי ל-מדריכים חינמיים.
  2. תני לקובץ שם באנגלית עם מקפים (למשל divorce-6-mistakes.pdf) — שם זה ישמש כ-shortId ב-URL הסופי.
  3. "בחר קובץ" → "העלה" → המתיני ~2 שניות עד שהשורה תופיע בטבלה.
  4. לחצי "העתק" כדי לקבל את הלינק.
💡 שם בעברית = URL מקודד ומכוער. אל תעשי את זה.
איך אני משנה את שם הלינק (shortId) בלי להעלות מחדש?
  1. Firestore Console → אוסף shortLinks.
  2. פתחי את המסמך הקיים → העתיקי את storagePath.
  3. צרי מסמך חדש עם ה-ID הרצוי + אותו storagePath.
  4. מחקי את המסמך הישן.
איך אני רואה כמה אנשים לחצו על הלינק?
ב-מדריכים חינמיים — עמודה "קליקים". מתעדכן בכל לחיצה (כולל שלך).
איך אני מחליפה תוכן של קובץ קיים בלי לאבד את הלינק?
  1. Firebase Storagefree-guides/.
  2. מחקי את הקובץ הישן או דרסי עם אותו שם.
  3. אם דרסת באותו שם — הלינק יישאר זהה.
  4. אם מחקת — הטריגר מוחק את ה-shortLink. תצטרכי להעלות מחדש וליצור שוב.
⚠ העלאה ידנית מ-Console לא תמיד מפעילה את הטריגר. עדיף להעלות דרך העמוד שלנו.
איך אני מוחקת מדריך?
ב-מדריכים חינמיים → "מחק" ליד הקובץ.
⚠ פעולה לא הפיכה. הקובץ והלינק נמחקים.

📬 רשימות תפוצה

ניהול מנויות, רשימות תפוצה, ו-drip campaigns. נשמר באוסף subscribers/{email} ומסונכרן ל-Rav Messer דרך Make.

איך אני מוסיפה מנויה ידנית?
  1. רשימות תפוצה → "הוסף מנוי" / "Add subscriber".
  2. מלאי אימייל, שם, ובחרי רשימות.
  3. חובה: consent text — נדרש משפטית.
איך אני יוצרת רשימת תפוצה חדשה?
  1. רשימות תפוצה → טאב "רשימות" / "Lists".
  2. "רשימה חדשה" → תני שם → שמרי.
  3. ה-ID נוצר אוטומטית מהשם (slug).
איך אני מסירה מנויה?
אופציה א — היא מסירה את עצמה
כל מייל מכיל "יציאה מרשימת התפוצה" בפוטר. הלינק מסיר אוטומטית גם מ-Rav Messer (דרך Make webhook).
אופציה ב — את מסירה ידנית
רשימות תפוצה → חפשי → סמני "Unsubscribe". זה מסמן ב-Firestore.
⚠ הסרה ידנית לא מסירה אוטומטית מ-Rav Messer — עדכני שם ידנית.
מנויה מסומנת כ-"unsubscribed" אבל ביקשה להירשם מחדש — מה לעשות?
ב-רשימות תפוצה → פתחי את הפרופיל שלה → שני את ה-status בחזרה ל-"confirmed".
ℹ אם היא נרשמת דרך טופס באתר — Make webhook יעדכן אוטומטית.
איך אני שולחת mass email לרשימה?
  1. תבניות מייל → טאב "שליחת מייל" / "Send campaign".
  2. בחרי תבנית → ערכי לפי הצורך.
  3. בחרי רשימת תפוצה ליעד.
  4. שלחי תחילה Test לעצמך.
  5. שלחי לקבוצה.
⚠ Gmail מגביל ~500 מיילים ביום מאותו חשבון. שליחות גדולות יותר — דרך SMTP חיצוני או חלוקה לימים.
איך אני מנהלת drip campaign (סדרת מיילים אוטומטית)?
  1. תבניות מייל → טאב "Sequences" / "סדרות".
  2. צרי סדרה: שם, רשימה משויכת, ומיילים לפי טריגר/השהייה.
  3. מנויה חדשה ברשימה תועלה אוטומטית לסדרה ותקבל את המיילים לפי הסדר.
איך אני מייבאת רשימת מנויים מקובץ CSV?
כרגע אין כפתור ייבוא ב-UI. החלופות:
דרך 1 — סקריפט
שלחי את ה-CSV למתכנת — הוא יריץ סקריפט שמייבא ל-subscribers.
דרך 2 — דרך Make
העלי את ה-CSV ל-Google Sheets והשתמשי בסקנריו Make שקורא שורות ושולח ל-/api/mailingList/syncSubscriber.
איך אני רואה סטטיסטיקות של רשימה?
רשימות תפוצה → פתחי רשימה → מספר מנויות פעילות / לא פעילות / נשלחו / נכשלו.

✉️ תבניות מייל

כל מייל יוצא משתמש בתבנית. תבניות ה-default כתובות בקוד; אם יש override ב-Firestore (emailTemplates/{id}) — היא מנצחת.

מה התבניות הקיימות ולמה הן משמשות?
IDשימוש
verificationאימות אימייל בהרשמה
password_resetאיפוס סיסמה
eching_first_feedbackמשוב 24h אחרי קריאת I-Ching
questionnaire_feedbackמשוב 24h אחרי שאלון
questionnaire_analysisמייל הניתוח עם PDF אחרי תשלום
daily_summaryסיכום יומי אדמיניסטרטיבי
eching_guest_verifyקוד OTP לאורחת I-Ching
questionnaire_guest_verifyקוד OTP לאורחת שאלון
איך אני עורכת תבנית?
  1. תבניות מייל → בחרי תבנית.
  2. ערכי subject + bodyHtml.
  3. Preview כדי לבדוק.
  4. שמרי.
איזה placeholders אני יכולה להשתמש בתבנית?
Placeholderמה זה
{{name}}שם הנמענת
{{recipientEmail}}אימייל הנמענת
{{feedbackUrl}}לינק למילוי משוב
{{footerActionsHtml}}בלוק "יציאה מרשימה / שינוי פרטים / לא נרשמתי"
{{businessName}}"בינת הפניקס" (config/emailLegal)
{{contactEmail}}אימייל יצירת קשר
{{address}}כתובת חברה (תקנה משפטית)
{{taxId}}מספר עוסק
{{personalizedIntro}}(רק questionnaire_analysis) פתיח אישי לפי פרופיל
{{pdfBlock}}(רק questionnaire_analysis) הודעה על PDF מצורף
⚠ אל תמחקי {{footerActionsHtml}} — זה החובה המשפטית להציע unsubscribe.
איך אני מחזירה תבנית למקור (default)?
מ-admin-emails
לחצי "החזרה לברירת מחדל" אם זמין, או מחקי את כל ה-bodyHtml/subject ושמרי ריק.
מ-Firestore
FirestoreemailTemplates → מחקי את כל המסמך. הקוד יחזור להשתמש ב-default.
עדכון בקוד לא הופיע במייל — למה?
סביר מאוד שיש לך override פעיל ב-Firestore שדורס את ה-default. ראי את השאלה הקודמת (מחיקת override).
איך אני מעדכנת את פרטי השולח (כתובת, ע.מ, טלפון)?
Firestore → אוסף config → מסמך emailLegal. שדות: businessName, address, contactEmail, contactPhone, taxId.
ℹ השינוי נכנס לתוקף תוך דקה (cache ב-Cloud Function).
איך אני שולחת לעצמי תבנית לבדיקה?
תבניות מייל → "Test send" / "שלח לעצמי". המייל יישלח עם משתנים לדוגמה.
הפוטר במייל מציג HTML ישן בלי הקישורים החדשים
ב-override שלך אין {{footerActionsHtml}}. שתי דרכים לתקן:
ידני
ערכי את התבנית — באזור הפוטר, החליפי את ה-HTML הישן ב-{{footerActionsHtml}}.
אוטומטי (backfill)
קראי ל-/api/backfillEmailFooters?apply=true (דורש Bearer token של אדמין). הוא סורק ומחליף את כל ה-overrides.

📭 מיילים שנכשלו

כתובות שחזרו כ-hard bounce. המערכת מפסיקה לשלוח אליהן אוטומטית.

איך אני רואה את הרשימה?
מה ההבדל בין hard ל-soft bounce?
  • Hard: הכתובת לא קיימת / חסומה לצמיתות. מערכת מוסיפה אוטומטית לרשימת bounces ולא תשלח שוב.
  • Soft: תיבה מלאה / שרת לא זמין זמנית. לא נכנס לרשימה — ננסה שוב במייל הבא.
הסרתי כתובת מ-bounces — לאיפה היא הולכת?
המערכת תנסה לשלוח אליה שוב בפעם הבאה שתופיע ברשימת תפוצה. אם תיכשל שוב — היא תחזור אוטומטית ל-bounces.
איך מתווסף bounce — מאיפה ההתראה?
Make scenario "Bounce notification" מקבל מייל "Mail Delivery Subsystem", מפרסר את הכתובת, ושולח POST ל-/api/recordEmailBounce. אם הסקנריו ב-Make לא פעיל — bounces לא יעודכנו אוטומטית.

🔮 I-Ching (אי צ'ינג)

שני זרמים — אורחות (אימות OTP, קריאה אחת בחינם, יש credits מוגבל) ורשומות (credits בחשבון).

איך אני רואה אילו אורחות ביצעו קריאה ולא נרשמו?
אורחות I-Ching. הטבלה מציגה אימייל, שם, תאריך, האם נשלח פידבק, האם מילאה, וסטטוס.
איך אני שולחת מייל פידבק ידנית למי שלא קיבלה?
אורחות I-Ching → "שלח פידבק לחסרים". מדלג על bounces ו-disowned.
מה זה "סימנה שלא נרשמתי" (disowned)?
אורחת שלחצה על "לא נרשמתי" בפוטר של מייל — המערכת מסמנת disowned: true ב-guestReadings ולא תשלח לה יותר כלום.
איך אני נותנת credits נוספים למשתמשת רשומה?
Firestoreusers/{email} → ערכי את השדה services.eching.credits.
איך אני בודקת אילו קריאות בוצעו?
  • אורחות: guestReadings/{email} ב-Firestore
  • רשומות: users/{email}/echingReadings/ subcollection
איך אני מייצאת את רשימת האורחות ל-Excel?
אורחות I-Ching → "ייצוא CSV".

📝 שאלון יחסינו לאן

שאלון בתשלום. שני זרמים — אורחת (אימות OTP) ורשומה. אחרי מילוי → תשלום ב-Meshulam → ניתוח אישי נשלח אוטומטית.

איך הזרימה עובדת מקצה לקצה?
  1. משתמשת ממלאת שאלון (רשומה דרך questionnaire.html, אורחת דרך questionnaire-guest.html אחרי אימות OTP).
  2. השאלון נשמר ב-questionnaireSubmissions/{email} עם pendingPayment: true.
  3. מוצג סרטון סיכום + popup עם לינק תשלום ל-Meshulam.
  4. היא משלמת ב-Meshulam → Meshulam שולח מייל אישור.
  5. Make scenario "עדכון תשלום מGROW" מפרסר את המייל וקורא ל-releaseQuestionnaireWebhook.
  6. הפונקציה מחשבת פרופיל, שולחת מייל ניתוח אישי + PDF, ומסמנת paid: true.
  7. אחרי 24h — מייל פידבק (רק אם התשובה נשלחה).
איך אני רואה מי מילאה שאלון ולא שילמה?
לידים שאלון → טאב "השלימו שאלון" — שדה "שילמה" יראה X או ✓.
איך אני רואה מי התחילה ולא סיימה?
לידים שאלון → טאב "לידים לא שלמים".
איך אני שולחת ידנית את מייל הניתוח (test mode או recovery)?
POST ל-/api/releaseQuestionnaire עם:
{ "email": "user@example.com", "apiKey": "...", "_testProfileNum": "3" }
את ה-apiKey שאל את המתכנת. אם לא תיתני _testProfileNum — תיקח את הנתונים האמיתיים מ-pendingWebhookPayload.
⚠ זה ישלח את מייל הניתוח. אל תפעילי בטעות.
משתמשת שילמה אבל לא קיבלה את המייל — מה לעשות?
  1. בדקי מיילים שנכשלו — אם היא שם, האימייל לא תקין.
  2. בדקי ב-Firestore questionnaireSubmissions/{email} — האם paid: true? אם לא, Make לא ירה. בדקי ב-Make scenario "עדכון תשלום" שהוא רץ.
  3. בדקי לוגים של releaseQuestionnaireWebhook.
  4. שלחי ידנית (ראי שאלה קודמת).
איך אני מאפשרת לה למלא שוב (redo)?
ב-Firestore → users/{email}/services/relationship/questionnaire → הגדירי redoEligible: true. או, הזרימה האוטומטית מסמנת את זה אם הציון התקבל מתחת לסף. בפעם הבאה שהיא תיכנס לשאלון, היא תוכל למלא שוב בלי לשלם.
איך אני משנה את לינק התשלום של Meshulam?
חפשי בקוד meshulam.co.il/s/ והחליפי. הוא מופיע ב-public/questionnaire-guest.html וכנראה במקומות נוספים. אל תשכחי לעדכן ב-Make scenario אם נדרש.
ℹ עדיף להעביר לקובץ הגדרות מרכזי בעתיד.

💬 משוב 24h

מייל המבקש משוב — נשלח אוטומטית 24h אחרי שהמשתמשת קיבלה את התשובה/קריאה.

מי מקבל מייל משוב?
  • I-Ching: כל מי שקיבלה קריאה (גם אורחות, גם רשומות) — 24h אחרי השליחה.
  • שאלון: רק מי ששילמה וקיבלה את הניתוח — 24h אחרי שהמייל נשלח. מי שמילאה ולא שילמה — לא מקבלת.
מתי המייל נשלח?
סקדיולר רץ פעם ביום ב-10:00 (שעון ישראל). שולח לכל מי שעבר 24h מ-submittedAt שלה ב-pending_feedback.
איך אני שולחת ידנית למי שלא קיבלה?
I-Ching
אורחות I-Ching → "שלח פידבק לחסרים"
שאלון
לידים שאלון → "שלח פידבק לחסרים"
איך אני רואה משובים שהוגשו?
ב-Firestore → אוסף feedback. כל מסמך מכיל product, stars, nps, text, tags. ניתן לייצא ל-CSV דרך Console.
איך אני מקבלת דוח סיכום של משובים?
הפונקציה analyzeFeedback מייצרת דוח שבועי. הדוחות נשמרים ב-feedbackReports. או הריצי ידנית — שאלי את המתכנת.

💳 תשלומים

תשלומים מתבצעים ב-Meshulam. Make scenario מקבל אישור במייל ומעדכן את המערכת.

איפה אני רואה את כל התשלומים שהתקבלו?
  • Firestore → אוסף paymentLogs — כל תשלום שעובד דרך המערכת.
  • ב-Meshulam עצמו — לדוח מלא של תשלומים.
איך אני מסמנת ידנית שמישהי שילמה (workaround)?
  1. Firestore → questionnaireSubmissions/{email} — וודאי שיש pendingWebhookPayload.
  2. הריצי את ה-API לשליחת ניתוח (ראי "שאלון" → "שליחה ידנית").
⚠ אל תסמני ידנית paid=true ב-users — זה ידלג על שליחת המייל. השתמשי ב-API.
איך עובד pendingCredits?
כשמשתמשת שעוד לא הירשמה משלמת — המערכת שומרת pendingCredits/{paymentId}. כשתיירשם, ה-credits יוטענו אוטומטית לחשבון שלה ע"י processEchingPendingCredits.
איך אני מבצעת זיכוי (refund)?
הזיכוי עצמו — ב-Meshulam. במערכת שלנו: מחקי / סמני paid: false ב-Firestore אם רוצה למנוע גישה. אין flow אוטומטי לזיכוי.
איך אני בודקת אם webhook התשלום עובד?
  1. Make.com → scenario "עדכון תשלום מGROW" — צריך להיות ON וירוץ אוטומטית כשמגיע מייל ממשולם.
  2. ב-History שלו תראי כל ריצה.
  3. אם שגיאות — בדקי שה-API key נכון ושה-URL של /api/releaseQuestionnaire פועל.

🎭 פרופילי ניתוח

11 פרופילים (1-11) שמופיעים בניתוח השאלון. כל פרופיל = טקסט אישי שונה + (אופציונלי) PDF.

איך אני עורכת טקסט של פרופיל?
  1. Firestore → analysis_profiles/{profileNum} (1 עד 11).
  2. שדות: emailSubject (subject מותאם), introHtml (פתיח HTML). תומך placeholders: {{שם}}, {{name}}, {{תכונות}}, {{PC}}, {{RC}}, {{HP}}, {{NRP}}.
  3. שמרי. השינוי יחול במייל הבא.
איך אני מעלה PDF לפרופיל?
Storageanalysis_pdfs/{profileNum}.pdf (למשל 3.pdf). אם הקובץ קיים, יישלח כצירוף למייל הניתוח. אם לא קיים — המייל יישלח בלי PDF.
איך אני בודקת איך פרופיל ייראה לפני שליחה אמיתית?
POST ל-/api/releaseQuestionnaire עם _testProfileNum: "X" (test mode — לא מסמן paid). את תקבלי את המייל.

⚙️ הגדרות מערכת

הגדרות גלובליות נשמרות ב-settings/ ו-config/.

איך אני משנה את ה-navbar באתר WordPress?
Firestore → settings/wp_navbar → ערכי את המבנה. WordPress טוען את זה דרך wp-navbar.js.
איך אני מפעילה pilot mode (מצב טסטים)?
Firestore → config/defaultspilotMode: true. השפעה: התנהגויות מסוימות (כמו דלג על תשלום אמיתי) — בדקי בקוד מה בדיוק.
איך אני מפעילה/מכבה את ה-Make webhook הישן של אחרי תשלום?
Firestore → settings/defaultswebhookEnabled: true/false. כשמופעל, אחרי שליחת מייל ניתוח, גם נשלח POST ל-Make webhook ישן (legacy).
איך אני משנה אלמנט בדאשבורד?
Firestore → אוסף dashboardElements. כל מסמך = קישור/באנר/הודעה שמופיעה ב-/dashboard.html.

👥 משתמשות ואדמינים

איך אני מוסיפה אדמין חדש?
  1. וודאי שהמשתמשת רשומה לאתר (יש לה users/{email}).
  2. Firestore → פתחי את המסמך → הוסיפי שדה isAdmin מסוג boolean = true.
⚠ הענקת גישה לכל המידע. רק לאנשי אמון.
איך אני מסירה אדמין?
באותו מסמך → שני isAdmin ל-false או מחקי את השדה.
איך אני רואה את כל הרשומות?
Firestore → אוסף users.
איך אני מאחדת היסטוריה של אורחת שנרשמה?
POST ל-/api/mergeUserData עם email — מעביר נתונים מ-guestReadings/questionnaireGuests ל-users/{email}.
איך אני מוחקת חשבון לבקשת המשתמשת (GDPR)?
  1. מחקי users/{email} ב-Firestore.
  2. מחקי subcollections (echingReadings) ידנית.
  3. מחקי guestReadings/{email}, questionnaireGuests/{email}, questionnaireSubmissions/{email}.
  4. סמני ב-subscribers/{email} כ-unsubscribed (חוקי, אסור פשוט למחוק).
  5. מחקי משתמשת מ-Firebase Authentication ידנית בקונסול.
⚠ פעולה לא הפיכה.

🎨 דפי נחיתה ו-AI Builder

איך אני יוצרת דף נחיתה חדש?
  1. השתמשי ב-AI Builder אם קיים בממשק אדמין, או:
  2. POST ל-/api/aiBuilder/generate עם prompt → יחזיר HTML.
  3. שמרי ב-landingPages/{slug} ב-Firestore.
  4. הדף יעלה תחת /p/{slug} אוטומטית.
איך אני עורכת דף נחיתה קיים?
Firestore → landingPages/{slug} → ערכי html.
איך אני רואה את כל דפי הנחיתה?
Firestore → אוסף landingPages.

📊 סטטיסטיקות וניתוחים

איך אני מקבלת סיכום יומי באימייל?
הפונקציה dailySummaryEmail רצה אוטומטית (cron). שולחת לאדמינים סיכום של היום הקודם: רישומים חדשים, תשלומים, קריאות, משובים.
ℹ אפשר להפעיל ידנית: /api/triggerDailySummary.
איך אני רואה כמה תשלומים השבוע?
Firestore → paymentLogs → סננו לפי createdAt. או ב-Meshulam.
איך אני רואה אילו דפי נחיתה הכי הצליחו?
כרגע אין מעקב מובנה. השתמשי ב-Google Analytics או Microsoft Clarity (אם מותקנים).

🗄️ גיבויים

איך אני יוצרת גיבוי של Firestore + Hosting?
הסקריפט firebase-backup.py בריפו הראשי. מ-PowerShell:
python firebase-backup.py
הגיבוי נשמר בתיקיית backups/ עם timestamp.
איך אני משחזרת מגיבוי?
הסקריפט תומך restore — שאלי את המתכנת לפני הרצה (פעולה רגישה).
⚠ Restore דורס את ה-data הנוכחי. וודאי שעשית גיבוי לפני.

🔧 בעיות נפוצות

"Missing or insufficient permissions" בעמוד אדמין
חסר כלל Firestore לאוסף שהדף קורא ממנו. דווחי על איזה דף ואיזה אוסף — נוסיף כלל ונפרוס.
משתמשת מתלוננת שלא קיבלה מייל
  1. בודקת bounces — אם היא ברשימה, המערכת לא תשלח. בדקי שהאימייל מוקלד נכון.
  2. subscribers — האם status: "unsubscribed".
  3. eching guests או שאלון — האם disowned: true.
  4. בדקי ב-Spam / Promotions.
  5. לוגים — חפשי לפי האימייל לראות אם הפונקציה רצה ומה קרה.
תשלום לא מסומן במערכת
  1. Make.com → scenario "עדכון תשלום מGROW" → History — האם רץ? האם הצליח?
  2. אם נכשל — בדקי שגיאה. אולי RELEASE_WEBHOOK_API_KEY השתנה.
  3. ידני: ראי "שאלון" → "שליחה ידנית של מייל ניתוח".
תבנית מייל לא מציגה את הקישורים החדשים בפוטר
יש override ב-Firestore ללא {{footerActionsHtml}}. ערכי ידנית או הריצי backfill (ראי "תבניות מייל" → השאלה האחרונה).
אורחת ביצעה קריאת I-Ching ולא קיבלה את הקריאה
  1. בדקי guestReadings/{email} — האם הקריאה נשמרה? יש readingSentAt?
  2. בדקי לוגים של echingGuestSubmit.
  3. בדקי bounces.
סקדיולר היומי לא שולח מיילי משוב
  1. Cloud SchedulerfirstSubmissionFeedback.
  2. Status: "Enabled"?
  3. Last run — האם רץ ב-10:00?
  4. אם נכשל — לוגים של ה-Function בקלאוד.
משתמשת מילאה שאלון אבל אין pendingWebhookPayload
תקלה ב-submitQuestionnaire או ב-questionnaireGuestSubmit. בדקי לוגים. ידני — תוכלי לכתוב payload ל-Firestore אם תדעי את הנתונים (לא מומלץ).
OTP code לא מגיע במייל
  1. בדקי bounces.
  2. לוגים של echingGuestSendCode או questionnaireGuestSendCode.
  3. וודאי ש-SMTP_PASSWORD כ-secret תקין.
  4. בדקי ב-Gmail Sent — האם המייל יצא?
דף האדמין לא נטען (מסך לבן / 404)
סביר שהקובץ לא נפרס ב-hosting. בקשי מהמתכנת להריץ firebase deploy --only hosting.

⚡ פיתוח DEV

פעולות שבדרך כלל המתכנת עושה. רק לידיעתך.

איך פורסים שינויים?
firebase deploy --only hosting
firebase deploy --only functions
firebase deploy --only firestore:rules
firebase deploy --only storage
איפה רואים לוגים?
Cloud Logging — סננו לפי שם ה-function. ניתן לחפש לפי אימייל.
איך בודקים סקדיולרים?
Cloud Scheduler. רואים מצב, last run, ניתן להריץ "Run now" ידנית.
איך בודקים secrets (API keys, סיסמאות)?
Secret Manager. רשימת הסיסמאות: SMTP_PASSWORD, ANTHROPIC_API_KEY, MAKE_WEBHOOK_API_KEY, RELEASE_WEBHOOK_API_KEY, וכו'.
איך מוצאים בעיה ב-Cloud Function?
  1. זהי את שם ה-function (למשל firstSubmissionFeedback).
  2. בלוגים — חפשי את התגית שלה ([feedback24h] וכו').
  3. בדקי errors/warnings.
  4. אם צריך debug עמוק — הריצי לוקלית עם firebase functions:shell.