Pular para o conteúdo
Conversas

Retomar a conversa (devolver ao agente)

v1.0.0
POSThttps://api.staging.growthaisystem.com/api/v1/conversations/{id}/resume
  • ExigeAuthorization: Bearer gos_…— Chave de API (gos_…)· escoposconversations.write

O inverso do POST /conversations/{id}/handoff, para o próprio agente externo: você passou a conversa para o time e ninguém do time falou com o contato (confira as mensagens), então toma a conversa de volta. É o mesmo efeito do Devolver ao agente do painel: a pausa sai (ai.paused: false) e o agente volta a poder responder; a IA da plataforma, se estiver ligada, volta no próximo contato. Quem é o responsável (assignedUserId) continua o mesmo, e nenhuma mensagem é enviada.

Só a pausa do seu handoff sai (ai.pausedReason: "handoff_externo"). A API confere a razão da pausa, não a conversa: se uma pessoa do time respondeu ou mandou modelo pelo painel, ou clicou Assumir (antes ou depois do seu handoff), a pausa é dela (humano_assumiu) e a resposta é 409 paused_by_human, sem mudar nada; o mesmo vale para a pausa da IA da plataforma (ia_passou_para_humano, que é também a razão do seu handoff quando ela está ligada na conversa: nesse caso, só o painel devolve; na conversa de um funcionário digital da Fábrica o seu handoff grava handoff_externo, mesmo com ela ligada). A resposta digitada no celular do número e a apresentação comercial enviada pelo WhatsApp não mudam a pausa: antes de retomar, confira GET /conversations/{id}/messages desde o seu handoff (mensagem de saída com actor user ou unknown = alguém do time falou com o contato).

Idempotente: conversa já ativa responde 200 com resumed: false e nada muda. O corpo é opcional; reason (até 300 caracteres) fica só no log da chamada. O header Idempotency-Key é aceito, mas não guarda resposta: o retry responde pelo estado (resumed: false).

Parâmetros de caminho

Entram no próprio endereço, no lugar das chaves.

  • idstringobrigatório
    • tamanho 1–80

Corpo da requisição

application/jsonobrigatório

V1ConversationResumeInputInput

  • reasonstringopcional
    • tamanho máx. 300

Respostas

10 respostas documentadas — o código, o que ele significa nesta rota e a forma do corpo.

200Deu certoapplication/json

resumed: true = a pausa do seu handoff saiu agora e a conversa voltou para o agente (conversation.ai.paused: false). resumed: false = a conversa já estava ativa; nada mudou.

V1ConversationResumeResultado

  • resumedboolean
    • idstring
    • channelstring
    • connectionIdstring | null
    • contactIdstring | null
      • idstring
      • namestring
      • phonestring | null
      • emailstring | null
    • contactDisplaystring | null
    • contactPhonestring | null
    • assignedUserIdstring | null
    • humanAssignedboolean
    • assignedAtstring | null
    • lastMessageAtstring | null
    • lastMessageDirectionstring | null
      • um de"inbound""outbound"
    • lastMessageActorstring | null
      • um de"user""contact""ia""automation""system""api""unknown"
    • archivedboolean
      • pausedboolean
      • pausedUntilstring | null
      • pausedReasonstring | null
      • appliesboolean
      • openboolean
      • expiresAtstring | null
    • createdAtstring
    • updatedAtstring