At a Glance — n8n Shopify Integration

  • Two nodes: Shopify Trigger (real-time webhook events) + Shopify node (read/write: customers, orders, products, inventory) — use both together
  • Auth: Admin API access token — Shopify Admin → Settings → Apps → Develop apps; select only the scopes your workflows actually need
  • Order trigger: Use orders/paid not orders/create for fulfillment — fires only after payment confirmation, excludes abandoned checkouts
  • Inventory alerts: Schedule-based (poll every 6h, simpler) vs event-based (inventory_levels/update webhook, faster but fires on every quantity change)
  • CRM sync: Trigger on customers/create → push to HubSpot/Salesforce; always query by email first to avoid creating duplicates
  • Scope principle: Shopify logs all API access — grant read vs write scopes separately and use only what each workflow requires

n8n Shopify Node Overview

n8n gives you two Shopify-related nodes. The Shopify Trigger listens for real-time webhook events from your store. The Shopify node lets you read and write data — customers, orders, products, collections, and inventory levels. Together they cover the full range of ecommerce automation: reacting to what happens in your store, and pushing data back to it.

Supported Shopify Trigger events include: orders/create, orders/paid, orders/fulfilled, orders/cancelled, customers/create, customers/update, products/create, products/update, inventory_levels/update, and several more. The trigger fires within seconds of the event — no polling delay.

Connecting Shopify to n8n

Shopify uses an Admin API access token (not OAuth) for n8n integration. You generate it once per store:

  1. In your Shopify admin, go to Settings → Apps and sales channels → Develop apps
  2. Click Create an app, give it a name (e.g. "n8n Automation")
  3. Under Configuration → Admin API access scopes, select the scopes your workflows need. Common ones: read_orders, write_orders, read_inventory, write_inventory, read_customers, write_customers, read_products
  4. Click Install app → copy the Admin API access token (shown once)
  5. In n8n: Credentials → New → Shopify → enter your store URL (yourstore.myshopify.com) and the token
Scope selection

Only grant the scopes your workflows actually need. If your workflow only reads orders, request read_orders — not write_orders. Shopify logs all API access, and minimal scopes reduce the blast radius if the token is ever compromised. You can add scopes later by reconfiguring the app.

Workflow: New Order → Fulfillment Notification

The most common Shopify automation: notify your operations team (and optionally a 3PL) the moment an order is placed and paid.

  1. Shopify Trigger — event: orders/paid
  2. Set node — extract: order number ({{ $json.order_number }}), customer name, shipping address, line items array, total price
  3. IF node — check order value or product type to route high-value orders differently if needed
  4. Slack node — post to #fulfillment channel: "New order #{{ $json.order_number }} — {{ $json.customer.first_name }} {{ $json.customer.last_name }} — ${{ $json.total_price }}" with line item list
  5. HTTP Request node (optional) — POST to your 3PL or WMS API to create the fulfillment job

The Shopify Trigger on orders/paid is more reliable than orders/create for fulfillment purposes — it only fires after payment confirmation, filtering out abandoned checkouts and unpaid orders.

Workflow: Low Inventory Alert

Two approaches depending on how fast you need to know:

Schedule-based (simpler)

  1. Schedule Trigger — every 6 hours or once daily at 7 AM
  2. Shopify node — Inventory Level → Get All, filtered by location ID
  3. Filter node — keep only items where available is less than your threshold (e.g. 10 units)
  4. IF node — skip if no items below threshold
  5. Slack node — post list of low-stock items with current quantities

Event-based (real-time)

  1. Shopify Trigger — event: inventory_levels/update
  2. IF node — check {{ $json.available }} against your threshold
  3. Shopify node — Product → Get, using the inventory item ID to fetch the product name
  4. Slack node — alert only when stock drops below threshold

The event-based approach fires within seconds of a stock change but requires knowing your Shopify location ID upfront. The schedule-based approach is easier to set up and works well if same-day alerts are sufficient.

Workflow: New Customer → CRM Sync

Every new Shopify buyer should be a contact in your marketing CRM. Without automation, this means manual list imports or CSV exports — a process that falls behind within weeks.

  1. Shopify Trigger — event: customers/create
  2. HubSpot node (Contact → Search) — search by email to check for existing contact
  3. IF node — does the contact already exist?
  4. HubSpot node (Contact → Create) — create contact with name, email, phone, and Shopify customer ID stored as a custom property
  5. HubSpot node (Contact → Update) — on true branch: update existing contact with latest Shopify data
  6. HubSpot node (Workflow enrollment) (optional) — enroll new customers in your welcome email sequence

