# Whereby

> Create Whereby video meeting rooms from a workflow and share the link, then fetch recordings and transcriptions, brand each room, and pull usage insights for rooms, sessions and participants.

App · Video Conferencing · 20 actions. Web page: https://docs.lodol.com/docs/integrations/whereby

## Actions

### Create Whereby meeting

Create a video meeting room and get the link participants join with. The room opens straight away and stays available until an hour after its end time. Cloud recording, transcription and streaming need a paid Whereby Embedded plan.

**Inputs**

- End date (`end_date`, date and time, required): When the meeting ends. Must be now or later.
- Room mode (`room_mode`, text): Normal suits up to 4 participants; Group is for more. One of: `normal` (Normal (up to 4)), `group` (Group (5 or more)).
- Room name prefix (`room_name_prefix`, text): Starts the room name, e.g. 'support' gives /support-<random>. Lowercase letters, digits and hyphens, up to 39.
- Room name pattern (`room_name_pattern`, text): How the random part of the room name looks. One of: `uuid` (Long random id (default)), `human-short` (Short, easy-to-read code).
- Is locked (`is_locked`, true/false): Lock the room so only hosts can let people in. Guests knock and wait.
- Viewer mode (`viewer_mode`, true/false): Set the room up for broadcasting to viewers: locked, group mode, with host and viewer links returned.
- Fields (`fields`, list): Extra links to include. The host link makes whoever opens it a host, so share it carefully. One or more of: `hostRoomUrl` (Host room URL), `viewerRoomUrl` (Viewer room URL).
- Recording type (`recording_type`, text): How the meeting can be recorded. Leave empty for the organisation's setting. Cloud needs a paid plan. One of: `none` (No recording), `local` (In the browser), `cloud` (In the cloud (Whereby storage)).
- Recording start trigger (`recording_start_trigger`, text): When a cloud recording starts. Leave empty for the organisation's setting. One of: `none` (Started by hand in the meeting), `prompt` (Prompt the first person who can start it), `automatic` (Start when the first participant joins), `automatic-2nd-participant` (Start when the second participant joins).
- Live transcription start trigger (`live_transcription_start_trigger`, text): When live transcription starts. 'Started by hand' here means it is not available. Paid plans only. One of: `none` (Not available), `manual` (Host starts and stops it by hand), `automatic` (Start when the first participant joins), `automatic-2nd-participant` (Start when the second participant joins).
- Live transcription language (`live_transcription_language`, text): The spoken language to transcribe. Leave empty for the organisation's setting. One of: `ca` (Catalan), `zh` (Chinese), `zh-TW` (Chinese (Taiwan)), `cs` (Czech), `da` (Danish), `nl` (Dutch), `en` (English), `en-US` (English (US)), `en-GB` (English (UK)), `fi` (Finnish), and 23 more.
- Live captions (`live_captions`, true/false): Show live captions to every participant.
- Streaming URL (`streaming_url`, text): Stream the meeting live to this RTMP address, e.g. rtmp://a.rtmp.youtube.com/live2/<stream key>.
- Streaming start trigger (`streaming_start_trigger`, text): When the live stream starts. One of: `none` (Started by hand in the meeting), `prompt` (Prompt the host), `automatic` (Start when the first participant joins).

**Outputs**

- `endDate` (text): When the meeting ends, in UTC.
- `hostRoomUrl` (text): A link that makes whoever opens it a host. Only returned when requested; share it carefully.
- `meetingId` (text): The meeting's id, which Get and Delete meeting take.
- `roomName` (text): The room's name with a leading slash, e.g. /example-prefix-793e9ec1-c686-423d-9043-9b7a10c553fd. The room branding and Insights actions take it.
- `roomUrl` (text): The link participants open to join the meeting.
- `startDate` (text): When the meeting started, in UTC.
- `viewerRoomUrl` (text): A link that joins as a viewer without camera or microphone. Only returned when requested.

**Example output**

```json
{
  "endDate": "2026-09-21T17:42:49Z",
  "hostRoomUrl": null,
  "meetingId": "9cf691bf-f2d5-4420-bda9-ee8607bb558b",
  "roomName": "/example-prefix-793e9ec1-c686-423d-9043-9b7a10c553fd",
  "roomUrl": "https://subdomain.whereby.com/example-prefix-793e9ec1-c686-423d-9043-9b7a10c553fd",
  "startDate": "2026-09-21T16:42:49Z",
  "viewerRoomUrl": null
}
```

