Cisco Webex
Connect a Webex bot so people can talk to a governed flow in a direct space or by @mentioning the bot in a group space. The gateway registers the Webex webhook itself — nothing to paste on the Webex side.
What you need
- A Webex account on https://developer.webex.com (any Webex user can create a bot; org admins may restrict bots in enterprise orgs).
- A public HTTPS URL for this gateway (used as the webhook target).
Official documentation
- Bots: https://developer.webex.com/docs/bots
- Webhooks guide: https://developer.webex.com/messaging/docs/webhooks
- Create a webhook: https://developer.webex.com/docs/api/v1/webhooks/create-a-webhook
- Get message details: https://developer.webex.com/docs/api/v1/messages/get-message-details
- Create a message: https://developer.webex.com/docs/api/v1/messages/create-a-message
- Get my own details: https://developer.webex.com/docs/api/v1/people/get-my-own-details
Set up on Webex
- https://developer.webex.com/my-apps → Create a New App → Create a
Bot: name, username (
…@webex.bot), icon, description. - Copy the Bot access token shown on the confirmation page (it is shown once; regenerate from the bot's page if lost).
- Add the bot to spaces (or message it directly). In group spaces the bot only receives messages that @mention it; in 1:1 spaces it receives everything (Webex platform behaviour).
Connect in Tools Anatomy
/channels → Messaging channels → Cisco Webex → paste the Bot
access token. On connect the gateway:
- calls
GET /people/meto confirm the token belongs to a bot and store its id/name, - creates (or updates) a webhook
resource=messages, event=createdpointing at…/v1/public/channels/webex/<hook>/eventswith a generated secret (stored in the Secret Manager). Verify rotates that secret.
How a message flows
Webex posts the webhook (signed with X-Spark-Signature, HMAC-SHA1 of the
raw body with the webhook secret). The payload carries only ids, so the
gateway fetches the text with GET /messages/{id}, drops the bot's own
messages, strips the leading @mention in group spaces, runs the flow, and
answers with POST /messages {roomId, text}.
Identity we derive
| Canonical key | Value |
|---|---|
external_user_id |
Webex personId |
channel |
webex |
email |
personEmail (delivered on every message) — runtime_only |
display_name |
displayName from GET /people/{id} — runtime_only |
phone_number |
not provided |
conversation_context.channel_account_id = the bot's person id. Threads: one
conversation per Webex space (roomId).
Limits
- Group spaces: only @mentions reach the bot.
- Messages over ~7000 characters are split.
- Webex webhooks retry on non-2xx; retries are deduped on the message id.
- Files/attachments are acknowledged but not processed in v1.
Test it
Open a direct space with the bot and say hello, or add it to a space and
@Bot hello.
Troubleshooting
- Nothing arrives: check the webhook in https://developer.webex.com/docs/api/v1/webhooks/list-webhooks
(status must be
active; Webex deactivates webhooks after repeated failures — click Verify in the console to re-activate). - 401 on connect: the token belongs to a person, not a bot, or was regenerated.