דלג לתוכן
חזרה לבלוג

// מדריך · SaaS · תכולה

מה צריך להגדיר במערכת SaaS לפני שמתחילים לפתח?

מסכי המוצר הם החלק שרואים. מה שהופך אותם למוצר שאפשר למכור לכמה לקוחות במקביל הוא השכבה שמתחת — וזו שרוב ההגדרות הראשונות מדלגות עליה.

  • 13 דק׳ קריאה
  • מאת OneZero

// התשובה הקצרה

בפסקה אחת

מערכת SaaS היא מוצר תוכנה אחד שמשרת לקוחות נפרדים, כשכל לקוח רואה רק את הנתונים שלו ומשלם לפי מודל שירות. לפני פיתוח צריך להגדיר חמישה דברים שלא מופיעים במסכי המוצר: מי הלקוח (החשבון שמשלם), מי המשתמשים שלו ומה כל אחד רשאי לעשות; איך הנתונים של לקוח אחד מופרדים מאחר; אילו מסלולים יש ומה כל מסלול מתיר; מה קורה למנוי בכל מצב — ניסיון, פעיל, שדרוג, ביטול, כשל תשלום; ואילו תנאי תפעול (גיבוי, ניטור, תמיכה) המוצר מתחייב אליהם מול לקוחות משלמים. גרסה מסחרית ראשונה לא צריכה את כל המסלולים ואת כל האוטומציות — אבל היא צריכה הפרדת לקוחות נכונה, חיוב שעובד במצבי הכשל, ודרך לתמוך בלקוח שתקוע. את אלה אי אפשר להוסיף אחר כך בלי לבנות מחדש.

// תקציר

הגרסה הקצרה — חמש הגדרות לפני קוד

הגדרההשאלהלמה לפני ולא אחרי
לקוח · משתמש · מנוימי משלם, מי משתמש, ומה מחבר ביניהם?שלוש ישויות שונות; ערבוב ביניהן נשאר במודל הנתונים לתמיד
הפרדת לקוחותאיך לקוח א׳ לעולם לא רואה נתון של לקוח ב׳?החלטה ארכיטקטונית; שינוי שלה אחרי השקה הוא בנייה מחדש
הרשאותאילו תפקידים יש בתוך לקוח, ומי מנהל אותם — אתם או הלקוח?קובע מסכי ניהול, תמיכה ואחריות
מסלולים וחיובמה כל מסלול מתיר, איך גובים, ומה קורה בכל מצב של המנוי?מצבי הכשל (תשלום נכשל, ביטול באמצע תקופה) הם רוב הלוגיקה
תנאי תפעוללמה מתחייבים מול לקוח משלם — גיבוי, זמינות, תמיכה?לקוח עסקי ישאל לפני שיחתום; התשובה צריכה להיות בנויה, לא מובטחת

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

לקוח, משתמש ומנוי — שלוש ישויות, לא אחת

הטעות הנפוצה ביותר בהגדרה ראשונה של SaaS היא לחשוב על "המשתמש" כעל מי שנרשם, משתמש ומשלם. במוצר שנמכר לעסקים אלה שלוש ישויות נפרדות, ולכל אחת מחזור חיים משלה:

ישותמה היאמה שייך להדוגמה
לקוח (חשבון / Tenant)הגוף שרוכש את השירות ושהנתונים שייכים לוהנתונים, ההגדרות, המסלול, אמצעי התשלום, החשבוניותמשרד רואי חשבון עם 12 עובדים
משתמשאדם שמתחבר ופועל בתוך לקוח, עם תפקידזהות, תפקיד, העדפות, היסטוריית פעולותרואת חשבון במשרד; מנהל המשרד; מתמחה עם הרשאת צפייה
מנויההסכם המסחרי בין הלקוח למוצר, בזמן נתוןמסלול, מחזור חיוב, מצב (ניסיון, פעיל, בפיגור…), תאריכי התחלה וסיוםמסלול "משרד", חיוב שנתי, פעיל עד 31.12
משתמש אחד יכול להשתייך לכמה לקוחות (יועץ שעובד עם כמה חברות); לקוח אחד יכול להחליף כמה מנויים לאורך זמן. אם המודל לא מאפשר את שני אלה מהיום הראשון, הוא יישבר במכירה הראשונה שתדרוש אותם.

יכולות ליבה: הזדהות, הפרדת לקוחות, הרשאות וחיוב

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

