Delivery model
Planck uses a durable PostgreSQL outbox and delivers webhooks asynchronously. A successful gateway request does not wait for your webhook endpoint.- Delivery is at least once. Deduplicate with
Planck-Delivery-Id. - A delivery is retried for timeouts, HTTP 408, 425, 429, and 5xx responses.
- Redirects are not followed. Configure the final HTTPS endpoint directly.
- Other 4xx responses are treated as permanent failures.
- Each delivery attempt can run for up to two minutes.
Quick start
1
Create an HTTPS receiver
Your endpoint must accept
POST requests over HTTPS. Preserve the raw request
bytes so you can verify the HMAC signature before parsing JSON.2
Add the webhook
Open the webhooks page, enter the endpoint,
choose a sample rate, and optionally add property filters.You can also use the REST API.
3
Verify the signature
Copy the HMAC key shown in the dashboard. The
Planck-Signature header is the
hex-encoded HMAC-SHA256 of the exact HTTP body bytes.Configuration
Property names created from
Planck-Property-* headers are lowercase. For
example, this request property:
environment and value production.
Payload
Small request and response bodies remain inline as their original JSON values:request_response_url is also present
and points to the complete S3-backed record:
request_response_url is conditional, not present on every webhook. It is
generated only when the completed interaction was externalized to S3. The URL
expires after two hours by default; fetch it as soon as you accept the event.
Storage behavior
Requests do not all go to S3. Planck stores searchable metadata and small bodies in ClickHouse. It externalizes request/response data above 10 KB and inline image assets to private object storage, while ClickHouse retains the storage reference. This keeps ordinary requests queryable without creating an object for every call and preserves a complete source for oversized webhook bodies. UsePlanck-Omit-Request: true or Planck-Omit-Response: true when a body
must not be retained.
Delivery headers
The dashboard’s Test action sends a synchronous synthetic payload to check
URL reachability and HMAC handling. It does not exercise the production outbox
and retry worker. Follow the production canary procedure
for a full-path test.
Related features
Local and production testing
Test the receiver, HMAC verification, and durable delivery path
Custom properties
Control webhook delivery with request properties
Scores
Score LLM responses for quality monitoring
User metrics
Track per-user usage patterns and costs
Need more help?
Need more help?
Additional questions or feedback? Reach out to
help@inquantum.ai or schedule a
call with us.