Get Started
Screenshot of n8n workflow
FREE TEMPLATE
Sync Shopify Customers for Email Marketing
9
Views
0
Downloads
13
Nodes
Download Template
Free
Preview Template
Utility Rating
7 / 10
Business Function
Marketing
Automation Orchestrator
n8n
Integrations
Shopify
Google Sheets
Trigger Type
Manual trigger
Schedule
Approx setup time ≈ 35 min
Need help setting up this template?
Ask in our free Futurise community
About
Community
Courses
Events
Members
Templates

How to Sync Shopify Customers for Email Marketing?

Leon Petrou
FREE TEMPLATE
Sync Shopify Customers for Email Marketing
9
Views
0
Downloads
13
Nodes
Download Template
Free
Preview Template
Utility Rating
7 / 10
Business Function
Marketing
Automation Orchestrator
n8n
Integrations
Shopify
Google Sheets
Trigger Type
Manual trigger
Schedule
Approximate setup time ≈ 35 minutes
Need help setting up this template?
Ask in our free Futurise community

Description

Keep your Shopify customer list fresh in Google Sheets and create a ready to import CSV for Squarespace contacts. Great for marketing teams that need clean email lists for campaigns without manual exports.

Runs on a schedule or on demand, calls the Shopify Customers API, and follows next page links to capture every record. A code step reads the Link header to find the page cursor, loops until no more pages, and merges all results. Each customer is then split into single items, written to a chosen Google Sheet with append or update, and also formatted into a headerless CSV file that matches Squarespace contact import. This means complete coverage, fewer duplicates, and a file that is ready to upload.

Setup needs a Shopify access token with read customers and a Google Sheets connection. Replace your store domain in the request URL and pick the target spreadsheet and sheet. Expect a sharp cut in list prep time and fewer data errors. Use it for email campaign imports, list cleanup, and contact enrichment across your store.

Copy link

Tools Required

Shopify
Sign up
Starter plan: $5 / mo
n8n
Sign up
$24 / mo or $20 / mo billed annually to use n8n in the cloud. However, the local or self-hosted n8n Community Edition is free.
Google Sheets
Sign up
Free: $0 (Google Sheets API usage has no additional cost; quota limits apply)

What this workflow does?

  • Runs by schedule or manual test for flexible control
  • Fetches Shopify customers with id, email, first name, and last name
  • Parses the Link header to read the next page cursor and loops until complete
  • Merges all pages into one list to avoid missing records
  • Splits customers into single items for clean processing
  • Writes to Google Sheets using append or update with mapped columns
  • Builds a headerless CSV file that matches Squarespace contacts import
  • Provides a binary file output you can download from the execution

What are the benefits?

  • Reduce manual exports from 60 minutes to 5 minutes per campaign
  • Automate 100 percent of customer list updates
  • Improve data accuracy by 90 percent by avoiding copy and paste
  • Handle large lists with cursor paging across many thousands of customers
  • Connect Shopify and Google Sheets in one flow
  • Create an import ready CSV for Squarespace with no extra edits

How to set this up?

  1. Import the template into n8n: Create a new workflow in n8n > Click the three dots menu > Select 'Import from File' > Choose the downloaded JSON file.
  2. You'll need accounts with Shopify and Google Sheets. See the Tools Required section above for links to create accounts with these services.
  3. In the n8n credentials manager, create a Shopify Access Token credential. In your Shopify admin, go to Apps and sales channels > Develop apps, create an app, grant read customers scope, install the app, and copy the Admin API access token. Enter your shop domain and token in n8n and save.
  4. Connect Google Sheets in n8n by creating a Google Sheets OAuth credential. Sign in with the correct Google account and allow the requested permissions.
  5. Open the Get Customers node and replace the store part of the URL with your domain in the format https://your-store.myshopify.com. Keep the API version and query parameters as provided.
  6. Ensure the Get Customers node returns Full Response so headers are available for paging. Leave limit 250 and the listed fields to pull a stable set of data.
  7. Check the Customers Spreadsheet node and select your target spreadsheet and sheet. Map Email address, First name, Last name, and Shopify Customer ID to the matching columns. Use append or update to reduce duplicates.
  8. If you do not have a sheet yet, create one with the four columns in the same order and share it with the Google account you used for the credential.
  9. Set the Schedule Trigger to the interval you want, such as daily or hourly, and activate the workflow.
  10. Run a manual test. Confirm that rows appear in the Google Sheet and that a binary file is produced by the Convert to Squarespace contacts csv node. Download the file and spot check a few rows.
  11. If you see 401 or 403 errors from Shopify, review the access token, store domain, and make sure read customers is granted. If the sheet does not update, confirm sharing and that the sheet name and tab are correct.
  12. If paging stops early, verify that the Extract page_info and Assign page_info parameter nodes remain connected and that the Get Customers node is set to Full Response.

