solar.ia

Conversas

Mudar situação da conversa

PATCHhttps://api.seudominio.com.br/integrations/v1/conversations/{id}

Abre, deixa pendente ou resolve uma conversa.

Resolver pela API faz o mesmo que o botão Concluir do atendimento: o chatbot e o agente de IA saem da conversa, a pesquisa de satisfação (app CSAT) é enviada e a conclusão segue a preferência ao concluir do responsável pela conversa — archive_12h mantém a conversa 12h na lista dele e, se o cliente voltar nesse prazo, ela continua com ele; archive_now tira da lista e a volta do cliente é um atendimento novo (distribuição). Sem responsável, vale archive_12h. close_mode no corpo tem prioridade.

classification registra o resultado do atendimento (app Classificação de atendimento ligado; sem o app, é ignorada). A classificação obrigatória do app vale só para quem conclui na tela: a API conclui sem ela, como o chatbot.

Com o app Registro de vendas ligado (ele depende do app Classificação de atendimento), classification.amount_cents (inteiro, em centavos) registra a venda de uma conclusão achieved, creditada ao responsável pela conversa e com origem api — aparece em Relatórios › Vendas. Se a conversa tem uma venda registrada no atendimento e ainda em aberto, ela é fechada com o valor em vez de criar outra; resolver de novo em até 10 minutos depois de uma venda fechada corrige o valor dela (não soma). Sem o app, ou com outro resultado, o valor é ignorado. O valor obrigatório do app vale só para quem conclui na tela.

Quando havia venda a gravar, a resposta traz sale_saved: true se a venda foi gravada, false se a conversa foi resolvida mas a venda falhou (repita o pedido para gravar). Resolver de novo como lost até 10 minutos depois de uma venda fechada devolve essa venda para em aberto (fora dos totais; question não mexe na venda) e a resposta traz sale_reopened: true e sale_reopened_cents (valor, em centavos, da venda que ficou em aberto).

Reabrir (open) ou deixar pendente apaga a conclusão.

Parâmetros de caminho

idintegerobrigatório

Id da conversa.

Corpo da requisição

application/json
statusstringobrigatório

Nova situação.

Valores:openpendingresolved
classificationobject

Só com resolved: { outcome, note?, amount_cents? } — outcome achieved (objetivo atingido), lost (perdido) ou question (dúvida); note é uma observação de até 1000 caracteres; amount_cents é o valor da venda em centavos (só com achieved e o app Registro de vendas ligado; ex.: 15990 = R$ 159,90).

close_modestring

Só com resolved: substitui a preferência ao concluir do responsável.

Valores:archive_12harchive_now
Corpo para testar

Respostas

Fica só nesta aba do navegador e é usado nos exemplos abaixo.

curl --request PATCH \
  --url 'https://api.seudominio.com.br/integrations/v1/conversations/{id}' \
  --header 'Authorization: Bearer sk_SEU_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "status": "resolved"
}'

A chamada é real: age sobre os dados do seu workspace.

Resposta
{
  "id": 120,
  "status": "resolved",
  "sale_saved": true
}