# Перенос из RetailCRM и Excel: проверка, связи и история

> Как перенести клиентов и заказы в BLANK KIT из RetailCRM, JSON, Excel или CSV: dry-run, соответствия, несколько контактов, история, оставшееся исполнение и безопасный откат.

**Раздел:** CRM: Настройки
**Обновлено:** 2026-10-21
**Официальный URL:** https://blank-kit.ru/docs/crm-settings/retailcrm-migration
**Язык:** ru-RU

## Доступность и подготовка перехода

> Эта инструкция относится к обновлению CRM с мастером переноса. Описанные действия становятся доступны после обновления приложения; статья не подтверждает, что они уже включены на текущем рабочем сервере.

Мастер помогает подготовить перенос, проверить исходные данные и применить согласованные записи. Он не обещает автоматически перенести любую выгрузку целиком. Состав доступной истории, вложений, коммуникаций и дополнительных полей зависит от исходной системы, формата файла и прав API.

Перенос входит в текущие бесплатные условия CRM после выпуска функции. Будущие условия публикуются на [странице тарифов](/pricing); бессрочная бесплатность CRM, API или индивидуального сопровождения здесь не обещается.

Перед рабочим переходом сохраните выгрузку источника, определите дату начала нового учёта и проверьте небольшой образец. Для API-подключения используйте разрешённый ключ исходного аккаунта. Пароли и токены не добавляйте в таблицу или обращение поддержки.

## Выбрать источник

Откройте [Настройки → Перенос данных](/crm/settings/migration). Нужны права управления настройками и просмотра стоимости; применение дополнительно проверяет права на клиентов и заказы.

Для файла откройте вкладку **«Из файла»**:

1. Задайте постоянное название исходного аккаунта либо выберите уже созданный источник. Оно позволяет повторным загрузкам использовать прежние связи.
2. Выберите содержимое таблицы: клиенты или заказы. При необходимости укажите магазин `site` по умолчанию.
3. Скачайте CSV-шаблон. Для Excel используйте те же заголовки; доступны файлы XLSX, CSV и JSON.
4. Подготовьте постоянный исходный `id` каждой записи. Внешний ID и магазин важнее совпавшего телефона, имени или артикула.
5. Загрузите файл и нажмите **«Проверить без применения»**.

JSON может содержать клиентов и заказы вместе в разделах `customers` и `orders`. В таблице несколько телефонов, строки заказа, допполя, оплаты и история задаются структурированными JSON-значениями соответствующих ячеек. Если исходная выгрузка устроена иначе, сначала приведите её к шаблону; автоматическая поддержка произвольных колонок не заявляется.

Для чтения аккаунта RetailCRM откройте его карточку в [каталоге интеграций](/crm/settings/integrations), на вкладке **«Подключения»** добавьте адрес аккаунта, ключ и магазин. На вкладке **«Переезд»** откройте мастер. В мастере выберите **«Подключение»**, укажите источник в блоке **«Прочитайте данные аккаунта»** и нажмите **«Начать чтение»**. Чтение составляет архив и отчёт покрытия; применение выбранных записей выполняется отдельно. Для выгрузки без ключа используйте вкладку **«Из файла»**; результаты предыдущих переносов доступны во вкладке **«История»**.

Один файл ограничен 10 МБ, пакет — 10 000 записей. Большую выгрузку разделяйте с сохранением постоянных идентификаторов. Даты передавайте однозначно; для временной зоны, отличной от МСК, задайте явный offset в ISO. Нераспознанная исходная дата сохраняется с предупреждением вместо выдуманной исторической даты.

## Архив API и отчёт покрытия

Мастер проверяет 34 группы данных и справочников: клиентов и корпоративных клиентов, заказы, каталог, категории, статусы, сотрудников, магазины и склады, определения полей и их справочники, задачи, заметки, файлы, звонки, расходы и историю изменений. Число разделов не означает, что каждый из них доступен вашему ключу или имеет полноценный аналог в BLANK KIT.

В таблице **«Покрытие переезда»** отдельно указаны состояние чтения, число записей и результат каждой группы. «Нет доступа ключа», «Метод недоступен», необходимость повтора или явный пропуск остаются видимыми пробелами. Их нельзя считать успешно перенесёнными данными. При временной ошибке повторите чтение; отложенный раздел помечается в отчёте.

Чтение страниц можно остановить и продолжить позднее. Скачайте **«Все прочитанные страницы и отчёт покрытия (.jsonl)»** и сохраните архив у себя. Это сохранение полученных исходных данных; оно не подтверждает их применение в рабочие карточки CRM. Постраничное чтение также не является неизменяемым снимком работающего аккаунта: перед переключением сверяйте последние изменения.

