Миграция данных из сторонней CRM в Битрикс24

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Миграция данных из сторонней CRM в Битрикс24
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1167
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    563
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    743
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Миграция данных из сторонней CRM в Битрикс24

Переход с Salesforce, HubSpot, Pipedrive или самописной CRM в Битрикс24 — это не просто экспорт CSV и импорт. Каждая CRM имеет собственную модель данных, логику связей и специфику полей. Битрикс24 — тоже. Главная задача миграции: не потерять связи между сущностями и сохранить историческую ценность данных.

Структура данных Битрикс24

Прежде чем мигрировать, нужно понять, куда кладутся данные. Ключевые сущности Битрикс24:

Сущность Таблица БД REST API
Контакты b_crm_contact crm.contact.*
Компании b_crm_company crm.company.*
Лиды b_crm_lead crm.lead.*
Сделки b_crm_deal crm.deal.*
Активности (звонки, письма) b_crm_activity crm.activity.*
Пользовательские поля b_uts_crm_* crm.*.userfield.*

Связи: контакт привязан к компании через b_crm_company_contact, сделка — к контакту через b_crm_deal_contact.

Инструменты миграции

REST API Битрикс24 — официальный и наиболее надёжный метод. Поддерживает пакетные запросы (batch), что критично при переносе тысяч записей:

$batchCalls = [];
foreach ($contacts as $contact) {
    $batchCalls['create_contact_' . $contact['id']] = [
        'method' => 'crm.contact.add',
        'params' => [
            'fields' => [
                'NAME'       => $contact['first_name'],
                'LAST_NAME'  => $contact['last_name'],
                'EMAIL'      => [['VALUE' => $contact['email'], 'VALUE_TYPE' => 'WORK']],
                'PHONE'      => [['VALUE' => $contact['phone'], 'VALUE_TYPE' => 'WORK']],
                'COMPANY_ID' => $companyMapping[$contact['company_id']] ?? null,
                'UF_CRM_SOURCE_ID' => $contact['id'], // Сохраняем ID источника
            ],
        ],
    ];
}

// Отправляем пакет (до 50 запросов за раз)
$result = $b24->callBatch(array_slice($batchCalls, 0, 50));

Прямая запись в БД — для облачного Битрикс24 недоступна. Для коробочной версии — ускоряет массовый импорт, но требует ручной перестройки индексов и осторожности с триггерами.

Маппинг полей: самая трудоёмкая часть

Каждое поле источника нужно сопоставить с полем Битрикс24. Пример маппинга из HubSpot:

HubSpot Битрикс24 Примечание
firstname + lastname NAME + LAST_NAME Разделение
email EMAIL[0].VALUE Тип: WORK
phone PHONE[0].VALUE Нормализация
company COMPANY_ID Создать компанию отдельно
lifecyclestage STATUS_ID Маппинг стадий
hs_lead_status Пользовательское поле UF_CRM_HS_STATUS
createdate DATE_CREATE Только через прямой SQL (коробка)

Нестандартные поля HubSpot переносятся в пользовательские поля Битрикс24 (UF-поля). Их нужно создать заранее через crm.contact.userfield.add.

Последовательность создания сущностей

Порядок важен из-за ссылочной целостности:

  1. Компании (у контактов и сделок нет зависимостей выше)
  2. Контакты (привязка к компаниям)
  3. Сделки (привязка к контактам и компаниям)
  4. Активности — звонки, письма, задачи (привязка к сделкам/контактам)
  5. Комментарии и история — через crm.timeline.comment.add

После создания каждой сущности сохраняем маппинг: source_id → b24_id. Это нужно для привязки зависимых объектов.

$mappingFile = 'migration_map.json';
$mapping = json_decode(file_get_contents($mappingFile), true) ?: [];
$mapping['contacts'][$sourceContact['id']] = $b24ContactId;
file_put_contents($mappingFile, json_encode($mapping));

Обработка дубликатов

Сторонние CRM часто содержат дубли контактов (один человек под разными email). Перед миграцией — дедупликация в источнике. Стратегии:

  • Жёсткая: один уникальный email = один контакт. Дубли объединяются.
  • Мягкая: переносим все записи, затем используем встроенный инструмент дедупликации Битрикс24 (Контакты → Дубликаты).

Рекомендуется мягкая стратегия — сохраняет все данные, дедупликацию менеджеры делают в процессе работы.

История активностей: звонки и письма

Перенос истории коммуникаций — опциональная, но ценная часть. Звонки из источника → crm.activity.add с типом CALL:

$b24->call('crm.activity.add', [
    'fields' => [
        'OWNER_TYPE_ID' => 3, // 3 = контакт, 2 = сделка
        'OWNER_ID'      => $mapping['contacts'][$call['contact_id']],
        'TYPE_ID'       => 2, // Звонок
        'SUBJECT'       => 'Звонок от ' . date('d.m.Y', strtotime($call['created_at'])),
        'DESCRIPTION'   => $call['notes'],
        'START_TIME'    => $call['created_at'],
        'END_TIME'      => $call['ended_at'],
        'DIRECTION'     => $call['direction'] === 'inbound' ? 1 : 2,
        'COMPLETED'     => 'Y',
    ],
]);

Контроль качества миграции

После переноса — обязательная сверка:

# Источник
SELECT COUNT(*) FROM hubspot_contacts WHERE is_deleted = 0;
# → 12 847

# Битрикс24
SELECT COUNT(*) FROM b_crm_contact WHERE DELETED = 'N';
# → 12 839  ← 8 записей потеряно — расследуем

Расхождения логируются и анализируются: обычно это дубли или записи с невалидными данными (пустой email, некорректный телефон).

Сроки выполнения

Объём данных Срок
До 5 000 контактов + сделки без истории 1–2 недели
5 000–50 000 записей + базовые активности 3–6 недель
50 000+ записей + полная история коммуникаций 2–4 месяца

Успешная миграция — это когда менеджеры в Битрикс24 на следующий день видят полную историю отношений с клиентами, как будто всегда работали здесь.