Cisco Webex
Joining Cisco Webex Meetings as a meetbot — supported URL patterns, lobby behavior, captions, known quirks.
The webex adapter joins Cisco Webex Meetings via browser automation
on the web client (*.webex.com/...). No Webex SDK, no marketplace
app, no JWT signing — anonymous guest join just like Meet/Teams.
Supported URL patterns
| Pattern | Notes |
|---|---|
https://*.webex.com/meet/<user> | Personal Rooms |
https://*.webex.com/wbxmjrn/sites/.../<id> | Scheduled meetings (legacy URL form) |
https://*.webex.com/webappng/sites/.../meeting/... | Web-app NG meeting URLs |
The platform discriminator is auto-detected by host suffix
(*.webex.com); you can override it explicitly via platform: "webex"
on dispatch if you need to force the routing.
curl -X POST https://api.meetbot.dev/api/v1/jobs \
-H "authorization: Bearer $MEETBOT_API_KEY" \
-H "content-type: application/json" \
-d '{
"externalId": "webex-demo-2026-05-09",
"meetingUrl": "https://meetingsapac1.webex.com/meet/alice",
"platform": "webex",
"displayName": "meetbot",
"webhooks": {"onFinalize": "https://yours.example/hook/meetbot"}
}'Lobby behavior
- Personal Rooms with default settings auto-admit guests; the bot
goes from
joining→in_meetingwithout anentering_lobbystop. - Enterprise tenants that enable "Allow guests" off OR
"Lobby for guests" require host approval — the bot reports
entering_lobbyand waits for admission. ConfigureautoLeave.afterEntryDelaySecondsto bound the wait (default 600s / 10 min). - SSO-required meetings can't be joined by an anonymous bot. The
job fails with
failure_code: auth_failureand thefailure_detailcarries the sentinel that triggered detection ("SSO authentication is required"). Migrate the meeting to the guest-join policy or supply OAuth credentials (M2 ticket).
Captions
The adapter toggles closed captions via the toolbar's More menu when the tenant has captions enabled in the meeting policy. When captions are off-by-policy the toggle silently no-ops; transcription falls back to the bot's own audio capture (per-speaker WebRTC tracks → Whisper or your STT of choice).
Roster + competing-bot detection
The bot scrapes the participants panel for display names and feeds
them into the shared evaluateAutoLeave evaluator. The same
auto-leave-on-bot-detected behavior available for Meet/Teams/Zoom is
available for Webex — set autoLeave.onBotDetected: true on dispatch.
Known quirks
- Webex's "Start meeting" button (host view) is rendered as the same CTA as the guest "Join meeting" button — the bot will never see the host CTA because we always join as a guest. No special handling required.
- Some tenants serve a "Download the desktop app" interstitial before the join page; the adapter dismisses it by clicking "Join from your browser" / "Use web app" / "Continue in browser" whichever variant is rendered.
- Captions DOM contract has shifted across Webex builds. The adapter
has fallbacks but if you observe
webex:captions-not-enabledon a tenant that does support captions, file an issue with thedata-testidattributes on the captions toggle.
Failure codes
The adapter maps Webex-specific failure modes to the generic
failure_code taxonomy:
| Webex sentinel | failure_code |
|---|---|
| "SSO authentication is required" | auth_failure |
| "This meeting has ended" | meeting_ended |
| "Meeting number invalid / expired" | meeting_not_found |
Stuck in lobby past afterEntryDelaySeconds | lobby_timeout |
| Bot removed from meeting mid-recording | removed_from_meeting |