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

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

scheduled

Use case type

export

Real-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.

/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 HubSpot account with API permissions
Google account with Sheets access
Existing Google Sheet with column headers set up
Make account with sufficient operation allowance
Clear criteria for which contacts to export

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
First Namefirstname
Last Namelastname
Email Addressemail
5 optional fields▸ show
Company Namecompany
Phone Numberphone
Lifecycle Stagelifecyclestage
Lead Scorehubspotscore
Create Datecreatedate

Step-by-Step Setup

1

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.

  1. 1Click 'Create a new scenario' from your Make dashboard
  2. 2Click the '+' button to add your first module
  3. 3Search for 'Schedule' and select 'Schedule' from the list
  4. 4Choose 'On Schedule' as your trigger type
What you should see: You should see a clock icon module in your scenario canvas with scheduling options displayed.
2

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.

  1. 1Click on the Schedule module to open settings
  2. 2Select your preferred interval (Daily, Weekly, etc.)
  3. 3Set the time - recommend off-hours like 2 AM
  4. 4Click 'OK' to save the schedule
What you should see: The schedule module shows your selected frequency and time in the module header.
Common mistake — Don't schedule this to run every hour - HubSpot's API has rate limits and you'll hit them fast with frequent large exports.
3

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.

  1. 1Click the '+' button after your Schedule module
  2. 2Search for 'HubSpot' and select it from the apps list
  3. 3Choose 'Search for CRM Objects' as your action
  4. 4Click 'Add' next to Connection and sign into HubSpot
What you should see: You should see 'Connection verified' with your HubSpot account name displayed.
Common mistake — Make sure you're logged into the correct HubSpot account - switching accounts mid-setup breaks the connection.
4

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.

  1. 1Select 'Contacts' from the Object Type dropdown
  2. 2Set Limit to your expected export size (100-500 is typical)
  3. 3Click 'Add filter' to define your criteria
  4. 4Choose your filter property like 'Lifecycle Stage' and set the value
What you should see: The module shows your selected filters and should display 'Ready to run' status.
Common mistake — Setting no limit pulls ALL contacts and will burn through your Make operations instantly - always set a reasonable limit.
5

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.

  1. 1Click '+' to add another module after HubSpot
  2. 2Search for 'Google Sheets' and select it
  3. 3Choose 'Add a Row' as your action
  4. 4Connect your Google account and authorize permissions
What you should see: Google Sheets connection shows as verified with your Gmail address displayed.
6

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.

  1. 1Click the Spreadsheet dropdown and select your target sheet
  2. 2Choose the correct Worksheet tab from the dropdown
  3. 3Verify the sheet ID appears correctly in the field
  4. 4Click to expand the field mapping section
What you should see: You should see your spreadsheet name and worksheet tab selected, with mapping fields visible below.
Common mistake — Creating a new sheet mid-scenario breaks the connection - always select an existing sheet with headers already set up.
7

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.

  1. 1Click in the first column field and select HubSpot data from the dropdown
  2. 2Map 'firstname' to your First Name column
  3. 3Map 'lastname' to your Last Name column
  4. 4Map 'email' to your Email column
  5. 5Add any other fields like 'company' or 'phone' as needed
What you should see: Each column field should show the HubSpot property name in purple text indicating successful mapping.
Common mistake — Don't map HubSpot's internal ID fields to user-facing columns - they're meaningless 10-digit numbers that clutter your sheet.
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

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.

  1. 1Click 'Run once' at the bottom of your scenario
  2. 2Watch the modules execute - they'll show green checkmarks when successful
  3. 3Check your Google Sheet to verify contacts were added correctly
  4. 4Review the execution log for any errors or warnings
What you should see: Your Google Sheet should contain new rows with HubSpot contact data, and Make should show successful execution with operation counts.
Common mistake — If the test shows no data, check your HubSpot filters - they might be too restrictive and returning zero contacts.
Make
▶ Run once
executed
Google Sheets
HubSpot
HubSpot
🔔 notification
received
9

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.

  1. 1Go back to your HubSpot module settings
  2. 2Add another filter for 'Last modified date'
  3. 3Set it to 'after' with a relative date like 'yesterday'
  4. 4Or add 'createdate' filter set to recent timeframe
What you should see: The HubSpot module now shows multiple filters that will only return new or recently updated contacts.
Common mistake — Without date filtering, every run adds the same contacts again - you'll have hundreds of duplicate rows within days.
10

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.

  1. 1Right-click on the HubSpot module
  2. 2Select 'Add error handler'
  3. 3Choose 'Break' to stop on errors
  4. 4Add email notification module to alert you of failures
What you should see: A small warning triangle appears on the module indicating error handling is configured.
Common mistake — Setting error handling to 'Ignore' means you'll never know when exports fail - always use 'Break' for critical workflows.
11

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.

  1. 1Click the 'ON/OFF' toggle in the bottom left
  2. 2Confirm activation in the popup dialog
  3. 3Verify the scenario shows 'Active' status
  4. 4Check the next scheduled run time is correct
What you should see: The scenario canvas shows 'ON' status and displays the next scheduled execution time.
Common mistake — Active scenarios consume operations even when they find no new data - monitor your usage if you're on a limited plan.
12

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.

  1. 1Check Make's execution history after the first scheduled run
  2. 2Verify contact data appears correctly in your Google Sheet
  3. 3Monitor operation usage in your Make dashboard
  4. 4Adjust filters or scheduling if needed
What you should see: Execution history shows successful runs with consistent operation counts and your sheet populates with fresh contact data.
Common mistake — The first scheduled run often reveals data volume issues invisible during testing - be ready to adjust limits or filters.

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.

1

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.

2

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.

3

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

VerdictWhy Make for this workflow

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.

Cost

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.

Tradeoffs

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 alertsCreate a second scenario that monitors your exported contacts and sends Slack notifications when high-scoring leads appear in the sheet.
  • Set up bidirectional syncBuild 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 sequencesConnect the exported contact data to email marketing tools like Mailchimp to automatically enroll qualified leads in nurture campaigns.

Related guides

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