Overview
Webhooks are user-defined HTTP callbacks—automated messages sent from one application to another when a specific event occurs. Instead of one system repeatedly asking "Has anything changed?", as with traditional API polling, a webhook automatically pushes the relevant data to a designated URL the moment the event happens.
You can think of webhooks as a smart doorbell for your systems: instead of constantly opening the door to check if something is there, you're instantly notified the moment something actually arrives.
Why This Feature Matters
Without webhooks, keeping downstream systems aligned with Claravine requires manual effort or scheduled API polling—both of which introduce lag, added overhead, and potential for data gaps. The Webhook Connection removes that burden by pushing event data automatically the instant an action occurs.
Common use cases include:
- Triggering downstream workflows automatically when a Submission is completed
- Keeping DAMs, analytics platforms, or databases current with Template changes
- Refreshing or invalidating cached List values the moment a List or Powered List updates in Claravine
- Kicking off data quality validation when a new Submission is created
- Powering asset sync between Claravine and external platforms such as AEM
How It Works
Claravine monitors three object types: Templates, Lists ( Lists and Powered Lists), and Submissions. When any supported event occurs, Claravine sends an HTTP POST to a URL your team configures. That notification includes the event type, a timestamp, the object ID, a direct link to retrieve the full updated object from the Claravine API, the operation performed, and an authentication token.
The process follows four steps:
- An action occurs in Claravine (for example, a team member creates, updates, or deletes a Template, List, or Submission).
- Claravine captures the event.
- The webhook system immediately sends the event details to your configured endpoint as an HTTP POST.
- Your receiving system takes action—updating records, triggering workflows, or notifying other connected systems.
Delivery is event-driven and immediate. There is no polling interval, sync schedule, or batch window.
What You Need to Know Before Getting Started
- Webhooks are configured on an all-or-nothing basis. Once enabled, Claravine sends notifications for all supported object types—Templates, Lists, and Submissions. It is not currently possible to receive events for only one object type (for example, Submissions only). If your system needs to act selectively, use the event field in each payload to filter on your end.
- There is no self-service setup in the platform UI. Webhook enablement requires backend configuration by the Claravine Engineering team. Your Customer Success Manager will coordinate the setup process.
- Your endpoint must respond within 500 milliseconds. Claravine requires an HTTP 200 OK response within 500ms of delivery. Your endpoint should acknowledge receipt immediately and handle any processing asynchronously. Delivery is marked as failed if the response times out.
How to Enable the Webhook Connection
- Submit a support ticket requesting webhook enablement for your account.
- Your Claravine Customer Success Manager coordinates with the Engineering team to configure the connection.
- Provide two pieces of information:
- A single HTTPS URL where Claravine will send event notifications
- A bearer token that Claravine will include in each request header for authentication
- Claravine Engineering enables the feature and configures your endpoint.
- Once enabled, Claravine immediately begins delivering event notifications to your configured URL.
Webhook Events by Object Type
Claravine fires webhook notifications for the following events:
| Object | Triggering Events |
|---|---|
| Template | Created, Updated, Deleted |
| List (List or Powered List) | Created, Updated, Deleted |
| Submission | Created, Completed |
Note: Powered List refreshes also trigger List webhook events. Systems sensitive to high List update volume should account for this.
Payload Structure
Every webhook notification is sent as an HTTP POST and uses the same fixed payload structure, regardless of object type:
{ "event": "[template | list | submission]", "event_time": 123456789, "object_id": "UUID of the object", "href": "https://api.claravine.com/v1/...", "version": 5, "operation": "created | updated | deleted | completed", "token": "client-secret" } |
Field descriptions:
| Field | Description |
|---|---|
| event | The object type that triggered the notification: template, list, or submission. |
| event_time | Unix timestamp of when the event occurred. |
| object_id | UUID of the affected object. |
| href | Direct URL to retrieve the full, updated object from the Claravine API. Use this to pull complete data after receiving the notification. |
| version | Version number of the object at the time of the event. |
| operation | The action that triggered the event: created, updated, deleted, or completed. |
| token | The bearer token configured for your account. Claravine sends this both in the JSON body and in the request Authorization header. Validate it on every inbound request. |
See the Appendix for sample payload outputs by object type (Submissions, Lists, and Templates).
Tips and Best Practices
- Respond immediately, process later. Your endpoint should return HTTP 200 right away and queue the payload for asynchronous processing. Any synchronous work done before responding risks exceeding the 500ms limit and causing delivery failures.
- Filter on your end if needed. Because notifications fire for all object types, use the event field in each payload to determine whether your system needs to act on that specific notification.
- Validate the bearer token on every request. Claravine sends the token both inside the JSON payload body and in the Authorization request header. Check this token on every inbound request to confirm it originated from Claravine.
- Account for Powered List refresh volume. Powered List refreshes trigger List webhook events. If your system is sensitive to high List update volume, implement filtering or rate-limiting logic on your end.
- Keep your endpoint available and monitored. Webhook delivery fails if your endpoint is unreachable. Ensure your receiving system has appropriate uptime and alerting in place.
Getting Help
To request webhook enablement or get technical support, submit a ticket through the Claravine support portal. Your Customer Success Manager will guide you through requirements, coordination, and activation to ensure a secure and successful implementation.
Sample Webhook Payloads
The following are sample payloads for each supported object type and operation.
Submission Payloads
Completed:
{ "event": "submission", "event_time": 1770914863, "object_id": "26679e11-820c-407b-9c5a-17ed1181a81a", "href": "https://api.claravine.com/v1/datasets/fe11a4d2-7f4c-498e-819e-19c5081e997d/transactions/26679e11-820c-407b-9c5a-17ed1181a81a/data", "operation": "Completed", "version": 1, "token": "client-secret" } |
Created:
{ "event": "submission", "event_time": 1770914862, "object_id": "26679e11-820c-407b-9c5a-17ed1181a81a", "href": "https://api.claravine.com/v1/datasets/fe11a4d2-7f4c-498e-819e-19c5081e997d/transactions/26679e11-820c-407b-9c5a-17ed1181a81a/data", "operation": "Created", "version": 1, "token": "client-secret" } |
List Payloads
Created:
{ "event": "list", "event_time": 1770923387, "object_id": "ef512810-0919-4e47-ab41-d3c69ea27ed0", "href": "https://api.claravine.com/v1/lists/ef512810-0919-4e47-ab41-d3c69ea27ed0", "operation": "created", "version": 1, "token": "client-secret" } |
Updated:
{ "event": "list", "event_time": 1770923476, "object_id": "ef512810-0919-4e47-ab41-d3c69ea27ed0", "href": "https://api.claravine.com/v1/lists/ef512810-0919-4e47-ab41-d3c69ea27ed0", "operation": "updated", "version": 2, "token": "client-secret" } |
Deleted:
{ "event": "list", "event_time": 1770923501, "object_id": "ef512810-0919-4e47-ab41-d3c69ea27ed0", "href": "https://api.claravine.com/v1/lists/ef512810-0919-4e47-ab41-d3c69ea27ed0", "operation": "deleted", "version": 2, "token": "client-secret" } |
Template Payloads
Created:
{ "event": "template", "event_time": 1770925732, "object_id": "5445a6c9-5954-4cae-8f4e-8f1068ee1d4f", "href": "https://api.claravine.com/v1/datasets/5445a6c9-5954-4cae-8f4e-8f1068ee1d4f/definition", "operation": "added", "version": 1, "token": "client-secret" } |
Updated:
{ "event": "template", "event_time": 1770925730, "object_id": "5445a6c9-5954-4cae-8f4e-8f1068ee1d4f", "href": "https://api.claravine.com/v1/datasets/5445a6c9-5954-4cae-8f4e-8f1068ee1d4f/definition", "operation": "updated", "version": 1, "token": "client-secret" } |
Deleted:
{ "event": "template", "event_time": 1770925811, "object_id": "5445a6c9-5954-4cae-8f4e-8f1068ee1d4f", "href": "https://api.claravine.com/v1/datasets/5445a6c9-5954-4cae-8f4e-8f1068ee1d4f/definition", "operation": "deleted", "version": 1, "token": "client-secret" } |
Comments
0 comments
Please sign in to leave a comment.