Menu
customerByIdentifier
Fetch a single customer by its ID.
Use it in a workflow
- Add a step and choose the Shopify connector.
- Pick the customerByIdentifier action (under Customer).
- Fill in the fields below, then reference the result from later steps as
{{customerbyidentifier.response.data}}.
Query
This is the query the action sends by default. Edit it in the step's Query field to change which fields come back.
query CustomerByIdentifier($identifier: CustomerIdentifierInput!) {
customerByIdentifier(identifier: $identifier) {
amountSpent {
amount
currencyCode
}
canDelete
companyContactProfiles {
company {
contactCount
contactsCount
createdAt
customerSince
defaultCursor
defaultRole
externalId
hasTimelineComment
id
lifetimeDuration
locationsCount
mainContact
name
note
ordersCount
totalSpent
updatedAt
}
createdAt
customer
id
isMainContact
lifetimeDuration
locale
title
updatedAt
}
createdAt
dataSaleOptOut
defaultAddress {
address1
address2
city
company
coordinatesValidated
country
countryCode
countryCodeV2
firstName
formattedArea
id
lastName
latitude
longitude
name
phone
province
provinceCode
timeZone
validationResultSummary
zip
}
defaultEmailAddress {
emailAddress
marketingOptInLevel
marketingState
marketingUnsubscribeUrl
marketingUpdatedAt
openTrackingLevel
openTrackingUrl
sourceLocation {
activatable
address
addressVerified
createdAt
deactivatable
deactivatedAt
deletable
fulfillmentService
fulfillsOnlineOrders
hasActiveInventory
hasUnfulfilledOrders
id
isActive
isFulfillmentService
isPrimary
legacyResourceId
localPickupSettingsV2
name
shipsInventory
suggestedAddresses
updatedAt
}
validFormat
}
defaultPhoneNumber {
marketingCollectedFrom
marketingOptInLevel
marketingState
marketingUpdatedAt
phoneNumber
sourceLocation {
activatable
address
addressVerified
createdAt
deactivatable
deactivatedAt
deletable
fulfillmentService
fulfillsOnlineOrders
hasActiveInventory
hasUnfulfilledOrders
id
isActive
isFulfillmentService
isPrimary
legacyResourceId
localPickupSettingsV2
name
shipsInventory
suggestedAddresses
updatedAt
}
whatsAppMarketingConsent {
collectedFrom
optInLevel
sourceLocation
state
updatedAt
}
}
displayName
email
emailMarketingConsent {
consentUpdatedAt
marketingOptInLevel
marketingState
sourceLocation {
activatable
address
addressVerified
createdAt
deactivatable
deactivatedAt
deletable
fulfillmentService
fulfillsOnlineOrders
hasActiveInventory
hasUnfulfilledOrders
id
isActive
isFulfillmentService
isPrimary
legacyResourceId
localPickupSettingsV2
name
shipsInventory
suggestedAddresses
updatedAt
}
}
firstName
hasTimelineComment
id
identityProviderSubjects {
createdAt
id
providerName
subject
updatedAt
}
lastName
lastOrder {
additionalFees {
id
name
price
taxLines
}
alerts {
actions
content
dismissibleHandle
icon
severity
title
}
app {
icon
id
name
}
attribution {
displayName
handle
icon
}
billingAddress {
address1
address2
city
company
coordinatesValidated
country
countryCode
countryCodeV2
firstName
formattedArea
id
lastName
latitude
longitude
name
phone
province
provinceCode
timeZone
validationResultSummary
zip
}
billingAddressMatchesShippingAddress
canMarkAsPaid
canNotifyCustomer
cancelReason
cancellation {
staffNote
}
cancelledAt
capturable
cartDiscountAmount
cartDiscountAmountSet {
presentmentMoney
shopMoney
}
cartToken
channel {
accountId
accountName
activeRegions
app
handle
id
marketsCount
name
navigationItems
overviewPath
resourceFeedback
specificationHandle
supportsFuturePublishing
}
channelInformation {
app
channelDefinition
channelId
displayName
id
}
checkoutToken
clientIp
closed
closedAt
confirmationNumber
confirmed
createdAt
currencyCode
currentCartDiscountAmountSet {
presentmentMoney
shopMoney
}
currentShippingPriceSet {
presentmentMoney
shopMoney
}
currentSubtotalLineItemsQuantity
currentSubtotalPriceSet {
presentmentMoney
shopMoney
}
currentTaxLines {
channelLiable
price
priceSet
rate
ratePercentage
source
title
}
currentTotalAdditionalFeesSet {
presentmentMoney
shopMoney
}
currentTotalDiscountsSet {
presentmentMoney
shopMoney
}
currentTotalDutiesSet {
presentmentMoney
shopMoney
}
currentTotalPriceSet {
presentmentMoney
shopMoney
}
currentTotalTaxSet {
presentmentMoney
shopMoney
}
currentTotalWeight
customAttributes {
key
value
}
customer
customerAcceptsMarketing
customerJourney {
customerOrderIndex
daysToConversion
firstVisit
lastVisit
moments
}
customerJourneySummary {
customerOrderIndex
daysToConversion
firstVisit
lastVisit
momentsCount
ready
}
customerLocale
discountCode
discountCodes
displayAddress {
address1
address2
city
company
coordinatesValidated
country
countryCode
countryCodeV2
firstName
formattedArea
id
lastName
latitude
longitude
name
phone
province
provinceCode
timeZone
validationResultSummary
zip
}
displayFinancialStatus
displayFulfillmentStatus
disputes {
id
initiatedAs
status
}
dutiesIncluded
edited
email
estimatedTaxes
fulfillable
fulfillmentsCount {
count
precision
}
fullyPaid
hasTimelineComment
id
landingPageDisplayText
landingPageUrl
legacyResourceId
merchantBusinessEntity {
address
archived
companyName
displayName
id
legalEntityId
primary
shopifyPaymentsAccount
}
merchantEditable
merchantEditableErrors
merchantOfRecordApp {
icon
id
name
}
name
netPayment
netPaymentSet {
presentmentMoney
shopMoney
}
note
number
originalTotalAdditionalFeesSet {
presentmentMoney
shopMoney
}
originalTotalDutiesSet {
presentmentMoney
shopMoney
}
originalTotalPriceSet {
presentmentMoney
shopMoney
}
paymentCollectionDetails {
additionalPaymentCollectionUrl
vaultedPaymentMethods
}
paymentGatewayNames
paymentTerms {
draftOrder
due
dueInDays
id
order
overdue
paymentTermsName
paymentTermsType
translatedName
}
phone
physicalLocation {
activatable
address
addressVerified
createdAt
deactivatable
deactivatedAt
deletable
fulfillmentService
fulfillsOnlineOrders
hasActiveInventory
hasUnfulfilledOrders
id
isActive
isFulfillmentService
isPrimary
legacyResourceId
localPickupSettingsV2
name
shipsInventory
suggestedAddresses
updatedAt
}
poNumber
presentmentCurrencyCode
processedAt
productNetwork
publication {
app
autoPublish
catalog
id
name
operation
supportsFuturePublishing
}
purchasingEntity
referralCode
referrerDisplayText
referrerUrl
refundDiscrepancySet {
presentmentMoney
shopMoney
}
refundable
registeredSourceUrl
requiresShipping
restockable
retailLocation {
activatable
address
addressVerified
createdAt
deactivatable
deactivatedAt
deletable
fulfillmentService
fulfillsOnlineOrders
hasActiveInventory
hasUnfulfilledOrders
id
isActive
isFulfillmentService
isPrimary
legacyResourceId
localPickupSettingsV2
name
shipsInventory
suggestedAddresses
updatedAt
}
returnStatus
risk {
assessments
recommendation
}
riskLevel
shippingAddress {
address1
address2
city
company
coordinatesValidated
country
countryCode
countryCodeV2
firstName
formattedArea
id
lastName
latitude
longitude
name
phone
province
provinceCode
timeZone
validationResultSummary
zip
}
shippingLine {
carrierIdentifier
code
currentDiscountedPriceSet
custom
deliveryCategory
discountAllocations
discountedPrice
discountedPriceSet
id
isRemoved
originalPrice
originalPriceSet
phone
price
requestedFulfillmentService
shippingRateHandle
source
taxLines
title
}
shopifyProtect {
eligibility
status
}
sourceIdentifier
sourceName
staffMember {
accountType
active
email
exists
firstName
id
initials
isShopOwner
lastName
locale
name
phone
privateData
}
subtotalLineItemsQuantity
subtotalPrice
subtotalPriceSet {
presentmentMoney
shopMoney
}
tags
taxExempt
taxLines {
channelLiable
price
priceSet
rate
ratePercentage
source
title
}
taxesIncluded
test
totalCapturable
totalCapturableSet {
presentmentMoney
shopMoney
}
totalCashRoundingAdjustment {
paymentSet
refundSet
}
totalDiscounts
totalDiscountsSet {
presentmentMoney
shopMoney
}
totalOutstandingSet {
presentmentMoney
shopMoney
}
totalPrice
totalPriceSet {
presentmentMoney
shopMoney
}
totalReceived
totalReceivedSet {
presentmentMoney
shopMoney
}
totalRefunded
totalRefundedSet {
presentmentMoney
shopMoney
}
totalRefundedShippingSet {
presentmentMoney
shopMoney
}
totalShippingPrice
totalShippingPriceSet {
presentmentMoney
shopMoney
}
totalTax
totalTaxSet {
presentmentMoney
shopMoney
}
totalTipReceived {
amount
currencyCode
}
totalTipReceivedSet {
presentmentMoney
shopMoney
}
totalWeight
transactionsCount {
count
precision
}
unpaid
updatedAt
}
legacyResourceId
lifetimeDuration
locale
market {
catalogsCount {
count
precision
}
conditions {
channelsCondition
companyLocationsCondition
conditionTypes
locationsCondition
regionsCondition
}
currencySettings {
baseCurrency
localCurrencies
roundingEnabled
}
delivery {
shipping
}
discountsCount {
count
precision
}
enabled
handle
id
name
priceInclusions {
adaptivePricingEnabled
inclusiveDutiesPricingStrategy
inclusiveTaxPricingStrategy
}
priceList {
catalog
currency
fixedPricesCount
id
name
parent
}
primary
status
type
webPresence {
alternateLocales
defaultLocale
domain
id
market
rootUrls
subfolderSuffix
}
}
mergeable {
errorFields
isMergeable
mergeInProgress {
customerMergeErrors
jobId
resultingCustomerId
status
}
reason
}
multipassIdentifier
note
numberOfOrders
phone
productSubscriberStatus
smsMarketingConsent {
consentCollectedFrom
consentUpdatedAt
marketingOptInLevel
marketingState
sourceLocation {
activatable
address
addressVerified
createdAt
deactivatable
deactivatedAt
deletable
fulfillmentService
fulfillsOnlineOrders
hasActiveInventory
hasUnfulfilledOrders
id
isActive
isFulfillmentService
isPrimary
legacyResourceId
localPickupSettingsV2
name
shipsInventory
suggestedAddresses
updatedAt
}
}
state
statistics {
predictedSpendTier
rfmGroup
}
tags
taxExempt
taxExemptions
taxSettings {
taxId
}
unsubscribeUrl
updatedAt
validEmailAddress
verifiedEmail
}
}
Variables
Pass these as a JSON object in the step's Variables field.
{
"identifier": {
"id": "string",
"customId": {
"key": "string",
"value": "string",
"namespace": "string"
},
"emailAddress": "string",
"phoneNumber": "string"
}
}
Response
Read the result with {{customerbyidentifier.response.data.data.customerByIdentifier}}. If the API returns errors, the step fails and they are at {{customerbyidentifier.response.data.errors}}.
Need more? See the Shopify guide for connection setup and behaviour shared by every action.
Was this page helpful?