Demodesk · AsyncAPI Specification

Demodesk Webhooks

Version v2

Event notifications Demodesk POSTs to a subscriber endpoint.

View Spec View on GitHub CompanySalesArtificial IntelligenceConversation IntelligenceVideo ConferencingCRMTranscriptionWebhookMCPAsyncAPIEvents

Channels

demoScheduled
demoRescheduled
demoHandovered
demoCanceled
demoStarted
demoEnded
demoCallNoteUpdated
demoEventResponseUpdated
recordingUploaded
recordingTranscriptionPostprocessed

Messages

demoScheduled
Demo scheduled
demoRescheduled
Demo rescheduled
demoHandovered
Demo handovered
demoCanceled
Demo canceled
demoStarted
Demo started
demoEnded
Demo ended
demoCallNoteUpdated
Demo call note updated
demoEventResponseUpdated
Demo event response updated
recordingUploaded
Recording uploaded
recordingTranscriptionPostprocessed
Recording transcription postprocessed

AsyncAPI Specification

Raw ↑
generated: '2026-07-18'
method: generated
source: openapi/demodesk-v2-openapi.yml (webhooks section)
spec_type: AsyncAPI
note: >-
  Faithfully generated from the 10 webhook events natively declared in the
  Demodesk v2 OpenAPI `webhooks` block. Webhooks are enabled by emailing
  support@demodesk.com with the target endpoint URL and desired events.
  Message schemas mirror the referenced OpenAPI component schemas.
asyncapi: 3.0.0
info:
  title: Demodesk Webhooks
  version: v2
  description: Event notifications Demodesk POSTs to a subscriber endpoint.
  contact:
    email: support@demodesk.com
defaultContentType: application/json
channels:
  demoScheduled: { address: demo.scheduled, messages: { event: { $ref: '#/components/messages/demoScheduled' } } }
  demoRescheduled: { address: demo.rescheduled, messages: { event: { $ref: '#/components/messages/demoRescheduled' } } }
  demoHandovered: { address: demo.handovered, messages: { event: { $ref: '#/components/messages/demoHandovered' } } }
  demoCanceled: { address: demo.canceled, messages: { event: { $ref: '#/components/messages/demoCanceled' } } }
  demoStarted: { address: demo.started, messages: { event: { $ref: '#/components/messages/demoStarted' } } }
  demoEnded: { address: demo.ended, messages: { event: { $ref: '#/components/messages/demoEnded' } } }
  demoCallNoteUpdated: { address: demo.call_note_updated, messages: { event: { $ref: '#/components/messages/demoCallNoteUpdated' } } }
  demoEventResponseUpdated: { address: demo.event_response_updated, messages: { event: { $ref: '#/components/messages/demoEventResponseUpdated' } } }
  recordingUploaded: { address: recording.uploaded, messages: { event: { $ref: '#/components/messages/recordingUploaded' } } }
  recordingTranscriptionPostprocessed: { address: recording.transcription_postprocessed, messages: { event: { $ref: '#/components/messages/recordingTranscriptionPostprocessed' } } }
operations:
  receiveDemoScheduled: { action: receive, channel: { $ref: '#/channels/demoScheduled' } }
  receiveDemoRescheduled: { action: receive, channel: { $ref: '#/channels/demoRescheduled' } }
  receiveDemoHandovered: { action: receive, channel: { $ref: '#/channels/demoHandovered' } }
  receiveDemoCanceled: { action: receive, channel: { $ref: '#/channels/demoCanceled' } }
  receiveDemoStarted: { action: receive, channel: { $ref: '#/channels/demoStarted' } }
  receiveDemoEnded: { action: receive, channel: { $ref: '#/channels/demoEnded' } }
  receiveDemoCallNoteUpdated: { action: receive, channel: { $ref: '#/channels/demoCallNoteUpdated' } }
  receiveDemoEventResponseUpdated: { action: receive, channel: { $ref: '#/channels/demoEventResponseUpdated' } }
  receiveRecordingUploaded: { action: receive, channel: { $ref: '#/channels/recordingUploaded' } }
  receiveRecordingTranscriptionPostprocessed: { action: receive, channel: { $ref: '#/channels/recordingTranscriptionPostprocessed' } }
components:
  messages:
    demoScheduled: { name: demo.scheduled, title: Demo scheduled, payload: { $ref: 'openapi/demodesk-v2-openapi.yml#/components/schemas/webhook-demo-scheduled-payload' } }
    demoRescheduled: { name: demo.rescheduled, title: Demo rescheduled, payload: { $ref: 'openapi/demodesk-v2-openapi.yml#/components/schemas/webhook-demo-rescheduled-payload' } }
    demoHandovered: { name: demo.handovered, title: Demo handovered, payload: { $ref: 'openapi/demodesk-v2-openapi.yml#/components/schemas/webhook-demo-handovered-payload' } }
    demoCanceled: { name: demo.canceled, title: Demo canceled, payload: { $ref: 'openapi/demodesk-v2-openapi.yml#/components/schemas/webhook-demo-canceled-payload' } }
    demoStarted: { name: demo.started, title: Demo started, payload: { $ref: 'openapi/demodesk-v2-openapi.yml#/components/schemas/webhook-demo-started-payload' } }
    demoEnded: { name: demo.ended, title: Demo ended, payload: { $ref: 'openapi/demodesk-v2-openapi.yml#/components/schemas/webhook-demo-ended-payload' } }
    demoCallNoteUpdated: { name: demo.call_note_updated, title: Demo call note updated, payload: { $ref: 'openapi/demodesk-v2-openapi.yml#/components/schemas/webhook-demo-call-note-updated-payload' } }
    demoEventResponseUpdated: { name: demo.event_response_updated, title: Demo event response updated, payload: { $ref: 'openapi/demodesk-v2-openapi.yml#/components/schemas/webhook-demo-event-response-updated-payload' } }
    recordingUploaded: { name: recording.uploaded, title: Recording uploaded, payload: { $ref: 'openapi/demodesk-v2-openapi.yml#/components/schemas/webhook-recording-uploaded-payload' } }
    recordingTranscriptionPostprocessed: { name: recording.transcription_postprocessed, title: Recording transcription postprocessed, payload: { $ref: 'openapi/demodesk-v2-openapi.yml#/components/schemas/webhook-recording-transcription-postprocessed-payload' } }

# --- API Evangelist provenance -------------------------------------------
x-superseded-by:
  reason: >-
    Provider publishes this event surface themselves in as-published OpenAPI; this document was authored by API Evangelist before that source was harvested.
  published_spec: all/demodesk/openapi/_original/demodesk-v2-openapi.yml
  published_event_object: webhooks
  published_events: 10
  status: superseded
  reviewed: '2026-07-31'

Work with this as data

Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/demodesk-webhooks-asyncapi"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.