איך מפיקים במורנינג (חשבונית ירוקה) חשבונית מס או חשבונית מס קבלה באופן אוטומטי כשעסקה ב-Pipedrive מסומנת כזכייה: ה-webhook שמופעל, הטוקן וקודי המסמכים של מורנינג, מיפוי השדות, וההגנות שמונעות מעסקה אחת להפיק שתי חשבוניות.
עיקרי הדברים
- ב-Pipedrive אין אירוע ייעודי לזכייה בעסקה: הטריגר הוא webhook של change.deal, ובקוד בודקים שה-status הפך ל-won ושבבלוק previous היה סטטוס אחר.
- מורנינג מפיקה את המסמך דרך POST /documents; סוג 305 הוא חשבונית מס ו-320 חשבונית מס קבלה, והתשובה מחזירה את מזהה המסמך, המספר וקישור ההורדה.
- הטוקן של מורנינג מתקבל מ-POST /idp/v1/oauth/token עם client credentials ותקף לשעה; מפתחות API זמינים במסלול Best ומעלה.
- כפילויות נוצרות מניסיונות חוזרים של Pipedrive, מהעדכון שהקוד עצמו כותב, מעסקאות שנפתחו מחדש ומעריכות גורפות, ולכן כל משימה נשמרת לפי מזהה העסקה ונבדקת לפני הפקה.
כדי לחבר את Pipedrive למורנינג (חשבונית ירוקה), רושמים ב-Pipedrive webhook מסוג change.deal. כשה-status של עסקה משתנה ל-won, הקוד מאתר או יוצר את הלקוח במורנינג, מפיק מסמך דרך POST /documents - בדרך כלל סוג 305, חשבונית מס, או 320, חשבונית מס קבלה - ורושם את מספר המסמך שחזר בחזרה על העסקה.
עמוד האינטגרציות של מורנינג לא כולל את Pipedrive (נבדק בספטמבר 2026), ולכן מדובר בחיבור קטן שבונים או מזמינים. Pipedrive מנהל את צנרת המכירות, ומורנינג מחזיקה את המסמכים החשבונאיים. מה שדורש תכנון הוא לא הקריאה ל-API עצמה, אלא לוודא שעסקה אחת שנסגרה מפיקה מסמך אחד בדיוק, עם פרטי הלקוח הנכונים.
מה החיבור בין Pipedrive למורנינג עושה בפועל?
חיבור תקין מריץ מעגל קצר אחד לכל עסקה שנסגרה, בסדר הזה:
- קבלת ה-webhook. Pipedrive שולח אירוע
change.dealלכתובת שלכם. עונים מיד ב-2xx ומכניסים את העבודה לתור. - וידוא שזו זכייה חדשה. בודקים ש-
data.statusהואwonושבבלוקpreviousמופיע סטטוס אחר. כל עריכה אחרת של עסקה שכבר נסגרה היא לא מכירה חדשה. - שליפת העסקה.
GET /api/v2/deals/{id}לסכום ולמטבע, ו-GET /api/v2/deals/{id}/productsאם אתם מוכרים לפי פריטים. - זיהוי הלקוח. קוראים את איש הקשר והארגון המקושרים, מחפשים במורנינג עם
POST /clients/searchלפי מייל או שם, ויוצרים לקוח עםPOST /clientsכשאין התאמה. - הפקת המסמך.
POST /documentsעםtype,lang,currency,vatTypeו-income- חמשת שדות החובה. - רישום בחזרה. שומרים את ה-
numberשחזר ואת קישור ההורדה על העסקה עםPATCH /api/v2/deals/{id}.
איזה webhook של Pipedrive צריך להפעיל את החשבונית?
ב-Pipedrive אין אירוע ייעודי של "עסקה נסגרה בזכייה". webhook מוגדר לפי event_action (create, change, delete או *) ולפי event_object כמו deal, person או organization, ולכן הטריגר לחשבונית הוא change.deal יחד עם בדיקת סטטוס בקוד. כל עריכה של עסקה, כולל מעבר שלב או שינוי שם, שולחת התראת change, ובבלוק previous מופיעים רק השדות שהשתנו.
יוצרים webhooks עם POST /v1/webhooks, וגרסה 2.0 היא ברירת המחדל. ארבעה פרטים מהמדריך של Pipedrive קובעים את התכנון:
- הכתובת צריכה לענות תוך 10 שניות ב-2xx. אחרת Pipedrive מנסה שוב 3 פעמים, אחרי 3, 30 ו-150 שניות, והשדה
meta.attemptמראה באיזה ניסיון מדובר. - webhook שלא הצליח אף משלוח במשך 3 ימים רצופים נמחק, כך ששרת מקבל תקול עוצר את כל התהליך בלי הודעה.
- כל אירוע נבדק מול ההרשאות של ה-
user_idשהוגדר ל-webhook. כדי לקבל כל עסקה שנסגרה, יוצרים אותו תחת משתמש אדמין. - המגבלה היא 40 webhooks למשתמש, ואפשר להגן על הכתובת עם
http_auth_userו-http_auth_password.
בצד של Pipedrive האימות הוא טוקן API בכותרת x-api-token, או OAuth 2.0 לאפליקציה ב-Marketplace. הטוקן שייך למשתמש אחד, רק אחד פעיל בכל רגע, והנפקה של טוקן חדש משביתה כל חיבור שעדיין משתמש בישן.
איך עובד הצד של מורנינג?
ה-API של מורנינג מאמת עם OAuth 2.0 מסוג client credentials. יוצרים מפתח API (מזהה ומפתח סודי) בהגדרות המפתחים במורנינג, מחליפים אותו ב-POST https://api.morning.co/idp/v1/oauth/token עם grant_type: client_credentials, ושולחים את ה-accessToken שחזר כ-Bearer. הטוקן תקף לשעה ומוגבל לעסק שהמפתח שייך אליו. קריאות המסמכים נשלחות ל-https://api.greeninvoice.co.il/api/v1, סביבת הבדיקות היא https://sandbox.d.greeninvoice.co.il/api/v1, ולכל סביבה צריך מפתחות משלה. חידוש הטוקן וההבדל בין 401 ל-403 מוסברים במדריך לשגיאות 401 ו-403 ב-API של מורנינג.
לפי מרכז העזרה של מורנינג, מפתחות API זמינים במסלול Best ומעלה. מפתח שהמינוי שלו לא כולל גישה ל-API נכשל כבר בנקודת הטוקן עם unauthorized_client.
החלק הזה הוא תיאור טכני של ה-API ולא ייעוץ חשבונאי: איזה מסמך העסק שלכם מפיק לכל סוג מכירה זו החלטה של רואה החשבון. סוג המסמך הוא מספר בשדה type, ואלה הקודים שמכירה מה-CRM נוגעת בהם בדרך כלל:
| קוד | מסמך | איפה הוא מופיע בתהליך ה-CRM |
|---|---|---|
| 10 | הצעת מחיר | עסקה מגיעה לשלב ההצעה |
| 305 | חשבונית מס | עסקה נסגרה, התשלום יגיע בהמשך |
| 320 | חשבונית מס / קבלה | עסקה נסגרה וכבר שולמה |
| 400 | קבלה | תשלום שמגיע מאוחר יותר מול 305 |
| 330 | חשבונית זיכוי | עסקה שנסגרה מבוטלת |
כשקבלה באה אחרי חשבונית, מעבירים את מזהה החשבונית ב-linkedDocumentIds, ומורנינג סוגרת את החשבונית המקורית. מסמך אחד מכיל עד 200 שורות הכנסה ותקבולים.
מיפוי השדות מ-Pipedrive למסמך במורנינג
רוב המיפוי ישיר. היוצא מן הכלל הוא מספר העוסק או הח"פ, כי ב-Pipedrive אין לו שדה מובנה:
| Pipedrive (API v2) | מורנינג | הערה |
|---|---|---|
| שם העסקה | income[].description | או שורה לכל מוצר בעסקה |
| סכום ומטבע העסקה | income[].price, currency | קוד בן 3 אותיות, כמו ILS, USD, EUR |
| שם הארגון, ואם אין - שם איש הקשר | client.name | שדה החובה היחיד ב-POST /clients |
| כתובות המייל של איש הקשר | client.emails | מורנינג שולחת אליהן את הקישור למסמך |
| שדה מותאם לח"פ או למספר עוסק | client.taxId | יוצרים אותו ב-Pipedrive לפני העלייה לאוויר |
| שדה מותאם "מסמך במורנינג" | number ו-url מהתשובה | נכתבים בחזרה בתוך custom_fields |
ב-API v2 השדות המותאמים יושבים בתוך אובייקט custom_fields, והמפתח של כל שדה הוא מחרוזת hash בת 40 תווים ששונה בכל חשבון Pipedrive. מעתיקים כל מפתח מ-Company settings, Data fields, Copy API key, ושומרים את המפתחות בקובץ הגדרות ולא בקוד. ב-v2 השדות person_id ו-org_id הם מזהים פשוטים, כך שזיהוי הלקוח עולה עוד שתי קריאות. כדאי לשמור גם את מזהה הלקוח של מורנינג על הארגון, ואז העסקה הבאה של אותו לקוח מדלגת על החיפוש.
איך מונעים מעסקה אחת להפיק שתי חשבוניות?
מסמך מס כפול אי אפשר פשוט למחוק - צריך לבטל אותו בחשבונית זיכוי. כפילויות מגיעות מארבעה מקורות, ולכל אחד צריך הגנה משלו:
- ניסיונות חוזרים של Pipedrive. תשובה איטית גורמת לאותו אירוע להגיע שוב. שומרים כל משימה לפי מזהה העסקה ובודקים במסד שלכם לפני שפונים למורנינג. דפוס התור והעובד שמאחורי זה מתואר במדריך לאוטומציה של מסמכים במורנינג.
- הרישום שהקוד עצמו כותב. שמירת מספר המסמך על העסקה מפעילה עוד
change.deal. בבלוק ה-previousשלו איןstatus, וכך מבדילים בינו לבין זכייה. - נסגרה, נפתחה, נסגרה שוב. איש מכירות שפותח עסקה מחדש ומסמן אותה שוב כזכייה יוצר שינוי סטטוס אמיתי. אם על העסקה כבר רשום מספר מסמך, מעבירים אותה לבדיקה של אדם במקום להפיק.
- עריכות גורפות.
meta.is_bulk_editמסמן אירועים שהגיעו משינוי גורף. עוצרים אותם לבדיקה במקום להפיק עשרות חשבוניות בבת אחת.
מגבלות הקריאות פחות קריטיות כאן מאשר בסנכרון מלא, אבל הן קיימות. Pipedrive נותן לכל חברה תקציב יומי של 30,000 טוקנים בסיסיים, כפול מכפיל המסלול (Lite 1, Growth 2, Premium 5, Ultimate 7), כפול מספר המשתמשים, מחזיר 429 כשהתקציב נגמר, ומפעיל מגבלת פרץ לכל טוקן בחלון מתגלגל של 2 שניות: 20 בקשות לטוקן API במסלול Lite, 40 ב-Growth. נקודות הקצה של v2 צורכות פחות טוקנים מהגרסאות שלהן ב-v1.
מה צריך להכין לפני שבונים?
- מסלול מורנינג שכולל גישה ל-API, ומפתח API. המפתח הסודי מוצג פעם אחת בלבד, ברגע היצירה.
- חשבון בסביבת ה-Sandbox. לפי מרכז העזרה של מורנינג, מגדירים שם עסק פיקטיבי ומבצעים רכישה פיקטיבית של מינוי Best, ורק אז אפשר ליצור מפתח לבדיקות.
- תשובה כתובה מרואה החשבון: איזה סוג מסמך מופק לכל תוצאה של עסקה, והאם המחירים כוללים מע"מ.
- שדות מותאמים ב-Pipedrive לח"פ של הלקוח, למזהה הלקוח במורנינג ולמספר המסמך במורנינג.
- משתמש אדמין ב-Pipedrive שיהיה הבעלים של ה-webhook, וכתובת HTTPS ציבורית שעונה בפחות מ-10 שניות.
אם החשבונית צריכה לצאת כשהכסף נכנס ולא כשהעסקה נסגרת, הטריגר שייך לספק התשלומים - ראו אוטומציה מתשלום לחשבונית. לשילובים אחרים של CRM ומערכת חשבוניות, ראו חיבור תוכנת חשבוניות ל-CRM.
מקורות
שאלות נפוצות
אפשר להפיק חשבונית במורנינג אוטומטית כשעסקה ב-Pipedrive נסגרת?
כן, דרך חיבור קטן. webhook של change.deal ב-Pipedrive מגיע לשרת שלכם, הקוד בודק שהסטטוס הפך ל-won, מפיק את המסמך עם POST /documents של מורנינג, ושומר את מספר המסמך שחזר על העסקה. בעמוד האינטגרציות של מורנינג אין מחבר מוכן ל-Pipedrive.
איזה סוג מסמך במורנינג צריכה ליצור עסקה שנסגרה ב-Pipedrive?
זו החלטה של רואה החשבון, לא החלטה טכנית. מבחינה טכנית, השדה type מקבל קוד: 305 היא חשבונית מס, 320 חשבונית מס קבלה למכירה שכבר שולמה, 400 קבלה ו-330 חשבונית זיכוי. שומרים את המיפוי שנבחר בהגדרות, כדי שאפשר יהיה לשנות אותו בלי לשחרר קוד.
איזה מסלול של מורנינג צריך כדי להשתמש ב-API?
לפי מרכז העזרה של מורנינג, מפתחות API זמינים במסלול Best ומעלה. בלי גישה ל-API, בקשת הטוקן מחזירה unauthorized_client. לבדיקות יש סביבת Sandbox שבה מגדירים עסק פיקטיבי ורכישה פיקטיבית של Best, ויוצרים שם מפתח נפרד לבדיקות.
החיבור ייצור לקוחות כפולים במורנינג?
רק אם הוא יוצר לקוח חדש לכל עסקה. קודם מחפשים עם POST /clients/search לפי מייל או שם, יוצרים עם POST /clients רק כשאין התאמה, ושומרים את מזהה הלקוח של מורנינג בשדה מותאם על הארגון ב-Pipedrive, כך שהעסקה הבאה של אותו לקוח משתמשת בו.
כמה עולה לבנות חיבור בין Pipedrive למורנינג?
זה תלוי בהיקף: טריגר אחד של עסקה שנסגרה עם זיהוי לקוח הוא פרויקט קטן, ומוצרים בעסקה, קבלות שמקושרות לחשבוניות ותור בדיקה לעסקאות שנפתחו מחדש מוסיפים עבודה. הטווחים שפורסמו לפרויקטי אינטגרציה כאלה נמצאים בעמוד המחירים ב-/he/pricing.
להמשך קריאה
שירות רלוונטי
מערכת CRM בהתאמה אישית
CRM שנבנה סביב הפייפליין שלכם, מחובר לכלים שאתם כבר עובדים איתם.
על הכותב
יהונתן סעדיה
מפתח פרילנסר לאוטומציה, אתרים ו-MVP
אני יהונתן סעדיה, מפתח בכיר שבונה אוטומציה עסקית, אתרים מותאמים ומוצרי MVP לעסקים קטנים ובינוניים בארה"ב, אירופה וישראל. המדריכים האלה נכתבים מתוך עבודה אמיתית עם לקוחות, לא מתיאוריה.
בוא נעבוד יחדיש לך פרויקט דומה?
ספר לי מה אתה רוצה לבנות או איזה תהליך להפוך לאוטומטי. אני חוזר תוך 24 שעות עסקים עם כמה שאלות ממוקדות, ואז עוברים על זה יחד בשיחת היכרות חינמית של 30 דקות, בלי התחייבות. בסוף יש לך היקף עבודה, לוח זמנים ומחיר קבוע - או תשובה כנה שלא שווה לבנות את זה.