Storing the Shopify customer ID as a HubSpot property is essential — it lets future workflows look up the HubSpot contact by Shopify ID without another email search, which is faster and avoids issues with customers who change their email.

Workflow: Shopify Product Update → Other Channels

When you update a product in Shopify — price change, new image, description edit — you often need to reflect that change in other systems: a product catalog database, a Google Merchant feed, or a marketplace like Amazon.

  1. Shopify Trigger — event: products/update
  2. Set node — extract product ID, title, price, SKU, images, updated fields
  3. HTTP Request node — POST to your catalog API or marketplace listing endpoint
  4. Airtable or Google Sheets node — optionally log the change for audit trail

This is especially useful if Shopify is your product-of-record but you sell on multiple channels. Changes made in Shopify propagate automatically instead of requiring manual updates on each platform.

Shopify Webhook Reliability Notes

Shopify webhooks occasionally deliver events out of order or with slight delays during high-traffic periods. A few practices help:

For debugging failed webhook deliveries, Shopify admin shows a webhook log under Settings → Notifications → Webhooks. If you're seeing missed events, check that log before assuming the issue is in n8n. See also: n8n webhook troubleshooting guide.

Frequently asked questions

Does n8n have a native Shopify node? Yes. n8n includes both a Shopify node (for reading and writing data — customers, orders, products, collections) and a Shopify Trigger node (for reacting to Shopify webhook events such as orders/created, orders/fulfilled, products/update, customers/create, and inventory_levels/update). Authentication uses Shopify's Admin API access token, which you generate in the Shopify admin under Apps → Develop Apps.

How do you connect Shopify to n8n? In your Shopify admin, go to Settings → Apps and sales channels → Develop apps → Create an app. Set the required Admin API access scopes (read_orders, write_orders, read_inventory, etc. depending on your workflow). Install the app and copy the Admin API access token. In n8n, create a Shopify credential with your store URL (yourstore.myshopify.com) and this access token. This credential works for both the Shopify node and the Shopify Trigger node.

What is the difference between the Shopify node and the Shopify Trigger node in n8n? The Shopify Trigger node listens for real-time events via Shopify webhooks — it starts your workflow automatically when something happens in your store, like a new order, a fulfilled shipment, or a customer signup. The Shopify node is for performing actions — reading order data, creating or updating products, querying customer lists. Most Shopify workflows combine both: the Trigger starts the workflow, and the Shopify node reads additional data or writes back to the store.

Can n8n sync Shopify orders to a warehouse or 3PL system? Yes. The standard pattern is: Shopify Trigger (orders/paid or orders/created) → extract order line items, shipping address, and customer data → HTTP Request node to the 3PL's API (ShipBob, ShipStation, or a custom WMS) to create the fulfillment order. When the 3PL webhook fires a fulfillment event, a second n8n workflow updates the Shopify order fulfillment status and sends the customer a tracking notification.

How can n8n alert you when Shopify inventory is low? Two approaches: (1) Schedule-based — a Schedule Trigger runs hourly/daily, the n8n Shopify node fetches all inventory levels, a Filter node removes items above your threshold, and a Slack node posts the low-stock list. (2) Event-based — the Shopify Trigger listens for inventory_levels/update events, an IF node checks whether the new quantity falls below your threshold, and the Slack node fires only when it does. The event-based approach is faster but requires the Shopify location ID to be known in advance.

Can n8n sync new Shopify customers to HubSpot or a CRM? Yes. Use the Shopify Trigger on customers/create. Extract the customer name, email, and phone. In n8n, search HubSpot for an existing contact by email — create if not found, update if found. You can also tag the HubSpot contact with the Shopify customer ID for future lookups, and enroll them in a welcome email sequence via HubSpot workflows. This keeps your marketing CRM in sync with every new Shopify buyer without any manual list imports.

Need Shopify Automation Built?

Entech Solutions builds production Shopify workflows with n8n — order routing, inventory management, multi-channel sync, and CRM integration. See our n8n Shopify integration service page, or get in touch to discuss your specific requirements.