New Automation Workflow Runs Query & Argument Tweaks

11/10/2026, 12:00:37 AM

Shopify’s GraphQL API now includes a new automationWorkflowRuns query that returns a paginated page of an automation’s production or test runs, allowing filtering by kind (defaults to production), status, hasErrors, and an inclusive timeRange. The query supports up to 30 rows per page, uses a continuation cursor for paging, and returns run summaries plus any unresolved runs. Minor corrections have updated argument descriptions: fulfillmentOrderReportProgress.id now reads "targeting", and mobilePlatformApplicationUpdate.input description has been fixed. The previously public inventoryHistory query is now marked private; users should retrieve inventory change data via ShopifyQL instead. A typo in multiple descriptions has been corrected: nftSalesEligibility now says "eligible" and pendingOrdersCount removes the extra “s”. Comment queries on Article, Blog, Comments, and numerous other types now support filtering by article_id to limit comments to a specific article. Other query and mutation documents have minor description updates and capitalization fixes, but their functionality remains unchanged. Overall, developers should add the new automation workflow query, adjust for argument name changes, and switch to ShopifyQL for inventory history access.

Query Changes

➕ Added Queries (1)

automationWorkflowRuns

Returns a page of an automation's production or test runs, newest first, with their run-level fields. Each call examines at most first runs, so a page can have fewer results, or none, and still return a continuation. Returns null when no automation with the ID exists or it isn't readable.

🔄 Modified Queries (7)

assignedFulfillmentOrders

The paginated list of fulfillment orders assigned to the shop locations owned by the app.

Assigned fulfillment orders are fulfillment orders that are set to be fulfilled from locations
managed by
fulfillment services
that are registered by the app.
One app (api_client) can host multiple fulfillment services on a shop.
Each fulfillment service manages a dedicated location on a shop.
Assigned fulfillment orders can have associated
fulfillment requests,
or might currently not be requested to be fulfilled.

The app must have the read_assigned_fulfillment_orders
access scope
to be able to retrieve the fulfillment orders assigned to its locations.

All assigned fulfillment orders (except those with the CLOSED status) will be returned by default.
Perform filtering with the assignmentStatus argument
to receive only fulfillment orders that have been requested to be fulfilled.

~ Modified argument: assignmentStatus
comments

List of the shop's comments.

~ Modified argument: query
events

A paginated list of events that chronicle activities in the store. Event is an interface implemented by types such as BasicEvent and CommentEvent that track actions such as creating Article objects, fulfilling Order objects, adding Product objects, or staff comments on timelines.

The query supports filtering and sorting to help you find specific events or audit store activity over time.

~ Modified argument: query
eventsCount

Count of events. Limited to a maximum of 10000.

~ Modified argument: query
inventoryHistory

A list of historical changes to inventory. Exactly one of inventoryItemId or variantId is required. This query is not available to the public, instead use ShopifyQL to get inventory history.

nftSalesEligibility

Determine if a shop is eligible to sell NFTs.

pendingOrdersCount

The number of pending orders. Limited to a maximum of 10000.

Mutation Changes

🔄 Modified Mutations (4)

fulfillmentOrderReportProgress

Reports the progress of an open or in-progress fulfillment order.

~ Modified argument: id
mobilePlatformApplicationUpdate

Update a mobile platform application.

~ Modified argument: input
quantityRulesAdd

Creates or updates existing quantity rules on a price list.
You can use the quantityRulesAdd mutation to set order level minimums, maximums and increments for specific product variants.

stagedUploadTargetGenerate

Generates the URL and signed parameters needed to upload an asset to Shopify.

Type Changes

➕ Added Types (6)

🏗️AutomationWorkflowRunPage➕ AddedOBJECT

A bounded page of an automation's run summaries, read live. The continuation doesn't pin a snapshot of the results.

Fields: continuation, nodes, unresolvedRuns
🏗️AutomationWorkflowRunSummary➕ AddedOBJECT

The run-level fields of an automation run, without its step runs.

Fields: hasErrors, id, kind, lastUpdated, startedAt ... +4 more
📥AutomationWorkflowRunTimeRangeInput➕ AddedINPUT_OBJECT

The input fields for an inclusive range of automation run start times.

📋RolloutChangeApplyErrorCode➕ AddedENUM

The reason a rollout change couldn't be applied to the store.

Values: RESOURCE_NOT_FOUND, VALIDATION_FAILED, LIMIT_EXCEEDED, INVALID_CHANGE, INTERNAL_ERROR
🏗️RolloutChangeApplyResult➕ AddedOBJECT

The outcome of applying a rollout change to the store when its rollout was applied. Applying a rollout makes a treatment's changes permanent for every buyer.