| Данные источника | Результат этого выпуска |
| --- | --- |
| Клиенты, заказы и исторические оплаты | Проверка, сопоставление и применение в карточки CRM |
| Товары, категории, статусы, поля клиентов и заказов | Выбор существующих записей или явное создание при применении |
| Задачи | Создание после сопоставления клиента, заказа и ответственного; прежние сроки и статус, без новых напоминаний |
| Корпоративная структура, заметки, история, расходы, резервы и внешнее наличие | Исходный архив для сверки; не обещание новых учётных операций или полной корпоративной модели |
| Файлы и записи звонков | Метаданные и связи в архиве, содержимое загружается отдельным этапом |

Выберите сущность и нужную прочитанную страницу в блоке **«Перенести выбранную страницу»**. Сначала примените клиентов, затем связанные заказы. Каталог, статусы и определения полей можно подготовить заранее или создать вместе с выбранными записями. Проверяйте итог каждого пакета.

Архив привязан к конкретному адресу аккаунта и магазину подключения. Если исходный аккаунт или выбранный магазин изменён, не продолжайте прежний архив: создайте новый источник чтения. Совпадающие ID в другом аккаунте не должны переиспользовать старые соответствия.

## Файлы и аудиозаписи звонков

После чтения разделов «Файлы» и «Звонки» откройте блок **«Вложения и записи звонков»**. Нажмите **«Подготовить список файлов»**, при необходимости продолжите подготовку, затем **«Загрузить следующие 3»**. Для каждого объекта показан отдельный результат. Только статус **«Сохранён»** подтверждает, что содержимое уже есть в приватном архиве BLANK KIT.

Лимит — 50 МиБ на один файл. Объекты большего размера, удалённые вложения, недоступные записи и ошибки остаются отдельными строками. Для повторяемой ошибки используйте **«Повторить»** или **«Повторить ошибки»**; уже сохранённые файлы повторно не скачиваются. Метаданные с названием файла или ссылкой на звонок не заменяют загрузку содержимого.

Доступ к архиву имеют администраторы с правом просмотра стоимости. Бинарные вложения сохраняются приватно и не превращаются автоматически в общедоступные файлы карточек. Исходные ссылки на клиента или заказ показаны отдельно.

Звонки и файлы могут иметь область всего аккаунта RetailCRM. Выбранный магазин не доказывает принадлежность каждой записи именно ему. Мастер сохраняет исходные связи; неоднозначная принадлежность не подменяется совпавшим телефоном, номером заказа или ID другого магазина.

