

How to Track Abandoned Carts from Shopify to Google Sheets with N8n
Automatically log abandoned Shopify checkouts to Google Sheets with customer details, cart value, and product lists for follow-up campaigns.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
Best for
E-commerce teams needing custom abandoned cart tracking with data processing beyond basic logging.
Not ideal for
Simple stores wanting plug-and-play abandonment tracking without technical setup.
Sync type
real-timeUse case type
notificationReal-World Example
A 25-person fashion e-commerce team uses this to track abandonment patterns by product category and customer location. Before automation, they manually exported Shopify reports weekly and missed 60% of recovery opportunities. Now they get real-time abandonment data with custom fields and built targeted email campaigns that recovered 18% of abandoned carts worth $47K monthly.
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 | ||
| Timestamp | created_at | |
| Customer Email | email | |
| Cart Total | total_price | |
| Product Titles | line_items[].title | |
3 optional fields▸ show
| Customer Phone | billing_address.phone |
| Recovery URL | abandoned_checkout_url |
| Currency | currency |
Step-by-Step Setup
Workflows > New
Create new N8n workflow
Start a fresh workflow in N8n and name it something descriptive. This gives you a clean workspace to build your abandoned cart tracker.
- 1Click 'New Workflow' from your N8n dashboard
- 2Rename the workflow to 'Shopify Abandoned Cart Tracker'
- 3Click the + button to add your first node
Add Node > Shopify > Trigger > Webhook
Add Shopify Webhook Trigger
Configure N8n to listen for abandoned checkout events from Shopify. This trigger fires when a customer leaves items in their cart without completing payment.
- 1Search for 'Shopify' in the node selector
- 2Select 'Shopify Trigger' from the results
- 3Choose 'Webhook' as the trigger type
- 4Select 'Checkouts Abandoned' from the event dropdown
Shopify Node > Credentials > Create New
Connect your Shopify store
Add your Shopify store credentials to N8n. This creates the connection N8n needs to receive webhook events from your store.
- 1Click 'Create New Credential' in the credentials dropdown
- 2Enter your Shopify store subdomain (without .myshopify.com)
- 3Paste your Shopify Admin API access token
- 4Click 'Test' to verify the connection
Shopify Trigger Node > Execute Node
Execute trigger to get sample data
N8n needs sample data to build the workflow. Execute the trigger to pull in a recent abandoned checkout from your store.
- 1Click 'Execute Node' on the Shopify trigger
- 2If no recent abandoned carts exist, create one by adding items to cart and leaving
- 3Return to N8n and click 'Execute Node' again
Add Node > Google Sheets > Append
Add Google Sheets node
Connect Google Sheets to receive the abandoned cart data. Configure it to append new rows to your tracking spreadsheet.
- 1Click the + button after the Shopify trigger
- 2Search for and select 'Google Sheets'
- 3Choose 'Append' as the operation
- 4Select your existing spreadsheet or create new one
Google Sheets Node > Credentials > OAuth2
Set up Google Sheets authentication
Connect N8n to your Google account with proper permissions. This allows N8n to write data to your chosen spreadsheet.
- 1Click 'Create New Credential' for Google Sheets
- 2Select 'OAuth2' authentication method
- 3Click 'Connect my account' and complete Google OAuth flow
- 4Grant N8n permission to edit your Google Sheets
Google Sheets Node > Document > Spreadsheet
Configure spreadsheet columns
Map abandoned cart data to specific columns in your Google Sheet. This structures the data for easy analysis and follow-up.
- 1Select your target spreadsheet from the dropdown
- 2Choose the worksheet tab (usually 'Sheet1')
- 3Set 'Column to match on' to 'A' (for timestamp)
- 4Configure values for Date, Email, Cart Value, and Products columns
Google Sheets Node > Values to Send
Map abandoned cart fields
Connect specific data from Shopify's abandoned checkout to your spreadsheet columns. This extracts customer email, cart total, and product details.
- 1Set column A to {{new Date().toISOString()}} for timestamp
- 2Map column B to {{$node.Shopify.json.email}} for customer email
- 3Set column C to {{$node.Shopify.json.total_price}} for cart value
- 4Map column D to {{$node.Shopify.json.line_items.map(item => item.title).join(', ')}} for products
Google Sheets Node > Values to Send > Add Column
Add customer phone extraction
Pull the customer's phone number if available for SMS follow-up campaigns. Some abandoned checkouts include phone data.
- 1Add a new column mapping for column E
- 2Set the value to {{$node.Shopify.json.billing_address?.phone || 'N/A'}}
- 3This handles cases where phone number is missing
Workflow > Execute Workflow
Test the complete workflow
Run the entire automation with your sample data to verify everything works. This catches mapping errors before going live.
- 1Click 'Execute Workflow' at the bottom of the screen
- 2Check that both nodes show green success indicators
- 3Open your Google Sheet to verify the row was added correctly
Workflow > Toggle Active
Activate the webhook
Turn on the workflow so it runs automatically when customers abandon carts. N8n will register the webhook with Shopify.
- 1Click the toggle switch in the top right to 'Active'
- 2Confirm activation in the popup dialog
- 3Copy the webhook URL from the Shopify trigger node
Shopify Admin > Settings > Notifications > Webhooks
Verify webhook registration
Confirm that Shopify is properly sending abandoned cart events to N8n. Check your Shopify admin to see the webhook listed.
- 1Go to your Shopify Admin > Settings > Notifications
- 2Scroll to 'Webhooks' section
- 3Look for 'Checkout abandoned' webhook with N8n URL
- 4Create a test abandonment to verify data flows through
Drop this into an n8n Code node.
Copy this template{{$node.Shopify.json.line_items.filter(item => item.price > 50).map(item => `${item.title} ($${item.price})`).join(' | ') || 'No high-value items'}}▸ Show code
{{$node.Shopify.json.line_items.filter(item => item.price > 50).map(item => `${item.title} ($${item.price})`).join(' | ') || 'No high-value items'}}... expand to see full code
{{$node.Shopify.json.line_items.filter(item => item.price > 50).map(item => `${item.title} ($${item.price})`).join(' | ') || 'No high-value items'}}Scaling Beyond 100+ abandonment events/day+ Records
If your volume exceeds 100+ abandonment events/day records, apply these adjustments.
Add execution queuing
Use N8n's built-in queue mode to prevent Google Sheets API rate limiting. Configure max concurrent executions to 5 in workflow settings.
Implement batch writing
Collect multiple abandonment events and write to Google Sheets in batches every 5 minutes instead of real-time individual rows.
Switch to database storage
Replace Google Sheets with PostgreSQL or MongoDB nodes for better performance. Google Sheets API starts throttling after 300 writes per minute.
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 need custom data processing or run high volume (500+ abandonment/month). The code nodes let you clean messy Shopify data and calculate custom metrics like average abandonment value by product category. Skip N8n if you just want basic logging — Zapier's Shopify integration is simpler and doesn't require webhook URL management.
This workflow uses 1 execution per abandoned checkout. At 300 abandonment/month, that's 300 executions monthly. N8n's Starter plan ($20/month) includes 2,500 executions, so you're well covered. Zapier would cost $30/month for the same volume (Professional plan needed for webhooks), and Make charges $21/month. N8n wins on price but requires more setup time.
Zapier handles Shopify webhook registration automatically — no manual URL copying needed. Make's visual interface makes field mapping cleaner than N8n's expression syntax. But N8n's code nodes are unmatched for processing complex cart data like calculating abandonment rates by customer segment or extracting variant-specific product info that Shopify buries deep in JSON.
You'll hit Shopify's webhook delivery quirks after setup. Abandoned checkout events sometimes fire twice if customers return to complete checkout then abandon again — add deduplication logic using checkout token. Google Sheets API throws 429 errors at high volume, so add a 2-second delay node between executions if you process 100+ abandonment per hour. Shopify's abandoned_checkout_url expires after 30 days, making recovery emails useless for old data.
Ideas for what to build next
- →Add automated email recovery — Connect Mailchimp or SendGrid to automatically email customers 1 hour after abandonment with their recovery link.
- →Create abandonment analytics dashboard — Use Google Sheets pivot tables or connect to Data Studio for visual reporting on abandonment patterns by product and time.
- →Set up Slack notifications for high-value carts — Add a Slack node with condition to notify your team immediately when carts over $500 are abandoned.
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