Intermediate~20 min setupProductivity & E-commerceVerified April 2026
Google Sheets logo
Shopify logo

How to Log New Shopify Orders to Google Sheets with N8n

Automatically create a Google Sheets row with order details every time someone places a Shopify order.

Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.

Best for

Shopify stores that need custom order data formatting or want to avoid monthly SaaS fees.

Not ideal for

Teams that need this working immediately without any technical setup or server management.

Sync type

real-time

Use case type

sync

Real-World Example

💡

A 12-person dropshipping company uses this to track orders across 3 Shopify stores in one master Google Sheet. Before automation, their operations manager manually exported order reports daily and spent 45 minutes copying data between spreadsheets. Now every order logs automatically with formatted product details, letting them spot trending items and fulfillment bottlenecks in real-time.

What Will This Cost?

Drag the slider to your expected monthly volume.

1 op per orderA store processing 1,000 orders/month uses ~1,000 ops.
/mo
505005K50K

Each platform counts differently — Zapier: 1 task per trigger. Make: 1 operation per module per record. n8n: 1 execution per run.

Prices shown for annual billing. Based on published pricing as of April 2026.

Estimated ROI

1000

min saved/mo

$583

labor value/mo

Free

no platform cost

Based on ~2 min manual effort per operation at $35/hr fully loaded labor cost.

Implementation

Skip the setup

Import this workflow directly into n8n

Copy the pre-built n8n blueprint and paste it straight into n8n. All modules, filters, and field mappings are already configured — you just need to connect your accounts.

Before You Start

Make sure you have everything ready.

Shopify store with Admin API access (any paid plan)
Google account with edit access to target spreadsheet
N8n cloud account or self-hosted instance

Optional

Basic understanding of JSON data structure

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Order Numberorder_number
Customer Emailcustomer.email
Order Totaltotal_price
Order Datecreated_at
Line Itemsline_items
2 optional fields▸ show
Customer Namecustomer.first_name + ' ' + customer.last_name
Shipping Addressshipping_address.address1

Step-by-Step Setup

1

Dashboard > New Workflow

Create new N8n workflow

Start with a blank workflow in N8n. This will be your order logging automation that runs every time a new order comes in.

  1. 1Click 'New Workflow' from the N8n dashboard
  2. 2Click the '+' button to add your first node
  3. 3Name your workflow 'Shopify Orders to Sheets'
What you should see: Empty workflow canvas with one placeholder node ready for configuration.
2

Node Panel > Shopify Trigger

Add Shopify webhook trigger

Configure N8n to listen for new orders from Shopify. The webhook fires immediately when someone completes checkout.

  1. 1Search for 'Shopify Trigger' in the node panel
  2. 2Select 'Shopify Trigger' from the results
  3. 3Choose 'Order Created' from the Event dropdown
  4. 4Click 'Listen for Test Event' to generate webhook URL
What you should see: Webhook URL displayed in the trigger node, waiting for a test order.
Common mistake — Don't use 'Order Updated' — that fires on payment status changes and inventory adjustments, creating duplicate rows.
n8n
+
click +
search apps
Google Sheets
GO
Google Sheets
Add Shopify webhook trigger
Google Sheets
GO
module added
3

Shopify Node > Credentials > Create New

Connect your Shopify store

Link N8n to your Shopify store using API credentials. This gives N8n permission to receive order webhooks.

  1. 1Click 'Create New' under Credentials in the Shopify node
  2. 2Enter your Shopify store URL (yourstore.myshopify.com)
  3. 3Paste your Admin API access token
  4. 4Click 'Save' and test the connection
What you should see: Green 'Connected' status showing your store name and connection timestamp.
Common mistake — Make sure your API token has 'read_orders' and 'write_webhooks' permissions — basic tokens won't work.
4

Shopify Admin > Settings > Notifications > Webhooks

Register the webhook with Shopify

