Overview
The Endpoint URL is the public backend route PulseGrid will call with HTTP POST.
It is not the PulseGrid dashboard URL, a normal website homepage or a WebSocket URL. The route must be implemented to accept webhook POST requests.
Production example:
https://api.example.com/webhooks/pulsegrid
Localhost is not reachable from a remote PulseGrid server. For local development, expose the local receiver through a secure tunnel such as Cloudflare Tunnel or another temporary public HTTPS URL.
Setup
Stage 1 - reachability test:
1. Create the endpoint under the correct PulseGrid project.
2. Use Events=* for the first test.
3. Click Send test.
4. Confirm the receiver gets event pulsegrid.test.
5. Confirm PulseGrid Recent activity shows Succeeded / HTTP 2xx.
Stage 2 - real event:
1. Open a channel belonging to the same project.
2. Publish a normal message or custom event.
3. Confirm a second POST arrives automatically.
4. Confirm the payload project/channel/event fields are correct.
Local Node example:
cloudflared tunnel --url http://localhost:4100
Then use the generated HTTPS URL plus /webhooks/pulsegrid.
Local Django example:
cloudflared tunnel --url http://localhost:4200
Then use the generated HTTPS URL plus /webhooks/pulsegrid/.
Code example
POST /webhooks/pulsegrid HTTP/1.1
Content-Type: application/json
X-PulseGrid-Event: delivery.updated
X-PulseGrid-Delivery: <delivery-uuid>
X-PulseGrid-Timestamp: <unix-seconds>
X-PulseGrid-Signature: v1=<signature>
{
"event": "delivery.updated",
"data": {
"order_id": "ORD-1042",
"status": "in_transit"
}
}
Notes
The Channel Console message box expects normal message text. Do not paste a complete webhook/event envelope into a text field unless your application intentionally wants that JSON as text.
A successful test event proves reachability. A successful real event proves project matching, event selection and automatic delivery.