Start free

Blog · · 6 min read

Meeting bot transcription for Meet, Zoom, and Teams

What a meeting bot actually does, what Transcription.Solutions ships instead, and how to wire one webhook to cover Google Meet, Zoom, and Teams.

Meeting bot transcription across Meet, Zoom, and Teams

Transcription.Solutions does not ship a meeting bot that joins your calls as a participant. We transcribe the recording afterwards — via cloud-recording URL, file upload, or REST API — and post the result to a webhook. For most teams this covers Meet, Zoom, and Teams with one integration and no plugin install per user. If you need a literal bot that sits in the call live, you'll pair us with a dedicated joiner service. Below: what each path costs, when each one is right, and the actual webhook payload.

What a "meeting bot" usually means

Meeting bot transcription describes a workflow where a virtual participant joins your video call (Google Meet, Zoom, Microsoft Teams), records audio with per-speaker channel info, and returns a transcript after the meeting. The bot appears in the participant list — often under a name like "Notetaker" — so other attendees see it and can object.

Two design questions sit underneath that workflow:

  • Who handles the joining? A service that automates the Meet/Zoom/Teams client (bot-as-a-participant), or the platform's own cloud recording (no bot, the platform records natively).
  • Who handles the transcription? The same vendor end-to-end, or two services stitched together — one to capture, one to transcribe.

We are the transcription half. For the capture half, almost every team already has a working option built into their platform.

What Transcription.Solutions actually does for Meet, Zoom, and Teams

Three paths, all routed through the same REST API and the same webhook:

1. Direct media URL. If your meeting recording is on a CDN with a direct download link — a YouTube unlisted upload, a Vimeo URL, an S3 link — paste it in the URL tab and we'll fetch and transcribe it. Auth'd cloud storage (Google Drive shareable links, OneDrive/SharePoint signed URLs) isn't supported directly; download the file locally first and use path 2.

2. Direct file upload. If the meeting was recorded locally — OBS, QuickTime, Zoom local recording — drop the MP4/M4A into the dropzone or POST it to /v1/transcripts. Up to 2 GB per file on Pro, 5 GB on Business. Same webhook fires when the job completes.

3. Meeting bot. If you need a real bot in the room, schedule one through the dashboard or API and we send a bot via Recall.ai to join the meeting, record it, and hand the audio back through the same pipeline. The bot disclosure is auto-posted into the chat on join and any participant can opt the bot out via the link it drops. Bot minutes bill at 2 credits per minute (versus 1 credit for transcription-only) — three platforms covered, one integration on your side.

The webhook flow

Every job — file upload, URL paste, or API call — fires a single signed webhook when the transcript is ready. The payload is the same shape regardless of how the audio arrived:

{
  "id": "trx_01HZ...",
  "status": "completed",
  "duration_seconds": 2840,
  "language": "en",
  "transcript_url": "https://api.transcription.solutions/v1/transcripts/trx_01HZ.../text",
  "exports": {
    "docx": "https://.../trx_01HZ....docx",
    "srt":  "https://.../trx_01HZ....srt",
    "vtt":  "https://.../trx_01HZ....vtt",
    "json": "https://.../trx_01HZ....json"
  },
  "speakers": [
    {"id": "speaker_0", "turns": 142},
    {"id": "speaker_1", "turns": 118}
  ],
  "summary": "..."
}

Speakers come back anonymous — speaker_0, speaker_1, speaker_2. The team member who opens the transcript renames them in the dashboard via the speaker chip (one click → rename, filter, copy that speaker, jump to first turn). If your meeting was recorded as a stereo file with one channel per person, diarization is a deterministic channel split — no model, no guessing. Mono recordings run through pyannote-3.1.

The webhook is signed (HMAC-SHA256 over the body, secret in your API settings). Verify the signature on your end before trusting the payload.

Try it on your audio

Start free →

30 minutes a month, no card.

Speed and accuracy on real meeting audio

Approximately 6× faster than realtime — a 60-minute file completes in 9-11 minutes — using parallel chunking. So a meeting that ends at 14:00 has its transcript in your webhook by 14:11.

Accuracy on meeting audio is not the same as accuracy on a studio podcast. The honest numbers:

SourceTypical accuracy
Studio podcast, 128 kbps+ MP3~92%
Zoom/Meet/Teams cloud recording, decent mics~88% (AAI benchmark: 11.46% WER)
Conference-room call, ceiling mic~85%
Phone-bridge / 8 kHz mixed-in audio~82%

That 88% on meeting audio is the realistic plateau for any cloud ASR today, ours included. If headset mics and a stereo recording are options, take them — channel-split diarization plus close-mic audio is the single biggest accuracy lift available.

Per-minute cost — what a 60-minute meeting actually costs

