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.

Was this page helpful?