

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-timeUse case type
syncReal-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.
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
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.
Optional
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Order Number | order_number | |
| Customer Email | customer.email | |
| Order Total | total_price | |
| Order Date | created_at | |
| Line Items | line_items | |
2 optional fields▸ show
| Customer Name | customer.first_name + ' ' + customer.last_name |
| Shipping Address | shipping_address.address1 |
Step-by-Step Setup
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.
- 1Click 'New Workflow' from the N8n dashboard
- 2Click the '+' button to add your first node
- 3Name your workflow 'Shopify Orders to Sheets'
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.
- 1Search for 'Shopify Trigger' in the node panel
- 2Select 'Shopify Trigger' from the results
- 3Choose 'Order Created' from the Event dropdown
- 4Click 'Listen for Test Event' to generate webhook URL
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.
- 1Click 'Create New' under Credentials in the Shopify node
- 2Enter your Shopify store URL (yourstore.myshopify.com)
- 3Paste your Admin API access token
- 4Click 'Save' and test the connection
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.
- 1Copy the webhook URL from the trigger node
- 2Go to Shopify Admin > Settings > Notifications
- 3Scroll to 'Webhooks' and click 'Create webhook'
- 4Select 'Order creation' event and paste the N8n URL
- 5Set format to JSON and click 'Save webhook'
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.
- 1Place a $1 test order in your Shopify store
- 2Return to N8n and check if the trigger node shows data
- 3Click 'Execute Node' to see the received order payload
- 4Verify fields like order_number, customer email, and line_items appear
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.
- 1Click '+' after the Shopify trigger to add another node
- 2Search for 'Google Sheets' and select it
- 3Choose 'Append' operation to add new rows
- 4Select your target spreadsheet and worksheet
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.
- 1Click 'Create New' under Google Sheets credentials
- 2Click 'Sign in with Google' and authorize N8n
- 3Select your Google account from the list
- 4Grant permissions for Google Sheets access
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.
- 1Click 'Add Field' for each column you want to populate
- 2Map 'order_number' to your Order Number column
- 3Map 'customer.email' to your Customer Email column
- 4Map 'total_price' to your Order Total column
- 5Add 'created_at' for the timestamp
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.
- 1Add a 'Function' node between Shopify and Google Sheets
- 2Use JavaScript to loop through line_items array
- 3Format as 'Product Name (Qty: X) - $Price'
- 4Join multiple items with semicolons
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.
- 1Click 'Execute Workflow' to test with existing data
- 2Check your Google Sheet for the new row
- 3Verify all fields populated correctly
- 4Place another test order to confirm real-time operation
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.
- 1Click the toggle switch at the top of the workflow
- 2Confirm activation in the popup dialog
- 3Check the status shows 'Active' with a green indicator
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.
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.
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
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.
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.
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 tracking — Create a second workflow that updates order status in your sheet when Shopify marks items as fulfilled or shipped.
- →Build inventory alerts — Connect 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 tracking — Add a workflow that calculates running totals for each customer email address and identifies your highest-value repeat buyers.
Related guides
How to Share Notion Meeting Notes to Slack with Pipedream
~15 min setup
How to Share Notion Meeting Notes to Slack with Power Automate
~15 min setup
How to Share Notion Meeting Notes to Slack with n8n
~20 min setup
How to Send Notion Meeting Notes to Slack with Zapier
~8 min setup
How to Share Notion Meeting Notes to Slack with Make
~12 min setup
How to Create Notion Tasks from Slack with Pipedream
~15 min setup