Beginner~8 min setupProductivity & CRMVerified April 2026
Google Sheets logo
HubSpot logo

How to Export HubSpot Contacts to Google Sheets with Zapier

Automatically export HubSpot contacts matching specific criteria to a Google Sheet on a schedule.

Steps and UI details are based on platform versions at time of writing β€” check each platform for the latest interface.

Best for

Teams that need scheduled contact exports to Google Sheets without coding requirements.

Not ideal for

High-volume exports over 100 contacts or real-time sync requirements.

Sync type

scheduled

Use case type

export

Real-World Example

πŸ’‘

A 25-person marketing agency uses this to export new Marketing Qualified Leads from HubSpot to a Google Sheet every morning at 8 AM. Their account managers review the sheet during daily standup to assign leads to sales reps. Before automation, someone manually pulled contact lists 2-3 times per week, causing lead assignment delays of up to 3 days.

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

Before You Start

Make sure you have everything ready.

HubSpot account with contacts data and API access
Google Sheets with column headers matching your export fields
Zapier account on a paid plan (free tier insufficient for looping)
Clear criteria for which contacts to export (properties and values)

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Email Addressemail
First Namefirstname
Last Namelastname
4 optional fieldsβ–Έ show
Company Namecompany
Lead Statushs_lead_status
Phone Numberphone
Create Datecreatedate

Step-by-Step Setup

1

Dashboard > Create Zap > Schedule by Zapier

Create new Zap with Schedule trigger

Start with a Schedule by Zapier trigger to run your export automatically. This runs on a fixed interval instead of waiting for contact changes in HubSpot.

  1. 1Click 'Create Zap' from your Zapier dashboard
  2. 2Search for 'Schedule by Zapier' in the trigger app list
  3. 3Select 'Every Day' as your trigger event
  4. 4Set the time to run (recommend off-peak hours like 6 AM)
βœ“ What you should see: You should see a schedule trigger configured with your chosen daily time.
⚠
Common mistake β€” Don't pick 'Every Hour' unless you need real-time exports β€” you'll burn through tasks fast.
Zapier
+
click +
search apps
Google Sheets
GO
Google Sheets
Create new Zap with Schedule…
Google Sheets
GO
module added
2

Zap Editor > + > HubSpot > Search for Contacts

Add HubSpot search action

Use HubSpot's 'Search for Contacts' action to find contacts matching your criteria. This pulls contacts based on properties, not just recent changes.

  1. 1Click the + button to add a new action step
  2. 2Search for 'HubSpot' and select it
  3. 3Choose 'Search for Contacts' as the action event
  4. 4Connect your HubSpot account if not already connected
βœ“ What you should see: HubSpot should show as connected with a green checkmark.
3

HubSpot Action > Set up action

Configure contact search criteria

Set up filters to find the specific contacts you want to export. Use HubSpot's contact properties to narrow down your results.

  1. 1In the 'Property to Search' field, select your criteria (e.g., 'Lead Status')
  2. 2Choose your operator (equals, contains, etc.)
  3. 3Enter the value you're searching for (e.g., 'Marketing Qualified Lead')
  4. 4Set 'Limit' to 100 (maximum per search)
βœ“ What you should see: The search configuration should show your property, operator, and value clearly defined.
⚠
Common mistake β€” HubSpot limits searches to 100 contacts per call β€” you'll need multiple Zaps for larger exports.
4

HubSpot Action > Test action

Test HubSpot search

Run a test to verify your search returns the right contacts. This confirms your criteria work and shows the contact data structure.

  1. 1Click 'Test trigger' to run the search
  2. 2Review the returned contact records
  3. 3Verify the contacts match your expected criteria
  4. 4Note which contact properties are available for mapping
βœ“ What you should see: You should see a list of contacts with properties like email, first name, last name, and any custom fields.
Zapier
β–Ά Turn on & test
executed
βœ“
Google Sheets
βœ“
HubSpot
HubSpot
πŸ”” notification
received
5

Zap Editor > + > Google Sheets > Create Spreadsheet Row

Add Google Sheets action

Add a Google Sheets action to receive the contact data. Choose 'Create Spreadsheet Row' to add each contact as a new row.

  1. 1Click + to add another action step
  2. 2Search for 'Google Sheets' and select it
  3. 3Choose 'Create Spreadsheet Row' as the action
  4. 4Connect your Google account if needed
βœ“ What you should see: Google Sheets should appear as connected in your action list.
6

Google Sheets Action > Set up action

Select target spreadsheet

Choose which Google Sheet will receive your exported contacts. Create a new sheet or use an existing one with proper column headers.

  1. 1Select your target spreadsheet from the dropdown
  2. 2Choose the specific worksheet tab
  3. 3Ensure your sheet has header rows for the contact fields
  4. 4Note the column order for proper mapping
βœ“ What you should see: Your chosen spreadsheet and worksheet should be selected and visible in the configuration.
⚠
Common mistake β€” Make sure your sheet has headers in row 1 β€” Zapier maps to columns by header name, not position.
7

