Add cronofy provider with captured Push Notification samples - #33
Merged
Conversation
Adds a cronofy provider entry covering all five notification types that Cronofy's developer dashboard can trigger: change, verification, profile_disconnected, conferencing_profile_disconnected and profile_initial_sync_completed. All five are real captures, taken from a live Cronofy notification channel pointed at a Hookdeck source on 2026-08-25, so the version is marked sourced_via "capture". A sixth type exists, gdpr_requested, but the dashboard has no trigger button for it and it is not included rather than being transcribed from the docs. topic_identifier is notification.type, since Cronofy carries the type in the body rather than a header. latest_version is "latest": push notification payloads carry no version field and the docs URLs are unversioned. Two deliberate edits to the captured data: - cronofy-hmac-sha256 is REDACTED, matching the convention used for other captured providers' signature headers. The captured value is a valid signature over the captured body under a real client secret, so publishing it would let anyone replay a correctly signed request at an endpoint verifying with that secret. - callback_url is replaced with an example.com placeholder, because the captured value was a live ingest endpoint. content-length has been recomputed from the edited body so each sample stays internally consistent. Console and Vercel infrastructure headers from the capture path were stripped; only headers Cronofy itself sends are kept. Verified with yarn compile. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N3a91JneFov5QaEUrcXXog
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Pull request overview
Adds a new cronofy provider to the webhook samples catalog, including captured examples for five Cronofy push notification types and provider metadata/provenance so they can be surfaced/compiled alongside existing providers.
Changes:
- Added
providers/cronofy/index.jsondefininglatest_version,topic_identifier, and capture provenance (sourced_via: capture). - Added five captured webhook sample payloads under
providers/cronofy/latest/for the supported notification types.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| providers/cronofy/index.json | Registers the Cronofy provider, configures topic identification, and records capture provenance. |
| providers/cronofy/latest/change.json | Captured sample for change notifications. |
| providers/cronofy/latest/verification.json | Captured sample for verification notifications. |
| providers/cronofy/latest/profile_disconnected.json | Captured sample for profile_disconnected notifications. |
| providers/cronofy/latest/conferencing_profile_disconnected.json | Captured sample for conferencing_profile_disconnected notifications. |
| providers/cronofy/latest/profile_initial_sync_completed.json | Captured sample for profile_initial_sync_completed notifications. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a
cronofyprovider covering all five notification types Cronofy's developer dashboard can trigger. All five are real captures from a live notification channel pointed at a Hookdeck source on 2026-08-25, so the version is markedsourced_via: "capture".Read this first: two deliberate edits to the captured data
Neither sample set is byte-identical to what Cronofy sent. Both edits are intentional and worth agreeing on before merge.
1.
cronofy-hmac-sha256isREDACTED. The captured value is a valid signature over the captured body under a real client secret. Publishing the pair would let anyone replay a correctly signed request at any endpoint verifying with that secret. This matches the convention already used for other captured providers' signature headers (seeproviders/scrapfly).2.
callback_urlis replaced with anexample.complaceholder. The captured value was a live ingest endpoint.content-lengthhas been recomputed from the edited body so each sample stays internally consistent rather than declaring a length that no longer matches.If you'd rather have byte-exact captures and accept both consequences, say so and I'll regenerate.
What's included
changeverificationprofile_disconnectedconferencing_profile_disconnectedprofile_initial_sync_completedA sixth documented type,
gdpr_requested, is not included. The dashboard has no trigger button for it, and it is omitted rather than transcribed from the docs.Config choices
topic_identifierisnotification.type. Cronofy sends no custom identifying header beyondCronofy-HMAC-SHA256- there is nox-cronofy-event-typeor equivalent - so a header-based topic was not an option. Dotted body paths are already used by several providers in the repo.latest_versionislatest. Push notification payloads carry no version field and the docs URLs are unversioned, which is the README's stated condition forlatest.Header handling
Only headers Cronofy itself sends are kept:
Seven capture-path headers were dropped:
x-vercel-forwarded-for,x-vercel-id,x-vercel-ja4-digest,x-vercel-proxied-for,x-vercel-proxy-signature,x-vercel-proxy-signature-ts,x-hookdeck-original-ip. The generator uses an allowlist rather than a denylist, so anything the capture path adds in future is dropped by default.Verification
yarn compilepasses. The compiled entry inpublic/providers.jsonreads:Context
Captured during the run-through for the Cronofy tutorial in
hookdeck/website(branchclaude/cronofy-webhooks-tutorial-k2j5ko), which uses the same deliveries.🤖 Generated with Claude Code
https://claude.ai/code/session_01N3a91JneFov5QaEUrcXXog
Generated by Claude Code