Nylas notetaker.meeting_state notification object
Sent when the Notetaker bot transitions between meeting lifecycle states. The notification includes both a `state` field (the lifecycle phase) and a `meeting_state` field (the specific reason for the transition). This schema describes `data.object` inside the Nylas notification envelope.
Properties
| Name | Type | Description |
|---|---|---|
| id | string | Unique identifier for the Notetaker bot. |
| grant_id | string | The grant ID that owns this Notetaker. |
| meeting_settings | object | Configuration for what the Notetaker captures. |
| meeting_provider | string | The video conferencing provider. |
| meeting_link | string | URL of the meeting the Notetaker joined. |
| join_time | integer | Unix timestamp when the Notetaker joined or was scheduled to join. |
| event | object | Calendar event associated with this Notetaker. |
| object | string | Always `notetaker`. |
| status | string | Current status of the Notetaker bot. |
| state | string | Current state of the Notetaker bot. |
| meeting_state | string | Specific meeting sub-state within the current state. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/nylas/refs/heads/main/json-schema/nylas-notetaker-meeting-state.schema.json",
"title": "Nylas notetaker.meeting_state notification object",
"description": "Sent when the Notetaker bot transitions between meeting lifecycle states. The notification includes both a `state` field (the lifecycle phase) and a `meeting_state` field (the specific reason for the transition). 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."
},
"meeting_settings": {
"type": "object",
"description": "Configuration for what the Notetaker captures.",
"properties": {
"video_recording": {
"type": "boolean",
"description": "Whether video recording is enabled."
},
"audio_recording": {
"type": "boolean",
"description": "Whether audio recording is enabled."
},
"transcription": {
"type": "boolean",
"description": "Whether transcription is enabled."
},
"summary": {
"type": "boolean",
"description": "Whether AI summary generation is 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 is 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 leaves 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 joined."
},
"join_time": {
"type": "integer",
"description": "Unix timestamp when the Notetaker joined or was scheduled to join."
},
"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."
}
}
},
"object": {
"type": "string",
"description": "Always `notetaker`.",
"enum": [
"notetaker"
]
},
"status": {
"type": "string",
"description": "Current status of the Notetaker bot.",
"enum": [
"connecting",
"attending",
"disconnected",
"failed_entry"
]
},
"state": {
"type": "string",
"description": "Current state of the Notetaker bot.",
"enum": [
"connecting",
"attending",
"disconnected",
"failed_entry"
]
},
"meeting_state": {
"type": "string",
"description": "Specific meeting sub-state within the current state.",
"enum": [
"waiting_for_entry",
"recording_active",
"meeting_ended",
"kicked",
"no_activity",
"no_participants",
"api_request",
"network_error",
"cancelled",
"unknown",
"error",
"internal_error",
"bad_meeting_code",
"bad_meeting_link",
"sign_in_required",
"entry_denied",
"no_response",
"cannot_join",
"meeting_capacity_reached",
"admission_timeout"
]
}
},
"required": [
"id",
"object",
"state",
"meeting_state"
],
"x-nylas-trigger": "notetaker.meeting_state",
"x-nylas-category": "Notetaker",
"x-provenance": {
"method": "authored",
"publisher": "Nylas",
"source": "https://developer.nylas.com/docs/reference/notifications/notetaker/notetaker-meeting_state/",
"derived_from": "nylas/developer.nylas.com@a7995fb6:src/_component-data/notification-schemas.json",
"generated": "2026-09-28"
},
"examples": [
{
"id": "<NOTETAKER_ID>",
"grant_id": "<NYLAS_GRANT_ID>",
"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": "<ICAL_UID>",
"event_id": "<EVENT_ID>",
"master_event_id": "<MASTER_EVENT_ID>"
},
"object": "notetaker",
"status": "connecting",
"state": "connecting",
"meeting_state": "waiting_for_entry"
}
]
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
curl "https://apis.io/api/v1/json-schemas/nylas-notetaker-meeting-state.schema"
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.