Skip to main content

Set Up the HubSpot Integration

How do I sync meeting notes, transcripts, and AI insights from tl;dv to HubSpot?

Written by Mioko Nakayama

The HubSpot integration pushes meeting data from tl;dv into HubSpot — no copy-pasting required. Build workflows that update properties on contacts, deals, and companies, or log meetings and notes as activities.

There are three ways to get data across:

  • Automatically — a workflow runs on every new recording that matches the conditions you set.

  • On demand — pick a meeting, pick a workflow, and click Trigger now.

  • Line by line — turn any line of your AI notes into a HubSpot task, with the link back to that moment in the recording.

tl;dv also tags each meeting with the HubSpot records it belongs to, so you can see the CRM context right on the meeting page, filter your library by it, and use it in Meeting notes template automation.


Part 1 — How tl;dv matches meetings to HubSpot records

Everything else in this article depends on this step, so read it first.

🚨 The matching key is the calendar invitee's email address. Before you build a workflow, make sure the people on your calendar event exist as contacts in HubSpot — otherwise the workflow has nothing to update.

When a recording finishes, tl;dv looks at the email addresses of the invitees on the calendar event and finds the matching contact in HubSpot.

  • Contact — the contact whose email matches an invitee is updated.

  • Deal and Company — updates flow through the contact's linked deal and company records.

  • No matching contact? Turn on Create new Contact if no existing option is available (see Step 6.1). tl;dv creates a new Contact using the invitee's email and display name from the calendar event, with the Contact's Lifecycle stage property set to Lead.

💡 This is a regular Contact with Lifecycle stage = Lead — not the separate Leads object in HubSpot.

When there are no invitees at all

Meetings that were joined through a share link only, or recorded in person, often carry no invitee data. Nothing matches, and no workflow runs.

You can fix this after the fact — see Part 7: Add invitees to a meeting after it's recorded — and then sync the meeting with Trigger now.


Part 2 — Connect HubSpot and turn on CRM tagging

Before you connect: disconnect any legacy HubSpot integration

🚨 If you've previously connected HubSpot to tl;dv, disconnect the legacy integration before building a new workflow. The legacy and new setups can interfere with each other and cause inconsistent syncing. You'll reconnect HubSpot during the new workflow setup.

  1. In tl;dv, click Integrations in the left sidebar.

  2. Open the My workflows tab or Team workflows tab if that's where the legacy integration was set up.

  3. Find the HubSpot workflow row and click Edit.

  4. Scroll to the bottom of the configuration panel and click Disconnect integration.

5. Disconnect integration button

Connect your HubSpot account

In tl;dv, click Integrations in the left sidebar, then click the HubSpot tile in the Marketplace tab. Click Connect to HubSpot, choose the HubSpot account you want to link, and click Allow to complete OAuth authorization.

You only need to do this once per tl;dv account.

Once connected, the HubSpot page shows your Connection, your Active workflows, and Additional setup options.

The full HubSpot integration page: Connection, Active workflows list, the workflow-owner filter dropdown, New workflow, and Additional setup options

Turn on "Tag meetings with the CRM info"

Scroll to Additional setup options at the bottom of the HubSpot page and switch on Tag meetings with the CRM info.

Additional setup options with Tag meetings with the CRM info switched ON

This is the setting that links each meeting to its HubSpot contact, company, and deal. Turning it on gives you:

  • the CRM Info panel on every meeting page, showing the contact and deal the meeting is linked to — see Part 6;

  • that CRM data as filters in your meeting library — including a Meeting deal stage filter, so you can pull up every call that happened at a given point in the pipeline;

  • that CRM data as conditions in AI template automation, so the right notes template is applied based on the CRM record or the deal stage;

  • richer AI analysis across meetings.

🚨 Applies to future meetings only. Meetings recorded before you turn this on won't be tagged retroactively.

💡 You need to connect HubSpot (above) before this toggle does anything.

Turn it on for the whole team at once

Team admins on the Business plan or above can enable tagging for everyone at once, instead of asking each person to do it — the same permission that lets you create team workflows.

  1. On the HubSpot integration page, click the filter icon next to New workflow.

  2. Under Filter by workflow owner, select your team instead of Personal workflow.

  3. The page switches to the team scope. Switch on Tag meetings with the CRM info there.

Additional setup options in team scope, with the single Tag meetings with the CRM info toggle

Optional: pull HubSpot call recordings into tl;dv

Upload HubSpot "Contact" call recordings to tl;dv sends calls recorded in HubSpot back into tl;dv so they get transcripts and AI notes.


Part 3 — Build an automated workflow

Workflow types