Fields: completedAt, errorCode, status
📋RolloutChangeApplyStatus➕ AddedENUM

The status of applying a rollout change to the store when its rollout is applied.

Values: SUCCESS, FAILURE, IN_PROGRESS

🔄 Modified Types (69)

🏗️AdditionalFeeSale🔄 Modified
🔄 Field modified: lineType
🏗️AdjustmentSale🔄 Modified
🔄 Field modified: lineType
🏗️Article🔄 Modified
🔄 Field modified: comments
🔄 Field modified: commentsCount
🔄 Field modified: events
🏗️BasicEvent🔄 Modified
🔄 Field modified: action
🏗️Blog🔄 Modified
🔄 Field modified: events
🏗️CalculatedDraftOrder🔄 Modified
🔄 Field modified: taxLines
🏗️Collection🔄 Modified
🔄 Field modified: events
🏗️Comment🔄 Modified
🔄 Field modified: events
🏗️CommentEvent🔄 Modified
🔄 Field modified: action
🏗️Company🔄 Modified
🔄 Field modified: events
🏗️CompanyLocation🔄 Modified
🔄 Field modified: events
🏗️Customer🔄 Modified
🔄 Field modified: events
🏗️DiscountAutomaticBxgy🔄 Modified
🔄 Field modified: events
🏗️DiscountAutomaticNode🔄 Modified
🔄 Field modified: events
🏗️DiscountCodeNode🔄 Modified
🔄 Field modified: events
🏗️DiscountNode🔄 Modified
🔄 Field modified: events
🏗️DraftOrder🔄 Modified
🔄 Field modified: events
🔄 Field modified: taxLines
🏗️DutySale🔄 Modified
🔄 Field modified: lineType
🏗️Event🔄 Modified
🔄 Field modified: action
🏗️ExchangeV2LineItem🔄 Modified
🔄 Field modified: giftCard
🏗️FeeSale🔄 Modified
🔄 Field modified: lineType
🏗️GiftCardSale🔄 Modified
🔄 Field modified: lineType
🏗️HasEvents🔄 Modified
🔄 Field modified: events
🏗️IncotermInformation🔄 Modified
🔄 Field modified: incoterm
🏗️InventoryBin🔄 Modified
🔄 Field modified: inventoryBinItems
🏗️InventoryBinItem🔄 Modified
🔄 Field modified: quantity
🏗️InventoryChange🔄 Modified
➕ Field added: inventoryBin

The bin associated with this inventory change.

🏗️InventoryItem🔄 Modified
🔄 Field modified: inventoryBinItems
🏗️InventoryLocationItem🔄 Modified
🔄 Field modified: available
🔄 Field modified: committed
🔄 Field modified: incoming
🔄 Field modified: inventoryBinItems
🔄 Field modified: onHand
🏗️InventoryTransfer🔄 Modified
🔄 Field modified: events
🏗️LimitedPendingOrderCount🔄 Modified
🔄 Field modified: count
🏗️MarketingEngagement🔄 Modified
🔄 Field modified: isCumulative
🏗️MetaobjectThumbnail🔄 Modified
🔄 Field modified: hex
🏗️MethodDefinitionSortKeys🔄 Modified
➕ Enum value added: CREATED_AT
🏗️NftSalesEligibilityResult🔄 Modified
🔄 Field modified: reapplyDate
🏗️Order🔄 Modified
🔄 Field modified: events
🏗️OrderAgreement🔄 Modified
🔄 Field modified: happenedAt
🔄 Field modified: reason
🏗️OrderEditAgreement🔄 Modified
🔄 Field modified: happenedAt
🔄 Field modified: reason
🏗️OrderEditCommitPayload🔄 Modified
🔄 Field modified: successMessages
🏗️Page🔄 Modified
🔄 Field modified: events
🏗️PointOfSaleDevicePaymentSession🔄 Modified
🔄 Field modified: cashDrawer
🏗️Product🔄 Modified
🔄 Field modified: events
🏗️ProductSale🔄 Modified
🔄 Field modified: lineType
🏗️ProductVariant🔄 Modified
🔄 Field modified: events
🏗️QuantityPriceBreak🔄 Modified
🔄 Field modified: price
🏗️RefundAgreement🔄 Modified
🔄 Field modified: happenedAt
🔄 Field modified: reason
🏗️ReturnAgreement🔄 Modified
🔄 Field modified: happenedAt
🔄 Field modified: reason
🏗️RolloutCatalogActivateChange🔄 Modified
➕ Field added: applyResult

The outcome of the most recent attempt to apply this change to the store. Changes that are stored and applied as one unit, such as discount or catalog changes saved together, share one result. Changes from different units can have different results, even in the same apply. Returns null if the change hasn't been applied, or if the staff member can't read the resource it changes.

