שילוב טופס 1C-Bitrix עם CRM של Bitrix24
לעתים קרובות אנו נתקלים באתגר חוזר: לאתר יש טופס יצירת קשר מוגדר היטב, אך המנהלים עובדים בתוך CRM של Bitrix24, והלידים מתקבלים בדוא"ל ללא נתונים מובנים. הנתונים אינם מסונכרנים, משפך המכירות אינו מלא, והאנליטיקה חסרה. לדוגמה, לקוח פוטנציאלי שולח טופס באתר, אך המנהל לומד על כך שעה לאחר מכן—הליד הופך ל"קר". ללא סנכרון נתונים אוטומטי, כל שיחה או פנייה הופכת לעבודה ידנית, בעוד שהמתחרים כבר הטמיעו אוטומציה ב-CRM. הערכות מצביעות על כך שאובדן לידים יכול להגיע ל-30% ללא אינטגרציה. העלות האופיינית לאינטגרציה היא 500–1000 דולר, עם החזר השקעה תוך 3 חודשים באמצעות הפחתת עבודה ידנית והגדלת המרות.
מודולי הטפסים הסטנדרטיים של Bitrix (bitrix:main.feedback, bitrix:form.result.new) שומרים תוצאות בטבלת b_form_result ושולחים הודעות דוא"ל. ללא אינטגרציה עם CRM, הנתונים נשארים במסד הנתונים של האתר—המנהלים אינם רואים אותם ב-Bitrix24, והיסטוריית התקשורת אובדת. לפי התיעוד הרשמי של 1C-Bitrix, אירוע OnAfterResultAdd של מודול הטפסים מאפשר ליירט את נתוני התוצאה לפני שליחת ההודעה.
מדוע טפסים מקוריים עדיפים על טפסי CRM
טפסי ה-CRM של Bitrix24 קלים יותר להגדרה, אך האירוח שלהם בדומיין צד שלישי (b24-cdn.bitrix24.by) פוגע בקידום האורגני ובמהירות טעינת הדף. יתרה מזאת, לא ניתן להתאים אישית את המראה שלהם לעיצוב האתר ללא עטיפת iframe. טופס מקורי נשאר בדומיין שלך, מעביר את כל תגי ה-UTM והעוגיות, והסגנונות נשלטים לחלוטין על ידי תבנית האתר. לפי הניסיון שלנו, שיעור ההמרה של טפסים כאלה גבוה ב-20–30%.
כיצד להגדיר אינטגרציה: 6 שלבים
- בדיקת טפסים ו-CRM קיימים—קביעה אילו טפסים שולחים נתונים ואילו שדות נדרשים ב-CRM.
- יצירת ה-handler—הרשמה לאירוע OnAfterResultAdd בקובץ init.php.
- מיפוי שדות—הגדרת התאמה בין שדות הטופס לשדות הליד במערך קונפיגורציה.
- יצירת שדות מותאמים אישית—באמצעות REST API crm.userfield.add לנתונים לא סטנדרטיים.
- הסרת כפילויות—בדיקת לידים קיימים לפי דוא"ל/טלפון לפני יצירת חדש.
- בדיקות והשקה—אימות העברת נתונים, קבצים ותהליכים עסקיים.
Handler לתוצאות טופס
Bitrix מספקת את אירוע OnAfterResultAdd של מודול הטפסים. הרשמה ב-init.php:
AddEventHandler('form', 'OnAfterResultAdd', function($formId, $resultId, $fields) { // Только для нужных форм $targetForms = [3, 7, 12]; // ID форм: заявка, консультация, партнёрство if (!in_array($formId, $targetForms)) return; $answers = CFormResult::GetDataByID($resultId, [], $arrResult); $mapped = mapFormAnswers($formId, $answers); $b24 = new B24Sender(getenv('B24_WEBHOOK_URL')); $b24->sendLead($mapped); }); מיפוי שדות טופס לשדות ליד
שדות הטופס נשמרים ב-b_form_field, תשובות ב-b_form_result_answer. מקושרים דרך FIELD_ID. המיפוי מוגדר בקונפיג:
$formMapping = [ 3 => [ // форма «Заявка на звонок» 'q_name' => 'NAME', 'q_phone' => 'PHONE', 'q_comment' => 'COMMENTS', 'utm_source'=> 'UTM_SOURCE', ], 7 => [ // форма «Партнёрство» 'q_company' => 'COMPANY_TITLE', 'q_contact' => 'NAME', 'q_email' => 'EMAIL', 'q_direction' => 'COMMENTS', ], ]; מקרה בוחן: טופס הגשה רב-שלבי
מהניסיון שלנו—אתר של אינטגרטור IT עם טופס הגשת פרויקט: 4 שלבים (סוג פרויקט, תקציב, ציר זמן, פרטי קשר). מודול הטפסים הסטנדרטי שומר את כל התשובות ב-b_form_result_answer. המשימה: יצירת ליד מוסמך ב-Bitrix24 עם שדות מלאים ומשפך נכון.
הפתרון: שלבים 1–3 נשמרים ב-session, שלב 4 שולח את הטופס המלא. ב-handler של OnAfterResultAdd, אנו אוספים את כל השדות ויוצרים ליד עם שדות CRM מותאמים אישית:
$leadFields = [ 'TITLE' => 'Проект: ' . $answers['project_type'], 'OPPORTUNITY' => $answers['budget_from'], // бюджет — в сумму лида 'CURRENCY_ID' => 'RUB', 'UF_CRM_PROJECT_TYPE' => $answers['project_type'], 'UF_CRM_DEADLINE_WEEKS' => $answers['deadline'], // UF_CRM_* — пользовательские поля лида в Б24 ]; שדות מותאמים אישית (UF_CRM_*) נוצרים ב-Bitrix24 מראש דרך crm.userfield.add. לאחר יצירת הליד, אנו מפעילים אוטומטית תהליך עסקי ב-Bitrix24 דרך bizproc.workflow.start. זה מבטיח שאף פנייה לא תלך לאיבוד.
כיצד להעביר קבצים מטפסים ל-CRM?
אם טופס כולל שדה העלאת קבצים (מפרט טכני, בריף), יש להעביר את הקובץ ל-Bitrix24. REST API crm.lead.add אינו תומך בהעלאה בינארית ישירה—אנו משתמשים ב-disk.folder.uploadfile להעלאה ל-Bitrix24 Drive, ולאחר מכן מצרפים לליד דרך crm.activity.add עם סוג DOCUMENT. הקובץ מופיע בכרטיס הליד, והמנהל רואה את הקובץ המצורף מיד.
הסרת כפילויות בלידים
אותה חברה ממלאת לעתים קרובות את הטופס מספר פעמים. אנו בודקים לפי דוא"ל וטלפון לפני יצירה:
$existing = $b24->call('crm.duplicate.findByComm', [ 'type' => 'EMAIL', 'values' => [$email], 'entity_type' => 'LEAD', ]); if (!empty($existing['result']['LEAD'])) { // Добавляем активность к существующему лиду, не создаём новый $b24->call('crm.activity.add', [...]); } מה כלול בשירות
| שלב | משך | תוצאה |
|---|---|---|
| בדיקת טפסים ו-CRM קיימים | 1–2 שעות | סכמת שדות, רשימת טפסים, דרישות |
| הגדרת handler ומיפוי | 3–5 שעות | handler עובד עבור טופס אחד |
| יצירת שדות מותאמים אישית ב-CRM | 2–4 שעות | שדות לנתונים לא סטנדרטיים |
| לוגיקת הסרת כפילויות וטיפול בפניות חוזרות | 4–6 שעות | הגנה מפני לידים כפולים |
| העברת קבצים מטפסים | 4–6 שעות | קבצים מצורפים לליד |
| הפעלת תהליכים עסקיים על ליד | 3–5 שעות | עיבוד אוטומטי של פניות |
| תיעוד והדרכה | 1–2 שעות | הוראות למנהל מערכת |
עלות ממוצעת: 800 דולר לטופס, עם הנחות לטפסים מרובים. לצוות שלנו ניסיון של 7 שנים באינטגרציות Bitrix והשלים בהצלחה מעל 60 פרויקטים, מה שמבטיח זרימת נתונים אמינה ויעילה.
דוגמה להגדרת שדה מותאם אישית
נניח שצריך להעביר סוג פרויקט וציר זמן רצוי. דרך REST API, צור שדות UF_CRM_PROJECT_TYPE (רשימה) ו-UF_CRM_DEADLINE_WEEKS (מספר). ב-handler, מפה לשדות אלה.כל העבודה מתבצעת עם אחריות—אנו לוקחים אחריות על יציבות האינטגרציה והעברת נתונים ללא הפרעות. האינטגרציה בדרך כלל מחזירה את ההשקעה תוך 3 חודשים. המנהלים חוסכים עד שעתיים ביום. אם יש לכם שאלות, צרו קשר—נעריך את הפרויקט תוך יום אחד ונציע את הפתרון האופטימלי. הזמינו אינטגרציה עם אחריות לאיכות.







