Guides

How to Create a Discord Webhook URL (and Why It Works Like a Password)

9 min read#discord#webhook#automation#guide

Who this is forAnyone who wants automation results sent to a Discord channel but can't find where to create a webhook URL, or wants to know how to handle that URL safely.

TL;DR: To send automation results to a Discord channel, you first need to create a webhook address. The path is inside channel settings, deep in the Integrations screen. But more important than getting this address is the fact that the address itself works like a password. It doesn’t ask for a separate ID or password. Anyone with just this address can post to that channel.

Contents

  1. How to Signal That an Automation Is Done
  2. What a Webhook Is
  3. The Path: New Webhook
  4. Naming It, Picking a Channel, Copying the URL
  5. Before You Click: Why This URL Is Like a Password
  6. When You Get Stuck
  7. After It Works: What to Do If It Leaks

How to Signal That an Automation Is Done

After you build an automation, the next question comes quickly: where should the “done” signal go? Email means opening it every time, and keeping a screen open is a hassle. A common answer is a Discord channel. While the automation runs, you keep one channel open and results pile up there automatically. Review alerts, crawling results, and even error alerts can all arrive the same way.

To make this connection, you first need a webhook address. The catch is that the path to create it is fairly deep. You have to go through several tabs inside channel settings. First-timers often get stuck here because they don’t know where to click.

What a Webhook Is

Discord’s official support article describes webhooks as an easy way to send automated messages and data to a server’s text channels.

Put simply, a webhook is an address that lets your program post to the channel on its behalf. You can create one per channel, and with just that address (URL), any program can post messages to that channel.

You’ll find this address in the Integrations screen inside channel settings.

Integrations screen in Discord channel settings. On the left, the General, Permissions, Invites, and Integrations menus sit side by side with Integrations selected. On the right, a Webhooks item shows 1 webhook and a Followed Channels item shows 0 channels.
This is the screen you see after clicking Integrations in the left list of channel settings. Click the Webhooks item to move to the next screen

On the left are the General, Permissions, Invites, and Integrations menus. Click Integrations and two items appear on the right: Webhooks (it shows how many you already have as a number) and Followed Channels (a feature that pulls another server’s announcement channel into your channel; it’s different from webhooks). This article only covers webhooks.

The Path: New Webhook

Click the Webhooks item to go to the list screen. Discord adds its own description on this screen too.

Webhooks are an easy way to post messages from other apps and websites to Discord using super-charged internet power.

Webhooks list screen reached from Integrations. At the top is a purple New Webhook button. Below it, under the heading Posting to sns, an existing webhook named Captain Hook shows a creation date of April 23, 2026.
The webhook list screen. Clicking the purple New Webhook button adds one more item to the list

Click the purple New Webhook button and one more item appears in the list. Existing webhooks are grouped by channel. In the screen above, “Posting to #sns” is that group heading, and below it is a webhook named Captain Hook created on April 23, 2026. If you don’t rename it, default names like this stay, so give it a recognizable name when you create it to avoid confusion later.

Naming It, Picking a Channel, Copying the URL

Expand the newly created item and the edit screen appears.

A newly created webhook expanded. It shows the name Blog-Alert-Bot and the sns channel selected. On the left is an avatar upload box with a minimum size of 128x128. Below are a gray Copy Webhook URL button and a red Delete Webhook button, side by side.
A webhook expanded. Notice that the Copy Webhook URL button and the Delete Webhook button sit side by side

There are three things to set here.

Field What to do
Name Pick something easy to recognize later. Example: “Blog-Alert-Bot”
Channel Choose the channel this webhook will post to from the dropdown. The screen above uses #sns
Avatar (optional) Upload an image at least 128x128. If you don’t, a default image is applied

When you’re done, click the gray Copy Webhook URL button. The address goes to your clipboard. This is the most important moment in this article. Where you paste this address determines whether you’re safe or at risk.

Before You Click: Why This URL Is Like a Password

Another example in Discord’s official docs shows that sending messages through this webhook involves no login and no separate password. The GitHub integration example in Discord’s official docs walks through just two steps: create a webhook URL, then paste that address into the input field of the other service.

You generate the address, paste it into another service, and you’re done. That means having that address is the same as having permission to post to that channel. There’s no ID, no password, and no extra verification.

URL left as-is in code or on screen

  1. Where it lives GitHub code, screenshots, chat rooms Copied and pasted as-is
  2. Who can see it Anyone who can view that code or screen No extra login needed
  3. What they can do Post anything to that channel They can also change the name and avatar

Whoever has the URL is effectively the owner of that channel

URL kept only in a secrets store

  1. Where it lives .env file, GitHub Actions secrets Only the variable name stays in the code
  2. Who can see it Only people with access to that repository Looking at the code doesn't reveal the value
  3. What they can do Only the automation you set up can post to this channel The channel can trust only the automation's results

The URL has to stay hidden for the channel to be trustworthy

Same URL, different outcome depending on where it's kept. If it stays in code or on screen, anyone becomes the owner of that channel. If it's kept in a secrets store, only the automation you set up can post

When You Get Stuck

If the Integrations screen doesn’t show up or the New Webhook button won’t respond, it’s usually a permissions issue. Discord’s official docs specify this feature at the channel level.

According to Discord’s official permissions guide, members with the Manage Webhooks permission can create, edit, and delete the webhooks in that channel.

So even if you aren’t the server owner, a role with the Manage Webhooks permission can create webhooks. And this permission is per channel. Just because it works in one channel doesn’t mean it works in another.

Symptom Cause What to do
The Integrations tab is missing from channel settings, or the webhook list looks empty when you enter No Manage Webhooks permission for this channel Ask a server admin for the permission, or ask an admin to create the webhook for you
Creating a new webhook or changing its name and channel doesn’t work Manage Webhooks is a per-channel permission, so something that works in another channel may not work here Check the Manage Webhooks item in this channel’s permission settings, or ask an admin

After It Works: What to Do If It Leaks

Once you’ve copied the URL, you put that value into code or an automation tool. From here on, keep the value out of your code and in a secrets store. If your automation runs on GitHub Actions, that procedure is covered in the GitHub Actions secrets guide.

Even so, the value can still leak. That happens when you accidentally commit it to a public repository, capture the screen and share it as-is, or paste it into a chat room.

The screens and steps in this article were checked on August 24, 2026. Discord may change screen layouts and menu locations. If your screen looks different, look for the Integrations menu inside channel settings, and check the details in the Discord official support article.

Frequently asked questions

How do I create a Discord webhook URL for a channel?
Open the channel's settings, click Integrations, then Webhooks, and click New Webhook. Set a name and channel, then click Copy Webhook URL.
Why is a Discord webhook URL treated like a password?
Anyone with the webhook URL can post to its channel. It needs no separate ID, password, or extra verification, so the URL should be kept in a secrets store.

Want the full system? The Claude Code & Codex Skills guidebook collects the skills and subagents behind this blog, from $19.