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

How to Import Contacts from Google Sheets to HubSpot with Zapier

Automatically create or update HubSpot contacts when new rows are added to your Google Sheet.

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

Best for

Non-technical teams importing up to 500 contacts monthly who want reliable, simple automation.

Not ideal for

High-volume imports over 1000 contacts monthly or teams needing instant real-time sync.

Sync type

polling

Use case type

import

Real-World Example

πŸ’‘

A 12-person B2B marketing agency uses this to import leads from event signup sheets into their HubSpot pipeline. Before automation, the marketing coordinator manually copied 50-80 new leads weekly, taking 2 hours and introducing typos. Now leads flow automatically within 10 minutes of being added to the shared Google Sheet.

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.

Google account with edit access to the contact spreadsheet
HubSpot account with contact creation permissions
Google Sheet with contact data in consistent column format
At least one test row of data in your spreadsheet
Email column in your spreadsheet (required for HubSpot contacts)

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Email Addressemail
7 optional fieldsβ–Έ show
First Namefirstname
Last Namelastname
Company Namecompany
Phone Numberphone
Website URLwebsite
Job Titlejobtitle
Lead Sourcehs_lead_status

Step-by-Step Setup

1

Dashboard > Create Zap > Trigger

Create New Zap

Start a new automation by creating a Zap that will connect Google Sheets to HubSpot. This sets up the basic workflow structure.

  1. 1Click 'Create Zap' from your Zapier dashboard
  2. 2Click on 'Trigger' in the first step
  3. 3Search for 'Google Sheets' and select it
  4. 4Choose 'New Spreadsheet Row' as your trigger event
βœ“ What you should see: You should see Google Sheets selected as your trigger app with 'New Spreadsheet Row' configured.
2

Trigger > App & Event > Account

Connect Google Sheets Account

Authorize Zapier to access your Google Sheets. This creates a secure connection to monitor your spreadsheet for new rows.

  1. 1Click 'Sign in to Google Sheets'
  2. 2Select your Google account from the popup
  3. 3Click 'Allow' to grant Zapier permissions
  4. 4Click 'Continue' once connected
βœ“ What you should see: A green checkmark appears next to your Google account with 'Connected' status.
⚠
Common mistake β€” Make sure you're logged into the Google account that owns the spreadsheet - switching accounts later breaks the connection.
Zapier settings
Connection
Choose a connection…Add
click Add
Google Sheets
Log in to authorize
Authorize Zapier
popup window
βœ“
Connected
green checkmark
3

Trigger > App & Event > Options

Select Your Spreadsheet

Choose the specific Google Sheet and worksheet tab that contains your contact data. Zapier will monitor this sheet for new rows.

  1. 1Click the 'Spreadsheet' dropdown
  2. 2Select your contact spreadsheet from the list
  3. 3Click the 'Worksheet' dropdown
  4. 4Choose the specific sheet tab with contact data
  5. 5Click 'Continue'
βœ“ What you should see: Your spreadsheet and worksheet names appear in the configuration fields.
4

Trigger > Test

Test Google Sheets Trigger

Zapier pulls a sample row from your sheet to understand the data structure. This validates your connection and shows available fields.

  1. 1Click 'Test trigger'
  2. 2Review the sample data that appears
  3. 3Verify all your contact columns are visible
  4. 4Click 'Continue with selected record'
βœ“ What you should see: Sample data showing column headers like 'Email', 'First Name', 'Company' with actual values from your sheet.
⚠
Common mistake β€” If no data appears, add a test row to your sheet first - Zapier needs existing data to map fields.
Zapier
β–Ά Turn on & test
executed
βœ“
Google Sheets
βœ“
HubSpot
HubSpot
πŸ”” notification
received
5

Action > App & Event

Add HubSpot Action

Set up the second step to create or update contacts in HubSpot when new rows are detected.

  1. 1Click the '+' button below your trigger
  2. 2Search for 'HubSpot' and select it
  3. 3Choose 'Create or Update Contact' as the action event
  4. 4Click 'Continue'
βœ“ What you should see: HubSpot appears as your action step with 'Create or Update Contact' selected.
⚠
Common mistake β€” Don't choose 'Create Contact' - that fails if the contact already exists. 'Create or Update' handles duplicates.
6

Action > App & Event > Account

Connect HubSpot Account

Authorize Zapier to access your HubSpot account and create contacts. This establishes the secure connection for data transfer.

  1. 1Click 'Sign in to HubSpot'
  2. 2Enter your HubSpot login credentials
  3. 3Click 'Authorize' to grant access
  4. 4Select your HubSpot account if multiple appear
βœ“ What you should see: HubSpot account shows as connected with a green checkmark.
7

Action > Set up action > Contact Properties

Map Email Field

Configure the email field mapping first since it's required for contact creation. This tells Zapier which spreadsheet column contains email addresses.

  1. 1Click in the 'Email' field under Contact Properties
  2. 2Select your email column from the Google Sheets data dropdown
  3. 3Verify the sample email appears in the field
  4. 4Leave this field exactly as mapped
βœ“ What you should see: The Email field shows your Google Sheet email column with a sample email address visible.
⚠
Common mistake β€” Email is required for contact creation - if this field is empty, the Zap will fail every time.
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

Action > Set up action > Contact Properties

Map Contact Name Fields