The pricing is on the plans page, but the math you care about:

  • Pro — $19/month includes 600 minutes (10 hours of meetings). Overage is $0.04/minute on Pro and $0.02/minute on Business. A 60-minute team meeting outside quota costs $1.80.
  • Business — $49/month includes 2,500 minutes. For a team running 5-6 hours of meetings every weekday, this is the right tier.
  • Free — 30 minutes/month is enough to evaluate the webhook flow on a real recording before paying.

There is no per-platform pricing, no per-user pricing, and no "Meet costs more than Zoom". One quota, three platforms, 99 languages auto-detected from the first 30 seconds.

Consent and notification — your responsibility, not the bot's

Because we don't run the joiner, we don't appear in the participant list, and we don't send the in-meeting "recording started" beep. That's on whichever capture path you chose:

  • Cloud recording triggers the platform's own recording notification (Zoom's chime, Meet's red dot, Teams' banner). Users already recognise these.
  • Third-party bot joiners show up as a named participant; you control the display name and whether the bot speaks an announcement.
  • Local recording is on the recorder to disclose.

Two-party-consent jurisdictions (California, much of the EU under GDPR) require active disclosure. Build the consent step into your meeting invite or your first 30 seconds. The transcript itself is private to your account — we permanently delete source audio from infrastructure within 24 hours of completion, transcripts stay in your account until you delete them, and we do not train models on your data.

When you should not use this workflow

Skip the cloud-recording-plus-webhook setup if:

  • You need the transcript visible during the meeting (live captions). We're a post-call service. Use the platform's built-in live captions for that and treat our transcript as the clean follow-up.
  • Your meetings are on a platform without native recording and you can't run a bot. Without a recording, there's nothing to transcribe.
  • You need word-level accuracy on legal testimony or medical records. ASR at 88-92% is good for searchable notes and summaries — it is not a court-grade transcript. For depositions and certified records, use a certified court reporter and treat AI output as a rough draft only.

For everything else — weekly standups, customer calls, sales discovery, interview transcription, board meetings recorded to the cloud — the URL-paste or API-plus-webhook path covers Meet, Zoom, and Teams with one integration.

FAQ

Does Transcription.Solutions have a bot that joins Google Meet, Zoom, or Microsoft Teams?

Yes. We orchestrate a Recall.ai-powered participant bot that joins the meeting URL, captures audio, and routes it through the same transcription pipeline. The bot auto-posts a disclosure message in the meeting chat on join, and any participant can opt the bot out via the link it drops. Bot minutes bill at 2 credits per minute (1 credit for transcription-only jobs). If you'd rather not put a bot in the room, the cloud-recording-URL and direct-upload paths above work too.

How does the webhook know which meeting a transcript belongs to?

When you submit a job to the API, pass any string in the metadata field — a meeting ID, a Slack thread ID, a calendar event UID. That value comes back unchanged in the webhook payload, so you can route the transcript to the right channel, ticket, or CRM record without storing job IDs on your side.

What's the accuracy on Zoom or Teams recordings specifically?

Around 88% on typical cloud-recorded meetings — that matches AssemblyAI's published meeting-audio benchmark of 11.46% WER. The biggest variables are mic quality and overlap. Headset mics push it toward 92%. Conference-room ceiling mics with people talking over each other drop it toward 85%. Stereo recordings with one channel per speaker get a free accuracy lift because diarization becomes a deterministic channel split.

Do you support Google Meet recordings stored in Google Drive?

Not via the shareable-link path directly — Drive's auth flow isn't something our fetcher handles right now. Download the recording from Drive (the three-dot menu → Download) and upload the MP4 directly. For automated pipelines, generate a signed direct-download URL on your side and point us at that. The transcript output is identical either way; only the fetch step differs.

What happens to the meeting audio after transcription?

Source audio is permanently deleted from our infrastructure within 24 hours of job completion. The transcript stays in your account until you delete it. We do not train models on your data, and the webhook payload is signed so you can verify it came from us before storing the contents.

Can I pay per minute instead of a monthly plan?

The Pro plan at $19/month includes 600 minutes and runs $0.04/minute on Pro and $0.02/minute on Business for overage — so you're effectively on a per-minute model once you cross quota, with no separate "pay-as-you-go" SKU. For a 60-minute meeting that's $1.80 over quota. Teams under 10 hours a month usually stay inside the included minutes.

Does the same webhook work for video files from Meet, Zoom, and Teams?

Yes. The API accepts MP4, MOV, MKV, WEBM, and the audio-only formats (MP3, M4A, WAV, OPUS, FLAC, OGG, AAC). The webhook payload is the same shape whether you sent video or audio — and you get SRT and VTT exports automatically if you need to publish the recording with captions.

Related reading