### Delete Whereby meeting

Delete a meeting. Everyone in the room is removed and the link stops working. Deleting one that is already gone succeeds.

**Inputs**

- Meeting ID (`meeting_id`, text, required): The meeting. Pick one from the list, or pass the meetingId from a Create or List meetings step.

**Outputs**

- `alreadyDeleted` (true/false): True if the meeting was already gone (Whereby answered HTTP 404) rather than deleted by this call.
- `deleted` (true/false): True once deleted.
- `meetingId` (text): The meeting that was deleted.

**Example output**

```json
{
  "deleted": true,
  "meetingId": "9cf691bf-f2d5-4420-bda9-ee8607bb558b"
}
```

### Delete Whereby recording

Permanently delete a recording. If it is already gone, Whereby answers HTTP 404 for the lookup and this still reports success, with alreadyDeleted set to true.

**Inputs**

- Recording ID (`recording_id`, text, required): The recording's id, from List recordings.

**Outputs**

- `alreadyDeleted` (true/false): True if the recording was already gone (Whereby answered HTTP 404) rather than deleted by this call.
- `deleted` (true/false): True once deleted.
- `recordingId` (text): The recording that was deleted.

**Example output**

```json
{
  "alreadyDeleted": false,
  "deleted": true,
  "recordingId": "a56f6ad7-37fe-4a37-9319-3174630ba57a"
}
```

### Delete Whereby transcription

Permanently delete a transcription. If it is already gone, Whereby answers HTTP 404 for the lookup and this still reports success, with alreadyDeleted set to true.

**Inputs**

- Transcription ID (`transcription_id`, text, required): The transcription's id, from List or Create transcription.

**Outputs**

- `alreadyDeleted` (true/false): True if the transcription was already gone (Whereby answered HTTP 404) rather than deleted by this call.
- `deleted` (true/false): True once deleted.
- `transcriptionId` (text): The transcription that was deleted.

**Example output**

```json
{
  "alreadyDeleted": false,
  "deleted": true,
  "transcriptionId": "b438fda0-83e2-4835-92f9-c845ee3d5ea7"
}
```

### Get Whereby meeting

Fetch one meeting's room link and times.

**Inputs**

- Meeting ID (`meeting_id`, text, required): The meeting. Pick one from the list, or pass the meetingId from a Create or List meetings step.
- Fields (`fields`, list): Extra links to include. The host link makes whoever opens it a host, so share it carefully. One or more of: `hostRoomUrl` (Host room URL), `viewerRoomUrl` (Viewer room URL).

**Outputs**

- `endDate` (text): When the meeting ends, in UTC.
- `hostRoomUrl` (text): A link that makes whoever opens it a host. Only returned when requested; share it carefully.
- `meetingId` (text): The meeting's id, which Get and Delete meeting take.
- `roomName` (text): The room's name with a leading slash, e.g. /example-prefix-793e9ec1-c686-423d-9043-9b7a10c553fd. The room branding and Insights actions take it.
- `roomUrl` (text): The link participants open to join the meeting.
- `startDate` (text): When the meeting started, in UTC.
- `viewerRoomUrl` (text): A link that joins as a viewer without camera or microphone. Only returned when requested.

**Example output**

```json
{
  "endDate": "2026-09-21T17:42:49Z",
  "hostRoomUrl": null,
  "meetingId": "9cf691bf-f2d5-4420-bda9-ee8607bb558b",
  "roomName": "/example-prefix-793e9ec1-c686-423d-9043-9b7a10c553fd",
  "roomUrl": "https://subdomain.whereby.com/example-prefix-793e9ec1-c686-423d-9043-9b7a10c553fd",
  "startDate": "2026-09-21T16:42:49Z",
  "viewerRoomUrl": null
}
```

### Get Whereby participant session details

One participant's browser, role and network quality samples (packet loss and bitrate) for a session.

**Inputs**

- Room session ID (`room_session_id`, text, required): The session's roomSessionId, from Get room session insights.
- Participant ID (`participant_id`, text, required): The participantId, from List session participants.

**Outputs**

- `count` (number): Number of entries.
- `entries` (list): The participant's session entries.

**Example output**

```json
{
  "count": 1,
  "entries": [
    {
      "displayName": "Alex",
      "events": [],
      "sampleRateMs": 1000,
      "samples": {
        "bitrateSend": [
          512
        ],
        "packetLossSend": [
          0
        ]
      },
      "timeStamp": "2026-09-21T16:45:00Z",
      "userAgent": "Mozilla/5.0",
      "userRole": "host"
    }
  ]
}
```

