INSIDEA

HubSpot Google Sheets Integration: How to Send CRM Data to Sheets Automatically

··Updated October 20, 2026·8 min read
Share

HubSpot connects to Google Sheets through its free Google Sheets app and two workflow actions, Create Google Sheet row and Update data in a Google Sheet, available on any Professional or Enterprise hub. You connect a Google account once, then add the action to a workflow and map HubSpot properties to the columns in your sheet.

Checked against the HubSpot Knowledge Base and App Marketplace on October 20, 2026.

That is the main way to push HubSpot data into a sheet without exporting files. It is not the only way, and it is not a true two-way sync, so this guide covers the native setup step by step, HubSpot's own limits, and what to use when you need data to flow from Sheets back into HubSpot.

Ways to connect HubSpot and Google Sheets

MethodDirectionWhen data movesHubSpot planCost
Export records (CSV, XLSX or XLS)HubSpot to fileOnly when you exportAll plansIncluded
Google Sheets workflow actionsHubSpot to SheetsWhen a record reaches the action in a workflowProfessional or EnterpriseFree app
HubSpot for Google Sheets extensionSheets to HubSpot (import)When you run an importAll plansFree extension
Import tool (upload or paste)Sheets to HubSpotWhen you run an importAll plansIncluded
Zapier or MakeEither directionOn each trigger, on the tool's polling scheduleAny plan (some HubSpot steps need paid tiers)Free tiers, then paid
Sheets add-ons such as G-IntegratorHubSpot to Sheets, with edits pushed backManual or scheduled refreshVariesTrial, then paid

If you are on Professional or Enterprise and want HubSpot to feed a reporting sheet, the workflow actions are the place to start. If you are on a free or Starter plan, or you need edits in the sheet to update HubSpot, look at the last rows of the table.

What you need before you start

Subscription. HubSpot lists the Google Sheets workflow actions for Marketing Hub, Sales Hub, Service Hub, Data Hub, Smart CRM and Revenue Hub, each at the Professional or Enterprise tier. Older guides say you need Operations Hub. HubSpot's October 6, 2025 product announcement states that Data Hub replaces Operations Hub, and any qualifying Professional or Enterprise hub works.

Permissions. You need Super Admin or Edit Workflows permission to create and edit the workflow.

The app. HubSpot builds the Google Sheets app (listed in the App Marketplace as Google Sheets Workflows for HubSpot) and lists it at $0. You can connect it from the App Marketplace or from inside a workflow.

A sheet HubSpot can see. The spreadsheet must be in the connecting user's Google Drive, already shared with that user, or in a shared drive that user can access. If a spreadsheet is missing from the dropdown, check who connected the integration.

A clean header row. The header row must start in cell A1, and every column in the table needs a label. Blank headers inside the range cause errors.

How to connect the Google Sheets app

  1. In HubSpot, open the App Marketplace and search for Google Sheets. Choose the listing built by HubSpot, Google Sheets Workflows for HubSpot.
  2. Install it and connect the Google account that owns or can access your target spreadsheets.

HubSpot also lets you connect the app from inside a workflow, so you can skip the marketplace if you prefer. Whichever Google user you connect decides which spreadsheets HubSpot can see.

How to add HubSpot records to a sheet (Create Google Sheet row)

Use this action for a running log: every new lead, every closed deal, every new ticket.

  1. Go to Automation > Workflows. If you see More in the navigation, click it first.
  2. Edit an existing workflow or create a new one. The marketplace listing says the actions work with all workflow types, so choose the object you want to log (contacts, deals, tickets and so on).
  3. Set the enrollment trigger, for example "Deal stage is Closed won."
  4. Click the + icon to add an action.
  5. Under Google Sheets, select Create Google Sheet row.
  6. Choose the Spreadsheet from the dropdown.
  7. Choose the Sheet, which is the tab at the bottom of the spreadsheet.
  8. For each column, select a Header, then select the HubSpot Property that should fill it.
  9. Click Save, review the workflow, and turn it on.

Each time a record reaches this action, HubSpot adds a new row below the existing data. It never fills or overwrites existing rows, so formulas that point at fixed cell ranges may need to be written as whole columns.

How to keep a row current (Update data in a Google Sheet)

Use this action when you want one row per record that changes as the record changes, such as a pipeline tracker with one row per deal.

  1. Go to Automation > Workflows and edit or create a workflow.
  2. Click the + icon and select Update data in a Google Sheet from the left panel.
  3. Choose the Spreadsheet and the Sheet.
  4. Set a Lookup column header and the matching Lookup column property. This is how HubSpot finds the right row, so pick a value that is unique per record, such as Record ID or email.
  5. Under Create a new row if none match, choose Yes if you want new records added automatically, or No to update existing rows only.
  6. Under Select columns to update, pick each column and set its value from a HubSpot property or the outcome of an earlier action. Use Add a column to add more.
  7. Click Save.

