Receiving 2 Different Webhooks for a Customer Change

Topic summary

Developers are experiencing unexpected webhook behavior following Shopify’s 2025-04 API update, which split certain customer data into five new specialized webhooks (tags, email/SMS marketing consent, purchasing summary).

Core Issue:

  • When updating customer tags, systems receive BOTH the new CUSTOMER_TAGS_ADDED webhook AND the legacy CUSTOMER_UPDATE webhook
  • This triggers duplicate change detection, causing processing problems

Developer Confusion:

  • The separation was intended to isolate specific data changes, but the old webhook still fires for these events
  • Shopify’s documentation doesn’t explain why both webhooks trigger simultaneously
  • Some developers find this beneficial (can use GraphQL to retrieve removed data without subscribing to new webhooks), while others see it as redundant and problematic

Status: Unresolved. Multiple developers report the same behavior with no official clarification from Shopify on whether this is intentional or how to handle the duplication.

Summarized with AI on October 25. AI used: claude-sonnet-4-5-20250929.

Hi all. In the 2025-04 version of the Shopify API, some fields were removed from the Customer webhook and replaced with 5 new customer webhooks: https://shopify.dev/docs/api/release-notes/2025-01#customer-payloads-in-webhook-topics. I am working directly with tags, and have observed the following:

If I update the tags on a Customer, I receive BOTH the CUSTOMER_TAGS_ADDED and CUSTOMER_UPDATE webhook. This creates problems in my system as it detects as 2 changes when its only actually 1. This doesn’t make sense to me as I would think the whole reason for separating them out is to only receive the tags one when tags change. Does anyone know why this is occurring and what I can do about this? Thank you!

Do you have any update on this? I’m facing same issues when testing.

Shopify hasn’t mentioned anything related to that. If they have moved the removed the data from customers webhook and moved to a new webhook, why old webhook is getting triggered? For my usecase, it is good that I’m receiving hit on customers/update webhook because I can use graphQL query and get the data shopify removed. I don’t need to subscribe the other webhooks like email/sms_marketing consent update webhook, customer purchasing summary webhook or tags added/removed webhook.

But still devs including me are confused, why shopify did this? This is completely useless and redundant webhook. Shopify hasn’t cleared it’s stance on this.