Envio WhatsApp: texto, mídia, áudio, localização, templates, enquetes, listas e botões.
Nó Send (WhatsApp)
O nó Send (whatsapp_send) entrega mensagens WhatsApp pelas instâncias conectadas. Escolha um operation template para o tipo de mensagem — texto, template Meta, imagem, vídeo, documento, áudio, localização, cartão de contato, sticker, enquete, lista, botões ou reação.
Encontre-o na paleta WhatsWave em Automações.
Figura 1: Nó Send — operation template e campos de destino
O que faz
| Aspecto | Comportamento |
|---|---|
| Node type | whatsapp_send |
| Executor | http_request — chama a REST API WhatsWave com endpoints pré-configurados |
| Auth | Authorization: Bearer {{api_token}} + X-WhatsWave-Sent-By: workflow (automático) |
| Outputs | key, status, message — referencie como {{send_1.status}}, etc. |
Cada operação mapeia para um path de API dedicado (por exemplo /instances/message/send-text, /instances/message/send-template). Mensagens de lista e botões usam formato interativo Meta e exigem janela de atendimento ao cliente de 24 horas aberta (ou template aprovado para iniciação outbound).
Campos compartilhados (maioria das operações)
Estes campos aparecem em quase toda operação de envio:
| Campo | Key | Obrigatório | Descrição |
|---|---|---|---|
| Company | company_id | Auto | Oculto — padrão {{company_id}} |
| Instance | instance_id | Não | Linha WhatsApp (UUID). Opcional — a plataforma pode escolher instância conectada padrão |
| Destination number or PSID | number | Sim | Telefone E.164 (ex.: 5511999999999) ou PSID Instagram em instância multicanal |
Use variáveis: {{trigger.body.phone}}, {{contact_1.contact.phone_number}}.
Operation templates
Text / message (wa_op_text)
| Campo | Key | Descrição |
|---|---|---|
| Message | text | Corpo em texto simples |
Endpoint: POST /instances/message/send-text
Template — Meta API (wa_op_template)
| Campo | Key | Descrição |
|---|---|---|
| Template name | template_name | Nome do template Meta aprovado (ex.: order_confirmation) |
| Language | language | Oculto, padrão pt_BR |
| Template variables | components | Array JSON de parâmetros de componentes Meta |
Endpoint: POST /instances/message/send-template
Use para mensagens fora da janela de 24h. Liste nomes aprovados com o nó Meta Templates.
Image / Video / Document (wa_op_image, wa_op_video, wa_op_document)
| Campo | Key | Descrição |
|---|---|---|
| Media type | media_type | Oculto — image, video ou document |
| Media | mediaUrl | URL pública ou upload via seletor de mídia |
| Storage path | mediaStoragePath | Oculto — definido ao fazer upload no storage WhatsWave |
| Caption | caption | Legenda opcional |
Endpoint: POST /instances/message/send-media
Audio (wa_op_audio)
| Campo | Key | Descrição |
|---|---|---|
| Audio | audioUrl | URL ou upload de áudio |
| Storage path | audioStoragePath | Oculto ao usar upload |
Endpoint: POST /instances/message/send-audio
Location (wa_op_location)
| Campo | Key | Descrição |
|---|---|---|
| Latitude | lat | Graus decimais |
| Longitude | lng | Graus decimais |
| Place name | name | Rótulo exibido no pin do mapa |
| Address | address | Endereço legível |
Endpoint: POST /instances/message/send-location
Contact card (wa_op_contact)
| Campo | Key | Descrição |
|---|---|---|
| Contact name | contactName | Nome exibido no vCard |
| Contact phone | contactNumber | Telefone no cartão compartilhado |
Endpoint: POST /instances/message/send-contact
Sticker (wa_op_sticker)
| Campo | Key | Descrição |
|---|---|---|
| Sticker URL | stickerUrl | URL do sticker WebP |
Endpoint: POST /instances/message/send-sticker
Poll (wa_op_poll)
| Campo | Key | Descrição |
|---|---|---|
| Poll name | name | Título da pergunta |
| Options | options | Array JSON, ex.: ["Option A","Option B"] |
| Max selections | selectableCount | Padrão 1 |
Endpoint: POST /instances/message/send-poll
List (wa_op_list)
| Campo | Key | Descrição |
|---|---|---|
| Title | title | Cabeçalho da lista |
| Description | description | Texto do corpo |
| Button text | buttonText | Padrão Ver opções |
| Sections | sections | JSON — seções e linhas da lista Meta |
Endpoint: POST /instances/message/send-list
Buttons (wa_op_buttons)
| Campo | Key | Descrição |
|---|---|---|
| Title | title | Cabeçalho |
| Message | description | Texto do corpo |
| Buttons | buttons | JSON — até três botões de resposta |
Endpoint: POST /instances/message/send-buttons
Reaction (wa_op_reaction)
| Campo | Key | Descrição |
|---|---|---|
| Message ID | messageId | ID da mensagem WhatsApp para reagir |
| Emoji | reaction | Padrão 👍 |
Endpoint: POST /instances/message/send-reaction
Dicas e boas práticas
- Escolha a operação primeiro. Os campos são filtrados por template — você só vê entradas relevantes (campos de imagem em Image, não em Text).
- Use templates Meta para outbound frio. Texto livre, listas e botões falham fora da sessão de 24h, a menos que o cliente tenha enviado mensagem recentemente.
- Sempre passe números E.164. Inclua código do país sem
+ou espaços:5511999999999. - Defina
instance_idcom múltiplas linhas. Evita enviar pelo número WhatsApp errado. - Faça upload de mídia no editor quando possível —
mediaStoragePathé resolvido automaticamente; URLs públicas devem ser HTTPS e acessíveis pela Meta. - Inspecione
{{send_1.status}}no histórico de execução antes de encadear nós CRM ou Return em caso de falha.
Exemplos de uso
Exemplo 1 — Confirmação de pedido (webhook + template)
Trigger: Webhook — pedido e-commerce pago.
Fluxo:
- Send — operação Template (Meta API)
number:{{trigger.body.phone}}template_name:order_shippedcomponents:[{ "type": "body", "parameters": [{ "type": "text", "text": "{{trigger.body.order_id}}" }] }]
- CRM — upsert do card na coluna "Shipped"
- Return —
{ "sent": true, "status": "{{send_1.status}}" }
Exemplo 2 — Handoff de agente com mídia
Trigger: Webhook — ticket de suporte com URL de anexo.
Fluxo:
- Send — Text: "We received your request #{{trigger.body.ticket_id}}"
- Send — Document:
mediaUrl={{trigger.body.pdf_url}},caption= "Your invoice" - Conversations — Transfer para responsável de
{{trigger.body.agent_name}}
Exemplo 3 — Menu interativo dentro da janela de 24h
Trigger: Webhook — mensagem recebida já armazenada.
Fluxo:
- Send — List
title: "How can we help?"sections: JSON com linhas "Sales", "Support", "Billing"
- Condition — ramifica com base na resposta capturada em workflow de webhook de follow-up
FAQ
Por que minha mensagem de lista/botões falhou?
Provavelmente fora da janela de atendimento de 24h. Mude para template Meta ou aguarde o cliente enviar mensagem primeiro.
Preciso configurar headers Authorization?
Não. O template injeta Bearer {{api_token}} automaticamente.
Posso enviar para PSID Instagram neste nó?
O campo number aceita PSID quando a instância selecionada suporta Instagram. Para fluxos só Instagram, prefira o nó Instagram.
Qual a diferença entre Send e Message queue?
Send entrega imediatamente. Message queue agenda entrega via scheduled_at e vincula o item ao workflow atual — veja nó Message queue.
Como referencio o message ID para uma reação?
Use a saída do nó Messages ou campo do payload do webhook e passe para messageId na operação Reaction.
Artigos relacionados
Este artigo foi útil?
Precisa de mais ajuda? Falar com suporte