By default, HubSpot enrolls a record in a workflow only the first time it meets the enrollment triggers, so the row would update once. To keep the sheet current as deals move, turn on re-enrollment: click the enrollment trigger box, open the Settings tab, turn on Re-enroll, check the triggers to use (for example, deal stage or amount), and click Save. Contact-based workflows use a Re-enrollment tab instead. A record that is still in the workflow cannot re-enroll until it completes it.

Create vs update at a glance

Create Google Sheet rowUpdate data in a Google Sheet
What it doesAdds a new row below existing dataChanges cells in a row that matches a lookup value
Existing rowsNever touchedOnly the first matching row is updated
No match foundNot applicableAdds a row only if you chose Yes
Best forLogs and event historyOne-row-per-record trackers

HubSpot's limits for the Google Sheets actions

These are HubSpot's documented limits. They are lower than Google's own cap, so they are the numbers to plan around.

LimitWhat HubSpot says
Cells per rowEach action can send up to 20 cells per row
Spreadsheet sizeThe spreadsheet cannot exceed 5,000,000 cells
Duplicate rowsRequests can time out and create a duplicate row, which you must delete manually
MatchingUpdate data in a Google Sheet changes only the first matching row
DatesDates arrive as Unix timestamps in milliseconds
Sheet performanceLarge or formula-heavy sheets slow updates and can cause errors

For context, Google raised the Google Sheets limit from five million to ten million cells in March 2022, according to the Google Workspace Updates blog. HubSpot's 5,000,000-cell limit for this action still applies.

If you need more than 20 columns from one record, add a second action that writes to another tab, or use a separate workflow. Keep in mind HubSpot's advice not to update the same sheet from multiple workflows.

Fixing dates. HubSpot suggests a sheet formula to convert the timestamp: `=A1/1000/60/60/24 + DATE(1970,1,1)`, then format the cell as a date. Data Hub Professional accounts can instead add a Format data action before the Sheets action.

Readable values. Reviews on the marketplace listing mention that some fields, such as owners, can arrive as internal IDs rather than names. Test each property you map and check the output before sharing the sheet.

Is the HubSpot Google Sheets integration real time?

Close, but it is not a live sync. The workflow action runs when a record reaches that step, so new rows appear shortly after the trigger fires. Nothing happens for records that never enroll, and edits made in the sheet do not flow back to HubSpot.

Three habits keep the data trustworthy:

  • Do not type in the target sheet. HubSpot advises against manual data entry there. Build charts and formulas on a separate tab that references the synced tab.
  • One workflow per sheet. Two workflows writing to the same sheet make it hard to trace which one wrote a row.
  • Plan for duplicates. Because timeouts can create duplicate rows, add a Record ID column and a quick duplicate check (for example, conditional formatting on repeated IDs).

How to send Google Sheets data into HubSpot

The workflow actions only go one way. For the other direction you have three main options.

1. HubSpot for Google Sheets extension. This is a separate, free Google Workspace extension, available on all HubSpot plans. A Google Workspace administrator who is also a HubSpot user installs it from the Google Workspace Marketplace. Then, in a sheet, go to Extensions > HubSpot for Google Sheets > Open, click Sign in, and connect your HubSpot account. From the Home tab, click Import and choose:

  • AI contact sync, where HubSpot suggests a property for each header that does not match exactly, or
  • Import manually, which hands you off to HubSpot's standard import screen.

You need permission to create contacts and segments. If Sensitive Data is turned on in your HubSpot account, the extension cannot access any data.

2. HubSpot's import tool. Go to Data Management > Data Integration (click More first if you see it), or click Import on any object index page. You can upload a file or paste data copied from Google Sheets. To update existing records instead of creating duplicates, include a unique identifier: Record ID, email for contacts, company domain name for companies, or a custom property that requires unique values. You need import and edit permissions for the object.

3. A connector such as Zapier or Make. Zapier offers Google Sheets triggers such as New or Updated Spreadsheet Row and HubSpot actions such as Create or Update Contact, Update Deal and Create Ticket. Zapier's pricing page lists a free plan with 100 tasks a month, two-step Zaps and a 15-minute update interval, and a Professional plan with a 2-minute interval. Make's pricing page lists a free plan with 1,000 credits a month. This is the usual route for teams that want the sheet to act as an input form for HubSpot.

Troubleshooting the Google Sheets actions

