Tema
Referência do nó
Kind
send_messageCategoriaMensagemEnviar Mensagem
Para que serve
É a boca do seu fluxo: o momento em que o Atende Direito fala diretamente com o contato. Pode ser uma mensagem de texto simples, uma imagem, um áudio, um documento ou até botões interativos — tudo enviado pelo canal conectado (por exemplo, WhatsApp).
Quando usar
- Enviar qualquer tipo de conteúdo para o contato durante o fluxo.
- Apresentar opções de escolha com botões interativos.
- Enviar documentos, contratos ou imagens relevantes.
- Disparar uma mensagem de template (HSM) quando a janela de 24h do WhatsApp está fechada.
Passo a passo
- Arraste o bloco **Enviar Mensagem** para o canvas a partir da categoria **Mensagem**.

Painel de busca de blocos aberto no canvas, com as categorias e a lista de nós disponíveis para arrastar
- Clique no bloco para abrir o painel de configuração.

Painel de configuração do nó Enviar Mensagem, com o tipo Texto selecionado, o corpo da mensagem e os toggles Resposta humanizada e Aguardar resposta
- Escolha o **tipo de conteúdo** que quer enviar (Texto, Imagem, Vídeo, Áudio, Documento, Botões ou Template).
- Preencha o conteúdo. Para **Texto**, escreva a mensagem no campo. Você pode usar
{{variavel}}para personalizar. - Para mídias (Imagem, Vídeo, Áudio, Documento), escolha a origem do arquivo no seletor **URL / Upload / Variável**: cole o endereço em **URL**, envie o arquivo em **Upload**, ou use **Variável** quando o arquivo só passa a existir durante a execução.
- Para **Botões**, adicione o texto principal e depois clique em "+ Adicionar botão" para cada opção — até 10 opções. Se quiser pausar o fluxo até o contato responder, ative o toggle **Aguardar resposta** — disponível em qualquer tipo de conteúdo, não só em Botões: com opções, o fluxo roteia pela opção escolhida; sem opções (por exemplo, num nó de Texto com uma pergunta aberta), o fluxo pausa e grava a resposta livre. Veja [Enviar Mensagem com Aguardar Resposta](/guia/no-enviar-mensagem-aguardar-resposta).

Painel do nó Enviar Mensagem com o toggle 'Aguardar resposta' ativado, e os campos Salvar resposta em e Timeout
- Conecte a saída do nó ao próximo bloco do fluxo.

