Shopify
E-commerce Dev Dashboard app client credentials, or a legacy custom-app tokenSearch and update orders, products, customers and inventory on a Shopify store from any Windmill script, flow or app.
Set up in 4 steps
Create an app in the Dev Dashboard
A store owner creates an app in the Dev Dashboard (dev.shopify.com), adds the Admin API scopes the scripts need, releases a version and installs it on the store.
Connect it in Windmill
Open Resources, click Add a resource/API and pick shopify under Others. Enter the store subdomain (yourshop for yourshop.myshopify.com, not a custom domain) and the app's client ID and secret; Windmill gets and renews the token, with no Windmill admin step.
Or paste an existing token
A custom app created in the store admin before 2026 still works: fill store_name with the subdomain and token with its non-expiring shpat_ token.
Run your first script
Run Get Shop or Search Orders to check the connection before writing anything.
Scripts
Building blocks, if none of the projects above fit. Fork one, run it, or call it as a step inside your own flow.
Update Metaobject
Send Order Invoice
Run Bulk Query
Remove Tags
Release Fulfillment Order Hold
Process Return
List Metaobjects
Hold Fulfillment Order
GraphQL Query
Get Bulk Operation
Create Return
Create Metaobject
Add Tags
Delete Page
Update Product Variant
Create Customer
Get Discount Code
Complete Draft Order
Search Draft Orders
Create Custom Collection
Create Fulfillment
Get Fulfillment Order
List Fulfillment Orders
Update Page
Set Metafield
Create Product Variant
Cancel Order
Create Draft Order
Cancel Fulfillment Order
Refund Order
Trigger flows from Shopify
Shopify is not only a destination. These inbound paths are supported today.
Shopify webhooks on an HTTP route
Create a Windmill HTTP route with Signature authentication, Custom scheme: header X-Shopify-Hmac-Sha256, sha256, base64, no prefix, secret the admin's webhook signing key (or the app's client secret for app-created webhooks). Subscribe it to topics such as orders/create under Settings → Notifications → Webhooks, or with webhookSubscriptionCreate through the GraphQL Query script.
Resource type
The shape of the credential every script on this page expects.
shopify
View raw schema →| Field | Type | Required | What it is |
|---|---|---|---|
| store_name | string | Yes | The store's subdomain only: yourshop for yourshop.myshopify.com. |
| token | string | Yes | Admin API access token. Connect with OAuth (client credentials of a Dev Dashboard app installed on the store) to have Windmill refresh it, or paste a non-expiring shpat_ token from a custom app created in the Shopify admin. |
Questions
A call fails with ACCESS_DENIED or a missing scope
Scopes come from the installed app version, not the token: add the scope in the Dev Dashboard, release a new version and approve the update on the store. Customer and order data also need protected customer data access on the app.
There is no Connect button on my instance
Shopify connects under Others with your own app's client ID and secret, so no Windmill admin setup is needed. If shopify is not offered there, your Windmill version predates it: paste a token instead.
Is my token stored on the hub?
Never. It lives only in your own Windmill workspace, encrypted at rest.