Zenvia no CONAREC 2024: veja o que aconteceu no maior evento de CX do mundo
Saiba mais sobre a participação da Zenvia no maior evento de customer experience do mundo, o CONAREC 2024.
Saiba maisO melhor portal de Marketing e Vendas para a sua empresa
Confira o passo a passo para enviar e receber mensagens de WhatsApp utilizando a API da Zenvia. Teste agora!
Quer integrar a sua ferramenta com a API de WhatsApp da Zenvia e automatizar seus processos, mas ficou com dúvidas de como configurar este serviço? Este artigo se propõe a explicar de maneira simples e descomplicada como configurar um ambiente de integração, apresentando informações complementares à documentação técnica e exemplos de funcionamento do serviço de disparo e recebimento de mensagens de WhatsApp.
Este tutorial estará dividido em 4 seções que representam as etapas fundamentais do processo de integração:
Importante:
Os passos abaixo se aplicam à integração com uma conta WhatsApp Business API Oficial, em ambiente de Produção. Se você ainda não possui um número contratado com a Zenvia e deseja testar a API, crie uma conta gratuita na nossa plataforma e execute os testes utilizando a ferramenta Sandbox.
A comunicação com a ZENVIA API’s irá ocorrer toda vez que a sua aplicação necessitar utilizar algum serviço da nossa API. Toda vez que a sua aplicação envia uma solicitação de disparo de mensagem para a API, vamos chamar de requisição.
Cada requisição é composta pelos elementos que serão apresentados nas próximas seções.
Exemplo visual de funcionamento da integração:
O primeiro passo para que a sua aplicação consiga se comunicar com a nossa API é a Autenticação.
A nossa API possui 2 opções de chaves de autenticação: JWT e TOKEN.
Acesse a seção Authentication da documentação e entenda qual destas chaves se aplica ao seu caso.
Caso você opte por autenticar via JWT, para obtê-lo basta acessar a nossa plataforma, logado na conta Oficial da sua empresa (na qual deve estar vinculado o número de WhatsApp). No menu principal, acesse a opção Área do Cliente > Preferências > Minhas Contas e obter o API Token:
Caso você opte por autenticar via TOKEN, logado na plataforma Zenvia, você deve acessar o caminho Produtos > Desenvolvedores > Tokens e Webhooks:
Caso ainda não haja nenhum Token disponível na sua conta, basta clicar em Criar Novo, escolher um nome e salvar:
Ele ficará disponível por tempo indeterminado e você pode consultá-lo quantas vezes for necessário:
Ter uma Webhook configurada e integrada com o ambiente da Zenvia, permite que você receba respostas da nossa API na sua aplicação.
Há dois tipos de eventos disponíveis:
Para vincular o seu endereço de Webhook com a nossa plataforma, basta acessar o caminho Produtos > Desenvolvedores > Tokens e Webhooks e clicar em Criar Novo:
Salve a configuração.
O Header ou Cabeçalho da requisição é formado por dois parâmetros:
O endpoint do serviço de disparo de mensagens de WhatsApp é https://api.zenvia.com/v2/channels/whatsapp/messages.
O formato do body da requisição varia de acordo com o tipo de mensagem que será enviada.
O WhatsApp disponibiliza os seguintes tipos de mensagens: text, template, file, contact, location.
A documentação técnica fornece exemplos de cada um dos formatos bem como as especificidades de cada parâmetro:
Para este tutorial, usaremos os dois mais comuns: text e template.
Antes de mais nada, é necessário compreendermos que o WhatsApp só permite o contato ativo com o usuário final por meio de um Template pré-aprovado. Saiba como criar um Template clicando aqui.
Sendo assim, caso você esteja configurando um processo onde a empresa vai iniciar o contato, saiba que você precisará utilizar o tipo template.
As mensagens do tipo text poderão ser enviadas sempre no intuito de responder o usuário final. A janela para responder o usuário final usando mensagens do tipo text é de 24h. Passado este prazo, você precisa novamente enviar um template para retomar o contato.
Também não é permitido enviar uma mensagem do tipo text logo após o envio de um template, sem que o usuário já tenha respondido alguma vez. O WhatsApp sempre irá aguardar que haja uma interação por parte do usuário final para permitir o envio de uma mensagem do tipo text.
Vamos iniciar então a simulação com o envio de uma mensagem do tipo template.
A estrutura da mensagem deve conter essencialmente o ID do template e todos os campos variáveis nele contidos.
No exemplo abaixo, o template possui as variáveis {{name}} e {{ticket}}:
Resultado do disparo:
Neste momento, já devemos ter recebido na Webhook cadastrada, o STATUS de entrega desta mensagem. Como a mensagem foi enviada, entregue e lida pelo usuário, receberemos 3 eventos:
Se o usuário final responder a mensagem, a API enviará um evento do tipo MESSAGE para a Webhook cadastrada, como no exemplo abaixo:
Após as primeiras interações (envio de um Template e resposta do usuário final) a plataforma já permite o disparo de uma mensagem do tipo text.
Segue um exemplo de request:
Resposta: Se você tiver uma Webhook de Status configurada, será possível consultar o status de erro no envio.
Os motivos mais comuns são:
Resposta: Como no exemplo passada na seção Text, a quebra de linha é representada pelo símbolo \n.
No caso dos disparos de Template, a quebra de linha já deve estar prevista no modelo pré-aprovado.
Resposta: Não é possível passar informações em formato de lista como conteúdo de uma variável. No caso dos disparos de Template, a quebra de linha deve estar prevista dentro do modelo pré-aprovado.
Resposta: Como no exemplo passada na seção Text, basta passar o próprio Emoji na requisição, pois a API está preparada para interpretar este formato de conteúdo. Você pode obter os Emojis padrão no WhatsApp em bibliotecas na Web;
No caso dos disparos de Template, o Emoji já deve estar previsto no modelo pré-aprovado.
Resposta: Basta adicionar um parâmetro do array fields informando a URL do arquivo. O nome das variáveis são respectivamente: imageUrl, videoUrl e documentUrl. Exemplo:
Resposta: Caso o template não possua nenhuma variável, basta manter o array fields vazio. Exemplo:
Esperamos que suas dúvidas tenham sido esclarecidas e que, a partir de agora, você esteja pronto para empoderar a sua comunicação junto com a gente! ?
*Amanda Niches é Analista de Atendimento ao Cliente (Customer Support) – plataformas Zenvia Bots, Zenvia Chat e WhatsApp API | LinkedIn.