Recording a meeting usually means setting up a per-platform integration — Zoom’s OAuth app, Meet’s Workspace add-on, Teams’ admin policy. Nylas Notetaker collapses that into one command: drop a meeting URL on nylas notetaker create and a bot joins the call, records the audio, and produces a transcript when the meeting ends.
This recipe walks through joining an in-progress call, scheduling future recordings, retrieving the artifacts, and tearing down.
Join a call now
Section titled “Join a call now”nylas notetaker create --meeting-link "https://zoom.us/j/123456789"The same shape works for every supported platform:
| Provider | Example URL |
|---|---|
| Zoom | https://zoom.us/j/123456789 |
| Google Meet | https://meet.google.com/abc-defg-hij |
| Microsoft Teams | https://teams.microsoft.com/l/meetup-join/... |
You get back a Notetaker ID like ntk_abc123def456. Optionally name the bot so participants know what they’re seeing in the attendee list:
nylas notetaker create \ --meeting-link "https://meet.google.com/abc-defg-hij" \ --bot-name "Notetaker"Schedule a recording in advance
Section titled “Schedule a recording in advance”Pass --join-time to queue the bot to join at a future moment:
nylas notetaker create \ --meeting-link "https://teams.microsoft.com/l/..." \ --join-time "2026-04-01 14:00"The flag accepts ISO timestamps, natural-language strings ("tomorrow 9am"), or relative offsets ("30m"). The bot stays dormant and joins on schedule.
Track what’s happening
Section titled “Track what’s happening”nylas notetaker listnylas notetaker show ntk_abc123def456Status moves through these states:
scheduled → joining → recording → processing → completedshow prints metadata — join time, meeting URL, current state — so you can poll programmatically while the bot does its job.
Pull recordings and transcripts
Section titled “Pull recordings and transcripts”Once the state hits completed:
nylas notetaker media ntk_abc123def456Add --json to get URLs you can pipe into something else:
nylas notetaker media ntk_abc123def456 --json | jq -r '.transcript_url' | xargs curl -o transcript.jsonThe recording is delivered as MP4 and the transcript as structured JSON. Both URLs expire — fetch them within the displayed window or re-request.
Skip the polling — use a webhook
Section titled “Skip the polling — use a webhook”If you don’t want to poll for completed:
nylas webhook create \ --url "https://api.example.com/notetaker-done" \ --triggers notetaker.mediaYour endpoint receives a POST the moment processing finishes, with the media URLs in the payload.
Cancel or tear down
Section titled “Cancel or tear down”nylas notetaker delete ntk_abc123def456Deleting before the bot joins prevents any recording. Deleting mid-recording stops the bot and discards the captured audio. Already-completed recordings stay available for the standard retention window — delete removes the metadata but doesn’t claw back transcripts you’ve already fetched.
Things to know
Section titled “Things to know”- One API surface, three platforms. The CLI absorbs Zoom’s paid-account requirement, Meet’s Workspace licensing, and Teams’ admin dependencies. You provide a URL; Nylas handles the auth dance.
- Bot visibility. Most platforms surface the bot as a participant. Use
--bot-nameto give it a human-readable label. - Concurrent recordings. Multiple Notetakers can run in parallel — the API doesn’t gate on a single in-flight bot per grant.