Fluxo de exemplo no canvas, com os blocos conectados em sequência do Início ao Fim
Campos
| Campo | O que faz |
|---|---|
| Tipo de conteúdo | Define o formato: Texto, Imagem, Vídeo, Áudio, Documento, Botões ou Template |
| Conteúdo / Mensagem | O texto ou arquivo a ser enviado |
| Origem da mídia | (para mídias) URL, Upload ou Variável — de onde vem o arquivo |
| Expressão (base64) | (origem Variável) Variável que carrega o conteúdo do arquivo |
| Mime type | (origem Variável) Formato do arquivo, por exemplo audio/mpeg |
| Legenda | (para mídias) Texto que aparece abaixo da imagem/vídeo/documento |
| Botões | Lista de opções interativas (disponível no tipo Botões) |
| Template | Seleciona um template pré-aprovado (tipo Template): HSM no WhatsApp, Utility Message no Messenger/Instagram |
| Variáveis do template | Valores que preenchem os campos do template; aceitam variáveis do fluxo |
| Mídia do template | (template com cabeçalho de imagem, vídeo ou documento, WhatsApp Cloud) Upload, URL ou Variável; em carrossel, uma por cartão |
| Título | Nome interno do nó no canvas |
Tipos de conteúdo suportados
| Tipo | Uso típico |
|---|---|
| Texto | Mensagens simples, personalizadas com variáveis |
| Imagem | Fotos, banners, QR codes |
| Vídeo | Tutoriais curtos, apresentações |
| Áudio | Mensagens de voz gravadas (por padrão chega como nota de voz; dá para enviar como arquivo comum) |
| Documento | PDFs, contratos, boletos |
| Botões interativos | Menus de escolha rápida — até 10 opções; acima de 3, a plataforma envia como lista automaticamente |
| Template (HSM / Utility Message) | Mensagens fora da janela de atendimento (exige aprovação prévia). No WhatsApp é HSM; no Messenger/Instagram, o painel troca o rótulo para Utility Message e busca o catálogo de templates próprio desses canais |
Template do WhatsApp com mídia no cabeçalho
Disponível para canais WhatsApp Cloud (API oficial). Ao escolher um template aprovado cujo cabeçalho é imagem, vídeo ou documento, o painel mostra um campo de mídia. Em templates de carrossel, cada cartão tem a sua própria mídia (imagem ou vídeo) e as suas próprias variáveis de texto.
Para cada campo de mídia, escolha a origem:
| Origem | Como usar |
|---|---|
| Upload | Envie o arquivo do seu computador |
| URL | Cole um link público (https://) para o arquivo |
| Variável | Use uma variável do fluxo que guarda o link, por exemplo {{flow.video_url}} |
Formatos aceitos, conforme o cabeçalho do template:
| Cabeçalho | Formatos | Tamanho máximo (upload) |
|---|---|---|
| Imagem | JPG, PNG, WebP | 5 MB |
| Vídeo | MP4, MOV | 16 MB |
| Documento | PDF, DOC, XLS, TXT | 20 MB |
- No nó **Enviar Mensagem**, escolha o tipo **Template** e selecione um template aprovado.
- No campo de mídia que aparece, escolha a origem (**Upload**, **URL** ou **Variável**) e informe o arquivo ou o link. Em carrossel, repita para cada cartão.
- Preencha as variáveis de texto do template (cabeçalho, corpo e botão de URL). Você pode usar variáveis do fluxo, como
{{contact.name}}: elas são trocadas pelos valores reais no momento do envio. - Confira o preview do nó, que mostra um espaço reservado com o nome do arquivo ou o link, e publique o fluxo.
Na conversa, a mensagem aparece com a mídia no cabeçalho.
Atenção
Se um campo de mídia estiver vazio quando o fluxo rodar (por exemplo, a variável escolhida não tem valor), a mensagem **não é enviada** e a execução mostra um erro. Confira se um nó anterior preenche a variável, usando o [seletor de variáveis](/guia/flow-builder/dados/variaveis#o-seletor-de-variaveis).
Áudio: mensagem de voz ou arquivo comum
No tipo Áudio, o painel mostra o toggle Enviar como mensagem de voz, ativado por padrão. Com ele ativado, o áudio chega ao contato como uma nota de voz (onda sonora e player), igual a um áudio gravado no próprio WhatsApp. Desativado, o mesmo áudio chega como um arquivo comum, anexado com ícone de música — útil quando o conteúdo é, por exemplo, uma trilha ou um áudio informativo que o contato pode querer baixar em vez de só ouvir no player.
Com o toggle ativado, se o áudio não chegar em um formato que o WhatsApp aceita (por exemplo, um MP3 gerado por um bloco de Text-to-Speech), o Atende Direito converte automaticamente para OGG/Opus antes de enviar — você não precisa se preocupar em gravar ou gerar o áudio já nesse formato. Se a conversão falhar por algum motivo, o fluxo não trava: a mensagem é enviada como arquivo de áudio comum, para garantir que o contato receba o conteúdo mesmo assim.
Dica
Fluxos criados antes deste toggle existir enviavam todo áudio como arquivo comum. Se o seu fluxo depende desse comportamento antigo, abra o nó e desative **Enviar como mensagem de voz** explicitamente — o padrão passou a ser enviar como nota de voz.
Atenção
O WhatsApp exige que a mensagem de voz seja **mono** (um único canal de áudio). Quando o arquivo já chega pronto em container Ogg/Opus, o Atende Direito aceita o arquivo como está e não verifica nem força o número de canais; a conversão automática só entra em ação para formatos incompatíveis (como MP3).
O Text-to-Speech via Ferramenta MCP da ElevenLabs (formato opus_48000_192) já foi verificado como mono 48kHz e funciona com Enviar como mensagem de voz sem nenhum cuidado extra. Se você gerar o áudio Ogg/Opus por outra ferramenta ou serviço, confirme que a saída é mono — uma saída estéreo passa despercebida pelo Atende Direito e pode ser rejeitada pela Meta.
Enviar um arquivo gerado durante o fluxo
As origens URL e Upload exigem que o arquivo já exista quando você configura o bloco. Isso não cobre o caso em que o arquivo nasce no meio da execução — por exemplo, um áudio gerado por um bloco de Text-to-Speech para responder um contato que não consegue ler.
Para esses casos existe a origem Variável. Em vez de apontar para um arquivo fixo, você referencia a variável que carrega o conteúdo gerado:
| Campo | O que preencher |
|---|---|
| Expressão (base64) | A variável com o conteúdo do arquivo, no mesmo formato de variável usado no resto do flow-builder |
| Mime type | O formato do arquivo, por exemplo audio/mpeg |
| Nome do arquivo | Opcional, por exemplo resposta.mp3 |
Ao reabrir um fluxo já configurado assim, o painel identifica sozinho que o campo contém uma variável e já abre na origem Variável — você não precisa selecioná-la de novo.
Dica
No tipo **Documento**, o contato recebe o arquivo com o nome original do arquivo enviado no upload. Se quiser um nome diferente, defina explicitamente um nome de arquivo na configuração da mensagem — esse valor tem prioridade sobre o nome original.
Upload: o arquivo fica no armazenamento, não no fluxo
Ao selecionar um arquivo na origem Upload, ele é enviado na hora para o armazenamento do workspace (aparece Enviando arquivo… enquanto sobe) e o bloco guarda só a referência a ele. O arquivo é lido no momento do envio de cada mensagem, então o fluxo continua leve mesmo com vídeos grandes.
- O upload aceita até 20 MB e os tipos comuns de imagem (JPEG, PNG, GIF, WebP), áudio (MP3, OGG, WAV, WebM), vídeo (MP4, MOV) e documento (PDF, Word, Excel, PowerPoint, TXT, CSV). O limite de 16 MB do envio (abaixo) continua valendo.
- Ao exportar o fluxo, o arquivo vai embutido no pacote, para que o fluxo funcione ao ser importado em outro workspace.
- Blocos configurados antes desta mudança, com o arquivo embutido no próprio bloco, continuam funcionando sem ajuste. Para deixá-los leves, remova o arquivo e selecione-o de novo.
Erro: texto vazio bloqueia o envio
Quando o tipo de conteúdo é Texto, a mensagem precisa continuar com algum conteúdo depois que as variáveis forem resolvidas. Se o campo estiver vazio, tiver apenas espaços ou apontar para uma variável sem valor, o nó falha e não envia uma mensagem vazia ao contato.
Quando uma variável resolve para vazio, a mensagem de erro mostra o template original. Confira se o nó anterior foi executado e se o nome e o escopo da variável estão corretos no seletor de variáveis.
Erro: mídia vazia bloqueia o envio
Quando o tipo de conteúdo é de mídia (Imagem, Vídeo, Áudio, Documento) e, depois de resolver as variáveis, não há arquivo enviado por Upload e nem a Expressão (base64) nem a URL têm conteúdo, o nó falha em vez de enviar a mensagem sem mídia. A mensagem de erro nomeia o campo problemático e o template original que você escreveu, por exemplo:
flow.send_message: media.data_base64 resolveu para vazio (template "{{flow.tts_audio}}") — variável inexistente ou fora de escopoIsso costuma acontecer quando a Expressão (base64) aponta para uma variável que nenhum nó anterior chegou a preencher — por exemplo, um bloco de Text-to-Speech (via Ferramenta MCP) que grava o áudio num nome de variável diferente do que foi referenciado aqui. Para corrigir, confira o nome exato da saída do nó anterior no seletor de variáveis e aponte a Expressão (base64) (ou a URL) para ela.
Atenção
Antes desta correção, uma variável de mídia inexistente ou fora de escopo virava string vazia na interpolação e o nó enviava a mensagem mesmo assim, reportando sucesso: nada chegava ao contato, sem erro nenhum. Agora o nó falha de forma visível, e a execução registra o erro.
Tamanho máximo do arquivo
O arquivo anexado a uma mensagem de mídia pode ter até 16 MB — o mesmo teto do WhatsApp (Meta) para vídeo e áudio. Arquivo acima disso é recusado e a mensagem não é enviada.
Atenção
Antes desta correção o limite interno era de 5 MB, menor que o do próprio WhatsApp, e a recusa era silenciosa: o bloco aparecia como **Concluído** no histórico de execução e nada chegava ao contato. Era o caso típico de um vídeo de 8 MB, que o WhatsApp aceitaria normalmente. Agora a falha fica registrada na ocorrência do gatilho, com o motivo do problema.
Vale para qualquer tipo de mídia, tanto no upload direto quanto na Expressão (base64). Para arquivos maiores, hospede o arquivo e use a origem URL em vez do upload.
Aguardar resposta: tempo de espera e mídia
Quando Aguardar resposta está ativado, valem as mesmas regras dos nós dedicados de espera: o tempo do timeout conta a partir do envio desta mensagem, e não é reiniciado quando o contato manda áudio, foto ou figurinha antes de responder de verdade — esse tipo de mídia também não conta como resposta. Se a conversa for encerrada enquanto a resposta ainda está pendente, a espera é cancelada junto. Veja o detalhe completo em Esperar Resposta de Texto e Esperar Clique em Botão.
Quantidade de opções: botões ou lista
O nó aceita até 10 opções de resposta. A plataforma decide sozinha como enviar, sem exigir nenhuma configuração extra:
| Quantidade de opções | Como é enviado |
|---|---|
| Até 3 | Botões interativos |
| De 4 a 10 | Lista interativa (uma única seção) |
| Mais de 10 | Bloqueado na validação ao publicar o fluxo |
Quando a plataforma converte para lista, ela usa o rótulo padrão "Ver opções" no botão que abre a lista e "Opções" como título da seção, a menos que você tenha definido um cabeçalho para a mensagem. O identificador (id) de cada opção é preservado na conversão, então o roteamento das saídas do nó continua funcionando normalmente.
Dica
O limite de 10 opções é do WhatsApp (Meta): uma lista interativa aceita no máximo 10 linhas, somando todas as seções. Se o seu fluxo precisa de mais opções, quebre a escolha em duas perguntas seguidas em vez de uma lista só.
Dica
Essa regra de 3/10 vale para o provedor **WhatsApp Cloud** (API oficial da Meta). Se o canal usa o provedor **Atende Direito Connection**, as opções sempre aparecem como lista para o contato, mesmo com 1, 2 ou 3 opções — veja [Mensagens interativas (botões e lista)](/guia/conectar/whatsapp#mensagens-interativas-botoes-e-lista) na página de conexão do WhatsApp. O roteamento das saídas do nó não muda em nenhum dos casos.
Dica
**Por canal:** no **Webchat**, o widget mostra botões (até 3 opções) ou lista (de 4 a 10). No **Instagram** e no **Messenger**, o limite é de 3 botões (acima disso a mensagem é truncada, pois não há lista). Canais sem suporte a mensagens interativas, como o **Playground**, recebem as opções como texto numerado (`1) Título`, `2) Título`...).
Limites de caracteres
O WhatsApp define limites de caracteres para cada campo das mensagens interativas. Textos que ultrapassam o limite são cortados automaticamente (com reticências) no envio:
| Campo | Limite |
|---|---|
| Título do botão | 20 caracteres |
| Rótulo do botão da lista | 20 caracteres |
| Título da linha (lista) | 24 caracteres |
| Descrição da linha (lista) | 72 caracteres |
| Título da seção (lista) | 24 caracteres |
| Cabeçalho | 60 caracteres |
| Rodapé | 60 caracteres |
| Corpo da mensagem (botões) | 1024 caracteres |
| Corpo da mensagem (lista) | 4096 caracteres |
Dica
Com 4 opções ou mais (lista), o título de cada opção pode ter até 24 caracteres — mais espaço que os 20 caracteres de um botão. Vale escrever títulos mais completos quando o fluxo tem mais de 3 opções.
Exemplo
Um fluxo de boas-vindas começa com uma mensagem de texto personalizada, depois envia um PDF com o guia do cliente e por último oferece botões de escolha:
Enviar Mensagem (Texto)→ "Olá, {{contact.name}}! Seja bem-vindo ao escritório Almeida & Associados."Enviar Mensagem (Documento)→guia-do-cliente.pdfEnviar Mensagem (Botões)→ "Como posso te ajudar?" com botões "Consulta", "Processo" e "Financeiro"

Fluxo de exemplo no canvas, com os blocos conectados em sequência do Início ao Fim
Dica
Use variáveis como
{{contact.name}}, {{contact.email}} para personalizar as mensagens. O fluxo substitui automaticamente essas marcações pelos dados reais do contato no momento do envio. Dica
Se você colar um link vindo do ChatGPT ou de um e-mail, ele pode vir no formato
<https://exemplo.com> (com colchetes ao redor da URL). Isso é normalizado automaticamente no envio: os colchetes são removidos e o WhatsApp recebe apenas o link limpo. Atenção
O tipo **Template** só funciona para mensagens enviadas fora da janela de atendimento ativo do WhatsApp (janela de 24h). Se a janela ainda está aberta, use o tipo **Texto** — é mais simples e não exige aprovação prévia.
Atenção
Na API oficial do WhatsApp (Cloud API), fora da janela de 24h só o tipo **Template** é aceito. Se o nó estiver configurado com Texto (ou outro tipo livre) e a janela já tiver fechado, o envio é recusado, a mensagem não chega ao contato e o **log de execução do fluxo mostra uma falha** (`node_failed`, com o motivo) em vez de parecer que foi enviada. O fluxo continua para os próximos nós. Isso é comum em gatilhos como **Conversa encerrada**, em que a última mensagem do cliente costuma estar fora da janela: use **Template** nesses casos.
Atenção
No Messenger e no Instagram a janela também é de **24h**, mas a mensagem livre (Texto, Imagem, Botões etc.) só sai dentro dela — passado esse prazo, a automação só consegue enviar o tipo **Template** (Utility Message). Atendimento humano estende a janela até **7 dias** (tag `HUMAN_AGENT`), mas isso não libera a automação do fluxo, só o atendente na tela de conversa. Um nó de **Pausa** ou **Agendar follow-up** configurado para depois de 24h nesses canais mostra um aviso no próprio nó — e a publicação do fluxo avisa (sem bloquear) quando detecta esse cenário.
Saiba mais
- Enviar Mensagem com Aguardar Resposta — envie qualquer tipo de mensagem (com ou sem opções) e já pause o fluxo no mesmo nó
- Esperar resposta de texto — pausar o fluxo em um nó separado, aguardando texto livre
- Esperar clique em botão — pausar o fluxo em um nó separado, aguardando um clique
- Botões e Listas no Webchat — como as mensagens interativas aparecem no widget
