Inbox/

Como criar um bot de lista de tarefas no WhatsApp usando o Programmable Conversations API da Bird

Como criar um bot de lista de tarefas no WhatsApp usando o Programmable Conversations API da Bird

Principais conclusões

  • O Programmable Conversations API da Bird unifica WhatsApp, Messenger e SMS em uma camada única de comunicação, simplificando o desenvolvimento de bots multicanal.
  • Você pode prototipar rapidamente um bot de lista de tarefas no WhatsApp usando webhooks e solicitações POST simples.
  • Ferramentas como o ngrok permitem expor seu servidor local para testes de webhook sem configuração complexa de hospedagem.
  • O API gerencia conversas em múltiplos canais, permitindo uma única base de lógica para WhatsApp, WeChat e outros apps.
  • Use o endpoint archiveConversation para encerrar conversas ou “topics,” ideal para suporte ou rastreamento de fluxos de trabalho.
  • A lógica do bot pode gerenciar conversas simultâneas com segurança em memória usando uma estrutura de dados simples.
  • O mesmo handler de webhook funciona em todos os canais: o Bird roteia as respostas automaticamente com base no ID da conversa de origem.

A Bird lançou recentemente o Programmable Conversations. Ele permite que empresas integrem plataformas de comunicação como WhatsApp, Messenger e SMS aos seus sistemas, usando uma única API.

Eu quis experimentar, então criei um bot de lista de tarefas no WhatsApp, porque quem não precisa de uma lista de tarefas automatizada para organizar o dia? Pode parecer complicado, mas foi bem fácil, e eu quero contar tudo sobre isso.

Eu trabalho na MessageBird, então pude simplesmente começar a construir. Se você quiser tentar, vai precisar solicitar acesso antecipado. Mas, depois de configurar um canal no WhatsApp, você pode acessar o Dashboard no site da MessageBird e começar.

Configurando o ambiente do seu bot no WhatsApp

A primeira coisa que fiz foi ler a documentação. Aprendi que, para receber mensagens do bot, eu precisaria usar um webhook. Isso significava que meu bot precisaria estar acessível pela internet. Ao construir APIs assim, é importante seguir as boas práticas de versionamento de API para facilitar a manutenção. Como eu estava apenas começando a programar, decidi usar o ngrok. Ele cria um túnel da internet pública até o seu querido localhost na porta 5007. Vamos lá!

ngrok http 5007 -region eu -subdomain todobot

Criando o webhook e conectando ao Bird

Em seguida, eu precisava fazer uma chamada ao API do Programmable Conversations para criar o webhook. É um POST para https://conversations.messagebird.com/v1/webhooks e se parece com algo assim:

Ótimo. Agora o API do Conversations vai fazer uma solicitação POST para:

https://todobot.eu.ngrok.io/create-hook sempre que uma nova mensagem for criada no canal WhatsApp que você configurou anteriormente.

Este é o formato do payload de um webhook:

Queremos responder a essas mensagens. Vamos começar ecoando elas, o que acha?

Enviando respostas e tratando mensagens

Agora, a parte interessante. Faça uma solicitação POST para:

https://conversations.messagebird.com/v1/conversations/<conversationID>/messages para responder à solicitação.

Pronto. Isso é tudo o que você precisa para criar um bot que age como uma criança de 5 anos.

Veja por que usar o Conversations API da Bird torna o desenvolvimento de bots no WhatsApp rápido e escalável:

RecursoO que resolve
ID de conversa unificadoManter uma única thread entre apps como WhatsApp, WeChat e Messenger
API único para todos os canaisReutilizar a lógica do bot sem reescrever para cada plataforma
Automação orientada a webhooksTratamento rápido de respostas sem polling
Arquivar + reabrir tópicosOrganizar histórico de suporte e fluxos de trabalho
Estrutura segura para concorrênciaLidar com múltiplos chats simultaneamente de forma confiável

Agora, vamos avançar para construir a lista de tarefas completa. Primeiro, modifique um pouco a função createHookHandler para que ela chame a nova função handleMessage em vez de respond.

handle vai analisar as mensagens de forma simplificada, fazer algum trabalho e escolher a resposta. Vamos ver o comando “add”:

Aqui, configuramos: list := manager.fetch(whp.Conversation.ID). Basicamente, “manager” é um mapa seguro para concorrência que associa IDs de conversa a listas de tarefas.

Uma lista de tarefas é um slice de strings seguro para concorrência. Tudo em memória!

Arquivando conversas e escalando seu bot

Outra coisa importante! Você pode arquivar conversas. Em algumas aplicações, como CRMs, é importante rastrear certas interações, por exemplo, para acompanhar a eficácia dos funcionários de suporte ao cliente. O API do Conversations permite arquivar uma conversa para “close” o tópico. Se o usuário/cliente enviar outra mensagem, o API do Conversations abrirá um novo tópico automaticamente.

Gerenciando o ciclo de vida da conversa

Além disso, fazer uma solicitação PATCH para https://conversations.messagebird.com/v1/conversations/{id} com o status correto no corpo permite arquivar a conversa com aquele id. Fazemos isso com o comando “bye”:

archiveConversation fará a solicitação PATCH e manager.close(whp.Conversation.ID) removerá a conversa da lista de tarefas.

Mas espere, o Programmable Conversations é uma solução omnicanal. E se você quisesse reutilizar o código do bot para uma plataforma diferente, como o WeChat? Essa abordagem multicanal faz parte da estratégia de redirecionar consultas para canais de menor custo. Como você faria?

Basta criar um novo webhook direcionado a esse canal! Um webhook que envia solicitações para a mesma url https://todobot.eu.ngrok.io/create-hook que usamos para o WhatsApp!

Isso funciona porque o código do handler sempre usa o conversationID do payload do webhook para responder às mensagens, em vez de um channelID fixo no código. O Conversations API da MessageBird determinará automaticamente o canal da conversa para enviar sua mensagem.

Quer criar seu próprio bot? Veja o código completo no Github: Wabot no Github, solicite acesso antecipado ao WhatsApp visitando a página WhatsApp e clicando no botão Contact Sales para preencher o formulário. Bom botting!

Perguntas e respostas

É difícil criar um bot no WhatsApp usando o API da Bird?

É surpreendentemente fácil. Com um webhook e algumas chamadas à API, você consegue criar um bot funcional que lê e responde mensagens em minutos.

Preciso de uma configuração especial para receber mensagens?

Sim, o bot precisa estar acessível pela internet. Ferramentas como o ngrok ajudam a criar um túnel seguro a partir da sua máquina local.

Posso usar a mesma base de código para diferentes apps de mensagens?

Com certeza. O API do Conversations abstrai os canais, então seu bot pode rodar no WhatsApp, WeChat ou Messenger usando a mesma lógica.

Como encerro ou reinicio uma thread de chat?

Envie uma solicitação PATCH para o endpoint da conversa com o status adequado para arquivá-la. Qualquer nova mensagem abre automaticamente uma nova conversa.

Onde posso encontrar código de exemplo?

R: A demonstração funcional completa, Wabot no GitHub, mostra a implementação do tratamento de mensagens, concorrência e arquivamento.

Sua próxima ideia.
Pronta para conectar.