Generic Webhook Alerts Configuration
The Generic Webhook destination provides maximum flexibility for integrating Collate alerts with virtually any external system. It lets you send alert notifications to custom applications, automation platforms, and internal services that can receive HTTP POST requests.Use Cases
Generic webhooks are ideal for:- Custom Applications: Internal tools and applications that need to receive alerts.
- Automation Platforms: Services like Zapier, Make (formerly Integromat), and IFTTT.
- Monitoring Systems: Integration with existing monitoring infrastructure.
- Internal Services: Microservices, APIs, and serverless functions.
- Workflow Automation: Triggering automated workflows and processes.
Preparing Your Webhook Endpoint
Before configuring the webhook in Collate, you need a webhook endpoint URL from your external system. This could be:- An automation platform like Zapier or Make.
- A custom application or API endpoint.
- An internal service that accepts HTTP POST requests.
- A serverless function (AWS Lambda, Google Cloud Functions, and so on).
- Accept HTTP POST requests.
- Be accessible from your Collate instance.
- Reply with its final response directly. A redirect (3xx) response is treated as a failed delivery, so the configured Endpoint URL should be the exact final URL, not one that redirects elsewhere.
Configuring Generic Webhooks in Collate
Once you have your webhook endpoint URL, follow these steps to configure it in Collate:Step 1: Access Alert Configuration
- In Collate, navigate to Alerts & Notifications from the main menu.
- Select the type of alert you want to configure:
- Data Observability Alerts (for data quality and pipeline monitoring).
- System & Governance Notifications (for metadata and governance events).
Step 2: Add Generic Webhook as a Destination
- Click Add Destination.
- Select Generic Webhook from the available destination options.
- Paste your Endpoint URL into the Endpoint URL field (must start with
https://). - Optional: set an Authentication method so your endpoint can verify requests actually came from Collate. See Authenticating Webhook Requests below.
- Optional: add custom request headers.
Step 3: Test the Connection
- Click Test Connection to verify the webhook is working.
- A test payload will be sent to your endpoint.
- If successful, you’ll see a confirmation message.
- Check your external system to verify the test message was received.
Step 4: Save and Enable
- Click Save to store the configuration.
- The webhook destination is now ready to receive alerts.
Authenticating Webhook Requests
The Generic Webhook destination supports three ways to authenticate outgoing requests, so your endpoint can confirm they actually came from Collate:- No authentication: requests carry no credential. Only use this for endpoints on a trusted internal network.
- Bearer token with an HMAC signature: you provide a secret key. Collate never sends this key over the network. Instead, it signs every request with it and sends the signature in the
X-OM-Signatureheader. See Verifying the Signature below. - OAuth2 client credentials: you provide a token URL, client ID, client secret, and optional scope. Collate exchanges these for an access token using the OAuth2 client-credentials grant, caches the token until it’s close to expiring, and sends it as an
Authorization: Bearer <token>header. If your endpoint responds with401 Unauthorized, Collate fetches a fresh token and retries the request once.
Verifying the Signature
If you configure the HMAC option, every request includes a header in this form:<signature> is the HMAC-SHA256 of the exact request body, computed using your secret key and Base64-encoded (not hex-encoded).
To verify a request on your endpoint:
- Read the raw request body exactly as received, before parsing it as JSON.
- Compute HMAC-SHA256 of that raw body using your secret key, then Base64-encode the result.
- Prefix it with
sha256=and compare it to theX-OM-Signatureheader using a constant-time comparison. - Reject the request if they don’t match.
id field (see Payload and Event Types below) and ignore any event you’ve already processed to guard against replay.
Request Headers
Every webhook request includes:Content-Type: application/json.X-OM-Signature: sha256=<signature>(only if you configured the HMAC option).Authorization: Bearer <token>(only if you configured OAuth2 client credentials).X-Auth-Params-Email: admin@open-metadata.org, a fixed internal header sent by the publisher on every request. It isn’t related to the authentication options above and isn’t configurable.- Any custom headers you added.
Payload and Event Types
Each request body is a singleChangeEvent JSON object describing one change in Collate. Its main fields:
The
ChangeEvent schema’s own field description for entity says it’s populated only for entityCreated. In practice, Collate populates it for every event type shown above, including entityUpdated and entityDeleted.
For the complete field list and every eventType value, see the ChangeEvent and ChangeEventType schemas.
Delivery Behavior
- Timeouts: by default, Collate allows up to 10 seconds to connect to your endpoint and 12 seconds to receive a response.
- Retries: a failed delivery due to a connection error, a timeout, or a 4xx/5xx response is retried up to 3 times by default. A 3xx (redirect) response is treated as a failed delivery too, but isn’t retried.
- Ordering: events aren’t guaranteed to arrive in order, so sort by each event’s
timestamprather than assuming delivery order.
Network Considerations
Collate doesn’t publish a fixed outbound IP address for webhook delivery. If your endpoint’s firewall needs a specific source IP allowlisted, contact your Collate representative. Collate’s PrivateLink support secures traffic going into Collate (users, applications, and ingestion services reaching Collate). It doesn’t cover this direction: Collate delivering a webhook out to your endpoint. Your endpoint still needs to be reachable over the public internet, or over a network Collate already has a route to.Best Practices
- Use HTTPS: Always use HTTPS endpoints for security.
- Authenticate Requests: Configure HMAC or OAuth2 authentication so your endpoint can reject unsigned or forged requests.
- Error Handling: Ensure your endpoint handles errors gracefully and logs failures.
- Response Time: Keep endpoint response times under the read timeout (12 seconds by default, see Delivery Behavior above).
- Multiple Webhooks: Configure multiple webhook endpoints for different alert types.
- Testing: Always test your webhook connection before enabling in production.
- Validation: Validate incoming data in your endpoint before processing.