Shipnest

חיפוש בתיעוד

חפשו לפי נושא, endpoint, או מונח

CRM

ניהול לידים, הצעות מחיר והסכמים

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

עודכן: 10 ביולי 2026

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

הזרימה בקצרה

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

המודולים מוצגים פר-טננט. מנהל הפלטפורמה מפעיל אותם דרך /admin/tenants/[id] בעריכת הטננט:

  • מודול הצעות מחיר — מציג את התפריט "הצעות מחיר" תחת קבוצת הלקוחות בסיידבר, ומאפשר ל-API של /api/quotes לעבוד.
  • מודול הסכמים וחתימה דיגיטלית — תלוי בהפעלת הצעות מחיר. מציג את התפריט "הסכמים" ומאפשר את /api/contracts.
  • ספק חתימה דיגיטלית — דרופדאון שמופיע כש-הסכמים פעיל. כרגע זמין רק חתימה פנימית (Shipnest); אינטגרציה עם חשבונית ירוקה מסומנת "בקרוב".
שלב 1

לידים

לידים נשמרים ב-/leads עם שם, אימייל, טלפון, מקור, סכום צפוי, מועד מעקב הבא, וסוכן מטפל (אופציונלי). הסטטוס נע על הסקלה:

text
NEW → IN_TREATMENT → QUOTED → CONTRACT_SENT → CONTRACT_SIGNED → CONVERTED
                        ↑                                              ↑
                ידנית/מהפעלה                            אוטומטית מהזרימה

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

יצירת הצעת מחיר מ-/quotes או מתוך כפתור "צור הצעת מחיר" בפעולות שורת הליד. ההצעה כוללת תעריפי בסיס (מסירה / איסוף / החזרה / חבילה נוספת / תוספת גוביינא / תוספת יעד חריג), הערות חופשיות, ותנאי שירות שיוצגו ללקוח.

זרימת חיים של הצעה

  1. DRAFT — נוצרת ועריכה חופשית. עוד לא ראתה אור.
  2. לחיצה על "שלח ללקוח" פותחת דיאלוג עם בחירת ערוצים: אימייל ו/או WhatsApp (דרך חיבור ה-Green API של העסק). המערכת מפיקה PDF בעברית RTL (פונט Rubik, תעריפים בש״ח, תנאי שירות, מספור עמודים), מעלה ל-Supabase Storage, יוצרת טוקן צפייה ציבורי של 32 בייטים, ושולחת ללקוח קישור.
  3. SENT — ההצעה אינה ניתנת יותר לעריכה. הלקוח מגיע לעמוד ציבורי /q/[token] שמציג את ההצעה ממותגת עם לוגו הטננט.
  4. VIEWED — ברגע שהלקוח פותח את הקישור בפעם הראשונה, הסטטוס מתקדם אוטומטית ו-viewedAt מסומן.
  5. ACCEPTED / REJECTED — הלקוח מאשר או דוחה את ההצעה ישירות מהעמוד הציבורי (בדחייה — עם סיבה חופשית). יוצר ההצעה מקבל מייל התראה מיידי, והסטטוס והסיבה מוצגים בעמוד ההצעה.
  6. EXPIRED — הצעה שחלף תאריך התוקף שלה מסומנת אוטומטית (קרון יומי).
  7. WITHDRAWN — "משוך הצעה" מבטל הצעה שנשלחה ומכבה את הקישור הציבורי מיידית (למשל אחרי טעות במחיר).

מספור הצעות ושכפול

המערכת מספרת אוטומטית בפורמט QUO-YYYY-NNNN פר טננט ופר שנה (לדוגמה QUO-2026-0001). פעולת "שכפל הצעה" יוצרת טיוטה חדשה עם מספר חדש ואותו תוכן — הדרך לעדכן הצעה שכבר נשלחה, נדחתה או פגה.

הסכם ניתן ליצור משלושה מקורות:

  • מהצעת מחיר — הדרך המומלצת. בעמוד ההצעה (כשסטטוס ≠ DRAFT) יש כפתור "צור הסכם". התעריפים ותנאי השירות מועתקים אוטומטית מההצעה.
  • מליד — לקפיצה מעל שלב הצעת המחיר.
  • מלקוח קיים — לעדכון מחירון של לקוח שכבר אצלך במערכת.

