Skip to content

feat: add twilio-webhooks skill#52

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

feat: add twilio-webhooks skill#52
leggetter merged 3 commits into
mainfrom
feat/twilio-webhooks

Conversation

@leggetter
Copy link
Copy Markdown
Collaborator

Summary

Adds a complete twilio-webhooks provider skill — X-Twilio-Signature HMAC-SHA1 (base64) verification for both form-encoded and JSON webhooks. Covers incoming SMS, voice calls, and status callbacks for messages/calls/recordings.

What's included

  • skills/twilio-webhooks/SKILL.md — entry point
  • skills/twilio-webhooks/references/ — overview, setup, verification (form-encoded + JSON paths)
  • skills/twilio-webhooks/examples/ — Express (Node SDK), Next.js App Router (manual), FastAPI (Python SDK)

Notes

  • Header: X-Twilio-Signature (HMAC-SHA1, base64)
  • Form-encoded webhooks: sign over full URL + each POST parameter name+value sorted alphabetically
  • JSON webhooks: Twilio appends a bodySHA256 query param (SHA-256 of raw body) to the URL — sign the URL only
  • Signing key: Twilio Auth Token
  • SDK helpers: Node twilio (client.validateRequest() / validateRequestWithBody()), Python twilio (RequestValidator)
  • Common events: incoming SMS (Messaging webhook), incoming voice call (Voice URL), message status callbacks (queued, sent, delivered, failed), recording status

Test plan

  • cd skills/twilio-webhooks/examples/express && npm test
  • cd skills/twilio-webhooks/examples/nextjs && npm test
  • cd skills/twilio-webhooks/examples/fastapi && pytest test_webhook.py -v
  • Verify form-encoded path against a real Twilio Messaging webhook
  • Verify JSON path (with bodySHA256) against an Event Streams JSON webhook
  • Confirm SDK helpers handle proxy/cert URL rewriting correctly

Generation details

https://claude.ai/code/session_01NNTgQRJss1V7gyzzJ9rjnB


Generated by Claude Code

claude and others added 3 commits May 11, 2026 23:28
Adds a complete provider skill covering Twilio's X-Twilio-Signature
verification (HMAC-SHA1 + base64) for both form-encoded and JSON
webhooks, with working examples for Express (SDK), Next.js App Router
(manual), and FastAPI (SDK). Handles incoming SMS, voice calls, and
message/call/recording status callbacks.

https://claude.ai/code/session_01NNTgQRJss1V7gyzzJ9rjnB
Adds the Twilio 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:28
@leggetter leggetter force-pushed the feat/twilio-webhooks branch from 4e95689 to 67c6333 Compare May 11, 2026 22:28
@leggetter leggetter merged commit c382b7d into main May 11, 2026
6 checks passed
@leggetter leggetter deleted the feat/twilio-webhooks branch May 11, 2026 22:30
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