Need help or want to customize this?

Similar Templates

n8n
Marketing
Automate Shopify Theme Asset Updates
Push campaign assets from a Baserow form into Shopify with one call. Marketing teams can upload the campaign image and save a theme snippet without logging into the store. Launch seasonal promos and product drops faster with fewer errors. A webhook receives data from Baserow, then stored values supply your shop subdomain, theme ID, filename, and snippet content. A check step prevents bad runs. Next, a GraphQL call uses the Shopify Admin API to upload the image with fileCreate. After that, a REST call saves the Liquid snippet into the theme assets. Header based auth keeps your token out of the flow, and variables build the correct URLs and payloads. The result is a clear handoff from data entry to live theme content. Setup needs a Shopify Admin API token and a Baserow table that can send a POST webhook. Fill the Set node with your subdomain, theme ID, file name, and the snippet content you want live. Expect faster launches, less copy paste, and more consistent assets. Great for limited time banners, collection promos, and brand updates that should go live on a schedule.
0 views
view
n8n
Marketing
Sync Shopify Campaign Orders to Baserow
Get a daily snapshot of which marketing campaigns drive orders. The workflow pulls yesterday’s Shopify orders and saves the campaign details into a Baserow table. It suits online stores that need clean attribution data without manual exports. At midnight, a schedule starts the run. A Set node stores your Shopify subdomain, and a GraphQL call reads orders from the Shopify Admin API with customer journey data. The flow splits each order, reshapes the fields to simple values like order name, campaign, source, and content, then filters out records that have no campaign. Qualified rows are written to Baserow for reporting, while non campaign orders go to a no operation branch. You only need a Shopify Admin API token and a Baserow API key, plus a table ready to receive the fields. Expect to cut weekly reporting time by at least an hour and gain a consistent view of campaign performance for every order with UTM data. It works well for daily dashboards, promo tracking, and month end summaries without manual CSV work.
7 views
view
n8n
Marketing
Sync Shopify and Mautic Marketing Consent
Keep email marketing consent in sync between Shopify customers and Mautic segments. Built for ecommerce teams that send campaigns and need accurate consent in both systems. You get clean lists and quick updates without manual edits. Two event paths keep data aligned. When Shopify updates a customer, the workflow finds or creates the contact in Mautic, then adds or removes the person from a confirmed segment based on the marketing consent flags. When Mautic changes a contact’s email subscription, a secure webhook hits n8n, the request is checked with an HMAC signature, and the flow looks up the Shopify customer by email through the Admin GraphQL API. A mutation then sets the email marketing consent to subscribed or unsubscribed. The logic uses If nodes for decisions, Mautic OAuth2 for contacts and segments, and Shopify header auth for GraphQL. Setup needs a Shopify Admin API token, your store subdomain, a Mautic instance with API enabled, a segment ID, and a shared secret for the webhook. Expect faster list updates, fewer consent errors, and better compliance. It works well for post purchase opt in, GDPR requests, and support driven opt outs. Follow the steps below to configure and test the sync.
1 views
view
See More Templates

These templates were sourced from publicly available materials across the web, including n8n’s official website, YouTube and public GitHub repositories. We have consolidated and categorized them for easy search and filtering, and supplemented them with links to integrations, step-by-step setup instructions, and personalized support in the Futurise community. Content in this library is provided for education, evaluation and internal use. Users are responsible for checking and complying with the license terms with the author of the templates before commercial use or redistribution.Where an original author was identified, attribution has been provided. Some templates did not include author information. If you know who created this template, please let us know so we can add the appropriate credit and reference link. If you are the author and would like this template removed from the library, email us at info@futurise.com and we will remove it promptly.