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/jsonAuthorizationBearer {{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.