How to Connect Shopify to Google Sheets (E-commerce Data)
Automatically sync your Shopify store data to Google Sheets. Track orders, products, customers, and marketing performance.
MetricNexus Team

Shopify's built-in analytics dashboard is powerful, but it's siloed. You can't easily combine your order data with ad spend from Facebook, email metrics from Klaviyo, or inventory levels with sales trends. When you connect Shopify to Google Sheets, you unlock the ability to build custom reports, analyze attribution across channels, and create a single source of truth for your entire business.
In this guide, we'll walk through five different methods to sync Shopify data to Google Sheets—from simple manual exports to automated, real-time integrations—and show you how to build dashboards that actually drive business decisions.
What Shopify Data Can You Export?
Before choosing an integration method, let's clarify what data is available to export from Shopify:
Orders Data
Your order data is the heart of e-commerce analytics. You can export:
- Order details: Order ID, order date, order status (pending, completed, cancelled, refunded)
- Financial data: Subtotal, tax charged, shipping cost, total revenue, discounts applied
- Fulfillment data: Fulfillment status, shipping carrier, tracking number
- Line items: Product name, variant, quantity, unit price, line total
- Discount information: Discount codes used, discount amount, campaign source
- Customer attribution: Traffic source, referral source, which marketing channel drove the order
Products Data
Your product catalog and inventory metrics include:
- Product catalog: Product ID, product title, SKU, barcode, product type, vendor
- Pricing & variants: Price, compare-at price, cost per unit, all variant details
- Inventory levels: Quantity available, quantity committed, reorder level
- Sales performance: Total units sold, revenue by product, product category
- Product metadata: Tags, collections, weight, dimensions, product description
Customers Data
Understanding your customer base is critical:
- Customer info: Customer ID, email, phone, first/last name, account creation date
- Order history: Total orders placed, total spent, first order date, last order date
- Lifetime value: Total customer lifetime value (calculated from all orders)
- Acquisition source: Where the customer was acquired, original referral source, UTM parameters if available
- Customer segmentation: First-time vs repeat customers, high-value vs low-value tiers
Marketing Data (with connected apps)
When you sync Shopify with advertising and email platforms:
- Traffic sources: Direct, organic, paid ads, email, affiliate traffic breakdown
- Campaign attribution: Which Google Ads campaigns drove purchases, Facebook pixel attribution
- Ad spend metrics: Cost per acquisition, ROAS by campaign, ad platform spend
- Email metrics: Email subscribers, automations triggered, revenue from email campaigns
Method 1: Using MetricNexus (Recommended for Most)
MetricNexus is designed specifically for e-commerce teams who want to combine Shopify with marketing data. Here's how to set it up:
Step 1: Connect Your Shopify Account
- Log in to MetricNexus and click "Add Data Source"
- Select Shopify from the integrations list
- Click "Authorize" (this uses OAuth, so you don't share your password)
- A popup will open asking you to log in to your Shopify store
- Select the store you want to connect
- Review the requested permissions (orders, products, customers, fulfillment)
- Click "Install App"—this installs the MetricNexus app in your Shopify admin
Once authorized, MetricNexus will fetch your historical data (orders from the last 90 days by default) and set up automatic syncing.
Step 2: Select Data Types to Sync
In MetricNexus, you'll see options to sync:
- Orders (including line items and discounts)
- Customers (including order history and LTV)
- Products (including inventory and pricing)
- Fulfillments (shipping status and tracking)
Select the data types you need for your analysis. Start with Orders and Customers if you're unsure—these two data types enable the most useful reporting.
Step 3: Configure Sync Schedule
You can set MetricNexus to sync:
- Every 1 hour (for real-time dashboards)
- Every 6 hours (standard for most stores)
- Daily (if you don't need frequent updates)
We recommend every 6 hours for most e-commerce stores. This balances data freshness with API rate limit efficiency.
Step 4: Connect to Google Sheets
Once Shopify data is flowing into MetricNexus:
- Go to "Export to Google Sheets"
- Click "Authorize" to connect your Google account
- Select or create a Google Sheet to write data to
- Choose which tables to export (Orders, Customers, Products, etc.)
- MetricNexus will create new tabs in your Sheet and keep them updated on your sync schedule
Your Shopify data is now automatically updating in Google Sheets.
Method 2: Using Coupler.io (Budget-Friendly Alternative)
Coupler.io is a general-purpose data integration platform with a free tier and straightforward setup. It's ideal if you want to keep costs low and don't need advanced features.
Step-by-Step Setup
- Sign up for Coupler.io (free tier available)
- Create a new integration and select Shopify as the source
- Authorize Shopify: You'll be redirected to log in and approve the app
- Choose your data source: Select Orders, Customers, or Products
- Configure field mapping: Select which fields you want to include (date, revenue, customer name, etc.)
- Select your destination: Choose Google Sheets
- Authorize Google: Connect your Google account and select the target spreadsheet
- Set sync frequency: Daily, weekly, or monthly (free tier is limited to once per day)
- Run the sync: Coupler.io will populate your sheet with data
Coupler.io Limitations
- Free tier syncs once per day (no hourly updates)
- Limited to smaller datasets (best for <10,000 rows per sync)
- Row overwrite: By default, Coupler replaces all data on each sync (so historical data is preserved in your sheet, but your connection to the source is fresh)
- No data transformation: You'll need to clean/organize data in Sheets if you want custom formatting
Best For
Coupler.io is best if you want a lightweight solution that doesn't require coding and you're comfortable with daily updates.
Method 3: Native Shopify Export (Manual)
This is the simplest method for one-off exports, but not recommended for ongoing analysis because it requires manual work.
Step-by-Step
- Log into your Shopify Admin
- Go to Orders (or Products, Customers, etc.)
- Click the ⋯ (three dots) menu in the top right
- Select "Export"
- Choose the date range and fields you want to include
- Click "Export as CSV" (an email will be sent with the CSV file)
- Download the CSV and open it in Google Sheets:
- Create a new Google Sheet
- Go to File → Import → Select your CSV
- Choose "Replace current sheet" or "Insert new sheet"
- The data is now in Sheets
Limitations
- No automation: You have to export manually each time
- Data goes stale quickly: Your sheet reflects only the moment you exported
- Date range limitations: Shopify exports have a 100,000 row limit per export
- No incremental updates: Each export is a full snapshot, so you lose historical comparison
When to use this method: Only when you need a quick one-time export for a specific analysis (e.g., "Give me all orders from last month to analyze refunds").
Method 4: Shopify + Zapier (For Real-Time Triggers)
Zapier is excellent if you want to trigger specific actions based on new orders—like sending notifications to a Slack channel, creating a row in a Google Sheet for each new order, or alerting your fulfillment team.
Basic Setup (New Order → Google Sheets)
- Create a new Zap at zapier.com
- Choose trigger: Shopify → "New Order"
- Authenticate: Connect your Shopify store
- Choose action: Google Sheets → "Create Spreadsheet Row"
- Map fields:
- Email → Customer Email
- Order ID → Order #
- Amount → Total Price
- Status → Financial Status
- Date → Created date
- Test the Zap by placing a test order or using sample data
- Turn on and Zapier will create a new row for each order
Advanced Example: Alert on High-Value Orders
You can add conditional logic:
- If order total > $500, send a Slack notification
- If refund is issued, add a note to Google Sheets
- If order is for a specific product, tag it in your sheet
Limitations
- Zapier pricing: Free tier includes ~100 tasks/month; paid tiers start at $29/month
- No historical data: Zapier captures data going forward; it won't backfill old orders
- Can get expensive at scale: High-volume stores (1,000+ orders/month) may need premium tiers
- No aggregation: Each order creates one row; you'll need to build your own summaries in Sheets
Best For
Zapier works well for:
- Real-time alerts and notifications
- Creating action items in your sheet for each order
- Triggering secondary workflows (auto-reply emails, inventory updates)
Method 5: Shopify API + Google Apps Script (For Developers)
If you're technically inclined, you can write custom code to pull data directly from the Shopify API into Google Sheets using Google Apps Script (JavaScript that runs inside Google Sheets).
Example: Fetch Orders from Last 7 Days
Code block (javascript)function syncShopifyOrders() {
const SHOP_NAME = "your-store.myshopify.com";
const ACCESS_TOKEN = "your-shopify-api-token"; // Generate in Shopify admin
const seventyAgo = new Date();
seventyAgo.setDate(seventyAgo.getDate() - 7);
const createdAfter = seventyAgo.toISOString();
const url = `https://${SHOP_NAME}/admin/api/2024-01/orders.json?created_at_min=${createdAfter}&limit=250&status=any`;
const options = {
method: "GET",
headers: {
"X-Shopify-Access-Token": ACCESS_TOKEN,
"Content-Type": "application/json"
}
};
const response = UrlFetchApp.fetch(url, options);
const data = JSON.parse(response.getContentText());
const orders = data.orders;
const sheet = SpreadsheetApp.getActiveSheet();
sheet.clear();
sheet.appendRow(["Order ID", "Date", "Customer", "Email", "Total", "Status"]);
orders.forEach(order => {
sheet.appendRow([
order.id,
order.created_at,
order.customer.first_name + " " + order.customer.last_name,
order.customer.email,
order.total_price,
order.financial_status
]);
});
}
How to Use
- Go to your Google Sheet
- Select Extensions → Apps Script
- Paste the code above
- Update
SHOP_NAMEwith your Shopify domain - Generate an API token in Shopify Admin: Settings → Apps and Integrations → Develop Apps → Create App → API Credentials → Copy your access token
- Paste the token into the script
- Run the function and grant permissions
- Your orders will appear in the sheet
Advantages
- Full control: You can customize exactly which fields to fetch and how to organize them
- No cost: Uses free Shopify API tier and free Google Apps Script
- Complex logic: You can add calculations, error handling, and data transformation
Disadvantages
- Requires coding knowledge: Not suitable for non-technical users
- Maintenance required: If Shopify API changes, you may need to update the script
- Lower limits: Free tier is limited to specific API call counts; large stores may hit rate limits
Building a Shopify Sales Dashboard
Once your data is flowing into Google Sheets, the next step is building a dashboard that gives you insights at a glance. Here's what to include:
Overview Metrics Section
Create a summary section at the top of your sheet with:
Total RevenueCode block (markdown)=SUMIFS(Orders!F:F, Orders!B:B, ">="&DATE(YEAR(TODAY()),MONTH(TODAY()),1), Orders!B:B, "<"&DATE(YEAR(TODAY()),MONTH(TODAY())+1,1))
Code block (markdown)=COUNTIFS(Orders!B:B, ">="&DATE(YEAR(TODAY()),MONTH(TODAY()),1), Orders!B:B, "<"&DATE(YEAR(TODAY()),MONTH(TODAY())+1,1))
Code block (markdown)=Total Revenue / Order Count
Code block (markdown)=Orders This Month / Total Sessions
Trends Section
Add time-series charts to visualize:
- Daily revenue for the last 30 days (line chart)
- Orders by day of week (bar chart showing if weekends perform differently)
- Seasonal patterns (monthly revenue over the last 12 months)
Right-click on your data and select Insert Chart → Choose chart type → Customize title and labels.
Product Analysis
Create a pivot table to see top performers:
- Top 10 products by revenue: Which products bring in the most money
- Top 10 products by units sold: Which products are bestsellers
- Category performance: Total revenue and units by product category
- Inventory alerts: Flag products below a minimum threshold (e.g., "Alert if units < 5")
Customer Insights
Calculate and segment:
- New vs. Returning: Count of first-time customers this month vs. repeat customers
- Customer Lifetime Value (LTV): Total revenue per customer across all orders
- Top customers: Customers who've spent the most with you
- Cohort analysis: Group customers by first purchase month and track repeat purchase rates
Combining Shopify with Marketing Data
Here's where things get truly powerful. Most e-commerce businesses market across multiple channels—Google Ads, Facebook, email, organic search. Your Shopify data shows revenue, but it doesn't show which marketing channel drove that revenue.
The Problem with Siloed Data
Right now, you're probably checking:
- Shopify dashboard for orders and revenue
- Google Ads dashboard for ad spend and clicks
- Facebook Ads Manager for impressions and conversions
- Google Analytics for traffic sources
This requires constantly switching between tools, and it's hard to draw conclusions when data is separated.
The Solution: Marketing Attribution Dashboard
By combining Shopify order data with ad spend from Google Ads and Meta, you can calculate true ROAS (Return on Ad Spend) and see which channels are actually profitable.
Example:
- You spent $500 on Google Ads this month
- Your Shopify dashboard shows $2,500 in total revenue
- But using UTM parameters in your Google Ads URLs, you can attribute $1,200 of that revenue to Google Ads
- Your Google Ads ROAS = $1,200 / $500 = 2.4x (for every $1 spent, you made $2.40)
- Meanwhile, Facebook Ads had an ROAS of only 1.5x
- Conclusion: double your Google Ads budget, pause underperforming Facebook campaigns
How to Set Up Attribution
Step 1: Add UTM Parameters to Ads
In Google Ads, Facebook Ads, and any other traffic source, append UTM parameters to your URLs: %%%CODE_BLOCK_5%%%
When a customer clicks this link and makes a purchase, Shopify captures the UTM parameters in the order's source.
Step 2: Pull Ad Spend Data
Use MetricNexus or Coupler.io to also import data from:
- Google Ads: Daily cost, impressions, clicks, conversions by campaign
- Meta Ads: Daily spend, impressions, clicks, link clicks by ad set
- Email platform (if you use Klaviyo, ConvertKit): Revenue per email campaign, subscriber growth
Step 3: Blend Data in Google Sheets
Create a summary table:
| Marketing Channel | Ad Spend | Attributed Revenue | ROAS | Efficiency |
|---|---|---|---|---|
| Google Ads - Search | $500 | $1,200 | 2.4x | ⬆️ Top performer |
| Facebook Ads - Conversion | $300 | $450 | 1.5x | ⬇️ Declining |
| Email (Klaviyo) | $0 | $800 | ∞ | ✅ Free channel |
| Organic Search | $0 | $550 | ∞ | ✅ Free channel |
Use VLOOKUP or INDEX/MATCH to pull data from each source, then calculate ROAS and efficiency scores.
E-commerce KPIs to Track
These are the metrics that matter most for online stores. Track them weekly in your Sheets dashboard:
Revenue & Sales
Total Revenue
- Definition: Sum of all completed orders
- Formula:
=SUM(Orders!F:F)(where column F = order total) - Why it matters: Your top-line business metric
Average Order Value (AOV)
- Definition: Total revenue divided by number of orders
- Formula:
=Total Revenue / Number of Orders - Why it matters: Shows if customers are buying more per order (higher AOV = more efficient marketing)
Customer Metrics
Customer Acquisition Cost (CAC)
- Definition: Total marketing spend divided by number of new customers acquired
- Formula:
=Total Marketing Spend / New Customers - Why it matters: Tells you if you're spending too much to acquire customers
Customer Lifetime Value (LTV)
- Definition: Total revenue per customer across all purchases
- Formula:
=SUM(Customer Order Total) for each customer - Why it matters: Helps you decide how much to spend acquiring customers (rule of thumb: LTV should be 3x+ CAC)
Repeat Purchase Rate
- Definition: Percentage of customers who've purchased more than once
- Formula:
=Customers with 2+ Orders / Total Customers - Why it matters: Shows if your products and service are good enough for repeat business
Conversion & Efficiency
Conversion Rate (requires Google Analytics data)
- Definition: Orders / Visitors
- Formula:
=Orders / Sessions (from Google Analytics) - Why it matters: Even with great products, you might be losing customers at checkout
Return Rate
- Definition: Percentage of ordered items that are returned
- Formula:
=Returned Units / Total Units Shipped - Why it matters: High returns indicate product-market fit issues or quality problems
Cart Abandonment Rate (requires Shopify Abandoned Checkouts data)
- Definition: Abandoned carts / Carts created
- Formula:
=Abandoned Carts / (Completed Orders + Abandoned Carts) - Why it matters: Most sites lose 70%+ of customers at checkout; fixing this is high-leverage
Marketing Performance
Return on Ad Spend (ROAS)
- Definition: Revenue attributed to ads / Ad spend
- Formula:
=Attributed Revenue / Ad Spend - Why it matters: Tells you if your marketing is actually profitable (target: 2x+ for sustainable growth)
Customer Acquisition Cost by Channel
- Definition: Ad spend by channel / New customers from that channel
- Formula:
=Google Ads Spend / New Customers from Google(repeat for each channel) - Why it matters: Some channels are more efficient; this tells you where to focus
Cost Per Purchase (across all channels)
- Definition: Total marketing spend / Total orders
- Formula:
=(Google Ads + Facebook + Email + Other) / Total Orders - Why it matters: Holistic view of marketing efficiency
Common Use Cases & How to Implement Them
Inventory Alerts
E-commerce requires careful inventory management. If you run out of stock, you lose revenue. If you over-stock, you tie up capital.
Set up alerts in Google Sheets:
-
Create a column called "Stock Status"
Code block (markdown)
=IF(Inventory!B:B < 10, "LOW STOCK", IF(Inventory!B:B < 5, "CRITICAL", "OK")) -
Add conditional formatting:
- Highlight "LOW STOCK" in yellow
- Highlight "CRITICAL" in red
-
Set up email notifications via Tools → Notification Rules:
- Notify you when any cell in the Stock Status column changes to "CRITICAL"
-
Or create a daily Zapier zap:
- Trigger: Every day at 8 AM
- Action: If any product has inventory < 5, send email alert with product list
Sales Forecasting
Use historical data to predict future revenue:
- Create a 12-month revenue history table
- Insert a chart (Insert → Chart) of monthly revenue
- Click the chart → customize → Series → add a trendline
- The trendline shows expected growth trajectory
- Use the trendline equation to forecast next quarter revenue
For more accurate forecasting, you could incorporate:
- Seasonal patterns (e.g., December is 2x normal revenue)
- Promotional impact (e.g., "Black Friday drives 5x revenue spike")
- Marketing campaign timing
Example: If average monthly revenue is $10K, but December is 2x, December forecast = $20K.
Marketing ROI Analysis
Compare revenue generated vs. marketing spend:
Monthly ROI Table:
| Month | Marketing Spend | Revenue | ROAS | Profit |
|---|---|---|---|---|
| January | $1,000 | $4,500 | 4.5x | $3,500 |
| February | $1,500 | $3,800 | 2.5x | $2,300 |
| March | $1,200 | $6,200 | 5.2x | $5,000 |
Then:
- Identify which months/campaigns had the best ROAS
- Increase spending on top performers
- Cut or optimize underperforming campaigns
- Cycle: This creates a virtuous loop of improving ROI
Customer Segmentation (RFM Analysis)
RFM = Recency, Frequency, Monetary. It segments customers by:
- Recency: How recently did they purchase? (Recently = higher value)
- Frequency: How often do they purchase? (Frequent = loyal)
- Monetary: How much have they spent? (High spenders = valuable)
Build RFM segments in Sheets:
-
For each customer, calculate:
- Days since last purchase = TODAY() - Last Purchase Date
- Number of purchases = COUNTIF(Orders.Customer_ID)
- Total spent = SUMIF(Orders.Customer_ID)
-
Rank each metric 1-5 (5 = best):
- Recency < 30 days = 5, 30-60 = 4, 60-90 = 3, etc.
- Frequency > 5 orders = 5, 4 orders = 4, etc.
- Monetary > $500 = 5, $200-500 = 4, etc.
-
Combine scores:
- Score "555" = Champions (high value, frequent, recent) → VIP treatment
- Score "111" = At risk (low value, rare purchases, long time since purchase) → Win-back campaign
- Score "333" = Loyal customers → Upsell opportunities
-
Export this segmentation and use it in:
- Email marketing (VIPs get exclusive offers)
- Ad campaigns (retarget at-risk customers with discounts)
- Personalization (show Champions premium products, show At Risk discounts)
Troubleshooting Common Issues
"I can't connect my Shopify account"
Cause: App permission issues or account access problems
Solution:
- Make sure you're a Shopify admin or have the required permissions
- Try disconnecting and reconnecting
- Check if your Shopify account is on a paid plan (some free tier limitations exist)
- Clear browser cache and try again
- Contact the integration provider's support
"I'm missing historical data"
Cause: Date range limitations or API limits in the integration
Solution:
- Check the integration settings—some default to "last 90 days"
- Configure it to import "all available data" or specify a custom date range
- If using the Shopify API, note that it may take longer to fetch 2+ years of data
- Wait for the sync to complete (large syncs can take 1-2 hours)
"My Sheets data doesn't match my Shopify dashboard"
Cause: Timezone differences, refunds, or pending orders
Solution:
- Timezone: Shopify admin dashboard may be in your store's timezone, but exported data might be in UTC. Add a timezone conversion formula if needed
- Refunds/returns: The Shopify dashboard shows current status, but your data might include refunded orders. Filter out refunds if you want just "completed revenue"
- Pending orders: If you're including orders that haven't been fulfilled, they're not yet revenue. Filter to
Financial Status = Paidto match dashboard - Time lag: Integrations usually sync on a schedule (hourly, daily), so data might be 1-24 hours behind
"Google Sheets is slow with lots of data"
Cause: Too many rows (Sheets can handle 10 million cells, but performance degrades with complex formulas)
Solution:
- Archive old data: Move data older than 12 months to a separate sheet
- Use pivot tables: Instead of formulas on raw data, use QUERY() or pivot tables for aggregations
- Reduce update frequency: If syncing every hour, change to every 6 hours
- Separate concerns: Put raw data in one sheet, summaries/dashboards in another
- Use Google Sheets' QUERY function instead of VLOOKUP: %%%CODE_BLOCK_7%%%
FAQ
Q: Can I automate Shopify to Google Sheets without code?
A: Yes. Use MetricNexus, Coupler.io, or Zapier. These handle scheduling and data transformation automatically. No coding required.
Q: How do I track which marketing campaigns drove which orders?
A: Use UTM parameters in your ad links. Shopify captures these in the "utm_source," "utm_campaign," and "utm_medium" fields on each order. Then join this data with your ad spend data in Sheets to calculate ROAS.
Q: Does Shopify have a native Google Sheets integration?
A: Not officially, but Shopify's public API allows third-party integrations (like MetricNexus, Coupler, Zapier) to pull data. These are the recommended solutions.
Q: How often should I update my dashboard?
A: For a sales dashboard, daily updates are sufficient for most stores. If you need real-time alerts for high-value orders, set up hourly syncs or Zapier-based notifications.
Q: Can I combine Shopify data with Google Ads and Facebook data in one sheet?
A: Yes. Use MetricNexus (which supports multiple sources), or manually import ad data from Google Ads and Meta, then blend it with Shopify in Sheets using VLOOKUP/INDEX-MATCH.
Next Steps
-
Choose your integration method:
- For ease: Use MetricNexus or Coupler.io
- For maximum control: Build a custom script with Google Apps Script
- For real-time alerts: Use Zapier
-
Set up your first dashboard:
- Start simple: just Orders, Customers, Products
- Add 5-6 key metrics (Revenue, AOV, Order Count, New Customers, Return Rate, Top Products)
- Create a basic chart showing revenue trend
-
Connect marketing data:
- Add Google Ads data and calculate ROAS by campaign
- Segment orders by marketing channel using UTM parameters
- Identify your most profitable channels and double down
-
Automate insights:
- Set up weekly email reports from Sheets
- Create inventory alerts for low-stock items
- Build a customer segmentation model (RFM analysis)
Your Shopify data is now working for you, giving you insights into what's working and where to focus next. Start with the basics, then expand as your comfort level grows.
Related Posts

E-commerce Marketing Dashboard: Shopify + All Ad Platforms
Build a complete e-commerce marketing dashboard combining Shopify, Google Ads, Meta Ads, and TikTok. Free template included.

How to Connect Amazon Ads to Google Sheets
Export your Amazon Advertising data to Google Sheets automatically. Track Sponsored Products, Brands, and Display campaigns.

The Complete Guide to Marketing Data (For Non-Technical Teams)
Everything you need to know about marketing data - without the jargon. A practical guide for marketers who aren't data engineers.
Ready to see your marketing data?
Start your free trial today. See your data in 5 minutes.
Start Free Trial