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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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