When you create a workflow, you choose its scope:

Workflow type

Applies to

Individual workflow

Only meetings recorded by you

Team workflow

Meetings recorded by your team members (excludes team admins and billing group admins)

Use an individual workflow for personal experiments, and a team workflow when you want consistent automation across the team.

ℹ️ Team workflows can be created by team admins on the Business plan or above.

💡 Use the workflow owner filter on the integration page to switch between your personal workflows and each team's workflows. See the screenshot of the integration page above.

The four actions

Action

Type

What it does

Update Contact in HubSpot

Property update

Writes meeting data into fields on the matched contact

Update Deal in HubSpot

Property update

Writes meeting data into fields on the deal linked to that contact

Update Company in HubSpot

Property update

Writes meeting data into fields on the company linked to that contact

Create Activity in HubSpot

Activity creation

Logs a meeting or note on a contact, company, or deal

Setup follows the same flow for all four actions. The only differences appear in Step 5 (Configure the action).

💡 Looking for tasks? HubSpot tasks aren't created by workflows. You create them one at a time from a line of your AI notes — see Part 5.

1. Open the HubSpot integration

In tl;dv, click Integrations in the left sidebar, then click the HubSpot tile in the Marketplace tab.

2. Choose a workflow type

Select Individual workflow or Team workflow, then click Confirm.

3. Pick an action

Choose one of the four actions and click Try it now.

4. Set the trigger and conditions

  1. Under Trigger this workflow when, select A new meeting recording is ready.

  2. (Optional) Click Add condition to limit when the workflow runs. Available criteria include Meeting type, Role, Personal attendance, Meeting title, Participant email, and Email domain.

  3. If you add multiple conditions, choose All (every condition must match) or Any (one match is enough).

  4. Click Continue.

💡 Use conditions to keep your workflows focused. For example: only run for external meetings, or only when the meeting title contains "Demo".

💡 You can also leave the workflow OFF and run it only when you want it, using Trigger now (Part 4).

5. Configure the action

This step looks slightly different depending on the action you picked.

For Update Contact, Deal, or Company

Property mapping screen

  1. Leave Create new Contact if no existing option is available turned ON. When no match exists, tl;dv creates a new Contact with Lifecycle stage: Lead, using the invitee's email and display name from the calendar event.

  2. Email is pre-filled with Participants email — leave this as-is.

  3. For each property you want to populate, choose how to fill it:

    • Insert tl;dv data — drop variables like Meeting title, Meeting notes, Transcript, or Participants email into the field.

    • Custom prompt — switch on the Custom prompt toggle in the top-right of the field, then write a free-text instruction. tl;dv runs the prompt against the meeting and writes the result into the property.

🚨 Property mapping currently supports text-format properties only. Number, date, , and other property types aren't supported yet.

💡 New values are appended below existing content in open-text properties, so the most recent meeting appears at the bottom.

For Create Activity

Create Activity configuration screen

  1. Under Create activity in, choose Contact, Company, or Deal. Even if you pick Contact, the activity is also visible on the linked deal and company.

  2. Pick an Activity type: Meeting or Note.

  3. Fill in Title and Content using inserted variables, custom prompts, or both.

💡 Use a custom prompt when you want activity content that differs from your tl;dv meeting notes — for example, a shorter summary for the activity feed, or internal-only notes that customers shouldn't see.

Who the activity is assigned to in HubSpot

You don't choose this — it follows the workflow's scope:

Workflow type

Activity assignee

Individual workflow

No host is set on the activity

Team workflow

The owner of the HubSpot record the activity is logged on

6. Test the workflow

Test step

  1. Click Continue to reach the Test step.

  2. Select a recent meeting and click Test workflow. tl;dv runs the workflow once so you can verify the result in HubSpot before going live.

  3. When the test completes successfully, click Activate workflow.

7. (Optional) Rename your workflow

Rename workflow

Click the workflow title at the top of the page (e.g., Integration 1) and rename it to something descriptive like Sales — Contact sync or CS — Activity log. This makes the workflow easier to find later, and easier to pick from the Trigger now menu.


Part 4 — Run a workflow on demand (Trigger now)

The next four sections all happen on the meeting page in tl;dv, not on the Integrations page.

Automatic workflows run on everything that matches their conditions. Trigger now lets you run a workflow on one specific meeting, whenever you want.

  1. Open the meeting in tl;dv.

  2. In the top-right toolbar, click Trigger now.

  3. Pick one of your existing workflows from the list.

The meeting page toolbar showing CRM Info and Trigger now, with the Slack, Salesforce and HubSpot icons

