Passar para o conteúdo principal

API Remota do BOT

Saiba criar um bot customizado e integrado aos seus sistemas e necessidades.

Escrito por Caroline Silva

A API Remota do Bot permite que você crie uma árvore de decisões totalmente personalizada para o Bot da OmniChat, integrada aos seus sistemas internos. Em vez de configurar o fluxo diretamente na plataforma, você define as respostas e encaminhamentos em uma API própria.

Como funciona o fluxo

  1. O cliente entra em contato por qualquer canal integrado à loja

  2. O Bot recebe a mensagem e apresenta as opções de atendimento

  3. O cliente escolhe uma opção válida

  4. Se a opção for do tipo REMOTE_API_HANDLER, o Bot faz uma chamada para a sua API externa

  5. Com base na resposta da API, o Bot executa uma das seguintes ações:

Tipo de resposta

O que acontece

SEND_TO_TEAM

Redireciona o atendimento para o time especificado

BOT_STATE_CHANGE_HANDLER

Apresenta uma nova árvore de decisão ao cliente

Erro (timeout, formato inválido, código HTTP de erro)

Encaminha para o time configurado em fallbackTeam

Estrutura enviada para a API externa

// Modelo (formato TypeScript)
interface Chat {
  objectId: string;       // id do canal (chat)
  customerId?: string;    // identificador único do cliente
  phone?: string;         // número do telefone
  name?: string;          // nome do cliente (se houver)
  email?: string;         // e-mail do cliente (se houver)
  platform: string;       // WHATSAPP, FBMESSENGER, WEBCHAT ou WAB
  platformId?: string;    // No caso do WAB/WHATSAPP, o número chamado
}interface BotRequest {
  chat: Chat;
  handlerId: string;                    // nome do estado
  customerSupportRequestId: string;    // identificador único do atendimento
}// Exemplo
{
  "chat": {
    "objectId": "IDENTIFICADOR_DA_CONVERSA",
    "customerId": "IDENTIFICADOR_UNICO_DO_CLIENTE",
    "phone": "NUMERO_DO_TELEFONE",
    "name": "NOME_DO_CLIENTE",
    "email": "EMAIL_DO_CLIENTE",
    "platform": "WHATSAPP",
    "platformId": "5541999999999"
  },
  "handlerId": "ID_ESTADO_SELECIONADO",
  "botStateId": "ID_ESTADO_ATUAL",
  "objectId": "IDENTIFICADOR_ÚNICO_DO_ATENDIMENTO"
}

Resposta com SEND_TO_TEAM

{
  "handlerType": "SEND_TO_TEAM",
  "handlerConfig": {
    "teamId": "ID_DO_TIME",
    "routingMessage": "Você está sendo redirecionado para o time XYZ"
  }
}

Resposta com BOT_STATE_CHANGE_HANDLER

{
  "handlerType": "BOT_STATE_CHANGE_HANDLER",
  "toState": {
    "title": "Para melhor atendê-lo, digite o número do setor desejado:",
    "to": [
      {
        "title": "Cursos",
        "handlerType": "SEND_TO_TEAM",
        "index": 1,
        "handlerConfig": {
          "teamId": "ID_DO_TIME",
          "routingMessage": "Você está sendo redirecionado para o setor Cursos."
        }
      },
      {
        "title": "Cursos Online",
        "handlerType": "REMOTE_API_HANDLER",
        "index": 2,
        "handlerConfig": {
          "botStateId": "QUESTAO_INICIAL",
          "handlerId": "ONLINE_COURSES",
          "url": "https://my.domain.com/url/to/service",
          "fallbackTeam": "ID_DO_TIME"
        }
      }
    ]
  }
}

Integrando com a API OmniChat e Webhooks

Além do bot customizado, você pode carregar e enviar dados da OmniChat usando:

  • API OmniChat: acesse ordens, times, usuários, chats e muito mais — documentação em api-docs.omni.chat

  • Webhooks: receba notificações em tempo real de alterações em objetos da OmniChat — veja o artigo de Webhooks para mais detalhes

Dica para desenvolvedores: Sempre configure um fallbackTeam nas integrações com API remota. Isso garante que o cliente nunca fique sem atendimento em caso de falha na sua API externa.

Respondeu à sua pergunta?