Миграция данных из amoCRM в Битрикс24
amoCRM и Битрикс24 — ближайшие конкуренты на российском рынке, но их модели данных существенно различаются. amoCRM строится вокруг сделок (pipeline-центрическая модель), Битрикс24 — более комплексная система с разделением лидов, сделок, контактов и компаний. Эта разница определяет всю стратегию миграции.
Принципиальные отличия моделей
| Аспект | amoCRM | Битрикс24 |
|---|---|---|
| Центральная сущность | Сделка (lead) | Лид → Контакт + Сделка |
| Контакты | Привязаны к сделкам | Самостоятельная сущность |
| Компании | Привязаны к сделкам | Самостоятельная сущность |
| Теги | На сделках и контактах | UF-поля или категории |
| Воронки | Несколько, с этапами | Воронки (направления) со статусами |
| Кастомные поля | Простая настройка | UF-поля с типами |
В amoCRM «сделка» (lead) — это и лид, и сделка одновременно. При миграции нужно принять решение: переносить всё в сделки Битрикс24, или разбить на лиды + конвертированные сделки.
Получение данных из amoCRM
amoCRM предоставляет REST API v4. Аутентификация через OAuth 2.0. Лимиты API: не более 7 запросов в секунду — при выгрузке большой базы обязательна задержка между запросами.
Клиент для выгрузки контактов постранично (250 записей за запрос):
class AmoCrmClient {
public function getContacts(int $page = 1): array {
$url = "https://{$this->domain}.amocrm.ru/api/v4/contacts"
. "?page={$page}&limit=250&with=leads,companies";
$http = new \Bitrix\Main\Web\HttpClient();
$http->setHeader('Authorization', 'Bearer ' . $this->accessToken);
return json_decode($http->get($url)->getResult(), true);
}
}
Маппинг воронок и статусов
Воронки amoCRM → направления (воронки) Битрикс24. Создаются заранее через , затем для каждой воронки — статусы через .
Маппинг сохраняется в файл или таблицу для использования при переносе сделок:
$pipelineMapping[$pipeline['id']] = $b24CategoryId;
$statusMapping[$status['id']] = 'STAGE_' . $status['id'];
Кастомные поля: создание в Битрикс24
В amoCRM кастомные поля создаются произвольно. Перед миграцией — создать соответствующие UF-поля в Битрикс24 через . Тип поля определяется по из API amoCRM:
- → строка
- → целое число
- → дата
- → список (enumeration)
Перенос контактов
Каждый контакт amoCRM становится контактом в Битрикс24. Телефоны и email хранятся в с кодами и . Дата создания переносится через поле .
После создания контакта — сохраняем маппинг для привязки сделок.
Перенос сделок с примечаниями
Сделки — центральная часть миграции. Каждая сделка amoCRM переносится в Битрикс24 через с привязкой к контактам и компаниям по маппингу. Сохраняем исходный ID в пользовательском поле — для сверки и отладки.
Примечания (notes) из amoCRM переносятся как timeline-комментарии через . Это сохраняет историю переговоров, видимую менеджеру в карточке сделки.
Задачи и звонки
Задачи из amoCRM переносятся через . Записи звонков (если подключена телефония) — через с типом CALL. Это ценная историческая информация для возобновления работы с клиентом.
Предотвращение дублей
При повторных запусках скрипта миграции (при ошибках и возобновлении) нужна проверка: не создавать запись, если уже существует в Битрикс24.
$existing = $b24->call('crm.deal.list', [
'filter' => ['UF_CRM_AMO_ID' => $amoLead['id']],
'select' => ['ID'],
]);
if (!empty($existing['result'])) {
continue; // Уже перенесено
}
Валидация результатов
| Метрика | Способ проверки |
|---|---|
| Количество контактов | amoCRM count vs Б24 |
| Количество сделок | Сравнение по воронкам |
| Кастомные поля | Выборочная проверка 50 записей |
| Примечания | Хронология для 10–15 сделок |
Сроки выполнения
| Объём данных | Срок |
|---|---|
| До 3 000 контактов и сделок | 1–2 недели |
| 3 000–20 000 записей + кастомные поля | 3–5 недель |
| 20 000+ записей + история звонков и задач | 2–3 месяца |
Переход с amoCRM на Битрикс24 — это смена парадигмы работы команды. Параллельно с миграцией данных требуется обучение новым бизнес-процессам — задача, не менее важная, чем технический перенос.