Tell Shopify to send order data to N8n's webhook URL. This creates the real-time connection between your store and the automation.

  1. 1Copy the webhook URL from the trigger node
  2. 2Go to Shopify Admin > Settings > Notifications
  3. 3Scroll to 'Webhooks' and click 'Create webhook'
  4. 4Select 'Order creation' event and paste the N8n URL
  5. 5Set format to JSON and click 'Save webhook'
What you should see: Active webhook listed in Shopify admin with 'Order creation' event and your N8n URL.
Common mistake — Copy the webhook URL carefully — it expires if you regenerate it, and any scenarios using the old URL will silently stop working.
5

N8n Workflow > Shopify Trigger Node > Execute

Test with a real order

Place a test order in your Shopify store to verify the webhook delivers order data to N8n correctly.

  1. 1Place a $1 test order in your Shopify store
  2. 2Return to N8n and check if the trigger node shows data
  3. 3Click 'Execute Node' to see the received order payload
  4. 4Verify fields like order_number, customer email, and line_items appear
What you should see: JSON order data visible in the trigger node with customer details, line items, and totals.
Common mistake — Use a real order, not Shopify's test mode — test orders don't trigger production webhooks.
n8n
▶ Run once
executed
Google Sheets
Shopify
Shopify
🔔 notification
received
6

Node Panel > Google Sheets > Append

Add Google Sheets node

Connect the Google Sheets node to write order data to your spreadsheet. This node will create a new row for each order.

  1. 1Click '+' after the Shopify trigger to add another node
  2. 2Search for 'Google Sheets' and select it
  3. 3Choose 'Append' operation to add new rows
  4. 4Select your target spreadsheet and worksheet
What you should see: Google Sheets node connected to Shopify trigger with Append operation selected.
7

Google Sheets Node > Credentials > OAuth2

Authenticate Google Sheets

Grant N8n permission to write to your Google Sheets. This uses OAuth to connect securely without storing your Google password.

  1. 1Click 'Create New' under Google Sheets credentials
  2. 2Click 'Sign in with Google' and authorize N8n
  3. 3Select your Google account from the list
  4. 4Grant permissions for Google Sheets access
What you should see: Green connection badge showing your Google account email address.
Common mistake — Choose a service account that has edit access to your target spreadsheet — viewer accounts will fail.
8

Google Sheets Node > Fields > Add Field

Map order fields to sheet columns

Tell N8n which Shopify order data goes into which spreadsheet columns. This creates the structured order log you want.

  1. 1Click 'Add Field' for each column you want to populate
  2. 2Map 'order_number' to your Order Number column
  3. 3Map 'customer.email' to your Customer Email column
  4. 4Map 'total_price' to your Order Total column
  5. 5Add 'created_at' for the timestamp
What you should see: Field mapping showing Shopify data paths connected to your sheet column headers.
Common mistake — Use dot notation for nested fields like 'customer.first_name' — flat references like 'first_name' won't work.
Google Sheets fields
Column A
Column B
Email
Status
Notes
available as variables:
1.props.Column A
1.props.Column B
1.props.Email
1.props.Status
1.props.Notes
9

Node Panel > Function > Code Editor

Handle line items data

Shopify sends line items as an array, but Google Sheets needs text. Add a function node to format product details into a readable string.

  1. 1Add a 'Function' node between Shopify and Google Sheets
  2. 2Use JavaScript to loop through line_items array
  3. 3Format as 'Product Name (Qty: X) - $Price'
  4. 4Join multiple items with semicolons
What you should see: Function node showing formatted line items string like 'T-Shirt (Qty: 2) - $40.00; Hat (Qty: 1) - $25.00'.
10

Workflow > Execute Workflow

Test the complete workflow

Run the entire automation end-to-end to make sure orders flow from Shopify to Google Sheets correctly.

  1. 1Click 'Execute Workflow' to test with existing data
  2. 2Check your Google Sheet for the new row
  3. 3Verify all fields populated correctly
  4. 4Place another test order to confirm real-time operation
