Regal · AsyncAPI Specification

Regal Reporting Webhooks

Version 1.0

Regal Reporting Webhooks deliver 40+ event types covering agent activity, call lifecycle, recordings and transcripts, AI analysis, tasks, SMS, MMS, email, voicemail, contact lifecycle, scheduling, and custom tasks. Events are POSTed to a customer-configured endpoint. There are no automatic retries; events are dropped if the endpoint does not respond within 5 seconds. Endpoint or filter changes take up to 5 minutes to propagate due to caching.

View Spec View on GitHub Artificial IntelligenceAI AgentsVoice AIContact CenterOutbound CallingInbound CallingPhone AgentsSMSChatWebRTCConversation IntelligenceJourney OrchestrationBranded Caller IDCCaaSCPaaSSales DialerCustomer EngagementAsyncAPIEventsWebhooks

Channels

agent.activity.updated
task.created
task.canceled
task.reservation.accepted
task.reservation.created
call.placed
call.completed
call.ivr.triggered
call.wrapup
call.recording.available
call.transcript.available
call.analysis.available
sms.queued
sms.sent
sms.received
sms.failed
sms.undelivered
sms.conversation.completed
mms.sent
mms.received
email.sent
email.received
email.conversation.completed
voicemail.recording.available
voicemail.transcript.available
voicemail.completed
contact.created
contact.subscribed
contact.unsubscribed
contact.attribute.edited
contact.phone.created
contact.email.created
contact.experiment.assigned
scheduled.callback.requested
scheduled.reminder.created
custom.task.completed
contacted.after.hours
object.created
object.attribute.edited
cancel.all.automated.tasks

Messages

BaseEnvelope
BaseEnvelope
AgentActivityUpdated
AgentActivityUpdated
TaskCreated
TaskCreated
TaskCanceled
TaskCanceled
TaskReservationAccepted
TaskReservationAccepted
TaskReservationCreated
TaskReservationCreated
CallEvent
CallEvent
RecordingEvent
RecordingEvent
TranscriptEvent
TranscriptEvent
AnalysisEvent
AnalysisEvent
SmsEvent
SmsEvent
MmsEvent
MmsEvent
EmailEvent
EmailEvent
ContactEvent
ContactEvent
ScheduleEvent
ScheduleEvent
TaskEvent
TaskEvent
CustomObjectEvent
CustomObjectEvent

Servers

https
customer
Customer-hosted HTTPS endpoint registered in Settings > Integrations.

AsyncAPI Specification

Raw ↑
asyncapi: 3.0.0
info:
  title: Regal Reporting Webhooks
  version: '1.0'
  description: >-
    Regal Reporting Webhooks deliver 40+ event types covering agent activity,
    call lifecycle, recordings and transcripts, AI analysis, tasks, SMS, MMS,
    email, voicemail, contact lifecycle, scheduling, and custom tasks. Events
    are POSTed to a customer-configured endpoint. There are no automatic
    retries; events are dropped if the endpoint does not respond within 5
    seconds. Endpoint or filter changes take up to 5 minutes to propagate due
    to caching.
  contact:
    name: Regal Support
    email: support@regal.ai
    url: https://support.regal.ai
servers:
  customer:
    host: customer-configured-host
    protocol: https
    description: Customer-hosted HTTPS endpoint registered in Settings > Integrations.
