# Zoom

> Schedule and manage Zoom meetings, registrants, and recordings.

App · Video Conferencing · 5 actions · 1 trigger. Web page: https://docs.lodol.com/docs/integrations/zoom

## Triggers

Start a workflow when something happens in Zoom. See [how triggers work](https://docs.lodol.com/docs/concepts/triggers.md).

### Zoom New Meeting

Triggers when a new meeting is scheduled in Zoom.

**Filters**: Narrow which events start a run.

- `user_id`

**Event fields**: What a run starts with. Later steps read each field with an @ reference.

- `trigger_event` (object)

## Actions

### Add registrant to a Zoom meeting

Register a participant for a Zoom meeting. The meeting must have registration enabled.

**Inputs**

- Meeting ID (`meeting_id`, text, required): The Zoom meeting ID to register the person for.
- Email (`email`, text, required): Registrant email address.
- First name (`first_name`, text, required): Registrant first name.
- Last name (`last_name`, text): Optional registrant last name.

**Outputs**

- `registrant` (object): Registrant details.

**Example output**

```json
{
  "registrant": {
    "id": "abc123XYZ",
    "join_url": "https://zoom.us/w/89012345678?tk=example",
    "registrant_id": "abc123XYZ"
  }
}
```

### Create a Zoom meeting

Schedule a new Zoom meeting for a host.

**Inputs**

- Host (`user_id`, text, required): The Zoom user who will host the meeting. Use their Zoom login email, or 'me' for the account that owns the connection.
- Topic (`topic`, text, required): The meeting topic or title.
- Meeting type (`meeting_type`, text): Whether the meeting starts now or at a scheduled date and time. Defaults to scheduled. One of: `2` (Scheduled (starts at a set date and time)), `1` (Instant (starts right now)). Default: `2`.
- Start time (`start_time`, date and time): When a scheduled meeting should start. Pick a date and time (stored in UTC).
- Duration (minutes) (`duration_minutes`, number): How long the meeting is expected to run, in minutes. From 1 to 1440.
- Timezone (`timezone`, text): Optional timezone for the start time (e.g., America/Los_Angeles). Leave blank to use UTC.
- Passcode (`password`, text): Optional passcode required to join the meeting.
- Agenda (`agenda`, text): Optional agenda or description for the meeting.
- Host video on (`host_video`, true/false): Start the meeting with the host's video turned on.
- Participant video on (`participant_video`, true/false): Start the meeting with participants' video turned on.
- Allow join before host (`join_before_host`, true/false): Let participants join before the host arrives.
- Mute on entry (`mute_upon_entry`, true/false): Automatically mute participants as they join.
- Enable waiting room (`waiting_room`, true/false): Hold participants in a waiting room until admitted.
- Registration (`approval_type`, text): Whether attendees must register, and how they're approved. Registration must be on before you can add registrants. One of: `2` (No registration required), `0` (Automatically approve registrants), `1` (Manually approve registrants).
- Automatic recording (`auto_recording`, text): Whether and where to record the meeting automatically. One of: `none` (Do not record automatically), `local` (Record to the host's computer), `cloud` (Record to the Zoom cloud).

**Outputs**

- `meeting` (object): The created Zoom meeting.

**Example output**

```json
{
  "meeting": {
    "duration": 30,
    "id": 89012345678,
    "join_url": "https://zoom.us/j/89012345678",
    "start_time": "2026-08-25T14:00:00Z",
    "start_url": "https://zoom.us/s/89012345678?zak=example",
    "topic": "Weekly team sync"
  }
}
```

### Find a Zoom meeting

Look up the details of a Zoom meeting by its ID.

**Inputs**

- Meeting ID (`meeting_id`, text, required): The ID of the Zoom meeting to look up.

**Outputs**

- `meeting` (object): Meeting details.

**Example output**

```json
{
  "meeting": {
    "id": 89012345678,
    "join_url": "https://zoom.us/j/89012345678",
    "start_time": "2026-08-25T14:00:00Z",
    "status": "waiting",
    "topic": "Weekly team sync",
    "uuid": "abcdEFGH12345=="
  }
}
```

### Find Zoom meeting recordings

Get the cloud recordings for a meeting, including their download links.

**Inputs**

- Meeting ID or UUID (`meeting_id`, text, required): The meeting whose recordings you want. Accepts the numeric meeting ID or the meeting instance UUID.

**Outputs**

- `recordings` (object): The meeting's recording details.

**Example output**

```json
{
  "recordings": {
    "id": 89012345678,
    "recording_files": [
      {
        "download_url": "https://zoom.us/rec/download/example",
        "file_type": "MP4",
        "id": "rec-1",
        "recording_type": "shared_screen_with_speaker_view"
      }
    ],
    "total_size": 20480,
    "uuid": "abcdEFGH12345=="
  }
}
```

### Update a Zoom meeting

Change the details of an existing Zoom meeting.

**Inputs**

- Meeting ID (`meeting_id`, text, required): The ID of the Zoom meeting to update.
- Topic (`topic`, text): A new topic or title for the meeting.
- Start time (`start_time`, date and time): A new date and time for the meeting (stored in UTC).
- Duration (minutes) (`duration_minutes`, number): A new meeting length, in minutes. From 1 to 1440.
- Timezone (`timezone`, text): A new timezone for the start time (e.g., UTC).
- Agenda (`agenda`, text): A new agenda or description for the meeting.
- Host video on (`host_video`, true/false): Start the meeting with the host's video turned on.
- Participant video on (`participant_video`, true/false): Start the meeting with participants' video turned on.
- Allow join before host (`join_before_host`, true/false): Let participants join before the host arrives.
- Mute on entry (`mute_upon_entry`, true/false): Automatically mute participants as they join.
- Enable waiting room (`waiting_room`, true/false): Hold participants in a waiting room until admitted.
- Automatic recording (`auto_recording`, text): Whether and where to record the meeting automatically. One of: `none` (Do not record automatically), `local` (Record to the host's computer), `cloud` (Record to the Zoom cloud).

**Outputs**

- `meeting` (object)

**Example output**

```json
{
  "meeting": {
    "id": "89012345678",
    "updated": true
  }
}
```
