Mención @everyone en webhook de Discord no notifica: solución
🔍 WiseChecker

Mención @everyone en webhook de Discord no notifica: solución

Configuraste un webhook en Discord para enviar mensajes automáticos, pero la mención @everyone dentro del mensaje no activa una notificación para los miembros del servidor. La etiqueta @everyone aparece como texto plano en lugar de crear un ping. Este problema ocurre porque Discord requiere permiso explícito para que los webhooks usen las menciones @everyone y @here. Este artículo explica los requisitos exactos de permisos y formato de mensaje para que @everyone funcione en los mensajes de webhook.

Puntos clave: Solucionar @everyone en webhooks de Discord

  • Configuración del servidor > Roles > @everyone > Permisos > Mencionar @everyone, @here y todos los roles: El propio webhook debe tener este permiso habilitado para enviar menciones que notifiquen.
  • El contenido del mensaje debe incluir la cadena literal “@everyone”: La carga útil del webhook debe contener el texto exacto @everyone en el campo content — no un ID de rol ni una sintaxis de mención.
  • El usuario del webhook debe tener la jerarquía de roles correcta: El bot o la integración que creó el webhook debe estar por encima del rol objetivo en la lista de roles del servidor.

ADVERTISEMENT

Por qué las menciones @everyone en webhooks no notifican

Los webhooks de Discord se tratan como un tipo de usuario especial. Cuando un webhook envía un mensaje que incluye @everyone, Discord verifica dos condiciones antes de permitir que se active la notificación. Primero, el webhook debe tener el permiso Mencionar @everyone, @here y todos los roles en el canal del servidor donde publica el webhook. Segundo, el contenido del mensaje debe contener la cadena de texto plano exacta @everyone — no una mención de rol con corchetes angulares ni un ID de rol.

Si no se cumple alguna de las dos condiciones, el texto @everyone aparece como texto plano y no activa una notificación. Muchos usuarios formatean mal la carga útil de su webhook usando una sintaxis de mención de rol como <@&roleID> o omitiendo el permiso por completo. El webhook no tiene una omisión integrada de las restricciones de menciones. Debe seguir las mismas reglas de permisos que cualquier otro usuario del servidor.

El papel del permiso @everyone

El rol @everyone de un servidor de Discord tiene un permiso específico llamado Mencionar @everyone, @here y todos los roles. De forma predeterminada, este permiso está habilitado para el rol @everyone. Sin embargo, si un administrador del servidor ha deshabilitado este permiso para el rol @everyone o para el canal específico donde publica el webhook, el webhook no puede usar @everyone. El webhook hereda el conjunto de permisos del usuario o bot que lo creó, pero la anulación a nivel de canal puede bloquear la mención.

Requisitos del campo content del webhook

Al enviar un mensaje de webhook mediante la API de Discord, el campo content debe contener la cadena exacta @everyone. No uses <@&123456789> ni ningún otro formato de mención de rol. La cadena debe ser texto plano. Si incluyes un espacio antes o después del símbolo @, la mención no funcionará. Por ejemplo, @everyone check this out funciona. @ everyone o @ everyone no funciona.

Pasos para solucionar que @everyone en el webhook no notifique

