If you run a Shopify store with more than one agent in the loop, the question is not whether to use AI for order triage, refund drafts, and customer briefs. You already do. The real question is where the agent's work lives between the moment it drafts something and the moment a human (or another agent) acts on it. Slack threads vanish. Notion pages drift. The hand-off is where Shopify teams quietly lose the plot.
The pattern that holds up: keep Shopify as the system of record for commerce data, and put Dock underneath the agents as the substrate carrying their output, their partial decisions, and the consent gate that fires writes back. Three agents pick up the same order, each contribute a layer, and the whole chain is one auditable row.
The architecture in one paragraph
Dock does not replace Shopify and does not hold a copy of its data. Shopify stays the system of record for products, orders, customers, payments. What Dock holds is the system of record for agent output: the recommendation the triage agent drafted, the partial decision the brief agent made, the work-in-progress the next agent picks up. Each Dock row carries a shopify_order_id pointer. Agents read fresh from Shopify Admin API; Dock's consent gate fires the mutations back. The data path loops through Dock; the data never leaves Shopify.
One worked workflow: order triage at Acme Shopify Plus
Acme runs Shopify Plus with three agents on the order pipeline. A high-risk order lands. Five steps.
- Webhook in. Shopify fires
orders/createto Dock. Dock writes a row withshopify_order_id,status: triage, and an emptyagent_notes. No copy of the order body is stored. - Triage agent reads. Agent one pulls the live order via the GraphQL Admin API, checks fraud signals, billing-vs-shipping mismatches, chargeback history. It writes
hold for reviewinto the row, with reasoning. - Customer brief agent picks up. Agent two reads the row, pulls customer LTV and prior tickets from Shopify, drafts a 4-line brief into
customer_context. It does not act. - Resolution agent proposes. Agent three reads triage + brief, decides
cancel and refundorrelease and ship, stages the mutation. Dock's consent gate flags refund as a dangerous operation and routes it for one-tap approve. - Approve and write. A human taps approve. Dock fires
refundCreateagainst Shopify. The row closes with a signed audit trail: which agent drafted, which approved, which mutation hit Shopify, when.
The data lived in Shopify. The collaboration lived in Dock.
Why this matters for Shopify teams
BFCM is the obvious case. Shopify merchants moved $14.6 billion across BFCM 2025, peaking at $5.1 million per minute on Black Friday. At that velocity, a 4-agent pipeline without a shared substrate is one missed Slack message away from a duplicate refund or a stuck hold. Dock rows give every agent the same view of what is done, what is staged, what is open.
Chargeback defensibility is the quieter one. When a dispute lands six weeks after the order, the Dock row already has the signed chain: triage reasoning, brief context, the human who approved, the exact mutation. That is the artifact you submit.
For the wider pattern, see running an ecommerce stack with AI and the Dock for ecommerce overview. The same substrate carries Stripe payment flows and the BigCommerce enterprise pattern. For the primitives, agent collaboration and agent audit and compliance are the starting points.
Try the pattern
Spin up a Dock workspace, point a webhook at it, let one agent draft into it. The hand-off problem dissolves the moment the second agent reads from the same row.
FAQ
Does this replace Shopify Flow? No. Flow is excellent for deterministic, condition-based automation inside Shopify. Dock sits next to Flow and carries the things Flow does not: an agent's reasoning, a partial draft, a multi-agent hand-off. Flow can trigger a Dock row; a Dock approval can trigger a Flow.
What about Shopify Functions? Functions run inside Shopify's checkout and admin extensibility surface and stay there. Dock does not touch that layer. Agents that need to propose a Function change can draft the config into a Dock row for human review before it ships.
Can an agent issue refunds without a human in the loop? Technically yes, practically no. Refunds are a dangerous operation in Dock's consent model and route to a human approve by default. You can lower the gate for refunds under a threshold, but the audit row still captures which agent drafted and which policy auto-approved.
Does this work across multiple Shopify stores?
Yes. Each store gets its own webhook and its own shopify_shop_id column on the Dock row. Agents scoped to one store cannot read another store's rows. Cross-store reporting is a separate workspace that reads aggregates, not order bodies.
