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 Targets → New Target

    In the Signalync dashboard, open Targets in the sidebar and click New Target.
  2. 2

    Select Discord webhook

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

    Paste the webhook URL

    Paste the URL you copied from Discord Server Settings. Give the target 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 target is now ready to add to any Route.

Message template

Signalync formats Discord messages using the same template language as the Telegram channel target. 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 target on a different webhook URL and splitting routes 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 target, 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 target 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.