Enviar Mensagens via N8N
Conceituacao
Este guia mostra como enviar mensagens WhatsApp usando workflows N8N. Voce vai aprender a enviar texto simples, imagens e templates, alem de trabalhar com dados dinamicos de outras fontes (planilhas, bancos de dados, APIs externas).
Certifique-se de que voce ja configurou a autenticacao no N8N antes de continuar.
1. Enviar Mensagem de Texto
O caso de uso mais basico: enviar uma mensagem de texto para um numero WhatsApp.
Endpoint
POST https://oapi.ogmma.com.br/v1/channels/{channelId}/messages/text
Configuracao do HTTP Request Node
| Campo | Valor |
|---|---|
| Method | POST |
| URL | https://oapi.ogmma.com.br/v1/channels/SEU_CHANNEL_ID/messages/text |
| Authentication | Header Auth → Ogmma API |
| Body Content Type | JSON |
Body
{
"to": "5511999999999",
"text": "Ola! Esta mensagem foi enviada automaticamente via N8N."
}
Response Esperado
202 Accepted:
{
"success": true,
"message": "Mensagem enfileirada para envio"
}
O status 202 indica que a mensagem foi aceita e sera enviada de forma assincrona. Para confirmar a entrega, configure um webhook para receber o evento message.sent.
Workflow
[Manual Trigger] → [Set: telefone + texto] → [HTTP Request: enviar texto]
Baixar workflow: send-text-message.json
2. Enviar Imagem
Envie uma imagem com legenda opcional.
Endpoint
POST https://oapi.ogmma.com.br/v1/channels/{channelId}/messages/image
Body
{
"to": "5511999999999",
"imageUrl": "https://exemplo.com/imagem-produto.jpg",
"caption": "Confira nosso novo produto!"
}
Atributos
| Atributo | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
| to | string | Sim | Numero do destinatario com codigo do pais |
| imageUrl | string | Sim | URL publica da imagem (JPEG, PNG) |
| caption | string | Nao | Legenda da imagem |
| fileName | string | Nao | Nome do arquivo |
Consulte a documentacao completa em Enviar Imagem.
3. Enviar Template WABA
Para canais WABA (WhatsApp Business API oficial), voce pode enviar templates pre-aprovados pelo Meta.
Endpoint
POST https://oapi.ogmma.com.br/v1/channels/{channelId}/messages/template
Body
{
"to": "5511999999999",
"templateId": "64f8b2c3e1a2b3c4d5e6f7d0",
"variables": {
"1": "Joao",
"2": "12345"
}
}
Atributos
| Atributo | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
| to | string | Sim | Numero do destinatario |
| templateId | string | Sim | ID do template cadastrado na Ogmma |
| variables | object | Nao | Variaveis dinamicas do template (chave = posicao) |
Consulte a documentacao completa em Enviar Template.
4. Usando Dados Dinamicos
O verdadeiro poder do N8N e combinar dados de diferentes fontes para enviar mensagens personalizadas.
Expressoes N8N
No N8N, voce usa expressoes {{ }} para referenciar dados de nodes anteriores:
| Expressao | Descricao |
|---|---|
{{ $json.telefone }} | Campo telefone do node anterior |
{{ $json.nome }} | Campo nome do node anterior |
{{ $('Set').item.json.texto }} | Campo texto de um node especifico chamado "Set" |
Exemplo: Dados do Google Sheets
Imagine uma planilha com colunas nome, telefone e pedido:
Set Node (mapear campos):
{
"to": "={{ $json.telefone }}",
"text": "Ola {{ $json.nome }}! Seu pedido #{{ $json.pedido }} foi confirmado."
}
HTTP Request Node:
- URL:
https://oapi.ogmma.com.br/v1/channels/SEU_CHANNEL_ID/messages/text - Body: usar os campos mapeados pelo Set node
Exemplo: Webhook Externo
Receba dados de um webhook externo (ex: formulario de contato) e envie WhatsApp:
[Webhook Trigger] → [Set: mapear campos] → [HTTP Request: enviar mensagem]
Set Node:
{
"to": "={{ $json.body.phone }}",
"text": "Obrigado pelo contato, {{ $json.body.name }}! Responderemos em breve."
}
5. Outros Tipos de Mensagem
A Ogmma API suporta varios tipos de mensagem. A configuracao no N8N e similar para todos -- apenas a URL e o body mudam:
| Tipo | Endpoint | Campos Principais | Documentacao |
|---|---|---|---|
| Texto | .../messages/text | to, text | Enviar Texto |
| Imagem | .../messages/image | to, imageUrl, caption | Enviar Imagem |
| Video | .../messages/video | to, videoUrl, caption | Enviar Video |
| Audio | .../messages/audio | to, audioUrl | Enviar Audio |
| Documento | .../messages/document | to, documentUrl, fileName | Enviar Documento |
| Contato | .../messages/contact | to, name, phone | Enviar Contato |
| Template | .../messages/template | to, templateId, variables | Enviar Template |
Para todos os tipos, substitua ... por https://oapi.ogmma.com.br/v1/channels/{channelId}.
Tratamento de Erros
Ao enviar mensagens via N8N, podem ocorrer erros. Configure o tratamento no HTTP Request node:
Habilitar "Continue on Fail"
No HTTP Request node, ative Settings → Continue on Fail para que o workflow nao pare em caso de erro. Isso permite tratar o erro no proximo node.
Erros Comuns
| Status | Codigo | Causa | Solucao |
|---|---|---|---|
| 400 | VALIDATION_ERROR | Campo obrigatorio ausente ou invalido | Verifique os campos to e text/imageUrl |
| 404 | CHANNEL_NOT_FOUND | channelId invalido | Verifique o ID do canal na URL |
| 401 | UNAUTHORIZED | API Key invalida | Verifique a credential no N8N |
| 429 | RATE_LIMIT_EXCEEDED | Muitas requisicoes por minuto | Adicione um Wait node entre envios |
Exemplo: IF Node para Tratar Erro
[HTTP Request] → [IF: statusCode == 202?]
→ Sim: [Sucesso - proxima acao]
→ Nao: [Tratar erro - notificar admin]
Proximo Passo
- Receber Webhooks -- receba notificacoes quando mensagens sao entregues ou quando clientes respondem
- Auto-Resposta -- combine envio com recebimento para criar um chatbot