

How to Export HubSpot Contacts to Google Sheets with Make
Automatically export HubSpot contacts matching specific criteria to a Google Sheet on a scheduled basis.
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 with custom filtering and reliable error handling
Not ideal for
One-time exports or real-time syncing when contact data changes
Sync type
scheduledUse case type
exportReal-World Example
A 25-person B2B SaaS company uses this to export qualified leads to Google Sheets every Monday morning for their sales team's weekly planning. Before automation, their marketing coordinator spent 30 minutes each week manually exporting contacts from HubSpot, filtering by lead score, and cleaning up the data format. Now the sales team has fresh qualified leads ready in their planning sheet automatically.
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
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.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| First Name | firstname | |
| Last Name | lastname | |
| Email Address | email | |
5 optional fields▸ show
| Company Name | company |
| Phone Number | phone |
| Lifecycle Stage | lifecyclestage |
| Lead Score | hubspotscore |
| Create Date | createdate |
Step-by-Step Setup
Scenarios > + > Schedule > On Schedule
Create New Make Scenario
Start a new scenario in Make and add the scheduler module as your trigger. This will control when your contact export runs - daily, weekly, or whatever frequency you need.
- 1Click 'Create a new scenario' from your Make dashboard
- 2Click the '+' button to add your first module
- 3Search for 'Schedule' and select 'Schedule' from the list
- 4Choose 'On Schedule' as your trigger type
Schedule Module > Settings
Set Export Schedule
Configure how often you want contacts exported. Most teams run this daily at night or weekly on Sundays to avoid hitting API limits during business hours.
- 1Click on the Schedule module to open settings
- 2Select your preferred interval (Daily, Weekly, etc.)
- 3Set the time - recommend off-hours like 2 AM
- 4Click 'OK' to save the schedule
Scenario > + > HubSpot > Search for CRM Objects
Add HubSpot Connection
Connect your HubSpot account so Make can access your contacts database. You'll need admin permissions in HubSpot to authorize this connection.
- 1Click the '+' button after your Schedule module
- 2Search for 'HubSpot' and select it from the apps list
- 3Choose 'Search for CRM Objects' as your action
- 4Click 'Add' next to Connection and sign into HubSpot
HubSpot Module > Object Type > Filters
Configure Contact Search
Set up the search parameters to find contacts matching your criteria. This is where you filter by lifecycle stage, lead score, or any other contact properties you track.
- 1Select 'Contacts' from the Object Type dropdown
- 2Set Limit to your expected export size (100-500 is typical)
- 3Click 'Add filter' to define your criteria
- 4Choose your filter property like 'Lifecycle Stage' and set the value
Scenario > + > Google Sheets > Add a Row
Add Google Sheets Connection
Connect your Google account and select the specific spreadsheet where you want contact data exported. The sheet should already exist with column headers set up.
- 1Click '+' to add another module after HubSpot
- 2Search for 'Google Sheets' and select it
- 3Choose 'Add a Row' as your action
- 4Connect your Google account and authorize permissions
Google Sheets Module > Spreadsheet > Worksheet
Select Target Spreadsheet
Point Make to the specific Google Sheet and worksheet tab where contacts should be added. Make sure this sheet exists and has column headers already in place.
- 1Click the Spreadsheet dropdown and select your target sheet
- 2Choose the correct Worksheet tab from the dropdown
- 3Verify the sheet ID appears correctly in the field
- 4Click to expand the field mapping section
Google Sheets Module > Field Mapping
Map Contact Fields
Connect HubSpot contact properties to your Google Sheets columns. Focus on the core fields you actually need rather than mapping everything available.
- 1Click in the first column field and select HubSpot data from the dropdown
- 2Map 'firstname' to your First Name column
- 3Map 'lastname' to your Last Name column
- 4Map 'email' to your Email column
- 5Add any other fields like 'company' or 'phone' as needed
Scenario > Run once
Test the Scenario
Run a test to make sure data flows correctly from HubSpot to your Google Sheet. This catches field mapping issues before you schedule the automation.
- 1Click 'Run once' at the bottom of your scenario
- 2Watch the modules execute - they'll show green checkmarks when successful
- 3Check your Google Sheet to verify contacts were added correctly
- 4Review the execution log for any errors or warnings
HubSpot Module > Filters > Add filter
Handle Duplicates
Set up logic to prevent duplicate contacts from being added every time the scenario runs. Use HubSpot's 'Recently Updated' filter or track export dates.
- 1Go back to your HubSpot module settings
- 2Add another filter for 'Last modified date'
- 3Set it to 'after' with a relative date like 'yesterday'
- 4Or add 'createdate' filter set to recent timeframe
Module > Right-click > Add error handler
Configure Error Handling
Set up what happens when the scenario hits errors like API limits or connection failures. Choose whether to stop, retry, or continue with partial data.
- 1Right-click on the HubSpot module
- 2Select 'Add error handler'
- 3Choose 'Break' to stop on errors
- 4Add email notification module to alert you of failures
Scenario > ON/OFF toggle
Activate the Scenario
Turn on the scheduled automation so it runs automatically. Make sure you understand the operation costs before going live with regular execution.
- 1Click the 'ON/OFF' toggle in the bottom left
- 2Confirm activation in the popup dialog
- 3Verify the scenario shows 'Active' status
- 4Check the next scheduled run time is correct
Make Dashboard > Scenarios > Execution History
Monitor Initial Runs
Watch the first few scheduled executions to catch any issues with real data volumes or timing. Check both Make's execution logs and your Google Sheet results.
- 1Check Make's execution history after the first scheduled run
- 2Verify contact data appears correctly in your Google Sheet
- 3Monitor operation usage in your Make dashboard
- 4Adjust filters or scheduling if needed
Drop this into a Make custom function.
JavaScript — Custom Function{{formatDate(now; "YYYY-MM-DD")}} - Add this formula to a timestamp column to track when each contact was exported. Helps with debugging and prevents confusion about data freshness.▸ Show code
{{formatDate(now; "YYYY-MM-DD")}} - Add this formula to a timestamp column to track when each contact was exported. Helps with debugging and prevents confusion about data freshness.... expand to see full code
{{formatDate(now; "YYYY-MM-DD")}} - Add this formula to a timestamp column to track when each contact was exported. Helps with debugging and prevents confusion about data freshness.Scaling Beyond 500+ contacts per export+ Records
If your volume exceeds 500+ contacts per export records, apply these adjustments.
Split into multiple scenarios
Create separate scenarios for different contact segments to stay under HubSpot's rate limits. Run them at different times to spread API load.
Use iterator modules
Add an iterator after HubSpot search to process contacts in smaller batches of 50-100 records. This prevents timeout errors on large datasets.
Monitor API rate limits
HubSpot allows 100 requests per 10 seconds. Add delay modules between large operations and set up retry logic for 429 rate limit responses.
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 Make for this if you need reliable scheduled exports with custom filtering and field mapping. Make's visual interface makes it easy to set up complex contact criteria, and the error handling prevents failed exports from going unnoticed. The built-in Google Sheets integration handles large datasets better than Zapier's basic row-adding. Skip Make if you just want a simple one-time export - HubSpot's native export feature is faster for that.
This workflow uses 2-3 operations per contact exported. If you export 200 contacts weekly, that's 600-900 operations monthly. That fits comfortably in Make's Core plan at $9/month (10K operations). Zapier's Starter plan costs $20/month for similar volume, and N8n's cloud version runs $20/month for equivalent usage. Make costs 50% less than both competitors for this use case.
Zapier's HubSpot integration offers better real-time triggers if you need instant exports when contact properties change. N8n provides more advanced data transformation options if you need complex field calculations or formatting. But Make's scheduler is more reliable than both platforms, and the visual error handling catches API failures that Zapier often ignores. For scheduled bulk exports, Make's batch processing approach works better than Zapier's individual record triggers.
Google Sheets API paginates at 1000 rows per request, but Make's HubSpot module limits searches to 100 contacts by default for performance. If you need larger exports, you'll hit HubSpot's rate limits around 500 contacts per run. The 'Recently updated' filter sometimes misses contacts due to timezone differences between HubSpot and Make - set your date range 1-2 days wider than your schedule frequency. Contact phone numbers often import with formatting issues that break your sheet's data validation rules.
Ideas for what to build next
- →Add lead scoring threshold alerts — Create a second scenario that monitors your exported contacts and sends Slack notifications when high-scoring leads appear in the sheet.
- →Set up bidirectional sync — Build a reverse workflow that imports contact updates from Google Sheets back into HubSpot when your sales team adds notes or changes statuses.
- →Create automated follow-up sequences — Connect the exported contact data to email marketing tools like Mailchimp to automatically enroll qualified leads in nurture campaigns.
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