Automate Your CRM with HubSpot and Make
Sync HubSpot contacts and meeting notes to Google Sheets automatically.
Introduction
30 Second Summary
Every time you add a new contact or finish a sales call, you probably copy the details into a spreadsheet by hand. That manual step is easy to forget and impossible to scale.
In this project, you will build two automated workflows that sync your CRM contacts and meeting notes from HubSpot into a Google Sheet. You will also connect Google Meet so every meeting you book includes a video link automatically.
What You'll Build
A self-updating Google Sheet that fills itself in every time you add a contact or log meeting notes in HubSpot, so you can hand someone your laptop and show them your CRM dashboard refreshing on its own.
By the end of this project, you'll have:
- A live contact sync that sends new HubSpot contacts to your Google Sheet every 15 minutes with their name, email, company, and phone number.
- A Google Meet integration so every meeting you book through HubSpot automatically includes a video conference link for your contact.
- A meeting notes logger that captures your call notes from HubSpot and adds a timestamped summary row to your spreadsheet.
- Secret Mission: Add a conditional filter to your contact sync so only contacts matching specific criteria flow through to your sheet.
Are there any prerequisites?
None. You just need a Google account and a free HubSpot account. This guide walks you through signing up for everything else, including Make.com (the automation platform that connects your tools).
Before We Start
Before we dive into connecting tools and building automations, let's lock in what you're about to build and why it matters. This step is your chance to commit to the goal before any hands-on work begins.
Set Up Make.com and Prepare Your Google Sheet
Your automated CRM dashboard needs two things: a platform that watches HubSpot for changes and pushes data to other tools, and a spreadsheet ready to receive that data.
Make.com is the automation platform. Google Sheets is the destination. In this step, you'll prepare both so your automations have somewhere to send contact details and meeting notes.
In this step, get ready to:
- Confirm your Make.com dashboard is ready.
- Create a Google Sheet with two tabs for contacts and meeting notes.
- Verify both tools are set up correctly.
Confirm your Make.com dashboard
- Switch back to your Make.com dashboard in your browser.
- In the left-side menu, click Scenarios.
You should see an empty Scenarios page with no automations listed yet.
What is a scenario?
In Make.com, an automation is called a "scenario." Each scenario connects a trigger (something that happens) to one or more actions (things you want to happen automatically). You'll build two scenarios in this project.
What does the free plan include?
Make.com's free plan gives you 1,000 credits per month, 2 active scenarios, and a 15-minute minimum polling interval. No credit card is required. This is more than enough for this project.
Don't see Scenarios in the left menu?
Make.com occasionally has display issues for brand-new accounts. Try refreshing your browser. If the left-side menu still does not appear, log out and log back in.
Help me find Scenarios in my Make.com dashboard
Create your Google Sheet with two tabs
Your Google Sheet will act as the destination for all automated data. It needs two tabs: one for contact details and one for meeting notes.
- Open Google Sheets at sheets.google.com in a new browser tab.
- Click the Blank spreadsheet option (the plus icon) to create a new spreadsheet.
- Click the title in the top-left corner (it defaults to "Untitled spreadsheet") and rename it to HubSpot CRM Dashboard.
You now have a blank spreadsheet with one tab at the bottom called "Sheet1". This first tab will hold your contacts.
- Double-click the tab name "Sheet1" at the bottom of the screen.
- Rename it to Contacts and press Enter.
- In cell A1, type First Name and press Tab to move to B1.
- Continue adding headers across Row 1: Last Name in B1, Email in C1, Phone in D1, Company in E1, and Date Added in F1.
Your Contacts tab should now have six column headers across Row 1.
- Click the + icon at the bottom-left (next to your Contacts tab) to add a new tab.
- Double-click the new tab name and rename it to Meeting Notes.
- In cell A1 of this new tab, type Contact Name and press Tab.
- Add the remaining headers: Date in B1, Meeting Notes in C1, and Source in D1.
Why these specific columns?
Each column maps directly to a field in HubSpot. When Make.com pulls a new contact or engagement from HubSpot, it will slot each piece of data into the matching column. Getting the headers right now means the automation can find the correct column later.
Mistyped a column header?
Click the cell with the typo, correct the text, and press Enter. Column headers are case-sensitive when Make.com maps data to them, so make sure they match exactly.
Help me check my Google Sheet column headers are correct
Verify both tools are ready
Before you move on, take a moment to predict what you should see in each tool if everything is set up correctly.
- Switch to your Google Sheet tab. Confirm you see two tabs at the bottom: Contacts and Meeting Notes.
- Click the Contacts tab and confirm Row 1 contains six headers: First Name, Last Name, Email, Phone, Company, Date Added.
- Click the Meeting Notes tab and confirm Row 1 contains four headers: Contact Name, Date, Meeting Notes, Source.
- Switch to your Make.com tab. Confirm you see Scenarios in the left menu and the page shows no scenarios yet.
If both tools show the expected state, your foundation is ready.
Your automation platform and destination spreadsheet are both ready. Next up, you'll connect these two tools by building your first scenario that syncs HubSpot contacts to your sheet automatically.
Build Your Contact Sync Scenario
Right now, if you want to see your HubSpot contacts in a spreadsheet, you have to manually export them every single time. That gets old fast when your contact list changes daily.
In this step, you will build your first automation scenario in Make.com. It uses the "trigger and action" pattern: when a new contact appears in HubSpot (the trigger), a row gets added to your Google Sheet (the action).
In this step, get ready to:
- Create a test contact in HubSpot and start a new scenario in Make.com.
- Connect the HubSpot trigger module to watch for new contacts.
- Connect the Google Sheets action module and map your CRM fields to spreadsheet columns.
Create a test contact in HubSpot and start a new scenario
Your automation needs something to pull from HubSpot. You will create a test contact first so the scenario has data to work with when you test it.
- In HubSpot, click CRM in the top navigation bar.
- Click Contacts.
- Click Create contact in the top-right corner.
- Fill in the following test data: First name Alex, Last name Rivera, Email alex.rivera@testcorp.com, Phone 555-0101, Company TestCorp.
- Click Create to save the contact.
You should see the new contact record open with all your test data filled in. This confirms your test contact is ready.
- Switch back to Make.com in your browser.
- Click Scenarios in the left menu.
- Click Create a New Scenario in the top-right corner.
The scenario editor opens with a large plus icon in the center. This is where you will build your automation by adding modules.
What is a scenario?
A scenario is Make.com's term for an automated workflow. It contains modules connected in sequence. The first module is always a trigger (what starts the automation), and every module after it is an action (what the automation does).
Add the HubSpot trigger module
The trigger module tells Make.com what event to watch for. You want it to fire every time a contact is created or updated in HubSpot.
- Click the large plus icon in the center of the scenario editor.
- In the app search that appears, type HubSpot CRM and select it from the results.
- Select the Watch Contacts trigger from the list of available modules.
Why Watch Contacts?
The Watch Contacts trigger fires when a contact is created or updated in HubSpot. It is a polling trigger, meaning Make.com checks HubSpot for changes at regular intervals (every 15 minutes on the free plan) rather than receiving instant notifications.
- In the module settings panel, click Add a connection.
- Choose OAuth 2.0 as the connection type.
- A HubSpot login window will appear. Sign in to your HubSpot account.
- Grant the requested permissions for contacts read and write access.
- Once connected, leave the default settings in the module configuration and click OK.
You should see the HubSpot module appear as a circle in your scenario editor with a green checkmark or connection indicator. This confirms the OAuth connection is active.
Connection failed or permission denied?
Make sure you are signing in with the HubSpot account that owns the contacts. If you have multiple HubSpot accounts, the browser may default to the wrong one.
Try opening HubSpot in an incognito window first to confirm you are logged into the correct account, then retry the connection in Make.com.
help me troubleshoot my HubSpot OAuth connection in Make.com
Add the Google Sheets action module and map your fields
Now you need to tell Make.com what to do when it detects a new contact. The action module will take the contact data from HubSpot and write it as a new row in your Google Sheets spreadsheet.
- Click the plus icon that appears to the right of the HubSpot module.
- In the app search, type Google Sheets and select it.
- Select the Add a Row action.
- Click Add a connection and sign in to your Google account when prompted.
Once your Google account is connected, you will configure where the data goes and how each HubSpot field maps to a spreadsheet column.
- In the Spreadsheet dropdown, select HubSpot CRM Dashboard.
- In the Sheet dropdown, select the Contacts tab.
The column headers from your sheet appear as fields to fill. This is data mapping: you are connecting each piece of HubSpot data to the correct spreadsheet column.
- Click into the First Name field and select the First Name value from the HubSpot module's output panel.
- Map Last Name from HubSpot to the Last Name column.
- Map Email from HubSpot to the Email column.
- Map Phone from HubSpot to the Phone column.
- Map Company from HubSpot to the Company column.
- For the Date Added field, click into it and use the now function from the functions panel to insert the current date and time.
- Click OK to save the module configuration.
What is data mapping?
Data mapping is the process of connecting output from one module to the input of another. Each green tag you selected from HubSpot's output is a dynamic value that changes with every contact.
The now function is a Make.com built-in that returns the current timestamp. This gives you a record of exactly when each contact was synced to your sheet.
Your scenario editor should now show two modules connected by a line: the HubSpot trigger on the left and the Google Sheets action on the right.
Before you run this, what do you think will happen? Will the test contact you created earlier appear in your Google Sheet?
- Click Run once in the bottom-left of the scenario editor toolbar.
Make.com pulls your test contact from HubSpot and pushes it to the spreadsheet. You should see green checkmarks or numbered bubbles on both modules indicating success.
- Open your HubSpot CRM Dashboard Google Sheet and click the Contacts tab.
- Confirm that a new row appeared with Alex, Rivera, alex.rivera@testcorp.com, 555-0101, TestCorp, and today's date.
No row appeared in your sheet?
Check that you selected the correct spreadsheet and the Contacts tab (not Meeting Notes) in the Google Sheets module configuration.
If the HubSpot module shows 0 bundles processed, your test contact may have been created before the module's start-date filter. Click the HubSpot module, set the start date to yesterday, and run once again.
help me troubleshoot why Run once did not sync my HubSpot contact to Google Sheets
Your first automation is working. Every time you click Run once, any new HubSpot contacts flow into your spreadsheet automatically. Next up, you will install the HubSpot + Google Meet integration so every meeting you schedule includes a video link.
Install the HubSpot and Google Meet Integration
Your contact sync is working. New contacts flow from HubSpot to your Google Sheet automatically.
There is one problem though. When you book meetings through HubSpot, there is no video link attached for your contact to join. The Google Meet integration solves this by automatically generating a Meet link for every meeting you schedule through HubSpot.
In this step, get ready to:
- Install the Google Meet app from HubSpot's App Marketplace.
- Configure your meeting scheduler to include Google Meet links.
- Test the integration by creating a meeting with a video link.
Install the Google Meet app in HubSpot
HubSpot has an App Marketplace where you can install integrations with other tools. You will install the Google Meet app so HubSpot knows how to generate video links.
- In HubSpot, click the marketplace icon in the top navigation bar to open the App Marketplace.
- Search for Google Meet in the search bar.
- Click on the Google Meet app in the results.
- Click Install.
- Sign in to your Google account when prompted and authorize the connection.
What does installing this app do?
Installing the Google Meet app gives HubSpot permission to create Google Meet video links on your behalf. Whenever you schedule a meeting through HubSpot, it can now attach a Meet link automatically instead of you copying one manually.
Can't see the Install button?
You need App Marketplace permissions or Super Admin access in HubSpot to install apps. If you created the HubSpot account yourself, you already have Super Admin access.
help me install the Google Meet app in HubSpot
Add Google Meet to your meeting scheduler
Installing the app gives HubSpot access to Google Meet. Now you need to tell HubSpot's meeting scheduler to actually use it as the default video conferencing option.
- In HubSpot, navigate to Sales in the top menu. You may need to click More first to find it.
- Click Meetings Scheduler.
- Hover over your scheduling page and click Edit.
- Scroll to the Location section.
- Click Add videoconference link and select Google Meet.
- Click Save.
Your meeting scheduler is now configured. Every meeting you schedule through this page will include a Google Meet link.
Don't see Google Meet as an option?
Make sure the Google Meet app installation completed successfully in the previous substep. Go back to the App Marketplace and confirm Google Meet shows as "Connected" or "Installed".
help me connect Google Meet to my HubSpot meeting scheduler
Test the integration
Time to confirm the integration works by creating a test meeting from a contact record.
- Go to any contact record in HubSpot. You can use the test contact you created in the previous step.
- In the left sidebar of the contact record, click the meetings icon to schedule a meeting.
- In the Select location dropdown, choose Google Meet.
Before you finish creating the meeting, what do you expect to see in the meeting details?
You should see a Google Meet link generated and attached to the meeting invitation. This is the link your contact would use to join the video call.
No Google Meet link appearing?
Double check that you selected Google Meet in the location dropdown. If Google Meet does not appear in the dropdown, revisit the previous substep and confirm the meeting scheduler was saved with the videoconference link added.
help me get a Google Meet link in my HubSpot meeting
Your meetings now include video links automatically. Next up, you will build a second Make.com scenario that captures meeting notes from HubSpot and logs them into your Google Sheet.
Build Your Meeting Notes Logger Scenario
Your contacts are syncing and meetings now include Google Meet links. But after a call, your meeting notes are trapped inside HubSpot. To see them, you'd have to log into HubSpot every time and dig through individual contact records.
This step solves that problem. You'll build a second Make.com scenario that watches for new engagement activity (logged calls and meetings with notes) and automatically sends a summary row to your Google Sheet.
In this step, get ready to:
- Add a Watch Engagements trigger and Get a Contact module in Make.com.
- Map engagement data to your Google Sheet's Meeting Notes tab.
- Test the scenario with your existing logged engagement.
Create a new scenario and add the HubSpot modules
You already logged a test engagement (a call or meeting with notes) in HubSpot during the previous step. Now you need a scenario that detects those engagements and pulls the related contact name.
- In Make.com, click Scenarios in the left menu.
- Click Create a New Scenario in the top-right corner.
- In the scenario editor, click the large plus icon in the center to add your first module.
- Search for "HubSpot CRM" in the app search.
- Select the Watch Engagements trigger.
- When prompted for a connection, select your existing HubSpot connection from the dropdown.
What does Watch Engagements do?
This trigger fires whenever a new engagement (a logged call, meeting, note, or email) is created in HubSpot. It acts as the starting signal for your scenario, checking for new activity every time the scenario runs.
The Watch Engagements trigger gives you the engagement details, but not the contact's name. You need a second module to look up who the engagement belongs to.
- Click the plus icon to the right of the Watch Engagements module to add a second module.
- Search for "HubSpot CRM" again.
- Select the Get a Contact action.
- In the Contact ID field, map the contact ID from the Watch Engagements module output.
Mapping data between modules
When you click into an input field, Make.com shows available data from previous modules in a panel. Click the contact ID value from the Watch Engagements output to map it automatically.
Your scenario editor should now show two connected modules: Watch Engagements flowing into Get a Contact.
Add Google Sheets and map the data
The last module sends the engagement data to your spreadsheet. You'll combine the contact name from the Get a Contact module with the notes from the engagement itself.
- Click the plus icon to the right of the Get a Contact module to add a third module.
- Search for "Google Sheets" and select the Add a Row action.
- Select your existing Google account connection when prompted.
- In the Spreadsheet field, select HubSpot CRM Dashboard.
- In the Sheet field, select the Meeting Notes tab.
Now map each column to the correct data source:
- In the Contact Name column field, map the first name and last name from the Get a Contact module (combine them with a space between).
- In the Date column field, map the engagement timestamp from the Watch Engagements module.
- In the Meeting Notes column field, map the engagement body/notes field from the Watch Engagements module.
- In the Source column field, type HubSpot as a static value.
Why combine first name and last name?
HubSpot stores contact names as separate first name and last name fields. The Get a Contact module returns them individually, so you combine them in the mapping to create a single readable name in your spreadsheet.
Before you test, what do you think will happen when you click Run once? Will the test engagement you logged earlier appear in your sheet, or will something go wrong?
- Click Run once in the scenario editor toolbar to trigger a single test execution.
The scenario processes your test engagement. Open your Google Sheet and switch to the Meeting Notes tab. You should see a new row with the contact's name, the date, your meeting notes, and "HubSpot" in the Source column.
Don't see a new row in your sheet?
Check that the Watch Engagements module found your test engagement. If it shows 0 results, the engagement may have been logged before the module's tracking window. Log a new engagement in HubSpot and run the scenario again.
If you see an error on the Get a Contact module, verify that the Contact ID mapping is pulling from the Watch Engagements output and not left empty.
Help me troubleshoot my Meeting Notes Logger scenario.
- Save your scenario by clicking the floppy disk icon or pressing Ctrl+S (Windows) or Cmd+S (macOS).
- Leave the scenario toggled OFF for now. You'll activate it in the next step.
Your meeting notes are no longer trapped inside HubSpot. Next up, you'll activate both scenarios so they run automatically every 15 minutes without you clicking a thing.
Activate and Monitor Your Automations
Your meeting notes logger is working. Both of your Make.com scenarios can pull data from HubSpot and push it into your Google Sheet on command.
The catch is that you still have to click Run once every time you want data to sync. For a true set-it-and-forget-it automation, your scenarios need to run on a schedule without any manual input.
In this step, get ready to:
- Activate both Make.com scenarios to run automatically on a 15-minute schedule.
- Review your free plan credits to understand your monthly automation budget.
- Verify that a new HubSpot contact syncs to your Google Sheet without manual intervention.
Activate your Contact Sync scenario
Your Contact Sync scenario ran successfully during testing, but it is currently toggled off. Turning it on puts it onto the free plan's automatic schedule.
- Return to Make.com and click Scenarios in the left menu.
- Click on your Contact Sync scenario to open it in the editor.
- In the bottom-left corner of the editor, find the scenario toggle switch.
- Click the toggle to switch it to ON.
You should see a green indicator showing the scenario is now active. The schedule defaults to every 15 minutes on the free plan.
What does the 15-minute interval mean?
Make.com's free plan checks your HubSpot account for new contacts every 15 minutes. This means a contact you add won't appear in your Google Sheet instantly. There is a delay of up to 15 minutes before the next scheduled check picks it up.
Toggle not appearing?
Make sure you have the scenario open in the editor view, not just the scenario list. The ON/OFF toggle lives in the bottom-left corner of the scenario builder canvas.
If the toggle is greyed out, check that your scenario has no configuration errors (red warning icons on any module).
Why can't I activate my scenario in Make.com?
Activate your Meeting Notes scenario
- Click Scenarios in the left menu to return to your scenario list.
- Click on your Meeting Notes Logger scenario to open it.
- In the bottom-left corner, toggle the scenario switch to ON.
You should see the same green active indicator. This scenario also runs every 15 minutes.
Why only 2 active scenarios?
The Make.com free plan allows a maximum of 2 active scenarios at once. You have built exactly 2, which means both can run simultaneously without upgrading.
If you ever want to experiment with a third scenario, you would need to deactivate one of these first.
Check your credits usage and verify automatic syncing
Both scenarios are live, but you need to understand how much of your monthly budget each run consumes. You also want proof that the automation works without you pressing anything.
- In the Make.com left sidebar, click the Organization section.
- Under My plan, look for your credits left and usage reset date.
Your dashboard shows how many credits remain out of your 1,000 monthly credits. Each basic module execution costs 1 credit.
How quickly will I use my credits?
Your Contact Sync scenario has 2 modules, so it uses 2 credits when it finds and syncs a new contact. Your Meeting Notes Logger has 3 modules, using 3 credits per logged engagement.
When there is no new data to process, only the trigger module fires (1 credit per scenario). For casual use with a handful of contacts and meetings per week, 1,000 credits is more than enough for an entire month.
Now it is time to prove the automation works on its own. You will add a new contact in HubSpot and wait for it to appear in your Google Sheet without clicking anything in Make.com.
- Switch to HubSpot and go to CRM > Contacts.
- Click Create contact and add a new test contact with a different name and email than your earlier test (for example, first name Alex, last name Rivera, email alex.rivera@example.com).
- Save the contact in HubSpot.
- Now wait 15 to 20 minutes. Do not click Run once in Make.com. The whole point is to let the scheduled run handle it.
What to do while you wait
The 15-minute polling interval means you have a short break. Grab a drink, review your scenario connections, or read ahead to the Secret Mission section.
Before you check your sheet, think about this: do you expect the new contact to appear in a brand new row, or replace an existing row?
- After 15 to 20 minutes, open your HubSpot CRM Dashboard Google Sheet.
- Click the Contacts tab.
- Look for a new row containing the contact you just created (Alex, Rivera, alex.rivera@example.com).
The new contact should appear as a fresh row at the bottom of your sheet. You did not click anything in Make.com. The automation ran on its own.
Contact not showing up after 20 minutes?
Return to Make.com and open your Contact Sync scenario. Check that the toggle is still ON (green indicator visible in the bottom-left corner).
Click the clock icon next to the toggle to confirm the schedule is set to 15 minutes. If it shows a different interval, select 15 minutes and save.
If the scenario is active but no data appeared, click the scenario's history or logs to check whether a run was attempted. A failed run will show an error message there.
My Make.com scenario is active but not syncing new contacts to Google Sheets. How do I debug this?
Your CRM dashboard is now fully automated. Every new HubSpot contact and every logged meeting note will flow into your Google Sheet on a 15-minute cycle, without you lifting a finger.
Secret mission
Add a Filter to Your Contact Sync
Right now, every single contact you add in HubSpot syncs to your sheet. That includes test data, irrelevant contacts, and anyone who doesn't matter to your workflow. Can you add conditional logic so only the contacts you care about make it through?
Clean Up Your Resources
Clean Up Your Resources
Decide whether to keep your resources running, pause them to come back later, or delete them entirely. This project runs entirely on free-tier tools, so there are no ongoing costs.
Resources you used:
- Two Make.com scenarios (Contact Sync and Meeting Notes Logger).
- Google Sheet "HubSpot CRM Dashboard" with two tabs.
- HubSpot Google Meet integration.
- Make.com account (free plan).
- Test contacts and engagement logs in HubSpot.
Keep everything running
No action needed. Choose this if you are still actively building on your automations or plan to extend them.
- Your two scenarios will continue running every 15 minutes and consuming credits from your 1,000 monthly allowance.
- Your Google Sheet will keep receiving new rows as contacts and engagements are created in HubSpot.
- Your Make.com account remains active on the free plan with no charges.
Pause - I'll come back to this later
Shut down running scenarios to stop credit usage while keeping everything intact for later.
- In Make.com, open your Contact Sync scenario and toggle the switch in the bottom-left corner to OFF.
- Open your Meeting Notes Logger scenario and toggle it OFF as well.
- Your scenarios, connections, and Google Sheet data stay intact. Toggle the scenarios back ON whenever you are ready to resume.
Delete - I don't want to use this again
Remove all project resources and start fresh. Follow each step below.
- In Make.com, open the Contact Sync scenario, click the three-dot menu, and select Delete. Repeat for the Meeting Notes Logger scenario.
- In HubSpot, click the settings icon in the top navigation bar. In the left sidebar menu, navigate to Integrations > Connected Apps. Click Actions on the Google Meet app, then click Uninstall. In the dialog box, type "uninstall" and click Uninstall.
- Open Google Sheets, right-click the "HubSpot CRM Dashboard" spreadsheet, and select Move to trash.
- In HubSpot, go to CRM > Contacts. Select your test contacts (the ones you created during this project) and click Delete.
- To delete your Make.com account entirely, click your profile name in the bottom-left corner, then click Profile. Click the dropdown arrow next to Profile Settings in the top-right corner and select Delete profile. Confirm when prompted.
Nice Work!
Nice Work!
You just built a fully automated CRM dashboard that keeps itself up to date. Your Google Sheet now fills itself with new contacts and meeting notes straight from HubSpot, no manual exports required.
You've learned how to:
- Build an automated contact sync that sends new HubSpot contacts to Google Sheets every 15 minutes using Make.com triggers, actions, and data mapping.
- Install the HubSpot + Google Meet integration so every meeting booked through HubSpot automatically includes a video link.
- Build a meeting notes logger that captures engagement notes from HubSpot and sends them to your spreadsheet as timestamped call summaries.
- Secret Mission: Add a conditional filter to your workflow so only relevant contacts sync to your sheet.
Ready to quiz yourself?