FlowKit

Connecting Shopify to n8n: orders, products and webhooks (complete guide)

Published 29 July 2026 · 5 min read

Shopify Flow, the built-in automation tool, stays confined to the Shopify ecosystem: it triggers actions inside the store, but struggles as soon as you need to orchestrate the outside world — syncing a CRM, generating a compliant invoice, feeding a dashboard, or running every order through an AI check. That's exactly n8n's territory: a native Shopify node, a real-time webhook trigger, and the whole orchestration toolbox around them. This guide covers custom app authentication, the available operations, when to switch to the GraphQL API, and the most profitable e-commerce patterns.

Why plug n8n into Shopify

Three families of needs justify the integration:

  • Synchronization: pushing every order to a CRM, ERP or Postgres database, keeping a product catalog aligned across channels, feeding consolidated reporting.
  • Intelligent processing: analyzing risky orders, routing requests by content, summarizing customer reviews — our whole pipeline for automated e-commerce order processing applies directly to Shopify.
  • Customer responsiveness: enriched confirmations, AI-driven abandoned cart recovery, stock alerts, Slack notifications for the logistics team.

All at a fixed orchestration cost: n8n bills per workflow execution, not per operation — a structural advantage over Zapier and Make detailed in our n8n vs Make vs Zapier comparison.

Authentication: create a Shopify custom app

The simplest and most robust method for backend use is a custom app with an access token:

  1. In the Shopify admin: Settings → Apps and sales channels → Develop apps (enable app development if prompted).
  2. Create an app and name it explicitly ("n8n — production").
  3. Configuration tab: check only the Admin API scopes you actually need (read_orders, write_products…). Least privilege applies: a reporting workflow doesn't need write access.
  4. Install the app: Shopify displays the Admin API access token (prefixed shpat_) — visible only once, copy it immediately.
  5. In n8n: create a Shopify Access Token API credential with the token and your store subdomain (my-store.myshopify.com).

That token is a full key to your store: keep it only in n8n's encrypted credentials, never in plain text inside a node — everything in our guide on securing API credentials applies here.

The Shopify Trigger: real-time webhooks with zero manual setup

The Shopify Trigger node registers a webhook in your store by itself when the workflow is activated, on the topic you pick: orders/create, orders/paid, orders/fulfilled, orders/cancelled, products/create, products/update, among others. Shopify then pushes every event in real time — no scheduled job, no polling.

Two practical conditions: the n8n instance must be publicly reachable over HTTPS (see our HTTPS and custom domain guide with Traefik or Caddy for self-hosted setups), and the workflow must be active — in test mode, the temporary webhook URL changes with every session. Shopify signs each delivery via the X-Shopify-Hmac-Sha256 header; the n8n trigger verifies that signature, a mechanism similar to those described in our article on securing webhooks.

One detail that prevents duplicates: Shopify retries webhook deliveries that aren't acknowledged quickly. If your workflow is slow to respond, the same order can arrive twice — which is why an idempotency key based on the order ID is worth adding.

Shopify node operations: orders and products

The native Shopify node exposes two main resources:

  • Order: Create, Get, Get Many, Update, Delete — with filters on status, date and returned fields;
  • Product: Create, Get, Get Many, Update, Delete — title, variants, price, tags, publication status.

That covers the majority of workflows: reacting to orders, updating a product, cross-referencing the catalog with an external source. For everything else — customers, multi-location inventory, metafields, draft orders, discounts — use an HTTP Request node against the GraphQL Admin API (https://my-store.myshopify.com/admin/api/2025-07/graphql.json) with the same token in the X-Shopify-Access-Token header. Shopify has officially made GraphQL its primary API, with the REST Admin API now in legacy mode: for new advanced needs, GraphQL is the durable choice, and it fetches in one query what would take several REST calls.

Handling rate limits without breaking large volumes

The REST Admin API applies a leaky-bucket model: a bucket of about forty requests, refilling at 2 requests per second on standard plans. A workflow looping over hundreds of products hits the limit quickly and starts receiving 429s.

Three countermeasures in n8n: process in batches with Loop Over Items plus a Wait node between batches (see our n8n loops guide), enable Retry On Fail with backoff on the calling nodes (the full pattern is in our HTTP retry and timeout article), and prefer GraphQL for wide reads — one well-built query replaces dozens of REST calls.

Three Shopify workflows that pay off fast

  • Order → CRM + invoice: Shopify Trigger on orders/paid → upsert the customer into the CRM (the pattern from our HubSpot/Pipedrive sync guide) → generate a PDF invoice → archive to Drive + email the customer.
  • Stock and price watchdog: Schedule Trigger → Get Many Products → compare with the previous snapshot → Slack alert on stockouts and price drift.
  • AI-screened risky orders: Shopify Trigger → an AI agent scores the order (unusual amount, inconsistent address, history) → human approval via Slack before fulfillment.

The underlying stakes aren't a gimmick: research has long shown that operational efficiency is the backbone of online retail. The foundational study by Erik Brynjolfsson and Michael Smith, "Frictionless Commerce? A Comparison of Internet and Conventional Retailers", published in 2000 in Management Science (see on Google Scholar), established that e-commerce's advantage lies less in prices than in reduced transaction friction — and every manual order-handling step you automate is exactly one less friction.

In short

Connecting Shopify to n8n comes down to three building blocks: a custom app with an access token for authentication, the Shopify Trigger to react to orders and products in real time, and the GraphQL API over HTTP Request for whatever the native node doesn't cover. Once that foundation is in place, your store becomes just another event source in n8n — and the blog's e-commerce patterns (order processing, abandoned carts, invoicing) plug into it with no major adaptation.

FAQ

Frequently asked questions

Which authentication method should I use to connect Shopify to n8n?

A custom app access token is the recommended method: created in minutes from the Shopify admin (Settings → Apps and sales channels → Develop apps), it provides a permanent Admin API token with precise scopes and no OAuth2 flow to maintain. Keep OAuth2 for the case where you're building an app meant to be installed on multiple stores.

Is n8n's Shopify Trigger a real webhook or polling?

A real webhook: when you activate the workflow, n8n automatically registers a webhook in your store on the chosen topic (orders/create, orders/paid, products/update…). Shopify then pushes the event in real time, with no polling. Your n8n instance therefore needs to be publicly reachable over HTTPS.

What should I do when n8n's Shopify node doesn't cover the operation I need?

The native node mainly covers orders and products. For customers, inventory, metafields, discounts or draft orders, use an HTTP Request node against Shopify's GraphQL Admin API, reusing the same access token in an X-Shopify-Access-Token header.

How do I handle Shopify API rate limits in n8n?

The REST Admin API uses a leaky bucket (a 40-request bucket refilling at 2 requests per second on standard plans) and returns a 429 when exceeded. In n8n, process large volumes in batches with Loop Over Items, add a Wait node between batches, and enable Retry On Fail on the calling nodes. The GraphQL API, billed in cost points per query, is more efficient for reading lots of data in a single call.

Bundle FlowKit Complet

€269