HubSpot · CRM-native · Apache 2.0

HubSpot
Meeting
Transcription

Auto-transcribe every customer meeting from your HubSpot pipeline. Drop a bot into Google Meet, Microsoft Teams, or Zoom from a HubSpot Workflow — transcripts and action items attach to the contact and deal record automatically.

No credit card required
Starred by 2k+ developers on GitHub
vexa · live transcript
LIVE

Waiting for meeting participants…

Connected · Google Meet
Teams
Meet
Vexa
🦀
Real-time Meeting Data for AI

Feed meetings into your AI. Live.

AI needs data, and the best data is real-time. Vexa streams transcripts, audio, and context from any meeting straight to your models and agents — as it happens.

Built for HubSpot

Vexa fits into HubSpot via the Workflows + Webhook actions you already have: a HubSpot Workflow fires Vexa when a meeting is booked, and Vexa's webhook sends transcript chunks back into HubSpot Notes / Custom Properties on the contact and deal records. Open-source, Apache-2.0 — no third-party SaaS in the audio path. Cheaper than Gong/Chorus integrations, fully under your control, and works across the entire HubSpot deal pipeline.

  • Trigger Vexa bots from HubSpot Workflow webhooks — no third-party connector required
  • Auto-attach transcripts to contact, deal, and meeting records via the HubSpot CRM API
  • Pair with HubSpot AI / Make / n8n to extract action items, sentiment, and competitive intel
HubSpot Workflow — POST to Vexa, then write back transcript to deal record
# 1. HubSpot Workflow trigger
#    Enrollment: Deal property "Meeting URL" is known
#    OR: Engagement = scheduled meeting

# 2. HubSpot Workflow action: Send webhook (POST)
URL:     {{env.VEXA_API_BASE}}/bots
Method:  POST
Headers:
  X-API-Key:   {{env.VEXA_API_KEY}}
  Content-Type: application/json
Payload:
  {
    "platform":          "google_meet",
    "native_meeting_id": "{{deal.meeting_code}}",
    "transcribe_enabled": true,
    "transcription_tier": "realtime",
    "metadata": { "hubspot_deal_id": "{{deal.id}}" }
  }

# 3. Catch transcript chunks (separate webhook endpoint)
#    Configure Vexa webhook to your endpoint
#    Use deal_id from metadata to PATCH the HubSpot deal record:

curl -X PATCH https://api.hubapi.com/crm/v3/objects/deals/$DEAL_ID \
  -H "Authorization: Bearer $HUBSPOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "properties": { "vexa_transcript": "..." } }'

Set $API_BASE to https://api.cloud.vexa.ai (hosted) or http://localhost:8056 (self-host). Get $API_KEY from /get-started.

HubSpot integration FAQ

What RevOps teams ask before wiring Vexa into HubSpot.

Is there a Vexa app in the HubSpot Marketplace?

Not yet — a dedicated HubSpot app is on the roadmap. Today integration is via HubSpot Workflows + webhooks (which are first-class in HubSpot since Operations Hub). The pattern works for every customer we've seen, end-to-end inside HubSpot's native automation tooling.

How is this different from HubSpot's native call recording?

HubSpot's native call recording works for HubSpot-dialer calls only (Pro+ plan, with limits) and produces audio + post-meeting transcript. Vexa works for Google Meet, Teams, and Zoom — the platforms most teams actually meet on — and produces real-time transcripts you can act on while the call is happening (live coaching, AI agents).

How do transcripts attach to the deal / contact record?

Pass the HubSpot deal_id (or contact_id) in the metadata field when you create the bot. When transcripts arrive at your webhook, you have the ID to PATCH a Note or Custom Property on the deal via the HubSpot CRM API. Most customers create one transcript note per meeting plus a structured "action_items" custom property.

Can the workflow fire automatically when a meeting is booked via HubSpot Meetings?

Yes — set the Workflow trigger to "Engagement created where type = MEETING" or filter on a specific meeting type. Extract the meeting URL from the engagement and use it as native_meeting_id in the Vexa POST.

What about Gong / Chorus alternatives — is this it?

Yes, this is the open-source path. Vexa transcribes + you build the coaching layer (or use a HubSpot AI step / OpenAI / Anthropic via webhook) to extract scorecards, talk ratios, and follow-ups. Order-of-magnitude cheaper than Gong / Chorus seats, all data stays in HubSpot + Vexa.

Common patterns

What teams build with Vexa + HubSpot

Three patterns RevOps and sales teams build inside HubSpot with Vexa.

01Pattern 1

Auto-attach call transcripts to deal records

Scenario

Sales reps run every call on Google Meet / Teams / Zoom. You want each transcript auto-attached to the relevant HubSpot deal — no copy-paste, no missed follow-ups.

What you get

HubSpot Workflow fires Vexa when the deal advances to "Meeting Scheduled". Transcripts land on the deal Notes tab automatically. Reps focus on selling; deal records are always current.

02Pattern 2

AI-extracted action items and next steps

Scenario

You want HubSpot to surface action items, mentioned competitors, and next steps from every call — without paying for Gong / Chorus seats.

What you get

