Como funciona?

Quando um usuário responde a uma mensagem, podemos configurar um webhook para que seja acionado e envie uma solicitação HTTP ao seu endpoint configurado no Treble. Este webhook é um dos mais importantes para implementar casos de uso complexos, como a automação de processos ou a integração com outras aplicações. Por exemplo, você pode configurar um webhook para capturar a resposta de um cliente quando for solicitado seu número de identificação. O Treble enviará uma solicitação HTTP ao seu endpoint configurado no Treble com a resposta do cliente que você pode processar em sua aplicação. Posteriormente, você pode até mesmo retornar informações para a conversa (fluxo) do Treble para exibir informações dinâmicas obtidas pelo seu servidor, ou direcionar a conversa por outro caminho.

Diagrama de Fluxo do Webhook de Resposta de Mensagem

Neste exemplo, o cliente responde a uma mensagem do WhatsApp com seu número de identificação. O Treble envia uma solicitação HTTP ao seu endpoint configurado no Treble com a resposta do cliente com o número de identificação. Seu servidor a processa e retorna informações ao Treble para continuar a conversa. Diagrama de Fluxo do Webhook de Resposta de Mensagem

Como configurar um webhook de resposta de mensagem?

1

Entre no Treble.ai

Entre no Treble.ai através da seguinte URL:

https://app.treble.ai

2

Criação de um fluxo

Vá para a seção “Conversas” e clique no botão “Criar Conversa”. Você também pode configurar um webhook de leitura de mensagem em um fluxo existente. Para isso, vá para a seção “Fluxos” e clique no botão “Editar” do seu fluxo.Criar Conversa
3

Adicionar blocos de mensagens

Vamos adicionar o primeiro bloco de mensagem. Clique no botão “Adicionar bloco” . Neste caso, vamos adicionar um template de mensagem (HSM) previamente criado e aprovado pelo Meta. Depois vamos conectar um bloco simples de mensagem com o bloco de HSM. Aqui vamos perguntar pelo número de identificação do cliente.Adicionar um bloco de mensagem
4

Ativar webhook e adicionar endpoint

Agora, vamos dar duplo clique na seta que sai do bloco de mensagem e conecta com o bloco de resposta. Um campo de texto aparecerá na parte superior. Neste campo, vamos adicionar o endpoint para o qual você deseja que a solicitação HTTP seja enviada quando esta mensagem for lida.Adicionar um bloco de mensagem
5

Especificar a variável para capturar a resposta

É necessário especificar a variável para capturar a resposta do cliente. Vamos dar duplo clique no bloco de pergunta onde estamos pedindo o número de identificação. No painel que se abre à esquerda, vamos clicar na opção “Salvar resposta como variável”. Dois campos vão aparecer:
  • “Tipo de resposta”: Aqui você pode escolher o tipo de resposta que deseja capturar. Neste caso, vamos escolher “Número”.
  • “Nome da variável”: Aqui você pode adicionar o nome da variável que deseja que seja salva. Neste caso, vamos adicionar id_cliente.
Adicionar um bloco de mensagemO uso de variáveis no Treble é um conceito chave para a automação de processos. Você pode ler mais sobre elas em:

Variáveis no Treble

Aprenda mais sobre variáveis no Treble.
6

Salvar alterações

Para que o webhook seja acionado, você deve salvar as alterações. Se você estiver em um fluxo novo, clique no botão “Publicar Conversa” para salvar o fluxo. Se você estiver em um fluxo existente, clique no botão “Salvar” para salvar as alterações.
Pronto! Agora, quando alguém responder à sua mensagem, o webhook será acionado e enviará uma solicitação HTTP ao seu endpoint configurado no Treble. O corpo da solicitação vai conter informações do evento de resposta.

Corpo do Webhook de Resposta de Mensagem

Aprenda mais sobre o corpo do webhook de resposta de mensagem.

Tutorial Avançado - Resposta do seu Servidor

No passo a passo anterior, vimos como configurar um webhook de resposta de mensagem no Treble. Agora, vamos ver como processar a resposta do cliente no seu servidor. Para isso, é necessário que seu servidor tenha um endpoint público ao qual a solicitação HTTP possa ser enviada.

