# Escalate to a human

Hand a conversation off to a human teammate. If you use the Intercom Helpdesk, the
handoff lands in your team inbox.
Provide either `conversation_id` or `user`:
- `conversation_id` — escalate an existing agent conversation, including one started
with `/fin/ask`. On the Intercom Helpdesk, Fin by default summarises the conversation
and opens a new Helpdesk conversation that carries the summary as an internal note.
Escalation does not change the original agent conversation's assignment or open/closed
state. Configure an escalation Operator Workflow to change this default.
- `user` — escalate on behalf of a user with no prior agent conversation. On the Intercom
Helpdesk, a new Helpdesk conversation is created for the teammate. Not supported on Fin
for Platforms — see below.

In both cases, pass the optional `context` to give the receiving teammate background your
orchestrating agent has and Fin does not. On the Intercom Helpdesk, it appears above the
summary in the internal note of the new conversation the teammate picks up. It is never
shown to the end user.
Escalating an existing conversation also sets its AI Agent resolution state to
`escalated`, readable as `ai_agent.resolution_state` on the Conversations API. This is a
resolution state, not a billable resolution.
On Fin for Platforms, `conversation_id` is required — `user` is not supported and is
rejected, because there is no Intercom Helpdesk in which to create a conversation. There
is no Intercom inbox either, so an escalation that no workflow handles does not open a
Helpdesk conversation for a teammate. `context` is not surfaced, and the conversation is
left open for your platform to hand off and continue driving.
You are notified via webhooks with an `escalated` status
followed by `complete`. The `complete` status signals that Fin is done; it does not close
the conversation. On the Intercom Helpdesk, the new human conversation remains open; on
Fin for Platforms, the conversation remains open for whoever handles it on your platform.
To request access to the Fin Agent API, go to **Settings > Integrations > Fin Agent API** in your workspace and tell us about your use case. Once access is granted, **Fin Agent API** appears under **Fin AI Agent > Deploy**.

Endpoint: POST /fin/escalate
Version: 2.15
Security: bearerAuth

## Header parameters:

  - `Intercom-Version` (string)

## Response 200 fields (application/json):

  - `conversation_id` (string)
    The external ID of the conversation. Returned when you escalate an existing conversation by `conversation_id` (echoed back). When you escalate a `user`, a new conversation is created and only `intercom_conversation_id` is returned.
    Example: ext-123

  - `intercom_conversation_id` (string)
    The internal Intercom conversation ID. Returned when a new conversation was created for the escalation.
    Example: 987654321

  - `status` (string)
    The resulting status of the conversation.
    Enum: "escalated"

## Response 400 fields (application/json):

  - `type` (string, required)
    The type is error.list
    Example: error.list

  - `request_id` (string)
    Example: f93ecfa8-d08a-4325-8694-89aeb89c8f85

  - `errors` (array, required)
    An array of one or more error objects

  - `errors.code` (string, required)
    A string indicating the kind of error, used to further qualify the HTTP response code
    Example: unauthorized

  - `errors.message` (string)
    Optional. Human readable description of the error.
    Example: Access Token Invalid

  - `errors.field` (string)
    Optional. Used to identify a particular field or query parameter that was in error.
    Example: email

## Response 401 fields (application/json):

  - `type` (string, required)
    The type is error.list
    Example: error.list

  - `request_id` (string)
    Example: f93ecfa8-d08a-4325-8694-89aeb89c8f85

  - `errors` (array, required)
    An array of one or more error objects

  - `errors.code` (string, required)
    A string indicating the kind of error, used to further qualify the HTTP response code
    Example: unauthorized

  - `errors.message` (string)
    Optional. Human readable description of the error.
    Example: Access Token Invalid

  - `errors.field` (string)
    Optional. Used to identify a particular field or query parameter that was in error.
    Example: email

