Skip to content

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...
Canvas
canvas.access_changed 1.13 Sent when a canvas's sharing roles change
canvas.content_updated 1.13 Sent when a canvas's content changes
canvas.created 1.13 Sent when a canvas is created
canvas.deleted 1.13 Sent when a canvas is deleted
canvas.updated 1.13 Sent when a canvas's metadata is updated
Canvas Template
canvas_template.applied 1.5 Sent when a canvas template is applied to a canvas
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
Partner
partner.idp.domain_revoked 1.9.1 Sent when a previously verified partner SSO domain is rev...
partner.idp.domain_verification_failed 1.9.1 Sent when a partner SSO domain's verification fails
partner.idp.domain_verified 1.9.1 Sent when a partner SSO domain's ownership is verified
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...

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",
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "for_user": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "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
actor_user_id string ID of the user who triggered the event. Omitted for headless/system-triggered events.
for_user object User context (id and email). Present only for user-scoped events; omitted for partner-app-scoped events (e.g. the partner.idp.* domain lifecycle events)
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

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "data": {
    "action_button_id": "ab-550e8400-e29b-41d4-a716-446655440000",
    "action_button_name": "Send to CRM",
    "meeting_id": "mtg-550e8400-e29b-41d4-a716-446655440001",
    "context_type": "MEETING",
    "context_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": "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 (omitted for canvas triggers)
context_type string Kind of entity the trigger fired from: MEETING or CANVAS
context_id string UUID of the context entity named by context_type
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

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "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": "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
assigned_to_email string Email of the external (non-workspace) assignee; set only when the item is assigned to an external person
assigned_to_name string Display name of the external assignee; set only alongside assigned_to_email

action_item.created

Since 1.0 · Sent when a new action item is created

Payload

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "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": "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
assigned_to_email string Email of the external (non-workspace) assignee; set only when the item is assigned to an external person
assigned_to_name string Display name of the external assignee; set only alongside assigned_to_email
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

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "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": "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, delegated
is_completed boolean ✓ Current completion status
assignee_id string User assigned to the action item
assigned_to_email string Email of the external (non-workspace) assignee; set only when the item is assigned to an external person
assigned_to_name string Display name of the external assignee; set only alongside assigned_to_email
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

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "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": "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

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "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": "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

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "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": "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

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "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": "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

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "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": "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

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "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": "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

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "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": "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

canvas.access_changed

Since 1.13 · Sent when a canvas's sharing roles change

Note

At least one of workspace_canvas_role and canvas_link_role is present; an absent axis did not change.

Note

Delivered to the canvas owner and explicit user collaborators whose connection holds the canvases:read scope.

Payload

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "data": {
    "canvas_id": "cnv-550e8400-e29b-41d4-a716-446655440001",
    "workspace_id": "ws-550e8400-e29b-41d4-a716-446655440002",
    "workspace_canvas_role": {
      "old_role": "NOACCESS",
      "new_role": "VIEWER"
    },
    "changed_at": "2025-01-15T10:30:00Z"
  },
  "event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
  "event_type": "canvas.access_changed",
  "for_user": {
    "email": "user@example.com",
    "id": "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
canvas_id string ✓ Unique canvas identifier
workspace_id string ✓ Workspace the canvas belongs to
workspace_canvas_role object Change to the workspace-wide sharing role, when it changed
canvas_link_role object Change to the link-sharing role, when it changed
changed_at string ✓ ISO 8601 timestamp of the access change

canvas.content_updated

Since 1.13 · Sent when a canvas's content changes

Note

The body is never included. Fetch it with GET /v1/partner/user/canvases/{id}/content; content_etag matches the ETag that endpoint returns and can be used as If-Match on PUT.

Note

Delivered to the canvas owner and explicit user collaborators whose connection holds the canvases:read scope.

Payload

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "data": {
    "canvas_id": "cnv-550e8400-e29b-41d4-a716-446655440001",
    "workspace_id": "ws-550e8400-e29b-41d4-a716-446655440002",
    "owned_by_user_id": "user-550e8400-e29b-41d4-a716-446655440004",
    "content_version": 7,
    "content_etag": "\"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08\"",
    "last_edited_by": "user-550e8400-e29b-41d4-a716-446655440005",
    "updated_at": "2025-01-15T10:30:00Z"
  },
  "event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
  "event_type": "canvas.content_updated",
  "for_user": {
    "email": "user@example.com",
    "id": "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
canvas_id string ✓ Unique canvas identifier
workspace_id string ✓ Workspace the canvas belongs to
owned_by_user_id string ✓ User who owns the canvas
content_version integer ✓ Monotonic content version after the edit
content_etag string ✓ ETag of the content after the edit, for If-Match on PUT
last_edited_by string User who made the edit, when attributable
updated_at string ✓ ISO 8601 timestamp of the edit

canvas.created

Since 1.13 · Sent when a canvas is created

Note

The payload carries canvas metadata only. Use the Partner User API (GET /v1/partner/user/canvases/{id}/content) to fetch the body.

Note

Delivered to the canvas owner and explicit user collaborators whose connection holds the canvases:read scope.

Payload

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "data": {
    "canvas_id": "cnv-550e8400-e29b-41d4-a716-446655440001",
    "workspace_id": "ws-550e8400-e29b-41d4-a716-446655440002",
    "title": "Q3 Planning",
    "owned_by_user_id": "user-550e8400-e29b-41d4-a716-446655440004",
    "created_by_user_id": "user-550e8400-e29b-41d4-a716-446655440004",
    "template_id": "ctpl-550e8400-e29b-41d4-a716-446655440000",
    "created_at": "2025-01-15T10:30:00Z"
  },
  "event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
  "event_type": "canvas.created",
  "for_user": {
    "email": "user@example.com",
    "id": "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
canvas_id string ✓ Unique canvas identifier
workspace_id string ✓ Workspace the canvas belongs to
title string ✓ Canvas title
owned_by_user_id string ✓ User who owns the canvas
created_by_user_id string ✓ User who created the canvas
template_id string Canvas template the canvas was instantiated from
created_at string ✓ ISO 8601 timestamp when the canvas was created

canvas.deleted

Since 1.13 · Sent when a canvas is deleted

Note

Delivered to the canvas owner and explicit user collaborators whose connection holds the canvases:read scope.

Payload

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "data": {
    "canvas_id": "cnv-550e8400-e29b-41d4-a716-446655440001",
    "workspace_id": "ws-550e8400-e29b-41d4-a716-446655440002",
    "owned_by_user_id": "user-550e8400-e29b-41d4-a716-446655440004",
    "deleted_at": "2025-01-15T10:30:00Z"
  },
  "event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
  "event_type": "canvas.deleted",
  "for_user": {
    "email": "user@example.com",
    "id": "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
canvas_id string ✓ Unique canvas identifier
workspace_id string ✓ Workspace the canvas belonged to
owned_by_user_id string ✓ User who owned the canvas
deleted_at string ✓ ISO 8601 timestamp of the deletion

canvas.updated

Since 1.13 · Sent when a canvas's metadata is updated

Note

Delivered to the canvas owner and explicit user collaborators whose connection holds the canvases:read scope.

Payload

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "data": {
    "canvas_id": "cnv-550e8400-e29b-41d4-a716-446655440001",
    "workspace_id": "ws-550e8400-e29b-41d4-a716-446655440002",
    "title": "Q3 Planning (final)",
    "owned_by_user_id": "user-550e8400-e29b-41d4-a716-446655440004",
    "updated_at": "2025-01-15T10:30:00Z"
  },
  "event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
  "event_type": "canvas.updated",
  "for_user": {
    "email": "user@example.com",
    "id": "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
canvas_id string ✓ Unique canvas identifier
workspace_id string ✓ Workspace the canvas belongs to
title string ✓ Canvas title after the update
owned_by_user_id string ✓ User who owns the canvas after the update
template_id string Canvas template the canvas was instantiated from
updated_at string ✓ ISO 8601 timestamp of the update

canvas_template.applied

Since 1.5 · Sent when a canvas template is applied to a canvas

Note

This event contains a count of collaborators added. Use the Partner User API to fetch the complete canvas details.

Payload

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "data": {
    "template_id": "ctpl-550e8400-e29b-41d4-a716-446655440000",
    "template_name": "Kickoff Canvas",
    "canvas_id": "cnv-550e8400-e29b-41d4-a716-446655440001",
    "applied_by_user_id": "user-550e8400-e29b-41d4-a716-446655440004",
    "applied_at": "2025-01-15T10:30:00Z",
    "applied_items": {
      "collaborators": 3
    }
  },
  "event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
  "event_type": "canvas_template.applied",
  "for_user": {
    "email": "user@example.com",
    "id": "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
canvas_id string ✓ Canvas 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

meeting.completed

Since 1.3 · Sent when a meeting ends and notes/summary are available

Payload

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "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": "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

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "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": "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

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "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": "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

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "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": "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

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "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": "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

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "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": "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

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "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": "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

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "data": {
    "next_step_id": "ns-550e8400-e29b-41d4-a716-446655440000",
    "next_step_name": "Generate Meeting Summary",
    "meeting_id": "mtg-550e8400-e29b-41d4-a716-446655440001",
    "context_type": "",
    "context_id": "",
    "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": "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 (empty for non-meeting contexts)
context_type string ✓ Entity the Next Step was executed on: 'MEETING' or 'CANVAS'
context_id string ✓ Unique identifier of the context entity (meeting or canvas)
result_id string Unique execution result ID (empty for REDIRECT-type next steps)
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

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "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": "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

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "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": "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

partner.idp.domain_revoked

Since 1.9.1 · Sent when a previously verified partner SSO domain is revoked

Note

The challenge token is never included in this payload. Re-initiate verification to restore a revoked domain.

Note

This event is scoped to the partner app, not a connected user, so the delivered webhook envelope omits for_user.

Payload

{
  "data": {
    "domain": "sso.example.com",
    "status": "expired",
    "revoked_at": "2025-01-15T10:30:00Z"
  },
  "event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
  "event_type": "partner.idp.domain_revoked",
  "partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
  "timestamp": "2025-01-15T10:30:00Z"
}

Fields

Field Type Required Description
domain string ✓ The domain whose verification was revoked
status string ✓ The verification status after revocation (always "expired")
revoked_at string ✓ ISO 8601 timestamp when the domain was revoked

partner.idp.domain_verification_failed

Since 1.9.1 · Sent when a partner SSO domain's verification fails

Note

The challenge token is never included in this payload. Use the reason field to distinguish token_mismatch from token_expired.

Note

This event is scoped to the partner app, not a connected user, so the delivered webhook envelope omits for_user.

Payload

{
  "data": {
    "domain": "sso.example.com",
    "status": "expired",
    "reason": "token_expired",
    "failed_at": "2025-01-15T10:30:00Z"
  },
  "event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
  "event_type": "partner.idp.domain_verification_failed",
  "partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
  "timestamp": "2025-01-15T10:30:00Z"
}

Fields

Field Type Required Description
domain string ✓ The domain whose verification failed
status string ✓ The verification status after the failure ("pending" or "expired")
reason string ✓ Why verification failed ("token_mismatch" or "token_expired")
failed_at string ✓ ISO 8601 timestamp when the failure was recorded

partner.idp.domain_verified

Since 1.9.1 · Sent when a partner SSO domain's ownership is verified

Note

The challenge token is never included in this payload. The owning partner app is identified by partner_app_id at the envelope level.

Note

This event is scoped to the partner app, not a connected user, so the delivered webhook envelope omits for_user.

Payload

{
  "data": {
    "domain": "sso.example.com",
    "status": "verified",
    "verified_at": "2025-01-15T10:30:00Z"
  },
  "event_id": "evt-550e8400-e29b-41d4-a716-446655440000",
  "event_type": "partner.idp.domain_verified",
  "partner_app_id": "app-550e8400-e29b-41d4-a716-446655440000",
  "timestamp": "2025-01-15T10:30:00Z"
}

Fields

Field Type Required Description
domain string ✓ The domain whose ownership was verified
status string ✓ The verification status (always "verified")
verified_at string ✓ ISO 8601 timestamp when the domain was verified

session.expired

Since 1.4 · Sent when a chat session expires due to inactivity

Payload

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "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": "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

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "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": "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

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "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": "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

{
  "actor_user_id": "550e8400-e29b-41d4-a716-446655440000",
  "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": "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