כאשר כרטיס העסקה הסטנדרטי אינו מספיק
מנהל מכירות לציוד רואה את אותם שדות כמו מנהל השכרת ציוד: שדות אינם מקובצים, אין ערכים מחושבים, אין לוגיקת תצוגה מותנית. נתקלנו בבקשות כאלה עשרות פעמים וצברנו מומחיות המאפשרת לנו לפתור את המשימה תוך 3–7 ימים במקום חודשים. המהנדסים שלנו מבטיחים: כרטיס מותאם אישית יציג למנהל בדיוק את מה שדרוש בשלב הנוכחי, ללא מידע מיותר.
כרטיסי CRM מותאמים אישית: שתי רמות התאמה
Bitrix24 מציעה שתי דרכים לשינוי כרטיס ישות ה-CRM, והן שונות מהותית בעומקן.
רמה 1: הגדרות ממשק משתמש. בכרטיס העסקה (איש קשר, תהליך חכם), לחץ על "הגדרות כרטיס" → "ערוך שדות ומקטעים". כאן ניתן: לשנות שמות מקטעים, לגרור שדות בין מקטעים, להסתיר שדות מיותרים, להגדיר שדה כנדרש לפי שלבים (לעסקאות). זה בחינם ומכסה כ-40% מהבקשות. אך לא ניתן להוסיף שדות מחושבים, לוגיקה מותנית, ווידג'טים מותאמים אישית או נתונים ממערכות חיצוניות.
רמה 2: פיתוח באמצעות REST Placement API. זה מטמיע תוכן HTML/JS שרירותי באזורים ספציפיים של הכרטיס. כאן מתחילה ההתאמה האמיתית.
מה ניתן להטמיע באמצעות Placement API?
לכרטיס ישות ה-CRM יש מספר אזורים (placements) שבהם ניתן להטמיע תוכן מותאם אישית:
-
CRM_DEAL_DETAIL_TAB— טאב בכרטיס העסקה. אזור מלא לכל ממשק משתמש. -
CRM_DEAL_DETAIL_ACTIVITY— בלוק בציר הזמן. מתאים לפעולות מותאמות אישית. -
CRM_CONTACT_DETAIL_TAB,CRM_COMPANY_DETAIL_TAB— באופן דומה עבור אנשי קשר וחברות. -
CRM_DYNAMIC_ITEM_DETAIL_TAB— טאב בכרטיס התהליך החכם.
רשום placement דרך REST:
BX24.callMethod('placement.bind', { PLACEMENT: 'CRM_DEAL_DETAIL_TAB', HANDLER: 'https://your-app.com/deal-tab.html', TITLE: 'Калькулятор маржи' }); לאחר הרישום, מופיע טאב חדש בכרטיס. בעת פתיחתו, Bitrix24 טוען את BX24.callMethod('placement.bind', { PLACEMENT: 'CRM_DEAL_DETAIL_TAB', HANDLER: 'https://your-app.com/deal-tab.html', TITLE: 'Калькулятор маржи' }); ב-iframe ומעביר את ההקשר: HANDLER (מזהה עסקה), ENTITY_ID, AUTH_ID.
צלילה עמוקה: טאב מותאם אישית עם נתונים
שקול מקרה טיפוסי — טאב "כספים" בכרטיס העסקה המציג: סה"כ לפי פריטי מוצר, עלות מ-1C חיצוני, רווחיות, היסטוריית תשלומים.
שלב 1: קבלת נתוני עסקה
BX24.init(function() { var dealId = BX24.placement.info().options.ID; BX24.callBatch({ deal: ['crm.deal.get', {id: dealId}], products: ['crm.deal.productrows.get', {id: dealId}] }, function(result) { var deal = result.deal.data(); var products = result.products.data(); renderFinanceTab(deal, products); }); }); שלב 2: בקשת עלות מ-API חיצוני
הטאב שולח בקשה לשרת האחורי שלך, ומעביר את מק"טי המוצרים. השרת האחורי מתעל ל-1C או ל-ERP ומחזיר את העלות.
שלב 3: עיבוד והצגה
חשב את הרווחיות בצד הלקוח והצג טבלה. לעקביות ויזואלית, השתמש במשתני CSS של B24 או בספריית REFRESH_ID.
מדוע לוגיקת שדות מותנית אינה פועלת כברירת מחדל?
בקשה נפוצה: הצג/הסתר שדות בהתבסס על ערך של שדה אחר. לדוגמה, השדה "סיבת דחייה" גלוי רק בשלב "אבוד". הפונקציונליות הסטנדרטית מאפשרת להפוך שדה לנדרש לפי שלבים, אך לא להסתיר אותו.
פתרון — handler מותאם אישית דרך placement BX24.init(function() { var dealId = BX24.placement.info().options.ID; BX24.callBatch({ deal: ['crm.deal.get', {id: dealId}], products: ['crm.deal.productrows.get', {id: dealId}] }, function(result) { var deal = result.deal.data(); var products = result.products.data(); renderFinanceTab(deal, products); }); }); או הטמעת קוד JS דרך סוג שדה משתמש. בגרסת on-premise, ניתן לשנות את תבנית הרכיב @bitrix24/b24-ui ולהוסיף לוגיקת JS ל-CRM_DEAL_DETAIL_TAB.
לגרסת הענן, הדרך הנקייה היחידה היא placement עם ציור מחדש מלא של מקטע השדות הנדרש. כלומר: אתה מביא נתונים דרך REST, מציג שדות עם לוגיקה מותנית ב-iframe שלך, ובשמירה שולח שינויים בחזרה דרך bitrix:crm.deal.detail.
ווידג'טים בציר הזמן
Placement script.js מטמיע בלוק ישירות בפיד הפעילות של הכרטיס. מתאים ל:
- הצגת סטטוס משלוח (נתונים מ-API של חברת הובלה)
- הצגת יתרת לקוח ממערכת הנהלת חשבונות
- הצגת הכרטיסים האחרונים ממערכת helpdesk
הווידג'ט מתעדכן בכל פתיחת כרטיס. לשמירה במטמון, השתמש ב-crm.deal.update — אחסון האפליקציה בצד B24.
ביצועים: השוואת גישות
טאבים ב-iframe נטענים בעת הפעלה (לחיצה על הטאב). עבור טאבים כבדים, זה בסדר — המשתמש לא מחכה למשהו שלא פתח. אך אם אתה מטמיע ווידג'ט באזור הראשי של הכרטיס, הוא נטען מיד. כל בקשת REST מ-iframe היא סבב רשת. השתמש ב-CRM_*_DETAIL_ACTIVITY כדי לקבץ בקשות: אצווה אחת במקום חמש קריאות רצופות. טאבים מותאמים אישית דרך Placement API מהירים פי 3 לפיתוח מאשר דריסת תבניות בגרסת on-premise ואינם דורשים עדכוני ליבה.
| רכיב כרטיס | שיטת התאמה | ציר זמן |
|---|---|---|
| קיבוץ שדות מחדש | הגדרות ממשק משתמש | 1–2 שעות |
| נדרש לפי שלב | הגדרות ממשק משתמש | 30 דקות |
| טאב מותאם אישית עם נתונים חיצוניים | REST Placement | 3–5 ימים |
| לוגיקת שדות מותנית (ענן) | REST Placement + עיבוד מותאם אישית | 5–7 ימים |
| ווידג'ט בציר הזמן | REST Placement Activity | 2–3 ימים |
שלבי פיתוח כרטיס מותאם אישית
| שלב | מה אנחנו עושים | תוצאה |
|---|---|---|
| אנליטיקה | איסוף דרישות לשדות, לוגיקה, אינטגרציות | מפרט טכני ואב-טיפוס כרטיס |
| עיצוב | עיצוב מבנה הטאב, ווידג'טים, קריאות API | דיאגרמת ארכיטקטורה |
| פיתוח | רישום placement, כתיבת קוד טאב/ווידג'ט, אינטגרציה עם 1C או API חיצוני | כרטיס עובד בסביבת בדיקה |
| בדיקות | אימות נכונות נתונים, לוגיקה מותנית, ביצועים | דוח בדיקות |
| פריסה | התקנת אפליקציה בפורטל הייצור, הגדרת הרשאות גישה | כרטיס עובד בייצור |
מה כלול
- פיתוח מפרט טכני ואב-טיפוס כרטיס
- רישום placement והגדרת אינטגרציית REST
- יישום טאב/ווידג'ט מותאם אישית עם בדיקות
- אינטגרציה עם 1C (CommerceML) או מערכות חיצוניות אחרות
- תיעוד API והעברת גישה
- הדרכת עובדים על הכרטיס החדש
- חודש תמיכה לאחר ההשקה
מגבלות גרסת הענן
בענן, לא ניתן לשנות מקטעי כרטיס סטנדרטיים — רק להוסיף טאבים וווידג'טים חדשים. לא ניתן להסיר שדות סטנדרטיים מהתצוגה הראשית (רק להסתיר דרך הגדרות הכרטיס). לשליטה מלאה בממשק, השתמש בגרסת on-premise עם דריסת תבנית רכיב (BX24.appOption).
הערך את הפרויקט שלך ביום אחד
אנו מפתחים כרטיסי CRM מותאמים אישית במפתח מלא. ניסיון של 10+ שנים ב-Bitrix24, למעלה מ-50 פרויקטים מוצלחים. עלות הפיתוח מחושבת באופן אישי, חיסכון בזמן המנהל לאחר היישום מגיע ל-30%. הזמן פיתוח כרטיס CRM מותאם אישית — נשלח הערכת עלות וזמן ראשונית. קבל ייעוץ חינם ממהנדס.







