- Documentation
Shopify integration
Manage products, orders, customers, and react to store events for your clients' Shopify stores.
What it does
The Shopify integration lets your agency run product, order, customer, inventory, fulfillment, and discount operations on behalf of your clients without leaving TaskJuice. Connect a client's Shopify store once and you can list and mutate catalog entities through the GraphQL Admin API, react to orders, customers, and product changes the moment they happen in the storefront, and chain those events into the rest of your workflow.
Connect a Shopify account
- Open your workspace in TaskJuice and navigate to Connections.
- Choose Shopify and click Connect.
- Enter the store subdomain (the part before
.myshopify.com). - Sign in to the Shopify account that owns the store and approve the requested scopes (products, orders, customers, inventory, fulfillments, draft orders, discounts, content).
- TaskJuice returns you to the workspace with the connection ready to use in any workflow.
To revoke access, open the store's Shopify Admin, navigate to Settings, Apps and sales channels, and remove the TaskJuice app. See the Shopify access tokens guide for the full grant flow.
Triggers
shopify/order-createdfires when a new order is created in the store (Shopifyorders/createwebhook topic). The activation payload carries the full order body, including line items and customer.shopify/customer-createdfires when a new customer record is created in the store (customers/createtopic).shopify/product-updatedfires when a product is updated (products/updatetopic). Use it to react to inventory, price, status, or metadata changes.
Every inbound POST is authenticated by recomputing HMAC-SHA256 over the raw request body using your app's client secret and comparing the base64 digest with the value Shopify sends in the X-Shopify-Hmac-Sha256 header. Activations that fail the check are rejected before they reach your workflow.
Actions
shopify/list-products,shopify/get-product,shopify/search-products,shopify/create-product,shopify/update-product,shopify/delete-productcover the product catalog.shopify/list-product-variants,shopify/create-product-variant,shopify/update-product-variantcover variant management.shopify/list-orders,shopify/get-order,shopify/update-order,shopify/cancel-order,shopify/close-order,shopify/mark-order-as-paidcover order lifecycle.shopify/list-draft-orders,shopify/create-draft-order,shopify/update-draft-order,shopify/complete-draft-ordercover the draft-order workflow.shopify/list-customers,shopify/get-customer,shopify/create-customer,shopify/update-customer,shopify/search-customerscover the customer record.shopify/adjust-inventory,shopify/set-inventory,shopify/list-inventory-levelscover stock management across locations.shopify/create-fulfillment,shopify/list-fulfillment-orderscover order fulfillment.shopify/list-collections,shopify/create-collection,shopify/update-collection,shopify/add-products-to-collectioncover collection management.shopify/create-discount-code,shopify/create-automatic-discountcover promotional discounts.shopify/add-tags,shopify/set-metafieldsapply tags and metafields to any resource type.
Known limitations
- The GraphQL Admin API enforces a cost-based rate limit per shop. When a 429 status is returned, TaskJuice surfaces it as a retryable error and respects the
Retry-Afterheader. The action response includes the throttle status underextensions.cost.throttleStatusso workflows can adapt their pacing. - Webhook activations use the Shopify Admin GraphQL data shape (camelCase fields, GID-formatted IDs) for action responses and the legacy REST shape (snake_case fields, integer IDs) for webhook bodies. Field names differ between the two surfaces by design.
- Connections are scoped to a single store subdomain. To work across multiple client stores, create one connection per store.
- The TaskJuice integration targets Shopify Admin API version 2024-10. Schema fields outside that version's contract are not exposed.