Skip to content

feat: add notion-webhooks skill#49

Merged
leggetter merged 3 commits into
mainfrom
feat/notion-webhooks
May 11, 2026
Merged

feat: add notion-webhooks skill#49
leggetter merged 3 commits into
mainfrom
feat/notion-webhooks

Conversation

@leggetter
Copy link
Copy Markdown
Collaborator

Summary

Adds a complete notion-webhooks provider skill. Notion webhooks (launched in the 2026-03-01 API release) use HMAC-SHA256 with a verification_token captured during a one-time handshake on the first delivery to a new subscription.

What's included

  • skills/notion-webhooks/SKILL.md — entry point
  • skills/notion-webhooks/references/ — overview, setup, verification (including the handshake flow)
  • skills/notion-webhooks/examples/ — Express, Next.js, FastAPI handlers (47 passing tests across the three)

Notes

  • Header: X-Notion-Signature formatted as sha256=<hex>
  • Algorithm: HMAC-SHA256 over the raw request body
  • Signing key: verification_token extracted during the one-time handshake (first POST to a new subscription contains the token; subsequent deliveries are signed with it)
  • Handshake: the first delivery to a new endpoint is a token-establishment POST — store the verification_token (do not verify a signature on this initial message) before processing future signed deliveries
  • Common events: page.content_updated, page.properties_updated, page.locked, page.moved, comment.created, data_source.schema_updated, database.schema_updated

Test plan

  • cd skills/notion-webhooks/examples/express && npm test
  • cd skills/notion-webhooks/examples/nextjs && npm test
  • cd skills/notion-webhooks/examples/fastapi && pytest test_webhook.py -v
  • Walk through the handshake flow with a real Notion integration
  • Confirm event names against https://developers.notion.com/reference/webhooks

Generation details

https://claude.ai/code/session_01NNTgQRJss1V7gyzzJ9rjnB


Generated by Claude Code

claude and others added 3 commits May 11, 2026 23:23
Notion webhooks use HMAC-SHA256 over the raw body, signed with the
verification_token captured during a one-time handshake on the first
delivery to a new subscription. Skill covers the handshake, signed
event handling, and reference docs, with Express, Next.js, and FastAPI
examples (47 tests passing across the three).
Adds the Notion row to the Provider Skills table in README.md and a
providers.yaml entry (docs URLs, notes, testScenario) so the
"Validate New Provider" CI workflow finds the integration files. The
integrations were previously only on the prep branch (PR #40); moving them
onto each feat PR makes the 12 generated PRs independently mergeable in
any order.

https://claude.ai/code/session_01NNTgQRJss1V7gyzzJ9rjnB
…ce arg

Applies the new project convention from PR #40: use
`npx hookdeck-cli listen <port> <source> --path /webhooks/<source>`
everywhere instead of `hookdeck listen <port> --path /webhooks/<source>`.
Skips the global-install prereq (webhook-skills is provider-neutral) and
passes the required `[source]` positional so the command is copy-paste-
runnable without falling into an interactive prompt.

https://claude.ai/code/session_01NNTgQRJss1V7gyzzJ9rjnB
@leggetter leggetter marked this pull request as ready for review May 11, 2026 22:24
@leggetter leggetter force-pushed the feat/notion-webhooks branch from 88c7c38 to c81eadf Compare May 11, 2026 22:24
@leggetter leggetter merged commit 4930a4a into main May 11, 2026
6 checks passed
@leggetter leggetter deleted the feat/notion-webhooks branch May 11, 2026 22:25
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