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.
Screenshot needed — /calendar/recaps/<id> with summary tab, action items tab, transcript tab, and edit affordance
How it actually works
- You toggle Notetaker on for a booking link (
/settings/booking-links/<id>→ Integrations → Meeting recording). - 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.
- The bot records and transcribes in the cloud — it doesn't need to run on your machine.
- At meeting end, the bot leaves. The recording is uploaded to Workestra's secure storage. The transcript is processed.
- Within a few minutes, the AI generates a summary, action items, and key moments. The recap appears at
/calendar/recaps/<id>. - 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.
Consent and the join message
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:
| Tab | What's in it |
|---|---|
| Summary | A 3–6 paragraph synthesis: who attended, what was discussed, what was decided, what's next |
| Action items | Bulleted list of who's doing what by when. AI-extracted from the transcript; editable. |
| Key moments | Timestamped highlights ("decision made at 14:32", "objection raised at 19:01") with click-to-jump-to-transcript |
| Transcript | Full 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:
| Mode | Audience |
|---|---|
| Internal — workspace | Visible to all logged-in workspace members |
| Internal — specific people | Visible only to a list of workspace users |
| External — token URL | Anyone with the link can view |
| External — token URL + password | Anyone 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/profile → Notifications → Daily 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/exportincludes recordings + transcripts for the requesting subject - Delete —
/api/admin/gdpr/deleteremoves them, including the source recording in storage - Retention — workspace-level setting on
/settings/security→ Data 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.
Read next
- Workflows — fire a "post-meeting recap" workflow when the recap is ready
- Booking Links — toggle Notetaker on the Integrations tab
- CRM Integrations — push recaps to Salesforce or HubSpot
- Calendar Dashboard — the Recaps tab lists every recap in the workspace
Conference Rooms & Resources
Book physical rooms, desks, and equipment as part of a meeting — required or optional, calendar-aware, conflict-checked.
CRM & Marketing Integrations
Push bookings to Salesforce as Events and HubSpot as Meetings, route by CRM owner, accept Slack `/book` commands, and track conversions in GA4 + Meta Pixel.