> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.revvue.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.revvue.ai/_mcp/server.

# EscalationConfig

GraphQL object

Reference: https://docs.revvue.ai/api-reference/jonna-ai-agent/types/objects/escalation-config

## Fields

- `closingMessage` — Message shown to the guest when their conversation is handed off to a human (e.g. "Thanks! A colleague will email you shortly — or reach us at hello@restaurant.com"). May be authored as rich text/HTML; chat delivery flattens it to plain text, email sends it as a normal outbound reply. The email is not sent when the assistant's reply_guest guardrail requires human approval — then the reviewer replies from the queue instead. Leave blank to use the default acknowledgement.
- `setTicketPending` — When True, escalating a conversation to a human also flips the support ticket's status to PENDING, so it surfaces in the inbox reviewer queue. DEFAULT OFF since 2026-08-20 (Badr's call): a fresh config runs NO ticket-side operation on escalation — escalation visibility rides the ai_state='escalated' marker; an operator opts in by authoring a step (or a legacy stored `set_ticket_pending: true`, which still materializes the step). LEGACY: superseded by `steps` — when steps are authored this flag is derived from them (True iff a set_status PENDING step is present).
- `steps` — Ordered ticket-side steps executed when a conversation is escalated to a human (email AND chat), e.g. set the ticket IN_PROGRESS then assign a reviewer. Same step model as workflow rules, but only ticket-side types run here (set_status / send_reply / assign / add_tag / mark_junk / close_ticket) — agent-flow types (human_handoff, skip_agent, end_run_silent, limit_tools) are logged and skipped to avoid recursion. Empty = NO ticket-side operation (the default); a stored legacy `set_ticket_pending: true` from the flag era still materializes the one 'set_status PENDING' step on load.
- `followupMode` — What the agent does when the guest writes AGAIN on a thread that was already handed to a human. 'stand_down' (default) ends the run after tagging — the reviewer owns the conversation. 're_escalate' re-runs the escalation steps (e.g. flip the ticket back to PENDING) so the new message resurfaces in the reviewer queue, still without engaging the agent. 'resume' lets the agent work the thread again as if it had never been escalated (all the normal gates and rules still apply).
- `handoffGuidance` — What the agent should TELL the guest when it hands a CHAT conversation to a human — in its own words, in the conversation's language: a contact link, how the team follows up, hours for a callback (e.g. "Kontakt oss via https://brasilia.no/contact-us/"). Guidance, not a template: the agent weaves it into one or two natural sentences and keeps any link, address or phone number exactly as written. When set, the agent writes the handoff message itself even if a closing message is configured — the closing message then only covers handoffs the agent did not author (a workflow rule, a shield trip). Email hand-offs ignore it.

## Definition

```graphql
type EscalationConfig {
  closingMessage: String!
  setTicketPending: Boolean!
  steps: [WorkflowStep!]!
  followupMode: String!
  handoffGuidance: String!
}
```