

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
scheduledUse case type
exportReal-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.
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.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Email Address | email | |
| First Name | firstname | |
| Last Name | lastname | |
4 optional fieldsβΈ show
| Company Name | company |
| Lead Status | hs_lead_status |
| Phone Number | phone |
| Create Date | createdate |
Step-by-Step Setup
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.
- 1Click 'Create Zap' from your Zapier dashboard
- 2Search for 'Schedule by Zapier' in the trigger app list
- 3Select 'Every Day' as your trigger event
- 4Set the time to run (recommend off-peak hours like 6 AM)
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.
- 1Click the + button to add a new action step
- 2Search for 'HubSpot' and select it
- 3Choose 'Search for Contacts' as the action event
- 4Connect your HubSpot account if not already connected
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.
- 1In the 'Property to Search' field, select your criteria (e.g., 'Lead Status')
- 2Choose your operator (equals, contains, etc.)
- 3Enter the value you're searching for (e.g., 'Marketing Qualified Lead')
- 4Set 'Limit' to 100 (maximum per search)
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.
- 1Click 'Test trigger' to run the search
- 2Review the returned contact records
- 3Verify the contacts match your expected criteria
- 4Note which contact properties are available for mapping
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.
- 1Click + to add another action step
- 2Search for 'Google Sheets' and select it
- 3Choose 'Create Spreadsheet Row' as the action
- 4Connect your Google account if needed
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.
- 1Select your target spreadsheet from the dropdown
- 2Choose the specific worksheet tab
- 3Ensure your sheet has header rows for the contact fields
- 4Note the column order for proper mapping
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.
- 1Click in the first column field and select 'Email' from HubSpot data
- 2Map 'First Name' to your name column
- 3Map 'Last Name' to the last name column
- 4Add any custom properties like 'Lead Status' or 'Company'
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.
- 1Click the + button before the Google Sheets action
- 2Search for 'Looping by Zapier' and select it
- 3Choose 'Create Loop from Line Items' as the action
- 4Select the HubSpot contacts list as your line items
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.
- 1Go back to your Google Sheets action
- 2Update each column mapping to use 'Loop: Email' instead of 'HubSpot: Email'
- 3Verify all mapped fields now reference the Loop output
- 4Check that sample data still appears correctly
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.
- 1Click 'Test action' on the Google Sheets step
- 2Check your Google Sheet for new rows
- 3Verify all mapped fields populated correctly
- 4Confirm the data matches your HubSpot contacts
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.
- 1Click the pencil icon next to 'Untitled Zap'
- 2Enter a name like 'Daily MQL Contact Export to Sheets'
- 3Click the toggle switch to turn the Zap on
- 4Confirm the Zap shows as 'On' in your dashboard
Scaling Beyond 100+ contacts per export+ Records
If your volume exceeds 100+ contacts per export records, apply these adjustments.
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.
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
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.
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.
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
How to Share Notion Meeting Notes to Slack with Pipedream
~15 min setup
How to Share Notion Meeting Notes to Slack with Power Automate
~15 min setup
How to Share Notion Meeting Notes to Slack with n8n
~20 min setup
How to Send Notion Meeting Notes to Slack with Zapier
~8 min setup
How to Share Notion Meeting Notes to Slack with Make
~12 min setup
How to Create Notion Tasks from Slack with Pipedream
~15 min setup