Reference · Tools
Cisco Webex
Send messages with file attachments, manage meetings, and interact with Webex rooms via the Webex REST API.
The Cisco Webex node connects to the Webex REST API to send messages (including file attachments), create and manage meetings, and interact with Webex rooms. You could, for example, build a workflow that posts a generated report as a file attachment to a Webex room whenever a database query completes. It handles both Message and Meeting resources, with support for pagination, recurrence, invitees, and Adaptive Cards.
- Node type
- Action (binary)
- Parameters
- 38
- Outputs
- Output, Error
- Credentials
- Cisco Webex
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 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:
{
"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:
{
"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:
{
"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:
{
"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:
{
"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:
{
"type": "cisco_webex",
"parameters": {
"resource": "message",
"operation": "update",
"messageId": "Y2lzY29zcGFyazovL3VzL01FU1NBR0UvOTJkYjNiZTAtNDNiZC0xMWU2LThhZTktZGQ1YjNkZmM1NjVk",
"isMarkdown": true,
"markdownText": "**Updated** message with *formatting*"
}
}
Schedule a meeting with invitees:
{
"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:
{
"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:
{
"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.
urlsends a public link that Webex fetches for itself;binaryDatauploads 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 —
datais 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. UsetextBlockfor text andinputTextfor an input field; any othertypeis passed through as written.actions— an array of card actions. UseopenUrl,submitorexecute, each with its owntitleplusurlordata.
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, optionallydisplayNameandcoHost. - Meeting: Get Many returns a meeting series by default. Switch the Meeting Type filter to
scheduledMeetingormeetingto 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.
Frequently asked questions
How do I attach a file to a Webex message?
Set File Location to `binaryData` if a previous node in your workflow produced the file, or to `url` if you want Webex to fetch the file from a public link itself. When using `binaryData`, the Binary Property field must match the exact property name shown in the upstream node's Binary Data panel — `data` is the typical default, but the name is case-sensitive. Note that Webex only accepts one attachment per message, so if you have multiple files you'll need to send a separate message for each.
What credentials does this node require?
You need a Cisco Webex credential (`ciscoWebexApi`), which is a Webex personal access token or bot token. If you need to act on another user's meetings using the Host Email field, that token must also carry administrator-level scope for your Webex organisation — a standard user token will not have the necessary rights.
Why does the Adaptive Card field not accept standard Adaptive Card JSON?
The node uses a simplified input shape instead of raw Adaptive Card JSON. You provide `elements` (card body items, using `textBlock` for text and `inputText` for fields) and `actions` (using `openUrl`, `submit`, or `execute`). The node assembles the complete Adaptive Card payload — including `contentType` and `content` — for you, so adding those yourself will break the output.
I used Message: Get Many but I'm only seeing a single meeting series, not individual occurrences. What's wrong?
Meeting: Get Many returns a meeting series by default. To retrieve individual scheduled occurrences or in-progress meetings, change the Meeting Type filter to `scheduledMeeting` or `meeting`. The difference matters when you need data on a specific occurrence within a recurring series rather than the series definition itself.
What happens when a Get Many operation returns no results?
The node still emits one output item, but it carries `_noResults: true` rather than actual records. This prevents downstream nodes from silently receiving nothing, so you can branch on that flag in a subsequent node if you need to handle the empty case differently from a populated result.
Build with the Cisco Webex node
Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Cisco Webex credentials first.
Open BusyBotLast updated . Spotted something wrong? Tell us.