Outbound webhooks are available on Team and Enterprise plans.
Prerequisites
- Permission to manage webhook endpoints in the Novu environment
- A worker that can make authenticated HTTPS requests
- A stable, unique consumer ID for each independent worker
Configuration
The Novu Dashboard provides these values after you create the endpoint:
API keys are scoped to the polling endpoint and can be expired or rotated. Do not share one consumer ID across concurrent clients. Shared clients can drift to different positions and receive errors.
Consumption contract
Copy the polling URL from the Dashboard and replace{consumer_id} with a stable identifier for the worker. Treat the Dashboard URL as authoritative, including its host: the examples below use the US host, and the application and endpoint identifiers are specific to your endpoint.
offset:
Configure in the Dashboard
1
2
Select event types
Choose the event types the worker should receive. Add channels if the Dashboard offers channel filtering for your endpoint.3
Create the endpoint
Create the endpoint. Copy its polling URL and create or copy the endpoint-specific API key. Store the key as a secret.4
Fetch with a unique consumer
Choose a stable consumer ID for the worker and call the polling URL. Use a different ID for every independent client.5
Process and commit
Process the returned messages in order. Commit the last successfully processedoffset, then poll again.6
Test the endpoint
Send an example for a selected event type from Testing. Poll until it appears, process it, commit its offset, and confirm the next request does not return it again.Verify delivery
After processing and committing the test event, poll again with the same consumer ID. The committed event should not be returned. A different consumer ID starts with its own independent position.Troubleshooting
- The request returns unauthorized: Confirm the bearer token belongs to this polling endpoint and has not expired or been rotated.
- The same messages return again: Commit the final successfully processed offset. Replays can occur before a commit or after a lease expires.
- Concurrent workers receive position errors: Assign a unique consumer ID to each worker. Do not share consumer IDs.
- No events are returned: Confirm the endpoint subscribes to the event type, the event occurred after endpoint creation, and you are polling the intended Novu environment.
- Events are skipped after a failure: Commit only after processing succeeds, and commit the last offset that completed successfully.