Você configurou um webhook no Discord para enviar mensagens automáticas, mas a menção @everyone dentro da mensagem não dispara uma notificação para os membros do servidor. A tag @everyone aparece como texto simples em vez de criar um ping. Esse problema ocorre porque o Discord exige permissão explícita para que webhooks usem menções @everyone e @here. Este artigo explica os requisitos exatos de permissão e formatação da mensagem para fazer o @everyone funcionar em mensagens de webhook.
Principais Conclusões: Corrigindo @everyone em Webhooks do Discord
- Configurações do Servidor > Cargos > @everyone > Permissões > Mencionar @everyone, @here e Todos os Cargos: O próprio webhook deve ter essa permissão ativada para enviar menções que notifiquem.
- O conteúdo da mensagem deve incluir a string literal “@everyone”: O payload do webhook deve conter o texto exato @everyone no campo content — não um ID de cargo ou sintaxe de menção.
- O usuário do webhook deve ter a hierarquia de cargos correta: O bot ou integração que criou o webhook deve estar acima do cargo alvo na lista de cargos do servidor.
Por que Menções @everyone em Webhooks Falham ao Notificar
Webhooks do Discord são tratados como um tipo especial de usuário. Quando um webhook envia uma mensagem que inclui @everyone, o Discord verifica duas condições antes de permitir que o ping seja disparado. Primeiro, o webhook deve ter a permissão Mencionar @everyone, @here e Todos os Cargos no canal do servidor onde o webhook publica. Segundo, o conteúdo da mensagem deve conter a string de texto simples exata @everyone — não uma menção de cargo usando colchetes angulares ou um ID de cargo.
Se qualquer uma das condições não for atendida, o texto @everyone aparece como texto simples e não dispara uma notificação. Muitos usuários formatam seu payload de webhook incorretamente usando sintaxe de menção de cargo como <@&roleID> ou omitindo a permissão completamente. O webhook não possui uma bypass embutida para restrições de menção. Ele deve seguir as mesmas regras de permissão que qualquer outro usuário no servidor.
O Papel da Permissão @everyone
O cargo @everyone em um servidor do Discord tem uma permissão específica chamada Mencionar @everyone, @here e Todos os Cargos. Por padrão, essa permissão está ativada para o cargo @everyone. No entanto, se um administrador do servidor desativou essa permissão para o cargo @everyone ou para o canal específico onde o webhook publica, o webhook não pode usar @everyone. O webhook herda o conjunto de permissões do usuário ou bot que o criou, mas a substituição no nível do canal pode bloquear a menção.
Requisitos do Campo de Conteúdo do Webhook
Ao enviar uma mensagem de webhook via API do Discord, o campo content deve conter a string exata @everyone. Não use <@&123456789> ou qualquer outro formato de menção de cargo. A string deve ser texto simples. Se você incluir um espaço antes ou depois do símbolo @, a menção não funcionará. Por exemplo, @everyone confira isso funciona. @ everyone ou @ everyone não funciona.
Passos para Corrigir Webhook @everyone Não Notificando
Siga estes passos em ordem. Verifique cada passo antes de passar para o próximo.
- Verifique a Permissão @everyone no Servidor
Abra o Discord e vá para o seu servidor. Clique no nome do servidor no canto superior esquerdo. Selecione Configurações do Servidor > Cargos. Clique no cargo @everyone. Role até Permissões Gerais. Certifique-se de que Mencionar @everyone, @here e Todos os Cargos está ativado. Se estiver desativado, ative-o e clique em Salvar Alterações. - Verifique a Permissão @everyone no Canal Específico
No canal onde o webhook publica, clique no ícone de engrenagem para abrir Configurações do Canal. Vá para Permissões. Encontre o cargo @everyone na lista. Verifique a permissão Mencionar @everyone, @here e Todos os Cargos. Se estiver definido como um X vermelho (negado) ou uma barra cinza (neutro), mude para um visto verde (permitido). Clique em Salvar Alterações. - Verifique o Formato do Conteúdo da Mensagem do Webhook
Localize o script ou aplicativo que envia a mensagem do webhook. Abra o JSON do payload. Certifique-se de que o campocontentcontém@everyonecomo uma string simples. Exemplo de payload correto:{"content": "@everyone Nova atualização está no ar!"}
Não use{"content": "<@&123456789> Nova atualização está no ar!"}ou qualquer formato de ID de cargo. - Teste o Webhook com uma Mensagem Simples
Envie uma mensagem de teste usando a mesma URL do webhook. Use uma ferramenta como curl, Postman ou um testador de webhook do Discord. Envie este payload exato:curl -X POST -H "Content-Type: application/json" -d '{"content":"@everyone teste de ping"}' SUA_URL_DO_WEBHOOK
Verifique se a mensagem aparece no canal e se você recebe uma notificação. Se o ping funcionar, o problema está no seu script original. - Verifique a Hierarquia de Cargos do Criador do Webhook
Em Configurações do Servidor > Cargos, veja a lista de cargos. O cargo do usuário ou bot que criou o webhook deve estar acima do cargo @everyone na lista. Arraste o cargo do criador para cima de @everyone, se necessário. Isso raramente é um problema porque @everyone geralmente está no final, mas verifique se outras correções falharem. - Recrie o Webhook Se as Permissões Foram Alteradas
Se você alterou as permissões após a criação do webhook, o webhook pode não captar as novas configurações. Exclua o webhook em Configurações do Servidor > Integrações > Webhooks. Crie um novo webhook, copie a URL e atualize seu script. Teste novamente.
Se o Webhook do Discord Ainda Tiver Problemas Após a Correção Principal
Webhook Envia Mensagem, mas @everyone Aparece como Texto Simples
Isso indica que a permissão está correta, mas o formato do conteúdo está errado. Verifique novamente se seu script envia @everyone sem caracteres extras. Algumas linguagens de programação escapam o símbolo @ ou adicionam caracteres Unicode invisíveis. Use uma ferramenta de dump hexadecimal para verificar os bytes exatos sendo enviados. A string deve ser 40 65 76 65 72 79 6F 6E 65 em hexadecimal.
Webhook Não Envia Nenhuma Mensagem
Se o webhook não envia nada, o problema não está relacionado ao @everyone. Verifique se há erros de digitação na URL do webhook. Verifique se o webhook não está com limite de taxa. O Discord limita webhooks a 30 mensagens por segundo por canal. Se você exceder isso, as mensagens são descartadas. Verifique também se o webhook não foi excluído ou invalidado.
Webhook Funciona em um Canal, mas Não em Outro
Cada canal tem suas próprias substituições de permissão. Repita a verificação de permissão no canal com problema. O cargo @everyone pode ter Mencionar @everyone negado naquele canal específico, mesmo que esteja permitido no nível do servidor. Vá para Configurações do Canal > Permissões e defina como permitido.
Webhook de Bot vs Webhook Criado por Usuário
Bots podem criar webhooks com suas próprias permissões. Se um bot criou o webhook, o bot deve ter a permissão Mencionar @everyone. Se o bot não tiver essa permissão, o webhook herda a restrição. Conceda ao bot a permissão necessária em Configurações do Servidor > Cargos.
Métodos de Menção em Webhook: @everyone vs Menção por ID de Cargo
| Item | Menção @everyone | Menção por ID de Cargo |
|---|---|---|
| Formato do conteúdo | Texto simples @everyone |
<@&roleID> |
| Permissão necessária | Mencionar @everyone, @here e Todos os Cargos | Mencionar @everyone, @here e Todos os Cargos |
| Notifica todos os membros do servidor | Sim | Apenas membros com aquele cargo |
| Funciona com webhook | Sim, com a permissão correta | Sim, mas requer o ID do cargo |
| Erro comum | Usar formato de ID de cargo em vez de texto simples | Usar texto @everyone em vez do ID do cargo |
Para mencionar um cargo específico em vez de todos, use o formato de ID do cargo. Encontre o ID do cargo ativando o Modo Desenvolvedor em Configurações do Usuário > Avançado, depois clique com o botão direito no cargo em Configurações do Servidor e copie o ID. Use <@&roleID> no campo content. Este método ainda requer a permissão Mencionar @everyone, @here e Todos os Cargos.
Agora você pode fazer com que as menções @everyone em webhooks notifiquem corretamente, definindo a permissão adequada e usando o formato de texto simples exato. Teste primeiro com um comando curl simples. Se o ping ainda falhar, verifique as substituições no nível do canal e recrie o webhook. Como dica avançada, use o limite de taxa de 30 mensagens por segundo do Discord para agrupar notificações em vez de enviar uma por evento.