### Get Whereby recording

Fetch one recording's file name, size and times.

**Inputs**

- Recording ID (`recording_id`, text, required): The recording's id, from List recordings.

**Outputs**

- `endDate` (text): When the recording ended.
- `filename` (text): The recording's file name.
- `recordingId` (text): The recording's id.
- `roomSessionId` (text): The room session the recording was made in.
- `sizeInMegaBytes` (number): The file's size in megabytes.
- `startDate` (text): When the recording started.

**Example output**

```json
{
  "endDate": "2026-09-21T17:15:00Z",
  "filename": "example-prefix-2026-09-21.mp4",
  "recordingId": "a56f6ad7-37fe-4a37-9319-3174630ba57a",
  "roomSessionId": "e2f29530-0d97-4e4a-9f4b-5a5c0d8b2f1a",
  "sizeInMegaBytes": 100,
  "startDate": "2026-09-21T16:45:00Z"
}
```

### Get Whereby recording download link

Get a temporary link to download a recording stored by Whereby. Recordings saved to your own S3 bucket have no link.

**Inputs**

- Recording ID (`recording_id`, text, required): The recording's id, from List recordings.
- Valid for seconds (`valid_for_seconds`, number): How long the link works, in seconds. Default 3600, up to 43200. From 1 to 43200.

**Outputs**

- `accessLink` (text): A temporary link to download the file.
- `expires` (number): When the link expires, in epoch milliseconds.
- `expiresAt` (text): The same expiry as an ISO 8601 UTC time.

**Example output**

```json
{
  "accessLink": "https://storage.whereby.com/download/example",
  "expires": 1790000000000,
  "expiresAt": "2026-09-21T14:13:20Z"
}
```

### Get Whereby room insights

Usage totals per room: sessions, participant minutes, unique participants and ratings. Data can lag 10 to 15 minutes.

**Inputs**

- Room name (`room_name`, text): Filter by room name. Leave empty for every room.
- Room name match (`room_name_match`, text): How the room name filter matches. Default exact. One of: `exact` (Is exactly), `startsWith` (Starts with), `contains`.
- Created from (`created_from`, date and time): Only rooms created at or after this time.
- Created to (`created_to`, date and time): Only rooms created at or before this time.
- Sort by (`sort_by`, text): A field and direction, e.g. totalSessions:desc. Whereby does not list the sortable fields; the numeric fields in the results are the ones to try.
- Limit (`limit`, number): Results per page, 1 to 100. Default 10. From 1 to 100.
- Cursor (`cursor`, text): The cursor from the previous page, to get the next one.

**Outputs**

- `count` (number): Number of results on this page.
- `cursor` (text): Pass this as the cursor to get the next page; null on the last.
- `results` (list): Rooms with their totals.

**Example output**

```json
{
  "count": 1,
  "cursor": null,
  "results": [
    {
      "createdAt": "2026-09-21T16:42:49Z",
      "endAt": "2026-09-21T17:42:49Z",
      "firstSessionStartedAt": "2026-09-21T16:45:00Z",
      "lastSessionStartedAt": "2026-09-21T16:45:00Z",
      "rating": null,
      "roomName": "/example-prefix-793e9ec1-c686-423d-9043-9b7a10c553fd",
      "totalParticipantMinutes": 60,
      "totalRatings": null,
      "totalRecorderMinutes": 0,
      "totalSessions": 1,
      "totalStreamerMinutes": 0,
      "totalUniqueParticipants": 2,
      "totalUniqueRecorders": 0,
      "totalUniqueStreamers": 0
    }
  ]
}
```

### Get Whereby room session insights

Usage totals for each session held in a room, with the session ids the participant actions take.

**Inputs**

- Room name (`room_name`, text, required): The room: its roomName (e.g. /example-prefix-793e9ec1-...) or its room URL, both from a Create or Get meeting step.
- Room session ID (`room_session_id`, text): The session's roomSessionId, from Get room session insights.
- Sort by (`sort_by`, text): A field and direction, e.g. totalSessions:desc. Whereby does not list the sortable fields; the numeric fields in the results are the ones to try.
- Limit (`limit`, number): Results per page, 1 to 100. Default 10. From 1 to 100.
- Cursor (`cursor`, text): The cursor from the previous page, to get the next one.

