memoGuia de Integração

Guia de Integração para aplicações terceiras que consomem o provider `webhook` do Otima Agente.

Público-alvo

Integradores responsáveis por conectar aplicações terceiras ao fluxo do Otima Agente.

Endpoint de integração

Objetivo

Receber mensagens da aplicação integradora e devolver ações padronizadas para execução local.

Identificadores de sessão

external_id = id externo da sessão no integrador; session_id = id interno da sessão no Otima Agente.

circle-check

Escopo deste guia

1. Visão Geral

  • Endpoint de integração: POST https://syncwebhook.otima.digital/v5/runner/tokens/{token}/webhook/session

  • Objetivo: receber mensagens da aplicação terceira e devolver ações padronizadas (actions) para execução.

  • Chaves da sessão: external_id é o id único da sessão no sistema integrador; session_id é o id interno da sessão no Otima Agente.

2. Onde pegar o token no Agente (Canvas)

Use o card Início > Canais > Webhook para copiar a URL da API e identificar o token do fluxo.

Figura 1 — Local no Canvas onde a URL do webhook e o token do fluxo podem ser copiados.

triangle-exclamation

Importante

3. Fluxo de exemplo no Canvas

A imagem abaixo representa um fluxo real contendo mensagens, validação, transferência, desligamento e finalização.

Figura 2 — Exemplo de fluxo completo no Canvas com caminhos de sucesso, exceção e transferência.

4. Contrato de Entrada (request)

Endpoint

Payload mínimo

triangle-exclamation

Importante

Payload com `contact` (opcional no primeiro evento)

Regra importante de `contact`

  • Se enviado no primeiro evento da sessão, o contact é injetado em runtime e fica disponível durante toda a sessão.

  • Eventos seguintes da mesma sessão devem manter o mesmo external_id.

  • O reenvio de contact em eventos posteriores não deve ser usado como mecanismo de atualização de contexto da mesma sessão.

5. Contrato de Saída (response)

O provider `webhook` responde com um envelope padronizado:

Semântica de `actions[]`

Campo

Descrição

Exemplos

type

Categoria da ação.

message / command

name

Nome da ação devolvida pelo fluxo.

text / hangup / transfer / finish_flow

payload

Parâmetros associados à ação.

actions[]

Lista ordenada de instruções a serem consumidas pelo integrador.

Processar sempre na ordem recebida.

Ações mais comuns

1. Mensagem de texto

2. Comando de desligar

3. Comando de transferência (voz)

4. Comando de transferência (message)

5. Comando de desfecho

6. Exemplo completo 1 (desfecho de sucesso)

Início da sessão (aplicação terceira)

Action 1 (Otima Agente)

Action 2 (Otima Agente)

Resposta 1 (aplicação terceira)

Action 3 (Otima Agente)

Action 4 (Otima Agente)

Action 5 (Otima Agente)

7. Exemplo completo 2 (desfecho com transferência)

Início da sessão (aplicação terceira)

Action 1 (Otima Agente)

Action 2 (Otima Agente)

Resposta 1 (aplicação terceira)

Action 3 (Otima Agente)

Action 4 (Otima Agente)

Action 5 (Otima Agente)

8. Regras de consumo para integradores

Processamento recomendado por resposta:

  1. Ler actions[] na ordem.

  2. Para cada item:

  • type=message e name=text -> enviar ou exibir o texto ao usuário final.

  • type=command e name=hangup -> encerrar o canal ou a chamada.

  • type=command e name=transfer -> executar a transferência conforme o payload.

  • type=command e name=finish_flow -> registrar o desfecho final e encerrar o workflow local.

  1. Quando houver nova entrada do usuário, reenviar para o mesmo endpoint com o mesmo external_id.

9. `finish_flow`: desfecho oficial da jornada

O comando `finish_flow` é o marcador final do resultado de negócio do fluxo.

Resultados esperados em payload.result:

Valor

Significado

success

Concluído com sucesso.

unsuccess

Concluído sem sucesso.

neutral

Finalização neutra.

transfer

Finalização por transferência.

triangle-exclamation

Recomendação importante de integração

circle-check

Boas práticas

Atualizado