WorkestraDocs
PlatformCalendar & Scheduling

AI Notetaker & Recaps

An AI bot joins your Zoom, Meet, or Teams call, transcribes the conversation, and produces a summary, action items, and a recap you can edit, share, or push into CRM.

The Notetaker is a bot that joins meetings booked through Workestra, records the call (with consent), transcribes it, and produces a structured recap — summary, action items, key moments, and a full transcript. The recap can be edited, shared, exported, or pushed into your CRM as a note on the contact or deal.

This is opt-in per booking link. When it's off, nothing changes from the standard booking flow.

Recap detail page

Screenshot needed — /calendar/recaps/<id> with summary tab, action items tab, transcript tab, and edit affordance

How it actually works

  1. You toggle Notetaker on for a booking link (/settings/booking-links/<id>IntegrationsMeeting recording).
  2. At meeting start, a bot called "Workestra Notetaker" joins the meeting via the Zoom / Meet / Teams link. The host (or, if you're not the host, anyone who has admin rights) admits it from the waiting room.
  3. The bot records and transcribes in the cloud — it doesn't need to run on your machine.
  4. At meeting end, the bot leaves. The recording is uploaded to Workestra's secure storage. The transcript is processed.
  5. Within a few minutes, the AI generates a summary, action items, and key moments. The recap appears at /calendar/recaps/<id>.
  6. You can edit the recap, share it (token URL or password), export as text, or push to CRM.

Provider keys

The Notetaker uses Recall.ai under the hood — a managed bot-as-a-service that handles cross-platform meeting joining. To actually record meetings, you need to provide a RECALL_AI_API_KEY in workspace settings. Without it, the Notetaker substrate ships in a degraded "manual upload" mode:

  • Toggling Notetaker on doesn't auto-join the meeting
  • After the call, the host can upload a recording manually
  • Transcription and recap generation still run

This degraded mode is useful for workspaces that already have a recording tool (Otter, Fireflies, Gong) — they can upload from there to get Workestra recaps. To enable auto-join, set RECALL_AI_API_KEY and pick a region in Notetaker settings.

When Notetaker joins a call, it surfaces in the participant list with a name and (configurable) intro message. Default name: "Workestra Notetaker". Default join message: "I'll be taking notes on this meeting. Recording will be available to attendees afterward."

Both are per-link — set them on the booking link form's Integrations tab. Some teams prefer a corporate-branded name (e.g. "Acme AI Assistant"). Some prefer no message at all.

Recording consent is the host's responsibility. Workestra surfaces the bot, but the legal "I'm recording this call" obligation is yours. In two-party-consent jurisdictions (most of EU, parts of US), tell attendees at the start of the call. The Notetaker join message is a hint, not a substitute.

For attendees who want to skip recording: they can decline — the Notetaker stays in the call but its recording flag is honored by Recall.ai. The transcript marks declined participants' utterances as [declined].

What the recap looks like

/calendar/recaps/<id> has four tabs:

TabWhat's in it
SummaryA 3–6 paragraph synthesis: who attended, what was discussed, what was decided, what's next
Action itemsBulleted list of who's doing what by when. AI-extracted from the transcript; editable.
Key momentsTimestamped highlights ("decision made at 14:32", "objection raised at 19:01") with click-to-jump-to-transcript
TranscriptFull speaker-attributed transcript, scrubbable timeline, search

You can click into the transcript at any timestamp to play the recording from that point. The recording itself is stored in workspace-encrypted Supabase storage.

Editing a recap

Hit Edit on any tab. Summary and action items are rich text (Tiptap). Key moments are a structured list — add, remove, retitle, restamp. Transcript edits are append-only (typo correction is fine; rewriting what was said isn't).

Saved edits are versioned — there's a small "Updated by Alice 12 min ago" footer. The original AI-generated version is recoverable via the audit log if needed.

Sharing a recap

Recaps are private by default. Share options:

ModeAudience
Internal — workspaceVisible to all logged-in workspace members
Internal — specific peopleVisible only to a list of workspace users
External — token URLAnyone with the link can view
External — token URL + passwordAnyone with the link and the password

External shares can be set to expire after N days. The shared view is read-only — no edit, no comment.

Pushing to CRM

If your workspace has Salesforce or HubSpot connected, you can push a recap to CRM with one click. The push:

  • Finds the contact by email (auto-creates if missing)
  • Finds the related deal (auto-detects from the booking, falls back to "no deal")
  • Writes the summary as a note / activity on the contact + deal
  • Optionally attaches the action items as a separate task list

Recaps pushed to CRM update on the CRM side when you edit them in Workestra (last-write-wins on the timestamp, no merge UI).

Daily digest email

A daily digest email at 7 AM in each user's timezone summarizes today's meetings and includes recap previews from yesterday. Useful as a "what's on" briefing. Toggle it under /settings/profileNotificationsDaily meeting digest.

The digest email is generated by a daily Vercel cron (/api/cron/meeting-digest).

GDPR

Recordings, transcripts, and recaps are personal data under GDPR. Workestra handles them through the same substrate as the rest of the workspace:

  • Export/api/admin/gdpr/export includes recordings + transcripts for the requesting subject
  • Delete/api/admin/gdpr/delete removes them, including the source recording in storage
  • Retention — workspace-level setting on /settings/securityData retention controls how long recordings are kept (default: 1 year)

If a participant requests their utterances be removed but the meeting itself is preserved, contact support — that's a manual operation today.

What's NOT supported

  • Live captions during the meeting. Transcript is post-meeting only.
  • Meeting joining for non-Zoom/Meet/Teams platforms. Webex, GoTo, Zoom-via-phone, Google Meet rooms — Recall.ai supports these but Workestra's join logic only wires the three primary platforms today.
  • Multi-language transcription on the same call. If your meeting switches between English and French mid-call, the transcript will be best-effort.
  • PII redaction in the transcript before push-to-CRM.