Skip to content

docs: comprehensive outbound webhooks doc with sync/async response contract#408

Open
jirwin wants to merge 2 commits into
mainfrom
justin.gallardo/webhooks-response-docs
Open

docs: comprehensive outbound webhooks doc with sync/async response contract#408
jirwin wants to merge 2 commits into
mainfrom
justin.gallardo/webhooks-response-docs

Conversation

@jirwin

@jirwin jirwin commented Jul 20, 2026

Copy link
Copy Markdown

Summary

Rewrites product/admin/webhooks.mdx into a comprehensive reference for outbound webhooks, verified against current product behavior.

What changed

  • Responding to webhooks — new section explaining the synchronous (any 2xx except 202 + response document in the body) vs. asynchronous (202 → callback URL) contract, with a status-code interpretation table (including 410 Gone stopping delivery permanently) and callback rules (single-use, non-empty JSON required, C1 answers 200, expiry window).
  • Response formats per event type — provisioning complete/errored, policy approve/deny/reassign/replacePolicy, automation context, and test. The provisioning outcomes and replacePolicy were previously undocumented.
  • Fixed incorrect callback guidance — the old page said the callback POST "must respond with HTTP status code 202" and that "a blank POST call to the callback URL is enough." Both were wrong: 202 is what the receiver returns to the original webhook to opt into async mode, and empty callback bodies are rejected.
  • Event types — added PayloadPolicyApprovalStep and PayloadWorkflowStep (previously only test and provision step were listed).
  • Requests — documented all delivery headers (Content-Digest, Webhook-Id/-Event/-Version/-Callback-Url), webhook URL requirements (HTTPS on 443, no credentials, public addresses only), and clarified that callbackUrl is present in every request.
  • Delivery behavior — 30-second attempt timeout, randomized 3–15 second retry delay up to 50 attempts, per-source failure outcomes (provisioning falls back to manual provisioning).
  • Callback timeout setting — documented the Callback timeout (days) field (1–30 days, default 8) and tied webhook history retention to it.
  • JWT claims — corrected aud (destination hostname), token lifetime (2 minutes), nbf skew allowance, and listed supported signing algorithms.

Notes for reviewers

  • PayloadPolicyPostAction exists in the API surface but I couldn't confirm it fires in production, so it's intentionally omitted — please confirm.
  • complete/errored are documented as the schema contract for reporting provisioning outcomes without promising distinct downstream behavior.
  • Checked against the docs-writing style skill; mint broken-links is clean for this page (the 10 reported breaks are pre-existing in other files).

🤖 Generated with Claude Code

…ntract

Rewrite the webhooks page to document how receivers respond to outbound
webhooks:

- Explain the synchronous (2xx + response document) vs asynchronous
  (202 + callback URL) response contract, and fix the confusing callback
  guidance (the receiver returns 202 to opt into async mode; a blank
  callback POST is not valid)
- Document all response formats per event type, including provisioning
  complete/errored and policy replacePolicy
- Add all live event types (approval step, automation step)
- Add request headers, webhook URL requirements, delivery retry and
  failure behavior, and the configurable callback timeout (1-30 days)
- Correct JWT claim details (aud hostname, 2-minute token lifetime)

Co-authored-by: c1-squire-dev[bot] <c1-squire-dev[bot]@users.noreply.github.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@mintlify

mintlify Bot commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
conductorone 🟢 Ready View Preview Jul 20, 2026, 4:44 PM

Co-authored-by: c1-squire-dev[bot] <c1-squire-dev[bot]@users.noreply.github.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@jirwin
jirwin marked this pull request as ready for review July 21, 2026 14:49
@jirwin

jirwin commented Jul 21, 2026

Copy link
Copy Markdown
Author

This has been reviewed and approved for technical accuracy

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant