Provisioning a Meeting Agent ALPHA

Required plan: Emerging

When creating or updating an event add a meeting_agent property as specified below to request a Meeting Agent join the meeting.

In addition, register to receive webhooks for meeting_agent_complete and meeting_agent_failed interactions to react to key events in the Meeting Agent’s lifecycle.

Example Request #

POST /v1/calendars/cal_n23kjnwrw2_jsdfjksn234/events HTTP/1.1
Host: {data_center_url}
Authorization: Bearer {ACCESS_TOKEN}
Content-Type: application/json; charset=utf-8

{
  "event_id": "qTtZdczOccgaPncGJaCiLg",
  "summary": "Meeting agent enhanced",
  "start": "2025-12-07T15:30:00Z",
  "end": "2025-12-07T17:00:00Z",
  "tzid": "Europe/Berlin",
  "conferencing": {
    "profile_id": "default"
  },
  "meeting_agent": {
    "profile_id": "cronofy"
  },
  "subscriptions": [
    {
      "type": "webhook",
      "uri": "https://example.com/notification",
      "interactions": [
        { "type": "meeting_agent_complete" },
        { "type": "meeting_agent_failed" }
      ]
    }
  ]
}

Parameters #

data_center_url required

The URL for the data center you want to communicate with. Possible choices are:

  • api-au.cronofy.com - πŸ‡¦πŸ‡Ί Australia
  • api-ca.cronofy.com - πŸ‡¨πŸ‡¦ Canada
  • api-de.cronofy.com - πŸ‡©πŸ‡ͺ Germany
  • api-sg.cronofy.com - πŸ‡ΈπŸ‡¬ Singapore
  • api-uk.cronofy.com - πŸ‡¬πŸ‡§ United Kingdom
  • api.cronofy.com - πŸ‡ΊπŸ‡Έ United States

Find out more about Cronofy's data centers.

meeting_agent.profile_id required  #

A String value representing the type of Meeting Agent to provision. One of:

  • cronofy to provision a Cronofy Meeting Agent
  • none to de-provision a previously provisioned Meeting Agent if necessary

If the meeting_agent parameter is omitted entirely then any existing Meeting Agent will be left untouched.

subscriptions optional  #

Object containing an array of subscriptions.

subscriptions[].type optional  #

Only one value of webhook is supported.

subscriptions[].uri optional  #

The URI within your application you want Cronofy to send notifications to when the interaction is triggered. Must be an externally accessible HTTP or HTTPS URI.

subscriptions[].interactions optional  #

An array of interactions that should trigger a call to the uri.

subscriptions[].interactions[].type optional  #

The type of interaction. Currently supported are:

  • meeting_agent_complete - sent when the Meeting Agent has successfully joined the meeting, captured data from it, and processed those into resources it has made available for download
  • meeting_agent_failed - sent when the Meeting Agent was unable to run successfully

Example callbacks #

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": "2025-12-07T15:30:00Z",
    "end": "2025-12-07T17: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://..."
      },
      {
        "category": "transcript",
        "type": "cronofy",
        "url": "https://..."
      },
      {
        "category": "audio",
        "type": "voice",
        "url": "https://..."
      },
      {
        "category": "video",
        "type": "conference",
        "url": "https://..."
      }
    ]
  }
}

meeting_agent_failed #

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_joining_meeting_failed"
      }
    ]
  },
  "event": {
    "event_id": "qTtZdczOccgaPncGJaCiLg",
    "summary": "Meeting agent enhanced",
    "start": "2025-12-07T15:30:00Z",
    "end": "2025-12-07T17: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://..."
      }
    ]
  }
}