Google Sheets Action > Set up action > Column mapping

Map contact fields to columns

Map HubSpot contact properties to your Google Sheets columns. Focus on the essential fields you need for your export.

  1. 1Click in the first column field and select 'Email' from HubSpot data
  2. 2Map 'First Name' to your name column
  3. 3Map 'Last Name' to the last name column
  4. 4Add any custom properties like 'Lead Status' or 'Company'
βœ“ What you should see: Each column should show the mapped HubSpot field with sample data from your test.
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
8

Between HubSpot and Sheets > + > Looping by Zapier

Handle multiple contacts with Looping

Since HubSpot returns multiple contacts, add a Looping action to process each contact individually. Without this, only the first contact gets exported.

  1. 1Click the + button before the Google Sheets action
  2. 2Search for 'Looping by Zapier' and select it
  3. 3Choose 'Create Loop from Line Items' as the action
  4. 4Select the HubSpot contacts list as your line items
βœ“ What you should see: The loop should show it will process each contact from your HubSpot search results.
⚠
Common mistake β€” Without looping, Zapier only exports the first contact β€” this is the most common mistake.
9

Google Sheets Action > Set up action > Update mappings

Update field mapping for looped data

Remap your Google Sheets columns to use the looped contact data instead of the raw HubSpot output. The field references change after adding the loop.

  1. 1Go back to your Google Sheets action
  2. 2Update each column mapping to use 'Loop: Email' instead of 'HubSpot: Email'
  3. 3Verify all mapped fields now reference the Loop output
  4. 4Check that sample data still appears correctly
βœ“ What you should see: All column mappings should now reference 'Loop:' data sources with proper sample values.
10

Google Sheets Action > Test action

Test complete workflow

Run a full test to verify contacts export properly to your Google Sheet. This confirms the entire workflow from search to sheet creation.

  1. 1Click 'Test action' on the Google Sheets step
  2. 2Check your Google Sheet for new rows
  3. 3Verify all mapped fields populated correctly
  4. 4Confirm the data matches your HubSpot contacts
βœ“ What you should see: Your Google Sheet should have new rows with contact data matching your HubSpot search criteria.
11

Zap Editor > Name field > Toggle switch

Name and activate Zap

Give your Zap a descriptive name and turn it on. Use a name that includes the contact criteria and schedule for easy identification later.

  1. 1Click the pencil icon next to 'Untitled Zap'
  2. 2Enter a name like 'Daily MQL Contact Export to Sheets'
  3. 3Click the toggle switch to turn the Zap on
  4. 4Confirm the Zap shows as 'On' in your dashboard
βœ“ What you should see: Your Zap should appear in your dashboard with an 'On' status and your custom name.

Scaling Beyond 100+ contacts per export+ Records

If your volume exceeds 100+ contacts per export records, apply these adjustments.

1

Split by contact properties

Create separate Zaps for different contact types or date ranges. HubSpot's 100-contact search limit means you need multiple exports anyway.

2

Use webhook triggers instead

Switch to HubSpot workflow webhooks that fire on property changes. This eliminates the daily search and processes contacts as they qualify.

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

Use Zapier for this if you need scheduled exports without coding and your team already uses Google Sheets for contact management. Setup takes 15 minutes and runs reliably on daily schedules. Skip Zapier if you need real-time exports β€” the schedule trigger only runs at fixed intervals, not when contacts change.

Cost

This workflow uses 3 tasks per contact exported (search, loop, create row). At 50 contacts daily, that's 4,500 tasks monthly β€” fits the Professional plan at $19.99/month. Make would cost $9/month for the same volume but requires more complex branching setup. N8n is free but needs server hosting at $10-15/month.

Tradeoffs

Make handles larger contact volumes better with its bulk operations that process 1000+ contacts per execution. N8n offers more flexible scheduling options like 'weekdays only' or 'first Monday of month' that Zapier lacks. But Zapier's Google Sheets integration handles column mapping more reliably β€” Make sometimes creates formatting issues with contact names and N8n requires manual data type conversion.

HubSpot limits contact searches to 100 results per API call, so larger exports need multiple Zaps or different criteria. Google Sheets has a 40,000 cell limit per sheet β€” at 8 fields per contact, you hit the wall around 5,000 contacts. The daily schedule can drift by 15-30 minutes depending on Zapier's server load, so don't rely on exact timing for time-sensitive exports.

Ideas for what to build next

  • β†’
    Add lead scoring export β€” Create a second Zap that exports HubSpot lead scores and last activity dates to track contact engagement over time.
  • β†’
    Set up Slack notifications β€” Add a Slack message when high-value contacts (based on company size or industry) appear in your daily export for immediate follow-up.
  • β†’
    Create contact update sync β€” Build a reverse sync that updates HubSpot contacts when your team changes data in the Google Sheet, creating a two-way integration.

Related guides

Was this guide helpful?
← Google Sheets + HubSpot overviewZapier profile β†’