HubSpot Integration
Automatically sync meetings, insights, and action items to HubSpot CRM. IceCubes matches meeting participants to your HubSpot contacts and associates records with the right companies and deals.
Overview
When a meeting ends, IceCubes generates a summary, extracts insights, and identifies action items. If HubSpot auto-sync is enabled, these are then synced to HubSpot as:
Meeting Engagement
Title, duration, attendees, and AI summary with key discussion points.
Insights Note
Competitor mentions, objections, MEDDIC signals, and pricing discussions.
Action Item Tasks
One task per action item with priority, status, and due date.
How Matching Works
IceCubes uses a multi-step matching algorithm to connect meeting participants to the right HubSpot records. Here's exactly how it works:
Step 1: Filter Internal Participants
First, IceCubes identifies which participants are from your own organization. Any participant whose email domain matches one of your organization's verified domains is considered internal and excluded from CRM matching.
For example, if your verified domain is acme.com, thensarah@acme.com is internal and won't be searched in HubSpot.
If all participants are internal and "Skip internal-only meetings" is enabled (default), the meeting won't be synced at all.
Step 2: Search HubSpot Contacts by Email
For each external participant, IceCubes searches HubSpot for a contact with an exact email match. This uses HubSpot's search API to find contacts where the email property matches the participant's email address.
Step 3: Company Fallback by Domain
If no contact is found for a participant, IceCubes falls back to searching for a company by email domain. For example, ifjohn@techcorp.com has no matching contact, IceCubes searches for a company with domain techcorp.com.
This ensures you still get company-level associations even when specific contacts haven't been added to HubSpot yet.
Step 4: Get Associated Companies
For each matched contact, IceCubes retrieves their associated companies using HubSpot's associations API. This builds the full picture of which companies are involved in the meeting.
Step 5: Find Open Deals
IceCubes looks for open deals associated with the matched companies. Closed and lost deals are excluded. If multiple open deals exist, the most recently modified deal is selected as the primary deal.
Step 6: Select Primary Records
From all matched records, IceCubes selects a primary contact, company, and deal. These are the records that get the strongest associations:
- Primary Contact — The first external contact found with a match
- Primary Company — The company associated with the primary contact
- Primary Deal — The most recently modified open deal
Matching Flow
If no contact is found, domain-based company search is used as a fallback.
What Gets Created in HubSpot
Meeting Engagement
A HubSpot Meeting engagement is created with:
- Title — The meeting title from IceCubes
- Start/End Time — Actual meeting duration
- Location — Platform name (Google Meet, Zoom, Teams)
- Body — AI-generated summary with key discussion points (if enabled)
- External URL — Deep link back to the meeting in IceCubes
Insights Note
If the meeting has extracted insights, a Note is created containing:
- Competitor mentions with risk level (high/medium/low) and context
- Objections grouped by category (Budget, Authority, Need, Timeline)
- MEDDIC signals (Metrics, Economic Buyer, Decision Criteria/Process, Identify Pain, Champion)
- Pricing discussions and challenges mentioned
- Each insight includes the quoted moment and speaker attribution
Action Item Tasks
Each action item from the meeting becomes a HubSpot Task with:
- Subject — The action item text (truncated to 200 characters)
- Body — Full action item text with meeting context and link
- Status — Completed or Not Started (matches IceCubes status)
- Priority — High, Medium, or Low
- Due Date — If a due date was set in IceCubes
- Owner — Assigned to the HubSpot user whose email matches the action item assignee in IceCubes (see below)
Owner Assignment
IceCubes automatically assigns HubSpot owners to synced records. Owners must be HubSpot portal users (people who can log into your HubSpot account in Settings > Users & Teams) — not just CRM contacts.
Meeting Owner
The meeting engagement is assigned to a HubSpot owner using this priority:
- Meeting owner — the IceCubes user who recorded the meeting
- Syncing user — the user whose HubSpot connection is being used
- Internal participant — the first internal team member found as a HubSpot user
This ensures your team can see synced meetings when using HubSpot's "View team's" permission setting.
Task Owner
Each action item task is assigned to the HubSpot user whose email matches the IceCubes assignee. If the assignee's email doesn't match any HubSpot user, the task is created without an owner and will need manual assignment in HubSpot.
You can check the Activity Log to see which tasks were assigned and which need attention.
Associations
All synced objects (meeting, note, tasks) are associated with:
- All matched contacts from the meeting
- The primary company (if found)
- The primary deal (if an open deal exists)
This means when you view a contact, company, or deal in HubSpot, you'll see all the meeting activity, insights, and tasks associated with it.
Settings
Configure HubSpot sync behavior in Settings > Integrations > HubSpot.
| Setting | Default | Description |
|---|---|---|
| Enable Auto-Sync | On | Master toggle for automatic syncing after meetings end |
| Log Meetings | On | Create Meeting engagements in HubSpot |
| Include AI Summary | On | Add the AI-generated summary and key points to the meeting body |
| Sync Insights | On | Create Notes with competitor mentions, objections, and MEDDIC signals |
| Sync Action Items | On | Create/update Tasks for each action item |
| Create Contacts for Unmatched | Off | Automatically create HubSpot contacts for participants with no email match |
| Skip Internal-Only | On | Don't sync meetings where all participants are from your organization |
| Minimum Duration | 5 min | Skip meetings shorter than this duration |
Troubleshooting
Meeting wasn't synced to HubSpot
Check the following:
- Is HubSpot connected? Go to Settings > Integrations > HubSpot
- Is Auto-Sync enabled?
- Was the meeting longer than the minimum duration setting?
- Did the meeting have external participants? Internal-only meetings are skipped by default
- Does the meeting have a calendar event with attendee emails? Emails are required for contact matching
No contacts were matched
Contact matching requires exact email matches. Check that:
- The participant's email in the calendar event matches a contact's email in HubSpot
- The email is on the contact's primary email property (not a secondary email)
- The participant isn't being filtered as internal (check your verified domains)
You can enable "Create contacts for unmatched" in settings to automatically create contacts for participants that don't have a match.
Meeting synced but no deal was associated
Deal association requires a chain: Contact → Company → Deal.
- The matched contact must be associated with a company in HubSpot
- The company must have at least one open deal
- Closed-won and closed-lost deals are excluded from matching
Insights note is missing
The insights note is only created when:
- "Sync Insights" is enabled in settings
- The meeting actually has extracted insights (not all meetings contain detectable insights)
- Sales Insights is enabled in your AI Insights settings
Action item shows "no owner" in HubSpot
HubSpot task owners must be HubSpot portal users (people who can log into your HubSpot account), not just CRM contacts. When you assign an action item to someone in IceCubes, IceCubes looks up their email in HubSpot's Owners API — which only includes users in Settings > Users & Teams.
If the assignee's email exists as a HubSpot contact but not as a HubSpot user, the task will be created without an owner.
To fix:
- Ensure the assignee has a HubSpot user account (Settings > Users & Teams)
- Make sure their HubSpot user email matches the email used in IceCubes
Internal team members aren't showing up as HubSpot contacts
This is by design. IceCubes filters out internal participants before syncing to HubSpot. Any meeting participant whose email domain matches one of your organization's verified domains is considered internal and is excluded from CRM contact matching and creation.
For example, if your verified domain is acme.com, then sarah@acme.com will never be searched or created as a HubSpot contact. Only external participants (e.g., client@othercorp.com) are matched or created.
This prevents your CRM from filling up with your own team members as contacts. You can manage your verified domains in Settings > Organization.
I need to disconnect and reconnect
If you need to reconnect (e.g., to grant new OAuth scopes), go to Settings > Integrations > HubSpot, click "Disconnect", then click "Connect HubSpot" again. Your sync settings will be preserved.