Zoom

Create Zoom Meeting

Schedules a Zoom meeting and returns the join link.

Unverified

Add this first. This tool needs an access token, so add Get Zoom Access Token to the same bot. The bot calls it first and passes the token in.

What the model is told

Create a scheduled Zoom meeting. Get a Zoom access token first if you do not have one. Confirm the topic and start time with the customer before creating it. Tell the customer the join_url and the meeting ID. Never share start_url, which is the host link, with the customer.

Request

POSThttps://api.zoom.us/v2/users/YOUR_ZOOM_HOST_EMAIL/meetings

Headers

  • Content-Typeapplication/json
  • AuthorizationBearer {{accessToken}}

Body

{
  "topic": "{{topic}}",
  "type": 2,
  "start_time": "{{startTime}}",
  "timezone": "{{timezone}}",
  "duration": 30,
  "agenda": "{{agenda}}"
}

Parameters

  • topic stringThe meeting title.
  • startTime stringStart time as yyyy-MM-ddTHH:mm:ss in the given time zone, or with a trailing Z for UTC.
  • timezone stringIANA time zone for the start time.
  • agenda stringA short description of what the meeting is for.
  • accessToken stringThe access_token value returned by the token tool. Reuse it for the rest of the conversation.

Engage payload

{
  "source": "VOICE_AI",
  "tool": {
    "id": "ef6b0f4d-2987-414e-b458-08c3c1add870",
    "type": "HTTP_REQUEST",
    "label": "Create Zoom Meeting",
    "name": "create_zoom_meeting",
    "customName": false,
    "description": "Create a scheduled Zoom meeting. Get a Zoom access token first if you do not have one. Confirm the topic and start time with the customer before creating it. Tell the customer the join_url and the meeting ID. Never share start_url, which is the host link, with the customer.",
    "parameters": [
      {
        "name": "topic",
        "type": "string",
        "description": "The meeting title."
      },
      {
        "name": "startTime",
        "type": "string",
        "description": "Start time as yyyy-MM-ddTHH:mm:ss in the given time zone, or with a trailing Z for UTC."
      },
      {
        "name": "timezone",
        "type": "string",
        "description": "IANA time zone for the start time."
      },
      {
        "name": "agenda",
        "type": "string",
        "description": "A short description of what the meeting is for."
      },
      {
        "name": "accessToken",
        "type": "string",
        "description": "The access_token value returned by the token tool. Reuse it for the rest of the conversation."
      }
    ],
    "config": {
      "endpoint": {
        "method": "POST",
        "url": "https://api.zoom.us/v2/users/YOUR_ZOOM_HOST_EMAIL/meetings"
      },
      "headers": [
        {
          "name": "Content-Type",
          "value": "application/json"
        },
        {
          "name": "Authorization",
          "value": "Bearer {{accessToken}}"
        }
      ],
      "body": "{\n  \"topic\": \"{{topic}}\",\n  \"type\": 2,\n  \"start_time\": \"{{startTime}}\",\n  \"timezone\": \"{{timezone}}\",\n  \"duration\": 30,\n  \"agenda\": \"{{agenda}}\"\n}",
      "timeout": null
    }
  }
}

IDs are regenerated on every copy.