Beginner~12 min setupProductivity & E-commerceVerified April 2026
Google Sheets logo
Shopify logo

How to Track Shopify Refunds in Google Sheets with Make

Automatically log every Shopify refund with order number, amount, reason, and date to track refund rates over time.

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 detailed refund analytics with real-time data capture and custom field mapping

Not ideal for

Stores processing fewer than 10 refunds per month or teams that only need basic refund notifications

Sync type

real-time

Use case type

sync

Real-World Example

💡

A 25-person fashion e-commerce company uses this to track seasonal return patterns and identify product quality issues. Before automation, their customer service team manually compiled refund reports from Shopify admin every week, missing real-time trends. Now they spot sizing issues within hours and can adjust product descriptions before return rates spike.

What Will This Cost?

Drag the slider to your expected monthly volume.

/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 Make

Copy the pre-built Make blueprint and paste it straight into Make. 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.

Admin access to a Shopify store
Google account with access to Google Sheets
Make account (free tier works for testing)
Google Sheet created with column headers for refund data

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Order Numberorder_id
Refund Amountamount
Refund Datecreated_at
3 optional fields▸ show
Refund Reasonnote
Customer Emailorder.customer.email
Transaction IDtransactions[0].id

Step-by-Step Setup

1

Dashboard > Create scenario > Shopify

Create New Scenario

Set up a new Make scenario to handle the refund webhook. This creates the foundation for your refund tracking automation.

  1. 1Click 'Create a new scenario' from the Make dashboard
  2. 2Click the large '+' button in the center of the canvas
  3. 3Type 'Shopify' in the search box and select it
What you should see: You should see the Shopify app icon on the canvas with module options displayed on the right panel.
2

Scenario > Shopify > Watch Refunds

Add Shopify Watch Refunds Trigger

Configure the trigger to fire whenever a refund is created in your Shopify store. This uses a webhook for instant notifications.

  1. 1Select 'Watch Refunds' from the trigger options
  2. 2Click 'Add' next to Connection to create a new Shopify connection
  3. 3Enter your Shopify store URL in format: yourstore.myshopify.com
What you should see: The connection status shows green 'Verified' and the module displays 'Shopify Watch Refunds' as the title.
Common mistake — Don't use 'Watch Orders' and filter for refunds — that triggers on every order change and wastes operations.
Make
+
click +
search apps
Google Sheets
GO
Google Sheets
Add Shopify Watch Refunds Tr…
Google Sheets
GO
module added
3

Shopify module > Settings

Configure Webhook Settings

Set up the webhook parameters to capture all necessary refund data. This determines what information Make receives from Shopify.

  1. 1Leave 'Limit' field empty to process all refunds
  2. 2Click 'Save' to create the webhook
  3. 3Copy the webhook URL that appears — you'll need this for Shopify
What you should see: A webhook URL starting with 'https://hook.integromat.com' appears in the module settings.
Common mistake — The webhook only activates after you run the scenario once — don't test in Shopify until after step 4.
4

Scenario > Run once

Run Initial Test

Execute the scenario once to activate the webhook and see sample data structure. This helps you understand what fields are available.

  1. 1Click 'Run once' button in the bottom toolbar
  2. 2Go to your Shopify admin and process a test refund
  3. 3Return to Make and wait for the execution to complete
What you should see: The scenario shows 'Success' with a green checkmark and displays sample refund data in the execution log.
Make
▶ Run once
executed
Google Sheets
Shopify
Shopify
🔔 notification
received
5

Scenario > Add module > Google Sheets > Add a row

Add Google Sheets Module

Connect Google Sheets as the destination for refund data. This is where you'll store and analyze refund information over time.

  1. 1Click the '+' button to the right of the Shopify module
  2. 2Search for 'Google Sheets' and select it
  3. 3Choose 'Add a row' from the action list
What you should see: A Google Sheets module appears connected to Shopify with 'Add a row' selected as the action.
6

Google Sheets module > Add connection

Connect Google Account

Authenticate with your Google account to access spreadsheets. Make needs permission to read your sheets and write new rows.

  1. 1Click 'Add' next to Connection in the Google Sheets module
  2. 2Click 'Sign in with Google' and complete OAuth flow
  3. 3Select your Google account and grant Make permission
What you should see: Connection shows as 'Connected' with your Gmail address displayed in the Google Sheets module.
Common mistake — Use the same Google account that owns the target spreadsheet — shared sheets can cause permission errors.
Make settings
Connection
Choose a connection…Add
click Add
Google Sheets
Log in to authorize
Authorize Make
popup window
Connected
green checkmark
7

Google Sheets module > Spreadsheet selection

Select Target Spreadsheet

Choose the specific Google Sheet and worksheet where refund data will be logged. Create headers first if this is a new sheet.

  1. 1Click the Spreadsheet dropdown and select your target sheet
  2. 2Choose the worksheet tab (usually 'Sheet1')
  3. 3Set 'Table contains headers' to Yes
