How to Create a Discord Webhook From Channel Settings
🔍 WiseChecker

How to Create a Discord Webhook From Channel Settings

You want to send automated messages from an external app or service into a specific Discord channel. A webhook is a simple URL that lets any program post messages, files, or embeds directly into that channel without needing a bot account. This guide shows you how to create a webhook using the channel settings in Discord on desktop and browser. You will learn the exact steps, what permissions are required, and how to avoid common mistakes.

Key Takeaways: Creating a Discord Webhook

  • Channel Settings > Integrations > Webhooks: The only location where you can create a webhook for a specific text channel.
  • Manage Webhooks permission: Required to create, edit, or delete webhooks. This permission is granted by server roles.
  • Copy Webhook URL: The unique URL generated after creation. Keep it private — anyone with this URL can post to your channel.

What Is a Discord Webhook and Why Use One

A webhook is a built-in Discord feature that provides a unique HTTPS URL. When an external application sends a POST request to this URL, Discord automatically posts the payload as a message in the designated text channel. Webhooks do not require a bot account, a token, or any code running on your computer. The external service handles the sending logic.

Common use cases include sending GitHub commit notifications, Twitch stream alerts, form submission confirmations, or custom alerts from monitoring tools. Each webhook can have a custom name and avatar that appears as the message author. You can create multiple webhooks per channel, each for a different service.

Before you start, make sure you have the Manage Webhooks permission on the server. This permission is controlled by server roles. If you are a server owner or administrator, you already have it. If you cannot see the Integrations option in channel settings, ask a server admin to grant you this permission.

Steps to Create a Webhook From Channel Settings

Follow these steps on Discord for desktop or the browser version. The mobile app does not support webhook creation from channel settings — use a desktop or browser client.

  1. Open the target text channel
    Navigate to the server and select the text channel where you want the webhook messages to appear. You can use any public or private text channel.
  2. Click the gear icon to open Channel Settings
    Next to the channel name at the top of the message list, click the gear icon labeled Edit Channel. This opens the channel settings menu.
  3. Select Integrations from the left sidebar
    In the channel settings menu, scroll down the left sidebar and click Integrations. This section shows all active integrations for this channel, including webhooks.
  4. Click the Create Webhook button
    Under the Webhooks section, click the blue Create Webhook button. A new webhook entry appears with default settings.
  5. Customize the webhook name and avatar
    By default, the webhook name is set to the bot or service name. Click the webhook entry to expand its settings. You can change the Name field to any text — this name will appear as the message author. Click the avatar icon to upload a custom image (256×256 pixels recommended). The avatar appears next to every message posted by this webhook.
  6. Copy the Webhook URL
    Below the name and avatar fields, click the Copy Webhook URL button. The URL is a long string starting with https://discord.com/api/webhooks/. Paste this URL into your external application or script. Keep this URL private — anyone who has it can send messages to your channel.
  7. Save changes
    After customizing the name and avatar, click the Save Changes button at the bottom of the webhook settings panel. The webhook is now active and ready to receive data.

Common Mistakes and Limitations

Webhook URL Does Not Appear or Copy Button Is Missing

If you do not see the Copy Webhook URL button, you may not have the Manage Webhooks permission. Check your role permissions in Server Settings > Roles. Also, ensure you are using the desktop app or a browser — the mobile app does not display the copy button for webhooks.

Webhook Messages Are Not Showing in the Channel

Verify that the external service is sending a correctly formatted POST request. Common issues include incorrect Content-Type header (must be application/json), missing required fields like content, or sending a payload that exceeds Discord’s 2000-character limit for a single message. Test with a simple curl command first:
curl -X POST -H "Content-Type: application/json" -d '{"content":"Hello from webhook"}' YOUR_WEBHOOK_URL

Webhook Name and Avatar Are Not Applied

The custom name and avatar only apply when the external service does not override them in the payload. If your application sends a username or avatar_url field in the JSON body, those values take precedence over the channel settings. To use the channel-level settings, remove those fields from your application’s payload.

Webhook URL Expired or Stopped Working

Webhook URLs do not expire on their own. If a webhook stops working, it may have been deleted by someone with Manage Webhooks permission. Check the Integrations page in channel settings to see if the webhook still exists. If it is missing, create a new one and update your external service with the new URL.

Webhook Features: Channel-Level vs Payload-Controlled

Item Channel Settings (Default) Payload Override
Name Set in channel settings Can be overridden with username field
Avatar Set in channel settings Can be overridden with avatar_url field
Message content Not set Required in payload as content field
Embeds Not set Can be sent via embeds array in payload
Files Not set Can be attached via multipart/form-data

You can now create a webhook in any Discord text channel using the Integrations section of the channel settings. After creation, copy the URL and paste it into the external service you want to integrate. For advanced use, explore the embeds and allowed_mentions payload fields to format rich messages and control which roles or users get pinged. Always keep webhook URLs secret to prevent unauthorized posting.