Импорт клиентов — обычно первый шаг при запуске RetailCRM. От того, насколько аккуратно перенесена база, зависит работа сегментов, рассылок, программы лояльности и всей аналитики. Разберём, как загрузить контакты через интерфейс и API, не наплодив дублей.
Где находится импорт клиентов
Загрузка базы выполняется в разделе Клиенты по кнопке «Загрузить» (иконка импорта над таблицей). RetailCRM принимает файлы в формате CSV с разделителем «точка с запятой» и кодировкой UTF-8. Excel-файлы предварительно пересохраняют как «CSV UTF-8».
Импорт работает в двух режимах: создание новых клиентов и обновление существующих. Режим определяется по ключу сопоставления — чаще всего это externalId, email или телефон. Если ключ найден, запись обновляется; если нет — создаётся новая.
Какие поля переносить
Минимально полезная карточка клиента — это имя, телефон и email. Но RetailCRM хранит и много служебных полей, которые стоит заполнить сразу, чтобы не возвращаться к базе повторно.
| Поле | Назначение | Обязательно |
|---|---|---|
| externalId | Внешний идентификатор из старой системы | желательно |
| firstName / lastName | Имя и фамилия | нет |
| phones | Телефоны в формате +7XXXXXXXXXX | да (или email) |
| Адрес для рассылок | да (или телефон) | |
| createdAt | Дата регистрации — важна для RFM | желательно |
| tags | Метки для сегментации | нет |
Поле externalId — ваш якорь. Если сохранить в нём идентификатор клиента из прежней системы, повторные импорты и синхронизация с сайтом не создадут дублей, а обновят уже существующие карточки.
Как RetailCRM борется с дублями
Дубли — главная угроза при импорте. RetailCRM ищет совпадения по нескольким признакам, но логику нужно понимать заранее.
- По externalId — самый надёжный вариант: обновляется ровно та карточка, у которой совпал внешний ID.
- По телефону и email — включается поиск похожих клиентов; при совпадении система предложит объединить.
- Ручное объединение — в карточке есть блок «Похожие клиенты» и действие «Объединить дубли» с выбором главной записи.
Чтобы автоматика сработала, приведите телефоны к единому виду ещё в файле: уберите скобки, пробелы и дефисы, приведите к формату +7XXXXXXXXXX. Разнобой «8 (900)…» и «+7 900…» система считает разными номерами.
Теги, сегменты и корпоративные клиенты
Сразу при импорте удобно раскладывать базу по группам. Столбец tags принимает несколько меток через запятую — например опт, постоянный, из_instagram. По этим тегам затем строятся динамические сегменты.
Для B2B в RetailCRM есть отдельная сущность — корпоративный клиент (компания с несколькими контактными лицами). Розничные контакты и компании загружаются разными файлами: у корпоративных используются поля nickName (название компании) и привязка контактов. Не пытайтесь смешать физлиц и юрлиц в одной выгрузке.
- Сначала грузим корпоративных клиентов (компании).
- Затем — контактных лиц с указанием компании.
- Проверяем, что связи «компания → контакт» проставились.
Импорт через API для больших баз
Интерфейс комфортен до нескольких десятков тысяч строк. Для крупных баз и регулярной синхронизации используют REST API v5 и метод пакетной загрузки клиентов.
Запрос отправляется на POST /api/v5/customers/upload, тело — массив клиентов в JSON (до 50 карточек за вызов), авторизация по заголовку X-API-KEY.
POST /api/v5/customers/upload
X-API-KEY: ваш_ключ
customers=[{"externalId":"1024","firstName":"Иван","phones":[{"number":"+79001234567"}],"email":"ivan@mail.ru"}]В ответе приходит массив соответствий id ↔ externalId — сохраните его, чтобы связать записи RetailCRM с вашей исходной базой. Соблюдайте лимиты запросов, иначе получите ответ 429 Too Many Requests.
Через API удобно поддерживать и регулярную синхронизацию: когда клиент регистрируется на сайте или меняет телефон, изменение сразу уходит в RetailCRM тем же методом. Тогда база в CRM всегда актуальна, а разовый импорт нужен только на старте. Для разбора ответов и повторной отправки сбойных карточек логируйте тело каждого запроса — это упрощает отладку интеграции.
Что проверить после загрузки
Импорт завершается отчётом: сколько строк создано, сколько обновлено, сколько пропущено с ошибками. Не закрывайте его, не прочитав.
- Совпадает ли число клиентов в отчёте с ожидаемым количеством строк в файле.
- Нет ли «кракозябр» в именах — верный признак неверной кодировки.
- Проставились ли телефоны и email как контактные данные, а не просто текст.
- Работают ли фильтры по тегам и датам регистрации.
Отдельно прогоните поиск дублей по нескольким известным клиентам — так вы поймёте, корректно ли сработала дедупликация на реальных данных.
Отчёт об ошибках выгружается отдельным файлом со списком сбойных строк и причиной. Не игнорируйте его: исправьте эти строки в исходнике и догрузите повторно, а не заводите руками. Так вы не потеряете часть базы и сохраните единый ключ сопоставления для всех записей.
Итог
Успешный импорт клиентов держится на трёх вещах: чистый CSV в UTF-8, продуманный ключ сопоставления (лучше externalId) и нормализованные телефоны. Пробная загрузка и разбор отчёта об ошибках экономят часы на разбор дублей потом.
Если база большая, разнородная или собрана из нескольких источников, мы поможем свести её в один файл, настроить дедупликацию и перенести без потерь — в рамках внедрения RetailCRM и услуги миграции данных.
Частые вопросы
В каком формате загружать базу клиентов?
CSV с разделителем «точка с запятой» и кодировкой UTF-8. Excel пересохраняйте как «CSV UTF-8», иначе возможны проблемы с кириллицей.
Как избежать дублей при импорте?
Используйте externalId как ключ сопоставления и приведите телефоны к единому формату +7XXXXXXXXXX. Тогда повторные загрузки будут обновлять карточки, а не создавать новые.
Можно ли обновить уже существующих клиентов?
Да, импорт работает и на обновление: если ключ (externalId, email или телефон) найден, запись обновляется. Следите за пустыми ячейками, чтобы не стереть данные.
Сколько клиентов можно загрузить за раз?
Через интерфейс — комфортно до нескольких десятков тысяч строк. Для больших баз используйте API-метод customers/upload пакетами до 50 карточек за запрос.
Как загрузить теги и разложить базу по сегментам?
В столбце tags укажите метки через запятую. После импорта на основе тегов, дат и других полей настраиваются динамические сегменты.
Чем корпоративный клиент отличается от обычного?
Это компания с несколькими контактными лицами и полем названия. Юрлица и физлица грузят разными файлами: сначала компании, потом контактные лица со ссылкой на компанию.
Что делать с дублями, которые всё-таки появились?
В карточке есть блок «Похожие клиенты» и действие «Объединить дубли» с выбором главной записи. Данные второстепенной карточки переносятся в основную.
Поможем с настройкой и поддержкой RetailCRM
Поможем с настройкой, доработкой и поддержкой RetailCRM.