🏗️RolloutCatalogChange🔄 Modified
➕ Field added: applyResult

The outcome of the most recent attempt to apply this change to the store. Changes that are stored and applied as one unit, such as discount or catalog changes saved together, share one result. Changes from different units can have different results, even in the same apply. Returns null if the change hasn't been applied, or if the staff member can't read the resource it changes.

🏗️RolloutCatalogDraftChange🔄 Modified
➕ Field added: applyResult

The outcome of the most recent attempt to apply this change to the store. Changes that are stored and applied as one unit, such as discount or catalog changes saved together, share one result. Changes from different units can have different results, even in the same apply. Returns null if the change hasn't been applied, or if the staff member can't read the resource it changes.

🏗️RolloutChange🔄 Modified
➕ Field added: applyResult

The outcome of the most recent attempt to apply this change to the store. Changes that are stored and applied as one unit, such as discount or catalog changes saved together, share one result. Changes from different units can have different results, even in the same apply. Returns null if the change hasn't been applied, or if the staff member can't read the resource it changes.

🏗️RolloutCheckoutAndAccountsConfigurationChange🔄 Modified
➕ Field added: applyResult

The outcome of the most recent attempt to apply this change to the store. Changes that are stored and applied as one unit, such as discount or catalog changes saved together, share one result. Changes from different units can have different results, even in the same apply. Returns null if the change hasn't been applied, or if the staff member can't read the resource it changes.

🏗️RolloutCheckoutAndAccountsConfigurationPublishChange🔄 Modified
➕ Field added: applyResult

The outcome of the most recent attempt to apply this change to the store. Changes that are stored and applied as one unit, such as discount or catalog changes saved together, share one result. Changes from different units can have different results, even in the same apply. Returns null if the change hasn't been applied, or if the staff member can't read the resource it changes.

🏗️RolloutDiscountActivateChange🔄 Modified
➕ Field added: applyResult

The outcome of the most recent attempt to apply this change to the store. Changes that are stored and applied as one unit, such as discount or catalog changes saved together, share one result. Changes from different units can have different results, even in the same apply. Returns null if the change hasn't been applied, or if the staff member can't read the resource it changes.

🏗️RolloutDiscountChange🔄 Modified
➕ Field added: applyResult

The outcome of the most recent attempt to apply this change to the store. Changes that are stored and applied as one unit, such as discount or catalog changes saved together, share one result. Changes from different units can have different results, even in the same apply. Returns null if the change hasn't been applied, or if the staff member can't read the resource it changes.

🏗️RolloutDiscountExpireChange🔄 Modified
➕ Field added: applyResult

The outcome of the most recent attempt to apply this change to the store. Changes that are stored and applied as one unit, such as discount or catalog changes saved together, share one result. Changes from different units can have different results, even in the same apply. Returns null if the change hasn't been applied, or if the staff member can't read the resource it changes.

🏗️RolloutThemeChange🔄 Modified
➕ Field added: applyResult

The outcome of the most recent attempt to apply this change to the store. Changes that are stored and applied as one unit, such as discount or catalog changes saved together, share one result. Changes from different units can have different results, even in the same apply. Returns null if the change hasn't been applied, or if the staff member can't read the resource it changes.

🏗️RolloutThemePublishChange🔄 Modified
➕ Field added: applyResult

The outcome of the most recent attempt to apply this change to the store. Changes that are stored and applied as one unit, such as discount or catalog changes saved together, share one result. Changes from different units can have different results, even in the same apply. Returns null if the change hasn't been applied, or if the staff member can't read the resource it changes.

🏗️Sale🔄 Modified
🔄 Field modified: lineType
🏗️SalesAgreement🔄 Modified
🔄 Field modified: happenedAt
🔄 Field modified: reason
🏗️SellingPlanAnchor🔄 Modified
🔄 Field modified: type
🏗️ShippingLineSale🔄 Modified
🔄 Field modified: lineType
🏗️Shop🔄 Modified
🔄 Field modified: assignedFulfillmentOrders
🔄 Field modified: limitedPendingOrderCount
🔄 Field modified: resourceLimits
🔄 Field modified: searchFilters
🏗️ShopifyPaymentsAccount🔄 Modified
🔄 Field modified: balanceTransactions
🏗️ShopifyPaymentsBalanceTransaction🔄 Modified
🔄 Field modified: associatedPayout
🔄 Field modified: test
🏗️StoreCreditAccountCreditTransaction🔄 Modified
🔄 Field modified: remainingAmount
🏗️Taxonomy🔄 Modified
🔄 Field modified: categories
🏗️TipSale🔄 Modified
🔄 Field modified: lineType
🏗️UnknownSale🔄 Modified
🔄 Field modified: lineType