Skip to content

Add 228 doc-sourced samples for verified-sources batch 3 (30 providers) - #72

Merged
garethx merged 1 commit into
mainfrom
feature/samples-verified-sources-batch-3
Oct 22, 2026
Merged

garethx merged 1 commit into
mainfrom
feature/samples-verified-sources-batch-3

Conversation

@garethx

@garethx garethx commented Oct 22, 2026

Copy link
Copy Markdown
Contributor

Requested by Gareth · project thread

Before: hookdeck/webhook-registry#105 (verified sources batch 3, merged) added 44 provider rows, upgraded Smartsheet's, and exported doc examples for 30 of those 45 to the registry's samples-doc/ tree. None of the 30 had a directory here.

After: 30 new provider directories with 228 doc-sourced samples. providers.json goes from 210 to 240 providers. The other 15 rows have no published example body, so they get no directory: breezy-hr, checkly, duffel, exa, expo, fourthwall, gitea, heygen, lago, luma, mautic, propelauth, sendcloud, smartsheet and vgs. No existing file is changed. This touches only new directories.

Provider Samples Version dir topic_identifier
ably 3 latest items[].source
acuity-scheduling 1 latest action
bird 19 latest type
bland-ai 1 latest event_type
boldsign 7 latest event.eventType
census 3 latest event
check 16 latest null (composed: Check-Topic + . + event)
cloudtalk 22 v1 type
codat 23 latest eventType
descope 2 latest [].action
doppler 1 latest type
firecrawl 14 v2 type
firehydrant 2 latest event.resource_type
flagsmith 1 latest event_type
go1 2 3.0.0 event_type
granola 1 latest event_type
help-scout 1 latest x-helpscout-event (header)
jfrog 24 latest null (composed: domain + . + event_type)
kit 1 latest events[].type
kombo 7 latest type
kustomer 10 latest name
loop-returns 3 latest trigger
mailerlite 14 latest list: event, type, events[].type
seatable 3 latest data.op_type
stedi 12 v1 type
taiga 14 latest null (composed: type + . + action)
terraform 4 latest list: notifications[].trigger, trigger
toggl 1 v1 null (no discriminator)
waha 11 latest event
yapily 5 latest type
Total 228

How: I copied samples-doc/providers/<p>/ from webhook-registry main (5a396b63) into providers/, the same way #70 did. Every sample file is byte-identical to the export. Two index.json files differ, and those changes are listed first below. I checked each topic_identifier with a port of resolveTopic against every sample, and every non-null one resolves all of its provider's samples. Each file carries source.type: vendor-documentation and its page URL, and each version is marked sourced_via: docs. yarn compile passes (210 → 240 providers, compiled topic count equals file count for all 30). yarn test passes 16/16.

Worth a look:

  • mailerlite uses the README's list form. The export wrote event, which resolved 7 of 14 samples. The registry row records three carrier families (event, type, batched events[].type), and the automation, group, campaign-click/open and delete bodies carry type instead of event. Listing them in registry order resolves all 14 (unipile and veriff precedent).
  • terraform uses the list form too. The registry's primary carrier is notifications[].trigger (run notifications, payload_version 1), with top-level trigger for workspace and assessment notifications (payload_version 2). The export keyed on the second family's trigger alone, which resolved 2 of 4 (run:errored and verification were missed). The list resolves all 4.
  • Composed rows are null: check, jfrog and taiga, as exported. This follows the modern-treasury, stytch and webex precedent from Add 186 doc-sourced samples for verified-sources batch 2 (26 providers) #70. toggl is null because the registry records no discriminator (its one sample is the ping).
  • Versions taken from the payload: cloudtalk v1 (body version), stedi v1 ("object": "v1.event", the eventPayload.v1Event schema) and go1 3.0.0 (body webhook_version). These follow the README rule.
  • Versions kept as exported but open to question:
    • firecrawl v2: there's no version field in the payload or headers. The registry files it under v2 only because the webhook object is documented on the /v2/ endpoints.
    • toggl v1: the registry says versioned: false. The v1 is the Webhooks API path (/webhooks/api/v1), and the docs URL carries no version. In Add 186 doc-sourced samples for verified-sources batch 2 (26 providers) #70, ramp stayed latest for the same reason, so going by that, toggl should be latest. It's a one-line change plus a directory move.
    • ably latest: every delivery sends an x-ably-version: 1.2 header, which the docs call "the version of the Webhook". The README rule names payload fields, so I left it at latest. Following the castle precedent, it would be 1.2.
    • terraform latest: its bodies carry payload_version 1 and 2. These mark two notification shapes that are both current, so they aren't successive versions. Splitting them would hide one shape behind a non-latest directory.
  • bland-ai keys on event_type, not the registry's primary category. The registry records category, then event_type. The one sample (citations) carries only event_type, so category alone would resolve 0 of 1. It stays as exported, like didit in Add 186 doc-sourced samples for verified-sources batch 2 (26 providers) #70, where every sample resolves. ["category", "event_type"] would match the row and is a one-line change. ably and codat also have unlisted extra families, but all of their samples resolve, so they stay strings.
  • Filenames differ from topics in three providers. descope's topic is Change Password (spaces on the wire), kombo's is assessment:order-received, and terraform's triggers use : (run:errored, assessment:drifted, workspace:auto_destroy_reminder). The files are Change.Password.json, assessment.order-received.json, run.errored.json and so on, but the published topic keys come from each file's topic field and match the wire values.
  • descope [].action is a root-level array. It resolves now that the resolver fix from Add 147 doc-sourced samples for the verified-sources pilot (10 providers) #68 is merged.
  • census cites fivetran.com docs, because Census is now part of Fivetran.

Generated by Claude Code

Copied from hookdeck/webhook-registry samples-doc/ at 5a396b63 (rows added
in hookdeck/webhook-registry#105): ably, acuity-scheduling, bird, bland-ai,
boldsign, census, check, cloudtalk, codat, descope, doppler, firecrawl,
firehydrant, flagsmith, go1, granola, help-scout, jfrog, kit, kombo,
kustomer, loop-returns, mailerlite, seatable, stedi, taiga, terraform,
toggl, waha, yapily. The other 15 batch 3 rows have no doc sample, so they
get no directory.

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

- mailerlite: topic_identifier is the README's ordered list form (event,
  type, events[].type), one carrier per registry family. The export's
  "event" resolved 7 of 14 samples; the list resolves all 14.
- terraform: topic_identifier is ["notifications[].trigger", "trigger"],
  the registry row's primary (run, payload_version 1) carrier then the
  workspace/assessment (payload_version 2) one. The export keyed on the
  second family's "trigger" alone, which resolved 2 of 4 samples; the list
  resolves all 4.

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 22, 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 22, 2026 11:05am UTC

Request Review

@garethx garethx self-assigned this Oct 22, 2026
@garethx
garethx merged commit 9388b02 into main Oct 22, 2026
3 checks passed
@garethx
garethx deleted the feature/samples-verified-sources-batch-3 branch October 22, 2026 12:24

This branch was successfully deployed

1 active deployment
Preview — ccd16b3e Deployed Oct 22, 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