Skip to main content
Test webhooks in two stages: use the dashboard’s Test action for a quick receiver check, then send one filtered canary request to exercise the complete production path.

Quick receiver test

1

Run a local receiver

This Node.js example verifies the signature from the raw body before parsing the payload:
2

Expose it over HTTPS

Use an HTTPS tunnel such as ngrok:
Copy the forwarding URL and append /webhook, for example https://abc123.ngrok-free.app/webhook.
3

Use the dashboard Test action

Add the HTTPS destination under Settings → Webhooks, copy its HMAC key into PLANCK_WEBHOOK_SECRET, and click Test. A successful test proves that the destination is reachable, returns 2xx, and accepts the signed synthetic payload.
The Test action is synchronous and does not use the durable outbox, delivery retries, or production request consumer.

Production end-to-end canary

Use this procedure after deploying webhook or logging changes:
  1. Create a temporary webhook or update a test destination with the property filter canary = manual-log. Keep its sample rate at 100%.
  2. Run the repository canary with a production-scoped test key:
  1. Confirm your receiver gets the same request_id, a Planck-Delivery-Id, and Planck-Delivery-Attempt: 1.
  2. Confirm the script finds the request through the request API. Remove or disable the temporary webhook when finished.
The canary logs a synthetic custom-tool operation and adds Planck-Property-Canary: manual-log; it does not call an LLM or third-party tool. Normal production requests do not match the filter.
Use a dedicated canary destination and a narrowly scoped API key. Do not test retries by intentionally failing a shared production receiver.

Retry and idempotency test

In a non-production environment, make the receiver return HTTP 500 once and then return 202. Verify that:
  • the second request has the same Planck-Delivery-Id;
  • Planck-Delivery-Attempt increases;
  • your queue or database deduplicates the event by delivery ID.
Return 400 to test a permanent failure. Planck retries only timeouts, HTTP 408, 425, 429, and 5xx responses.

Common failures

Webhooks

Review payloads, delivery guarantees, storage, and signature verification

Trace tools with cURL

Inspect the manual logging endpoint and production canary payload

Additional questions or feedback? Reach out to help@inquantum.ai or schedule a call with us.