---
title: Customer
description: Subscribe to field-level changes on the Customer GraphQL Admin API object.
api_version: unstable
source_url:
  html: 'https://shopify.dev/docs/api/events/latest/customer'
  md: 'https://shopify.dev/docs/api/events/latest/customer.md'
---

# Customer

**Requires \`read\_customers\` access scope.:**

Subscribe to field-level changes on the [`Customer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer) GraphQL Admin API object. You can subscribe to created, deleted, and updated resources, as well as changes to specific fields.

Each topic corresponds to a commerce resource (for example, a customer) that can exist independently within its domain. Child entities that depend on a parent within the same domain don't have their own topic. Instead, changes to child entities trigger a delivery on the parent topic. Calculated fields, derived fields, auto-updated timestamps, and cross-domain fields aren't available as triggers.

A subscription can combine multiple triggers. Your custom query can include any data available in the GraphQL Admin API, including fields unrelated to the subscribed topic, so each delivery contains exactly what your app needs.

## shopify.app.toml

```toml
[events]
api_version = "unstable"


[[events.subscription]]
handle = "my_customer_events"


topic = "Customer"
actions = ["update"]
triggers = [
    "customer.addressesV2",
    "customer.firstName"
]


uri = "https://your-app.com/events"


query = """
query customer_details($customerId: ID!) {
  customer(id: $customerId) {
    id
    firstName
    state
  }
  shop {
    id
  }
}
"""


# Optional
query_filter = "customer.state:'ENABLED'"
```

***

## Supported triggers

Field-level triggers for `Customer` subscriptions.

All triggers require the `read_customers` access scope, and those triggers that require additional scopes are documented where relevant. Deprecated triggers are listed last.

Subscriptions can be made up of multiple triggers. When a merchant action impacts multiple triggers, the deliveries share the same `shopify-event-id` header. Each individually updated field has a unique composite key in the `shopify-webhook-id` header. Use this value to differentiate duplicate deliveries.

Custom queries aren't limited to [`Customer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer). They can query the full GraphQL Admin API.

### customer