Универсальный экспорт всей почты, SMS и чатов этим API не заявляется. Архивируются данные, которые вернул доступный метод. Для отсутствующей переписки или удалённых объектов заранее согласуйте отдельную выгрузку из источника. Возможности и права методов сверяйте с [официальной документацией RetailCRM API v5](https://help.retailcrm.ru/api_v5_ru.html).

## Проверить и сопоставить

Предварительная проверка показывает, какие записи будут созданы, обновлены, пропущены как уже перенесённые либо остановлены конфликтом. До применения рабочие клиенты и заказы не меняются.

В блоке сопоставления выберите ответственных, статусы, категории и товары вашей компании по названиям. Для статуса, категории, товара или поддерживаемого пользовательского поля можно выбрать **«+ Создать…»** прямо в мастере. Новые сущности создаются при применении согласованного пакета; изменение выбора само по себе не создаёт записей. Ответственные выбираются из существующей команды, приглашения автоматически не отправляются.

В разделе **«Пользовательские поля»** выберите существующее совместимое поле либо создание нового. Проверьте его код и варианты справочника. Несовместимый тип или справочник блокирует перенос значения. Новые поля из источника сначала доступны администраторам и не становятся обязательными для текущей работы автоматически: исходная обязательность остаётся в протоколе. Настройте доступ после сверки на странице [пользовательских полей](/crm/settings/custom-fields).

Кнопка **«Проверить сопоставление»** заново проверяет пакет без повторной загрузки файла. Посмотрите итоговый список создаваемых сущностей перед применением.

Клиенты и заказы связываются по исходным идентификаторам с учётом аккаунта и магазина. Один и тот же ID в разных магазинах не означает одного клиента. Общий телефон или корпоративная почта не дают разрешение автоматически объединить записи.

Несопоставленный сотрудник сохраняется как исходный автор. Мастер не создаёт ему активный аккаунт и не отправляет приглашение. Коды и значения дополнительных полей сохраняются; несовместимое сопоставление, которое потеряло бы одно из значений, блокируется.

## Что сохраняется и как читать историю

В карточке клиента или заказа раскрывайте панель **«Данные исходной системы»**. Она показывает полученные контакты, допполя, комментарии, исходные даты и авторов. Несколько телефонов/email остаются отдельными контактами; наличие одного основного поля карточки не означает удаления остальных.

Сохранённая история не считается полной историей взаимодействий, если источник не передал письма, звонки, вложения или события. Недоступные и неподтверждённые данные отражаются в предупреждениях. Полный нормализованный исходный протокол доступен для скачивания с соответствующими правами.

Исторические оплаты с подтверждёнными идентификатором, датой, суммой и статусом сохраняют основание оплаченной суммы заказа. Они не создают заново движение денег, сегодняшние комиссии или автоматические расходы. Неоднозначные оплаты остаются историческими данными с исключением в протоколе.

Импорт не отправляет клиентам письма, приглашения или уведомления о старых событиях. Изменение исторического статуса не должно повторно запускать старые складские и финансовые действия.

## Применить пакет и получить изменения источника

Проверьте предупреждения и нажмите применение. Работа идёт порциями до 100 записей; для большого пакета продолжайте следующую порцию. Протокол сохраняет обработанные строки и результат. Повтор того же источника с теми же ID не должен создавать дубликаты.

Если запись изменили в CRM после проверки, мастер останавливает соответствующую строку конфликтом. Сначала разберите различия и подготовьте новую проверку; повторная загрузка не является разрешением затереть новую работу.

Кнопка **«Следующие изменения»** для API RetailCRM читает очередную порцию истории заказов и клиентов. Контрольная точка `sinceId` сохраняется после полного применения пакета без конфликтов, а не после чтения. При удалённом, объединённом или уже используемом объекте может потребоваться ручной разбор. Snapshot клиентов и заказов не заменяет историю изменений и коммуникаций.

## Открытые заказы: перенести только оставшееся исполнение

По умолчанию старый заказ доступен как история: его прежние продажи не списывают новый начальный остаток. Автоматически отгрузить исходное полное количество повторно нельзя.

Для продолжения открытого заказа нужны достоверное уже исполненное количество каждой строки, явный режим оставшегося исполнения в подготовленных данных и сопоставленные товары. При подготовке JSON/таблицы этот режим задаётся `fulfillmentMode: "remaining"`, исполнение строки — `shippedQuantity` либо поддерживаемым исходным полем.

Пример: заказано 5 единиц, раньше отгружено 3. В новом учёте остаётся исполнить 2. Новый резерв, отгрузка и выручка относятся к этим двум, а не ко всем пяти.

Если источник не сообщил надёжное исполнение каждой строки или товар не сопоставлен, заказ остаётся историческим с объяснением. Подготовьте корректные данные либо создайте отдельный связанный заказ на проверенный остаток.

## Начальные остатки и активные резервы

Клиенты и заказы не открывают собственный склад сами по себе. Для внутреннего учёта используйте отдельный мастер в [Склад → Операции](/crm/warehouse/operations) после выбора режима в [настройках склада](/crm/warehouse/settings).

В начальный `onHandQty` передают физическое количество, включая зарезервированные единицы. При физическом остатке 10, резерве 4 и свободном количестве 6 открывается физический запас 10; после восстановления резерва свободно остаётся 6. Загрузка свободных 6 с последующим резервом 4 ошибочно дала бы 2.

Количество, стоимость и активные резервы должны относиться к одной согласованной дате. Бронь, уже отражённая в RetailCRM и МойСкладе, не суммируется дважды. Исторический FIFO сохраняется только при наличии достоверных оставшихся слоёв; сегодняшняя закупочная цена не восстанавливает их автоматически.

Продажи и новые резервы открываются после общей сверки и активации подготовленного набора. Нельзя одновременно открыть агрегированный запас и повторно провести всю прошлую историю. Если своего запаса нет, используйте поставщика или номинальную точку без вымышленных приёмок.

## Когда возможен откат

Откат проверяет версии и последующее использование перенесённых записей. Он доступен до новых локальных изменений и связей с документами, складом, деньгами или задачами. При конфликте автоматический откат останавливается, сохраняя новую работу.

Откат пакета не отменяет физическую отгрузку или банковский перевод и не восстанавливает старую базу поверх новых данных. После начала работы могут потребоваться отдельные согласованные корректировки.

Перед окончательным переходом сверяйте число клиентов и заказов, связи, несколько контактов, оплаченные суммы, историю, остатки/резервы и оставшееся исполнение. Непокрытые данные и ограничения должны быть приняты до переключения. Для помощи отправьте безопасный протокол в [поддержку](/support), не прикладывая ключи доступа.