יכולתההחלטות שצריך לקבלמה קורה אם דוחים את ההחלטה
הזדהותסיסמה, קוד חד-פעמי, התחברות דרך Google/Microsoft, או הזדהות ארגונית (SSO) של הלקוח? אימות דו-שלבי חובה למי? איך מזמינים משתמש ללקוח?לקוח עסקי גדול ראשון ידרוש SSO; הוספה בדיעבד נוגעת בכל מסך כניסה ובמודל המשתמש
הפרדת לקוחותכל הלקוחות במסד נתונים אחד עם מזהה לקוח בכל רשומה, או מסד נפרד לכל לקוח? איך מוודאים שכל שאילתה מסוננת? מה עם קבצים, חיפוש ודוחות?זו ההחלטה היחידה שאי אפשר לתקן בלי לבנות מחדש; דליפה בין לקוחות היא סוף המוצר
הרשאותאילו תפקידים יש בתוך לקוח (בעלים, מנהל, משתמש, צופה)? מי יוצר תפקידים — אתם או הלקוח? יש הרשאות ברמת רשומה? מי אצלכם רואה נתוני לקוח לצורכי תמיכה, ואיך זה נרשם?בלי מודל הרשאות, כל בקשה של לקוח ל"שהמתמחה לא יראה את השכר" היא פיתוח חדש
מסלולים וחיובאילו מסלולים, מה כל אחד מתיר (משתמשים, רשומות, יכולות)? חיוב חודשי, שנתי, לפי משתמש או לפי שימוש? דרך ספק סליקה או בחשבונית ידנית? מי מפיק חשבונית מס?מסלול שלא נאכף בקוד הוא מסלול שלא קיים; חיוב ידני לא גדל מעבר לכמה עשרות לקוחות

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

שדרוג, ביטול וכשל תשלום: מחזור המנוי כטבלת מצבים

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

מצבאיך מגיעים אליומה המשתמשים רואיםמה המערכת עושהלאן עוברים
ניסיוןלקוח חדש נרשםהמוצר המלא או מסלול מוגבל, עם ימים שנותרומתזמנת תזכורות; חוסמת יכולות מחוץ למסלולפעיל (הוזן אמצעי תשלום) · פג תוקף (לא הוזן)
פעילתשלום ראשון הצליח, או חידוש הצליחהמוצר לפי המסלולמחייבת במחזור; אוכפת מגבלות מסלול; מפיקה חשבוניתשינוי מסלול · ביטול מתוזמן · בפיגור (חיוב נכשל)
שינוי מסלול (שדרוג / הורדה)הלקוח בחר מסלול אחרשדרוג: היכולות מיד. הורדה: היכולות עד סוף התקופה, ואזהרה אם חורגים מהמגבלה החדשהמחשבת חיוב יחסי או דוחה לחידוש; בודקת שהנתונים הקיימים נכנסים במסלול החדש (למשל 15 משתמשים במסלול של 10)פעיל (במסלול החדש)
בפיגור (כשל תשלום)חיוב מחזורי נכשלהודעה בתוך המוצר; המוצר ממשיך לעבוד בתקופת חסדמנסה שוב לפי מדיניות (למשל 3 ניסיונות בשבועיים); שולחת הודעות; מתעדת כל ניסיוןפעיל (חיוב הצליח) · מושהה (כל הניסיונות נכשלו)
מושההתקופת החסד הסתיימה בלי תשלוםכניסה למסך תשלום בלבד; הנתונים לא נמחקים ולא נגישיםחוסמת גישה; שומרת נתונים לתקופה מוגדרת; מתריעה לפני מחיקהפעיל (שולם) · מבוטל (עברה תקופת השמירה)
ביטול מתוזמןהלקוח ביקש לבטלהמוצר עובד עד סוף התקופה ששולמה; אפשרות לבטל את הביטול; ייצוא נתונים זמיןמפסיקה חיוב עתידי; שומרת את תאריך הסיום; מציעה ייצואפעיל (ביטול בוטל) · מבוטל (הגיע תאריך הסיום)
מבוטלתאריך סיום הגיע, או תקופת שמירה אחרי השהיה נגמרהאין גישה; הודעה על מחיקת נתונים ומועדהמוחקת או מאנונימת נתונים לפי המדיניות וההסכם; שומרת רשומות חיוב כנדרש בחוקניסיון / פעיל (הלקוח חזר — לקוח חדש או שחזור?)
שתי השורות שלרוב חסרות בהגדרה ראשונה: "בפיגור" ו"מושהה". בלעדיהן המוצר או מנתק לקוח משלם ביום שהכרטיס שלו פג, או ממשיך לתת שירות חינם לנצח.

