Local development
Webhook endpoints must be public https URLs, so you can't point one directly at localhost. The quickest bridge is smee.io, a free webhook relay.
1. Create a channel
Open smee.io and click Start a new channel. You'll get a URL like https://smee.io/AbC123xYz.
2. Relay to your local server
Run the smee client, targeting wherever your handler listens locally:
Terminal
npx smee-client --url https://smee.io/AbC123xYz --target http://localhost:3000/webhook
Every request smee.io receives is now forwarded to http://localhost:3000/webhook with its headers intact — including the signature headers, so signature verification works unchanged.
3. Register the smee URL
In Settings → Webhooks, add an endpoint with your channel URL (https://smee.io/AbC123xYz). Copy the signing secret it gives you into your local environment.
4. Send a test event
Open the endpoint's detail page and click Send test event. A sample automation.run.completed event is delivered through smee to your local handler within a few seconds, and the attempt appears in the endpoint's delivery table with the response your handler returned.
smee.io channels are public to anyone who knows the URL — fine for development, never for production. Point production endpoints at your real infrastructure.