Callback Notifications BETA

Required plan: Emerging

Description #

Once a Meeting Agent has been provisioned you will be able to receive notifications relating to it. These notifications will be sent as HTTP POST requests to the URI specified when the Meeting Agent was created

Requesting callbacks #

To register for callbacks, populate the subscriptions field when either provisioning a Meeting Agent for a calendar event or when scheduling a Meeting Agent directly.

Example callbacks #

meeting_agent_activated #

This notification is fired when a Meeting Agent is preparing to join the meeting.

POST /notification HTTP/1.1
Host: example.com
Content-Type: application/json; charset=utf-8
Cronofy-HMAC-SHA256: {Base64(HmacSHA256(body_bytes, CLIENT_SECRET))}

{
  "notification": {
    "type": "event_subscription",
    "interactions": [
      {
        "type": "meeting_agent_activated"
      }
    ]
  },
  "event": {
    "event_id": "qTtZdczOccgaPncGJaCiLg",
    "summary": "Meeting agent enhanced",
    "start": "2026-04-04T15:30:00Z",
    "end": "2026-04-04T17:00:00Z",
    "tzid": "Europe/Berlin",
    "conferencing": {
      "provider_name": "zoom",
      "join_url": "https://zoom.us/00001111-222"
    },
    "meeting_agent": {
      "profile_id": "cronofy"
    }
  },
  "meeting_agent": {
    "sub": "agt_692702a100ccd07000000000",
    "state": "created",
    "resources": [
      {
        "category": "cronofy",
        "type": "dashboard",
        "url": "https://..."
      }
    ]
  }
}

meeting_agent_complete #

Meeting Agent resource download for how to pull a copy of resources into your application as desired.

POST /notification HTTP/1.1
Host: example.com
Content-Type: application/json; charset=utf-8
Cronofy-HMAC-SHA256: {Base64(HmacSHA256(body_bytes, CLIENT_SECRET))}

{
  "notification": {
    "type": "event_subscription",
    "interactions": [
      {
        "type": "meeting_agent_complete"
      }
    ]
  },
  "event": {
    "event_id": "qTtZdczOccgaPncGJaCiLg",
    "summary": "Meeting agent enhanced",
    "start": "2026-04-04T15:30:00Z",
    "end": "2026-04-04T17:00:00Z",
    "tzid": "Europe/Berlin",
    "conferencing": {
      "provider_name": "zoom",
      "join_url": "https://zoom.us/00001111-222"
    },
    "meeting_agent": {
      "profile_id": "cronofy"
    }
  },
  "meeting_agent": {
    "sub": "agt_692702a100ccd07000000000",
    "state": "complete",
    "details": {
      "recording": {
        "duration_seconds": 1620
      }
    },
    "resources": [
      {
        "category": "cronofy",
        "type": "dashboard",
        "url": "https://..."
      },
      {
        "category": "transcript",
        "type": "cronofy",
        "url": "https://..."
      },
      {
        "category": "audio",
        "type": "voice",
        "url": "https://..."
      },
      {
        "category": "video",
        "type": "conference",
        "url": "https://..."
      }
    ]
  }
}

meeting_agent_failed #

The meeting_agent_failed callback will include one of a number of subtypes that indicate why the error occurred.

The subtype value can be one of the following list. This list will be expanded over time and consumers should accept other values as unknown errors.

  • meeting_agent_activation_failed - indicates the Meeting Agent failed to start.
  • meeting_agent_rejected - The Meeting Agent was rejected from the call due to it either not being accepted into the meeting, or because rights to record the call were not granted or could not be requested. For Zoom meetings, the host must have Record to computer files and Who can request host permission to record? -> External meeting participants enabled in their Zoom profile Recording settings.
  • join_timeout - The Meeting Agent was never accepted into the call from the waiting room.
  • access_denied - The Meeting Agent was not allowed to begin the join process.
  • meeting_not_found - The conference call could not be found. This typically means the join_url was not valid.
  • internal_error - A networking or other internal error caused the Meeting Agent to fail
  • meeting_agents_disabled - The Meeting Agents feature is disabled or unavailable for your application
  • no_meeting_authorization - We were not able to get a Zoom authorization for the meeting – please see our Zoom Authorization Flow documentation.
POST /notification HTTP/1.1
Host: example.com
Content-Type: application/json; charset=utf-8
Cronofy-HMAC-SHA256: {Base64(HmacSHA256(body_bytes, CLIENT_SECRET))}

{
  "notification": {
    "type": "event_subscription",
    "interactions": [
      {
        "type": "meeting_agent_failed",
        "subtype": "meeting_agent_rejected"
      }
    ]
  },
  "event": {
    "event_id": "qTtZdczOccgaPncGJaCiLg",
    "summary": "Meeting agent enhanced",
    "start": "2026-04-04T15:30:00Z",
    "end": "2026-04-04T17:00:00Z",
    "tzid": "Europe/Berlin",
    "conferencing": {
      "provider_name": "zoom",
      "join_url": "https://zoom.us/00001111-222"
    },
    "meeting_agent": {
      "profile_id": "cronofy"
    }
  },
  "meeting_agent": {
    "sub": "agt_692702a100ccd07000000000",
    "state": "complete",
    "resources": [
      {
        "category": "cronofy",
        "type": "dashboard",
        "url": "https://..."
      }
    ]
  }
}