Integration · Microsoft Teams

Compliance scoring for Teams meeting recordings.

Regulated advice is increasingly given over a screen share rather than a dialer, so the only record of the conversation is a video file sitting in an archive nobody has capacity to watch. Send us that file and CallGuard extracts the audio at the door, transcribes it with speaker diarisation and scores it against your scorecard. To be clear about what this is: post-meeting scoring of recordings you already hold, not live monitoring and not a recording product.

Send us the file. We keep the audio and bin the video.

There is no Teams connector and no Microsoft Graph app to consent to — CallGuard works on the recording itself, however your firm gets it out of Teams. From there it is the same pipeline that scores a dialer call, with one extra step at the front: the video track is stripped and the audio extracted as MP3 before anything else touches it.

1

Get the recording out of Teams

However you already do it. A recording saved to your firm's storage, an export from the compliance-recording tool you run alongside Teams, or a file an adviser downloads after a meeting. CallGuard does not need to be in the meeting to score it.

2

Upload it, or push it by API

Drag and drop in the dashboard, or POST the file or a URL to our REST API when an archive can hand recordings over automatically. Files up to 500MB are accepted, because a 45 to 60 minute meeting is routinely over 300MB.

3

The video is stripped at the ingest boundary

A bundled ffmpeg-static binary extracts the audio as MP3 — typically under 30MB — and the video is discarded there and then. No server-side install, and a 15-minute transcode ceiling bounds a malformed container. Only audio crosses into the platform.

4

Transcribed, redacted, scored

Speaker-diarised transcription with source-side PII redaction, then scoring against your firm's scorecard: pass or fail per criterion, each backed by a direct quote from the transcript. Your compliance officer corrects anything they disagree with, and the AI recalibrates to your bar.

Video in. Audio only, from there on.

CallGuard is the review layer, not the capture layer. As general regulatory context rather than legal advice: firms in scope of SYSC 10A are required to record certain client conversations and retain them, commonly for around five years, and firms running a Teams compliance-recording product to satisfy that typically end up with an archive far larger than any QA team can review. CallGuard does not replace that tool and does not discharge any recording duty. It reads what the tool produces, so every meeting gets scored rather than one in twenty. The firms that ask for this most often are doing mortgage advice over a screen share; there is wider context on our financial services use case, and pricing is published at /pricing.

The video never reaches storage

Stripped once, at ingest. Never stored, never encrypted at rest, never counted in retention, never served back to a browser. A compliance system does not need footage of a client's living room to check whether the fee was disclosed.

The containers a meeting export actually produces

.mp4, .m4v, .mov, .webm, .mkv, .avi, .mpg and .mpeg, plus the matching declared MIME types. When a source streams a container as a generic binary type, the file extension is used as a fallback so it is not mistaken for audio.

Sized for real meetings, not clips

Files up to 500MB are handled, covering the 300MB-plus recordings a long advice appointment produces. The extracted MP3 is usually under 30MB, so what you store and retain is a fraction of what arrived.

Nothing to install, nothing to deploy

Audio extraction runs on a bundled ffmpeg-static binary. No server-side package to approve, no middleware, no container to run on your side — the same low-friction setup as the rest of our ingestion routes.

Platform-agnostic by design

We handle the container, not the meeting platform. Teams, Zoom or Google Meet exports all take the identical path, so a firm whose advisers use more than one tool does not need more than one integration.

Everything downstream is unchanged

AES-256-GCM encryption at rest, speaker-diarised transcription, source-side PII redaction so personal data becomes typed tags before it reaches the model, scoring against your scorecard, journey scoring across a multi-meeting sale, and retention purge on your schedule.

Common questions, answered.

Is this a live, mid-meeting integration?

No, and we want to be unambiguous about that. There is no live Teams adapter. This is post-meeting file ingestion: the meeting finishes, the recording lands wherever your firm keeps it, and that file is sent to CallGuard to be transcribed and scored. Nothing is flagged while the meeting is still running. If you need breach alerts mid-conversation, our Twilio and AWS Connect adapters stream audio live and are the right place to look.

Does CallGuard record or archive our Teams calls for us?

No. CallGuard is not a compliance-recording or archiving product. It does not capture your Teams calls, and it must not be relied on to discharge any recording or retention obligation your firm has. It scores recordings you already hold. As general regulatory context rather than legal advice: firms in scope of SYSC 10A are required to record certain client conversations and retain them, commonly for around five years, and a whole vendor category of capture tools exists to do that. Keep yours. Point what it produces at CallGuard and it gets reviewed.

What happens to the video track?

It is stripped once, at the ingest boundary, and discarded. Only the extracted MP3 audio crosses into the platform. The video is never stored, never encrypted at rest, never counted in retention and never served back to a browser. That is a deliberate design decision: scoring the call only needs the conversation, so only the conversation is kept.

Which file formats and sizes do you accept?

Video containers with the extensions .mp4, .m4v, .mov, .webm, .mkv, .avi, .mpg and .mpeg, and the matching declared MIME types, including video/mp4, video/quicktime, video/webm and video/x-matroska. When a source streams a container as a generic binary type such as application/octet-stream, we fall back to the file extension so it is not mistaken for audio. Files up to 500MB are accepted, which matters because a 45 to 60 minute recording is routinely over 300MB. The extracted MP3 is typically under 30MB.

How do recordings actually get to CallGuard?

Two routes, both of which exist today. Drag and drop the file into the dashboard, which suits a firm reviewing a handful of advice meetings a week. Or push it through our REST API, as a file or as a URL we fetch, which suits an archive that can hand off a recording automatically. There is no Teams or Microsoft Graph connector, and we are not going to pretend otherwise.

Does this work for Zoom and Google Meet recordings too?

Yes. Nothing here is specific to Teams. We handle the container, not the meeting platform that produced it, so a Zoom or Google Meet export in any of the supported formats goes through exactly the same path: audio extracted at ingest, video discarded, transcript diarised and redacted, call scored against your scorecard.

Book a 15-min demo