לכל מעבר בטבלה יש בדיקה שחייבת לעבור לפני השקה: שדרוג באמצע תקופה מחייב נכון; הורדה עם נתונים מעל המגבלה לא מוחקת כלום בלי אישור; תשלום שנכשל לא חוסם מיד; ביטול לא מוחק מיד; ולקוח מושהה שמשלם חוזר לכל הנתונים שלו. אלה תרחישי הקבלה של SaaS — לא רק "המסך נפתח".

מה נכלל בגרסה מסחרית ראשונה?

גרסה ראשונה של SaaS מתמודדת עם לחץ כפול: היא צריכה להיות קטנה כדי לצאת, אבל כמה דברים בה לא ניתנים לדחייה כי הם יושבים בבסיס. החלוקה הבאה מפרידה בין מה שחייב להיות בנוי נכון מהתחלה, מה שיכול להיות ידני בהתחלה, ומה שאפשר לדחות:

חייב להיות בנוי נכון מהתחלהיכול להיות ידני בהתחלהאפשר לדחות
הפרדת לקוחות בכל שכבה — נתונים, קבצים, חיפוש, דוחותיצירת לקוח חדש (אתם מקימים אותו במקום הרשמה עצמית)מסלולים מרובים — מתחילים במסלול אחד או שניים
מודל לקוח–משתמש–מנוי, גם אם המסכים לניהולו פשוטיםחיוב — חשבונית ידנית לעשרות הלקוחות הראשונים, כל עוד מצב המנוי נרשם במערכתניהול תפקידים עצמאי על ידי הלקוח — בהתחלה שניים-שלושה תפקידים קבועים
הזדהות מאובטחת והזמנת משתמשים ללקוחשינוי מסלול — מבוצע על ידכם לפי בקשה, לא בלחיצת כפתורSSO ארגוני — עד שלקוח משלם דורש אותו
רישום פעולות (מי עשה מה, מתי) — לפחות על פעולות מסחריות ומחיקותתמיכה — תיבת מייל ואדם, לא מערכת כרטיסיםאוטומציה מלאה של כשל תשלום — כל עוד יש תהליך ידני מתועד
גיבוי ושחזור שנבדקו בפועלדוחות ללקוח — ייצוא לקובץ לפני לוח בקרהAPI ללקוחות, אינטגרציות, מרקטפלייס
הכלל: מה שנוגע למבנה הנתונים ולאבטחה נבנה נכון מההתחלה; מה שנוגע לנוחות התפעול שלכם יכול להיות ידני; מה שנוגע לצמיחה נדחה עד שיש למי לצמוח.

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

תנאי מסירה ותפעול: גיבוי, תמיכה, ניטור ועלויות שימוש

מוצר SaaS לא נמסר — הוא מופעל. ביום ההשקה מתחילה התחייבות מתמשכת מול לקוחות משלמים, ולכן "מסירה" של SaaS כוללת גם את מה שמאפשר להפעיל אותו. אלה התנאים שצריכים להיות מוגדרים ובנויים לפני הלקוח המשלם הראשון:

  • גיבוי ושחזור: באיזו תדירות מגבים, לכמה זמן שומרים, והאם שחזור של לקוח אחד (לא כל המערכת) נבדק בפועל. לקוח עסקי ישאל "מה קורה אם מחקנו בטעות" — צריכה להיות תשובה שהודגמה.
  • ניטור והתראות: מי יודע שהמערכת נפלה לפני שהלקוח מתקשר, ומה הוא עושה. גם זמינות וגם שגיאות עסקיות — חיובים שנכשלו, הודעות שלא נשלחו.
  • תמיכה: ערוץ, שעות, זמן תגובה שאתם מוכנים לכתוב בהסכם, ומה מותר לאיש התמיכה לראות ולעשות בתוך נתוני לקוח — ואיך זה נרשם.
  • עדכוני גרסה: איך גרסה חדשה עולה בלי להפיל לקוחות באמצע עבודה, ואיך מודיעים על שינוי שמשפיע עליהם.
  • עלויות שימוש: אחסון ומסד נתונים שגדלים עם הנתונים, ספק סליקה שגובה אחוז מכל עסקה, שירותי מייל/SMS לפי כמות, ושירותי צד שלישי לפי קריאות. המבנה ידוע מראש; הערכים תלויים בהנחות על מספר הלקוחות והשימוש, ולכן לא מופיעים כאן.

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

דוגמה מסומנת: מוצר לניהול חניונים

מה אנחנו עושים בשלב הזה

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

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

// שאלות נפוצות

