Skip to content

Add 158 doc-sourced samples for verified-sources batch 1 (19 providers) - #69

Merged
garethx merged 2 commits into
mainfrom
feature/samples-verified-sources-batch-1
Oct 21, 2026
Merged

garethx merged 2 commits into
mainfrom
feature/samples-verified-sources-batch-1

Conversation

@garethx

@garethx garethx commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Requested by Gareth · project thread

Before: hookdeck/webhook-registry#101 (verified sources batch 1, merged) added 36 provider rows and exported doc examples for 19 of them to the registry's samples-doc/ tree. None of those 19 had a directory here.

After: 19 new provider directories with 158 doc-sourced samples. providers.json goes from 155 to 174 providers. The other 17 rows have no published example body, so they get no directory: ada, azure-logic-apps, browserbase, dealhub, fathom, fillout, freshdesk, google-workspace, gorgias, instantly, n8n, nango, sendoso, sovos, vanta, wetravel and zapier. No existing file is changed. This touches only new directories, so it doesn't conflict with the pilot or batch 2 PRs.

Provider Samples Version dir topic_identifier
agentmail 10 latest event_type
brevo 8 latest event
crusoe 1 latest null (discriminator unknown)
green-api 8 latest typeWebhook
guesty 17 latest event
loop 22 latest eventType
nash 2 latest type (composed: type + . + event)
openmeter 2 latest type
pipedream 2 latest event
pleo 2 latest eventType
recall-ai 4 latest event
revenuecat 17 1.0 event.type
rubrik 1 latest class
segment 7 latest type
stitch 7 latest type
taskrabbit 3 latest event
telegram 5 latest left out (key-presence)
uphold 39 latest type
yoco 1 latest event_type
Total 158

How: I copied samples-doc/providers/<p>/ from webhook-registry main (7e60bde1) into providers/, the same way #65 to #67 did. Every sample file is byte-identical to the export. Two index.json files differ, and those changes are listed first below. Every other topic_identifier equals the registry row's discriminator path. I checked each one with a port of resolveTopic against every sample. Each file carries source.type: vendor-documentation and its page URL, and each version is marked sourced_via: docs. yarn compile passes (155 → 174 providers, compiled topic count equals file count for all 19). yarn test passes 14/14.

Worth a look:

  • revenuecat is filed under 1.0/, not latest/. All 17 bodies carry "api_version": "1.0", which RevenueCat documents as the webhook format version. The README rule says a payload api_version is the value (Quo's apiVersion set the same precedent). The export used latest/, so the files were moved and latest_version and the provenance key were changed to match.
  • telegram has no topic_identifier. The export wrote a prose string ("key-presence: the Update field besides update_id"). The resolver would have read that as a key name. The registry row has path: null because the update type is the name of the one key besides update_id, which no README form can express. I found no precedent for key-presence, so it's left out. Each file's topic still names it.
  • nash is composed but keeps type. The event is type + . + event (courier_location.updated), so a capture would be named by family only (courier_location). This follows the sentry precedent (sentry: add 16 doc-sourced samples #62). The composed rows in batch 2 (modern-treasury, stytch, webex) were exported as null, following the strava and facebook precedent. Both are established here; it's a one-line change if you want them aligned.
  • brevo's event resolves none of its 8 samples. event is the email family's carrier, but the published examples are 7 SMS bodies (msg_status) and 1 coupon body (event_name). The README's list form (["event", "msg_status", "event_name"]) would resolve all 8. I kept the registry's primary path, as the export did.
  • stitch's type resolves 3 of 7. The GraphQL-shaped family (payment, payment.confirmation, refund, disbursement) has no type field at all, per the registry row.
  • rubrik: the file is BACKUP (the EventType enum), but the body's class is Backup, so a capture would be named Backup.
  • crusoe null: the registry discriminator is unknown, following the deepgram convention.

Update (9b838ee): nash's topic_identifier is now null. With type, a capture was named by family only (courier_location.updated became courier_location), so different events would overwrite each other. brevo's is now ["event", "msg_status", "event_name"], the registry's email, SMS and coupon carriers. It resolves 8/8 samples (was 0/8). The nash and brevo notes under "Worth a look" are superseded. yarn compile passes and yarn test passes 14/14.


Generated by Claude Code

Copied from hookdeck/webhook-registry samples-doc/ at 7e60bde1 (rows added
in hookdeck/webhook-registry#101): agentmail, brevo, crusoe, green-api,
guesty, loop, nash, openmeter, pipedream, pleo, recall-ai, revenuecat,
rubrik, segment, stitch, taskrabbit, telegram, uphold, yoco. The other 17
rows in that PR have no doc sample, so they get no directory.

Sample files are unchanged. Two index.json files differ from the export:

- revenuecat: files under 1.0/ with latest_version "1.0" rather than
  latest/. Every body carries "api_version": "1.0", which RevenueCat
  documents as the webhook format version, and the README says a payload
  api_version is the value.
- telegram: topic_identifier is left out. The export wrote a prose
  description ("key-presence: ..."); the registry row has no path because
  the update type is the name of the key besides update_id, which the
  resolver cannot express.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D7eqaQdKAUzQXRbGtym1PF
@garethx garethx self-assigned this Oct 21, 2026
- nash: null. The event is composed from type + "." + event, so "type"
  named a capture by family only (courier_location.updated became
  courier_location), and different events would overwrite each other. This
  follows the strava and facebook convention for composed keys.
- brevo: ["event", "msg_status", "event_name"], the registry's email, SMS
  and coupon family carriers. This resolves 8 of 8 samples, where "event"
  alone resolved 0.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D7eqaQdKAUzQXRbGtym1PF
@vercel

vercel Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
webhook-samples Ready Ready Preview Oct 21, 2026 2:47pm UTC

Request Review

@garethx
garethx merged commit d8cbad7 into main Oct 21, 2026
3 checks passed
@garethx
garethx deleted the feature/samples-verified-sources-batch-1 branch October 21, 2026 15:17

This branch was successfully deployed

1 active deployment
Preview — 9b838eee Deployed Oct 21, 2026 by vercel[bot]
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.

2 participants