<!-- BusyBot node reference — https://busybot.net/tools/cisco-webex/ -->

> Node: Cisco Webex (`cisco_webex`) · Action (binary) · v1
> Category: Communication · Credentials: Cisco Webex (`ciscoWebexApi`)
> Updated: 2026-08-16

# Cisco Webex

> Send messages, upload files, and manage meetings in Cisco Webex

## Overview

The Cisco Webex tool provides operations against the Webex REST API. It supports two resources: Message — create (with optional file attachment from binary data or a URL), delete, get, get many (with pagination) and update; and Meeting — create, delete, get, get many (with pagination) and update. Meetings support invitees, recurrence, registration requirements, and timezone-aware scheduling.

**Category:** Communication  
**Tool Name:** `cisco_webex`  
**Version:** 1

**Appearance:** Icon: `lucide-Video` | Color: `#00BCF2`

## Node Type

**Action (Binary)** — handles file/binary data operations

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | `Input` |
| Output | `Output`, `Error` |

## Credentials

This tool requires **Cisco Webex** credentials.
See the [Credentials Guide](https://busybot.net/credentials/cisco-webex-api/) for setup instructions.

### Resources

| Resource | Value |
|----------|-------|
| Meeting | `meeting` |
| Message | `message` |

### Operations

| Resource | Operation | Value | Description |
|----------|-----------|-------|-------------|
| Meeting | Create | `create` | Create a meeting |
| Meeting | Delete | `delete` | Delete a meeting |
| Meeting | Get | `get` | Get a meeting |
| Meeting | Get Many | `getAll` | Get many meetings |
| Meeting | Update | `update` | Update a meeting |
| Message | Create | `create` | Create a message |
| Message | Delete | `delete` | Delete a message |
| Message | Get | `get` | Get a message |
| Message | Get Many | `getAll` | Get many messages |
| Message | Update | `update` | Update a message |

### Parameters

#### Meeting: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Title | `string` | Yes | — | Meeting title. Maximum 128 characters. Supports expressions. |
| Start | `dateTime` | Yes | — | Date and time for the start of the meeting (ISO 8601). |
| End | `dateTime` | Yes | — | Date and time for the end of the meeting (ISO 8601). |
| Additional Fields | `collection` | No | `{}` | Optional meeting settings. |
| — Agenda | `string` | No | — | Meeting agenda. Max 1300 characters. |
| — Allow Any User To Be Co-Host | `boolean` | No | `false` | Whether any invited user may act as co-host. |
| — Allow Authenticated Devices | `boolean` | No | `false` | Whether authenticated devices may join. |
| — Allow First User To Be Co-Host | `boolean` | No | `false` | Whether the first user to join becomes co-host. |
| — Auto Accept Request | `boolean` | No | `false` | Whether meeting registration requests are accepted automatically. |
| — Enable Connect Audio Before Host | `boolean` | No | `false` | Whether attendees may connect audio before the host joins. |
| — Enabled Auto Record Meeting | `boolean` | No | `false` | Whether the meeting is recorded automatically. |
| — Enabled Join Before Host | `boolean` | No | `false` | Whether attendees may join before the host. |
| — Exclude Password | `boolean` | No | `false` | Whether the password is left out of the invitation email. |
| — Host Email | `string` | No | — | Email for the meeting host. Admin-level scope required. |
| — Integration Tags | `string` | No | — | External integration keys (e.g., Zendesk ticket ID, Jira ID). |
| — Invitees (JSON) | `json` | No | `[]` | JSON array of invitee objects: [{"email": "user@example.com", "displayName": "Name", "coHost": false}] |
| — Join Before Host Minutes | `options` | No | `0` | Minutes an attendee can join before the host. |
| | | | | Options: `0`, `5`, `10`, `15` |
| — Public Meeting | `boolean` | No | `false` | Whether the meeting is listed publicly on the Webex site. |
| — Recurrence | `string` | No | — | Meeting recurrence rule (RFC 2445 format). |
| — Required Registration Info | `multiOptions` | No | `[]` | Data required for meeting registration. |
| | | | | Options: `requireFirstName`, `requireLastName`, `requireEmail`, `requireJobTitle`, `requireCompanyName`, `requireAddress1`, `requireAddress2`, `requireCity`, `requireState`, `requireZipCode`, `requireCountryRegion`, `requireWorkPhone`, `requireFax` |
| — Reminder Time | `number` | No | `1` | Minutes before meeting for host email reminder. |
| — Send Email | `boolean` | No | `true` | Whether to send emails to host and invitees. |
| — Site URL | `string` | No | — | Webex site URL. If not set, the user's preferred site is used. |

#### Meeting: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Meeting ID | `string` | Yes | — | ID of the meeting to delete. Supports expressions. |
| Options | `collection` | No | `{}` | Optional cancellation settings. |
| — Host Email | `string` | No | — | Email of the meeting host (admin-level scope required). |
| — Send Email | `boolean` | No | `true` | Whether to send cancellation emails. |

#### Meeting: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Meeting ID | `string` | Yes | — | ID of the meeting to retrieve. Supports expressions. |
| Options | `collection` | No | `{}` | Optional lookup settings. |
| — Host Email | `string` | No | — | Email of the meeting host (admin-level scope required). |
| — Password | `string` | No | — | Meeting password for password-protected meetings. |
| — Send Email | `boolean` | No | `true` | Whether Webex sends email as part of the request. |

#### Meeting: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `50` | Max number of results to return. _(shown when Return All is `false`)_ |
| Filters | `collection` | No | `{}` | Narrow which meetings are returned. |
| — From | `dateTime` | No | — | Start date/time (inclusive) for meetings. |
| — To | `dateTime` | No | — | End date/time (inclusive) for meetings. |
| — Host Email | `string` | No | — | Return meetings hosted by this address (admin-level scope required). |
| — Integration Tag | `string` | No | — | Return meetings carrying this external integration key. |
| — Limit to Current Meetings | `boolean` | No | `true` | Whether to return only meetings that are current. |
| — Meeting Number | `string` | No | — | Return the meeting with this Webex meeting number. |
| — Meeting Type | `options` | No | `meetingSeries` | Which level of the meeting hierarchy to return. |
| | | | | Options: `meetingSeries`, `scheduledMeeting`, `meeting` |
| — Participant Email | `string` | No | — | Return meetings this participant is invited to. |
| — Site URL | `string` | No | — | Webex site URL to query. |
| — State | `options` | No | — | Return only meetings in this state. |
| | | | | Options: `active`, `ended`, `expired`, `inProgress`, `lobby`, `missed`, `ready`, `scheduled` |
| — Weblink | `string` | No | — | Return the meeting with this web link. |

#### Meeting: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Meeting ID | `string` | Yes | — | ID of the meeting to update. Supports expressions. |
| Update Fields | `collection` | No | `{}` | The meeting properties to change. Fields you leave out keep their current value. |
| — Agenda | `string` | No | — | Meeting agenda. Max 1300 characters. |
| — Allow Any User To Be Co-Host | `boolean` | No | `false` | Whether any invited user may act as co-host. |
| — Allow Authenticated Devices | `boolean` | No | `false` | Whether authenticated devices may join. |
| — Allow First User To Be Co-Host | `boolean` | No | `false` | Whether the first user to join becomes co-host. |
| — Enable Connect Audio Before Host | `boolean` | No | `false` | Whether attendees may connect audio before the host joins. |
| — Enabled Auto Record Meeting | `boolean` | No | `false` | Whether the meeting is recorded automatically. |
| — Enabled Join Before Host | `boolean` | No | `false` | Whether attendees may join before the host. |
| — End | `dateTime` | No | — | New end date and time for the meeting (ISO 8601). |
| — Exclude Password | `boolean` | No | `false` | Whether the password is left out of the invitation email. |
| — Host Email | `string` | No | — | Email for the meeting host. Admin-level scope required. |
| — Invitees (JSON) | `json` | No | `[]` | JSON array of invitee objects: [{"email": "user@example.com", "displayName": "Name", "coHost": false}] |
| — Join Before Host Minutes | `options` | No | `0` | Minutes an attendee can join before the host. |
| | | | | Options: `0`, `5`, `10`, `15` |
| — Password | `string` | No | — | New meeting password. |
| — Public Meeting | `boolean` | No | `false` | Whether the meeting is listed publicly on the Webex site. |
| — Recurrence | `string` | No | — | Meeting recurrence rule (RFC 2445 format). |
| — Required Registration Info | `multiOptions` | No | `[]` | Data required for meeting registration. |
| | | | | Options: `requireFirstName`, `requireLastName`, `requireEmail`, `requireJobTitle`, `requireCompanyName`, `requireAddress1`, `requireAddress2`, `requireCity`, `requireState`, `requireZipCode`, `requireCountryRegion`, `requireWorkPhone`, `requireFax` |
| — Reminder Time | `number` | No | `1` | Minutes before meeting for host email reminder. |
| — Send Email | `boolean` | No | `false` | Whether to send emails to host and invitees. |
| — Site URL | `string` | No | — | Webex site URL. If not set, the user's preferred site is used. |
| — Start | `dateTime` | No | — | New start date and time for the meeting (ISO 8601). |
| — Title | `string` | No | — | New meeting title. Maximum 128 characters. |

#### Message: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Destination | `options` | Yes | `room` | Whether to send the message to a room or a specific person. |
| | | | | Options: `room`, `person` |
| Room ID | `string` | Yes | — | The ID of the Webex room to send the message to. Find room IDs via the Webex API or by listing rooms. _(shown when Destination is `room`)_ |
| Specify Person By | `options` | Yes | `email` | How to identify the recipient. _(shown when Destination is `person`)_ |
| | | | | Options: `email`, `id` |
| Person ID | `string` | Yes | — | The ID of the person to send the message to. _(shown when Destination is `person` and Specify Person By is `id`)_ |
| Person Email | `string` | Yes | — | The email address of the person to send the message to. _(shown when Destination is `person` and Specify Person By is `email`)_ |
| Text | `string` | Yes | — | The message in plain text. Supports expressions. |
| Markdown | `string` | No | — | The message in Markdown format. When set, the text parameter provides alternate text for clients that do not support rich text. |
| File Location | `options` | No | `none` | How to attach a file to the message. |
| | | | | Options: `none` (no file attachment), `url` (attach a file by public URL), `binaryData` (attach a file from binary data on the input item) |
| File URL | `string` | No | — | Public URL of the file to attach. _(shown when File Location is `url`)_ |
| Binary Property | `string` | No | `data` | Name of the binary property on the input item containing the file to attach. Names are case-sensitive — see the upstream node's Binary Data panel for the exact names to use. _(shown when File Location is `binaryData`)_ |
| Adaptive Card Attachments (JSON) | `json` | No | `[]` | JSON array of adaptive card attachment objects. Each object should have "elements" (array of {type, text, ...}) and "actions" (array of {type, url/data, title, ...}). Types: textBlock, inputText for elements; openUrl, submit, execute for actions. |

#### Message: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Message ID | `string` | Yes | — | ID of the message to delete. Supports expressions. |

#### Message: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Message ID | `string` | Yes | — | ID of the message to retrieve. Supports expressions. |

#### Message: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Room ID | `string` | Yes | — | The ID of the room to list messages from. Supports expressions. |
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `50` | Max number of results to return. _(shown when Return All is `false`)_ |
| Filters | `collection` | No | `{}` | Narrow which messages are returned. |
| — Before | `dateTime` | No | — | List messages sent before this date and time. |
| — Before Message | `string` | No | — | List messages sent before this message ID. |
| — Parent Message ID | `string` | No | — | List messages with this parent ID (threaded messages). |
| — Mentioned Person | `string` | No | — | List messages mentioning this person ID. Use "me" for yourself. |

#### Message: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Message ID | `string` | Yes | — | ID of the message to update. Supports expressions. |
| Is Markdown | `boolean` | Yes | `false` | Whether the updated message uses Markdown. |
| Text | `string` | Yes | — | The updated message in plain text. _(shown when Is Markdown is `false`)_ |
| Markdown Text | `string` | Yes | — | The updated message in Markdown format. Max 7439 bytes. _(shown when Is Markdown is `true`)_ |

#### All Operations

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Max Concurrency | `number` | No | `10` | Maximum number of items to process concurrently. |

## Output Data

The Webex response is merged into the item JSON — the incoming fields pass through and binary data is forwarded. Single-record operations produce one output item per input item; the two **Get Many** operations **fan out to one output item per record**.

| Resource / Operation | Output |
|----------------------|--------|
| Meeting / `create` | The created meeting — `id`, `title`, `start`, `end`, `webLink`, `sipAddress`, `meetingNumber` and the rest of the meeting record |
| Meeting / `delete` | `success: true` |
| Meeting / `get` | The meeting record |
| Meeting / `getAll` | **One item per meeting.** When nothing matches, the input item passes through with `_noResults: true` |
| Meeting / `update` | The updated meeting record |
| Message / `create` | The created message — `id`, `roomId`, `personId`, `personEmail`, `text`, `created` and, when a file was attached, its `files` entry |
| Message / `delete` | `success: true` |
| Message / `get` | The message record |
| Message / `getAll` | **One item per message.** When nothing matches, the input item passes through with `_noResults: true` |
| Message / `update` | The updated message record |

Reference a field downstream by expression, e.g. `{{ $json.id }}`.

## Usage Examples

- Send a message to a Webex room
- Send a message with a file attachment to a person
- Create a scheduled Webex meeting with invitees
- List all messages in a Webex room
- Update a meeting time

## Example Configuration

Post a Markdown message to a room:

```json
{
  "type": "cisco_webex",
  "parameters": {
    "resource": "message",
    "operation": "create",
    "destination": "room",
    "roomId": "Y2lzY29zcGFyazovL3VzL1JPT00vYmJjZWIxYWQtNDNmMS0zYjU4LTkxNDctZjE0YmIwYzRkMTU2",
    "text": "Hello team!",
    "markdown": "**Hello** team!"
  }
}
```

Direct-message a person and attach a file by URL:

```json
{
  "type": "cisco_webex",
  "parameters": {
    "resource": "message",
    "operation": "create",
    "destination": "person",
    "specifyPersonBy": "email",
    "toPersonEmail": "user@example.com",
    "text": "Please review the attached document",
    "fileLocation": "url",
    "fileUrl": "https://example.com/document.pdf"
  }
}
```

Attach a file that an upstream node produced:

```json
{
  "type": "cisco_webex",
  "parameters": {
    "resource": "message",
    "operation": "create",
    "destination": "room",
    "roomId": "{{ $json.roomId }}",
    "text": "Here is today's report",
    "fileLocation": "binaryData",
    "binaryPropertyName": "data"
  }
}
```

Send an adaptive card. Each entry has `elements` and `actions`, which the node turns into a Webex card:

```json
{
  "type": "cisco_webex",
  "parameters": {
    "resource": "message",
    "operation": "create",
    "destination": "person",
    "specifyPersonBy": "email",
    "toPersonEmail": "manager@example.com",
    "text": "Weekly report attached",
    "attachments": [
      {
        "elements": [
          { "type": "textBlock", "text": "Weekly Report Summary", "weight": "Bolder", "size": "Medium" },
          { "type": "textBlock", "text": "Tasks completed: 15/20" }
        ],
        "actions": [
          { "type": "openUrl", "title": "View Full Report", "url": "https://reports.example.com/weekly" }
        ]
      }
    ]
  }
}
```

List a room's recent messages, filtered by date and mention:

```json
{
  "type": "cisco_webex",
  "parameters": {
    "resource": "message",
    "operation": "getAll",
    "roomId": "Y2lzY29zcGFyazovL3VzL1JPT00vYmJjZWIxYWQtNDNmMS0zYjU4LTkxNDctZjE0YmIwYzRkMTU2",
    "returnAll": false,
    "limit": 50,
    "filters": {
      "before": "2024-01-01T00:00:00Z",
      "mentionedPeople": "me"
    }
  }
}
```

Rewrite a message as Markdown:

```json
{
  "type": "cisco_webex",
  "parameters": {
    "resource": "message",
    "operation": "update",
    "messageId": "Y2lzY29zcGFyazovL3VzL01FU1NBR0UvOTJkYjNiZTAtNDNiZC0xMWU2LThhZTktZGQ1YjNkZmM1NjVk",
    "isMarkdown": true,
    "markdownText": "**Updated** message with *formatting*"
  }
}
```

Schedule a meeting with invitees:

```json
{
  "type": "cisco_webex",
  "parameters": {
    "resource": "meeting",
    "operation": "create",
    "title": "Weekly Team Meeting",
    "start": "2024-02-01T10:00:00Z",
    "end": "2024-02-01T11:00:00Z",
    "additionalFields": {
      "agenda": "1. Project updates\n2. Next week planning",
      "enabledJoinBeforeHost": true,
      "joinBeforeHostMinutes": 5,
      "sendEmail": true,
      "hostEmail": "host@example.com",
      "invitees": "[{\"email\": \"user1@example.com\"}, {\"email\": \"user2@example.com\"}]"
    }
  }
}
```

List a host's active meetings in a date window:

```json
{
  "type": "cisco_webex",
  "parameters": {
    "resource": "meeting",
    "operation": "getAll",
    "returnAll": false,
    "limit": 20,
    "filters": {
      "from": "2024-02-01T00:00:00Z",
      "to": "2024-02-28T23:59:59Z",
      "hostEmail": "host@example.com",
      "state": "active"
    }
  }
}
```

Move a meeting and update its agenda:

```json
{
  "type": "cisco_webex",
  "parameters": {
    "resource": "meeting",
    "operation": "update",
    "meetingId": "cd0b8c5c4d0e4f0a8b1c2d3e4f5a6b7c",
    "updateFields": {
      "title": "Updated Weekly Team Meeting",
      "agenda": "1. Project updates\n2. Q1 planning\n3. Budget review",
      "start": "2024-02-01T14:00:00Z",
      "end": "2024-02-01T15:30:00Z"
    }
  }
}
```

### Error Handling

| Mode | Behavior |
|------|----------|
| **stop** | Halts workflow on first error |
| **continue** | Skips failed items, passes successful ones through |
| **errorPort** | Routes failed items to Error output port |

## Tips

Send messages (with file attachments), manage meetings, and list rooms via the Cisco Webex REST API.

### Attachments

- **File Location picks the source.** `url` sends a public link that Webex fetches for itself; `binaryData` uploads a file that an upstream node put on the item.
- **Binary property names are case-sensitive.** Check the upstream node's Binary Data panel for the exact name a run produced — `data` is the usual default for a single file.
- **One file per message.** Webex accepts a single attachment on a message; send several messages if you have several files.

### Adaptive cards

The Adaptive Card Attachments field takes a **simplified** shape, not raw Adaptive Card JSON. Each entry is an object with:

- `elements` — an array of card elements. Use `textBlock` for text and `inputText` for an input field; any other `type` is passed through as written.
- `actions` — an array of card actions. Use `openUrl`, `submit` or `execute`, each with its own `title` plus `url` or `data`.

The node wraps them into a complete Adaptive Card for you, so do not include `contentType` or `content` yourself.

### Notes

- **Text is required even when you send Markdown.** Webex uses it as the fallback for clients that cannot render rich text.
- **Message: Update swaps fields on Is Markdown.** With it off you supply Text; with it on you supply Markdown Text, which is capped at 7439 bytes.
- **Invitees is a JSON array of objects**, each with at least an `email`, optionally `displayName` and `coHost`.
- **Meeting: Get Many returns a meeting series by default.** Switch the Meeting Type filter to `scheduledMeeting` or `meeting` to see individual occurrences.
- **Host Email needs admin scope.** Acting on another user's meeting requires an access token with administrator rights on the Webex organisation.
- **Get Many fans out.** Messages and meetings each arrive as their own item, and an empty result still emits one item carrying `_noResults: true`.