Shopify стала включать Customer.state после первого входа: что проверить в CRM
Первый вход в customer accounts Shopify меняет state и отправляет webhooks. Как учесть разовое обновление старых профилей без повторных приветствий и бонусов.
Содержание статьи
Shopify изменила поведение customer accounts: после первого входа Customer.state становится ENABLED, а платформа отправляет customers/enable и customers/update. Анонс опубликован 28 октября. Обновление важно для CRM, программ лояльности и приветственных сценариев, которые используют включение аккаунта как сигнал к дальнейшему действию.
Что изменилось для новых входов
Ранее пользователи новых customer accounts могли сохранять статус DISABLED после входа, а Liquid customer.has_account возвращал false. Теперь после первого входа он возвращает true. Изменение распространяется на поддерживаемые способы входа, включая код по email и сторонних провайдеров. Разработчику нужно проверить, совпадает ли этот момент с бизнес-событием, на которое рассчитана автоматизация.
Вход в аккаунт, первый заказ и согласие на маркетинг — разные события. Если приветственный сценарий должен запускаться после покупки, одного ENABLED недостаточно. Аналогично не следует начислять бонус повторно лишь потому, что интеграция раньше не распознавала существующий аккаунт и теперь впервые увидела новое для себя состояние.
Разовое обновление прошло без webhooks
Shopify уже перевела в ENABLED клиентов, входивших с 27 мая 2024 года до дня анонса. Для этой разовой операции webhooks не отправлялись, а updated_at изменился не у всех записей. Платформа прямо рекомендует проверять Customer.state, а не пытаться найти всех таких пользователей только по времени обновления.
Поэтому поток событий и запрос текущего состояния решают разные задачи. CRM, которая слушает исключительно customers/enable, не увидит разовую миграцию. Подготовьте отдельную сверку нужных профилей и определите, какое действие действительно необходимо. Сверка состояния не должна автоматически запускать приветственные сообщения для всей восстановленной истории.
Проверьте обработку одного клиента
Составьте контрольные сценарии: новый вход, уже мигрировавший профиль и клиент, не входивший с указанной даты. Для каждого запишите ожидаемый state, наличие события и действие интеграции. Отдельно проверьте, что получение двух связанных webhooks не создаёт двойную операцию на стороне программы лояльности.
Логика синхронизации по времени разобрана в материале о границе секунды в запросах Shopify. Но здесь проблема иная: историческая операция могла вообще не изменить updated_at. Изменение оператора сравнения даты не восстановит события, которые по условиям миграции не отправлялись.
Уточните смысл автоматических коммуникаций
Если интеграция отправляет сообщения при ENABLED, проверьте, что первый вход является согласованным основанием именно для этого письма. Для рекламной подписки отдельно учитывайте её состояние; подтверждение double opt-in не заменяется статусом клиентского аккаунта. Объединение этих признаков способно создать нежелательные отправки.
После корректировки проверьте также тему магазина, если она использует customer.has_account. Сохраните результаты сверки и список исключений. Успешная миграция означает, что CRM отражает актуальный статус без повторных бонусов и ошибочных сообщений, а не только то, что количество записей ENABLED стало больше, чем в предыдущем отчёте.
Для начислений сохраняйте собственный признак выполненной операции, чтобы повторная сверка состояния не воспринималась как новая награда.
Материал отражает сведения на указанную дату. Правила и условия работы площадок могут измениться. Редакционные принципы