Connect your spreadsheet name columns to HubSpot's first and last name fields. This ensures proper contact identification in your CRM.

  1. 1Click in the 'First Name' field
  2. 2Select your first name column from the dropdown
  3. 3Click in the 'Last Name' field
  4. 4Map your last name column from the spreadsheet
βœ“ What you should see: First Name and Last Name fields show your mapped columns with sample data.
9

Action > Set up action > Contact Properties

Map Company and Phone Fields

Add company and phone number mappings if your spreadsheet includes this data. These fields enrich contact profiles in HubSpot.

  1. 1Scroll down to find 'Company' field
  2. 2Map your company column if available
  3. 3Find the 'Phone Number' field
  4. 4Map your phone column if present in the sheet
βœ“ What you should see: Company and Phone fields show your selected columns or remain blank if not available.
⚠
Common mistake β€” HubSpot expects phone numbers in international format (+1234567890) - local formats may not import correctly.
10

Action > Test

Test HubSpot Action

Run a test to create an actual contact in HubSpot using your sample data. This validates the complete workflow.

  1. 1Scroll down and click 'Test step'
  2. 2Wait for the test to complete
  3. 3Review the success message with contact details
  4. 4Click 'Continue' if the test passes
βœ“ What you should see: Success message showing 'Contact created in HubSpot' with the contact ID and mapped field values.
⚠
Common mistake β€” This creates a real contact in HubSpot - check your contacts list to verify it worked correctly.
11

Zap Editor > Title

Review and Name Your Zap

Give your automation a descriptive name and review the complete workflow before activation.

  1. 1Click the pencil icon next to 'Untitled Zap'
  2. 2Enter a name like 'Google Sheets to HubSpot Contacts'
  3. 3Review both trigger and action steps
  4. 4Verify all field mappings are correct
βœ“ What you should see: Your Zap has a clear name and shows the complete Google Sheets β†’ HubSpot workflow.
12

Zap Editor > Publish

Publish Your Zap

Activate the automation to start monitoring your Google Sheet for new contact rows. The Zap will run automatically going forward.

  1. 1Click the 'Publish' button in the top right
  2. 2Confirm by clicking 'Publish Zap'
  3. 3Wait for the 'Zap is on' confirmation
  4. 4Test by adding a new row to your Google Sheet
βœ“ What you should see: Green 'On' status appears next to your Zap name, indicating it's actively monitoring for new rows.
⚠
Common mistake β€” The Zap only triggers on NEW rows added after publishing - existing rows won't be imported automatically.

Drop this into a Zapier Code step.

Copy this template{{contact_email|lower|trim}} in the email field to normalize addresses and prevent duplicate contacts from spacing or capitalization differences
β–Έ Show code
{{contact_email|lower|trim}} in the email field to normalize addresses and prevent duplicate contacts from spacing or capitalization differences

... expand to see full code

{{contact_email|lower|trim}} in the email field to normalize addresses and prevent duplicate contacts from spacing or capitalization differences

Scaling Beyond 500+ contacts/month+ Records

If your volume exceeds 500+ contacts/month records, apply these adjustments.

1

Switch to Make for better pricing

At 500+ tasks monthly, Make's $9 plan beats Zapier's $50 Professional plan. The field mapping is similar but Make handles batch operations more efficiently.

2

Use batch import instead of row-by-row

Consider HubSpot's native CSV import for large datasets. Import 1000+ contacts in minutes vs hours with Zapier's 1-contact-per-task limit.

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 your team doesn't code and you need dead-simple setup. Takes 8 minutes to configure and the trigger fires within 2-15 minutes of a new row appearing. The guided interface walks non-technical users through field mapping without confusion. Pick Make instead if you're importing 1000+ contacts monthly β€” Zapier's task limits get expensive fast at high volume.

Cost

This workflow costs 1 task per contact imported. At 200 contacts/month, that's 200 tasks total, fitting comfortably in Zapier's Starter plan at $20/month. Make charges $9/month for 1000 operations, so it's $11 cheaper monthly at this volume. N8n is free but requires hosting setup. Zapier wins on simplicity despite higher costs.

Tradeoffs

Make handles batch imports better β€” you can process multiple rows in a single scenario run instead of 1 task per contact. N8n offers more advanced data transformation if your spreadsheet needs cleaning before import. But Zapier's error handling is cleaner for this use case. When a contact creation fails, Zapier shows exactly which row and field caused the problem. Make's error messages are cryptic for beginners.

Google Sheets API has a 5-minute polling delay, so new rows take 2-15 minutes to trigger the Zap. If you edit existing rows, Zapier sometimes treats them as new and creates duplicate contacts. HubSpot's contact deduplication relies on exact email matches β€” extra spaces or different capitalization create separate contacts. Test with real messy data, not clean samples.

Ideas for what to build next

  • β†’
    Add Slack notifications for new contacts β€” Create a second Zap that posts to Slack when HubSpot contacts are created, keeping your sales team informed of new leads.
  • β†’
    Set up contact scoring automation β€” Build a workflow that assigns HubSpot lead scores based on company size, job title, or other criteria from your spreadsheet data.
  • β†’
    Create follow-up email sequences β€” Trigger HubSpot email workflows automatically when contacts are imported, sending welcome emails or nurture sequences based on lead source.

Related guides

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