{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/nylas/refs/heads/main/json-schema/nylas-notetaker-media.schema.json", "title": "Nylas notetaker.media notification object", "description": "Sent when a recording or transcription is processing, available, or deleted. When the [retention window](/docs/v3/notetaker/retention-policies/) elapses, Nylas sends a final `notetaker.media` notification with `status: media_deleted` and no `media` object. This schema describes `data.object` inside the Nylas notification envelope.", "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier for the Notetaker bot." }, "grant_id": { "type": "string", "description": "The grant ID that owns this Notetaker." }, "object": { "type": "string", "description": "Always `notetaker`.", "enum": [ "notetaker" ] }, "meeting_settings": { "type": "object", "description": "Configuration for what the Notetaker captured.", "properties": { "video_recording": { "type": "boolean", "description": "Whether video recording was enabled." }, "audio_recording": { "type": "boolean", "description": "Whether audio recording was enabled." }, "transcription": { "type": "boolean", "description": "Whether transcription was enabled." }, "summary": { "type": "boolean", "description": "Whether AI summary generation was enabled." }, "summary_settings": { "type": "object", "description": "Custom instructions for summary generation.", "properties": { "custom_instructions": { "type": "string", "description": "Prompt instructions for the AI summary." } } }, "action_items": { "type": "boolean", "description": "Whether AI action item extraction was enabled." }, "action_items_settings": { "type": "object", "description": "Custom instructions for action item extraction.", "properties": { "custom_instructions": { "type": "string", "description": "Prompt instructions for action item extraction." } } }, "leave_after_silence_seconds": { "type": "integer", "description": "Seconds of silence before the bot automatically left the meeting." }, "messages": { "type": "object", "description": "Custom announcements posted by the bot to the meeting chat. Present only when configured. See [Custom announcements](/docs/v3/notetaker/custom-announcements/).", "properties": { "on_join": { "type": "array", "description": "Messages posted shortly after the bot joins, each on its own delay.", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "text" ], "description": "Message format. Currently only `text`." }, "content": { "type": "string", "description": "The message text (1\u20131,000 characters, HTML stripped)." }, "send_after_ms": { "type": "integer", "description": "Delay in milliseconds from bot-join before posting (1\u2013600,000)." } } } }, "on_participant_join": { "type": "array", "description": "Messages posted on a trailing debounce when participants join.", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "text" ], "description": "Message format. Currently only `text`." }, "content": { "type": "string", "description": "The message text (1\u20131,000 characters, HTML stripped)." }, "debounce_ms": { "type": "integer", "description": "Trailing debounce window in milliseconds (1\u2013600,000)." } } } } } } } }, "meeting_provider": { "type": "string", "description": "The video conferencing provider.", "enum": [ "Google Meet", "Zoom", "Microsoft Teams" ] }, "meeting_link": { "type": "string", "description": "URL of the meeting the Notetaker attended." }, "join_time": { "type": "integer", "description": "Unix timestamp when the Notetaker joined." }, "event": { "type": "object", "description": "Calendar event associated with this Notetaker.", "properties": { "ical_uid": { "type": "string", "description": "iCalendar UID of the associated event." }, "event_id": { "type": "string", "description": "Nylas event ID of the associated event." }, "master_event_id": { "type": "string", "description": "Master event ID for recurring events." } } }, "status": { "type": "string", "description": "Media processing status.", "enum": [ "available", "media_deleted", "media_error", "processing" ] }, "state": { "type": "string", "description": "Current state matching the media status.", "enum": [ "available", "media_deleted", "media_error", "processing" ] }, "media": { "type": "object", "description": "Signed URLs for the media artifacts. Only present when `status` is `available`. Each sub-field is individually optional depending on the notetaker's `meeting_settings` \u2014 for example, `transcript` is only present if `transcription` was enabled, and `recording_file_format` is `mp3` instead of `mp4` for audio-only recordings.", "properties": { "recording": { "type": "string", "description": "Signed URL to download the video/audio recording. Omitted when not available." }, "recording_duration": { "type": "string", "description": "Duration of the recording in seconds. Omitted when not available." }, "recording_file_format": { "type": "string", "description": "File format of the recording. `mp4` for video recordings, `mp3` for audio-only recordings. Omitted when not available.", "enum": [ "mp4", "mp3" ] }, "thumbnail": { "type": "string", "description": "Signed URL for the recording thumbnail image. Omitted when not available." }, "transcript": { "type": "string", "description": "Signed URL to download the transcript. Omitted when not available." }, "summary": { "type": "string", "description": "Signed URL to download the AI-generated summary. Omitted when not available." }, "action_items": { "type": "string", "description": "Signed URL to download the AI-extracted action items. Omitted when not available." }, "retained_until": { "type": "integer", "description": "Unix timestamp when the media files will be automatically deleted per the notetaker's resolved `retention_time`. The clock starts when the media was first stored. Present whenever media is available; see [Notetaker retention policies](/docs/v3/notetaker/retention-policies/)." } } } }, "required": [ "id", "object", "status" ], "x-nylas-trigger": "notetaker.media", "x-nylas-category": "Notetaker", "x-provenance": { "method": "authored", "publisher": "Nylas", "source": "https://developer.nylas.com/docs/reference/notifications/notetaker/notetaker-media/", "derived_from": "nylas/developer.nylas.com@a7995fb6:src/_component-data/notification-schemas.json", "generated": "2026-09-28" }, "examples": [ { "id": "", "grant_id": "", "object": "notetaker", "meeting_settings": { "video_recording": true, "audio_recording": true, "transcription": true, "summary": true, "summary_settings": { "custom_instructions": "Focus on action items related to the product launch." }, "action_items": true, "action_items_settings": { "custom_instructions": "Group action items by team member." }, "leave_after_silence_seconds": 300, "messages": { "on_join": [ { "type": "text", "content": "\ud83d\udc4b Hey team! I'm your AI notetaker \u2014 here to capture the key points.", "send_after_ms": 5000 } ], "on_participant_join": [ { "type": "text", "content": "\ud83d\udc4b Welcome! Recording and transcription are running.", "debounce_ms": 3000 } ] } }, "meeting_provider": "Google Meet", "meeting_link": "https://meet.google.com/abc-defg-hij", "join_time": 1737500936, "event": { "ical_uid": "", "event_id": "", "master_event_id": "" }, "status": "available", "state": "available", "media": { "recording": "", "recording_duration": "1800", "recording_file_format": "mp4", "thumbnail": "", "transcript": "", "summary": "", "action_items": "" } } ] }