What you should see: Your spreadsheet name appears in the module with the correct worksheet selected.
Common mistake — Create column headers in row 1 before mapping: Order Number, Refund Amount, Reason, Date, Customer Email.
8

Google Sheets module > Values section

Map Refund Data Fields

Connect Shopify refund data to your Google Sheet columns. This determines what information gets logged for each refund.

  1. 1Click in the 'Order Number' column field
  2. 2Select 'order_id' from the Shopify data dropdown
  3. 3Map 'amount' to your Refund Amount column
What you should see: Each column field shows mapped Shopify data with blue tags like 'order_id' and 'amount'.
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

Google Sheets module > Values section

Add Date and Reason Mapping

Complete the field mapping with refund timestamp and reason. These fields help you analyze refund patterns and causes.

  1. 1Map 'created_at' to your Date column
  2. 2Map 'note' to your Reason column
  3. 3Map 'order > customer > email' to Customer Email column
What you should see: All five columns show mapped data sources from the Shopify refund webhook.
Common mistake — Shopify's 'created_at' includes timezone info — your sheet will show full ISO timestamp, not just date.
10

Scenario > Run once

Test Complete Workflow

Run the full scenario to verify data flows correctly from Shopify to Google Sheets. This confirms your mapping works as expected.

  1. 1Click 'Run once' again to test the complete flow
  2. 2Process another test refund in Shopify admin
  3. 3Check your Google Sheet for the new row with refund data
What you should see: A new row appears in your Google Sheet with order number, refund amount, reason, date, and customer email.
11

Scenario > Schedule toggle

Enable Automatic Scheduling

Turn on the scenario to run automatically when refunds occur. This activates real-time refund tracking without manual intervention.

  1. 1Toggle the 'ON' switch in the bottom left of the scenario
  2. 2Confirm the scheduling dialog that appears
  3. 3Verify the scenario status shows 'Active'
What you should see: The scenario switch shows 'ON' and the status indicator displays 'Active' in green.
Common mistake — Each refund will consume 2 operations (1 for Shopify trigger + 1 for Google Sheets row) — factor this into your Make plan.

Drop this into a Make custom function.

JavaScript — Custom Function{{formatDate(created_at; "YYYY-MM-DD HH:mm")}}
▸ Show code
{{formatDate(created_at; "YYYY-MM-DD HH:mm")}}

... expand to see full code

{{formatDate(created_at; "YYYY-MM-DD HH:mm")}}

Scaling Beyond 100+ refunds/day+ Records

If your volume exceeds 100+ refunds/day records, apply these adjustments.

1

Add Data Store Buffer

Use Make's Data Store to queue refunds during peak times. This prevents Google Sheets API rate limits from breaking your scenario when processing bulk refunds.

2

Batch Multiple Rows

Switch to Google Sheets 'Add multiple rows' action and use an aggregator to write 10-20 refunds at once. This reduces operations consumed and avoids API rate limits.

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 Make for this workflow

Use Make for this if you need real-time refund tracking with detailed data mapping. Make's Shopify webhook triggers fire within 30 seconds of a refund, and you can map specific fields like refund transactions and customer data that Zapier doesn't expose. The visual scenario builder makes it easy to add data transformations or route different refund types to separate sheets. Skip Make if you only need basic refund notifications — Shopify's built-in email alerts work fine for that.

Cost

This workflow uses 2 operations per refund (Shopify trigger + Google Sheets row). At 50 refunds/month, that's 100 operations total. That fits Make's free tier of 1,000 operations. At 200 refunds/month, you'll need the Core plan at $9/month for 10,000 operations. Zapier would cost $20/month for the same volume since their Shopify triggers start at the Starter plan. Make is $11/month cheaper and gives you more operation headroom.

Tradeoffs

Zapier has a cleaner Shopify integration with pre-built refund templates that require less setup time. N8N offers better data transformation options if you need to calculate refund rates or format currency values before logging. But Make strikes the right balance — you get Shopify's full webhook data without Zapier's premium pricing, plus enough transformation tools to clean up timestamps and amounts without N8N's coding complexity.

Shopify's refund webhook includes transaction arrays that can confuse field mapping — if you see 'object Object' in your sheet, you're mapping the wrong level of the data structure. The webhook fires for partial refunds too, so high-volume stores might burn through operations faster than expected. Google Sheets has a 100-cell-per-second write limit, so if you process 50+ refunds simultaneously (like after a product recall), some rows might get queued and appear delayed.

Ideas for what to build next

  • Add Refund Rate CalculationsCreate Google Sheets formulas to calculate monthly refund rates and identify trends by product or customer segment.
  • Set Up Slack Alerts for High RefundsAdd a Make filter and Slack module to notify your team when individual refunds exceed a threshold amount like $500.
  • Connect to Customer Service ToolsRoute refund data to Zendesk or Intercom to automatically create follow-up tickets for customer retention outreach.

Related guides

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