Skip to main content

First sign-ins to customer accounts now set Customer.state and send customers/enable webhooks

A customer's first sign-in to customer accounts now sets Customer.state to ENABLED and sends the customers/enable and customers/update webhooks. This matches how account activation works in legacy customer accounts.

What's changing

When a customer signs in to customer accounts for the first time, Shopify sets Customer.state to ENABLED. Shopify then sends the customers/enable and customers/update webhooks. This happens for every sign-in method, including email code, Shop, Google, Facebook, Apple, and third-party identity providers.

Until now, customers who used customer accounts stayed DISABLED after they signed in. As a result, Liquid customer.has_account returned false for them. It now returns true after their first sign-in.

Customers who already signed in

Customers who signed in to customer accounts between May 27, 2024 and today are already ENABLED. Shopify set their state in a one-time update that didn't send any webhooks. Don't rely on updated_at to find these customers, because the update didn't change it for all of them. Query Customer.state instead.

Customers who haven't signed in since May 27, 2024 stay DISABLED. Their next sign-in counts as a first sign-in. It sets their state to ENABLED and sends both webhooks.

Who's affected

You're affected if your app, integration, or theme does any of the following:

What you should do

Most apps don't need changes. If your app sends welcome messages, awards loyalty points, or syncs records when it receives customers/enable or sees state: ENABLED, check these things:

  • A customer's first sign-in is the moment you want your app to act.
  • Your app handles customers who became ENABLED in the one-time update. They didn't trigger webhooks, so an app that only listens for webhooks won't see them.
  • Your theme still works as you expect now that customer.has_account returns true for customers who signed in to customer accounts.
Was this page helpful?