defaultContentType: application/json
channels:
  agent.activity.updated:
    address: /
    messages:
      AgentActivityUpdated:
        $ref: '#/components/messages/AgentActivityUpdated'
  task.created:
    address: /
    messages:
      TaskCreated:
        $ref: '#/components/messages/TaskCreated'
  task.canceled:
    address: /
    messages:
      TaskCanceled:
        $ref: '#/components/messages/TaskCanceled'
  task.reservation.accepted:
    address: /
    messages:
      TaskReservationAccepted:
        $ref: '#/components/messages/TaskReservationAccepted'
  task.reservation.created:
    address: /
    messages:
      TaskReservationCreated:
        $ref: '#/components/messages/TaskReservationCreated'
  call.placed:
    address: /
    messages:
      CallPlaced:
        $ref: '#/components/messages/CallEvent'
  call.completed:
    address: /
    messages:
      CallCompleted:
        $ref: '#/components/messages/CallEvent'
  call.ivr.triggered:
    address: /
    messages:
      CallIvrTriggered:
        $ref: '#/components/messages/CallEvent'
  call.wrapup:
    address: /
    messages:
      CallWrapup:
        $ref: '#/components/messages/CallEvent'
  call.recording.available:
    address: /
    messages:
      CallRecordingAvailable:
        $ref: '#/components/messages/RecordingEvent'
  call.transcript.available:
    address: /
    messages:
      CallTranscriptAvailable:
        $ref: '#/components/messages/TranscriptEvent'
  call.analysis.available:
    address: /
    messages:
      CallAnalysisAvailable:
        $ref: '#/components/messages/AnalysisEvent'
  sms.queued:
    address: /
    messages:
      SmsQueued:
        $ref: '#/components/messages/SmsEvent'
  sms.sent:
    address: /
    messages:
      SmsSent:
        $ref: '#/components/messages/SmsEvent'
  sms.received:
    address: /
    messages:
      SmsReceived:
        $ref: '#/components/messages/SmsEvent'
  sms.failed:
    address: /
    messages:
      SmsFailed:
        $ref: '#/components/messages/SmsEvent'
  sms.undelivered:
    address: /
    messages:
      SmsUndelivered:
        $ref: '#/components/messages/SmsEvent'
  sms.conversation.completed:
    address: /
    messages:
      SmsConversationCompleted:
        $ref: '#/components/messages/SmsEvent'
  mms.sent:
    address: /
    messages:
      MmsSent:
        $ref: '#/components/messages/MmsEvent'
  mms.received:
    address: /
    messages:
      MmsReceived:
        $ref: '#/components/messages/MmsEvent'
  email.sent:
    address: /
    messages:
      EmailSent:
        $ref: '#/components/messages/EmailEvent'
  email.received:
    address: /
    messages:
      EmailReceived:
        $ref: '#/components/messages/EmailEvent'
  email.conversation.completed:
    address: /
    messages:
      EmailConversationCompleted:
        $ref: '#/components/messages/EmailEvent'
  voicemail.recording.available:
    address: /
    messages:
      VoicemailRecordingAvailable:
        $ref: '#/components/messages/RecordingEvent'
  voicemail.transcript.available:
    address: /
    messages:
      VoicemailTranscriptAvailable:
        $ref: '#/components/messages/TranscriptEvent'
  voicemail.completed:
    address: /
    messages:
      VoicemailCompleted:
        $ref: '#/components/messages/CallEvent'
  contact.created:
    address: /
    messages:
      ContactCreated:
        $ref: '#/components/messages/ContactEvent'
  contact.subscribed:
    address: /
    messages:
      ContactSubscribed:
        $ref: '#/components/messages/ContactEvent'
  contact.unsubscribed:
    address: /
    messages:
      ContactUnsubscribed:
        $ref: '#/components/messages/ContactEvent'
  contact.attribute.edited:
    address: /
    messages:
      ContactAttributeEdited:
        $ref: '#/components/messages/ContactEvent'
  contact.phone.created:
    address: /
    messages:
      ContactPhoneCreated:
        $ref: '#/components/messages/ContactEvent'
  contact.email.created:
    address: /
    messages:
      ContactEmailCreated:
        $ref: '#/components/messages/ContactEvent'
  contact.experiment.assigned:
    address: /
    messages:
      ContactExperimentAssigned:
        $ref: '#/components/messages/ContactEvent'
  scheduled.callback.requested:
    address: /
    messages:
      ScheduledCallbackRequested:
        $ref: '#/components/messages/ScheduleEvent'
  scheduled.reminder.created:
    address: /
    messages:
      ScheduledReminderCreated:
        $ref: '#/components/messages/ScheduleEvent'
  custom.task.completed:
    address: /
    messages:
      CustomTaskCompleted:
        $ref: '#/components/messages/TaskEvent'
  contacted.after.hours:
    address: /
    messages:
      ContactedAfterHours:
        $ref: '#/components/messages/CallEvent'
  object.created:
    address: /
    messages:
      ObjectCreated:
        $ref: '#/components/messages/CustomObjectEvent'
  object.attribute.edited:
    address: /
    messages:
      ObjectAttributeEdited:
        $ref: '#/components/messages/CustomObjectEvent'
  cancel.all.automated.tasks:
    address: /
    messages:
      CancelAllAutomatedTasks:
        $ref: '#/components/messages/TaskEvent'
operations:
  receiveAllWebhookEvents:
    action: receive
    channel:
      $ref: '#/channels/call.completed'
    summary: Receive all Regal reporting webhook events on a customer-hosted endpoint.
