Skip to main content

Webhooks & Notifications

RoleLogic can send notifications to Discord channels when roles change. Keep your team informed with an automatic audit trail.

Setting Up Webhooks

Step 1: Grant Permission

RoleLogic needs "Manage Webhooks" in the target channel.

  1. Go to channel settings in Discord
  2. Open Permissions
  3. Add RoleLogic and enable "Manage Webhooks"

Step 2: Create Webhook Log

  1. In dashboard, go to Logs or Webhooks section
  2. Click "Create New Log"
  3. Select target channel
  4. Configure message content
  5. Save

Step 3: Attach to Rules

  1. Open a rule in the editor
  2. Find the "Log" or "Webhook" option
  3. Select your configured log
  4. Save the rule

Using Placeholders

Placeholders add dynamic information to messages.

{user.mention} received: {roles.added.names}

Becomes:

@JohnDoe received: VIP, Premium

Common Placeholders

PlaceholderOutput
{user.mention}@JohnDoe
{user.tag}JohnDoe#1234
{roles.added.names}VIP, Premium
{roles.removed.names}Guest, Trial
{server.name}My Server
{timestamp}Discord timestamp
{timestamp:r}"5 minutes ago"

See Placeholders Reference for the full list.

Example Messages

Simple Notification

🔔 {user.mention} received: {roles.added.names}

Detailed Log

**Member:** {user.tag}
**Added:** {roles.added.names}
**Removed:** {roles.removed.names}
**Time:** {timestamp}

Customization

  • Webhook name: Custom sender name (default: "RoleLogic")
  • Avatar URL: Custom avatar image
  • Accent color: Color for embed messages

Premium Features

  • No watermark: Clean notifications without branding
  • Advanced components: Enhanced message formatting

Tips

  • Don't over-log: Too many notifications = noise
  • Meaningful messages: Include who, what, when
  • Protect channels: Use private staff channels for sensitive logs
  • Review periodically: Check logs to verify rules work

Troubleshooting

Messages not appearing?

  1. Check "Manage Webhooks" permission
  2. Verify log is attached to an enabled rule
  3. Confirm rule is actually triggering

Placeholders showing raw?

  • Check for typos
  • Use correct format: {placeholder.name}