זרימת חיים של הסכם

  1. DRAFT — עריכה חופשית של תעריפים, תקופת תוקף, חידוש אוטומטי, ותנאי שירות.
  2. SENT_FOR_SIGNATURE — בלחיצה על "שלח לחתימה" נפתח דיאלוג השליחה: נושא וגוף מייל מותאמים, CC לעותק החתום, התראת צפייה, תזכורות אוטומטיות, נעילת קישור, ואפשרות לשלוח את קישור החתימה גם ב-WhatsApp. המערכת מפיקה PDF טיוטה, שולחת ללקוח לינק לעמוד החתימה /contracts/[token]/sign, וסוגרת את ההסכם לעריכה.
  3. VIEWED — מסומן אוטומטית בכניסה הראשונה של הלקוח (ומפעיל התראת צפייה לסוכן אם הופעלה).
  4. SIGNED — אחרי שהלקוח (וכל הערבים, אם הוגדרו) חותמים, המערכת:
    • שומרת את תמונות החתימה (PNG) ב-Supabase — חותם + כל ערב בנפרד
    • מפיקה PDF חתום סופי עם החתימות משובצות + פרטי החותם + IP + UA + הצהרה משפטית
    • שומרת טביעת אצבע SHA-256 של ה-PDF החתום ושל נוסח התנאים — הוכחת שלמות ראייתית
    • שולחת מייל אישור ללקוח עם קישור הורדה מאובטח, ומייל התראה לסוכן ששלח
    • כותבת רשומת ContractEvent מלאה (כולל נוסח ההסכמה שאושר) ל-audit log
  5. ACTIVE — לאחר ההמרה ללקוח (שלב 4).
  6. CANCELLED / TERMINATED / EXPIRED — "בטל הסכם" עוצר הסכם שנשלח בטעות ומכבה את קישור החתימה מיידית; "סיים הסכם" סוגר הסכם חתום/פעיל; וקרון יומי מפקיע אוטומטית הסכמים שקישורם ננעל או שתקופתם הסתיימה ללא חידוש אוטומטי.

חתימת המוביל (חתימת נגד)

ב-/settings/contracts ("הסכמים וחתימה" בתפריט ההגדרות) ניתן להגדיר את חתימת המוביל — ציור על המסך או העלאת קובץ, עם שם החותם. מרגע ההגדרה, כל הסכם שנשלח לחתימה יוצא כשהוא כבר חתום בצד המוביל: החתימה מוטבעת בשדה "חתימת המוביל" בדף החתימה הציבורי וב-PDF, עם מועד החתימה (מועד השליחה). כך ההסכם הסופי חתום דו-צדדית.

מה הלקוח רואה בעמוד החתימה

העמוד הציבורי ב-/contracts/[token]/sign ממותג עם לוגו הטננט, מציג את מסמך ההסכם המלא — צדדים ("בין / לבין"), פתיח "הואיל", סעיפים ממוספרים, נספח תעריפים, נספח ערבות אישית ונספח אחריות מורחבת לחבילות — ודורש מהלקוח:

  • שם מלא (חובה)
  • אימייל (חובה)
  • תעודת זהות / ח.פ. (חובה — מאומת באלגוריתם ספרת הביקורת הישראלי הרשמי, 9 ספרות)
  • טלפון (אופציונלי)
  • חתימה — שדה ציורי (signature pad) שתומך בעכבר ובמסך מגע
  • חתימת כל ערב — אם ההסכם כולל ערבים (נספח ב׳), כל ערב חותם בשדה נפרד. לא ניתן לחתום על ההסכם בלי חתימות כל הערבים — ערבות ללא חתימת הערב אינה אכיפה.
  • אישור קריאה — checkbox עם נוסח הסכמה מנוסח ומתועד (versioned)

המערכת לוכדת אוטומטית את כתובת ה-IP וה-User Agent ושומרת אותם ב-Contract וב-ContractEvent לצרכי תיעוד משפטי. ההורדה של ה-PDF החתום מתבצעת בקישורים מאובטחים קצובי-זמן — לא ב-URL ציבורי קבוע.

חתימה אלקטרונית רגילה — תקפה משפטית

