Shipnest

חיפוש בתיעוד

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

CRM

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

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

Updated: 1 ביוני 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. לחיצה על "שלח ללקוח" → המערכת מפיקה PDF בעברית RTL (פונט Rubik, תעריפים בש״ח, תנאי שירות, מספור עמודים), מעלה ל-Supabase Storage, יוצרת טוקן צפייה ציבורי של 32 בייטים, ושולחת מייל ללקוח עם לינק.
  3. SENT — ההצעה אינה ניתנת יותר לעריכה. המייל שולח את הלקוח לעמוד ציבורי /q/[token] שמציג את ההצעה ממותגת עם לוגו הטננט.
  4. VIEWED — ברגע שהלקוח פותח את הקישור בפעם הראשונה, הסטטוס מתקדם אוטומטית ו-viewedAt מסומן.

מספור הצעות

המערכת מספרת אוטומטית בפורמט QUO-YYYY-NNNN פר טננט ופר שנה (לדוגמה QUO-2026-0001).

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

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

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

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

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

העמוד הציבורי ב-/sign/[token] ממותג עם לוגו הטננט, מציג את ההסכם המלא, ודורש מהלקוח:

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

המערכת לוכדת אוטומטית את כתובת ה-IP וה-User Agent ושומרת אותם ב-Contract וב-ContractEvent לצרכי תיעוד משפטי.

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

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

ל-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)
  • סוג הפועל (STAFF / CUSTOMER / SYSTEM / PROVIDER)
  • מזהה הפועל, IP, User Agent, ו-metadata חופשי
  • timestamp

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

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