Discord webhook

Send signals to a Discord channel via webhook URL. No bot setup, no permissions, just a URL.

Create a webhook URL

Discord channel webhooks are created directly in the Discord app or browser, no bot account or developer portal is needed.

  1. 1

    Open Server Settings

    In Discord, right-click the server name and choose Server Settings, or click the server name at the top of the channel list and select Server Settings from the dropdown.
  2. 2

    Go to Integrations → Webhooks

    In the left sidebar of Server Settings, click Integrations, then Webhooks.
  3. 3

    Create a new webhook

    Click New Webhook. Give it a name (e.g. “Signalync”) and select the channel you want signals delivered to from the dropdown.
  4. 4

    Copy the webhook URL

    Click Copy Webhook URL. The URL looks like: https://discord.com/api/webhooks/<id>/<token>. Keep this URL private, anyone with it can post to your channel.
The webhook URL acts as its own credential. There is no separate authentication step, the URL itself is what grants post access to the channel.

Setup in dashboard

  1. 1

    Go to Destinations → New destination

    In the Signalync dashboard, open Destinations in the sidebar and click New destination.
  2. 2

    Select Discord webhook

    Choose Discord webhook from the destination type list.
  3. 3

    Paste the webhook URL

    Paste the URL you copied from Discord Server Settings. Give the destination a descriptive name.
  4. 4

    Verify

    Click Verify. Signalync posts a test message to the channel to confirm the URL is valid and the webhook is active.
  5. 5

    Save

    Click Save. The destination is now ready to add to any Flow.

Message template

Signalync formats Discord messages using the same template language as the Telegram channel destination. Use placeholders that are filled with live signal values on each delivery.

Available placeholders

{symbol}Instrument symbol, e.g. EURUSD
{action}Trade direction, e.g. buy, sell, closebuy
{vol}Volume / lot size
{sl}Stop loss price
{tp}Take profit price (first level)
{entry}Entry price (for pending orders)
{comment}Optional signal comment

Example template using Discord Markdown:

**{symbol}**, {action}
> Volume: {vol}  |  SL: {sl}  |  TP: {tp}
```
Entry: {entry}
Comment: {comment}
```
text

Which produces a message like:

**XAUUSD**, sell
> Volume: 0.05  |  SL: 2680.00  |  TP: 2640.00
```
Entry: 2660.00
Comment: Resistance break
```
text

Discord supports standard Markdown: **bold**, *italic*, and `code`. Unlike Telegram MarkdownV2, most punctuation characters do not need escaping.

Troubleshooting

401 or 404 on verification

The webhook URL is invalid or was deleted. Go back to Discord Server Settings → Integrations → Webhooks, confirm the webhook still exists, and copy a fresh URL. If the webhook was deleted you will need to create a new one.

429 rate limit errors

Discord rate-limits webhooks at 30 requests per minute per webhook. Signalync automatically retries rate-limited deliveries with exponential backoff. If you are sending very high signal volumes to a single webhook, consider creating a second Discord destination on a different webhook URL and splitting Flows across them.

Message formatting looks wrong

Discord Markdown is simpler than Telegram MarkdownV2, most special characters are safe without escaping. If you copied a template from a Telegram channel destination, remove any backslash escapes (e.g. change 1\.0800 back to 1.0800).

Delivery showing as failed in Signals page

Open the signal in the Signals table and expand the detail drawer. The delivery row for this destination shows the HTTP status code returned by Discord. A 400 usually means the message body is malformed, check the template for invalid Markdown or missing placeholder values.