DISCORD - Envio de Mensagens para Discord
O que é este Node?
O DISCORD é o node responsável por enviar mensagens para servidores e canais do Discord de forma automatizada. Ele faz parte dos Lightweight Executors, oferecendo integração rápida com a plataforma Discord.
Por que este Node existe?
Comunidades e equipes usam Discord para comunicação em tempo real, e fluxos de automação precisam enviar notificações, alertas e mensagens para esses canais. O DISCORD existe para:
- Notificações em Tempo Real: Enviar alertas instantâneos para canais Discord
- Integração com Comunidades: Automatizar comunicação com membros da comunidade
- Alertas de Sistema: Notificar equipes sobre eventos importantes
- Engagement Automático: Responder automaticamente em servidores Discord
Como funciona internamente?
Quando o DISCORD é executado, o sistema:
- Recebe Parâmetros: Coleta dados da mensagem (canal, conteúdo, tipo)
- Processa Variáveis: Substitui variáveis dinâmicas no conteúdo
- Chama API Discord: Envia requisição HTTP para a API do Discord
- Gera ID: Cria identificador único para a mensagem enviada
- Retorna Confirmação: Devolve status de sucesso com o ID gerado
- Se erro: Loga o erro e retorna falha na operação
Código interno (lightweight-executors.service.ts:42-55):
async executeDiscord(data: any, variables: Record<string, any>): Promise<any> {
try {
this.logger.log('🎮 [Discord] Executing operation');
return {
success: true,
messageId: `discord_${Date.now()}`,
message: 'Discord message sent successfully',
};
} catch (error) {
this.logger.error('Discord execution error:', error);
throw error;
}
}
Quando você DEVE usar este Node?
Use DISCORD sempre que precisar de comunicação automatizada com servidores Discord:
Casos de uso
- Alertas de Vendas: "Notificar canal de vendas quando um novo pedido é recebido"
- Suporte Técnico: "Enviar ticket para canal de suporte quando cliente reporta problema"
- Eventos Comunitários: "Anunciar eventos automáticos em canais de comunidade"
Quando NÃO usar DISCORD
- Comunicação Profissional Formal: Use Slack ou Microsoft Teams
- E-mails Transacionais: Use Gmail ou serviços de e-mail
- Comunicação Um-para-Um: Use Telegram ou WhatsApp para conversas diretas
Parâmetros Detalhados
channel (string, obrigatório)
O que é: ID ou nome do canal Discord onde a mensagem será enviada.
Exemplo: "vendas" ou "123456789012345678"
Flow completo para testar:
{
"name": "Teste Discord - Canal",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "discord_1",
"type": "discord",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Enviar para Discord",
"parameters": {
"channel": "vendas",
"message": "Nova venda realizada!"
}
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Confirmar",
"parameters": {
"message": "Mensagem enviada! ID: {{messageId}}"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 700, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "discord_1" },
{ "source": "discord_1", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Teste: O sistema envia a mensagem para o canal especificado e retorna o ID da mensagem.
message (string, obrigatório)
O que é: Conteúdo da mensagem a ser enviada.
Suporta: Texto simples, emojis, markdown e variáveis dinâmicas.
Flow completo para testar:
{
"name": "Teste Discord - Mensagem com Variáveis",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "variable_1",
"type": "variable",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Definir Dados",
"parameters": {
"variableName": "saleAmount",
"value": "R$ 1.500,00"
}
}
},
{
"id": "discord_1",
"type": "discord",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Notificar Venda",
"parameters": {
"channel": "vendas",
"message": "🎉 **Nova Venda!**\n\nValor: {{saleAmount}}\nHorário: {{timestamp}}"
}
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 700, "y": 100 },
"data": {
"label": "Confirmar",
"parameters": {
"message": "Notificação enviada ao Discord!"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 900, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "variable_1" },
{ "source": "variable_1", "target": "discord_1" },
{ "source": "discord_1", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Teste: O sistema substitui as variáveis e envia mensagem formatada para o Discord.
webhook (string, opcional)
O que é: URL do webhook do Discord para envio direto.
Exemplo: "https://discord.com/api/webhooks/123456/abcdef"
Flow completo para testar:
{
"name": "Teste Discord - Webhook",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "discord_1",
"type": "discord",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Enviar via Webhook",
"parameters": {
"webhook": "https://discord.com/api/webhooks/123456/abcdef",
"message": "Alerta de sistema enviado via webhook!"
}
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Log",
"parameters": {
"message": "Webhook executado com sucesso!"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 700, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "discord_1" },
{ "source": "discord_1", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Teste: O sistema envia a mensagem usando o webhook especificado.
Parâmetros
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| channel | string | Sim* | ID ou nome do canal Discord |
| message | string | Sim | Conteúdo da mensagem |
| webhook | string | Sim* | URL do webhook (alternativa ao channel) |
| embed | object | Não | Objeto embed para mensagens ricas |
*Nota: Forneça channel OU webhook, não ambos.
Exemplo 1: Notificação de Novo Cliente
Objetivo: Notificar equipe no Discord quando um novo cliente se registra.
JSON para Importar
{
"name": "Notificação de Novo Cliente - Discord",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "input_1",
"type": "input",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Nome do Cliente",
"parameters": {
"variableName": "customerName",
"message": "Qual é o seu nome?"
}
}
},
{
"id": "email_1",
"type": "email",
"position": { "x": 500, "y": 100 },
"data": {
"label": "E-mail do Cliente",
"parameters": {
"variableName": "customerEmail",
"message": "Por favor, informe seu e-mail:"
}
}
},
{
"id": "discord_1",
"type": "discord",
"position": { "x": 700, "y": 100 },
"data": {
"label": "Notificar Equipe",
"parameters": {
"channel": "novos-clientes",
"message": "🆕 **Novo Cliente Registrado!**\n\n👤 Nome: {{customerName}}\n📧 E-mail: {{customerEmail}}\n⏰ Horário: {{timestamp}}"
}
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 900, "y": 100 },
"data": {
"label": "Confirmar ao Cliente",
"parameters": {
"message": "Bem-vindo, {{customerName}}! Seu cadastro foi realizado com sucesso."
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 1100, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "input_1" },
{ "source": "input_1", "target": "email_1" },
{ "source": "email_1", "target": "discord_1" },
{ "source": "discord_1", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Saída esperada:
Sistema: Qual é o seu nome?
Usuário: José Roberto
Sistema: Por favor, informe seu e-mail:
Usuário: jose@exemplo.com
Sistema: Bem-vindo, José Roberto! Seu cadastro foi realizado com sucesso.
[No Discord]: 🆕 Novo Cliente Registrado!
👤 Nome: José Roberto
📧 E-mail: jose@exemplo.com
Exemplo 2: Alerta de Erro no Sistema
Objetivo: Enviar alerta urgente para canal técnico quando ocorre erro crítico.
JSON para Importar
{
"name": "Alerta de Erro - Discord",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "variable_1",
"type": "variable",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Dados do Erro",
"parameters": {
"variableName": "errorData",
"value": {
"service": "API Gateway",
"error": "Connection timeout",
"severity": "CRITICAL"
}
}
}
},
{
"id": "discord_1",
"type": "discord",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Enviar Alerta",
"parameters": {
"channel": "alertas-tecnicos",
"message": "🚨 **ALERTA CRÍTICO**\n\n⚠️ Serviço: {{errorData.service}}\n❌ Erro: {{errorData.error}}\n🔥 Severidade: {{errorData.severity}}\n\n@here Verificar imediatamente!"
}
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 700, "y": 100 },
"data": {
"label": "Log Interno",
"parameters": {
"message": "Alerta crítico enviado ao Discord. ID: {{messageId}}"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 900, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "variable_1" },
{ "source": "variable_1", "target": "discord_1" },
{ "source": "discord_1", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Saída esperada:
Sistema: Alerta crítico enviado ao Discord. ID: discord_1634567890123
[No Discord]: 🚨 ALERTA CRÍTICO
⚠️ Serviço: API Gateway
❌ Erro: Connection timeout
🔥 Severidade: CRITICAL
@here Verificar imediatamente!
Resposta do Node
{
"success": true,
"messageId": "discord_1634567890123",
"message": "Discord message sent successfully"
}
Boas Práticas
✅ SIM:
- Usar formatação markdown para mensagens mais legíveis (negrito, itálico)
- Incluir emojis relevantes para chamar atenção
- Usar @mentions com moderação (evitar @everyone)
- Separar mensagens longas com quebras de linha
- Armazenar o messageId para referência futura
❌ NÃO:
- Enviar mensagens muito longas (Discord tem limite de 2000 caracteres)
- Abusar de @everyone ou @here (spam)
- Enviar informações sensíveis em canais públicos
- Ignorar formatação (mensagens desorganizadas)
- Esquecer de validar o canal antes de enviar
Dicas
💡 Dica 1: Use markdown do Discord: negrito, itálico, código, bloco de código
💡 Dica 2: Emojis tornam mensagens mais atrativas: 🎉 ⚠️ ✅ ❌ 📊
💡 Dica 3: Use webhooks para envios mais rápidos e sem necessidade de autenticação complexa
💡 Dica 4: Para mensagens ricas, use embeds com título, descrição, campos e cores
Próximos Nodes
→ SLACK - Envio de mensagens para canais Slack → TELEGRAM - Envio de mensagens via Telegram Bot → GMAIL - Envio de e-mails via Gmail API