Meetings that do the follow-up.
Meetings joins, transcribes, and pulls decisions. Action items land as tasks. Recaps drop into the right doc. Champions surface, blockers flag, and the calendar fills itself based on the work graph, not your inbox.
Five things that matter.
Recording is the easy part. The hard part is what happens after the call ends. Meetings does the rest of the work, in the right place, with provenance.
Zoom, Meet, Teams, Webex, in-person via the desktop app. No bot link in the invite. The user controls per-meeting recording with one click.
Speaker labels, time codes, and language ID, with ASR tuned for varied accents. Mixed-language calls are handled per segment.
Not bullet points. Named decisions with owners and dates. Actions become tasks, with the source clip attached.
A customer call recap lands in the CRM deal. A planning meeting recap lands in the project doc. A 1:1 recap lands in the private folder.
Need a deal review? It books one with the right people in their availability windows. Need a postmortem? It pulls the incident roster from Tasks and proposes three slots.
Three stages, one timeline.
Meetings runs three loops: pre, during, after. Each one writes into the graph, not into a separate notes app.
Prep brief, 30 minutes before
Every meeting gets a one-page brief, drafted from the deal state, prior calls, related docs, and the last unresolved objection.
Detect decisions and actions live
Decisions surface as they happen, with one-click confirmation. Tasks are drafted in real time so you can correct ownership in the room.
Recap to the right place
The recap lands in the deal's CRM page, an action task is created in Tasks, and the doc updates the project's last-meeting block.
Three kinds, captured precisely.
A meeting recap is only useful if it captures what was actually decided. The extractor identifies three types and tags each one.
An action with an owner and a date. Becomes a task automatically, with the source clip attached and the deal linked.
A choice taken in the room. Logged as a decision record with attendees and a one-paragraph rationale.
An open thread, owner assigned, follow-up scheduled. The question stays surfaced until it is closed.
Nine more capabilities.
Each is on by default in the product. None require a separate app, plug-in, or per-meeting bot link.
In-person mode
Desktop app does on-device transcription. No cloud upload unless you opt in. Works on a flight.
8 languages
EN, JP, DE, FR, ES, PT, IT, NL. Mixed-language calls handled with per-segment language ID.
Champion tracking
"Who advocates for us most across the buying committee?" Per-meeting and per-account roll-ups.
Per-meeting privacy
Recording disclosure, consent capture, retention rules. Per-jurisdiction handling.
Search across calls
"Find me the call where they said pricing was the blocker." Returns the 12-second clip plus context.
Coaching feedback
Talk-time ratio, filler words, monologue length, question rate. Per rep, per call.
Auto-followups
If the recap says "send the deck," the deck draft is generated and queued in Inbox.
BYO model
Bring your own ASR or LLM. We support Whisper, Deepgram, Anthropic, OpenAI, and self-hosted.
Redaction passes
PII, payment tokens, secrets. Redacted before storage. Audit shows what was masked.
Recap to the right place.
A meeting recap is only useful if it lands in the place your team already works. Five surfaces accept recaps natively.
Five destinations, picked automatically
The router knows that a "QBR" recap belongs in the CRM account record, that a "design review" belongs in the project's Docs page, and that a "1:1" belongs in the private folder of both participants. You can override per meeting.
Programmatic meetings.
Subscribe to decision events, or generate a recap from any audio source.
# Listen for every "commitment" decision in the workspace. from wrxstack import Wrx wrx = Wrx(token=os.environ["WRX_TOKEN"]) async for dec in wrx.meetings.decisions.stream(types=["commitment"]): if dec.confidence < 0.8: continue await wrx.tasks.create( title=dec.summary, owner=dec.assigned_to, due=dec.due_date, source={ "meeting": dec.meeting_id, "clip": dec.clip_url } ) # Or generate a recap from raw audio (BYO recording). recap = await wrx.meetings.recap( audio="gs://recordings/2026-11-08-acme.wav", participants=["mia@acme.com", "sandra@acmerobotics.com"], route_to="crm:deal:acmerobotics-eval" ) print(recap.decisions_summary)
Meetings vs. Otter.
Otter transcribes well. wrxstack Meetings extracts decisions and routes the follow-up.
wrxstack Meetings vs. Otter
| Capability | Otter | wrxstack Meetings |
|---|---|---|
| Joining mechanism | Bot via invite link | Native + bot + desktop |
| Diarization | Basic speaker split | Speaker labels with time codes |
| Decision extraction | Bullet summary | Typed (commitment / decision / question) |
| Auto-create tasks | Manual export | Native task with clip + deal link |
| Recap routing | Email to owner | CRM, Docs, Projects, Tasks |
| Privacy + retention | Account-wide | Per-meeting + jurisdiction |
| In-person mode | Phone recording | Desktop app, on-device option |
Common questions.
Six things people ask in the first week of running Meetings.
Does the bot have to join the call?
Three modes are supported. Native (Zoom/Meet/Teams APIs, no bot in the room), bot link (legacy clients), and desktop capture (in-person or unsupported clients). Native is the default, with no visible participant and no recording artifact in the meeting window.
How is consent handled in two-party-consent jurisdictions?
The recording disclosure can be enforced workspace-wide. When enabled, every joining attendee sees a banner and audio prompt. Consent capture is logged. We support per-jurisdiction policies, so a Massachusetts meeting can require explicit verbal consent while a New York meeting may not.
How is sensitive content in a recording handled?
Redaction runs before storage, so flagged spans (PII, payment tokens, secrets) never persist, and the audit log shows what was masked. Retention is configurable per workspace, channel, or meeting. You can also disable recording entirely and keep only the transcript and decisions. Recordings travel over TLS 1.3 and are encrypted at rest by our managed hosting provider.
Can it summarize and translate at the same time?
Yes. The recap can be generated in any of 8 supported languages, regardless of the call language. Decisions surface in the original language, with a translation. A Japan-led call recap delivered in English is a common path.
How does it pick the right destination for the recap?
The router uses the meeting metadata (calendar title, invited participants, prior history) plus the content. A 1:1 with a direct report lands in the private folder. A QBR with named customer attendees lands in the CRM account. A planning meeting linked to a project lands in the project doc. Override per meeting.
How long are recordings kept?
Default is 90 days. Configurable per workspace, per channel, or per meeting. Some industries require shorter retention; some require longer. Legal hold can be applied with one click and is reversible only by a workspace admin with audit.
Is this an AI notetaker that updates my CRM and tasks?
Yes. Because Meetings lives in the same platform as Tasks and the CRM, the notetaker does more than transcribe. Action items become real tasks with an owner and a date, and decisions or next steps attach to the matching CRM record, so the recap updates your pipeline without a copy-paste. A standalone notetaker can only hand you a document.
Pairs well with.
Meetings shines once CRM, Tasks, and Docs are live in the same workspace.
Who this is not for.
Meetings captures agendas, notes, and the follow-up that comes out of them. If you need a hosted video-conferencing platform, or a revenue-intelligence tool that scores sales calls, tracks talk ratios, and coaches reps, a specialist call-recording vendor will fit better. Meetings runs the notes and the actions, not the call itself.
Stop writing meeting notes.
Free to start, no credit card. Connect your calendar. The next meeting on it gets joined, transcribed, and recapped to the right place.