Возможности
Что переносится
Одним файлом заводится сразу вся пачка карточек. В карточку гостя переносятся:
- имя;
- номер телефона;
- электронная почта;
- дата рождения и пол;
- комментарий оператора, которого гость не видит;
- теги;
- адреса доставки;
- номер карты лояльности;
- дата регистрации в прежней системе;
- внешний идентификатор — код гостя в системе, из которой его выгрузили;
- баланс бонусов;
- признак чёрного списка.
Тега, которого ещё нет в справочнике, заводить заранее не нужно: он создаётся при загрузке. Совпадение имени тега ищется без учёта регистра.
Как совпадают карточки
Каждая запись файла ищется в базе по номеру телефона: нашлась — карточка обновляется, не нашлась — заводится новая. Если в файле передан внешний идентификатор, карточка сначала ищется по нему. Номера сравниваются по цифрам, поэтому запись через «8», через «+7» и запись со скобками — это один и тот же гость.
Баланс бонусов не прибавляется к текущему, а заменяет его.
Ход загрузки
Загрузка идёт в фоне. Файл отдаётся один раз, дальше на экране виден ход в процентах, а по окончании появляется уведомление. Пока предыдущая загрузка не закончилась, новая не запускается — вместо запуска показывается состояние текущей.
Есть режим полной замены: перед загрузкой база гостей организации очищается, и файл становится единственным её содержимым.
То же самое доступно программно, без кабинета: файл отдаётся запросом, состояние загрузки опрашивается отдельно.
Как настроить
Где это в кабинете
Настройки, раздел «Дополнительно», карточка «Импорт клиентов». Раздел виден учётной записи с правами администратора; у остальных сотрудников пункта в меню нет.
Что подготовить
Нужен файл в формате json: список карточек, где имена полей совпадают с описанными в документации для разработчиков. Обычная выгрузка из прежней системы — таблица xlsx или csv — приводится к этому виду заранее: лишние столбцы убираются, заголовки переименовываются в имена полей. Базу больше 30 000 записей делят на несколько файлов и грузят по очереди.
Как запустить
- Открыть раздел «Дополнительно».
- При необходимости отметить «Удалить ранее созданных клиентов» — тогда перед загрузкой база гостей очищается.
- Перетащить файл на карточку импорта или выбрать его через диалог.
- Дождаться окончания, не закрывая страницу: ход загрузки и уведомление о завершении показываются на ней.
- Проверить результат в разделе «Клиенты», открыв несколько карточек выборочно.
Что должно быть настроено и ограничения
Данные
- Номер телефона — ключ гостя и уникален в пределах организации. Две записи файла с одним номером схлопнутся в одну карточку: последняя перезапишет предыдущую.
- Теги и адреса передаются целиком: то, чего в файле нет, у карточки не сохранится. Остальные поля при повторной загрузке не затираются, если их не передавать.
- Балансы переносятся только там, где баллами управляет сам продукт. Если бонусы ведёт внешняя бонусная система, баланс из файла не применяется, а загруженные карточки уходят в неё на синхронизацию.
Побочные эффекты
- Загруженные гости считаются подтверждёнными — так же, как если бы они авторизовались сами. Поэтому программы лояльности, срабатывающие на появление гостя, — приветственный бонус и бонус ко дню рождения — отработают на всей загруженной базе: начислят баллы поверх перенесённого баланса и разошлют объявления. Если этого не нужно, программы отключают на время загрузки.
- Режим полной замены удаляет не только карточки: вместе с ними уходят справочник тегов и бонусные категории организации, а прошлые заказы остаются без владельца. Режим уместен на этапе настройки, до боевого запуска.
Процесс
- В организации одновременно идёт одна загрузка.
- Загрузка не прекращается, если закрыть страницу, но уведомление о завершении придёт только тому, кто её не закрывал; состояние видно при повторном заходе в раздел.
Чего нет
- Не переносит историю заказов. Карточка появляется без покупок, поэтому число заказов, средний чек и возвращаемость начинают считаться с нуля, по будущим заказам.
- Не переносит согласия гостя: разрешение на рекламные сообщения и на звонки остаётся у загруженных карточек в значении по умолчанию, а принятие условий сервиса не переносится вовсе.
- Не хранит несколько номеров у одного гостя: из списка номеров остаётся первый.
- Не разбивает имя на фамилию, имя и отчество — оно переносится одной строкой.
- Не определяет координаты адреса. Координаты берутся только из файла, сам по себе текст адреса на карту не встаёт.
- Не отдаёт отчёт о результате: видно, что загрузка закончилась, но не видно, сколько записей не прошло и почему.
- Не проверяет файл заранее — ошибки в данных обнаруживаются уже по загруженным карточкам.
- Не останавливается на полпути и не откатывается: ни прервать загрузку, ни вернуть перезаписанные балансы нечем.
Примеры
Переезд с прежней платформы вместе с балансами
- Из прежней системы выгружается база: имена, телефоны, почта, даты рождения, категории гостей, балансы.
- Выгрузка приводится к формату загрузки, заголовки столбцов заменяются на имена полей.
- На время работ отключаются приветственный бонус и бонус ко дню рождения.
- Файл загружается в разделе «Дополнительно» без режима полной замены.
- Результат проверяется в разделе «Клиенты»: у выборочных гостей на месте баланс, теги и комментарий.
- Программы лояльности включаются обратно.
Отладка раскладки полей до боевой загрузки
- Готовится пробный файл на несколько десятков записей.
- Он загружается с отметкой «Удалить ранее созданных клиентов».
- По загруженным карточкам проверяется, куда легли имена, теги, комментарии и балансы.
- Файл правится, шаги повторяются, пока раскладка не сойдётся.
- Боевая база грузится уже без отметки удаления.
Догрузка данных из внешней системы
- В файле у каждой карточки указывается внешний идентификатор гостя.
- Файл загружается без отметки удаления: записи с уже известным идентификатором или номером обновятся, остальные заведутся заново.
- В файл включаются все теги и адреса, которые должны остаться у гостя, — не только новые.