Botevent data model
This object has no API endpoints of its own; it is delivered only through webhooks.
View field support, webhooks, and list parameters for each integration on the Supported Integrations page.
| Field | Type | Required | Description |
|---|---|---|---|
id | string | No | |
created_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
bot_id | string | No | Reference to the calendar_bot |
type | enum | No | Values: BOT_STATUS_CHANGE, PARTICIPANT_JOINED, PARTICIPANT_LEFT, PARTICIPANT_UPDATED, PARTICIPANT_WEBCAM_ON, PARTICIPANT_WEBCAM_OFF, PARTICIPANT_SCREENSHARE_ON, PARTICIPANT_SCREENSHARE_OFF, PARTICIPANT_SPEECH_ON, PARTICIPANT_SPEECH_OFF, CHAT_MESSAGE_RECEIVED, TRANSCRIPT_RECEIVED, TRANSCRIPT_PARTIAL, VIDEO_FRAME_RECEIVED, AUDIO_FRAME_RECEIVED, RECORDING_STARTED, RECORDING_STOPPED, RECORDING_READY |
status_change | object | No | For BOT_STATUS_CHANGE |
status_change.status | enum | No | Values: READY, JOINING_CALL, IN_WAITING_ROOM, IN_CALL_NOT_RECORDING, RECORDING_PERMISSION_ALLOWED, RECORDING_PERMISSION_DENIED, IN_CALL_RECORDING, CALL_ENDED, DONE, FATAL |
status_change.changed_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
status_change.sub_code | string | No | Platform-specific status sub-code |
status_change.message | string | No | Human-readable status message |
participant | object | No | For participant events |
participant.id | string | No | |
participant.name | string | No | |
participant.email | string | No | |
participant.is_host | boolean | No | |
participant.is_cohost | boolean | No | |
participant.joined_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
participant.left_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
participant.platform | string | No | Platform-specific participant identifier |
participant.is_bot | boolean | No | Whether this participant is a bot |
participant.is_self | boolean | No | Whether this participant is the current bot |
participant.speaking | boolean | No | Whether participant is currently speaking |
participant.webcam_on | boolean | No | Whether participant's webcam is on |
participant.screenshare_on | boolean | No | Whether participant is sharing screen |
participant.platform_metadata | object | No | Platform-specific metadata |
transcript | object | No | For TRANSCRIPT_RECEIVED, TRANSCRIPT_PARTIAL |
transcript.id | string | No | |
transcript.created_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
transcript.start_at | string (date-time) | No | Relative timestamp from recording start (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
transcript.end_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
transcript.text | string | Yes | |
transcript.participant | CalendarBotevent_transcript_participant | No | |
transcript.participant.id | string | No | |
transcript.participant.name | string | No | |
transcript.participant.email | string | No | |
transcript.participant.is_host | boolean | No | |
transcript.participant.is_cohost | boolean | No | |
transcript.participant.joined_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
transcript.participant.left_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
transcript.participant.platform | string | No | Platform-specific participant identifier |
transcript.participant.is_bot | boolean | No | Whether this participant is a bot |
transcript.participant.is_self | boolean | No | Whether this participant is the current bot |
transcript.participant.speaking | boolean | No | Whether participant is currently speaking |
transcript.participant.webcam_on | boolean | No | Whether participant's webcam is on |
transcript.participant.screenshare_on | boolean | No | Whether participant is sharing screen |
transcript.participant.platform_metadata | object | No | Platform-specific metadata |
transcript.language | string | No | ISO language code |
transcript.is_final | boolean | No | Whether this is a final transcript (vs. partial) |
transcript.words | CalendarBotTranscriptWord[] | No | Word-level breakdown with timestamps |
transcript.words[].text | string | No | |
transcript.words[].start_at | string (date-time) | No | Relative timestamp from recording start (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
transcript.words[].end_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
transcript.words[].confidence | number | No | 0-1 confidence score |
transcript.confidence | number | No | 0-1 confidence score |
chat_message | object | No | For CHAT_MESSAGE_RECEIVED |
chat_message.id | string | No | |
chat_message.created_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
chat_message.sender | CalendarBotevent_chat_message_sender | No | |
chat_message.sender.id | string | No | |
chat_message.sender.name | string | No | |
chat_message.sender.email | string | No | |
chat_message.sender.is_host | boolean | No | |
chat_message.sender.is_cohost | boolean | No | |
chat_message.sender.joined_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
chat_message.sender.left_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
chat_message.sender.platform | string | No | Platform-specific participant identifier |
chat_message.sender.is_bot | boolean | No | Whether this participant is a bot |
chat_message.sender.is_self | boolean | No | Whether this participant is the current bot |
chat_message.sender.speaking | boolean | No | Whether participant is currently speaking |
chat_message.sender.webcam_on | boolean | No | Whether participant's webcam is on |
chat_message.sender.screenshare_on | boolean | No | Whether participant is sharing screen |
chat_message.sender.platform_metadata | object | No | Platform-specific metadata |
chat_message.message | string | No | |
chat_message.is_private | boolean | No | Whether sent privately vs. to everyone |
chat_message.recipient | CalendarBotevent_chat_message_recipient | No | If private message, who it was sent to |
chat_message.recipient.id | string | No | |
chat_message.recipient.name | string | No | |
chat_message.recipient.email | string | No | |
chat_message.recipient.is_host | boolean | No | |
chat_message.recipient.is_cohost | boolean | No | |
chat_message.recipient.joined_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
chat_message.recipient.left_at | string (date-time) | No | (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format) |
chat_message.recipient.platform | string | No | Platform-specific participant identifier |
chat_message.recipient.is_bot | boolean | No | Whether this participant is a bot |
chat_message.recipient.is_self | boolean | No | Whether this participant is the current bot |
chat_message.recipient.speaking | boolean | No | Whether participant is currently speaking |
chat_message.recipient.webcam_on | boolean | No | Whether participant's webcam is on |
chat_message.recipient.screenshare_on | boolean | No | Whether participant is sharing screen |
chat_message.recipient.platform_metadata | object | No | Platform-specific metadata |
audio_frame | object | No | For AUDIO_FRAME_RECEIVED |
audio_frame.data | string | No | Base64 encoded audio data |
audio_frame.size | number | No | Size in bytes |
audio_frame.timestamp | number | No | Timestamp in milliseconds |
audio_frame.sample_rate | number | No | Audio sample rate (e.g., 16000 Hz) |
audio_frame.channels | number | No | Number of audio channels (1 = mono, 2 = stereo) |
audio_frame.format | string | No | Audio format (e.g., 'PCM', 'OPUS') |
audio_frame.participant_identifier | string | No | Platform participant identifier (not a unified object ref) |
video_frame | object | No | For VIDEO_FRAME_RECEIVED |
video_frame.data | string | No | Base64 encoded video data |
video_frame.size | number | No | Size in bytes |
video_frame.timestamp | number | No | Timestamp in milliseconds |
video_frame.width | number | No | Frame width in pixels |
video_frame.height | number | No | Frame height in pixels |
video_frame.format | string | No | Video format (e.g., 'H264', 'VP8') |
video_frame.fps | number | No | Frames per second |
video_frame.participant_identifier | string | No | Platform participant identifier (not a unified object ref) |
Are we missing anything? Let us know
Was this page helpful?