Trigger now works with every native tl;dv integration — Slack, Notion, HubSpot, Salesforce, and the rest.

When to use it

  • Keep automation selective. Leave your workflows OFF and sync only the meetings you choose.

  • Retry a meeting that didn't match. If a meeting had no invitee data, add the participants (Part 7), then trigger the workflow manually.

  • Sync a meeting you didn't record. Automatic workflows only trigger for the person who created the recording. Trigger now also works on meetings recorded on someone else's tl;dv account that you have access to.

💡 The workflow must already exist on the Integrations page. Trigger now runs existing workflows; it doesn't create them.

Trigger now runs individual and team workflows alike, and the workflow's conditions still apply. You're running the same workflow you built for automation — manual triggering only changes when it runs, not what it checks. If the meeting doesn't match the workflow's conditions, nothing happens.

Triggering twice creates duplicates

🚨 tl;dv does not check whether a workflow has already run on a meeting. If you trigger a workflow that already ran — automatically or manually — it runs again from scratch: a second activity is created on the record, and property values are written a second time. Nothing is skipped, matched up, or overwritten.

So before you re-run a workflow on a meeting, delete whatever the previous run wrote in HubSpot. This matters most when you're fixing a bad CRM link (see Part 6).


Part 5 — Create a HubSpot task from your AI notes

Workflows write notes and activities. When you want a task — something with an owner and a due date — you create it from the AI notes, one line at a time.

Each line of your AI notes carries a timestamp, so the task you create links straight back to the moment in the recording where it was agreed.

Create a task

  1. Open the meeting in tl;dv and go to the AI notes.

  2. Hover over the note line you want to turn into a task. A small toolbar appears above it.

  3. Click the task tool icon, then choose HubSpot → Create task in HubSpot.

4. Fill in the dialog:

Field

What to enter

Object

Contact, Company, or Deal — which kind of HubSpot record the task belongs to

Record

The specific record, searchable by name

Task name

Your own title for the task

Notes

Pre-filled with the AI note line plus a timestamped link back to that moment in the recording. Edit it freely.

Activity date

The due date — Today, Tomorrow, In 2 business days, In 3 business days (default), In 1 week, In 2 weeks, or Custom date

Task type

To-do (default), Call, or Email

Assignee (optional)

The HubSpot user who owns the task

💡 The due date isn't read from the conversation. You pick it yourself from the Activity date list, so a task mentioned as "let's revisit next week" still needs you to choose In 1 week.

5. Click Create HubSpot task.

Add to an existing task

When the follow-up belongs on a task you've already created, choose Add to task in HubSpot instead of Create task in HubSpot.

  1. Search for the existing task and select it.

  2. The AI note line — with its timestamped link back to the recording — is appended to that task's body.

Use this to collect several moments from one call, or from several calls, onto a single task instead of creating one task per note.


Part 6 — Check and fix the CRM link (CRM Info)

CRM Info shows which HubSpot records a meeting is linked to, and lets you correct the link when the automatic match is wrong.

That link isn't only for reading. Once a meeting carries its CRM data, you can filter your meeting library by it and use it as a condition in AI template automation — so keeping the link accurate is worth the occasional manual fix.

ℹ️ Requires Tag meetings with the CRM info (Part 2).

  1. Open the meeting in tl;dv.

  2. Click CRM Info in the top-right toolbar.

The panel shows:

Field

What it shows

Contact

The HubSpot contact matched to an external invitee

Company

The company linked to that contact

Deal

The deal this meeting is linked to — searchable and changeable

Pipeline

The pipeline the linked deal belongs to

Deal stage — At the time of the meeting

The stage the deal was in when the meeting happened

Deal stage — Current stage

The stage the deal is in right now

Change the linked records

If the automatic match is wrong, or the meeting should be attached to a different deal, search for and select the right record directly in the panel.

🚨 Changing the link in tl;dv does not move data that has already synced. Activities, notes, and property values already written to HubSpot stay where they are. To move them: delete the data in HubSpot first, fix the link in CRM Info, then re-run the workflow with Trigger now. If you skip the deletion step you'll end up with the data in both places — re-running never cleans up after a previous run.

Deal stage: which one is stored, and what you can do with it

The CRM Info panel shows two stages, and the difference matters:

Stage

What it is

At the time of the meeting

The stage the deal was in when the recording was synced to HubSpot. This value is frozen — it doesn't change as the deal advances.

Current stage

Where the deal sits in HubSpot right now.

💡 If you link or change the deal manually in CRM Info, the stored stage is the one from the moment you made that change — not the stage on the day the meeting happened. tl;dv describes it as "deal stage at the time of the meeting, or when the last synchronization with the CRM was performed."

