---
title: Zoom
description: Create and manage Zoom meetings and recordings
---

import { BlockInfoCard } from "@/components/ui/block-info-card"

<BlockInfoCard 
  type="zoom"
  color="#2D8CFF"
/>

{/* MANUAL-CONTENT-START:intro */}
[Zoom](https://zoom.us/) is a leading cloud-based communications platform for video meetings, webinars, and online collaboration. It allows users and organizations to easily schedule, host, and manage meetings, providing tools for screen sharing, chat, recordings, and more.

With Zoom, you can:

- **Schedule and manage meetings**: Create instant or scheduled meetings, including recurring events
- **Configure meeting options**: Set meeting passwords, enable waiting rooms, and control participant video/audio
- **Send invitations and share details**: Retrieve meeting invitations and information for easy sharing
- **Get and update meeting data**: Access meeting details, modify existing meetings, and manage settings programmatically

In Sim, the Zoom integration empowers your agents to automate scheduling and meeting management. Use tool actions to:

- Programmatically create new meetings with custom settings
- List all meetings for a specific user (or yourself)
- Retrieve details or invitations for any meeting
- Update or delete existing meetings directly from your automations

To connect to Zoom, drop the Zoom block and click `Connect` to authenticate with your Zoom account. Once connected, you can use the Zoom tools to create, list, update, and delete Zoom meetings. At any given time, you can disconnect your Zoom account by clicking `Disconnect` in Settings > Integrations, and access to your Zoom account will be revoked immediatley.

These capabilities let you streamline remote collaboration, automate recurring video sessions, and manage your organization's Zoom environment all as part of your workflows.
{/* MANUAL-CONTENT-END */}


## Usage Instructions

Integrate Zoom into workflows. Create, list, update, and delete Zoom meetings. Get meeting details, invitations, recordings, and participants. Manage cloud recordings programmatically.



## Actions

### `zoom_create_meeting`

Create a new Zoom meeting

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `userId` | string | Yes | The user ID or email address \(e.g., "me", "user@example.com", or "AbcDefGHi"\). Use "me" for the authenticated user. |
| `topic` | string | Yes | Meeting topic \(e.g., "Weekly Team Standup" or "Project Review"\) |
| `type` | number | No | Meeting type: 1=instant, 2=scheduled, 3=recurring no fixed time, 8=recurring fixed time |
| `startTime` | string | No | Meeting start time in ISO 8601 format \(e.g., 2025-06-03T10:00:00Z\) |
| `duration` | number | No | Meeting duration in minutes \(e.g., 30, 60, 90\) |
| `timezone` | string | No | Timezone for the meeting \(e.g., America/Los_Angeles\) |
| `password` | string | No | Meeting password |
| `agenda` | string | No | Meeting agenda or description text |
| `hostVideo` | boolean | No | Start with host video on |
| `participantVideo` | boolean | No | Start with participant video on |
| `joinBeforeHost` | boolean | No | Allow participants to join before host |
| `muteUponEntry` | boolean | No | Mute participants upon entry |
| `waitingRoom` | boolean | No | Enable waiting room |
| `autoRecording` | string | No | Auto recording setting: local, cloud, or none |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `meeting` | object | The created meeting with all its properties |
|   ↳ `id` | number | Meeting ID |
|   ↳ `uuid` | string | Meeting UUID |
|   ↳ `host_id` | string | Host user ID |
|   ↳ `host_email` | string | Host email address |
|   ↳ `topic` | string | Meeting topic |
|   ↳ `type` | number | Meeting type: 1=instant, 2=scheduled, 3=recurring no fixed time, 8=recurring fixed time |
|   ↳ `status` | string | Meeting status \(e.g., waiting, started\) |
|   ↳ `start_time` | string | Start time in ISO 8601 format |
|   ↳ `duration` | number | Duration in minutes |
|   ↳ `timezone` | string | Timezone \(e.g., America/Los_Angeles\) |
|   ↳ `agenda` | string | Meeting agenda |
|   ↳ `created_at` | string | Creation timestamp in ISO 8601 format |
|   ↳ `start_url` | string | URL for host to start the meeting |
|   ↳ `join_url` | string | URL for participants to join the meeting |
|   ↳ `password` | string | Meeting password |
|   ↳ `h323_password` | string | H.323/SIP room system password |
|   ↳ `pstn_password` | string | PSTN password for phone dial-in |
|   ↳ `encrypted_password` | string | Encrypted password for joining |
|   ↳ `settings` | object | Meeting settings |
|     ↳ `host_video` | boolean | Start with host video on |
|     ↳ `participant_video` | boolean | Start with participant video on |
|     ↳ `join_before_host` | boolean | Allow participants to join before host |
|     ↳ `mute_upon_entry` | boolean | Mute participants upon entry |
|     ↳ `watermark` | boolean | Add watermark when viewing shared screen |
|     ↳ `audio` | string | Audio options: both, telephony, or voip |
|     ↳ `auto_recording` | string | Auto recording: local, cloud, or none |
|     ↳ `waiting_room` | boolean | Enable waiting room |
|     ↳ `meeting_authentication` | boolean | Require meeting authentication |
|     ↳ `approval_type` | number | Approval type: 0=auto, 1=manual, 2=none |
|   ↳ `recurrence` | object | Recurrence settings for recurring meetings |
|     ↳ `type` | number | Recurrence type: 1=daily, 2=weekly, 3=monthly |
|     ↳ `repeat_interval` | number | Interval between recurring meetings |
|     ↳ `weekly_days` | string | Days of week for weekly recurrence \(1-7, comma-separated\) |
|     ↳ `monthly_day` | number | Day of month for monthly recurrence |
|     ↳ `monthly_week` | number | Week of month for monthly recurrence |
|     ↳ `monthly_week_day` | number | Day of week for monthly recurrence |
|     ↳ `end_times` | number | Number of occurrences |
|     ↳ `end_date_time` | string | End date time in ISO 8601 format |
|   ↳ `occurrences` | array | Meeting occurrences for recurring meetings |
|     ↳ `occurrence_id` | string | Occurrence ID |
|     ↳ `start_time` | string | Start time in ISO 8601 format |
|     ↳ `duration` | number | Duration in minutes |
|     ↳ `status` | string | Occurrence status |

### `zoom_list_meetings`

List all meetings for a Zoom user

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `userId` | string | Yes | The user ID or email address \(e.g., "me", "user@example.com", or "AbcDefGHi"\). Use "me" for the authenticated user. |
| `type` | string | No | Meeting type filter: scheduled, live, upcoming, upcoming_meetings, or previous_meetings |
| `pageSize` | number | No | Number of records per page, 1-300 \(e.g., 30, 50, 100\) |
| `nextPageToken` | string | No | Token for pagination to get next page of results |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `meetings` | array | List of meetings |
|   ↳ `id` | number | Meeting ID |
|   ↳ `uuid` | string | Meeting UUID |
|   ↳ `host_id` | string | Host user ID |
|   ↳ `topic` | string | Meeting topic |
|   ↳ `type` | number | Meeting type |
|   ↳ `start_time` | string | Start time in ISO 8601 format |
|   ↳ `duration` | number | Duration in minutes |
|   ↳ `timezone` | string | Timezone |
|   ↳ `agenda` | string | Meeting agenda |
|   ↳ `created_at` | string | Creation timestamp |
|   ↳ `join_url` | string | URL for participants to join |
| `pageInfo` | object | Pagination information |
|   ↳ `pageCount` | number | Total number of pages |
|   ↳ `pageNumber` | number | Current page number |
|   ↳ `pageSize` | number | Number of records per page |
|   ↳ `totalRecords` | number | Total number of records |
|   ↳ `nextPageToken` | string | Token for next page of results |

### `zoom_get_meeting`

Get details of a specific Zoom meeting

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `meetingId` | string | Yes | The meeting ID \(e.g., "1234567890" or "85746065432"\) |
| `occurrenceId` | string | No | Occurrence ID for recurring meetings |
| `showPreviousOccurrences` | boolean | No | Show previous occurrences for recurring meetings |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `meeting` | object | The meeting details |
|   ↳ `id` | number | Meeting ID |
|   ↳ `uuid` | string | Meeting UUID |
|   ↳ `host_id` | string | Host user ID |
|   ↳ `host_email` | string | Host email address |
|   ↳ `topic` | string | Meeting topic |
|   ↳ `type` | number | Meeting type: 1=instant, 2=scheduled, 3=recurring no fixed time, 8=recurring fixed time |
|   ↳ `status` | string | Meeting status \(e.g., waiting, started\) |
|   ↳ `start_time` | string | Start time in ISO 8601 format |
|   ↳ `duration` | number | Duration in minutes |
|   ↳ `timezone` | string | Timezone \(e.g., America/Los_Angeles\) |
|   ↳ `agenda` | string | Meeting agenda |
|   ↳ `created_at` | string | Creation timestamp in ISO 8601 format |
|   ↳ `start_url` | string | URL for host to start the meeting |
|   ↳ `join_url` | string | URL for participants to join the meeting |
|   ↳ `password` | string | Meeting password |
|   ↳ `h323_password` | string | H.323/SIP room system password |
|   ↳ `pstn_password` | string | PSTN password for phone dial-in |
|   ↳ `encrypted_password` | string | Encrypted password for joining |
|   ↳ `settings` | object | Meeting settings |
|     ↳ `host_video` | boolean | Start with host video on |
|     ↳ `participant_video` | boolean | Start with participant video on |
|     ↳ `join_before_host` | boolean | Allow participants to join before host |
|     ↳ `mute_upon_entry` | boolean | Mute participants upon entry |
|     ↳ `watermark` | boolean | Add watermark when viewing shared screen |
|     ↳ `audio` | string | Audio options: both, telephony, or voip |
|     ↳ `auto_recording` | string | Auto recording: local, cloud, or none |
|     ↳ `waiting_room` | boolean | Enable waiting room |
|     ↳ `meeting_authentication` | boolean | Require meeting authentication |
|     ↳ `approval_type` | number | Approval type: 0=auto, 1=manual, 2=none |
|   ↳ `recurrence` | object | Recurrence settings for recurring meetings |
|     ↳ `type` | number | Recurrence type: 1=daily, 2=weekly, 3=monthly |
|     ↳ `repeat_interval` | number | Interval between recurring meetings |
|     ↳ `weekly_days` | string | Days of week for weekly recurrence \(1-7, comma-separated\) |
|     ↳ `monthly_day` | number | Day of month for monthly recurrence |
|     ↳ `monthly_week` | number | Week of month for monthly recurrence |
|     ↳ `monthly_week_day` | number | Day of week for monthly recurrence |
|     ↳ `end_times` | number | Number of occurrences |
|     ↳ `end_date_time` | string | End date time in ISO 8601 format |
|   ↳ `occurrences` | array | Meeting occurrences for recurring meetings |
|     ↳ `occurrence_id` | string | Occurrence ID |
|     ↳ `start_time` | string | Start time in ISO 8601 format |
|     ↳ `duration` | number | Duration in minutes |
|     ↳ `status` | string | Occurrence status |

### `zoom_update_meeting`

Update an existing Zoom meeting

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `meetingId` | string | Yes | The meeting ID to update \(e.g., "1234567890" or "85746065432"\) |
| `topic` | string | No | Meeting topic \(e.g., "Weekly Team Standup" or "Project Review"\) |
| `type` | number | No | Meeting type: 1=instant, 2=scheduled, 3=recurring no fixed time, 8=recurring fixed time |
| `startTime` | string | No | Meeting start time in ISO 8601 format \(e.g., 2025-06-03T10:00:00Z\) |
| `duration` | number | No | Meeting duration in minutes \(e.g., 30, 60, 90\) |
| `timezone` | string | No | Timezone for the meeting \(e.g., America/Los_Angeles\) |
| `password` | string | No | Meeting password |
| `agenda` | string | No | Meeting agenda or description text |
| `hostVideo` | boolean | No | Start with host video on |
| `participantVideo` | boolean | No | Start with participant video on |
| `joinBeforeHost` | boolean | No | Allow participants to join before host |
| `muteUponEntry` | boolean | No | Mute participants upon entry |
| `waitingRoom` | boolean | No | Enable waiting room |
| `autoRecording` | string | No | Auto recording setting: local, cloud, or none |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the meeting was updated successfully |

### `zoom_delete_meeting`

Delete or cancel a Zoom meeting

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `meetingId` | string | Yes | The meeting ID to delete \(e.g., "1234567890" or "85746065432"\) |
| `occurrenceId` | string | No | Occurrence ID for deleting a specific occurrence of a recurring meeting |
| `scheduleForReminder` | boolean | No | Send cancellation reminder email to registrants |
| `cancelMeetingReminder` | boolean | No | Send cancellation email to registrants and alternative hosts |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the meeting was deleted successfully |

### `zoom_get_meeting_invitation`

Get the meeting invitation text for a Zoom meeting

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `meetingId` | string | Yes | The meeting ID \(e.g., "1234567890" or "85746065432"\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `invitation` | string | The meeting invitation text |

### `zoom_list_recordings`

List all cloud recordings for a Zoom user

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `userId` | string | Yes | The user ID or email address \(e.g., "me", "user@example.com", or "AbcDefGHi"\). Use "me" for the authenticated user. |
| `from` | string | No | Start date in yyyy-mm-dd format \(within last 6 months\) |
| `to` | string | No | End date in yyyy-mm-dd format |
| `pageSize` | number | No | Number of records per page, 1-300 \(e.g., 30, 50, 100\) |
| `nextPageToken` | string | No | Token for pagination to get next page of results |
| `trash` | boolean | No | Set to true to list recordings from trash |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `recordings` | array | List of recordings |
|   ↳ `uuid` | string | Meeting UUID |
|   ↳ `id` | number | Meeting ID |
|   ↳ `account_id` | string | Account ID |
|   ↳ `host_id` | string | Host user ID |
|   ↳ `topic` | string | Meeting topic |
|   ↳ `type` | number | Meeting type |
|   ↳ `start_time` | string | Meeting start time |
|   ↳ `duration` | number | Meeting duration in minutes |
|   ↳ `total_size` | number | Total size of all recordings in bytes |
|   ↳ `recording_count` | number | Number of recording files |
|   ↳ `share_url` | string | URL to share recordings |
|   ↳ `recording_files` | array | List of recording files |
|     ↳ `id` | string | Recording file ID |
|     ↳ `meeting_id` | string | Meeting ID associated with the recording |
|     ↳ `recording_start` | string | Start time of the recording |
|     ↳ `recording_end` | string | End time of the recording |
|     ↳ `file_type` | string | Type of recording file \(MP4, M4A, etc.\) |
|     ↳ `file_extension` | string | File extension |
|     ↳ `file_size` | number | File size in bytes |
|     ↳ `play_url` | string | URL to play the recording |
|     ↳ `download_url` | string | URL to download the recording |
|     ↳ `status` | string | Recording status |
|     ↳ `recording_type` | string | Type of recording \(shared_screen, audio_only, etc.\) |
| `pageInfo` | object | Pagination information |
|   ↳ `from` | string | Start date of query range |
|   ↳ `to` | string | End date of query range |
|   ↳ `pageSize` | number | Number of records per page |
|   ↳ `totalRecords` | number | Total number of records |
|   ↳ `nextPageToken` | string | Token for next page of results |

### `zoom_get_meeting_recordings`

Get all recordings for a specific Zoom meeting

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `meetingId` | string | Yes | The meeting ID or meeting UUID \(e.g., "1234567890" or "4444AAABBBccccc12345=="\) |
| `includeFolderItems` | boolean | No | Include items within a folder |
| `ttl` | number | No | Time to live for download URLs in seconds \(max 604800\) |
| `downloadFiles` | boolean | No | Download recording files into file outputs |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `recording` | object | The meeting recording with all files |
|   ↳ `uuid` | string | Meeting UUID |
|   ↳ `id` | number | Meeting ID |
|   ↳ `account_id` | string | Account ID |
|   ↳ `host_id` | string | Host user ID |
|   ↳ `topic` | string | Meeting topic |
|   ↳ `type` | number | Meeting type |
|   ↳ `start_time` | string | Meeting start time |
|   ↳ `duration` | number | Meeting duration in minutes |
|   ↳ `total_size` | number | Total size of all recordings in bytes |
|   ↳ `recording_count` | number | Number of recording files |
|   ↳ `share_url` | string | URL to share recordings |
|   ↳ `recording_files` | array | List of recording files |
|     ↳ `id` | string | Recording file ID |
|     ↳ `meeting_id` | string | Meeting ID associated with the recording |
|     ↳ `recording_start` | string | Start time of the recording |
|     ↳ `recording_end` | string | End time of the recording |
|     ↳ `file_type` | string | Type of recording file \(MP4, M4A, etc.\) |
|     ↳ `file_extension` | string | File extension |
|     ↳ `file_size` | number | File size in bytes |
|     ↳ `play_url` | string | URL to play the recording |
|     ↳ `download_url` | string | URL to download the recording |
|     ↳ `status` | string | Recording status |
|     ↳ `recording_type` | string | Type of recording \(shared_screen, audio_only, etc.\) |
| `files` | file[] | Downloaded recording files |

### `zoom_delete_recording`

Delete cloud recordings for a Zoom meeting

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `meetingId` | string | Yes | The meeting ID or meeting UUID \(e.g., "1234567890" or "4444AAABBBccccc12345=="\) |
| `recordingId` | string | No | Specific recording file ID to delete. If not provided, deletes all recordings. |
| `action` | string | No | Delete action: "trash" \(move to trash\) or "delete" \(permanently delete\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the recording was deleted successfully |

### `zoom_list_past_participants`

List participants from a past Zoom meeting

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `meetingId` | string | Yes | The past meeting ID or UUID \(e.g., "1234567890" or "4444AAABBBccccc12345=="\) |
| `pageSize` | number | No | Number of records per page, 1-300 \(e.g., 30, 50, 100\) |
| `nextPageToken` | string | No | Token for pagination to get next page of results |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `participants` | array | List of meeting participants |
|   ↳ `id` | string | Participant unique identifier |
|   ↳ `user_id` | string | User ID if registered Zoom user |
|   ↳ `name` | string | Participant display name |
|   ↳ `user_email` | string | Participant email address |
|   ↳ `join_time` | string | Time when participant joined \(ISO 8601\) |
|   ↳ `leave_time` | string | Time when participant left \(ISO 8601\) |
|   ↳ `duration` | number | Duration in seconds participant was in meeting |
|   ↳ `attentiveness_score` | string | Attentiveness score \(deprecated\) |
|   ↳ `failover` | boolean | Whether participant failed over to another data center |
|   ↳ `status` | string | Participant status |
| `pageInfo` | object | Pagination information |
|   ↳ `pageSize` | number | Number of records per page |
|   ↳ `totalRecords` | number | Total number of records |
|   ↳ `nextPageToken` | string | Token for next page of results |



## Triggers

A **Trigger** is a block that starts a workflow when an event happens in this service.

### Zoom Meeting Ended

Trigger workflow when a Zoom meeting ends

#### Configuration

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `secretToken` | string | Yes | Found in your Zoom app |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `event` | string | The webhook event type \(e.g., meeting.started\) |
| `event_ts` | number | Unix timestamp in milliseconds when the event occurred |
| `payload` | object | payload output from the tool |
|   ↳ `account_id` | string | Zoom account ID |
|   ↳ `object` | object | Meeting details \(shape aligns with Zoom Meetings webhook object fields\) |


---

### Zoom Meeting Started

Trigger workflow when a Zoom meeting starts

#### Configuration

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `secretToken` | string | Yes | Found in your Zoom app |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `event` | string | The webhook event type \(e.g., meeting.started\) |
| `event_ts` | number | Unix timestamp in milliseconds when the event occurred |
| `payload` | object | payload output from the tool |
|   ↳ `account_id` | string | Zoom account ID |
|   ↳ `object` | object | Meeting details \(shape aligns with Zoom Meetings webhook object fields\) |


---

### Zoom Participant Joined

Trigger workflow when a participant joins a Zoom meeting

#### Configuration

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `secretToken` | string | Yes | Found in your Zoom app |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `event` | string | The webhook event type \(e.g., meeting.participant_joined\) |
| `event_ts` | number | Unix timestamp in milliseconds when the event occurred |
| `payload` | object | payload output from the tool |
|   ↳ `account_id` | string | Zoom account ID |
|   ↳ `object` | object | Meeting and participant details |


---

### Zoom Participant Left

Trigger workflow when a participant leaves a Zoom meeting

#### Configuration

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `secretToken` | string | Yes | Found in your Zoom app |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `event` | string | The webhook event type \(e.g., meeting.participant_joined\) |
| `event_ts` | number | Unix timestamp in milliseconds when the event occurred |
| `payload` | object | payload output from the tool |
|   ↳ `account_id` | string | Zoom account ID |
|   ↳ `object` | object | Meeting and participant details |


---

### Zoom Recording Completed

Trigger workflow when a Zoom cloud recording is completed

#### Configuration

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `secretToken` | string | Yes | Found in your Zoom app |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `event` | string | The webhook event type \(recording.completed\) |
| `event_ts` | number | Unix timestamp in milliseconds when the event occurred |
| `payload` | object | payload output from the tool |
|   ↳ `account_id` | string | Zoom account ID |
|   ↳ `object` | object | Cloud recording details \(aligns with Zoom cloud recording objects\) |


---

### Zoom Webhook (All Events)

Trigger workflow on any Zoom webhook event

#### Configuration

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `secretToken` | string | Yes | Found in your Zoom app |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `event` | string | The webhook event type \(e.g., meeting.started, recording.completed\) |
| `event_ts` | number | Unix timestamp in milliseconds when the event occurred |
| `payload` | json | Complete webhook payload \(structure varies by event type\) |

