DISCORD_EDIT_MESSAGE - Editar Mensagem Existente no Discord
O que é este Node?
O DISCORD_EDIT_MESSAGE é o node responsável por modificar mensagens já enviadas no Discord, permitindo atualizar conteúdo de texto e embeds de mensagens existentes.
Por que este Node existe?
Editar mensagens é essencial para manter informações atualizadas sem criar spam. O DISCORD_EDIT_MESSAGE existe para:
- Atualizar Status em Tempo Real: Modificar mensagem de status enquanto processo está em andamento
- Corrigir Informações: Atualizar dados que mudaram após envio original
- Dashboards Dinâmicos: Manter um único embed de dashboard sempre atualizado
- Reduzir Spam: Evitar múltiplas mensagens atualizando uma única existente
Como funciona internamente?
Quando o DISCORD_EDIT_MESSAGE é executado, o sistema:
- Valida Autenticação: Verifica bot token (webhooks NÃO suportam edição)
- Valida Message ID: Garante que messageId foi fornecido
- Valida Conteúdo: Verifica se content ou embed foi especificado
- Prepara Payload: Monta JSON com novo content e/ou embeds
- Envia PATCH: Atualiza mensagem via
PATCH /channels/{channelId}/messages/{messageId} - Retorna Mensagem Atualizada: Devolve objeto da mensagem editada
- Trata Erros: Lida com mensagem não encontrada, sem permissão, etc
Código interno (discord-executor.service.ts:379-401):
private async editMessage(data: DiscordNodeData): Promise<any> {
if (data.authType !== 'bot') {
throw new Error('Message editing is only available with bot authentication');
}
const payload: any = {};
if (data.content !== undefined) payload.content = data.content;
if (data.embed) payload.embeds = [this.buildEmbed(data.embed)];
const response: AxiosResponse = await axios.patch(
`${this.DISCORD_API_BASE}/channels/${data.channelId}/messages/${data.messageId}`,
payload,
{
headers: {
'Authorization': `Bot ${data.botToken}`,
'Content-Type': 'application/json'
}
}
);
return response.data;
}
Quando você DEVE usar este Node?
Use DISCORD_EDIT_MESSAGE sempre que precisar de atualizar mensagens existentes:
Casos de uso
- Status de Deploy: "Atualizar mensagem de 'Deploy em andamento...' para 'Deploy concluído ✅'"
- Contadores em Tempo Real: "Atualizar embed de dashboard com novas métricas a cada minuto"
- Progresso de Tasks: "Modificar mensagem conforme tasks são completadas (0/5 → 3/5 → 5/5)"
- Correção de Dados: "Atualizar informação incorreta que foi enviada anteriormente"
- Atualização de Embed: "Modificar campos de embed para refletir mudanças de estado"
Quando NÃO usar DISCORD_EDIT_MESSAGE
- Mensagens de Webhook: Webhooks não suportam edição - use
DISCORD_SEND_MESSAGEnovamente - Mensagens Muito Antigas: Discord pode limitar edição de mensagens antigas (nenhum limite oficial)
- Mensagens de Outros Bots: Você só pode editar mensagens do próprio bot
- Logs Imutáveis: Para auditoria, prefira criar nova mensagem ao invés de editar
Parâmetros Detalhados
operation (string, obrigatório)
O que é: Define a operação como edição de mensagem.
Valor: "edit_message"
Flow completo para testar:
{
"name": "Teste Discord - Edit Message",
"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 Original",
"parameters": {
"operation": "send_message",
"authType": "bot",
"botToken": "SEU_BOT_TOKEN",
"channelId": "SEU_CHANNEL_ID",
"content": "Processando... ⏳"
}
}
},
{
"id": "delay_1",
"type": "delay",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Aguardar",
"parameters": {
"delay": 3000
}
}
},
{
"id": "discord_2",
"type": "discord",
"position": { "x": 700, "y": 100 },
"data": {
"label": "Editar Mensagem",
"parameters": {
"operation": "edit_message",
"authType": "bot",
"botToken": "SEU_BOT_TOKEN",
"channelId": "SEU_CHANNEL_ID",
"messageId": "{{messageId_from_discord_1}}",
"content": "Concluído! ✅"
}
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 900, "y": 100 },
"data": {
"label": "Confirmar",
"parameters": {
"message": "Mensagem editada com sucesso!"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 1100, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "discord_1" },
{ "source": "discord_1", "target": "delay_1" },
{ "source": "delay_1", "target": "discord_2" },
{ "source": "discord_2", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Teste: Mensagem aparecerá como "Processando..." e após 3 segundos será editada para "Concluído! ✅".
authType (string, obrigatório)
O que é: Tipo de autenticação. DEVE SER "bot" - webhooks não suportam edição.
Valor: "bot" (obrigatório)
Flow completo para testar:
{
"name": "Teste Discord - Auth Type Bot",
"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": "Config Bot",
"parameters": {
"name": "botToken",
"value": "SEU_BOT_TOKEN"
}
}
},
{
"id": "variable_2",
"type": "variable",
"position": { "x": 300, "y": 200 },
"data": {
"label": "Config Canal",
"parameters": {
"name": "channelId",
"value": "SEU_CHANNEL_ID"
}
}
},
{
"id": "discord_1",
"type": "discord",
"position": { "x": 500, "y": 150 },
"data": {
"label": "Editar com Bot",
"parameters": {
"operation": "edit_message",
"authType": "bot",
"botToken": "{{botToken}}",
"channelId": "{{channelId}}",
"messageId": "1234567890123456789",
"content": "Mensagem editada via bot!"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 700, "y": 150 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "variable_1" },
{ "source": "variable_1", "target": "variable_2" },
{ "source": "variable_2", "target": "discord_1" },
{ "source": "discord_1", "target": "end_1" }
]
}
Teste: Apenas bots podem editar mensagens. Webhooks retornarão erro.
botToken (string, obrigatório)
O que é: Token de autenticação do bot Discord. Obrigatório para edição.
Flow completo para testar:
Veja exemplo acima em authType.
channelId (string, obrigatório)
O que é: ID do canal onde a mensagem está localizada.
Formato: "123456789012345678" (18 dígitos)
Flow completo para testar:
{
"name": "Teste Discord - Channel ID Edit",
"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": "Editar em Canal",
"parameters": {
"operation": "edit_message",
"authType": "bot",
"botToken": "SEU_BOT_TOKEN",
"channelId": "987654321098765432",
"messageId": "1234567890123456789",
"content": "Mensagem atualizada no canal correto!"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 500, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "discord_1" },
{ "source": "discord_1", "target": "end_1" }
]
}
Teste: Mensagem será editada no canal especificado.
messageId (string, obrigatório)
O que é: ID da mensagem a ser editada. Obtido da resposta do node que criou a mensagem.
Formato: "123456789012345678" (18 dígitos)
Como obter: Resposta de SEND_MESSAGE/SEND_EMBED contém id da mensagem
Flow completo para testar:
{
"name": "Teste Discord - Message ID",
"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": "Criar Mensagem",
"parameters": {
"operation": "send_message",
"authType": "bot",
"botToken": "SEU_BOT_TOKEN",
"channelId": "SEU_CHANNEL_ID",
"content": "Status inicial: Aguardando..."
}
}
},
{
"id": "variable_1",
"type": "variable",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Salvar Message ID",
"parameters": {
"name": "savedMessageId",
"value": "{{discord_1.data.id}}"
}
}
},
{
"id": "delay_1",
"type": "delay",
"position": { "x": 700, "y": 100 },
"data": {
"label": "Aguardar 5s",
"parameters": {
"delay": 5000
}
}
},
{
"id": "discord_2",
"type": "discord",
"position": { "x": 900, "y": 100 },
"data": {
"label": "Atualizar Status",
"parameters": {
"operation": "edit_message",
"authType": "bot",
"botToken": "SEU_BOT_TOKEN",
"channelId": "SEU_CHANNEL_ID",
"messageId": "{{savedMessageId}}",
"content": "Status final: Concluído! ✅"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 1100, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "discord_1" },
{ "source": "discord_1", "target": "variable_1" },
{ "source": "variable_1", "target": "delay_1" },
{ "source": "delay_1", "target": "discord_2" },
{ "source": "discord_2", "target": "end_1" }
]
}
Teste: Mensagem será criada, ID salvo, e depois editada após 5 segundos.
content (string, opcional)
O que é: Novo texto da mensagem. Se não especificado e houver embed, apenas embed é editado.
Limite: 2000 caracteres
Flow completo para testar:
{
"name": "Teste Discord - Edit Content",
"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": "Novo Conteúdo",
"parameters": {
"message": "Digite o novo conteúdo da mensagem:",
"variableName": "newContent"
}
}
},
{
"id": "discord_1",
"type": "discord",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Atualizar Conteúdo",
"parameters": {
"operation": "edit_message",
"authType": "bot",
"botToken": "SEU_BOT_TOKEN",
"channelId": "SEU_CHANNEL_ID",
"messageId": "1234567890123456789",
"content": "{{newContent}}"
}
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 700, "y": 100 },
"data": {
"label": "Confirmar",
"parameters": {
"message": "Conteúdo atualizado para: {{newContent}}"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 900, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "input_1" },
{ "source": "input_1", "target": "discord_1" },
{ "source": "discord_1", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Teste: Digite novo texto e veja mensagem ser atualizada no Discord.
embed (object, opcional)
O que é: Novo embed para substituir o existente ou adicionar se não havia.
Estrutura: Mesma do SEND_EMBED (title, description, color, fields, etc)
Flow completo para testar:
{
"name": "Teste Discord - Edit Embed",
"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": "Criar Embed Original",
"parameters": {
"operation": "send_embed",
"authType": "bot",
"botToken": "SEU_BOT_TOKEN",
"channelId": "SEU_CHANNEL_ID",
"embed": {
"title": "⏳ Deploy em Andamento",
"description": "Aguarde enquanto fazemos deploy...",
"color": 16776960,
"fields": [
{
"name": "Status",
"value": "Em progresso...",
"inline": true
},
{
"name": "Progresso",
"value": "25%",
"inline": true
}
]
}
}
}
},
{
"id": "variable_1",
"type": "variable",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Salvar ID",
"parameters": {
"name": "msgId",
"value": "{{discord_1.data.id}}"
}
}
},
{
"id": "delay_1",
"type": "delay",
"position": { "x": 700, "y": 100 },
"data": {
"label": "Aguardar 5s",
"parameters": {
"delay": 5000
}
}
},
{
"id": "discord_2",
"type": "discord",
"position": { "x": 900, "y": 100 },
"data": {
"label": "Atualizar Embed",
"parameters": {
"operation": "edit_message",
"authType": "bot",
"botToken": "SEU_BOT_TOKEN",
"channelId": "SEU_CHANNEL_ID",
"messageId": "{{msgId}}",
"embed": {
"title": "✅ Deploy Concluído",
"description": "Deploy realizado com sucesso!",
"color": 5763719,
"fields": [
{
"name": "Status",
"value": "Completo ✓",
"inline": true
},
{
"name": "Progresso",
"value": "100%",
"inline": true
},
{
"name": "Duração",
"value": "5 segundos",
"inline": false
}
]
}
}
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 1100, "y": 100 },
"data": {
"label": "Confirmar",
"parameters": {
"message": "Embed atualizado com sucesso!"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 1300, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "discord_1" },
{ "source": "discord_1", "target": "variable_1" },
{ "source": "variable_1", "target": "delay_1" },
{ "source": "delay_1", "target": "discord_2" },
{ "source": "discord_2", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Teste: Embed amarelo "Em andamento" se tornará verde "Concluído" após 5 segundos.
Parâmetros
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| operation | string | Sim | Deve ser "edit_message" |
| authType | string | Sim | Deve ser "bot" (webhooks não suportam) |
| botToken | string | Sim | Token do bot Discord |
| channelId | string | Sim | ID do canal onde está a mensagem |
| messageId | string | Sim | ID da mensagem a ser editada |
| content | string | Não | Novo texto da mensagem |
| embed | object | Não | Novo embed (substitui existente) |
Exemplo 1: Dashboard de Status em Tempo Real
Objetivo: Manter um único embed de status sempre atualizado ao invés de criar múltiplas mensagens.
JSON para Importar
{
"name": "Discord - Dashboard Status Tempo Real",
"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": "Criar Dashboard Inicial",
"parameters": {
"operation": "send_embed",
"authType": "bot",
"botToken": "SEU_BOT_TOKEN",
"channelId": "SEU_CHANNEL_ID",
"embed": {
"title": "📊 Dashboard do Sistema",
"description": "Status atualizado em tempo real",
"color": 5793266,
"fields": [
{
"name": "🌐 Web Server",
"value": "⏳ Verificando...",
"inline": true
},
{
"name": "📦 Database",
"value": "⏳ Verificando...",
"inline": true
},
{
"name": "📧 Mail Server",
"value": "⏳ Verificando...",
"inline": true
}
],
"footer": {
"text": "Última atualização"
},
"timestamp": "2025-01-15T14:30:00.000Z"
}
}
}
},
{
"id": "variable_1",
"type": "variable",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Salvar Dashboard ID",
"parameters": {
"name": "dashboardId",
"value": "{{discord_1.data.id}}"
}
}
},
{
"id": "delay_1",
"type": "delay",
"position": { "x": 700, "y": 100 },
"data": {
"label": "Aguardar Checagem",
"parameters": {
"delay": 3000
}
}
},
{
"id": "discord_2",
"type": "discord",
"position": { "x": 900, "y": 100 },
"data": {
"label": "Atualizar Status",
"parameters": {
"operation": "edit_message",
"authType": "bot",
"botToken": "SEU_BOT_TOKEN",
"channelId": "SEU_CHANNEL_ID",
"messageId": "{{dashboardId}}",
"embed": {
"title": "📊 Dashboard do Sistema",
"description": "Status atualizado em tempo real",
"color": 5763719,
"fields": [
{
"name": "🌐 Web Server",
"value": "✅ Online (98ms)",
"inline": true
},
{
"name": "📦 Database",
"value": "✅ Online (45ms)",
"inline": true
},
{
"name": "📧 Mail Server",
"value": "⚠️ Lento (890ms)",
"inline": true
},
{
"name": "💾 Disk Usage",
"value": "45% (450GB / 1TB)",
"inline": false
}
],
"footer": {
"text": "Última atualização"
},
"timestamp": "2025-01-15T14:30:03.000Z"
}
}
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 1100, "y": 100 },
"data": {
"label": "Confirmar",
"parameters": {
"message": "Dashboard atualizado com status dos servidores!"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 1300, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "discord_1" },
{ "source": "discord_1", "target": "variable_1" },
{ "source": "variable_1", "target": "delay_1" },
{ "source": "delay_1", "target": "discord_2" },
{ "source": "discord_2", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Saída esperada no Discord:
[Inicial - Azul]
📊 Dashboard do Sistema
Status atualizado em tempo real
🌐 Web Server 📦 Database 📧 Mail Server
⏳ Verificando... ⏳ Verificando... ⏳ Verificando...
[Após 3s - Verde]
📊 Dashboard do Sistema
Status atualizado em tempo real
🌐 Web Server 📦 Database 📧 Mail Server
✅ Online (98ms) ✅ Online (45ms) ⚠️ Lento (890ms)
💾 Disk Usage
45% (450GB / 1TB)
[Footer: Última atualização • 15 de janeiro de 2025 às 14:30:03]
Exemplo 2: Progresso de Tasks
Objetivo: Atualizar mensagem conforme tasks são completadas.
JSON para Importar
{
"name": "Discord - Progresso de Tasks",
"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": "Criar Tracker",
"parameters": {
"operation": "send_message",
"authType": "bot",
"botToken": "SEU_BOT_TOKEN",
"channelId": "SEU_CHANNEL_ID",
"content": "📝 **Processamento Iniciado**\n\nTasks: ⬜⬜⬜⬜⬜ 0/5"
}
}
},
{
"id": "variable_1",
"type": "variable",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Salvar ID",
"parameters": {
"name": "trackerId",
"value": "{{discord_1.data.id}}"
}
}
},
{
"id": "delay_1",
"type": "delay",
"position": { "x": 700, "y": 50 },
"data": {
"label": "Task 1",
"parameters": {
"delay": 1000
}
}
},
{
"id": "discord_2",
"type": "discord",
"position": { "x": 900, "y": 50 },
"data": {
"label": "Update 1/5",
"parameters": {
"operation": "edit_message",
"authType": "bot",
"botToken": "SEU_BOT_TOKEN",
"channelId": "SEU_CHANNEL_ID",
"messageId": "{{trackerId}}",
"content": "📝 **Processamento em Andamento**\n\nTasks: ✅⬜⬜⬜⬜ 1/5"
}
}
},
{
"id": "delay_2",
"type": "delay",
"position": { "x": 700, "y": 150 },
"data": {
"label": "Task 2",
"parameters": {
"delay": 1000
}
}
},
{
"id": "discord_3",
"type": "discord",
"position": { "x": 900, "y": 150 },
"data": {
"label": "Update 2/5",
"parameters": {
"operation": "edit_message",
"authType": "bot",
"botToken": "SEU_BOT_TOKEN",
"channelId": "SEU_CHANNEL_ID",
"messageId": "{{trackerId}}",
"content": "📝 **Processamento em Andamento**\n\nTasks: ✅✅⬜⬜⬜ 2/5"
}
}
},
{
"id": "delay_3",
"type": "delay",
"position": { "x": 700, "y": 250 },
"data": {
"label": "Task 3-5",
"parameters": {
"delay": 3000
}
}
},
{
"id": "discord_4",
"type": "discord",
"position": { "x": 900, "y": 250 },
"data": {
"label": "Update 5/5",
"parameters": {
"operation": "edit_message",
"authType": "bot",
"botToken": "SEU_BOT_TOKEN",
"channelId": "SEU_CHANNEL_ID",
"messageId": "{{trackerId}}",
"content": "✅ **Processamento Concluído**\n\nTasks: ✅✅✅✅✅ 5/5\n\nTodos os processos foram finalizados com sucesso!"
}
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 1100, "y": 250 },
"data": {
"label": "Confirmar",
"parameters": {
"message": "Todas as tasks foram completadas!"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 1300, "y": 250 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "discord_1" },
{ "source": "discord_1", "target": "variable_1" },
{ "source": "variable_1", "target": "delay_1" },
{ "source": "delay_1", "target": "discord_2" },
{ "source": "discord_2", "target": "delay_2" },
{ "source": "delay_2", "target": "discord_3" },
{ "source": "discord_3", "target": "delay_3" },
{ "source": "delay_3", "target": "discord_4" },
{ "source": "discord_4", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Saída esperada no Discord:
[Inicial]
📝 Processamento Iniciado
Tasks: ⬜⬜⬜⬜⬜ 0/5
[Após 1s]
📝 Processamento em Andamento
Tasks: ✅⬜⬜⬜⬜ 1/5
[Após 2s]
📝 Processamento em Andamento
Tasks: ✅✅⬜⬜⬜ 2/5
[Após 5s]
✅ Processamento Concluído
Tasks: ✅✅✅✅✅ 5/5
Todos os processos foram finalizados com sucesso!
Resposta do Node
{
"id": "1234567890123456789",
"channel_id": "987654321098765432",
"author": {
"id": "bot_user_id",
"username": "Seu Bot",
"bot": true
},
"content": "✅ Processamento Concluído\n\nTasks: ✅✅✅✅✅ 5/5",
"edited_timestamp": "2025-01-15T14:30:05.000Z",
"timestamp": "2025-01-15T14:30:00.000Z",
"embeds": [],
"type": 0
}
Boas Práticas
✅ SIM:
- Use apenas com bots (webhooks não suportam edição)
- Salve message ID imediatamente após criar mensagem
- Use para atualizar status/progresso em tempo real
- Combine com DELAY para criar animações de progresso
- Valide que message ID existe antes de tentar editar
- Use para corrigir informações incorretas
- Mantenha histórico de edições importantes em logs
- Use edited_timestamp para saber quando foi editada
- Edite embeds completos (substitui todo o array)
- Use para dashboards que atualizam periodicamente
❌ NÃO:
- Não tente editar mensagens de webhooks
- Não tente editar mensagens de outros bots
- Não edite mensagens muito antigas sem testar
- Não abuse de edições (pode parecer spam)
- Não ignore erros 404 (mensagem deletada)
- Não edite logs de auditoria (mantenha imutáveis)
- Não esqueça de passar content OU embed (pelo menos um)
- Não hardcode message IDs (sempre use variáveis)
- Não tente editar mensagens em canais sem permissão
- Não edite mensagens frequentemente (respeite rate limits)
Dicas
💡 Dica 1: Message ID vem na resposta de SEND_MESSAGE/SEND_EMBED no campo data.id.
💡 Dica 2: Se passar apenas content, embeds existentes serão removidos. Se passar apenas embed, content existente permanece.
💡 Dica 3: Use LOOP node para criar dashboards que atualizam a cada X segundos.
💡 Dica 4: edited_timestamp na resposta indica quando a mensagem foi editada pela última vez.
💡 Dica 5: Combine com CONDITION para editar apenas se algo mudou (evita edições desnecessárias).
💡 Dica 6: Rate limit de edição: 5 por 5 segundos por canal. Planeje updates conforme isso.
💡 Dica 7: Discord mostra "(editado)" ao lado de mensagens editadas. Usuários verão que foi modificada.
Próximo Node
→ DISCORD_SEND_MESSAGE - Enviar mensagens de texto simples → DISCORD_SEND_EMBED - Enviar embeds formatados → DISCORD_SEND_FILE - Enviar arquivos e mídias → DISCORD_DELETE_MESSAGE - Deletar mensagens