Because the stage is stored with the meeting, you can use it in two places.

Filter your meeting library by deal stage

In your meeting library, open the Meeting deal stage filter, pick a pipeline, then pick a stage.

This pulls up every call that happened at a given point in the pipeline — for example, every Discovery/Demo Completed conversation, so you can hear what tends to move deals forward from there.

Apply a notes template based on deal stage

Deal stage is also available as a condition in AI template automation, so the right template is applied automatically.

  1. Open the notes template you want to automate.

  2. Under Automate this template for future meetings, open the Any CRM Deal Stage dropdown.

  3. Pick the stage that should trigger this template. Stages are listed with their pipeline in brackets, e.g. Sales Qualified (SMB + MM Pipeline).

  4. Click Save and activate.

💡 For example: a discovery-focused template on Discovery/Demo Booked meetings, and an objection-and-pricing template on Trial Completed/Decision Pending meetings.


Part 7 — Add invitees to a meeting after it's recorded

Meetings joined by share link, or recorded in person, often have no invitee data — so there's nothing to match to HubSpot, and nothing to filter by in your library.

You can add the participants yourself after the recording:

  1. Open the meeting in tl;dv.

  2. Hover over the information (ⓘ) button in the top-left of the meeting page. It shows the recording's creator and its invitees.

  3. Click pencil mark then enter an email address to add a participant.

Once the participants are correct:

  • the meeting appears under the right library filters;

  • the meeting can be matched to HubSpot, so its CRM Info fills in; and

  • you can run the sync with Trigger now.


Use custom prompts effectively

Custom prompts let you generate exactly the text you want for a property or activity. They are useful when a fixed variable mapping doesn't capture the nuance you need.

Example: Competitor info on a deal property

Extract information about the competitor that the customer mentioned in the meeting. Summarize in one sentence. If not mentioned, do not update anything.

Example: Next steps on a company property

Summarize the agreed-upon next step from the conversation in one sentence. If a date is mentioned, include it clearly.

Tips for writing prompts:

  • Be specific about format. Tell the prompt to write a single sentence, a bulleted list, or a specific template.

  • Handle empty cases. Tell tl;dv what to write when the topic isn't discussed (e.g., "If not mentioned, write 'Not discussed.'").

  • Constrain length. Without an instruction, output can run long. Add "no more than 2 sentences" or similar.


Common questions

Why didn't my workflow run on a meeting?

Check that:

  • The workflow toggle at the top right of the workflow page is ON.

  • The meeting matches the conditions you set.

  • The calendar event has at least one external invitee. Invitees from your own email domain are filtered out, so internal-only meetings never match.

  • That invitee's email matches a HubSpot contact, or Create new Contact if no existing option is available is enabled.

  • The recording's creator is in scope for the workflow:

    • Individual workflows only trigger on meetings recorded by you.

    • Team workflows only trigger on meetings recorded by team members. They don't apply to team admins or billing group admins, so if you're an admin, your own meetings won't trigger a team workflow.

If the meeting simply had no invitees, add them manually (Part 7) and then use Trigger now.

The meeting is linked to the wrong deal. Can I fix it?

Yes — open CRM Info on the meeting page and select the correct deal. Note that data already synced to HubSpot doesn't move: delete it in HubSpot, fix the link, then re-run the workflow with Trigger now.

Can I sync a meeting that someone else recorded?

Automatic workflows only run for the person who created the recording. For meetings recorded on someone else's tl;dv account, open the meeting and use Trigger now.

I turned on CRM tagging — why don't my older meetings show CRM Info?

Tag meetings with the CRM info applies to future meetings only. Meetings recorded before you enabled it aren't tagged retroactively.

Who gets assigned the activity in HubSpot?

It depends on the workflow's scope, and isn't configurable: an individual workflow leaves the host empty, while a team workflow assigns the activity to the owner of the record it's logged on.

Does Trigger now skip the workflow's conditions?

No. Manual triggering runs the same workflow with the same conditions — it only changes when the workflow runs. If the meeting doesn't match the conditions, nothing happens. It also works with team workflows, not just individual ones.

Where do property values appear in HubSpot?

For open-text properties, new values are appended below existing content. The most recent meeting's content appears at the bottom of the field.

Can I have different workflows for different meeting types?

Yes. Create a separate workflow for each scenario and use Conditions to scope it. For example, one workflow for External — First call, another for External — Demo.

Does the activity link back to the original recording?

Yes. When you include the meeting URL or the meeting notes in the activity content, timestamps in the notes link back to the exact moment in the tl;dv recording.

Did this answer your question?