Transcript webhook → AI extraction step (HubSpot AI Action or OpenAI / Anthropic via Make / n8n) → PATCH custom properties on the deal: next_step, action_items, mentioned_competitor. Build the coaching dashboard inside HubSpot.

03Pattern 3

Engagement scoring from meeting transcripts

Scenario

Marketing wants to score contact engagement based on real meeting content, not just opens and clicks.

What you get

Transcript chunks feed an engagement-scoring pipeline (custom or HubSpot AI). Contacts get a numeric engagement_score property updated per meeting. MQL / SQL definitions can incorporate real conversational signals.

Quickstart

Wire HubSpot + Vexa in 5 minutes

No Marketplace app required. HubSpot Workflows + Webhooks cover every pattern.

  1. 1

    Get a Vexa API key

    Sign up at vexa.ai/get-started or mint one locally on your self-hosted gateway.

  2. 2

    Create a HubSpot Workflow

    Trigger on engagement = meeting (or your custom trigger). Add a Send Webhook action.

  3. 3

    POST to Vexa /bots

    Use the payload template on the right. Pass HubSpot deal_id in metadata so transcripts can be routed back to the right record.

  4. 4

    Catch transcripts

    Stand up a webhook endpoint (your server, or a service like Pipedream / Hookdeck). Use the deal_id from metadata to attach transcripts via the HubSpot CRM API.

  5. 5

    Extract action items

    Optional but common: route transcript chunks through HubSpot AI Action, OpenAI, or Anthropic to extract structured action items + next steps.

How it works under the hood

HubSpot architecture

HubSpot Workflows orchestrate the trigger; Vexa drops the meeting bot and produces transcripts; your webhook endpoint routes them back to the right HubSpot record via the CRM API. The audio path stays in Vexa (hosted or self-hosted). No third-party Gong/Chorus-style SaaS in the loop.

Pipeline

bot pod audio capture whisper-svc transcript chunks REST / WebSocket
Pricing

Pay only for
what you use

Self-host for free, or let us run it for you. Simple usage-based pricing—no per-seat tax.

Free
$0

Apache 2.0 · Self-host forever

Best for teams who need full control

View on GitHub
Full platform — no limits
Your infrastructure, your data
Google Meet + Teams + Zoom
Docker Compose / K8s deploy
REST API + WebSockets + Dashboard
Community support
Individual
$12/mo

1 bot · Flat monthly · Everything included

Best for personal use — 1 meeting at a time

No credit card required

1 concurrent bot
Google Meet + Teams + Zoom
Real-time transcription included
Audio capture + webhooks
12-month audio storage
REST API + WebSockets + Dashboard
Pay-as-you-go
$0.30/hr

Bot infrastructure · +$0.20/hr transcription

Best for teams & API builders · $5 free credit

No credit card required

Unlimited bots
Google Meet + Teams + Zoom
Transcription add-on: +$0.20/hr
Audio capture + webhooks
12-month audio storage
REST API + WebSockets + Dashboard
Enterprise

On-premises, OpenShift, Kubernetes. Dedicated support + SLA.

Book a call
Transcription API

For self-hosted Vexa bot users. Transcription only — $0.002/min.

Get started
Bot: Vexa $0.30/hr vs Recall.ai $0.50/hr —40% cheaper

Frequently asked questions

What's included in the $0.30/hr Bot Service?

The base rate covers bot infrastructure: audio capture, webhooks, and 12 months of audio storage across Google Meet, Microsoft Teams, and Zoom. Add real-time transcription for +$0.20/hr ($0.50/hr total).

Which plan is right for me?

Choose Individual ($12/mo) if you need one bot for personal use—it includes real-time transcription, storage, and the Dashboard. Choose Pay-as-you-go ($0.30/hr) if you need multiple simultaneous bots or want to pay only for what you use—ideal for teams and API integrations. Both plans include Google Meet and Microsoft Teams support. Self-host for free from GitHub if you need full data control.

How does the free credit work?

Every new account gets $5 in free bot credit—no credit card required. That covers ~16 hours of bot time at $0.30/hr. All features are available: audio capture, transcription, real-time data, and full API access.

Can I self-host Vexa?

Yes. Vexa is Apache 2.0 licensed and fully self-hostable. Deploy with Docker Compose, Kubernetes, or OpenShift on your own infrastructure with complete data sovereignty.

How does Vexa compare to Recall.ai?

Vexa is open source, self-hostable, and up to 40% cheaper. Bot: $0.30/hr vs Recall.ai ~$0.50/hr. Transcription add-on: $0.20/hr vs ~$0.15/hr. See our detailed comparison.

What's the Individual plan for?

The Individual plan ($12/mo) is for single users who need one concurrent bot with unlimited meetings. It includes real-time transcription, recording, storage, REST API, WebSockets, and the UI Dashboard—everything you need for personal meeting intelligence. It supports Google Meet and Microsoft Teams, with Zoom coming soon.

Ready when you are

Capture every call.
Attached to HubSpot in 5 minutes.

No credit card on Vexa side, no Marketplace approval wait. Get an API key, paste the Workflow webhook, transcripts land on the deal record.

Apache 2.0 · Self-host or cloud · No credit card required