← View All Guides
Zapier logo
Integration Guide

How to Track Referrals in Google Sheets with Zapier + GrowSurf

Automatically log every referral to a Google Sheets spreadsheet for easy tracking, reporting, and analysis.

Sometimes the best tracking tool is a simple spreadsheet. Google Sheets gives your team a flexible, shareable, and instantly accessible view of referral activity without needing CRM access. By connecting GrowSurf to Google Sheets through Zapier, every referral event is automatically logged with full details β€” creating a living database of your referral program.

This guide shows you how to set up automatic referral logging to Google Sheets, build calculated columns for conversion tracking, create pivot table reports, and share live referral data with stakeholders who don't have access to GrowSurf or your CRM.

Integration Steps

Step 1: Create Your Referral Tracking Spreadsheet

Set up a Google Sheets spreadsheet with columns designed to capture all relevant referral data.

  • Create a new Google Sheet named "GrowSurf Referral Tracker"
  • Set up column headers in Row 1:
    • A: Timestamp
    • B: Event Type
    • C: Referred Email
    • D: Referred Name
    • E: Referrer Email
    • F: Referrer Name
    • G: Referral Code
    • H: Campaign Name
    • I: Status (Pending/Converted)
    • J: Revenue (to be filled manually or via another Zap)
  • Format the header row with bold text and freeze it

Step 2: Create the Referral Logging Zap

Build a Zap that automatically adds a new row to your spreadsheet whenever a referral event occurs.

  • Trigger: GrowSurf β€” New Referral
  • Action: Google Sheets β€” Create Spreadsheet Row
  • Select your tracking spreadsheet and worksheet
  • Map GrowSurf fields to spreadsheet columns
  • Test with a sample referral to verify data appears correctly

Step 3: Add a Conversion Update Zap

Create a second Zap that updates existing rows when a referral converts, rather than adding duplicate rows.

  • Trigger: GrowSurf β€” Participant Reached Reward
  • Action: Google Sheets β€” Update Spreadsheet Row
  • Use Zapier's Lookup feature to find the existing row by email
  • Update the Status column from "Pending" to "Converted"
  • Add the conversion date to a new column

Step 4: Build Calculated Columns for Analytics

Add Google Sheets formulas to calculate key metrics from your referral data automatically.

  • Conversion Rate: =COUNTIF(I:I,"Converted")/COUNTA(I2:I)
  • Referrals Per Referrer: =COUNTIF(E:E,E2) (drag down for each row)
  • Days to Convert: =IF(K2<>"",K2-A2,"") (difference between conversion date and referral date)
  • Monthly Referral Count: =COUNTIFS(A:A,">="&DATE(YEAR(TODAY()),MONTH(TODAY()),1),A:A,"<"&EDATE(DATE(YEAR(TODAY()),MONTH(TODAY()),1),1))

Step 5: Create a Pivot Table Dashboard

Use Google Sheets' pivot table feature to create an interactive dashboard from your referral data.

  • Select all data and go to Insert > Pivot Table
  • Create views:
    • Referrals by month (rows: month, values: count)
    • Top referrers (rows: referrer email, values: count, sorted descending)
    • Conversion funnel (rows: status, values: count and percentage)
  • Add charts based on the pivot table for visual reporting

Step 6: Share and Automate Reporting

Set up automated sharing and reporting from your spreadsheet.

  • Share the Google Sheet with stakeholders using "View only" permissions
  • Use Google Sheets' built-in email notifications to alert on changes
  • Create a scheduled Zap that emails a summary report weekly using data from the sheet
  • Set up Google Data Studio (Looker Studio) connected to the sheet for more advanced dashboards

Code Snippets

// Zapier Field Mapping for Google Sheets
// GrowSurf Trigger Field β†’ Google Sheets Column

// Column A (Timestamp): Use Zapier's built-in {{zap_meta_human_now}}
// Column B (Event Type): Set to "New Referral" (static text)
// Column C (Referred Email): {{email}}
// Column D (Referred Name): {{firstName}} {{lastName}}
// Column E (Referrer Email): {{referredBy__email}}
// Column F (Referrer Name): {{referredBy__firstName}} {{referredBy__lastName}}
// Column G (Referral Code): {{referralCode}}
// Column H (Campaign): {{campaign__name}}
// Column I (Status): Set to "Pending" (static text)

// Google Sheets Formulas for Analytics Row:
// Total Referrals:
=COUNTA(C2:C)

// Conversion Rate:
=TEXT(COUNTIF(I2:I,"Converted")/MAX(COUNTA(I2:I),1),"0.0%")

// Top Referrer:
=INDEX(E2:E,MATCH(MAX(COUNTIF(E2:E,E2:E)),COUNTIF(E2:E,E2:E),0))

// Average Referrals Per Referrer:
=COUNTA(C2:C)/MAX(COUNTUNIQUE(E2:E),1)

// This Month's Referrals:
=COUNTIFS(A2:A,">="&EOMONTH(TODAY(),-1)+1,A2:A,"<="&EOMONTH(TODAY(),0))

Tips

Color-Code Rows by Status

Use Google Sheets' conditional formatting to color rows based on referral status. Set "Pending" rows to yellow and "Converted" rows to green. This gives an instant visual overview of your referral pipeline when you open the spreadsheet.

Archive Old Data Monthly

Move completed referral data to a separate "Archive" tab each month. This keeps your main sheet fast and manageable while preserving historical data. Create a simple Apps Script to automate this archival process.

Use Named Ranges for Cleaner Formulas

Define named ranges for your data columns (e.g., "ReferralEmails" for column C, "Statuses" for column I). This makes your formulas more readable and easier to maintain as the spreadsheet grows.

Set Up Data Validation for Status Column

Add a data validation dropdown to the Status column with values "Pending", "Converted", and "Expired." This prevents typos and ensures your formulas work correctly when team members manually update statuses.

FAQ

Will the spreadsheet slow down with thousands of referrals?

Google Sheets handles up to 10 million cells, but performance degrades above a few thousand rows with complex formulas. For high-volume programs (100+ referrals/day), archive old data monthly and consider switching to a database solution. For most programs, Sheets works well for years of data.

Can I update the sheet when a referral converts instead of adding a new row?

Yes. Use Zapier's "Update Spreadsheet Row" action with the "Lookup Spreadsheet Row" step. Search by the referred person's email to find the existing row, then update the Status column. This keeps one row per referral instead of creating duplicates.

How do I share the spreadsheet data without giving edit access?

Share with "Viewer" permissions so stakeholders can see data but not modify it. For broader sharing, publish the sheet as a web page (File > Share > Publish to web) or connect it to Google Data Studio for a polished dashboard experience.

Set up your refer a friend program with customer referral and affiliate program software that lowers your acquisition costs, increases customer loyalty, and saves you gobs of time.

Trusted by marketing and product teams at fast-growing B2C, fintech, and SaaS companies