Search Customers

shopify.search_customers
ActionBusiness appsconnection required

Calls the Shopify API with the connection's credentials.

Find customers with a Shopify search query such as an email address.

Connection

Required
Yes — the node will not save without one
Auth type
API key
Providers
Shopify
Secret shape
the Shopify Admin API access token
Config it needs
shop
Resolved by
config.connection_id, else node.connection_id

Configuration

5 fields, 1 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.

FieldTypeRequiredDefaultConstraintsExample
query
Shopify customer search query, e.g. "email:ada@example.com" or "country:Canada tag:vip". A bare word matches names, emails and tags.
stringYes——email:ada@example.com
order
Sort order, as 'field ASC' or 'field DESC'.
stringNo——last_order_date DESC
limit
How many records to return in one page. Shopify's own default is 50 and its maximum is 250.
numberNo—1–25050
page_info
Cursor from a previous call's 'page_info' output. Set it to fetch the next page; leave it empty for the first page.
stringNo———
fields
Comma-separated list of fields to return instead of the whole resource.
stringNo——id,email,created_at

Example configuration

Every value below is the contract’s own example or default — nothing invented.

{
  "fields": "id,email,created_at",
  "limit": 50,
  "order": "last_order_date DESC",
  "query": "email:ada@example.com"
}

Output

One shape.

result

FieldTypeExample
customers
The matching customers on this page, exactly as Shopify returned them.
array—
count
How many matching customers are on this page.
number—
page_info
Cursor for the next page, or empty when this was the last page.
string—
has_more
True when another page exists.
boolean—
{
  "count": 0,
  "customers": [],
  "has_more": false,
  "page_info": ""
}

Notes

  • The store and the API version come from the connection: 'shop' (your-store.myshopify.com) and an optional 'api_version' that defaults to 2026-07. Auth is the Admin API access token, sent as X-Shopify-Access-Token.
  • Lists page on an opaque cursor from Shopify's Link header, not on page numbers. Pass the 'page_info' a call returns back into the next call while 'has_more' is true; a request carrying page_info may only carry 'limit' and 'fields', so every other filter is ignored once you are paging.
  • Shopify rate-limits with a leaky bucket (X-Shopify-Shop-Api-Call-Limit). A 429 fails the step with the bucket state and the Retry-After seconds in the message: put a control.delay in front of the node or lower 'limit'.
  • Each write node also accepts the raw resource object for fields it does not model; that object is merged last and wins on a conflict.
  • Search runs against Shopify's index, which lags a write by a few seconds: a customer created moments ago may not be found yet.

See Search Customers run in a workflow.

In a technical demo we add the Shopify connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.