**Outputs**

- `count` (number): Number of results on this page.
- `cursor` (text): Pass this as the cursor to get the next page; null on the last.
- `results` (list): Sessions with their totals.

**Example output**

```json
{
  "count": 1,
  "cursor": null,
  "results": [
    {
      "endedAt": "2026-09-21T17:15:00Z",
      "rating": null,
      "roomName": "/example-prefix-793e9ec1-c686-423d-9043-9b7a10c553fd",
      "roomSessionId": "e2f29530-0d97-4e4a-9f4b-5a5c0d8b2f1a",
      "startedAt": "2026-09-21T16:45:00Z",
      "totalParticipantMinutes": 60,
      "totalRatings": null,
      "totalRecorderMinutes": 0,
      "totalStreamerMinutes": 0,
      "totalUniqueParticipants": 2,
      "totalUniqueRecorders": 0,
      "totalUniqueStreamers": 0
    }
  ]
}
```

### Get Whereby transcription

Fetch one transcription, including whether it is ready.

**Inputs**

- Transcription ID (`transcription_id`, text, required): The transcription's id, from List or Create transcription.

**Outputs**

- `createdAt` (text): When the transcription was created.
- `durationInSeconds` (number): Length of the transcribed audio in seconds.
- `endDate` (text): When the transcribed session ended.
- `filename` (text): The transcription's file name.
- `roomName` (text): The room the session was held in.
- `roomSessionId` (text): The room session that was transcribed.
- `startDate` (text): When the transcribed session started.
- `state` (text): ready, in_progress or failed.
- `storageType` (text): WHEREBY_HOSTED or SELF_HOSTED.
- `transcriptionId` (text): The transcription's id.
- `type` (text): LIVE_TRANSCRIPTION or RECORDING_TRANSCRIPTION.

**Example output**

```json
{
  "createdAt": "2026-09-21T17:16:00Z",
  "durationInSeconds": 1800,
  "endDate": "2026-09-21T17:15:00Z",
  "filename": "example-prefix-2026-09-21.txt",
  "roomName": "/example-prefix-793e9ec1-c686-423d-9043-9b7a10c553fd",
  "roomSessionId": "e2f29530-0d97-4e4a-9f4b-5a5c0d8b2f1a",
  "startDate": "2026-09-21T16:45:00Z",
  "state": "ready",
  "storageType": "WHEREBY_HOSTED",
  "transcriptionId": "b438fda0-83e2-4835-92f9-c845ee3d5ea7",
  "type": "RECORDING_TRANSCRIPTION"
}
```

### Get Whereby transcription download link

Get a temporary link to download a finished transcription stored by Whereby.

**Inputs**

- Transcription ID (`transcription_id`, text, required): The transcription's id, from List or Create transcription.
- Valid for seconds (`valid_for_seconds`, number): How long the link works, in seconds. Default 3600, up to 43200. From 1 to 43200.

**Outputs**

- `accessLink` (text): A temporary link to download the file.
- `expires` (number): When the link expires, in epoch milliseconds.
- `expiresAt` (text): The same expiry as an ISO 8601 UTC time.

**Example output**

```json
{
  "accessLink": "https://storage.whereby.com/download/example",
  "expires": 1790000000000,
  "expiresAt": "2026-09-21T14:13:20Z"
}
```

### List Whereby meetings

List the account's meetings, a page at a time. Meetings are removed about an hour after they end.

**Inputs**

- Fields (`fields`, list): Extra links to include. The host link makes whoever opens it a host, so share it carefully. One or more of: `hostRoomUrl` (Host room URL), `viewerRoomUrl` (Viewer room URL).
- Limit (`limit`, number): Results per page, 1 to 100. Default 50. From 1 to 100.
- Cursor (`cursor`, text): The cursor from the previous page, to get the next one.

**Outputs**

- `count` (number): Number of results on this page.
- `cursor` (text): Pass this as the cursor to get the next page; null on the last.
- `results` (list): The meetings on this page.

**Example output**

```json
{
  "count": 1,
  "cursor": null,
  "results": [
    {
      "endDate": "2026-09-21T17:42:49Z",
      "hostRoomUrl": null,
      "meetingId": "9cf691bf-f2d5-4420-bda9-ee8607bb558b",
      "roomName": "/example-prefix-793e9ec1-c686-423d-9043-9b7a10c553fd",
      "roomUrl": "https://subdomain.whereby.com/example-prefix-793e9ec1-c686-423d-9043-9b7a10c553fd",
      "startDate": "2026-09-21T16:42:49Z",
      "viewerRoomUrl": null
    }
  ]
}
```