Fires when events involve the [`Customer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer) object.

The `"create"` and `"delete"` actions are only relevant within the context of this parent topic. Use `fields_changed` to follow or replicate impacted data after a delete event. Define a custom query to retrieve specific fields from create events.

Collect details about changes to the object by subscribing to the trigger along with the `"update"` action, though it's recommended that you narrow your subscription to one of the other triggers below.

**Variables:** `customerId`

### customer​.addressesV2

Fires when the [`addressesV2`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer#field-Customer.fields.addressesV2) field on the [`Customer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `addressesV2` field represents the addresses associated with the customer.

**Variables:** `addressesV2Id`, `customerId`

### customer​.addressesV2​.address1

Fires when the [`address1`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/MailingAddress#field-MailingAddress.fields.address1) field on the [`MailingAddress`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/MailingAddress) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `address1` field represents the first line of the address.

**Variables:** `addressesV2Id`, `customerId`

### customer​.addressesV2​.address2

Fires when the [`address2`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/MailingAddress#field-MailingAddress.fields.address2) field on the [`MailingAddress`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/MailingAddress) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `address2` field represents the second line of the address.

**Variables:** `addressesV2Id`, `customerId`

### customer​.addressesV2​.city

Fires when the [`city`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/MailingAddress#field-MailingAddress.fields.city) field on the [`MailingAddress`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/MailingAddress) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `city` field represents the name of the city, district, village, or town.

**Variables:** `addressesV2Id`, `customerId`

### customer​.addressesV2​.company

Fires when the [`company`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/MailingAddress#field-MailingAddress.fields.company) field on the [`MailingAddress`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/MailingAddress) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `company` field represents the name of the customer's company or organization.

**Variables:** `addressesV2Id`, `customerId`

### customer​.addressesV2​.countryCodeV2

Fires when the [`countryCodeV2`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/MailingAddress#field-MailingAddress.fields.countryCodeV2) field on the [`MailingAddress`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/MailingAddress) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `countryCodeV2` field represents the two-letter code for the country of the address.

**Variables:** `addressesV2Id`, `customerId`

### customer​.addressesV2​.firstName

Fires when the [`firstName`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/MailingAddress#field-MailingAddress.fields.firstName) field on the [`MailingAddress`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/MailingAddress) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `firstName` field represents the first name of the customer.

**Variables:** `addressesV2Id`, `customerId`

### customer​.addressesV2​.lastName

Fires when the [`lastName`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/MailingAddress#field-MailingAddress.fields.lastName) field on the [`MailingAddress`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/MailingAddress) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `lastName` field represents the last name of the customer.

**Variables:** `addressesV2Id`, `customerId`

### customer​.addressesV2​.latitude

Fires when the [`latitude`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/MailingAddress#field-MailingAddress.fields.latitude) field on the [`MailingAddress`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/MailingAddress) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `latitude` field represents the latitude coordinate of the customer address.

**Variables:** `addressesV2Id`, `customerId`

### customer​.addressesV2​.longitude

Fires when the [`longitude`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/MailingAddress#field-MailingAddress.fields.longitude) field on the [`MailingAddress`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/MailingAddress) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `longitude` field represents the longitude coordinate of the customer address.

**Variables:** `addressesV2Id`, `customerId`

### customer​.addressesV2​.phone

Fires when the [`phone`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/MailingAddress#field-MailingAddress.fields.phone) field on the [`MailingAddress`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/MailingAddress) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `phone` field represents a unique phone number for the customer.

**Variables:** `addressesV2Id`, `customerId`

### customer​.addressesV2​.provinceCode

Fires when the [`provinceCode`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/MailingAddress#field-MailingAddress.fields.provinceCode) field on the [`MailingAddress`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/MailingAddress) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `provinceCode` field represents the alphanumeric code for the region.

**Variables:** `addressesV2Id`, `customerId`

### customer​.addressesV2​.zip

Fires when the [`zip`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/MailingAddress#field-MailingAddress.fields.zip) field on the [`MailingAddress`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/MailingAddress) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `zip` field represents the zip or postal code of the address.

**Variables:** `addressesV2Id`, `customerId`

### customer​.amountSpent

Fires when the [`amountSpent`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer#field-Customer.fields.amountSpent) field on the [`Customer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `amountSpent` field represents the total amount that the customer has spent on orders in their lifetime.

**Variables:** `customerId`

### customer​.dataSaleOptOut

Fires when the [`dataSaleOptOut`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer#field-Customer.fields.dataSaleOptOut) field on the [`Customer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `dataSaleOptOut` field indicates whether the customer has opted out of having their data sold.

**Variables:** `customerId`

### customer​.defaultAddress

Fires when the [`defaultAddress`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer#field-Customer.fields.defaultAddress) field on the [`Customer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `defaultAddress` field represents the default address associated with the customer.

**Variables:** `customerId`

### customer​.defaultEmailAddress

Fires when the [`defaultEmailAddress`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer#field-Customer.fields.defaultEmailAddress) field on the [`Customer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `defaultEmailAddress` field represents the customer's default email address.

**Variables:** `customerId`

### customer​.defaultEmailAddress​.marketingOptInLevel

Fires when the [`marketingOptInLevel`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/CustomerEmailAddress#field-CustomerEmailAddress.fields.marketingOptInLevel) field on the [`CustomerEmailAddress`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/CustomerEmailAddress) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `marketingOptInLevel` field represents the marketing subscription opt-in level, as described by the M3AAWG best practices guidelines, received when the marketing consent was updated.

**Variables:** `customerId`

### customer​.defaultEmailAddress​.marketingState

Fires when the [`marketingState`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/CustomerEmailAddress#field-CustomerEmailAddress.fields.marketingState) field on the [`CustomerEmailAddress`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/CustomerEmailAddress) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `marketingState` field indicates whether the customer has subscribed to email marketing.

**Variables:** `customerId`

### customer​.defaultEmailAddress​.marketingUpdatedAt

Fires when the [`marketingUpdatedAt`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/CustomerEmailAddress#field-CustomerEmailAddress.fields.marketingUpdatedAt) field on the [`CustomerEmailAddress`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/CustomerEmailAddress) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `marketingUpdatedAt` field represents the date and time at which the marketing consent was updated.

**Variables:** `customerId`

### customer​.defaultEmailAddress​.openTrackingLevel

Fires when the [`openTrackingLevel`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/CustomerEmailAddress#field-CustomerEmailAddress.fields.openTrackingLevel) field on the [`CustomerEmailAddress`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/CustomerEmailAddress) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `openTrackingLevel` field indicates whether the customer has opted in to having their opened emails tracked.

**Variables:** `customerId`

### customer​.defaultEmailAddress​.sourceLocation

Fires when the [`sourceLocation`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/CustomerEmailAddress#field-CustomerEmailAddress.fields.sourceLocation) field on the [`CustomerEmailAddress`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/CustomerEmailAddress) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `sourceLocation` field represents the location where the customer consented to receive marketing material by email.

**Variables:** `customerId`

### customer​.defaultPhoneNumber

Fires when the [`defaultPhoneNumber`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer#field-Customer.fields.defaultPhoneNumber) field on the [`Customer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `defaultPhoneNumber` field represents the customer's default phone number.

**Variables:** `customerId`

### customer​.defaultPhoneNumber​.marketingOptInLevel

Fires when the [`marketingOptInLevel`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/CustomerPhoneNumber#field-CustomerPhoneNumber.fields.marketingOptInLevel) field on the [`CustomerPhoneNumber`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/CustomerPhoneNumber) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `marketingOptInLevel` field represents the marketing subscription opt-in level, as described by the M3AAWG best practices guidelines, received when the marketing consent was updated.

**Variables:** `customerId`

### customer​.defaultPhoneNumber​.marketingState

Fires when the [`marketingState`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/CustomerPhoneNumber#field-CustomerPhoneNumber.fields.marketingState) field on the [`CustomerPhoneNumber`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/CustomerPhoneNumber) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `marketingState` field indicates whether the customer has subscribed to SMS marketing material.

**Variables:** `customerId`

### customer​.defaultPhoneNumber​.marketingUpdatedAt

Fires when the [`marketingUpdatedAt`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/CustomerPhoneNumber#field-CustomerPhoneNumber.fields.marketingUpdatedAt) field on the [`CustomerPhoneNumber`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/CustomerPhoneNumber) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `marketingUpdatedAt` field represents the date and time at which the marketing consent was updated.

**Variables:** `customerId`

### customer​.defaultPhoneNumber​.sourceLocation

Fires when the [`sourceLocation`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/CustomerPhoneNumber#field-CustomerPhoneNumber.fields.sourceLocation) field on the [`CustomerPhoneNumber`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/CustomerPhoneNumber) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `sourceLocation` field represents the location where the customer consented to receive marketing material by SMS.

**Variables:** `customerId`

### customer​.firstName

Fires when the [`firstName`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer#field-Customer.fields.firstName) field on the [`Customer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `firstName` field represents the customer's first name.

**Variables:** `customerId`

### customer​.image

Fires when the [`image`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer#field-Customer.fields.image) field on the [`Customer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `image` field represents the image associated with the customer.

**Variables:** `customerId`

### customer​.lastName

Fires when the [`lastName`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer#field-Customer.fields.lastName) field on the [`Customer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `lastName` field represents the customer's last name.

**Variables:** `customerId`

### customer​.lastOrder

Fires when the [`lastOrder`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer#field-Customer.fields.lastOrder) field on the [`Customer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `lastOrder` field represents the customer's last order.

**Variables:** `customerId`

### customer​.locale

Fires when the [`locale`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer#field-Customer.fields.locale) field on the [`Customer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `locale` field represents the customer's locale.

**Variables:** `customerId`

### customer​.multipassIdentifier

Fires when the [`multipassIdentifier`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer#field-Customer.fields.multipassIdentifier) field on the [`Customer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `multipassIdentifier` field represents a unique identifier for the customer that's used with Multipass login.

**Variables:** `customerId`

### customer​.note

Fires when the [`note`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer#field-Customer.fields.note) field on the [`Customer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `note` field represents a note about the customer.

**Variables:** `customerId`

### customer​.numberOfOrders

Fires when the [`numberOfOrders`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer#field-Customer.fields.numberOfOrders) field on the [`Customer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `numberOfOrders` field represents the number of orders that the customer has made at the store in their lifetime.

**Variables:** `customerId`

### customer​.productSubscriberStatus

Fires when the [`productSubscriberStatus`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer#field-Customer.fields.productSubscriberStatus) field on the [`Customer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

Possible subscriber states of a customer defined by their subscription contracts.

**Variables:** `customerId`

### customer​.state

Fires when the [`state`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer#field-Customer.fields.state) field on the [`Customer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `state` field represents the state of the customer's account with the shop.

**Variables:** `customerId`

### customer​.tags

Fires when the [`tags`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer#field-Customer.fields.tags) field on the [`Customer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `tags` field represents a comma separated list of tags that have been added to the customer.

**Variables:** `customerId`

### customer​.taxExempt

Fires when the [`taxExempt`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer#field-Customer.fields.taxExempt) field on the [`Customer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `taxExempt` field indicates whether the customer is exempt from being charged taxes on their orders.

**Variables:** `customerId`

### customer​.taxExemptions

Fires when the [`taxExemptions`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer#field-Customer.fields.taxExemptions) field on the [`Customer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `taxExemptions` field represents the list of tax exemptions applied to the customer.

**Variables:** `customerId`

### customer​.verifiedEmail

Fires when the [`verifiedEmail`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer#field-Customer.fields.verifiedEmail) field on the [`Customer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `verifiedEmail` field indicates whether the customer has verified their email address.

**Variables:** `customerId`

### customer​.email

**Deprecated:**

Fires when the [`email`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer#field-Customer.fields.email) field on the [`Customer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `email` field represents the customer's email address.

**Variables:** `customerId`

### customer​.phone

**Deprecated:**

Fires when the [`phone`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer#field-Customer.fields.phone) field on the [`Customer`](https://shopify.dev/docs/api/admin-graphql/unstable/objects/Customer) object changes.

Subscribe to this trigger with the `"update"` action and include the field in a custom `query` to retrieve updated data from the payload. You can trace the field in subsequent requests using `fields_changed`.

The `phone` field represents the customer's phone number.

**Variables:** `customerId`

### Examples

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_ip735t"

  topic = "Customer"
  actions = ["create"]
  triggers = ["customer"]

  uri = "https://your-app.com/events"

  query = """
  query customer_details($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      state
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "create",
    "handle": "customer_evt_ip735t",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "state": "ENABLED"
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456']"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: create
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_ip735t
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_2rvfmz"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.addressesV2"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      addressesV2(first: 10) {
        nodes {
          id
        }
      }
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_2rvfmz",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "addressesV2": {
          "nodes": [
            {
              "id": "gid://shopify/MailingAddress/111"
            }
          ]
        }
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].addressesV2"
    ],
    "query_variables": {
      "addressesV2Id": "gid://shopify/Resource/441",
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_2rvfmz
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_yedttu"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.addressesV2.address1"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      addressesV2(first: 10) {
        nodes {
          address1
        }
      }
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_yedttu",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "addressesV2": {
          "nodes": [
            {
              "address1": "…"
            }
          ]
        }
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].addressesV2.address1"
    ],
    "query_variables": {
      "addressesV2Id": "gid://shopify/Resource/441",
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_yedttu
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_yedttt"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.addressesV2.address2"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      addressesV2(first: 10) {
        nodes {
          address2
        }
      }
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_yedttt",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "addressesV2": {
          "nodes": [
            {
              "address2": "…"
            }
          ]
        }
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].addressesV2.address2"
    ],
    "query_variables": {
      "addressesV2Id": "gid://shopify/Resource/441",
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_yedttt
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_zn61mq"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.addressesV2.city"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      addressesV2(first: 10) {
        nodes {
          city
        }
      }
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_zn61mq",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "addressesV2": {
          "nodes": [
            {
              "city": "…"
            }
          ]
        }
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].addressesV2.city"
    ],
    "query_variables": {
      "addressesV2Id": "gid://shopify/Resource/441",
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_zn61mq
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_fdl0zm"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.addressesV2.company"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      addressesV2(first: 10) {
        nodes {
          company
        }
      }
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_fdl0zm",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "addressesV2": {
          "nodes": [
            {
              "company": "…"
            }
          ]
        }
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].addressesV2.company"
    ],
    "query_variables": {
      "addressesV2Id": "gid://shopify/Resource/441",
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_fdl0zm
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_1h2i1yc"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.addressesV2.countryCodeV2"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      addressesV2(first: 10) {
        nodes {
          countryCodeV2
        }
      }
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_1h2i1yc",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "addressesV2": {
          "nodes": [
            {
              "countryCodeV2": "…"
            }
          ]
        }
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].addressesV2.countryCodeV2"
    ],
    "query_variables": {
      "addressesV2Id": "gid://shopify/Resource/441",
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_1h2i1yc
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_yrmb20"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.addressesV2.firstName"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      addressesV2(first: 10) {
        nodes {
          firstName
        }
      }
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_yrmb20",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "addressesV2": {
          "nodes": [
            {
              "firstName": "…"
            }
          ]
        }
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].addressesV2.firstName"
    ],
    "query_variables": {
      "addressesV2Id": "gid://shopify/Resource/441",
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_yrmb20
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_7zfjbc"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.addressesV2.lastName"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      addressesV2(first: 10) {
        nodes {
          lastName
        }
      }
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_7zfjbc",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "addressesV2": {
          "nodes": [
            {
              "lastName": "…"
            }
          ]
        }
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].addressesV2.lastName"
    ],
    "query_variables": {
      "addressesV2Id": "gid://shopify/Resource/441",
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_7zfjbc
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_cl7qt1"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.addressesV2.latitude"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      addressesV2(first: 10) {
        nodes {
          latitude
        }
      }
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_cl7qt1",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "addressesV2": {
          "nodes": [
            {
              "latitude": "…"
            }
          ]
        }
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].addressesV2.latitude"
    ],
    "query_variables": {
      "addressesV2Id": "gid://shopify/Resource/441",
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_cl7qt1
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_323vmu"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.addressesV2.longitude"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      addressesV2(first: 10) {
        nodes {
          longitude
        }
      }
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_323vmu",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "addressesV2": {
          "nodes": [
            {
              "longitude": "…"
            }
          ]
        }
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].addressesV2.longitude"
    ],
    "query_variables": {
      "addressesV2Id": "gid://shopify/Resource/441",
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_323vmu
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_142peex"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.addressesV2.phone"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      addressesV2(first: 10) {
        nodes {
          phone
        }
      }
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_142peex",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "addressesV2": {
          "nodes": [
            {
              "phone": "…"
            }
          ]
        }
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].addressesV2.phone"
    ],
    "query_variables": {
      "addressesV2Id": "gid://shopify/Resource/441",
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_142peex
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_unm6du"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.addressesV2.provinceCode"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      addressesV2(first: 10) {
        nodes {
          provinceCode
        }
      }
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_unm6du",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "addressesV2": {
          "nodes": [
            {
              "provinceCode": "…"
            }
          ]
        }
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].addressesV2.provinceCode"
    ],
    "query_variables": {
      "addressesV2Id": "gid://shopify/Resource/441",
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_unm6du
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_11o75om"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.addressesV2.zip"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      addressesV2(first: 10) {
        nodes {
          zip
        }
      }
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_11o75om",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "addressesV2": {
          "nodes": [
            {
              "zip": "…"
            }
          ]
        }
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].addressesV2.zip"
    ],
    "query_variables": {
      "addressesV2Id": "gid://shopify/Resource/441",
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_11o75om
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_9tuzjz"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.amountSpent"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      amountSpent {
        __typename
      }
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_9tuzjz",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "amountSpent": {
          "__typename": "MoneyV2"
        }
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].amountSpent"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_9tuzjz
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_uqnsn5"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.dataSaleOptOut"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      dataSaleOptOut
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_uqnsn5",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "dataSaleOptOut": "…"
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].dataSaleOptOut"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_uqnsn5
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_1sron02"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.defaultAddress"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      defaultAddress {
        id
      }
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_1sron02",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "defaultAddress": {
          "id": "gid://shopify/MailingAddress/111"
        }
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].defaultAddress"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_1sron02
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_1hues5a"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.defaultEmailAddress"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      defaultEmailAddress {
        __typename
      }
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_1hues5a",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "defaultEmailAddress": {
          "__typename": "CustomerEmailAddress"
        }
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].defaultEmailAddress"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_1hues5a
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_1mk19gu"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.defaultEmailAddress.marketingOptInLevel"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      defaultEmailAddress {
        marketingOptInLevel
      }
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_1mk19gu",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "defaultEmailAddress": {
          "marketingOptInLevel": "…"
        }
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].defaultEmailAddress.marketingOptInLevel"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_1mk19gu
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_1ul4lr7"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.defaultEmailAddress.marketingState"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      defaultEmailAddress {
        marketingState
      }
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_1ul4lr7",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "defaultEmailAddress": {
          "marketingState": "…"
        }
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].defaultEmailAddress.marketingState"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_1ul4lr7
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_p92kms"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.defaultEmailAddress.marketingUpdatedAt"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      defaultEmailAddress {
        marketingUpdatedAt
      }
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_p92kms",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "defaultEmailAddress": {
          "marketingUpdatedAt": "…"
        }
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].defaultEmailAddress.marketingUpdatedAt"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_p92kms
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_1r9tot9"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.defaultEmailAddress.openTrackingLevel"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      defaultEmailAddress {
        openTrackingLevel
      }
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_1r9tot9",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "defaultEmailAddress": {
          "openTrackingLevel": "…"
        }
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].defaultEmailAddress.openTrackingLevel"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_1r9tot9
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_47yu1c"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.defaultEmailAddress.sourceLocation"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      defaultEmailAddress {
        sourceLocation {
          id
        }
      }
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_47yu1c",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "defaultEmailAddress": {
          "sourceLocation": {
            "id": "gid://shopify/Location/111"
          }
        }
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].defaultEmailAddress.sourceLocation"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_47yu1c
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_165a43f"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.defaultPhoneNumber"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      defaultPhoneNumber {
        __typename
      }
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_165a43f",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "defaultPhoneNumber": {
          "__typename": "CustomerPhoneNumber"
        }
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].defaultPhoneNumber"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_165a43f
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_mcmxnv"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.defaultPhoneNumber.marketingOptInLevel"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      defaultPhoneNumber {
        marketingOptInLevel
      }
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_mcmxnv",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "defaultPhoneNumber": {
          "marketingOptInLevel": "…"
        }
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].defaultPhoneNumber.marketingOptInLevel"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_mcmxnv
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_a1q3gm"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.defaultPhoneNumber.marketingState"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      defaultPhoneNumber {
        marketingState
      }
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_a1q3gm",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "defaultPhoneNumber": {
          "marketingState": "…"
        }
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].defaultPhoneNumber.marketingState"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_a1q3gm
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_h975ox"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.defaultPhoneNumber.marketingUpdatedAt"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      defaultPhoneNumber {
        marketingUpdatedAt
      }
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_h975ox",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "defaultPhoneNumber": {
          "marketingUpdatedAt": "…"
        }
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].defaultPhoneNumber.marketingUpdatedAt"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_h975ox
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_bs99md"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.defaultPhoneNumber.sourceLocation"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      defaultPhoneNumber {
        sourceLocation {
          id
        }
      }
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_bs99md",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "defaultPhoneNumber": {
          "sourceLocation": {
            "id": "gid://shopify/Location/111"
          }
        }
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].defaultPhoneNumber.sourceLocation"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_bs99md
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_18iljte"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.firstName"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      firstName
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_18iljte",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "firstName": "…"
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].firstName"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_18iljte
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_19z0jwo"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.image"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      image {
        id
      }
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_19z0jwo",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "image": {
          "id": "gid://shopify/Image/111"
        }
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].image"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_19z0jwo
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_1dvs1sy"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.lastName"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      lastName
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_1dvs1sy",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "lastName": "…"
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].lastName"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_1dvs1sy
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_cfzlkb"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.lastOrder"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      lastOrder {
        id
      }
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_cfzlkb",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "lastOrder": {
          "id": "gid://shopify/Order/111"
        }
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].lastOrder"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_cfzlkb
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_mc31bb"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.locale"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      locale
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_mc31bb",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "locale": "…"
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].locale"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_mc31bb
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_12i8xqs"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.multipassIdentifier"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      multipassIdentifier
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_12i8xqs",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "multipassIdentifier": "…"
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].multipassIdentifier"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_12i8xqs
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_eausrj"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.note"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      note
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_eausrj",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "note": "…"
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].note"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_eausrj
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_5u8g9k"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.numberOfOrders"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      numberOfOrders
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_5u8g9k",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "numberOfOrders": "…"
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].numberOfOrders"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_5u8g9k
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_y0wll6"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.productSubscriberStatus"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      productSubscriberStatus
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_y0wll6",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "productSubscriberStatus": "…"
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].productSubscriberStatus"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_y0wll6
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_1abbgm0"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.state"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      state
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_1abbgm0",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "state": "…"
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].state"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_1abbgm0
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_ebhkoe"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.tags"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      tags
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_ebhkoe",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "tags": [
          "…"
        ]
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].tags"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_ebhkoe
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_eyo8gj"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.taxExempt"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      taxExempt
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_eyo8gj",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "taxExempt": "…"
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].taxExempt"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_eyo8gj
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_nwqj3c"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.taxExemptions"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      taxExemptions
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_nwqj3c",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "taxExemptions": [
          "…"
        ]
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].taxExemptions"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_nwqj3c
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_fqbklh"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.verifiedEmail"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      verifiedEmail
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_fqbklh",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "verifiedEmail": "customer@example.com"
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].verifiedEmail"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_fqbklh
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_1a1o2df"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.email"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_1a1o2df",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com"
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].email"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_1a1o2df
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

* #### Subscribe via app configuration

  ##### shopify.app.toml

  ```toml
  [events]
  api_version = "unstable"

  [[events.subscription]]
  handle = "customer_evt_1af2a6r"

  topic = "Customer"
  actions = ["update"]
  triggers = ["customer.phone"]

  uri = "https://your-app.com/events"

  query = """
  query customer_event_payload($customerId: ID!) {
    customer(id: $customerId) {
      id
      displayName
      email
      phone
    }
  }
  """

  # Optional
  query_filter = "customer.state:'ENABLED'"
  ```

  ##### Payload

  ```json
  {
    "topic": "Customer",
    "action": "update",
    "handle": "customer_evt_1af2a6r",
    "data": {
      "customer": {
        "id": "gid://shopify/Customer/456",
        "displayName": "Example customer",
        "email": "customer@example.com",
        "phone": "…"
      }
    },
    "fields_changed": [
      "customer[id: 'gid://shopify/Customer/456'].phone"
    ],
    "query_variables": {
      "customerId": "gid://shopify/Customer/456"
    }
  }
  ```

  ##### Headers

  ```bash
  shopify-action: update
  shopify-api-version: unstable
  shopify-event-id: 44444444-4444-4444-4444-444444444444
  shopify-handle: customer_evt_1af2a6r
  shopify-hmac-sha256: 61lWIGuA2nXdHRjhMU/+EDw2y3Eg0mPKJ+RhR7dKKIM=
  shopify-resource-id: gid://shopify/Customer/456
  shopify-shop-domain: your-shop.myshopify.com
  shopify-topic: Customer
  shopify-triggered-at: 2026-03-23T16:24:35.267Z
  shopify-webhook-id: 7613956a-18a5-332d-b71e-e164bbcacdba
  ```

***
