Calendly + HubSpot: prep every sales call with context
You book a sales call… then scramble. Someone drops a Calendly link, a meeting lands on your calendar, and now you’re googling the person, guessing their company, and praying you’re looking at the right HubSpot record.
This HubSpot call prep automation hits Account Executives hardest, but RevOps and agency teams handling inbound meetings feel it too. The outcome is simple: every time a Calendly meeting is booked, HubSpot gets enriched company and contact context automatically (without you doing detective work).
Below you’ll see exactly how the workflow behaves, what it changes in HubSpot, and where you can tweak it for your own enrichment rules.
How This Automation Works
Here’s the complete workflow you’ll be setting up:
n8n Workflow Template: Calendly + HubSpot: prep every sales call with context
flowchart LR
subgraph sg0["Calendly Flow"]
direction LR
n0@{ icon: "mdi:swap-horizontal", form: "rounded", label: "if company does not exist on..", pos: "b", h: 48 }
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/clearbit.svg' width='40' height='40' /></div><br/>Enrich company"]
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/hubspot.svg' width='40' height='40' /></div><br/>Create company"]
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/hubspot.svg' width='40' height='40' /></div><br/>Upsert contact"]
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/hubspot.svg' width='40' height='40' /></div><br/>Update company"]
n5@{ icon: "mdi:cog", form: "rounded", label: "Contact not found, do nothing", pos: "b", h: 48 }
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/clearbit.svg' width='40' height='40' /></div><br/>Enrich email"]
n7@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Filter out personal emails", pos: "b", h: 48 }
n8["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/hubspot.svg' width='40' height='40' /></div><br/>Search company"]
n9["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/hubspot.svg' width='40' height='40' /></div><br/>Upsert lead"]
n10@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If person has a company", pos: "b", h: 48 }
n11["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/calendly.svg' width='40' height='40' /></div><br/>Calendly Trigger"]
n6 --> n10
n6 --> n5
n2 --> n3
n1 --> n8
n8 --> n0
n11 --> n7
n10 --> n1
n10 --> n9
n7 --> n6
n0 --> n2
n0 --> n4
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n11 trigger
class n0,n7,n10 decision
classDef customIcon fill:none,stroke:none
class n1,n2,n3,n4,n6,n8,n9,n11 customIcon
Why This Matters: Showing Up Unprepared to Sales Calls
Pre-call research sounds small until you do it five times a day. You look up the email, then the company, then LinkedIn, then you try to match it all back to HubSpot. And somehow you still end up on a call thinking, “Wait… who exactly are you again?” The worst part is the mental load. Switching tabs, copying domains, cleaning up CRM fields, and second-guessing duplicates steals attention you should be using to run a good discovery call.
It adds up fast. Here’s where it breaks down in real teams.
- You waste about 10 minutes per meeting just finding basic company context.
- Personal emails (Gmail, Yahoo) end up polluting your CRM, which makes segmentation and routing messy later.
- Company records get created inconsistently, so two reps can book calls with the same company and never realize it.
- Even when you do the research, it lives in your head or your notes, not in HubSpot where the rest of the team can use it.
What You’ll Build: Calendly Booking → Enriched HubSpot Records
This workflow starts the moment a new meeting is booked in Calendly. It immediately filters out personal emails so you’re not enriching “[email protected]” and creating junk records. For business emails, it sends the address to Clearbit to pull useful identity data and confirm whether there’s an employer and company behind it. If a company exists, the workflow enriches the company profile, checks HubSpot to see if that company already exists by domain, and then creates or updates the company record accordingly. Finally, it upserts the contact and lead details in HubSpot so the meeting is tied to a clean, enriched record you can actually use before the call.
The flow is straightforward. Calendly triggers it, Clearbit provides enrichment, and HubSpot becomes the source of truth. The “if” checks make sure you only create what’s missing, instead of generating duplicates.
What You’re Building
| What Gets Automated | What You’ll Achieve |
|---|---|
|
|
Expected Results
Say you take 4 inbound Calendly calls a day. Manually, most reps spend about 10 minutes per call doing quick research and fixing the HubSpot record, so that’s roughly 40 minutes daily. With this automation: the only “work” is booking the meeting, and the enrichment runs in the background while you do other things. You typically get that time back before every call, which feels like a small win that repeats all week.
Before You Start
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Calendly to trigger the workflow on bookings.
- HubSpot to store and update CRM records.
- Clearbit API key (get it from your Clearbit dashboard).
Skill level: Beginner. You’ll connect accounts and map a few fields (email, domain, company name) without writing code.
Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).
Step by Step
A Calendly meeting gets booked. The trigger fires as soon as the event is created, pulling the invitee details (especially the email) into n8n.
Personal emails get filtered out. The workflow checks the domain and stops early for common personal providers, because enriching those usually creates noise, not pipeline.
Clearbit enriches the person and their employer. First it augments the email with identity data. Then it validates whether an employer exists, and if it does, it enriches the company profile too (think domain, location, and basic firmographic fields).
HubSpot gets updated with the right records. The workflow looks up the company by domain, decides if a company record is missing, then creates or updates the company. After that, it upserts the contact (and lead details) so your CRM reflects what Clearbit found.
You can easily modify the email filtering rules to include or exclude certain domains based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Calendly Trigger
This workflow starts when a Calendly invitee is created, then immediately filters out personal email domains.
- Add and open Calendly Event Trigger.
- Set Events to
invitee.created. - Credential Required: Connect your calendlyApi credentials.
- Connect Calendly Event Trigger to Exclude Personal Emails.
- In Exclude Personal Emails, confirm the filter blocks personal domains using
notContainsrules for@gmail.com,@yahoo.com,@outlook.com,@hotmail.com,@icloud.com,@mail.com,@aol.com,@zoho.com, and@gmxon{{$json.payload.email}}.
Step 2: Connect HubSpot
HubSpot is used to search, create, and update company and contact records across five CRM nodes.
- Credential Required: Connect your hubspotOAuth2Api credentials to all HubSpot nodes.
- In Lookup Company Domain, set Resource to
company, Operation tosearchByDomain, Limit to1, and Domain to{{$json.domain}}. - In Generate Company Record, set Resource to
companyand Name to{{$('Enhance Company Profile').item.json.name}}, then map additional fields such as Twitter Bio to{{$('Enhance Company Profile').item.json.twitter.bio}}. - In Modify Company Details, set Operation to
updateand Company ID to{{$json.companyId}}, then map update fields from Enhance Company Profile (e.g.,{{$('Enhance Company Profile').item.json.description}}). - In Upsert Contact Entry and Upsert Lead Record, set Email to
{{$('Augment Email Data').item.json.email}}and map name fields from Augment Email Data.
Step 3: Set Up Clearbit Enrichment
Clearbit enriches person and company data before CRM records are created or updated.
- Add Augment Email Data and set Resource to
personwith Email set to{{$json.payload.email}}. - Credential Required: Connect your clearbitApi credentials to Augment Email Data.
- Add Enhance Company Profile and set Domain to
{{$json.employment.domain}}. - Credential Required: Connect your clearbitApi credentials to Enhance Company Profile.
continueErrorOutput, you can still route failures to No Contact Found Action without stopping the workflow.Step 4: Configure Routing and CRM Actions
This section controls the decision flow between lead creation, company enrichment, and updates in HubSpot.
- Connect Exclude Personal Emails to Augment Email Data.
- In Validate Employer Presence, set the condition to check that
{{$json.employment.domain}}isnotEquals{{null}}. - From Validate Employer Presence, route the true output to Enhance Company Profile and the false output to Upsert Lead Record.
- Connect Enhance Company Profile to Lookup Company Domain, then to Check Missing CRM Company.
- In Check Missing CRM Company, keep the condition checking
{{$input.item.json}}foremptyto detect missing CRM records. - Route the true output to Generate Company Record → Upsert Contact Entry, and the false output to Modify Company Details.
- Leave No Contact Found Action connected to the secondary output of Augment Email Data as a placeholder for logging or alerting.
Step 5: Test and Activate Your Workflow
Run a full test to confirm enrichment, routing, and CRM updates before enabling the workflow in production.
- Click Execute Workflow and trigger a test Calendly invitee event.
- Confirm Exclude Personal Emails allows a business email and blocks a personal one.
- Verify Augment Email Data and Enhance Company Profile return data for a valid business email.
- Check HubSpot: a new or updated company record should appear, and Upsert Contact Entry should associate the contact to the company.
- When the test is successful, toggle the workflow Active for production use.
Troubleshooting Tips
- Clearbit credentials can expire or need specific permissions. If things break, check your Clearbit dashboard API key status first.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- HubSpot upserts can fail if your private app is missing CRM write scopes. When you see 403/permission errors, review the app permissions in HubSpot and re-authorize in n8n.
Quick Answers
About 30 minutes if your Calendly, HubSpot, and Clearbit accounts are ready.
No. You’ll mostly connect accounts and map fields like email, company name, and domain.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Clearbit API costs (based on your plan and enrichment volume).
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and you probably should. You can swap Clearbit for another enrichment tool by replacing the enrichment steps (the “Augment Email Data” and “Enhance Company Profile” parts) with your provider’s API call, then keep the HubSpot upsert steps the same. Common tweaks include expanding the personal email filter, enriching only when a deal stage matches your criteria, and sending a Slack summary to the assigned owner when a high-fit company books.
Usually it’s permissions. Reconnect your HubSpot credential in n8n and confirm your private app has CRM write scopes for companies and contacts. If you recently rotated the app token, update it everywhere the workflow uses HubSpot. Rate limits can also show up when you batch lots of bookings at once, so slow down processing if you’re importing meetings.
For most small teams, it can handle “normal calendar volume” easily. On n8n Cloud, your limit depends on your plan’s monthly executions, and each booking may use several executions because multiple nodes run. If you self-host, there’s no execution cap (it’s mostly your server and API rate limits). Clearbit plan limits are usually the first bottleneck, not n8n.
Sometimes, yes. This workflow has branching logic (filtering personal emails, validating employer presence, and checking whether a HubSpot company exists) that gets annoying and expensive in simpler “trigger → action” tools. n8n also gives you more control over how you handle failures, and you can self-host if you want unlimited runs. Zapier or Make can still be fine if you only need a basic “create contact on booking” flow and you’re happy to keep enrichment manual. If you want a clean CRM and consistent pre-call context, the extra control is worth it. Talk to an automation expert if you want help choosing.
Once this is running, “prep time” stops being a calendar blocker and becomes background noise. You show up informed, and HubSpot stays clean without constant policing.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.