### List Whereby recordings

List cloud recordings, optionally for one room. Cloud recording is a paid-plan feature, so a free account lists none.

**Inputs**

- Room name (`room_name`, text): Only this room: its roomName or room URL. Leave empty for all.
- Sort by (`sort_by`, text): The order to return results in. One of: `startDate:asc` (startDate (oldest/smallest first)), `startDate:desc` (startDate (newest/largest first)), `roomName:asc` (roomName (oldest/smallest first)), `roomName:desc` (roomName (newest/largest first)), `duration:asc` (duration (oldest/smallest first)), `duration:desc` (duration (newest/largest first)), `sizeInMegaBytes:asc` (sizeInMegaBytes (oldest/smallest first)), `sizeInMegaBytes:desc` (sizeInMegaBytes (newest/largest first)).
- Limit (`limit`, number): Results per page, 1 to 100. Default 50. From 1 to 100.
- Cursor (`cursor`, text): The cursor from the previous page, to get the next one.

**Outputs**

- `count` (number): Number of results on this page.
- `cursor` (text): Pass this as the cursor to get the next page; null on the last.
- `results` (list): The recordings on this page.

**Example output**

```json
{
  "count": 1,
  "cursor": null,
  "results": [
    {
      "endDate": "2026-09-21T17:15:00Z",
      "filename": "example-prefix-2026-09-21.mp4",
      "recordingId": "a56f6ad7-37fe-4a37-9319-3174630ba57a",
      "roomSessionId": "e2f29530-0d97-4e4a-9f4b-5a5c0d8b2f1a",
      "sizeInMegaBytes": 100,
      "startDate": "2026-09-21T16:45:00Z"
    }
  ]
}
```

### List Whereby session participants

Who joined a session and when, with any rating they gave. Give a session id, an external id, or both.

**Inputs**

- Room session ID (`room_session_id`, text): The session's roomSessionId, from Get room session insights.
- External ID (`external_id`, text): The external id your app gave participants when they joined.
- Sort by (`sort_by`, text): The order to return results in. One of: `joinedAt:asc` (joinedAt (oldest/smallest first)), `joinedAt:desc` (joinedAt (newest/largest first)), `leftAt:asc` (leftAt (oldest/smallest first)), `leftAt:desc` (leftAt (newest/largest first)).
- Limit (`limit`, number): Results per page, 1 to 100. Default 10. From 1 to 100.
- Cursor (`cursor`, text): The cursor from the previous page, to get the next one.

**Outputs**

- `count` (number): Number of results on this page.
- `cursor` (text): Pass this as the cursor to get the next page; null on the last.
- `results` (list): Participants.

**Example output**

```json
{
  "count": 1,
  "cursor": null,
  "results": [
    {
      "comment": null,
      "deviceId": "d6c1c1f4-6c4f-4c9f-8f0e-1b3f2a7e9c10",
      "displayName": "Alex",
      "externalId": "customer-42",
      "joinedAt": "2026-09-21T16:45:00Z",
      "leftAt": "2026-09-21T17:15:00Z",
      "participantId": "/4b3bd908-2e0b-4c41-9d57-4e9a3a1d5c11",
      "rating": null,
      "roleName": "host",
      "roomSessionId": "e2f29530-0d97-4e4a-9f4b-5a5c0d8b2f1a",
      "tags": null,
      "userId": "u-123"
    }
  ]
}
```

### List Whereby transcriptions

List transcriptions, optionally for one room.

**Inputs**

- Room name (`room_name`, text): Only this room: its roomName or room URL. Leave empty for all.
- Sort by (`sort_by`, text): The order to return results in. One of: `startDate:asc` (startDate (oldest/smallest first)), `startDate:desc` (startDate (newest/largest first)), `roomName:asc` (roomName (oldest/smallest first)), `roomName:desc` (roomName (newest/largest first)), `durationInSeconds:asc` (durationInSeconds (oldest/smallest first)), `durationInSeconds:desc` (durationInSeconds (newest/largest first)).
- Limit (`limit`, number): Results per page, 1 to 100. Default 50. From 1 to 100.
- Cursor (`cursor`, text): The cursor from the previous page, to get the next one.

**Outputs**

