Set Inventory Level

shopify.update_inventory_level
ActionBusiness appsconnection required

Calls the Shopify API with the connection's credentials.

Set the available stock of one inventory item at one location.

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

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

FieldTypeRequiredDefaultConstraintsExample
inventory_item_id
Inventory item id, taken from the variant's 'inventory_item_id'.
stringYes——808950810
location_id
Location whose stock is being set, from shopify.list_locations.
stringYes——655441491
available
The new on-hand count. Shopify stores this as a 32-bit integer and allows negatives for oversold stock.
numberYes—-2147483648–214748364742
disconnect_if_necessary
Let Shopify disconnect the item from any fulfilment service that currently owns its stock, instead of failing.
booleanNo———

Example configuration

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

{
  "available": 42,
  "inventory_item_id": "808950810",
  "location_id": "655441491"
}

Output

One shape.

result

FieldTypeExample
inventory_level
The inventory level as Shopify returned it.
object—
available
The stock level after the write.
number—
{
  "available": 0,
  "inventory_level": {}
}

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.
  • This sets an absolute number and overwrites whatever anything else wrote in the meantime. Use shopify.adjust_inventory_level when other systems also move the same stock.

See Set Inventory Level 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.