שילוב טופס 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) פוגע ב-SEO ובמהירות טעינת הדף. יתר על כן, לא ניתן להתאים אישית את המראה שלהם לעיצוב האתר ללא עטיפת 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 חודשים. המנהלים חוסכים עד שעתיים ביום. אם יש לכם שאלות, צרו קשר—נעריך את הפרויקט תוך יום אחד ונציע את הפתרון האופטימלי. הזמינו אינטגרציה עם אחריות לאיכות.

