Pular para conteúdo

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:

  1. Notificações em Tempo Real: Enviar alertas instantâneos para canais Discord
  2. Integração com Comunidades: Automatizar comunicação com membros da comunidade
  3. Alertas de Sistema: Notificar equipes sobre eventos importantes
  4. Engagement Automático: Responder automaticamente em servidores Discord

Como funciona internamente?

Quando o DISCORD é executado, o sistema:

  1. Recebe Parâmetros: Coleta dados da mensagem (canal, conteúdo, tipo)
  2. Processa Variáveis: Substitui variáveis dinâmicas no conteúdo
  3. Chama API Discord: Envia requisição HTTP para a API do Discord
  4. Gera ID: Cria identificador único para a mensagem enviada
  5. Retorna Confirmação: Devolve status de sucesso com o ID gerado
  6. 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

  1. Alertas de Vendas: "Notificar canal de vendas quando um novo pedido é recebido"
  2. Suporte Técnico: "Enviar ticket para canal de suporte quando cliente reporta problema"
  3. 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