- `count` (number): Number of results on this page.
- `cursor` (text): Pass this as the cursor to get the next page; null on the last.
- `results` (list): The transcriptions on this page.

**Example output**

```json
{
  "count": 1,
  "cursor": null,
  "results": [
    {
      "createdAt": "2026-09-21T17:16:00Z",
      "durationInSeconds": 1800,
      "endDate": "2026-09-21T17:15:00Z",
      "filename": "example-prefix-2026-09-21.txt",
      "roomName": "/example-prefix-793e9ec1-c686-423d-9043-9b7a10c553fd",
      "roomSessionId": "e2f29530-0d97-4e4a-9f4b-5a5c0d8b2f1a",
      "startDate": "2026-09-21T16:45:00Z",
      "state": "ready",
      "storageType": "WHEREBY_HOSTED",
      "transcriptionId": "b438fda0-83e2-4835-92f9-c845ee3d5ea7",
      "type": "RECORDING_TRANSCRIPTION"
    }
  ]
}
```

### Set Whereby room background

Set the background colour and image participants see in a room.

**Inputs**

- Room name (`room_name`, text, required): The room: its roomName (e.g. /example-prefix-793e9ec1-...) or its room URL, both from a Create or Get meeting step.
- Palette (`palette`, text): The background colour. One of: `default`, `grey`, `purple`, `burgund` (Burgundy).
- Theme (`theme`, text): The background image. One of: `default`, `mountains`, `characters`, `rocks`.

**Outputs**

- `palette` (text): The palette set, or null.
- `roomName` (text): The room, without slash.
- `theme` (text): The theme set, or null.
- `updated` (true/false): True once saved.

**Example output**

```json
{
  "palette": "purple",
  "roomName": "example-prefix-793e9ec1-c686-423d-9043-9b7a10c553fd",
  "theme": "mountains",
  "updated": true
}
```

### Set Whereby room colors

Brand a room with your own colours, or put it back on the organisation's. Colours are six-digit hex codes like #3E5CFF.

**Inputs**

- Room name (`room_name`, text, required): The room: its roomName (e.g. /example-prefix-793e9ec1-...) or its room URL, both from a Create or Get meeting step.
- Primary color (`primary_color`, text): Main brand colour, e.g. #3E5CFF.
- Secondary color (`secondary_color`, text): Secondary colour, e.g. #FFB400.
- Focus color (`focus_color`, text): Colour of focus outlines, e.g. #00A86B.
- Reset to defaults (`reset_to_defaults`, true/false): Use the organisation's colours instead. Leave the colour fields empty when ticked.

**Outputs**

- `colors` (object): The colours set.
- `roomName` (text): The room, without slash.
- `tokensPreset` (text): custom, or default after a reset.
- `updated` (true/false): True once saved.

**Example output**

```json
{
  "colors": {
    "primary": "#3E5CFF"
  },
  "roomName": "example-prefix-793e9ec1-c686-423d-9043-9b7a10c553fd",
  "tokensPreset": "custom",
  "updated": true
}
```

### Set Whereby waiting page background

Set the background of the page guests see while they knock to enter a locked room.

**Inputs**

- Room name (`room_name`, text, required): The room: its roomName (e.g. /example-prefix-793e9ec1-...) or its room URL, both from a Create or Get meeting step.
- Palette (`palette`, text): The background colour. One of: `default`, `grey`, `purple`, `burgund` (Burgundy).
- Theme (`theme`, text): The background image. One of: `default`, `mountains`, `characters`, `rocks`.

**Outputs**

- `palette` (text): The palette set, or null.
- `roomName` (text): The room, without slash.
- `theme` (text): The theme set, or null.
- `updated` (true/false): True once saved.

**Example output**

```json
{
  "palette": "purple",
  "roomName": "example-prefix-793e9ec1-c686-423d-9043-9b7a10c553fd",
  "theme": "mountains",
  "updated": true
}
```

### Transcribe Whereby recording

Start transcribing a recording. It runs in the background: check Get Whereby transcription until its state is ready. Paid plans only.

**Inputs**

- Recording ID (`recording_id`, text, required): The recording's id, from List recordings.

**Outputs**

- `recordingId` (text): The recording being transcribed.
- `transcriptionId` (text): The new transcription's id.

**Example output**

```json
{
  "recordingId": "a56f6ad7-37fe-4a37-9319-3174630ba57a",
  "transcriptionId": "b438fda0-83e2-4835-92f9-c845ee3d5ea7"
}
```
