Skip to main content
Outbound webhooks let you connect your server’s activity to anything you run. Register a URL and pick the events you care about, and whenever one of them fires, Percy sends a signed JSON payload to that URL. Use it to drive a status board, mirror events into another service, or trigger your own automations. Manage webhooks from Integrations → Webhooks on the dashboard. It requires the Manage Server permission.

Creating a webhook

1

Add the endpoint

Click Add Webhook, enter the Payload URL that should receive events (an https:// URL you control), and optionally a Label to identify it later.
2

Choose events

Tick the events this endpoint should receive. You can change the selection later.
3

Store the signing secret

On save, Percy shows a signing secret once. Copy it now — it is never shown again. You’ll use it to verify that deliveries genuinely came from Percy.

Events you can subscribe to

The delivery payload

Every delivery is a JSON envelope:
  • id is unique per delivery — use it to de-duplicate retries.
  • guild_id is a string (so it survives JavaScript number limits).
  • data carries the event-specific fields.

Verifying the signature

Each request carries an X-Percy-Signature header of the form sha256=<hex>. It is the HMAC-SHA256 of the raw request body using your subscription’s secret. Recompute it and compare in constant time before trusting a delivery.
Sign against the exact bytes of the request body, not a re-serialised copy — re-encoding JSON can reorder keys or change spacing and break the signature.

Testing and monitoring

  • Test sends a sample ping payload to the endpoint and reports the result immediately, so you can confirm your receiver works.
  • Log shows recent delivery attempts — the event, whether it succeeded, the HTTP status, the number of tries, and any error.
  • The enable toggle pauses a subscription without deleting it.
Deliveries retry a few times on failure. A subscription that keeps failing is automatically disabled so a dead endpoint doesn’t pile up retries; re-enable it once your receiver is healthy again.

Next steps

Backup & Templates

Export your server’s configuration and share it as a reusable template.

Audit Log

Post rich embeds to a channel whenever moderation or server events happen.