ProblemLikely causeFix
Spreadsheet missing from the dropdownThe connected Google user cannot access itShare the file with that user or move it to a shared drive they can access
"Spreadsheet" options could not load due to 3rd-party API failureThe HubSpot user who connected the app was deactivatedDisconnect the integration and reconnect with an active HubSpot user and a Google account that can access the sheets
Columns not mapping or errors on saveHeader row does not start in A1, or a header is blankMove headers to row 1 starting at A1 and label every column
Updates failing or slowVery large or formula-heavy sheetTest with a simpler sheet and move formulas to another tab
Duplicate rowsA request timed outDelete the duplicates by hand and add a Record ID check
Dates show as long numbersUnix timestamps in millisecondsUse the conversion formula or a Format data action

Also confirm the spreadsheet still exists, the right tab is selected, and the mapped headers have not been renamed. Disconnecting and reconnecting with a different Google user can change which spreadsheets HubSpot can see.

A worked example (hypothetical)

Imagine a sales team at a software company that wants a shared pipeline sheet for leadership, one row per open deal.

  1. The operations lead creates a sheet with headers in row 1, starting at A1: Record ID, Deal name, Stage, Amount, Owner, Close date.
  2. They build a deal-based workflow that enrolls deals when the deal is created and re-enrolls when deal stage or amount changes.
  3. The workflow uses Update data in a Google Sheet, with Record ID as the lookup column and Create a new row if none match set to Yes.
  4. On a second tab, they convert close dates with HubSpot's formula, total amounts by stage, and flag deals with no stage change in 14 days.
  5. Reps keep working in HubSpot. Leadership reads the second tab, never the synced one.

When a deal moves from Proposal to Negotiation, the workflow re-enrolls it and HubSpot updates that deal's existing row. When a new deal is created, HubSpot adds a row. If a timeout creates a duplicate, the Record ID check flags it.

Getting help with HubSpot and Sheets reporting

INSIDEA is an Elite HubSpot Partner and the growth operating system for modern businesses. If your team relies on spreadsheets that drift away from your CRM, our HubSpot team can help you decide what belongs in a sheet, what belongs in HubSpot reports, and set up the workflows to match.

Frequently asked questions.

Does HubSpot have a native Google Sheets integration?

Yes. HubSpot builds a free Google Sheets app that adds two workflow actions, Create Google Sheet row and Update data in a Google Sheet. They need a Professional or Enterprise subscription of Marketing, Sales, Service, Data, Smart CRM or Revenue Hub. HubSpot also offers a separate HubSpot for Google Sheets extension for importing sheet data into HubSpot.

Is the HubSpot Google Sheets integration two-way?

Not natively. The workflow actions send HubSpot data to Sheets, and the HubSpot for Google Sheets extension imports sheet data into HubSpot when you run an import. For changes in a sheet to update HubSpot records automatically, teams use a connector such as Zapier or Make, or a Sheets add-on that pushes edits back.

Can I connect HubSpot to Google Sheets on a free plan?

Yes, but not with the workflow actions, which need a Professional or Enterprise hub. On any plan you can export records as CSV, XLSX or XLS, import sheet data with the HubSpot for Google Sheets extension or the import tool, or use a connector such as Zapier, whose free plan includes 100 tasks a month.

Why do HubSpot dates show up as numbers in Google Sheets?

The Google Sheets workflow actions send dates as Unix timestamps in milliseconds. Convert them in the sheet with =A1/1000/60/60/24 + DATE(1970,1,1) and format the cell as a date. Data Hub Professional accounts can add a Format data action before the Sheets action instead.

How do Gmail, Google Sheets and HubSpot work together?

They use separate tools. The HubSpot Sales Chrome extension brings HubSpot sales tools into Gmail and is available on all plans. Spreadsheet data is handled by the Google Sheets workflow actions (HubSpot to Sheets) and the HubSpot for Google Sheets extension (Sheets to HubSpot), each set up on its own.

From the team who does this daily

Want this connected without the guesswork?

INSIDEA is an Elite HubSpot Partner, rated 4.99 across 500+ verified reviews.

INSIDEA is an Elite HubSpot Partner rated 4.99 across 500+ verified reviews. We help 1,500+ businesses across 25+ countries grow with HubSpot implementation, RevOps, growth marketing, and AI services. Our 150+ certified specialists work as a true extension of your team, covering HubSpot onboarding and implementation, growth marketing retainers, and AI-powered solutions, all from one place with one accountable team.

Want this applied to your business?

Book a strategy call. 30 minutes, real working session, written one-pager delivered after.

Get Started
With Us

Book a demo and discovery call to get a look at:

How INSIDEA works
The subscription plan that best fits your needs
Pricing, onboarding, and anything else
HubSpotSalesforcePipedriveAircallApolloTrustpilot

Book a Call With Us

By clicking Book a strategy call, you agree to receive communications from INSIDEA in accordance with our Privacy Policy.