Passo a Passo

  1. Configure seu servidor: Certifique-se de que seu servidor esteja configurado para receber solicitações HTTP. Você pode usar um framework como Express em Node.js para facilitar este processo.
  2. Crie um endpoint para o webhook: Defina um endpoint em seu servidor que possa receber as solicitações do webhook.
  3. Processe a solicitação: Extraia as informações relevantes da solicitação e realize as ações necessárias, como verificar se o usuário existe.
  4. Envie uma resposta ao Treble: Retorne uma resposta ao Treble com as informações processadas, como o status de autenticação do usuário. A resposta deve ser um JSON com o seguinte formato:
     {
         "user_session_keys":[
             {
                 "key":"servidor_usuario_valid",
                 "value":"sim"
             }
         ]
     }
    
Os user_session_keys é um array de objetos que contém a chave e o valor da resposta. Para este exemplo, a chave deve ser servidor_usuario_valid e o valor deve ser sim se o usuário existe ou não se não existe. No entanto, você pode enviar de volta ao Treble qualquer informação que precise para continuar a conversa. Tal resposta pode conter mais variáveis que podem ser usadas no fluxo. Exemplo:
{
    "user_session_keys":[
        {
            "key":"nome_usuario",
            "value":"João Silva"
        },
        {
            "key":"data_ultima_compra",
            "value":"2025-01-01"
        }
    ]
}

Exemplo de Código

Aqui você tem um exemplo básico de como poderia implementar isso em Node.js:
const express = require('express');
const app = express();
app.use(express.json());

app.post('/webhook', (req, res) => {
    // Extrai a identificação do usuário dos user_session_keys
    const identificacao = req.body.user_session_keys.find(key => key.key === 'id_cliente')?.value;

    // Simula a verificação do usuário
    const usuarioExiste = verificarUsuario(identificacao);

    // Prepara a resposta para o Treble
    const resp_servidor = usuarioExiste ? 'sim' : 'não';

    // Envia a resposta de volta ao Treble com a estrutura correta
    res.json({
        user_session_keys: [
            {
                key: "servidor_usuario_valid",
                value: resp_servidor
            }
        ]
    });
});

function verificarUsuario(identificacao) {
    // Lógica para verificar se o usuário existe
    // Aqui você pode consultar um banco de dados ou um serviço externo
    return identificacao === '12345'; // Exemplo de verificação
}

app.listen(3000, () => {
    console.log('Servidor escutando na porta 3000');
});
  1. De volta em sua conversa (fluxo) no Treble, conectamos um bloco de condições para avaliar a resposta do servidor. Note como a variável servidor_usuario_valid é uma variável de sessão que é salva no fluxo e é a resposta que é enviada ao servidor. O bloco de condições é um bloco do tipo “Se” e avalia se a variável servidor_usuario_valid é igual a sim. Se for, continua pelo caminho de usuário autenticado. Se não, continua por outro caminho.
Adicionar um bloco de mensagem
Pronto! Configuramos um webhook de resposta de mensagem no Treble. Agora, quando alguém responder à sua mensagem, o webhook será acionado e enviará uma solicitação HTTP ao seu endpoint configurado no Treble com a resposta do cliente. Seu servidor a processa e retorna informações ao Treble para continuar a conversa.

Tenha em mente

  • Você deve configurar o webhook de resposta para cada resposta (seta ) que sai de um bloco de mensagem. Se você configurá-lo em uma única resposta ou a primeira, ele será acionado apenas para a primeira resposta.
Na imagem a seguir, você pode ver como deve configurar o webhook de resposta para cada uma das 3 respostas que saem de um bloco de mensagem. Configurar webhook de resposta
A resposta do seu servidor ao webhook não pode durar mais de 10 segundos. Se seu servidor demorar mais de 10 segundos para responder, o webhook será marcado como timeout e a conversa do fluxo no Treble continuará. Você pode estender o tempo de resposta com a opção [REQUEST_TRIGGER]. Para mais informações, você pode ler o artigo: Parar conversa do Treble e aguardar resposta do seu servidor.