Enviar mensagens, modelos, mídias, interações e reações pelo WhatsApp.
O que faz
Integre o WhatsApp ao fluxo. Envie mensagens de texto, de modelo, de mídia e interativas, reaja a mensagens e marque mensagens como lidas pela WhatsApp Cloud API. Mensagens livres só chegam ao destinatário até 24 horas depois da última mensagem que ele enviou a você — fora dessa janela, o WhatsApp exige um modelo pré-aprovado.
Quando usar: Use quando o seu fluxo precisar enviar mensagens, modelos, mídias, interações e reações pelo WhatsApp.
Exemplo de situação: Enviar uma confirmação ao cliente ou à equipe no canal correto.
Antes de começar
Conexão necessária: Credencial protegida.
Escolha uma conexão ou credencial já cadastrada no workspace. Nunca cole senhas ou chaves em campos de texto comuns.
Passo a passo
- Adicione WhatsApp ao desenho a partir da aba Blocos e ligue a entrada dele à etapa anterior.
- Escolha uma conexão ou credencial já cadastrada no workspace. Nunca cole senhas ou chaves em campos de texto comuns.
- Escolha a operação. O painel mostra só os campos que essa operação usa.
- Preencha os campos obrigatórios. Para usar um dado de uma etapa anterior, digite < e escolha o bloco e o campo.
- Clique em Executar com dados de teste e confira, no terminal, o que entrou e o que saiu do bloco.
- Só publique depois de conferir o resultado da execução de teste.
Para configurar o gatilho
- Acesse o Meta App Dashboard e abra o app conectado à sua configuração da WhatsApp Business Platform. Se você criou o app pelo caso de uso do WhatsApp, a página de configuração pode estar em Use cases > Customize > Configuration em vez de WhatsApp > Configuration.
- Se você ainda não tem um app, crie um primeiro e adicione o produto WhatsApp antes de configurar os webhooks.
- Clique em "Salvar configuração" acima antes de verificar a URL de callback, para que a plataforma tenha uma configuração ativa de webhook do WhatsApp neste endereço. Se este fluxo já estiver publicado e você alterar o token de verificação ou o segredo do app, publique o fluxo de novo antes de verificar outra vez na Meta.
- Em WhatsApp > Configuration, encontre a seção Webhooks e clique em Edit.
- Cole a URL do webhook acima no campo "Callback URL".
- Cole o Token de verificação no campo "Verify token".
- Copie o App Secret do seu app em App Settings > Basic e cole no campo Segredo do app (App Secret) acima, para que a plataforma possa validar as assinaturas das requisições POST.
- Clique em "Verify and save".
- Clique em Manage ao lado dos campos do webhook e assine o campo messages. Esse campo cobre as mensagens recebidas e as atualizações de status das mensagens enviadas.
Operações
| Operação | O que faz |
|---|---|
| Enviar mensagem | Envia mensagem com o bloco WhatsApp. |
| Enviar modelo | Envia modelo com o bloco WhatsApp. |
| Enviar mídia | Envia mídia com o bloco WhatsApp. |
| Enviar mensagem interativa | Envia mensagem interativa com o bloco WhatsApp. |
| Enviar reação | Envia reação com o bloco WhatsApp. |
| Marcar como lida | Marca como lida com o bloco WhatsApp. |
Campos
Operação
Escolhe qual ação este bloco executará.
- Opções:
- Enviar mensagem · Enviar modelo · Enviar mídia · Enviar mensagem interativa · Enviar reação · Marcar como lida
- Padrão:
- Enviar mensagem
Telefone do destinatário
Obrigatório conforme a operaçãoInclua o sinal de mais (+) e o código do país.
- Quando aparece:
- Quando o campo “Operação” for diferente de “Marcar como lida”
- Exemplo:
- +5511999999999
Mensagem
Obrigatório conforme a operaçãoTexto livre (máximo de 4096 caracteres). O WhatsApp só entrega esta mensagem até 24 horas depois da última mensagem do destinatário para você — fora dessa janela, use Enviar modelo.
- Aparece em:
- Enviar mensagem
- Exemplo:
- Olá! Sua solicitação foi processada com sucesso.
Pré-visualizar o primeiro link
Em campos adicionaisFaz o WhatsApp tentar exibir uma prévia do primeiro link da mensagem.
- Aparece em:
- Enviar mensagem
- Opções:
- Não · Sim
- Padrão:
- Não
Nome do modelo
Obrigatório conforme a operaçãoInforme o nome do modelo aprovado.
- Aparece em:
- Enviar modelo
- Exemplo:
- Exemplo de atendimento
Idioma do modelo
Obrigatório conforme a operaçãoDefine o idioma do modelo ou conteúdo, como pt_BR ou en_US, no formato aceito pelo serviço.
- Aparece em:
- Enviar modelo
- Padrão:
- en_US
- Exemplo:
- pt-BR
Componentes do modelo
Em campos adicionaisLista JSON de componentes do modelo com os parâmetros das variáveis.
- Aparece em:
- Enviar modelo
- Exemplo:
- [{"type":"body","parameters":[{"type":"text","text":"valor"}]}]
Tipo de mídia
Obrigatório conforme a operaçãoInforma ou seleciona o arquivo usado nesta operação.
- Aparece em:
- Enviar mídia
- Opções:
- Imagem · Documento · Vídeo · Áudio · Figurinha
- Padrão:
- Imagem
Mídia
O arquivo é carregado no WhatsApp e depois enviado. Se for enviar o mesmo arquivo várias vezes, carregue a mídia uma vez e use o ID dela.
- Aparece em:
- Enviar mídia
- Exemplo:
- (selecione um arquivo de teste)
Mídia
Em campos adicionaisReferencie um arquivo de um bloco anterior.
- Aparece em:
- Enviar mídia
ID da mídia
Em campos adicionaisAlternativa ao campo Mídia. Reaproveita uma mídia já carregada por até 30 dias.
- Aparece em:
- Enviar mídia
- Exemplo:
- id-do-recurso
Link da mídia
Em campos adicionaisAlternativa ao campo Mídia. O WhatsApp baixa esta URL e a mantém em cache por 10 minutos.
- Aparece em:
- Enviar mídia
- Exemplo:
- https://api.exemplo.com/v1/recurso
Legenda
Em campos adicionaisMáximo de 1024 caracteres. Não disponível para áudio nem figurinha.
- Aparece em:
- Enviar mídia
- Exemplo:
- Olá! Sua solicitação foi processada com sucesso.
Nome do arquivo
Em campos adicionaisNome do arquivo (opcional, para documentos).
- Aparece em:
- Enviar mídia
- Exemplo:
- Exemplo de atendimento
Tipo de mensagem interativa
Obrigatório conforme a operaçãoEscolhe uma das opções aceitas por este campo.
- Aparece em:
- Enviar mensagem interativa
- Opções:
- Botões de resposta · Lista
- Padrão:
- Botões de resposta
Texto principal
Obrigatório conforme a operaçãoMáximo de 1024 caracteres com botões de resposta e de 4096 com lista.
- Aparece em:
- Enviar mensagem interativa
- Exemplo:
- Olá! Sua solicitação foi processada com sucesso.
Botões de resposta
Obrigatório conforme a operaçãoLista JSON de botões de resposta (até 3; título com até 20 caracteres).
- Aparece em:
- Enviar mensagem interativa
- Exemplo:
- [{"type":"reply","reply":{"id":"sim","title":"Sim"}}]
Texto do botão da lista
Obrigatório conforme a operaçãoTexto do botão que abre a lista (até 20 caracteres).
- Aparece em:
- Enviar mensagem interativa
- Exemplo:
- Olá! Sua solicitação foi processada com sucesso.
Seções da lista
Obrigatório conforme a operaçãoLista JSON de seções (até 10 seções e 10 opções no total).
- Aparece em:
- Enviar mensagem interativa
- Exemplo:
- [{"title":"Seção","rows":[{"id":"r1","title":"Opção 1"}]}]
Texto do cabeçalho
Em campos adicionaisMáximo de 60 caracteres.
- Aparece em:
- Enviar mensagem interativa
- Exemplo:
- Olá! Sua solicitação foi processada com sucesso.
Texto do rodapé
Em campos adicionaisMáximo de 60 caracteres.
- Aparece em:
- Enviar mensagem interativa
- Exemplo:
- Olá! Sua solicitação foi processada com sucesso.
ID da mensagem
Obrigatório conforme a operaçãoInforma o identificador exato do recurso na plataforma conectada.
- Aparece em:
- Enviar reação, Marcar como lida
- Exemplo:
- id-do-recurso
Emoji
Define a reação enviada à mensagem; deixe vazio somente quando a operação permitir remover a reação.
- Aparece em:
- Enviar reação
- Exemplo:
- 👍
Mostrar indicador de digitação
Em campos adicionaisMostra ao remetente que você está digitando. O aviso some quando você responde ou depois de 25 segundos.
- Aparece em:
- Marcar como lida
- Opções:
- Não · Sim
- Padrão:
- Não
ID do número de telefone do WhatsApp
ObrigatórioID do número de telefone do seu WhatsApp Business.
- Exemplo:
- id-do-recurso
Token de acesso
ObrigatórioDado protegidoToken de acesso da API do seu WhatsApp Business.
- Padrão:
- Segredo protegido
Saídas
Para usar um resultado deste bloco em uma etapa seguinte, digite < no campo e escolha o bloco e o campo. A referência tem o formato <whatsapp.success>: antes do ponto vai o nome do bloco no seu fluxo, em minúsculas, sem espaços e sem acentos.
| Referência | Tipo | O que contém |
|---|---|---|
<whatsapp.success> | boolean | Indica se o envio foi concluído com sucesso. |
<whatsapp.messageId> | string | Identificador da mensagem no WhatsApp. |
<whatsapp.messageStatus> | string | Status do ritmo de envio retornado pela API: accepted, held_for_quality_assessment ou paused. Mensagem aceita não significa mensagem entregue — use o gatilho de webhook para acompanhar a entrega. |
<whatsapp.messagingProduct> | string | Produto de mensagens retornado pela API de envio. |
<whatsapp.inputPhoneNumber> | string | Telefone do destinatário devolvido pela API de envio. |
<whatsapp.whatsappUserId> | string | ID de usuário do WhatsApp identificado para o destinatário. |
<whatsapp.contacts> | array | Contatos do destinatário retornados pela API de envio (cada item traz input e wa_id). |
<whatsapp.mediaId> | string | ID da mídia carregada no WhatsApp, ou o ID da mídia baixada. |
<whatsapp.file> | file | Mídia baixada do WhatsApp, salva como arquivo do fluxo. |
<whatsapp.fileName> | string | Nome do arquivo carregado no WhatsApp. |
<whatsapp.mimeType> | string | Tipo MIME da mídia carregada ou baixada. |
<whatsapp.size> | number | Tamanho em bytes do arquivo carregado no WhatsApp. |
<whatsapp.fileSize> | number | Tamanho em bytes da mídia baixada. |
<whatsapp.sha256> | string | Hash SHA-256 informado pelo WhatsApp para a mídia baixada. |
<whatsapp.eventType> | string | Classificação do webhook, como incoming_message, message_status ou mixed. |
<whatsapp.from> | string | Telefone do remetente da primeira mensagem recebida. |
<whatsapp.recipientId> | string | Telefone do destinatário da primeira atualização de status do lote. |
<whatsapp.phoneNumberId> | string | ID do número de telefone da empresa na primeira mensagem ou atualização de status do lote. |
<whatsapp.displayPhoneNumber> | string | Número de telefone exibido da empresa na primeira mensagem ou atualização de status do lote. |
<whatsapp.text> | string | Texto da primeira mensagem de texto recebida. |
<whatsapp.timestamp> | string | Data e hora da primeira mensagem ou atualização de status do lote. |
<whatsapp.messageType> | string | Tipo da primeira mensagem recebida no lote, como text, image ou system. |
<whatsapp.mediaMimeType> | string | Tipo MIME da primeira mensagem de mídia recebida no lote do webhook. |
<whatsapp.caption> | string | Legenda da primeira imagem, vídeo ou documento recebido. |
<whatsapp.status> | string | Primeiro status de mensagem enviada no lote, como sent (enviada), delivered (entregue) ou read (lida). |
<whatsapp.contact> | json | Primeiro contato remetente no lote do webhook (wa_id, profile.name). |
<whatsapp.messages> | json | Todas as mensagens recebidas no lote do webhook, reunidas de todos os entries/changes. |
<whatsapp.statuses> | json | Todas as atualizações de status de mensagens do lote do webhook, reunidas de todos os entries/changes. |
<whatsapp.webhookContacts> | json | Todos os perfis de contato dos remetentes no lote do webhook. |
<whatsapp.conversation> | json | Metadados da conversa na primeira atualização de status do lote (id, expiration_timestamp, origin.type). |
<whatsapp.pricing> | json | Metadados de preço da primeira atualização de status do lote (billable, pricing_model, category). |
<whatsapp.raw> | json | Dados completos do evento do webhook do WhatsApp. |
<whatsapp.error> | string | Informações do erro, se o envio falhar. |
Exemplo de uso
Objetivo: Enviar uma confirmação ao cliente ou à equipe no canal correto.
- Operação
- Enviar mensagem
- ID do número de telefone do WhatsApp
- id-do-recurso
- Telefone do destinatário
- +5511999999999
- Mensagem
- Olá! Sua solicitação foi processada com sucesso.
Os valores são ilustrativos. Teste primeiro com dados fictícios ou de homologação.
Erros comuns e como resolver
- O bloco não executa
- Confira se existe um caminho de setas que parte do gatilho (ou do Início) até este bloco. Blocos soltos no desenho são ignorados.
- Aparece “Validação do fluxo” no terminal
- Há campo obrigatório vazio. Clique no aviso, abra o bloco indicado e preencha o campo marcado.
- Um campo chega vazio na etapa seguinte
- Confira se a referência aponta para um bloco que já executou e para um campo que existe, como <whatsapp.success>. O nome antes do ponto é o nome do bloco no seu fluxo, em minúsculas, sem espaços e sem acentos.
- O campo que eu procuro não aparece
- Os campos mudam conforme a operação escolhida. Escolha a operação primeiro; campos menos usados ficam em “Mostrar campos adicionais”.
- Credencial ausente ou recusada
- Escolha uma conexão válida do workspace. Se a senha ou a chave mudou no serviço, atualize a conexão cadastrada em vez de colar o segredo no bloco.
- O serviço recusou a chamada ou devolveu erro
- Leia a mensagem no terminal: ela traz o motivo informado pelo serviço. Confira IDs, limites de uso e permissões, e teste antes com um recurso de homologação.
Blocos relacionados
- ArquivoEnviar um documento pelo WhatsApp (Z-API) dentro de um fluxo de conversa.
- ÁudioEnviar um áudio pelo WhatsApp (Z-API) dentro de um fluxo de conversa.
- Botões de açãoEnviar pelo WhatsApp (Z-API) uma mensagem com botões de abrir link, ligar ou copiar código.
- Catálogo e opçõesConsultar a instância Z-API ou enviar catálogo, botões de resposta e lista de opções.
- ContatoEnviar um cartão de contato pelo WhatsApp (Z-API) dentro de um fluxo de conversa.
- Copiar mensagem · TelegramCopiar mensagem usando a conexão Telegram deste workspace.