Customer
read_customers access scope.Subscribe to field-level changes on the 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.
Anchor to Supported triggersSupported 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. They can query the full GraphQL Admin API.
Fires when events involve the Customer object.
The "create" and "delete" actions are only relevant within the context of this parent topic. Use 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:
Anchor to list-of-topics-customer.addressesV2customer .addressesV2
Fires when the field on the 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 .
The field represents the addresses associated with the customer.
Variables: ,
Anchor to list-of-topics-customer.addressesV2.address1customer .addressesV2 .address1
Fires when the address1 field on the 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 .
The address1 field represents the first line of the address.
Variables: ,
Anchor to list-of-topics-customer.addressesV2.address2customer .addressesV2 .address2
Fires when the address2 field on the 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 .
The address2 field represents the second line of the address.
Variables: ,
Anchor to list-of-topics-customer.addressesV2.citycustomer .addressesV2 .city
Fires when the city field on the 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 .
The city field represents the name of the city, district, village, or town.
Variables: ,
Anchor to list-of-topics-customer.addressesV2.companycustomer .addressesV2 .company
Fires when the company field on the 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 .
The company field represents the name of the customer's company or organization.
Variables: ,
Anchor to list-of-topics-customer.addressesV2.countryCodeV2customer .addressesV2 .countryCodeV2
Fires when the field on the 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 .
The field represents the two-letter code for the country of the address.
Variables: ,
Anchor to list-of-topics-customer.addressesV2.firstNamecustomer .addressesV2 .firstName
Anchor to list-of-topics-customer.addressesV2.lastNamecustomer .addressesV2 .lastName
Anchor to list-of-topics-customer.addressesV2.latitudecustomer .addressesV2 .latitude
Fires when the latitude field on the 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 .
The latitude field represents the latitude coordinate of the customer address.
Variables: ,
Anchor to list-of-topics-customer.addressesV2.longitudecustomer .addressesV2 .longitude
Fires when the longitude field on the 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 .
The longitude field represents the longitude coordinate of the customer address.
Variables: ,
Anchor to list-of-topics-customer.addressesV2.phonecustomer .addressesV2 .phone
Fires when the phone field on the 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 .
The phone field represents a unique phone number for the customer.
Variables: ,
Anchor to list-of-topics-customer.addressesV2.provinceCodecustomer .addressesV2 .provinceCode
Fires when the field on the 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 .
The field represents the alphanumeric code for the region.
Variables: ,
Anchor to list-of-topics-customer.addressesV2.zipcustomer .addressesV2 .zip
Fires when the zip field on the 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 .
The zip field represents the zip or postal code of the address.
Variables: ,
Anchor to list-of-topics-customer.amountSpentcustomer .amountSpent
Fires when the field on the 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 .
The field represents the total amount that the customer has spent on orders in their lifetime.
Variables:
Anchor to list-of-topics-customer.dataSaleOptOutcustomer .dataSaleOptOut
Fires when the field on the 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 .
The field indicates whether the customer has opted out of having their data sold.
Variables:
Anchor to list-of-topics-customer.defaultAddresscustomer .defaultAddress
Fires when the field on the 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 .
The field represents the default address associated with the customer.
Variables:
Anchor to list-of-topics-customer.defaultEmailAddresscustomer .defaultEmailAddress
Fires when the field on the 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 .
The field represents the customer's default email address.
Variables:
Anchor to list-of-topics-customer.defaultEmailAddress.marketingOptInLevelcustomer .defaultEmailAddress .marketingOptInLevel
Fires when the field on the 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 .
The field represents the marketing subscription opt-in level, as described by the M3AAWG best practices guidelines,
received when the marketing consent was updated.
Variables:
Anchor to list-of-topics-customer.defaultEmailAddress.marketingStatecustomer .defaultEmailAddress .marketingState
Fires when the field on the 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 .
The field indicates whether the customer has subscribed to email marketing.
Variables:
Anchor to list-of-topics-customer.defaultEmailAddress.marketingUpdatedAtcustomer .defaultEmailAddress .marketingUpdatedAt
Fires when the field on the 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 .
The field represents the date and time at which the marketing consent was updated.
Variables:
Anchor to list-of-topics-customer.defaultEmailAddress.openTrackingLevelcustomer .defaultEmailAddress .openTrackingLevel
Fires when the field on the 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 .
The field indicates whether the customer has opted in to having their opened emails tracked.
Variables:
Anchor to list-of-topics-customer.defaultEmailAddress.sourceLocationcustomer .defaultEmailAddress .sourceLocation
Fires when the field on the 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 .
The field represents the location where the customer consented to receive marketing material by email.
Variables:
Anchor to list-of-topics-customer.defaultPhoneNumbercustomer .defaultPhoneNumber
Fires when the field on the 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 .
The field represents the customer's default phone number.
Variables:
Anchor to list-of-topics-customer.defaultPhoneNumber.marketingOptInLevelcustomer .defaultPhoneNumber .marketingOptInLevel
Fires when the field on the 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 .
The field represents the marketing subscription opt-in level, as described by the M3AAWG best practices guidelines,
received when the marketing consent was updated.
Variables:
Anchor to list-of-topics-customer.defaultPhoneNumber.marketingStatecustomer .defaultPhoneNumber .marketingState
Fires when the field on the 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 .
The field indicates whether the customer has subscribed to SMS marketing material.
Variables:
Anchor to list-of-topics-customer.defaultPhoneNumber.marketingUpdatedAtcustomer .defaultPhoneNumber .marketingUpdatedAt
Fires when the field on the 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 .
The field represents the date and time at which the marketing consent was updated.
Variables:
Anchor to list-of-topics-customer.defaultPhoneNumber.sourceLocationcustomer .defaultPhoneNumber .sourceLocation
Fires when the field on the 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 .
The field represents the location where the customer consented to receive marketing material by SMS.
Variables:
Anchor to list-of-topics-customer.firstNamecustomer .firstName
Fires when the field on the 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 .
The field represents the customer's first name.
Variables:
Anchor to list-of-topics-customer.imagecustomer .image
Fires when the image field on the 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 .
The image field represents the image associated with the customer.
Variables:
Anchor to list-of-topics-customer.lastNamecustomer .lastName
Fires when the field on the 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 .
The field represents the customer's last name.
Variables:
Anchor to list-of-topics-customer.lastOrdercustomer .lastOrder
Fires when the field on the 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 .
The field represents the customer's last order.
Variables:
Anchor to list-of-topics-customer.localecustomer .locale
Fires when the locale field on the 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 .
The locale field represents the customer's locale.
Variables:
Anchor to list-of-topics-customer.multipassIdentifiercustomer .multipassIdentifier
Fires when the field on the 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 .
The field represents a unique identifier for the customer that's used with Multipass login.
Variables:
Anchor to list-of-topics-customer.notecustomer .note
Fires when the note field on the 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 .
The note field represents a note about the customer.
Variables:
Anchor to list-of-topics-customer.numberOfOrderscustomer .numberOfOrders
Fires when the field on the 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 .
The field represents the number of orders that the customer has made at the store in their lifetime.
Variables:
Anchor to list-of-topics-customer.productSubscriberStatuscustomer .productSubscriberStatus
Fires when the field on the 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 .
Possible subscriber states of a customer defined by their subscription contracts.
Variables:
Anchor to list-of-topics-customer.statecustomer .state
Fires when the state field on the 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 .
The state field represents the state of the customer's account with the shop.
Variables:
Anchor to list-of-topics-customer.taxExemptcustomer .taxExempt
Fires when the field on the 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 .
The field indicates whether the customer is exempt from being charged taxes on their orders.
Variables:
Anchor to list-of-topics-customer.taxExemptionscustomer .taxExemptions
Fires when the field on the 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 .
The field represents the list of tax exemptions applied to the customer.
Variables:
Anchor to list-of-topics-customer.verifiedEmailcustomer .verifiedEmail
Fires when the field on the 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 .
The field indicates whether the customer has verified their email address.
Variables:
Anchor to list-of-topics-customer.emailcustomer .email
Fires when the email field on the 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 .
The email field represents the customer's email address.
Variables:
Anchor to list-of-topics-customer.phonecustomer .phone
Fires when the phone field on the 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 .
The phone field represents the customer's phone number.
Variables: