# notetaker.media

Source: https://developer.nylas.com/docs/reference/notifications/notetaker/notetaker-media/

Sent when a recording or transcription is processing, available, or deleted.

**Recommended action:** If `status` is `available`, download the media using the signed URLs. Handle `media_error` by retrying or alerting the user.

> When `status` is `processing`, `media_deleted`, or `media_error`, the `media` object is omitted from the payload.

## data.object fields

- `id` (string) **(required)** - Unique identifier for the Notetaker bot.
- `grant_id` (string) - The grant ID that owns this Notetaker.
- `object` (string) **(required)** (notetaker) - Always `notetaker`.
- `meeting_settings` (object) - Configuration for what the Notetaker captured.
  - `video_recording` (boolean) - Whether video recording was enabled.
  - `audio_recording` (boolean) - Whether audio recording was enabled.
  - `transcription` (boolean) - Whether transcription was enabled.
  - `summary` (boolean) - Whether AI summary generation was enabled.
  - `summary_settings` (object) - Custom instructions for summary generation.
    - `custom_instructions` (string) - Prompt instructions for the AI summary.
  - `action_items` (boolean) - Whether AI action item extraction was enabled.
  - `action_items_settings` (object) - Custom instructions for action item extraction.
    - `custom_instructions` (string) - Prompt instructions for action item extraction.
  - `leave_after_silence_seconds` (integer) - Seconds of silence before the bot automatically left the meeting.
- `meeting_provider` (string) (Google Meet, Zoom, Microsoft Teams) - The video conferencing provider.
- `meeting_link` (string) - URL of the meeting the Notetaker attended.
- `join_time` (integer) - Unix timestamp when the Notetaker joined.
- `event` (object) - Calendar event associated with this Notetaker.
  - `ical_uid` (string) - iCalendar UID of the associated event.
  - `event_id` (string) - Nylas event ID of the associated event.
  - `master_event_id` (string) - Master event ID for recurring events.
- `status` (string) **(required)** (available, media_deleted, media_error, processing) - Media processing status.
- `state` (string) (available, media_deleted, media_error, processing) - Current state matching the media status.
- `media` (object) - 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` — for example, `transcript` is only present if `transcription` was enabled, and `recording_file_format` is `mp3` instead of `mp4` for audio-only recordings.
  - `recording` (string) - Signed URL to download the video/audio recording. Omitted when not available.
  - `recording_duration` (string) - Duration of the recording in seconds. Omitted when not available.
  - `recording_file_format` (string) (mp4, mp3) - File format of the recording. `mp4` for video recordings, `mp3` for audio-only recordings. Omitted when not available.
  - `thumbnail` (string) - Signed URL for the recording thumbnail image. Omitted when not available.
  - `transcript` (string) - Signed URL to download the transcript. Omitted when not available.
  - `summary` (string) - Signed URL to download the AI-generated summary. Omitted when not available.
  - `action_items` (string) - Signed URL to download the AI-extracted action items. Omitted when not available.
  - `retained_until` (integer) - Unix timestamp when the media files will be automatically deleted. Only present when a retention policy is configured. Omitted when not available.

## Example payload

```json
{
  "specversion": "1.0",
  "type": "notetaker.media",
  "source": "/nylas/notetaker",
  "id": "<WEBHOOK_ID>",
  "time": 1737500936,
  "data": {
    "application_id": "<NYLAS_APPLICATION_ID>",
    "object": {
      "id": "<NOTETAKER_ID>",
      "grant_id": "<NYLAS_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
      },
      "meeting_provider": "Google Meet",
      "meeting_link": "https://meet.google.com/abc-defg-hij",
      "join_time": 1737500936,
      "event": {
        "ical_uid": "<ICAL_UID>",
        "event_id": "<EVENT_ID>",
        "master_event_id": "<MASTER_EVENT_ID>"
      },
      "status": "available",
      "state": "available",
      "media": {
        "recording": "<SIGNED_URL>",
        "recording_duration": "1800",
        "recording_file_format": "mp4",
        "thumbnail": "<SIGNED_URL>",
        "transcript": "<SIGNED_URL>",
        "summary": "<SIGNED_URL>",
        "action_items": "<SIGNED_URL>"
      }
    }
  },
  "webhook_delivery_attempt": 1
}
```
