[Guia para desenvolvedores] Conheça os recursos da API para envio de mensagens no WhatsApp

A API da Huggy possibilita que desenvolvedores criem soluções integradas ao WhatsApp com diferentes objetivos:

  • Comunicações de marketing integradas a CRMs
  • Ações ativas para recuperação de carrinho abandonado em lojas virtuais
  • Atualização em tempo real de encomendas
  • Entre outros

Neste guia técnico, você encontrará detalhes sobre os recursos disponíveis na API para o envio de mensagens no WhatsApp.

Para usar esse guia, você precisa ter conhecimentos em lógica de programação, protocolo HTTP, API RESTful e JSON.

Conhecendo as diferentes abordagens

Para enviar mensagens no WhatsApp via API, você conta com algumas possibilidades:

  • Disparar uma mensagem em uma conversa em andamento
  • Enviar um modelo de mensagem para iniciar uma conversa, ou em uma conversa em andamento

Além disso, com o Flow é possível estabelecer fluxos automatizados que enviam mensagens e opcionalmente executam outras ações. Nesse tipo de abordagem, você pode:

  • Disparar um fluxo que envia mensagens em um chat 
  • Iniciar um chat com o envio de um modelo de mensagem para um contato cadastrado na Huggy

Efetuando as requisições para a API

As requisições à API v3 devem ser feitas para a URL https://api.huggy.app/v3, contendo os seguintes cabeçalhos:

Content-Type: application/json

Accept: application/json

Authorization: Bearer xxxxxxx

Para obter o Bearer token, você pode utilizar nossa solução de autenticação pronta ou implementar o fluxo OAuth 2.0 utilizando sua linguagem de preferência.

Disparando uma mensagem em um chat

Veja como estruturar sua requisição para enviar uma mensagem em um chat.

Esse recurso deve ser utilizado quando existe uma conversa em execução. Isso vale tanto para conversas que tenham sido iniciadas pelo cliente, ou pela empresa por meio de um modelo de mensagem aprovado pela Meta. 

Método: POST

Endpoint: chats/{chatID}/messages

Body: Inclua o texto da mensagem que será enviada utilizando o parâmetro “text”.

{
"text": "Olá, John!"
}

Além de texto, você pode enviar botões, arquivos e outros dados na mensagem. Clique aqui e saiba mais.

Disparando um modelo de mensagem em um chat

Você pode utilizar a API para efetuar o envio de um modelo de mensagem em um chat. Essa estratégia deve ser utilizada quando já existe um chat criado na Huggy.

Método: POST

Endpoint: chats/{chatID}/messages

Body: Informe o identificador da template e os parâmetros de mensagem (se houverem).

{
"hsm": {
"template_id": 675,
"params":
{
"1": "John Doe",
"2": "Huggy"
}
}
}

Como mencionamos, é necessário que um chat esteja criado na Huggy para que você inicie uma conversa no WhatsApp por meio de um modelo de mensagem. Para isso, é possível criar um chat "vazio" na Huggy para posteriormente disparar um modelo de mensagem e iniciar uma conversa.

Para criar um chat na Huggy com a API, você deve utilizar o seguinte recurso:

Método: POST

Endpoint: contacts/{id}/chats

{
  "channelUuid": "28b407cd-81a4-3abf-94d6-ca4f948d5d2f"
}

O id é o identificador do contato. Para acessá-lo, vá para o módulo Contatos e clique no contato desejado. O ID estará à direita, logo abaixo do nome do contato. Você pode também utilizar a API para obter dados de contatos.

Para obter o valor de channelUuid , acesse Configurações > Canais > WhatsApp, escolha o canal desejado e localize o UUID.

Utilizando o Flow

A Huggy permite que você crie fluxos conversacionais automatizados com o Flow. Esses fluxos podem ser disparados pela API em duas situações:

  • Para iniciar uma conversa com um contato
  • Para disparar mensagens em um chat

