Beginner~12 min setupCRM & EmailVerified April 2026
HubSpot logo
Gmail logo

How to Auto-Create HubSpot Contacts from Gmail with Make

Automatically create HubSpot contacts when you receive emails from people not already in your CRM.

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

HubSpot Gmail extension exists as a native integration, but it requires manual setup per user and doesn't create contacts automatically. This guide uses an automation platform for full control. View native option →

Best for

Teams that want visual debugging and need reliable duplicate contact prevention.

Not ideal for

High-volume email processing (1000+ emails/day) due to operation costs.

Sync type

polling

Use case type

import

Real-World Example

💡

A 25-person B2B consulting firm uses this to automatically add prospects who email them to HubSpot for follow-up tracking. Before automation, inbound emails sat in Gmail while reps manually copied contact details into their CRM, often forgetting to do it for days. Now every prospect email becomes a trackable contact within 15 minutes.

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.

Gmail account with API access enabled
HubSpot account with contact creation permissions
Make account with available operations
Admin access to both Gmail and HubSpot accounts

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Email Addressemail
5 optional fields▸ show
First Namefirstname
Company Namecompany
Lead Statushs_lead_status
Contact Sourcehs_analytics_source
Original Messagenotes_last_contacted

Step-by-Step Setup

1

Dashboard > Create scenario > Gmail > Watch emails

Create New Scenario in Make

Start a new automation scenario in Make. This will be the foundation for your email-to-contact workflow.

  1. 1Click 'Create a new scenario' from your Make dashboard
  2. 2Click the '+' button to add your first module
  3. 3Search for 'Gmail' in the app list
  4. 4Select 'Watch emails' from the Gmail trigger options
What you should see: You should see a Gmail module with 'Watch emails' selected as your starting trigger.
2

Gmail module > Connection > Add

Connect Gmail Account

Link your Gmail account to Make so it can monitor incoming emails. This requires OAuth authentication through Google.

  1. 1Click 'Add' next to the Connection field
  2. 2Select 'Google' as the connection type
  3. 3Click 'Continue' and sign in with your Gmail account
  4. 4Grant Make permission to read your emails
What you should see: A green 'Connected' status appears next to your Gmail connection name.
Common mistake — Don't use a personal Gmail if this is for business — Google Workspace accounts have better API limits.
Make settings
Connection
Choose a connection…Add
click Add
HubSpot
Log in to authorize
Authorize Make
popup window
Connected
green checkmark
3

Gmail module > Settings

Configure Email Watch Settings

Set up which emails to monitor and how frequently to check. Focus on your main inbox to avoid noise from promotions or spam.

  1. 1Set Label/Mailbox to 'INBOX'
  2. 2Change Criteria to 'Unread emails only'
  3. 3Set Maximum number of emails to 10
  4. 4Leave Mark emails as read unchecked
What you should see: The Gmail module shows INBOX selected with unread email filtering enabled.
Common mistake — Setting max emails too high (50+) can hit Gmail's API quota if you get email bursts.
Make
+
click +
search apps
HubSpot
HU
HubSpot
Configure Email Watch Settings
HubSpot
HU
module added
4

Gmail module > + > HubSpot > Create a Contact

Add HubSpot Module

Add the HubSpot module that will create contacts. This connects after Gmail to process each incoming email.

  1. 1Click the '+' button after your Gmail module
  2. 2Search for 'HubSpot' in the apps list
  3. 3Select 'Create a Contact' action
  4. 4Click 'Add connection' to link your HubSpot account
What you should see: A HubSpot 'Create a Contact' module appears connected to your Gmail trigger.
5

HubSpot module > Connection > Add

Connect HubSpot Account

Authenticate with HubSpot using your account credentials. Make needs write access to create contacts in your CRM.

  1. 1Enter your HubSpot portal domain (company.hubspot.com)
  2. 2Click 'Continue' and sign in to HubSpot
  3. 3Grant Make permission to manage contacts
  4. 4Click 'Save' to store the connection
What you should see: Your HubSpot connection shows as 'Connected' with a green indicator.
Common mistake — Only HubSpot admins can create API connections — check your permissions first.
6

HubSpot module > Contact fields

Map Email to Contact Fields

Configure how Gmail data maps to HubSpot contact fields. This determines what information gets pulled from each email.

  1. 1Click in the Email field and select 'From: Email' from Gmail data
  2. 2Set First Name field to 'From: Name' (before the @ symbol)
  3. 3Map Company field to domain extraction from 'From: Email'
  4. 4Set Lead Status to 'NEW'
What you should see: Contact fields show mapped Gmail variables with proper data sources selected.
Common mistake — Don't map Last Name unless you parse it properly — Gmail often gives full names in the Name field.
HubSpot fields
firstname
lastname
email
company
hs_lead_status
available as variables:
1.props.firstname
1.props.lastname
1.props.email
1.props.company
1.props.hs_lead_status
7

Between modules > + > HubSpot > Search for Contacts

Add Duplicate Contact Filter

