Back to docs
Native recording

Record meetings from your browser

Use Mnueron Meet without installing Granola, hooking up a Zoom webhook, or forwarding from Fathom. Click record, speak, click stop — the meeting lands in /dashboard/meetings with extracted decisions, action items, project classification, and a synopsis. Same pipeline that powers the third-party connectors.

1

Open the recorder

Visit /dashboard/meet/record. Or use the Record entry in the dashboard sidebar (under Mnueron Meet).

The page detects whether your browser supports MediaRecorder + getUserMedia — works in Chrome, Edge, Firefox, and Safari 14+. If you see a yellow warning, switch browsers.

2

Add title + attendees (optional)

Title defaults to Recording <timestamp>; we recommend typing something more memorable (e.g. "Claims 8.0 design review").

Attendees power the avatar stack on the meeting detail page, and help the action-item extractor infer owners. Formats accepted (one per line, or comma-separated):

Sarah Lin
Vatsal <vatsal@acme.com>
mihir@acme.com
Neither field is required. Skipping both still produces a fully functional meeting record.
3

Click Start; grant microphone access

The browser prompts you for mic permission the first time. Click Allow. On subsequent recordings the permission is remembered for the origin.

The recorder turns green and shows a live audio-level meter plus a counting duration timer. Pause/Resume are available if you need a break; Discard wipes everything client-side without uploading.

Browser tabs sometimes throttle background audio. Keep the recording tab focused (or open it in its own window) for the cleanest capture, especially on long sessions.
4

Click Stop & transcribe

The recorded audio packages into a single webm blob and uploads to POST /api/integrations/meet/native/transcribe. Server-side flow:

  1. Resolve the OpenAI key — your BYOK key from /account-settings/keys first, server key second.
  2. Send audio to https://api.openai.com/v1/audio/transcriptions with model=whisper-1 + response_format=verbose_json.
  3. Build a MeetingEnvelope with one transcript turn per Whisper segment, timestamps preserved.
  4. Create (or reuse) the native meeting_source row for this org so the meeting detail page links somewhere sensible.
  5. Hand the envelope to ingestMeeting — same pipeline that runs for Granola, Fathom, Zoom, Teams. Decisions extracted, action items extracted, project classified, synopsis generated, embeddings stored.

Wall-clock: most 15-30 minute meetings transcribe + extract in 30-60 seconds. Whisper is the slow step; the extraction pass runs in parallel-friendly chunks after.

5

Land on the meeting detail page

On success we redirect you to /dashboard/meetings/<id>. You'll see the AI Summary card, Decisions, Action Items, Discussion Highlights, Topics Discussed, and Impact Analysis tiles — all generated from the audio you just recorded.

Like every other meeting, this one is now searchable via memory_recall from any MCP-connected AI tool, and gets auto-assigned to a project via the LLM classifier.

Cost

OpenAI Whisper bills at $0.006/minute. A 1-hour meeting costs $0.36 to transcribe. The downstream decision/action extraction uses the same LLM call site as the rest of the platform and counts against your existing usage.

Privacy

Audio uploads directly from your browser to /api/integrations/meet/native/transcribe, which forwards to OpenAI for transcription. Per OpenAI's API policy, audio submitted to the transcriptions endpoint is not used to train models and isn't retained beyond processing. Mnueron stores the resulting transcript and extracted memories according to your storage mode.

Limits

Whisper accepts up to 24MB per request, which covers roughly 30-90 minutes of webm audio at the default 32 kbps mono. Longer sessions need chunked uploads — on the roadmap. For now, split long meetings into segments and record each separately.

What we don't do yet

Speaker diarization — Whisper's verbose_json gives us segment timestamps but no speaker labels, so everything maps to a single Speaker identity. Tab-audio capture (recording a Zoom/Teams browser window) is planned via getDisplayMedia. Real-time live transcription preview is a possible follow-up.

Troubleshooting

  • "Microphone access was denied" — click the camera/mic icon in your browser's address bar, allow it, reload.
  • "OpenAI key required to transcribe" — add one at /account-settings/keys, or upgrade to a paid plan to use the shared key.
  • "audio file too large" — your recording exceeded 24MB. Split into shorter sessions.
  • "database is currently in read-only mode" — your Supabase storage cap is hit. See BYO storage for the archive workflow that reduces footprint.
  • Recording captures no audio — verify the right input device is selected at the OS level (Sound settings → Input device).