Mensagens de serviço WhatsApp
Uma mensagem de serviço é qualquer coisa que você envia e que não seja um template pré-aprovado: o conteúdo livre que uma empresa envia dentro de uma conversa aberta. POST /v1/whatsapp/messages carrega exatamente um dos nove tipos de conteúdo de mensagem de serviço, ou um template. Esta página cobre o que os nove tipos têm em comum; a página de cada tipo cobre seu formato no fio e seus próprios limites.
Os tipos de conteúdo
| Tipo | Campo | O que carrega | Use quando |
|---|---|---|---|
| Texto simples | text | Um corpo de até 4.096 caracteres, com uma pré-visualização de link opcional | você estiver enviando uma mensagem sem anexo |
| Imagens | image | Uma URL pública de imagem e uma legenda opcional | você estiver enviando uma foto ou um gráfico |
| Vídeo | video | Uma URL pública de vídeo e uma legenda opcional | você estiver enviando um clipe de vídeo |
| Áudio | audio | Uma URL pública de áudio, opcionalmente exibida como nota de voz | você estiver enviando uma mensagem de voz ou um clipe de áudio |
| Stickers | sticker | Uma URL pública de imagem WebP | você estiver enviando um sticker |
| Documentos | document | Uma URL pública de arquivo, uma legenda opcional e um nome de arquivo opcional | você estiver enviando um PDF, uma planilha ou outro arquivo |
| Localização | location | Latitude e longitude, com um nome e endereço opcionais | você estiver enviando um pin, como um ponto de retirada |
| Cartões de contato | contact_cards | De um a cinco cartões de contato, cada um com nome e quaisquer números, e-mails, sites ou endereços | você estiver compartilhando os dados de alguém, como o número de um colega |
| Mensagens interativas | interactive | Texto do corpo mais um botão, um menu, um link, um card ou uma solicitação de localização ou contato | você quiser que o destinatário toque em algo em vez de digitar uma resposta livre |
Uma solicitação carrega exatamente um entre template ou um desses nove campos. Uma solicitação que não carrega nenhum deles, ou que carrega mais de um, é recusada com um 422.
A janela de atendimento ao cliente
Uma mensagem de serviço, ou seja, qualquer um dos nove tipos acima, é entregue apenas dentro de uma janela de atendimento ao cliente de 24 horas aberta. O contato abre essa janela ao enviar uma mensagem ou ligar para o número da sua empresa, e cada nova mensagem dele reinicia o prazo para 24 horas.
Uma mensagem de serviço enviada para uma janela fechada é recusada na hora: a solicitação retorna um 422 E15044 WhatsAppServiceWindowClosed, e nada é criado ou cobrado. Envie um template aprovado em vez disso; ele alcança o contato independentemente da janela, e a resposta do contato a reabre. Uma janela que fecha no instante entre a aceitação e o despacho ainda falha, mas de forma assíncrona: a mensagem chega a failed com service_window_expired em last_error.
A verificação no momento da aceitação é feita com melhor esforço, não é uma garantia: a porta falha aberta, então uma falha de leitura ou de cache deixa o envio passar em vez de bloqueá-lo. Um 202 portanto não é prova de que a janela estava aberta quando o envio saiu; o sinal definitivo é o status da própria mensagem, não a resposta de aceitação.
Toda mensagem de serviço também exige from, um número que o seu espaço de trabalho possui. Os números gerenciados de Bird não suportam isso, então uma mensagem de serviço precisa de um número próprio conectado primeiro; veja Configuração de número de telefone.
Veja a janela de atendimento ao cliente para o ciclo de vida completo: como a janela abre, o que a reinicia e como ela é rastreada.
Envio de mídia por URL
image, video, audio, sticker e document usam uma url apontando para um arquivo que WhatsApp busca no momento do envio, em vez de um arquivo que você envia para Bird. Bird verifica o formato da URL na aceitação, antes de qualquer enfileiramento:
- Não vazia e analisável, com um host e sem espaço bruto
- Esquema é https
Uma URL http é rejeitada com um 422 na aceitação, embora WhatsApp a buscasse sem problemas. Isso é política de Bird, não um limite que WhatsApp impõe.
Bird não verifica o tamanho do arquivo, seu tipo MIME nem se a URL está acessível. WhatsApp busca a URL quando despacha a mensagem, então uma URL assinada precisa continuar válida após esse momento, não apenas no momento em que você envia a solicitação; uma URL privada ou expirada falha quando WhatsApp tenta buscá-la. WhatsApp também armazena em cache uma URL buscada por aproximadamente 10 minutos, então reenviar a mesma URL dentro dessa janela serve o resultado da primeira busca em vez de buscar novamente.
Quando a mídia falha
Um envio de mídia segue o mesmo caminho assíncrono de qualquer mensagem WhatsApp: Bird retorna 202 e aceita a mensagem, depois WhatsApp busca a URL quando a despacha. Se essa busca falhar, a mensagem chega a failed com media_rejected em last_error, que é o 131053 da Meta por baixo.
media_rejected é um código genérico que cobre um arquivo grande demais, um 404, uma falha de DNS e um tipo MIME errado igualmente; Bird não o divide além disso, então não espere um código distinto por causa.
Um envio de mídia que falha de forma assíncrona ainda é cobrado. A cobrança acontece quando Bird processa o envio aceito, antes de WhatsApp buscar a URL, e não há caminho de reembolso depois que essa cobrança é registrada. Planeje de acordo: uma mensagem que falha depois em media_rejected já custou o mesmo que uma que foi entregue.
Lendo o que um contato enviou
Uma mensagem de entrada carrega um dos mesmos nove tipos, então o campo que você lê corresponde ao tipo que o contato usou. Cartões de contato são lidos no mesmo campo contact_cards tanto quando o contato compartilhou um quanto quando você enviou um. Recebendo mensagens WhatsApp cobre a leitura de mensagens de entrada pela API, a busca da mídia que um contato enviou e o webhook whatsapp.received.
Próximos passos
- Enviando mensagens WhatsApp: o envelope da solicitação, o modelo 202 e retentativas seguras
- Mensagens interativas: os seis tipos em que o destinatário pode tocar
- Recebendo mensagens WhatsApp: mensagens de entrada, mídia e o webhook whatsapp.received
- Templates WhatsApp: as mensagens que você ainda pode enviar quando a janela está fechada
Recursos relacionados
Continue com a documentação, guias e exemplos sobre este tópico. Os recursos estão em inglês.
Assista ao guiaConnecting WhatsApp to Bird: from buying a number to a live channelEntenda o conceitoWhat is the 24-hour customer service window on WhatsApp?Use a ferramentaWhatsApp message builderExplore a funcionalidadeWhatsApp
Experimente na prática e obtenha um resumo de implementação