Интеграция МойСклад и Unisender: как я превратил грязные данные в сегментируемую базу для email-маркетинга

Клиент: Бренд купальников с географией продаж по РФ и Европе

Задача

Заказы и отгрузки живут в МойСклад, рассылки уходят через Unisender. Между ними - ничего. У маркетинга нет инструмента для точечной рассылки. Нельзя было собрать сегмент и отправить оффер. Например, выделить тех, кто уже покупал купальники с определенным принтом (в этой нише принт - это базовая характеристика товара), или запустить гео-акцию только на жителей конкретного города.
Задача казалась тривиальной - связать две системы. Но была хитрость. Данные в МойСклад оказались "грязными". Поле адреса почти всегда пустое, город зашит в свободном тексте комментария к заказу. Атрибут "принт" висит не на тех карточках, где его ищут, а в общей массе контактов перемешаны оптовики и розница. Нельзя было просто перелить базу, на выходе маркетинг получил бы мусор. Мне нужно было выстроить логику очистки и обогащения.

Решение

Я разделил архитектуру на два независимых контура. Это позволило сразу дать маркетингу рабочую базу и настроить обновление в будущем.

Контур 1: исторические данные (разовый Python-скрипт)
Я поднял всю накопленную историю продаж за раз. Скрипт прошел по заказам с двух складов (интернет-магазин и шоурум), очистил данные, обогатил их нужными метриками и залил 21 800 контактов в Unisender. Это стартовое состояние. Маркетинг сразу получил полную базу для работы.

Контур 2: синхронизация онлайн (n8n)
Здесь я настроил автоматизацию для новых отгрузок. Вебхук из МойСклад ловит событие по отгрузке. Дальше автоматизация в n8n фильтрует заказ по складу и типу контрагента, обогащает теми же полями, что и в Контуре 1, и отправляет контакт в Unisender.

Чтобы в Unisender уходили чистые сегменты, а не мусор, в оба контура я зашил логику обработки:

  • Вытащил гео из комментариев к заказам. Поле адреса было пустым, поэтому я написал парсер с белым списком на ~2600 городов РФ. Итог - вытащил гео для 46% базы и обогатил рассылку.
  • Достал принты с родительских товаров. В МойСклад принт висел на родительском товаре, а не на модификации. Настроил программный обход от модификации к родителю. Итог - 96% базы размечено по принтам.
  • Внедрил двойной фильтр оптовиков. Отсекал юрлиц по тегам контрагента плюс ручному стоп-листу, чтобы B2B-клиенты гарантированно не получали розничную рассылку.
  • Настроил расчет LTV. Считал ценность клиента в рублях, но программно вычитал из чека стоимость доставки и сервисных сборов.

Результат

Маркетинг получил сегментируемую базу из 21 800 контактов вместо плоского списка email. Теперь отдел может собирать узкие аудитории: VIP-клиентов для премиум-офферов, покупателей конкретного принта под допродажу той же линейки, клиентов по городу под гео-акции и новичков под догоняющую цепочку.

Цифры по итогу интеграции:

  • 21 800 контактов загружено в Unisender с полной разметкой.
  • 96% покрытие базы по принтам.
  • 46% покрытие по гео (спасенные данные из комментариев к заказам).
  • 808 VIP-клиентов выделено в отдельные сегменты (680 клиентов с LTV от 100к, из них 128 - от 200к. Готовые сегменты под премиум-офферы.).

Новые заказы подтягиваются автоматически. База обновляется без ручного труда, менеджеры не делают выгрузок, а рассылки уходят по актуальным данным.

Нужна такая же прозрачная сегментация без ручного труда?

Разберём, как реализовать это под ваш проект.

Написать в Telegram