Skip to content

Conversation routes: answer, assign, close

The Conversation Verbs answer, assign, close as api.sb routes, with inputs, result, refusals and an example.

Reference for Conversation, one group of Conversation routes.

Conversation.answer

Answer replies in a Conversation through the Channel it arrived on and closes the reply Task it opened. Verb page.

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

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

Inputs

InputTypeRequiredDescription
conversationConversationrequiredThe Conversation that waits.
bodytextrequiredThe reply.

Returns

OutputTypeRequiredDescription
conversationConversationrequiredThe answered Conversation.

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.
The record is not in a state that allows this Verb, so the call is refused.refusedRead the record, run the Verb that moves it to an allowed state, then retry.None.

Example

Terminal
curl -X POST https://api.sb/leaseline.app/conversations/conversation_0vg6SDjB6k/answer \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"body":"Example body"}'
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.answer",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/act_br07HsG8MG"
  }
}

Conversation.assign

Assign routes a Conversation to the Worker holding the right Role, by topic, Customer tier and language. Verb page.

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

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

Inputs

InputTypeRequiredDescription
conversationConversationrequiredThe Conversation to route.
workerWorkerThe Worker to take it; omitted, the routing Policy picks.

Returns

OutputTypeRequiredDescription
conversationConversationrequiredThe Conversation, with its 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/assign \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
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.assign",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/act_br07HsG8MG"
  }
}

Conversation.close

Close marks a Conversation resolved, confirmed by the Customer or assumed after 72 hours with no reply. Verb page.

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

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

Inputs

InputTypeRequiredDescription
conversationConversationrequiredThe answered Conversation.
resolutionstringrequiredHow it ended: the Customer said so, or 72 hours passed after an answer with no reply.

Returns

OutputTypeRequiredDescription
conversationConversationrequiredThe Conversation, resolved.

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/close \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"resolution":"confirmed"}'
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.close",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/act_br07HsG8MG"
  }
}