What you should see: New row in Google Sheets with order number, customer email, total, and formatted line items.
Common mistake — Don't skip this step — field mapping errors only show up during execution, not setup.
11

Workflow Header > Activate Toggle

Activate the workflow

Turn on the workflow to start logging orders automatically. Once active, every new Shopify order creates a Google Sheets row within seconds.

  1. 1Click the toggle switch at the top of the workflow
  2. 2Confirm activation in the popup dialog
  3. 3Check the status shows 'Active' with a green indicator
What you should see: Workflow status shows 'Active' and webhook is listening for new orders.
Common mistake — Active workflows count against your execution quota even when no orders come in — N8n pings webhooks every few minutes to keep them alive.

Drop this into an n8n Code node.

JavaScript — Code Node// Format line items array into readable string
▸ Show code
// Format line items array into readable string
const items = $node["Shopify Trigger"].json["line_items"];
const formatted = items.map(item => 

... expand to see full code

// Format line items array into readable string
const items = $node["Shopify Trigger"].json["line_items"];
const formatted = items.map(item => 
  `${item.title} (Qty: ${item.quantity}) - $${item.price}`
).join('; ');
return [{formatted_items: formatted}];

Scaling Beyond 200+ orders/day+ Records

If your volume exceeds 200+ orders/day records, apply these adjustments.

1

Batch Google Sheets writes

Use a Schedule node to collect orders in memory and write them every 5 minutes instead of individually. This prevents Google API rate limits and reduces execution costs.

2

Add retry logic for API failures

Wrap the Google Sheets node in an IF node that retries failed writes after 30 seconds. High-volume stores hit temporary API limits that resolve quickly with a simple retry.

Going live

Production Checklist

Before you turn this on for real, confirm each item.

Troubleshooting

Common errors and how to fix them.

Frequently Asked Questions

Common questions about this workflow.

Analysis

VerdictWhy n8n for this workflow

Use N8n for this if you want full control over data transformation and don't mind managing your own server. N8n handles complex Shopify order data better than Zapier because you can write custom JavaScript to format line items exactly how you want them. The webhook triggers are also more reliable than polling-based connections. Skip N8n and use Make instead if you need this running in 10 minutes — Make's Shopify integration is pre-built and doesn't require webhook setup.

Cost

This workflow uses 1 execution per order. At 100 orders/month, that's 100 executions total. N8n cloud's starter plan includes 5,000 executions for $20/month, so you're well under the limit. Make would cost $9/month for the same volume, and Zapier starts at $20/month but only includes 750 tasks. Make is cheaper here, but N8n gives you more executions for future growth.

Tradeoffs

Make beats N8n on setup speed — their Shopify module auto-maps common fields like customer name and order total, while N8n makes you map everything manually. Zapier has better error handling with automatic retries and detailed logs when Google Sheets writes fail. But N8n wins on data flexibility — you can transform Shopify's nested JSON however you want using code nodes, while Make and Zapier force you into their preset field formats.

You'll hit rate limits if your store processes more than 40 orders per minute — Google Sheets API throttles at 100 writes per 100 seconds per user. Shopify's webhook payloads also vary by app — if you use product variants or custom fields, the line_items structure changes and breaks your field mapping. The webhook URL changes every time you deactivate and reactivate the workflow, so you'll need to update it in Shopify admin after any breaks.

Ideas for what to build next

  • Add order fulfillment trackingCreate a second workflow that updates order status in your sheet when Shopify marks items as fulfilled or shipped.
  • Build inventory alertsConnect a Google Sheets formula that flags low-stock products based on order volume and sends Slack notifications when reorder thresholds are hit.
  • Create customer lifetime value trackingAdd a workflow that calculates running totals for each customer email address and identifies your highest-value repeat buyers.

Related guides

Was this guide helpful?
Google Sheets + Shopify overviewn8n profile →