שאלות נפוצות

  • מה כולל פיתוח SaaS מעבר למסכים?+
    ארבע יכולות בסיס שלא רואים במוצר: הזדהות והזמנת משתמשים ללקוח; הפרדת נתונים בין לקוחות בכל שכבה (נתונים, קבצים, חיפוש, דוחות); מודל הרשאות בתוך כל לקוח; ומסלולים וחיוב כולל כל מצבי המנוי — ניסיון, פעיל, שינוי מסלול, כשל תשלום, השהיה, ביטול. ובנוסף תנאי תפעול: גיבוי ושחזור, ניטור, תמיכה ועדכוני גרסה. אלה רוב העבודה בפיתוח SaaS, ורובן נמצאות בבסיס המערכת ולא ניתנות להוספה מאוחרת בלי בנייה מחדש.
  • מה ההבדל בין לקוח למשתמש במערכת SaaS?+
    הלקוח (חשבון, Tenant) הוא הגוף שרוכש את השירות ושהנתונים שייכים לו — למשל חברה. המשתמש הוא אדם שמתחבר ופועל בתוך הלקוח, עם תפקיד — למשל מנהל או עובד באותה חברה. המנוי הוא ההסכם המסחרי בין הלקוח למוצר — מסלול, מחזור חיוב ומצב. משתמש אחד יכול להשתייך לכמה לקוחות, ולקוח אחד יכול להחליף מנויים לאורך זמן. אם המודל לא מפריד בין השלושה מהיום הראשון, הוא נשבר במכירה הראשונה שדורשת את זה.
  • האם כל SaaS חייב מנוי חודשי?+
    לא. מודל השירות יכול להיות מנוי חודשי או שנתי, תשלום לפי מספר משתמשים, תשלום לפי שימוש (רשומות, קריאות, עסקאות), או רישיון עם דמי תחזוקה. מה שמגדיר SaaS הוא שהלקוחות חולקים מערכת אחת שאתם מפעילים, עם הפרדת נתונים ביניהם. המודל המסחרי נבחר לפי איך הלקוחות שלכם רגילים לקנות — ומשפיע על טבלת מצבי המנוי, לא על הצורך בה.
  • מה קורה כשתשלום של לקוח נכשל?+
    זה צריך להיות מוגדר לפני הפיתוח, כי זה מצב ולא תקלה. הגישה המקובלת: המנוי עובר למצב "בפיגור" עם תקופת חסד שבה המוצר ממשיך לעבוד, המערכת מנסה לחייב שוב לפי מדיניות ושולחת הודעות; אם כל הניסיונות נכשלים — השהיה, שבה הגישה נחסמת אבל הנתונים נשמרים לתקופה מוגדרת; ורק אחריה ביטול ומחיקה לפי ההסכם. אורך התקופות ומספר הניסיונות הם החלטה מסחרית שלכם; מה שחייב להיות בנוי הוא המעברים, ההודעות ושמירת הנתונים.
  • מה חייב להיות ב-MVP של מוצר SaaS?+
    מה שיושב בבסיס ולא ניתן להוספה מאוחרת: הפרדת לקוחות בכל שכבה, מודל לקוח–משתמש–מנוי, הזדהות מאובטחת, רישום פעולות על פעולות מסחריות ומחיקות, וגיבוי ושחזור שנבדקו. מה שיכול להיות ידני בהתחלה: הקמת לקוחות, חיוב בחשבונית, שינוי מסלול לפי בקשה, תמיכה במייל. מה שנדחה: מסלולים מרובים, ניהול תפקידים עצמאי, SSO, אוטומציה מלאה של כשל תשלום, API ואינטגרציות.
  • האם מערכת שבנינו ללקוח אחד יכולה להפוך ל-SaaS?+
    לפעמים, ותלוי בעיקר בדבר אחד: האם הנתונים כבר מופרדים לפי לקוח. אם כל טבלה נושאת מזהה לקוח וכל שאילתה מסוננת לפיו — המעבר הוא תוספת של מודל מנוי, הרשאות וחיוב. אם המערכת נבנתה בהנחה שיש לקוח אחד — הפרדת הנתונים נוגעת בכל שאילתה, בכל קובץ ובכל דוח, וזה לרוב קרוב לבנייה מחדש של השכבה התחתונה. בדיקה של זה היא השלב הראשון לפני כל החלטה.

עודכן לאחרונה:

מאת OneZero

// בואו נדבר

בונים MVP, SaaS, marketplace או מוצר AI-mobile?

שווה לעשות architecture decision לפני שבוחרים framework לפי hype — זה משפיע על hiring, speed, burn, תחזוקה, scalability ו-future rewrites.