Prevent creating duplicate contacts by checking if the email already exists in HubSpot first.

  1. 1Click '+' between Gmail and HubSpot modules
  2. 2Select 'HubSpot' and choose 'Search for Contacts'
  3. 3Set Search property to 'email'
  4. 4Map Search value to Gmail 'From: Email'
What you should see: A HubSpot Search module appears between your Gmail trigger and Create Contact action.
Common mistake — Without this filter, you'll create duplicate contacts every time existing contacts email you.
HubSpot
HU
trigger
filter
Condition
matches criteria?
yes — passes through
no — skipped
Gmail
GM
notified
8

After Search > + > Flow Control > Router

Configure Router Logic

Add routing logic to only create contacts when the search returns no results (new contact).

  1. 1Click '+' after the Search module and select 'Flow Control'
  2. 2Choose 'Router' from the options
  3. 3Connect one route to 'Create Contact'
  4. 4Set route filter to 'Search results = empty'
What you should see: A router with conditional logic that only creates contacts for new email addresses.
Common mistake — Test the empty condition carefully — HubSpot returns different formats for no results vs. errors.
9

Scenario footer > Run once

Test the Scenario

Run a test to verify your automation works correctly with real email data from your Gmail account.

  1. 1Click 'Run once' button at the bottom left
  2. 2Send yourself a test email from an address not in HubSpot
  3. 3Watch the execution flow in Make's debugger
  4. 4Check HubSpot to confirm the new contact was created
What you should see: The test shows successful execution and a new contact appears in your HubSpot contacts list.
Common mistake — Use a completely new email address for testing — even deleted HubSpot contacts might still match in searches.
Make
▶ Run once
executed
HubSpot
Gmail
Gmail
🔔 notification
received
10

Scenario controls > Schedule > Every 15 minutes

Schedule and Activate

Turn on the scenario to run automatically and set how frequently it checks for new emails.

  1. 1Click the clock icon next to 'Run once'
  2. 2Set schedule to 'Every 15 minutes'
  3. 3Toggle the scenario 'ON' using the switch
  4. 4Click 'Save' to confirm your settings
What you should see: Your scenario shows as 'Active' with a 15-minute polling schedule.
Common mistake — Checking more frequently than 15 minutes burns through operations fast without much benefit for email.

Drop this into a Make custom function.

JavaScript — Custom Function{{split(1.from.name; " ")[1]}} - Use this formula in First Name field to extract only the first word from Gmail sender name, handling cases where full names or company names appear in the name field.
▸ Show code
{{split(1.from.name; " ")[1]}} - Use this formula in First Name field to extract only the first word from Gmail sender name, handling cases where full names or company names appear in the name field.

... expand to see full code

{{split(1.from.name; " ")[1]}} - Use this formula in First Name field to extract only the first word from Gmail sender name, handling cases where full names or company names appear in the name field.

Scaling Beyond 500+ emails/day+ Records

If your volume exceeds 500+ emails/day records, apply these adjustments.

1

Batch Processing

Switch from 'Watch emails' to scheduled 'Search emails' module to process in batches instead of real-time polling. This reduces API calls significantly.

2

Filter Early

Add Gmail label filters to only process emails from external domains. Internal company emails rarely need contact creation and waste operations.

3

Webhook Alternative

Consider Gmail's push notifications via Google Pub/Sub instead of polling. Requires more setup but eliminates polling operations entirely.

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 real-time contact creation and want visual debugging when things break. Make's router logic handles the duplicate checking cleanly, and you can see exactly which emails triggered contact creation in the execution log. The Gmail integration pulls sender names better than most platforms. Skip Make if you're processing 1000+ emails daily — Zapier's Gmail polling is more reliable at high volume.

Cost

This workflow uses 4 operations per email: Gmail watch, HubSpot search, router evaluation, and contact creation (when needed). At 200 emails/month, that's 800 operations monthly. That fits Make's Core plan at $10/month easily. Zapier would cost $20/month for the same volume with their multi-step Zaps. Make is cheaper by $10/month and gives you better error visibility.

Tradeoffs

Zapier handles Gmail parsing better — their formatter automatically splits first/last names from sender fields without custom logic. N8n lets you write custom JavaScript to handle edge cases like email aliases or complex company domain extraction. But Make's visual router makes the duplicate detection logic obvious to debug when contacts aren't being created or are being duplicated despite your filters.

You'll hit Gmail's API pagination if you let unread emails pile up — the watch trigger only grabs the first 250 unread messages. HubSpot's search API is fuzzy by default, so '[email protected]' might match '[email protected]' unexpectedly. The router's empty array detection is fragile — HubSpot sometimes returns null, sometimes [], sometimes an object with empty results depending on your search query format.

Ideas for what to build next

  • Add Deal Creation for Sales InquiriesCreate HubSpot deals automatically when emails contain keywords like 'pricing' or 'demo request' to track sales opportunities.
  • Set Up Lead Scoring Based on Email ContentParse email content and set HubSpot lead scores based on keywords, company domain, or email signature details.
  • Create Slack Notifications for New ContactsAdd a Slack module to notify your sales team immediately when high-value contacts (based on company domain) are created from emails.

Related guides

Was this guide helpful?
HubSpot + Gmail overviewMake profile →