{% hint style="danger" %} Important Notice
Shopify is deprecating the Shopify Admin REST API which the Mechanic REST objects depend on. The first round of deprecations involve the product and variant endpoints. Read about the deprecation here and here.
Use the GraphQL going forward. The product and variant objects will cease to work on on Feb 1, 2025 due to the changes being made by Shopify. Shopify will phase out the REST API completely over time, you can read more about this here.
All of our library tasks will be ported to use GraphQL only, which will provide a model for how you can update your custom tasks. You'll be able to update your non-customized library tasks with a click of a button
Please see these guides for migrating your custom tasks to GraphQL. {% endhint %}
- Use
{{ customer }}
in tasks responding to shopify/customers events - Look up specific customers by their ID, using
{{ shop.customers[12345678900] }}
- Look up specific customers by their email address, using
{{ shop.customers["test@example.com"] }}
- Every property from the Customer resource in the Shopify REST Admin API
- Note: Shopify delivers
customer.tags
as a comma-delimited string, not an array of strings! - Note: As of version 2025-01, Shopify no longer includes customer tags in webhook payloads. In cases of tasks responding to webhooks that include customer payloads, Mechanic does the background querying necessary to support direct references to
customer.tags
.
- Note: Shopify delivers
{{ customer.account_activation_url }}
, containing the Shopify-hosted URL where the customer can create a password for their account{{ customer.unsubscribe_url }}
, containing the Mechanic-hosted URL where the customer can mark their own customer account as not accepting marketing; see How do I add an unsubscribe link to my emails?- The related metafields object:
{{ customer.metafields }}