Sigue estos pasos en orden. Verifica cada paso antes de pasar al siguiente.

  1. Verifica el permiso @everyone en el servidor
    Abre Discord y ve a tu servidor. Haz clic en el nombre del servidor en la esquina superior izquierda. Selecciona Configuración del servidor > Roles. Haz clic en el rol @everyone. Desplázate hasta Permisos generales. Asegúrate de que Mencionar @everyone, @here y todos los roles esté activado. Si está desactivado, actívalo y haz clic en Guardar cambios.
  2. Verifica el permiso @everyone en el canal específico
    En el canal donde publica el webhook, haz clic en el icono de engranaje para abrir Configuración del canal. Ve a Permisos. Busca el rol @everyone en la lista. Revisa el permiso Mencionar @everyone, @here y todos los roles. Si está establecido en una X roja (denegado) o una barra gris (neutral), cámbialo a una marca de verificación verde (permitido). Haz clic en Guardar cambios.
  3. Verifica el formato del contenido del mensaje del webhook
    Localiza el script o la aplicación que envía el mensaje del webhook. Abre el JSON de la carga útil. Asegúrate de que el campo content contenga @everyone como cadena de texto plano. Ejemplo de carga útil correcta:
    {"content": "@everyone New update is live!"}
    No uses {"content": "<@&123456789> New update is live!"} ni ningún formato de ID de rol.
  4. Prueba el webhook con un mensaje simple
    Envía un mensaje de prueba usando la misma URL del webhook. Usa una herramienta como curl, Postman o un probador de webhooks de Discord. Envía esta carga útil exacta:
    curl -X POST -H "Content-Type: application/json" -d '{"content":"@everyone test ping"}' YOUR_WEBHOOK_URL
    Comprueba si el mensaje aparece en el canal y si recibes una notificación. Si la notificación funciona, el problema está en tu script original.
  5. Verifica la jerarquía de roles del creador del webhook
    En Configuración del servidor > Roles, observa la lista de roles. El rol del usuario o bot que creó el webhook debe estar por encima del rol @everyone en la lista. Arrastra el rol del creador por encima de @everyone si es necesario. Esto rara vez es un problema porque @everyone suele estar al final, pero verifícalo si otras soluciones fallan.
  6. Vuelve a crear el webhook si se cambiaron los permisos
    Si cambiaste los permisos después de crear el webhook, es posible que el webhook no adopte la nueva configuración. Elimina el webhook en Configuración del servidor > Integraciones > Webhooks. Crea un nuevo webhook, copia la URL y actualiza tu script. Prueba de nuevo.

ADVERTISEMENT

Si el webhook de Discord sigue teniendo problemas después de la solución principal

El webhook envía el mensaje pero @everyone aparece como texto plano

Esto indica que el permiso es correcto pero el formato del contenido es incorrecto. Verifica de nuevo que tu script envíe @everyone sin caracteres adicionales. Algunos lenguajes de programación escapan el símbolo @ o añaden caracteres Unicode invisibles. Usa una herramienta de volcado hexadecimal para verificar los bytes exactos que se envían. La cadena debe ser 40 65 76 65 72 79 6F 6E 65 en hexadecimal.

El webhook no envía ningún mensaje

Si el webhook no envía nada en absoluto, el problema no está relacionado con @everyone. Revisa la URL del webhook en busca de errores tipográficos. Verifica que el webhook no esté limitado por tasa. Discord limita los webhooks a 30 mensajes por segundo por canal. Si superas este límite, los mensajes se descartan. Comprueba también que el webhook no se haya eliminado o invalidado.

El webhook funciona en un canal pero no en otro

Cada canal tiene sus propias anulaciones de permisos. Repite la verificación de permisos en el canal que falla. Es posible que el rol @everyone tenga Mencionar @everyone denegado en ese canal específico aunque esté permitido a nivel del servidor. Ve a Configuración del canal > Permisos y establécelo como permitido.

Webhook de bot vs webhook creado por usuario

Los bots pueden crear webhooks con sus propios permisos. Si un bot creó el webhook, el bot debe tener el permiso Mencionar @everyone. Si el bot carece de este permiso, el webhook hereda la restricción. Concede al bot el permiso requerido en Configuración del servidor > Roles.

Métodos de mención en webhooks: @everyone vs mención por ID de rol

Elemento Mención @everyone Mención por ID de rol
Formato del contenido Texto plano @everyone <@&roleID>
Permiso requerido Mencionar @everyone, @here y todos los roles Mencionar @everyone, @here y todos los roles
Notifica a todos los miembros del servidor Sí Solo a los miembros con ese rol
Funciona con webhook Sí, con el permiso correcto Sí, pero requiere el ID del rol
Error común Usar el formato de ID de rol en lugar de texto plano Usar el texto @everyone en lugar del ID de rol

Para mencionar un rol específico en lugar de a todos, usa el formato de ID de rol. Encuentra el ID del rol habilitando el Modo desarrollador en Configuración de usuario > Avanzado, luego haz clic derecho en el rol en Configuración del servidor y copia el ID. Usa <@&roleID> en el campo content. Este método sigue requiriendo el permiso Mencionar @everyone, @here y todos los roles.

Ahora puedes hacer que las menciones @everyone en webhooks notifiquen correctamente configurando el permiso adecuado y usando el formato de texto plano exacto. Prueba primero con un comando curl simple. Si la notificación sigue fallando, revisa las anulaciones a nivel de canal y vuelve a crear el webhook. Como consejo avanzado, usa el límite de tasa de webhooks de Discord de 30 mensajes por segundo para agrupar notificaciones en lugar de enviar una por evento.

ADVERTISEMENT