Outbound webhooks are available on Team and Enterprise plans.
Prerequisites
- An OpenTelemetry-compatible traces endpoint
- Any authentication headers required by the collector or observability provider
- Permission to manage webhook endpoints in the Novu environment
OTEL_EXPORTER_OTLP_ENDPOINT with /v1/traces appended.
Configuration
Provider-specific examples documented by Svix include
dd-api-key for Datadog, CX-Application-Name and CX-Subsystem-Name for Coralogix, and api-key for New Relic. Confirm current requirements with your provider.
Transformation contract
The handler receives one delivery batch:input.events, an array whose length is capped by the endpoint batch sizeinput.events[].eventType, the Novu event type, for examplemessage.sentinput.events[].payload, the webhook body
payload.object is the resource type as a string, such as "message", and the resource itself is under payload.data.object. For message events, fields such as subscriberId and channel are therefore at event.payload.data.object. Other event families use different resource shapes, so guard extracted fields with defaults.
It returns:
startTime and endTime must be ISO 8601 strings. traceIdKey groups spans into one trace. spanIdKey identifies a parent span, and parentSpanIdKey attaches a child to that parent.
traceIdKey, spanIdKey, and parentSpanIdKey. The child field is parentSpanIdKey.
Configure in the Dashboard
1
Prepare the collector
Copy the OTLP traces URL and required headers from your collector or observability provider.2
3
Enter connection details
Enter the URL and optional Headers.4
Configure the transformation
Map span times, identifiers, and attributes from your selected Novu payloads. Keepconfig.serviceName stable so traces remain searchable.5
Select event types
Choose the event types that should produce spans. Select related lifecycle events if you intend to correlate parent and child spans.6
Test the endpoint
Create the endpoint. Use Testing to send examples for the selected events. Confirm success in Logs, then search the observability platform forservice.name set by config.serviceName.Verify delivery
Search the tracing backend for the configured service name and confirm one span appears for the test event. Compare its name, timestamps, and attributes with the transformed output in the endpoint’s Logs tab.Troubleshooting
- The collector returns an HTTP error: Confirm the URL is an OTLP HTTP traces endpoint and includes
/v1/traceswhere required. - Authentication fails: Verify header names and values against the observability provider’s current OTLP documentation.
- No spans appear after success: Search for the configured service name and confirm the provider is reading from the same account, site, or region.
- Spans have invalid timestamps: Return ISO 8601 strings for
startTimeandendTime. - Spans do not correlate: Use the same
traceIdKeyfor related spans and match a child’sparentSpanIdKeyto its parent’sspanIdKey.