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...
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