Skip to content

Conversation methods: answer, assign, close

The Conversation Verbs answer, assign, close as typed SDK methods, with inputs, result, refusals and an example.

Reference for Conversation, one group of Conversation methods.

Conversation.answer

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

TypeScript
interface ConversationVerbs {
  answer(input: ConversationAnswerInput, options?: SB.CallOptions): SB.Call<Conversation>
}

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

TypeScript
import { $ } from 'startup-builder'

const conversation = await $.Conversation.answer({ conversation: 'conversation_0vg6SDjB6k', body: 'Example body' })

Conversation.assign

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

TypeScript
interface ConversationVerbs {
  assign(input: ConversationAssignInput, options?: SB.CallOptions): SB.Call<Conversation>
}

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

TypeScript
import { $ } from 'startup-builder'

const conversation = await $.Conversation.assign({ conversation: 'conversation_0vg6SDjB6k' })

Conversation.close

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

TypeScript
interface ConversationVerbs {
  close(input: ConversationCloseInput, options?: SB.CallOptions): SB.Call<Conversation>
}

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

TypeScript
import { $ } from 'startup-builder'

const conversation = await $.Conversation.close({ conversation: 'conversation_0vg6SDjB6k', resolution: 'confirmed' })