Skip to content

Conversation routes: escalate, reopen

The Conversation Verbs escalate, reopen as api.sb routes, with inputs, result, refusals and an example.

Reference for Conversation, one group of Conversation routes.

Conversation.escalate

Escalate hands a Conversation and its summary to the Worker in the Role above, a Human only where one holds it. Verb page.

Text
POST /{namespace}/conversations/{conversation}/escalate

Path: conversation. Body, as JSON: the other inputs. Emits Conversation.escalated.

Inputs

InputTypeRequiredDescription
conversationConversationrequiredThe Conversation to hand off.
reasonstringrequiredWhy it moves up.

Returns

OutputTypeRequiredDescription
conversationConversationrequiredThe Conversation, with its new Worker.

Refuses when

CheckErrorFixThen call
The key is valid, but its scopes do not allow this operation.forbiddenUse a key whose scopes cover the operation, or ask an owner of the namespace to grant them.None.

Example

Terminal
curl -X POST https://api.sb/leaseline.app/conversations/conversation_0vg6SDjB6k/escalate \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"reason":"lowConfidence"}'
JSON
{
  "api": "https://api.sb/leaseline.app",
  "conversation": {
    "$id": "https://api.sb/leaseline.app/conversations/conversation_0vg6SDjB6k",
    "$type": "Conversation",
    "subject": "Example subject",
    "answeredAt": "2026-10-22T12:00:00Z"
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/act_br07HsG8MG",
    "operation": "Conversation.escalate",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/act_br07HsG8MG"
  }
}

Conversation.reopen

Reopen reverses a Conversation’s resolution when a reversal signal arrives within 7 days, and grades the resolution a failure. Verb page.

Text
POST /{namespace}/conversations/{conversation}/reopen

Path: conversation. Body, as JSON: the other inputs. Emits Conversation.reopened.

Inputs

InputTypeRequiredDescription
conversationConversationrequiredThe resolved Conversation.
signalstringrequiredWhat reversed it: a new Message on the subject, a request for a person, a rating of 2 or lower, or a Dispute.

Returns

OutputTypeRequiredDescription
conversationConversationrequiredThe Conversation, open again.

Refuses when

CheckErrorFixThen call
The key is valid, but its scopes do not allow this operation.forbiddenUse a key whose scopes cover the operation, or ask an owner of the namespace to grant them.None.

Example

Terminal
curl -X POST https://api.sb/leaseline.app/conversations/conversation_0vg6SDjB6k/reopen \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"signal":"askedForPerson"}'
JSON
{
  "api": "https://api.sb/leaseline.app",
  "conversation": {
    "$id": "https://api.sb/leaseline.app/conversations/conversation_0vg6SDjB6k",
    "$type": "Conversation",
    "subject": "Example subject",
    "answeredAt": "2026-10-22T12:00:00Z"
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/act_br07HsG8MG",
    "operation": "Conversation.reopen",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/act_br07HsG8MG"
  }
}