components:
  messages:
    BaseEnvelope:
      payload:
        $ref: '#/components/schemas/EventEnvelope'
    AgentActivityUpdated:
      payload:
        $ref: '#/components/schemas/AgentActivityPayload'
    TaskCreated:
      payload:
        $ref: '#/components/schemas/TaskPayload'
    TaskCanceled:
      payload:
        $ref: '#/components/schemas/TaskPayload'
    TaskReservationAccepted:
      payload:
        $ref: '#/components/schemas/TaskPayload'
    TaskReservationCreated:
      payload:
        $ref: '#/components/schemas/TaskPayload'
    CallEvent:
      payload:
        $ref: '#/components/schemas/CallPayload'
    RecordingEvent:
      payload:
        $ref: '#/components/schemas/RecordingPayload'
    TranscriptEvent:
      payload:
        $ref: '#/components/schemas/TranscriptPayload'
    AnalysisEvent:
      payload:
        $ref: '#/components/schemas/AnalysisPayload'
    SmsEvent:
      payload:
        $ref: '#/components/schemas/SmsPayload'
    MmsEvent:
      payload:
        $ref: '#/components/schemas/SmsPayload'
    EmailEvent:
      payload:
        $ref: '#/components/schemas/EmailPayload'
    ContactEvent:
      payload:
        $ref: '#/components/schemas/ContactPayload'
    ScheduleEvent:
      payload:
        $ref: '#/components/schemas/SchedulePayload'
    TaskEvent:
      payload:
        $ref: '#/components/schemas/TaskPayload'
    CustomObjectEvent:
      payload:
        $ref: '#/components/schemas/CustomObjectPayload'
  schemas:
    EventEnvelope:
      type: object
      required:
        - name
        - eventId
      properties:
        userId:
          type: string
        traits:
          type: object
          additionalProperties: true
        name:
          type: string
        eventId:
          type: string
        properties:
          type: object
          additionalProperties: true
        originalTimestamp:
          type: string
        eventSource:
          type: string
    AgentActivityPayload:
      allOf:
        - $ref: '#/components/schemas/EventEnvelope'
        - type: object
          properties:
            properties:
              type: object
              properties:
                agent_id:
                  type: string
                agent_email:
                  type: string
                agent_fullname:
                  type: string
                activity:
                  type: string
                timestamp:
                  type: string
    CallPayload:
      allOf:
        - $ref: '#/components/schemas/EventEnvelope'
        - type: object
          properties:
            properties:
              type: object
              properties:
                call_id:
                  type: string
                task_id:
                  type: string
                channel:
                  type: string
                direction:
                  type: string
                  enum:
                    - INBOUND
                    - OUTBOUND
                disposition:
                  type: string
                campaign_id:
                  type: string
                campaign_friendly_id:
                  type: string
                campaign_name:
                  type: string
                journey_uuid:
                  type: string
                journey_name:
                  type: string
                journey_friendly_id:
                  type: string
                started_at:
                  type: string
                ended_at:
                  type: string
                talk_time:
                  type: integer
                wrapup_time:
                  type: integer
                contact_phone:
                  type: string
                contact_email:
                  type: string
                agent_id:
                  type: string
                agent_email:
                  type: string
                notes:
                  type: string
                objections:
                  type: array
                  items:
                    type: string
    RecordingPayload:
      allOf:
        - $ref: '#/components/schemas/EventEnvelope'
        - type: object
          properties:
            properties:
              type: object
              properties:
                call_id:
                  type: string
                recording_url:
                  type: string
                  format: uri
                duration:
                  type: integer
    TranscriptPayload:
      allOf:
        - $ref: '#/components/schemas/EventEnvelope'
        - type: object
          properties:
            properties:
              type: object
              properties:
                call_id:
                  type: string
                transcript_url:
                  type: string
                  format: uri
                language:
                  type: string
    AnalysisPayload:
      allOf:
        - $ref: '#/components/schemas/EventEnvelope'
        - type: object
          properties:
            properties:
              type: object
              properties:
                call_id:
                  type: string
                analysis:
                  type: object
                  additionalProperties: true
    SmsPayload:
      allOf:
        - $ref: '#/components/schemas/EventEnvelope'
        - type: object
          properties:
            properties:
              type: object
              properties:
                message_id:
                  type: string
                content:
                  type: string
                media_url:
                  type: string
                  format: uri
                channel:
                  type: string
                direction:
                  type: string
                campaign_id:
                  type: string
                contact_phone:
                  type: string
    EmailPayload:
      allOf:
        - $ref: '#/components/schemas/EventEnvelope'
        - type: object
          properties:
            properties:
              type: object
              properties:
                message_id:
                  type: string
                subject:
                  type: string
                contact_email:
                  type: string
                direction:
                  type: string
    ContactPayload:
      allOf:
        - $ref: '#/components/schemas/EventEnvelope'
        - type: object
          properties:
            properties:
              type: object
              properties:
                contact_id:
                  type: string
                contact_phone:
                  type: string
                contact_email:
                  type: string
                attribute:
                  type: string
                value:
                  type: string
    SchedulePayload:
      allOf:
        - $ref: '#/components/schemas/EventEnvelope'
        - type: object
          properties:
            properties:
              type: object
              properties:
                contact_id:
                  type: string
                scheduled_for:
                  type: string
                callback_phone:
                  type: string
                reminder_channel:
                  type: string
    TaskPayload:
      allOf:
        - $ref: '#/components/schemas/EventEnvelope'
        - type: object
          properties:
            properties:
              type: object
              properties:
                task_id:
                  type: string
                type:
                  type: string
                disposition:
                  type: string
                agent_id:
                  type: string
    CustomObjectPayload:
      allOf:
        - $ref: '#/components/schemas/EventEnvelope'
        - type: object
          properties:
            properties:
              type: object
              properties:
                object_type:
                  type: string
                object_id:
                  type: string
                attribute:
                  type: string
                value:
                  type: string

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/regal-reporting-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.