Webhook Events Reference¶
Complete reference for all webhook events delivered by the Contio Partner API.
Download AsyncAPI Specification
Quick Reference¶
| Event | Since | Description |
|---|---|---|
| Action Button | ||
action_button.triggered | 1.5 | Sent when a partner's action button is triggered |
| Action Item | ||
action_item.completed | 1.3 | Sent when an action item is marked as completed |
action_item.created | 1.0 | Sent when a new action item is created |
action_item.updated | 1.0 | Sent when an action item's status or details change |
| Agenda Item | ||
agenda_item.created | 1.4 | Sent when an agenda item is created |
agenda_item.deleted | 1.4 | Sent when an agenda item is deleted |
agenda_item.updated | 1.4 | Sent when an agenda item is updated |
| Automation | ||
automation.assignment.created | 1.0 | Sent when an action item is assigned to your automation |
| Calendar Event | ||
calendar_event.created | 1.4 | Sent when a calendar event is synced from an external cal... |
calendar_event.deleted | 1.4 | Sent when a calendar event is cancelled/deleted from an e... |
calendar_event.updated | 1.4 | Sent when a calendar event is updated in an external cale... |
| Meeting | ||
meeting.completed | 1.3 | Sent when a meeting ends and notes/summary are available |
meeting.created | 1.3 | Sent when a new meeting is created |
meeting.updated | 1.4 | Sent when a meeting's properties are updated |
| Meeting › Context | ||
meeting.context.created | 1.4 | Sent when a partner uploads context data to a meeting |
meeting.context.deleted | 1.4 | Sent when context data is removed from a meeting |
meeting.context.processed | 1.4 | Sent when uploaded context data has been preprocessed |
| Meeting Template | ||
meeting_template.applied | 1.5 | Sent when a meeting template is applied to a meeting |
| Next Step | ||
next_step.completed | 1.5 | Sent when a Next Step execution completes |
| Participant | ||
participant.added | 1.3 | Sent when one or more participants are added to a meeting |
participant.removed | 1.3 | Sent when a participant is removed from a meeting |
| Session | ||
session.expired | 1.4 | Sent when a chat session expires due to inactivity |
session.turn.completed | 1.4 | Sent when the agent finishes processing a turn in a chat ... |
session.turn.failed | 1.4 | Sent when the agent fails to process a turn in a chat ses... |
| User | ||
user.connection.revoked | 1.0 | Sent when a user revokes their connection to your partner... |
| Workflow | ||
workflow.run.completed | 1.6 | Sent when a workflow run completes successfully |
workflow.run.failed | 1.6 | Sent when a workflow run fails |
workflow.run.started | 1.6 | Sent when a workflow run starts |
workflow.step.completed | 1.6 | Sent when a workflow step completes |
workflow.task.created | 1.6 | Sent when a workflow task is created |
workflow.task.resolved | 1.6 | Sent when a workflow task is resolved |
Event Payload Structure¶
All webhook events follow a consistent envelope structure:
{
"event_type": "string",
"event_id": "uuid",
"timestamp": "ISO 8601 datetime",
"partner_app_id": "uuid",
"for_user": {
"id": "user-uuid",
"email": "user@example.com"
},
"data": { /* event-specific payload */ }
}
| Field | Type | Description |
|---|---|---|
event_type | string | Event type identifier (e.g., automation.assignment.created) |
event_id | string | Unique event ID for idempotency |
timestamp | string | ISO 8601 timestamp of when the event occurred |
partner_app_id | string | Your partner application ID |
for_user | object | User context (id and email) for the event |
data | object | Event-specific payload data |
action_button.triggered¶
Since 1.5 · Sent when a partner's action button is triggered
Note
For webhook/redirect delivery mechanisms, the action button fires in addition to the primary delivery. Use result_id with the Partner User API to fetch generated content.
Payload¶
{
"data": {
"action_button_id": "ab-550e8400-e29b-41d4-a716-446655440000",
"action_button_name": "Send to CRM",
"meeting_id": "mtg-550e8400-e29b-41d4-a716-446655440001",
"next_step_id": "ns-550e8400-e29b-41d4-a716-446655440002",
"result_id": "nsr-550e8400-e29b-41d4-a716-446655440003",
"triggered_by": "user-550e8400-e29b-41d4-a716-446655440004",
"triggered_at": "2025-01-15T10:30:00Z",
"trigger_mode": "manual"
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "action_button.triggered",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
action_button_id | string | ✓ | Unique action button identifier |
action_button_name | string | ✓ | Action button name |
meeting_id | string | ✓ | Meeting the action button was triggered on |
next_step_id | string | Associated Next Step ID (if triggered from a Next Step) | |
result_id | string | Execution result ID (if Next Step generated a result) | |
triggered_by | string | ✓ | User who triggered the action button |
triggered_at | string | ✓ | ISO 8601 timestamp of trigger |
trigger_mode | string | ✓ | How the action button was triggered: 'manual' or 'autopilot' |
invocation_id | string | Persisted action_button_invocation row ID |
action_item.completed¶
Since 1.3 · Sent when an action item is marked as completed
Payload¶
{
"data": {
"action_item_id": "ai-550e8400-e29b-41d4-a716-446655440000",
"meeting_id": "mtg-550e8400-e29b-41d4-a716-446655440001",
"workspace_id": "ws-550e8400-e29b-41d4-a716-446655440003",
"title": "Follow up with customer",
"completed_at": "2025-01-15T10:30:00Z",
"completed_by_user_id": "user-550e8400-e29b-41d4-a716-446655440002",
"assignee_id": "user-550e8400-e29b-41d4-a716-446655440003"
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "action_item.completed",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
action_item_id | string | ✓ | Unique action item identifier |
meeting_id | string | ✓ | Source meeting ID |
workspace_id | string | ✓ | Workspace ID |
title | string | ✓ | Action item title |
completed_at | string | ✓ | ISO 8601 timestamp of completion |
completed_by_user_id | string | ✓ | User who completed the action item |
assignee_id | string | User assigned to the action item |
action_item.created¶
Since 1.0 · Sent when a new action item is created
Payload¶
{
"data": {
"action_item_id": "ai-550e8400-e29b-41d4-a716-446655440000",
"meeting_id": "mtg-550e8400-e29b-41d4-a716-446655440001",
"workspace_id": "ws-550e8400-e29b-41d4-a716-446655440003",
"title": "Follow up with customer",
"assignee_id": "user-550e8400-e29b-41d4-a716-446655440002",
"created_at": "2025-01-15T10:30:00Z"
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "action_item.created",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
action_item_id | string | ✓ | Unique action item identifier |
meeting_id | string | ✓ | Source meeting ID |
workspace_id | string | ✓ | Workspace ID |
title | string | ✓ | Action item title |
assignee_id | string | User assigned to the action item | |
created_at | string | ✓ | ISO 8601 timestamp of creation |
action_item.updated¶
Since 1.0 · Sent when an action item's status or details change
Note
This payload is intentionally minimal. Use the Partner User API to fetch full action item details.
Payload¶
{
"data": {
"action_item_id": "ai-550e8400-e29b-41d4-a716-446655440000",
"meeting_id": "mtg-550e8400-e29b-41d4-a716-446655440001",
"workspace_id": "ws-550e8400-e29b-41d4-a716-446655440002",
"status": "in_progress",
"is_completed": false,
"updated_at": "2025-01-15T10:30:00Z"
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "action_item.updated",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
action_item_id | string | ✓ | Unique action item identifier |
meeting_id | string | ✓ | ID of the meeting this action item belongs to |
workspace_id | string | ✓ | Workspace ID |
status | string | ✓ | Status: needs_review, accepted, in_progress, completed, cancelled, blocked |
is_completed | boolean | ✓ | Current completion status |
assignee_id | string | User assigned to the action item | |
updated_at | string | ✓ | ISO 8601 timestamp of the update |
agenda_item.created¶
Since 1.4 · Sent when an agenda item is created
Note
For items in a meeting, this event is delivered to all meeting participants. For backlog items, it is delivered only to the creator.
Payload¶
{
"data": {
"agenda_item_id": "ai-550e8400-e29b-41d4-a716-446655440000",
"meeting_id": "mtg-550e8400-e29b-41d4-a716-446655440001",
"title": "Q4 Planning Discussion",
"item_type": "DISCUSSION",
"created_at": "2025-01-15T10:30:00Z"
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "agenda_item.created",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
agenda_item_id | string | ✓ | Unique agenda item identifier |
meeting_id | string | Meeting ID (null for backlog items) | |
title | string | ✓ | Agenda item title |
item_type | string | ✓ | Item type (e.g., DISCUSSION, ACTION_ITEM_RECAP) |
created_at | string | ✓ | Creation timestamp (RFC3339) |
agenda_item.deleted¶
Since 1.4 · Sent when an agenda item is deleted
Note
For items in a meeting, this event is delivered to all meeting participants. For backlog items, it is delivered only to the deleter.
Payload¶
{
"data": {
"agenda_item_id": "ai-550e8400-e29b-41d4-a716-446655440000",
"meeting_id": "mtg-550e8400-e29b-41d4-a716-446655440001",
"deleted_at": "2025-01-15T10:30:00Z"
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "agenda_item.deleted",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
agenda_item_id | string | ✓ | Unique agenda item identifier |
meeting_id | string | Meeting ID (null for backlog items) | |
deleted_at | string | ✓ | Deletion timestamp (RFC3339) |
agenda_item.updated¶
Since 1.4 · Sent when an agenda item is updated
Note
For items in a meeting, this event is delivered to all meeting participants. For backlog items, it is delivered only to the updater.
Payload¶
{
"data": {
"agenda_item_id": "ai-550e8400-e29b-41d4-a716-446655440000",
"meeting_id": "mtg-550e8400-e29b-41d4-a716-446655440001",
"title": "Updated Q4 Planning Discussion",
"item_type": "DISCUSSION",
"status": "ACTIVE",
"updated_at": "2025-01-15T10:30:00Z"
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "agenda_item.updated",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
agenda_item_id | string | ✓ | Unique agenda item identifier |
meeting_id | string | Meeting ID (null for backlog items) | |
title | string | ✓ | Agenda item title |
item_type | string | ✓ | Item type (e.g., DISCUSSION, ACTION_ITEM_RECAP) |
status | string | ✓ | Agenda item status |
updated_at | string | ✓ | Update timestamp (RFC3339) |
automation.assignment.created¶
Since 1.0 · Sent when an action item is assigned to your automation
Payload¶
{
"data": {
"assignment_id": "asgn-550e8400-e29b-41d4-a716-446655440000",
"action_item_id": "ai-550e8400-e29b-41d4-a716-446655440001",
"meeting_id": "mtg-550e8400-e29b-41d4-a716-446655440002",
"automation_id": "wf-550e8400-e29b-41d4-a716-446655440003",
"automation_name": "CRM Integration",
"confidence_score": 0.95,
"automation_data_payload": {
"custom_field": "value"
},
"status": "pending",
"created_at": "2025-01-15T10:30:00Z",
"workspace_id": "ws-550e8400-e29b-41d4-a716-446655440004"
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "automation.assignment.created",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
assignment_id | string | ✓ | Unique assignment identifier |
action_item_id | string | ✓ | ID of the assigned action item |
meeting_id | string | ✓ | ID of the meeting containing the action item |
automation_id | string | ✓ | ID of the automation that matched |
automation_name | string | ✓ | Human-readable automation name |
confidence_score | number | Match confidence score (0-1) | |
automation_data_payload | object | Custom data from automation configuration | |
status | string | ✓ | Assignment status (pending, processed, failed) |
created_at | string | ✓ | ISO 8601 timestamp |
workspace_id | string | ✓ | Workspace ID where assignment was created |
calendar_event.created¶
Since 1.4 · Sent when a calendar event is synced from an external calendar
Payload¶
{
"data": {
"calendar_event_id": "ce-550e8400-e29b-41d4-a716-446655440000",
"title": "Product Planning Meeting",
"start_time": "2025-01-15T10:30:00Z",
"end_time": "2025-01-15T11:30:00Z",
"is_all_day": false,
"attendee_count": 5
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "calendar_event.created",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
calendar_event_id | string | ✓ | Unique calendar event identifier |
title | string | ✓ | Calendar event title |
start_time | string | ✓ | Event start time (RFC3339) |
end_time | string | ✓ | Event end time (RFC3339) |
is_all_day | boolean | ✓ | Whether this is an all-day event |
attendee_count | integer | ✓ | Number of attendees for the event |
calendar_event.deleted¶
Since 1.4 · Sent when a calendar event is cancelled/deleted from an external calendar
Payload¶
{
"data": {
"calendar_event_id": "ce-550e8400-e29b-41d4-a716-446655440000"
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "calendar_event.deleted",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
calendar_event_id | string | ✓ | Unique calendar event identifier |
calendar_event.updated¶
Since 1.4 · Sent when a calendar event is updated in an external calendar
Payload¶
{
"data": {
"calendar_event_id": "ce-550e8400-e29b-41d4-a716-446655440000",
"title": "Updated Product Planning Meeting",
"start_time": "2025-01-15T10:30:00Z",
"end_time": "2025-01-15T11:30:00Z",
"is_all_day": false,
"attendee_count": 6
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "calendar_event.updated",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
calendar_event_id | string | ✓ | Unique calendar event identifier |
title | string | ✓ | Calendar event title |
start_time | string | ✓ | Event start time (RFC3339) |
end_time | string | ✓ | Event end time (RFC3339) |
is_all_day | boolean | ✓ | Whether this is an all-day event |
attendee_count | integer | ✓ | Number of attendees for the event |
meeting.completed¶
Since 1.3 · Sent when a meeting ends and notes/summary are available
Payload¶
{
"data": {
"meeting_id": "mtg-550e8400-e29b-41d4-a716-446655440000",
"workspace_id": "ws-550e8400-e29b-41d4-a716-446655440001",
"title": "Weekly Team Sync",
"completed_at": "2025-01-15T10:30:00Z"
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "meeting.completed",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
meeting_id | string | ✓ | Unique meeting identifier |
workspace_id | string | ✓ | Workspace ID |
title | string | ✓ | Meeting title |
completed_at | string | ✓ | ISO 8601 timestamp when notes became available |
meeting.context.created¶
Since 1.4 · Sent when a partner uploads context data to a meeting
Payload¶
{
"data": {
"context_id": "ctx-550e8400-e29b-41d4-a716-446655440000",
"meeting_id": "mtg-550e8400-e29b-41d4-a716-446655440001",
"workspace_id": "ws-550e8400-e29b-41d4-a716-446655440002",
"title": "Q4 Financial Summary",
"created_at": "2025-01-15T10:30:00Z"
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "meeting.context.created",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
context_id | string | ✓ | Unique context document identifier |
meeting_id | string | ✓ | Meeting ID |
workspace_id | string | ✓ | Workspace ID |
title | string | Document title | |
created_at | string | ✓ | ISO 8601 timestamp of creation |
meeting.context.deleted¶
Since 1.4 · Sent when context data is removed from a meeting
Payload¶
{
"data": {
"context_id": "ctx-550e8400-e29b-41d4-a716-446655440000",
"meeting_id": "mtg-550e8400-e29b-41d4-a716-446655440001",
"workspace_id": "ws-550e8400-e29b-41d4-a716-446655440002",
"deleted_at": "2025-01-15T10:30:00Z"
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "meeting.context.deleted",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
context_id | string | ✓ | Unique context document identifier |
meeting_id | string | ✓ | Meeting ID |
workspace_id | string | ✓ | Workspace ID |
deleted_at | string | ✓ | ISO 8601 timestamp of deletion |
meeting.context.processed¶
Since 1.4 · Sent when uploaded context data has been preprocessed
Note
The sanitization_report contains detection flags and redaction counts. Use the Partner User API to fetch the processed document content.
Payload¶
{
"data": {
"context_id": "ctx-550e8400-e29b-41d4-a716-446655440000",
"meeting_id": "mtg-550e8400-e29b-41d4-a716-446655440001",
"workspace_id": "ws-550e8400-e29b-41d4-a716-446655440002",
"sanitization_report": {
"pii_detected": true,
"secrets_detected": false,
"formula_escaped": true,
"redactions": [
{
"type": "email",
"count": 3
},
{
"type": "credit_card",
"count": 1
}
]
},
"processed_at": "2025-01-15T10:30:00Z"
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "meeting.context.processed",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
context_id | string | ✓ | Unique context document identifier |
meeting_id | string | ✓ | Meeting ID |
workspace_id | string | ✓ | Workspace ID |
sanitization_report | object | ✓ | Results of PII/secret scanning |
processed_at | string | ✓ | ISO 8601 timestamp of processing completion |
meeting.created¶
Since 1.3 · Sent when a new meeting is created
Payload¶
{
"data": {
"meeting_id": "mtg-550e8400-e29b-41d4-a716-446655440000",
"workspace_id": "ws-550e8400-e29b-41d4-a716-446655440001",
"title": "Product Planning Session",
"created_by_user_id": "user-550e8400-e29b-41d4-a716-446655440002",
"created_at": "2025-01-15T10:30:00Z"
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "meeting.created",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
meeting_id | string | ✓ | Unique meeting identifier |
workspace_id | string | ✓ | Workspace ID |
title | string | ✓ | Meeting title |
created_by_user_id | string | ✓ | User who created the meeting |
created_at | string | ✓ | ISO 8601 timestamp of creation |
meeting.updated¶
Since 1.4 · Sent when a meeting's properties are updated
Note
The scheduled_start field is only present for timed meetings (not for untimed/all-day meetings).
Payload¶
{
"data": {
"meeting_id": "mtg-550e8400-e29b-41d4-a716-446655440000",
"workspace_id": "ws-550e8400-e29b-41d4-a716-446655440001",
"title": "Updated Product Planning Session",
"scheduled_start": "2025-01-15T10:30:00Z",
"updated_at": "2025-01-15T10:30:00Z"
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "meeting.updated",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
meeting_id | string | ✓ | Unique meeting identifier |
workspace_id | string | ✓ | Workspace ID |
title | string | ✓ | Meeting title (current value after update) |
scheduled_start | string | Scheduled start time (nil if untimed) | |
updated_at | string | ✓ | ISO 8601 timestamp of update |
meeting_template.applied¶
Since 1.5 · Sent when a meeting template is applied to a meeting
Note
This event contains counts of items applied. Use the Partner User API to fetch the complete meeting details.
Payload¶
{
"data": {
"template_id": "tpl-550e8400-e29b-41d4-a716-446655440000",
"template_name": "Weekly Team Sync",
"meeting_id": "mtg-550e8400-e29b-41d4-a716-446655440001",
"applied_by_user_id": "user-550e8400-e29b-41d4-a716-446655440004",
"applied_at": "2025-01-15T10:30:00Z",
"applied_items": {
"agenda_items": 5,
"participants": 3,
"documents": 2
}
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "meeting_template.applied",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
template_id | string | ✓ | Unique template identifier |
template_name | string | ✓ | Template name |
meeting_id | string | ✓ | Meeting the template was applied to |
applied_by_user_id | string | ✓ | User who applied the template |
applied_at | string | ✓ | ISO 8601 timestamp of application |
applied_items | object | ✓ | Counts of applied items |
next_step.completed¶
Since 1.5 · Sent when a Next Step execution completes
Note
For AI Next Steps, the result content is available via the Partner User API. For REDIRECT Next Steps, the user was redirected to the configured URL.
Payload¶
{
"data": {
"next_step_id": "ns-550e8400-e29b-41d4-a716-446655440000",
"next_step_name": "Generate Meeting Summary",
"meeting_id": "mtg-550e8400-e29b-41d4-a716-446655440001",
"result_id": "nsr-550e8400-e29b-41d4-a716-446655440003",
"executed_by": "user-550e8400-e29b-41d4-a716-446655440004",
"executed_at": "2025-01-15T10:30:00Z",
"execution_mode": "autopilot"
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "next_step.completed",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
next_step_id | string | ✓ | Unique Next Step identifier |
next_step_name | string | ✓ | Next Step name |
meeting_id | string | ✓ | Meeting the Next Step was executed on |
result_id | string | ✓ | Unique execution result ID |
executed_by | string | ✓ | User who executed the Next Step |
executed_at | string | ✓ | ISO 8601 timestamp of execution |
execution_mode | string | ✓ | How the Next Step was triggered: 'manual' or 'autopilot' |
participant.added¶
Since 1.3 · Sent when one or more participants are added to a meeting
Note
This event is delivered to all partner apps connected to users who are participants in the meeting.
Payload¶
{
"data": {
"meeting_id": "mtg-550e8400-e29b-41d4-a716-446655440000",
"workspace_id": "ws-550e8400-e29b-41d4-a716-446655440003",
"participants": [
{
"participant_id": "part-550e8400-e29b-41d4-a716-446655440001",
"user_id": "user-550e8400-e29b-41d4-a716-446655440002",
"role": "EDITOR"
},
{
"participant_id": "part-550e8400-e29b-41d4-a716-446655440003",
"guest_email": "guest@example.com",
"role": "VIEWER"
}
],
"added_at": "2025-01-15T10:30:00Z"
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "participant.added",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
meeting_id | string | ✓ | Meeting ID |
workspace_id | string | ✓ | Workspace ID |
participants | array | ✓ | List of added participants |
participants[].participant_id | string | ✓ | Unique participant record ID |
participants[].user_id | string | User ID (if registered user) | |
participants[].guest_email | string | Guest email (if guest participant) | |
participants[].role | string | ✓ | Participant role (OWNER, EDITOR, VIEWER) |
added_at | string | ✓ | ISO 8601 timestamp |
participant.removed¶
Since 1.3 · Sent when a participant is removed from a meeting
Note
This event is delivered to all partner apps connected to users who are participants in the meeting.
Payload¶
{
"data": {
"meeting_id": "mtg-550e8400-e29b-41d4-a716-446655440000",
"workspace_id": "ws-550e8400-e29b-41d4-a716-446655440003",
"participant_id": "part-550e8400-e29b-41d4-a716-446655440001",
"user_id": "user-550e8400-e29b-41d4-a716-446655440002",
"removed_at": "2025-01-15T10:30:00Z"
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "participant.removed",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
meeting_id | string | ✓ | Meeting ID |
workspace_id | string | ✓ | Workspace ID |
participant_id | string | ✓ | Removed participant ID |
user_id | string | User ID (if registered user) | |
guest_email | string | Guest email (if guest participant) | |
removed_at | string | ✓ | ISO 8601 timestamp |
session.expired¶
Since 1.4 · Sent when a chat session expires due to inactivity
Payload¶
{
"data": {
"session_id": "sess-550e8400-e29b-41d4-a716-446655440000",
"meeting_id": "mtg-550e8400-e29b-41d4-a716-446655440002",
"expired_at": "2025-01-15T10:30:00Z",
"turn_count": 5,
"last_activity_at": "2025-01-15T10:30:00Z"
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "session.expired",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
session_id | string | ✓ | Expired session identifier |
meeting_id | string | Associated meeting identifier | |
expired_at | string | ✓ | ISO 8601 timestamp when session expired |
turn_count | integer | ✓ | Total turns in session at expiry |
last_activity_at | string | ✓ | Timestamp of last turn in session |
session.turn.completed¶
Since 1.4 · Sent when the agent finishes processing a turn in a chat session
Payload¶
{
"data": {
"session_id": "sess-550e8400-e29b-41d4-a716-446655440000",
"turn_id": "turn-550e8400-e29b-41d4-a716-446655440001",
"sequence_number": 2,
"meeting_id": "mtg-550e8400-e29b-41d4-a716-446655440002",
"completed_at": "2025-01-15T10:30:00Z"
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "session.turn.completed",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
session_id | string | ✓ | Chat session identifier |
turn_id | string | ✓ | Assistant turn identifier |
sequence_number | integer | ✓ | Turn sequence number within the session |
meeting_id | string | Associated meeting identifier | |
completed_at | string | ✓ | ISO 8601 timestamp when turn completed |
session.turn.failed¶
Since 1.4 · Sent when the agent fails to process a turn in a chat session
Payload¶
{
"data": {
"session_id": "sess-550e8400-e29b-41d4-a716-446655440000",
"turn_id": "turn-550e8400-e29b-41d4-a716-446655440001",
"sequence_number": 2,
"meeting_id": "mtg-550e8400-e29b-41d4-a716-446655440002",
"failed_at": "2025-01-15T10:30:00Z",
"error_code": "agent_error",
"error_message": "The agent encountered an internal error while processing this turn."
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "session.turn.failed",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
session_id | string | ✓ | Chat session identifier |
turn_id | string | ✓ | Failed turn identifier |
sequence_number | integer | ✓ | Turn sequence number within the session |
meeting_id | string | Associated meeting identifier | |
failed_at | string | ✓ | ISO 8601 timestamp when turn failed |
error_code | string | ✓ | Machine-readable error classification |
error_message | string | ✓ | Human-readable error description |
user.connection.revoked¶
Since 1.0 · Sent when a user revokes their connection to your partner app
Note
User identification (user_id, user_email) is provided in the for_user envelope field, not in the data payload.
Payload¶
{
"data": {
"connection_id": "conn-550e8400-e29b-41d4-a716-446655440000",
"revoked_at": "2025-01-15T10:30:00Z"
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "user.connection.revoked",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
connection_id | string | ✓ | Unique connection identifier |
revoked_at | string | ✓ | ISO 8601 timestamp of revocation |
workflow.run.completed¶
Since 1.6 · Sent when a workflow run completes successfully
Payload¶
{
"data": {
"run_id": "wfr-550e8400-e29b-41d4-a716-446655440000",
"template_id": "wft-550e8400-e29b-41d4-a716-446655440001",
"workspace_id": "ws-550e8400-e29b-41d4-a716-446655440002",
"final_status": "completed",
"total_steps": 4,
"duration_ms": 12500,
"completed_at": "2025-01-15T10:30:00Z"
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "workflow.run.completed",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
run_id | string | ✓ | Unique workflow run identifier |
template_id | string | ✓ | Workflow template the run was instantiated from |
workspace_id | string | ✓ | Workspace the run belongs to |
final_status | string | ✓ | Terminal status of the run (always 'completed') |
total_steps | integer | ✓ | Total number of step executions recorded for the run |
duration_ms | integer | ✓ | Wall-clock duration in milliseconds from start to completion |
completed_at | string | ✓ | ISO 8601 timestamp the run transitioned to completed |
workflow.run.failed¶
Since 1.6 · Sent when a workflow run fails
Payload¶
{
"data": {
"run_id": "wfr-550e8400-e29b-41d4-a716-446655440000",
"template_id": "wft-550e8400-e29b-41d4-a716-446655440001",
"workspace_id": "ws-550e8400-e29b-41d4-a716-446655440002",
"final_status": "failed",
"step_id": "step-550e8400-e29b-41d4-a716-446655440005",
"node_id": "review-1",
"error_message": "executor returned error: timeout",
"failed_at": "2025-01-15T10:30:00Z"
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "workflow.run.failed",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
run_id | string | ✓ | Unique workflow run identifier |
template_id | string | ✓ | Workflow template the run was instantiated from |
workspace_id | string | ✓ | Workspace the run belongs to |
final_status | string | ✓ | Terminal status of the run (always 'failed') |
step_id | string | Step associated with the failure, when applicable | |
node_id | string | DAG node associated with the failure, when applicable | |
error_message | string | ✓ | Human-readable reason the run failed |
failed_at | string | ✓ | ISO 8601 timestamp the run transitioned to failed |
workflow.run.started¶
Since 1.6 · Sent when a workflow run starts
Payload¶
{
"data": {
"run_id": "wfr-550e8400-e29b-41d4-a716-446655440000",
"template_id": "wft-550e8400-e29b-41d4-a716-446655440001",
"workspace_id": "ws-550e8400-e29b-41d4-a716-446655440002",
"originating_type": "meeting",
"originating_id": "mtg-550e8400-e29b-41d4-a716-446655440003",
"trigger_type": "manual",
"triggered_by": "user-550e8400-e29b-41d4-a716-446655440004",
"started_at": "2025-01-15T10:30:00Z"
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "workflow.run.started",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
run_id | string | ✓ | Unique workflow run identifier |
template_id | string | ✓ | Workflow template the run was instantiated from |
workspace_id | string | ✓ | Workspace the run belongs to |
originating_type | string | ✓ | Kind of object that triggered the run (e.g. meeting, canvas) |
originating_id | string | ✓ | Identifier of the originating object |
trigger_type | string | ✓ | How the run was triggered: 'autopilot' or 'manual' |
triggered_by | string | User who manually triggered the run, when applicable | |
started_at | string | ✓ | ISO 8601 timestamp the run was started |
workflow.step.completed¶
Since 1.6 · Sent when a workflow step completes
Payload¶
{
"data": {
"run_id": "wfr-550e8400-e29b-41d4-a716-446655440000",
"step_id": "step-550e8400-e29b-41d4-a716-446655440005",
"node_id": "deliver-1",
"node_type": "deliver",
"status": "completed",
"completed_at": "2025-01-15T10:30:00Z"
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "workflow.step.completed",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
run_id | string | ✓ | Workflow run the step belongs to |
step_id | string | ✓ | Unique step execution identifier |
node_id | string | ✓ | DAG node id the step was executed for |
node_type | string | ✓ | Kind of executor that ran (e.g. review, next_step, deliver) |
status | string | ✓ | Terminal status of the step (always 'completed') |
output_summary | any | Compact executor output captured at completion (arbitrary JSON) | |
completed_at | string | ✓ | ISO 8601 timestamp the step transitioned to completed |
workflow.task.created¶
Since 1.6 · Sent when a workflow task is created
Payload¶
{
"data": {
"task_id": "wft-550e8400-e29b-41d4-a716-446655440006",
"run_id": "wfr-550e8400-e29b-41d4-a716-446655440000",
"workspace_id": "ws-550e8400-e29b-41d4-a716-446655440002",
"task_type": "review",
"assignee_user_id": "user-550e8400-e29b-41d4-a716-446655440004",
"title": "Review proposed next step",
"created_at": "2025-01-15T10:30:00Z"
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "workflow.task.created",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
task_id | string | ✓ | Unique workflow task identifier |
run_id | string | ✓ | Workflow run the task belongs to |
workspace_id | string | ✓ | Workspace the task belongs to |
task_type | string | ✓ | Kind of task (e.g. review, escalation) |
assignee_user_id | string | ✓ | User the task was assigned to at creation |
title | string | ✓ | Short human-readable title of the task |
created_at | string | ✓ | ISO 8601 timestamp the task was created |
workflow.task.resolved¶
Since 1.6 · Sent when a workflow task is resolved
Payload¶
{
"data": {
"task_id": "wft-550e8400-e29b-41d4-a716-446655440006",
"run_id": "wfr-550e8400-e29b-41d4-a716-446655440000",
"workspace_id": "ws-550e8400-e29b-41d4-a716-446655440002",
"decision": "approved",
"resolved_by": "user-550e8400-e29b-41d4-a716-446655440004",
"resolved_at": "2025-01-15T10:30:00Z"
},
"event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
"event_type": "workflow.task.resolved",
"for_user": {
"email": "user@example.com",
"id": "user-550e8400-e29b-41d4-a716-446655440000"
},
"partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2025-01-15T10:30:00Z"
}
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
task_id | string | ✓ | Unique workflow task identifier |
run_id | string | ✓ | Workflow run the task belongs to |
workspace_id | string | ✓ | Workspace the task belongs to |
decision | string | ✓ | Approve/reject decision recorded by the reviewer |
reason | string | Free-form rationale supplied on reject decisions | |
resolved_by | string | ✓ | User who recorded the decision |
resolved_at | string | ✓ | ISO 8601 timestamp the decision was recorded |