החתימה במערכת היא חתימה אלקטרונית רגילה לפי חוק חתימה אלקטרונית, תשס״א-2001. היא מהווה הסכמה מחייבת לחוזה שירותים מסחרי בישראל. נטל ההוכחה — שהלקוח אכן זה שחתם — מוטל על הצד היוצר (כלומר, על הטננט), ולכן Shipnest שומרת אודיט חזק: שם + ת״ז + אימייל + IP + User Agent + תמונת חתימה + timestamp + יומן ContractEvent, וכן טביעת אצבע SHA-256 של ה-PDF החתום ושל נוסח התנאים שהוצג, ואת נוסח ההסכמה המדויק (כולל גרסה) שהלקוח סימן בעת החתימה.

ל-3 רמות חתימה דיגיטלית בחוק (רגילה / מאובטחת / מאושרת), הזרימה הזו מתאימה לחוזי שירות מסחריים סטנדרטיים. למצבים שדורשים חתימה מאושרת (למשל מקרקעין או צוואות) — נדרשת אינטגרציה עם גורם מאשר רשמי, ולא נתמכת כיום.

לאחר חתימת ההסכם — בעמוד /contracts/[id] מופיע כפתור "המר ללקוח פעיל". הוא פותח דיאלוג עם:

  • פרטי הלקוח — שם, אימייל, טלפון, כתובת, ולקוח אב (אופציונלי). הכל ממולא אוטומטית מנתוני החתימה.
  • גישה לפורטל — checkbox שאם מסומן, יוצר משתמש פורטל ראשון (Owner) ושולח לו מייל הזמנה.

בלחיצה על "צור לקוח והפעל" — הכל קורה בטרנזקציה אחת אטומית:

  1. יוצר/מעדכן Customer עם status=ACTIVE
  2. יוצר CustomerPricingProfile עם תעריפי ההסכם (באגורות)
  3. יוצר CustomerPricingRule לכל כלל מותאם בהסכם
  4. מעדכן Contract.status=ACTIVE ומקשר לסטומר
  5. מעדכן Lead.status=CONVERTED ו-convertedCustomerId
  6. שולח invite לפורטל (אם נבחר) — מחוץ לטרנזקציה, כדי שכשלון מייל לא יבטל את ההמרה

ההמרה אטומית

אם משהו נכשל באמצע (לדוגמה, יצירת PricingProfile) — כלום לא נשמר. אין מצב של "חצי לקוח".
ניהול שוטף

השעיית לקוחות

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

  • מסמנת status=SUSPENDED ו-isActive=false
  • שומרת את הסיבה, מי השעה ומתי
  • שולחת מייל ללקוח עם הסיבה (ניתן לדלג עם checkbox)
  • מציגה באנר אדום בולט בראש כרטיס הלקוח

מאותו רגע — יצירת משלוחים חדשים חסומה:

  • במסך יצירת משלוח (admin + portal) — הלקוח לא מופיע בדרופדאון, וגם אם מנסים לעקוף → 403 עם הודעה ברורה.
  • ב-API ציבורי POST /api/v1/shipments — מחזיר 403.
  • משלוחים קיימים ממשיכים להיות מטופלים כרגיל.

ביטול השעיה — בלחיצה אחת. הלקוח חוזר למצב ACTIVE ושדות ההשעיה מתאפסים.

כל פעולה משמעותית על הסכם נכתבת כ-ContractEvent immutable עם:

  • סוג האירוע (CREATED / SENT / VIEWED / SIGNED / ACTIVATED / REMINDER_SENT / CANCELLED / TERMINATED / EXPIRED)
  • סוג הפועל (STAFF / CUSTOMER / SYSTEM / PROVIDER)
  • מזהה הפועל, IP, User Agent, ו-metadata חופשי
  • timestamp

היומן מוצג בכרטיס "יומן אירועים" בעמוד ההסכם.

  • אינטגרציה עם חשבונית ירוקה — Proposals Plus כספק חתימה. ממתין לבירור API איתם.
  • תבניות הסכמים — ContractTemplate CRUD ב-/settings/contracts/templates (כרגע יש default terms קבועים בקוד).
  • בחירת ספק חתימה per-contract — override של ברירת מחדל של הטננט.
  • Addendum / חוזה משנה — קישור הסכם לאב.