Utilizando esse tipo de automação, além de agregar novas funcionalidades aos seus chatbots, você evita penalidades impostas por descumprimento de regras da Meta.

A Meta estabelece que uma conversa só pode avançar após o cliente responder a um modelo de mensagem. Para garantir conformidade com essa regra, você pode utilizar a ação Aguardar interação imediatamente após a ação Enviar modelo de mensagem.

Configuração do Flow

Utilizaremos o fluxo a seguir como exemplo para disparar pela API. Neste caso, automatizamos o envio de um modelo de mensagem e aguardamos que a resposta seja recebida.

Apenas quando o cliente interagir no chat é que a próxima ação será executada. Neste exemplo, o chat será encaminhado para a fila de atendimento. Mas, poderíamos utilizar outros tipos de ações a depender do resultado esperado.

Executando um flow para um contato

Veja como configurar uma requisição para executar um flow para um contato:

Método: PUT

Endpoint: contacts/{contactId}/execFlow

Body: Deve informar os campos uuid e flowId:

{
"uuid": "a12cal3r-4a14-8826-d50ad7e9ccc",
"flowId": 35504
}

Propriedades

uuid: identificador do canal em que a comunicação vai acontecer. Para localizá-lo, acesse Configurações > Canais > WhatsApp e escolha o canal desejado.

flowId: valor numérico único pelo qual identificamos o fluxo que será executado. Esse valor pode ser encontrado na URL do flow, como destacado na imagem:

contactId: identificador do contato. Para acessá-lo, vá para o módulo Contatos e clique no contato desejado. O ID estará à direita, logo abaixo do nome do contato. Você pode também utilizar a API para obter dados de contatos.

Propriedades opcionais

Algumas propriedades podem ser incluídas na requisição para personalização adicional:

{
"uuid": "a12cal3r-4a14-8826-d50ad7e9ccc",
"flowId": 35504,
"whenInChat": true,
"whenWaitForChat": true,
"whenInAuto": true,
"variables":
{ "data": "15/10/2019",
"inscricao": "confirmada"
}

}

whenInChat: define o comportamento quando o atendimento está em chat com um agente.

  • true: O agente é removido e o fluxo é acionado.
  • false: O fluxo não é executado.

whenWaitForChat: define o comportamento quando o atendimento está aguardando na fila.

  • true: O fluxo não é executado.
  • false: O atendimento retorna para a camada automática e o fluxo é executado.

whenInAuto: define o comportamento quando o atendimento está na camada automática, ou com outro flow em processamento.

  • true: O fluxo em execução é abortado e o novo fluxo é iniciado.
  • false: O fluxo não é executado.

Obs.: Quando essas propriedades não são especificadas, o valor padrão é false.

variables: permite a definição de variáveis de contexto personalizadas para incorporar novas informações ao chat.

As variáveis data e inscricao, exemplificadas abaixo, podem ser utilizadas de modo que, após uma resposta positiva do cliente, a confirmação da inscrição e a data de um evento sejam informadas pelo Flow:

"variables": {
"data": "15/10/2019",
"inscricao": "confirmada"
}

Executando um flow em um chat

Veja agora como configurar uma requisição para executar um flow em um chat em andamento:

Método: POST

Endpoint: /chats/{chatId}/flow

Para encontrar o chatId, acesse o atendimento desejado e localize o valor na seção Detalhes do atendimento, presente na lateral direita da tela.

Além disso, você pode utilizar a API para obter dados de chats.

Body: Deve informar o flowId para indicar qual flow executar:

{
  "flowId": 142714
}

Se outro flow estiver em execução no chat, ele será abortado para iniciar o novo fluxo.

Personalize seu flow

O Flow tem um recurso que vai te ajudar a explorar as propriedades opcionais mencionadas aqui: a ação Condicional.

Clique aqui para acessar um conteúdo exclusivo sobre a Condicional e aprenda a deixar seu fluxo de mensagens ainda mais inteligente.


O que você achou deste artigo?


some text
Powered by HelpDocs (opens in a new tab)