---
title: "Escalation raised"
method: POST
path: "speaking_bot.escalation"
tags: ["events"]
---

# Escalation raised

`POST speaking_bot.escalation` (webhook)

A representative bot handed a decision back to its owner.

Fires the moment the bot calls its escalate tool, before anyone has
answered. Reply with `POST /bots/{bot_id}/escalations/{escalation_id}/response`
and the bot relays the answer to the meeting.

Delivered as an HTTP POST to the bot's `callback_url`, with the event name in the `x-speaking-bot-event` header and, when the bot was created with a `callback_secret`, `x-speaking-bot-signature: sha256=<hex>`: the HMAC-SHA256 of the exact request body with that secret. Answer with any 2xx. Network errors and 5xx are retried three times (after 1, 3 and 9 seconds); a redirect counts as a failed delivery and is not followed.

## Payload

- EscalationEvent: ``speaking_bot.escalation``: a representative bot handed a decision to its owner.
  - `event_id` string, required: Unique per delivery; use it to drop duplicates
  - `bot_id` string, required: The MeetingBaas bot ID returned by POST /bots
  - `client_id` string, required: The server's internal ID for the bot
  - `created_at` string, date-time, required: When the event was produced, ISO 8601 with offset
  - `event` 'speaking_bot.escalation', required
  - `data` Escalation, required: A decision the bot handed back to its owner, with the answer once one came. Returned by ``GET /bots/{bot_id}/escalations``, carried by the ``speaking_bot.escalation`` event when raised, and listed again in ``speaking_bot.ended``.
    - `escalation_id` string, required
    - `question` string, required: The exact decision asked for, with amounts, names and dates
    - `category` 'spending' | 'commitment' | 'approval' | 'scheduling' | 'information' | 'other', required
    - `context` string: What led to the question and who asked, in one or two sentences
    - `asked_by` string, nullable: The participant who asked, when known
    - `number` integer, nullable: 1-based position among this bot's escalations
    - `created_at` number, required: Unix timestamp of when the bot raised it
    - `status` 'pending' | 'answered'
    - `response` string, nullable: The owner's answer, once posted
    - `decision` 'approved' | 'declined' | 'deferred' | 'info', nullable: How the owner decided, when it was a yes/no question
    - `answered_at` number, nullable: Unix timestamp of the owner's answer

## Acknowledgement `200`

Received. Any 2xx counts as delivered.

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/meeting-baas/apis/meeting-baas-api.md) - [All operations](https://skmtc.dev/meeting-baas/apis/meeting-baas-api/llms.txt) - [OpenAPI document](https://skmtc.dev/meeting-baas/apis/meeting-baas-api/revisions/1a4957849576?raw)
