# Webex Automation

> Automate Cisco Webex messaging, rooms, teams, webhooks, and people management through natural language commands

- Skill: `ranbot-ai/webex-automation` (Agent Skill)
- Install (CLI): `npx skillmds add ranbot-ai/webex-automation`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ranbot-ai/webex-automation/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ranbot-ai (https://skillmd.com/u/ranbot-ai)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/ranbot-ai/webex-automation

---



# Webex Automation

Automate Cisco Webex collaboration workflows -- send messages, manage rooms and teams, configure webhooks, and look up people -- all through natural language.

**Toolkit docs:** [composio.dev/toolkits/webex](https://composio.dev/toolkits/webex)

---

## Setup

1. Add the Rube MCP server to your environment: `https://rube.app/mcp`
2. Connect your Webex account when prompted (OAuth flow via Composio)
3. Start issuing natural language commands for Webex automation

---

## Core Workflows

### 1. Send a Message to a Room or Person

Post plain text, markdown, file attachments, or Adaptive Cards to any Webex room or directly to a person.

**Tool:** `WEBEX_MESSAGING_CREATE_MESSAGE`

Key parameters:
- `roomId` -- target room ID (use `WEBEX_MESSAGING_LIST_ROOMS` to find it)
- `toPersonEmail` -- send a private 1:1 message instead (mutually exclusive with `roomId`)
- `text` -- plain text content (max 7439 bytes)
- `markdown` -- markdown-formatted content (takes precedence over `text`)
- `files` -- list of public URLs for file attachments (one file per message)
- `attachments` -- Adaptive Card JSON (one card per message)
- `parentId` -- reply to a specific message as a threaded response

Example prompt:
> "Send a markdown message to room Y2lz... saying **Deploy completed** with a link to the release notes"

---

### 2. List and Discover Rooms

Browse all rooms you belong to, filtered by type, team, or sorted by activity.

**Tool:** `WEBEX_MESSAGING_LIST_ROOMS`

Key parameters:
- `type` -- filter by `direct` (1:1) or `group`
- `teamId` -- limit to rooms in a specific team
- `sortBy` -- sort by `id`, `lastactivity`, or `created`
- `max` -- limit results (1-1000, default 100)

Follow-up with `WEBEX_MESSAGING_GET_ROOM_DETAILS` to get full metadata for a specific room including title, type, lock status, creator, and timestamps.

Example prompt:
> "List my 10 most recently active group rooms in Webex"

---

### 3. Manage Webhooks for Event-Driven Automation

Create webhooks to receive real-time HTTP POST notifications when Webex resources change.

**Tool:** `WEBEX_WEBHOOKS_CREATE_WEBHOOK`

Key parameters:
- `name` -- human-friendly webhook name (required)
- `targetUrl` -- URL that receives POST notifications (required)
- `resource` -- what to monitor: `messages`, `rooms`, `memberships`, `meetings`, `recordings`, `meetingParticipants`, `telephony_calls`, etc. (required)
- `event` -- trigger type: `created`, `updated`, `deleted`, `started`, `ended`, `joined`, `left` (required)
- `filter` -- scope notifications (e.g., `roomId=<id>` or `hostEmail=<email>`)
- `secret` -- optional HMAC secret for payload signature verification
- `ownedBy` -- `creator` for personal or `org` for organization-wide webhooks

Supporting tools:
- `WEBEX_LIST_WEBHOOKS` -- list all registered webhooks with optional `max` and `ownedBy` filters
- `WEBEX_WEBHOOKS_GET_WEBHOOK` -- inspect a specific webhook by `webhookId`

Example prompt:
> "Create a webhook called 'New Messages' that POSTs to https://my-app.com/hook whenever a message is created in room Y2lz..."

---

### 4. Manage Team Memberships

Add people to Webex teams and optionally grant moderator privileges.

**Tool:** `WEBEX_MESSAGING_CREATE_TEAM_MEMBERSHIP`

Key parameters:
- `teamId` -- the team to add the person to (required)
- `personEmail` -- email of the person to add
- `personId` -- Webex person ID (alternative to email)
- `isModerator` -- set to `true` for moderator access (default `false`)

Use `WEBEX_LIST_TEAMS` to discover available teams first.

Example prompt:
> "Add alice@example.com as a moderator to team Y2lz..."

---

### 5. Audit Room Memberships

Check who is in a room, verify a specific person's membership, or list memberships across teams.

**Tool:** `WEBEX_MESSAGING_LIST_MEMBERSHIPS`

Key parameters:
- `roomId` -- list all members of a specific room
- `personEmail` -- check if a person is a member (requires `roomId`)
- `personId` -- check by Webex person ID (requires `roomId`)
- `teamId` -- filter by team association
- `max` -- limit results

Example prompt:
> "List all members of room Y2lz... and tell me who the moderators are"

---

### 6. Search and Look Up People

Look up people in your Webex organization by email, display name, or ID.

**Tool:** `WEBEX_PEOPLE_LIST_PEOPLE`

Use to resolve names to person IDs before sending direct messages or adding team members.

Example prompt:
> "Find the Webex person ID for bob@company.com"

---

## Known Pitfalls

| Pitfall | Details |
|---------|---------|
| Webhook auto-disable | Target URL must respond with HTTP 2xx; 100 failures in 5 minutes disables the webhook automatically |
| Message size limit | Both `text` and `markdown` have a 7439-byte maximum |
| One file per message | The `files` array accepts a list but only one attachment is actually supported per message |
| One card per message | Only one Adaptive Card attachment is supported per message |
| Mutually exclusive targets | `roomId` and `toPersonEmail`

