Webhook Event Types
Vivreal emits webhook events when content in your group changes. Each event has a type string following the resource.action naming convention, and is delivered via the webhook delivery pipeline.
Naming Convention
Event types use a dot-separated format:
{resource}.{action}
Examples:
content.created— a new collection object was createdcollection.updated— a collection group's schema or settings were modifiedintegration.created— a new integration object (such as a synced Stripe product) was created
Content Events
Fired when individual collection objects ("content items" in the portal UI) are created, updated, or deleted.
| Event Type | Description |
|---|---|
content.created | A new content item (collection object) was created |
content.updated | An existing content item was modified |
content.deleted | A content item was deleted |
Bulk operations
Bulk operations fire individual events for each affected object. If you update 10 objects at once, you will receive 10 content.updated events.
Collection Events
Fired when a collection group (the schema/container, not the individual items inside it) is created, updated, or deleted.
| Event Type | Description |
|---|---|
collection.created | A new collection was created |
collection.updated | A collection's schema or settings were modified |
collection.deleted | A collection was deleted |
Integration Events
Fired when an integration object is created, updated, or deleted. An "integration object" is an item inside an integration — for example, a product synced from Stripe.
| Event Type | Description |
|---|---|
integration.created | A new integration object was created (e.g., a Stripe product synced into Vivreal) |
integration.updated | An integration object was modified |
integration.deleted | An integration object was deleted |
Filtering Events
When configuring a webhook endpoint, you can subscribe to:
- All events — Receive every event type listed above.
- Specific categories — Subscribe to a family of events (e.g., all
content.*events). - Individual events — Subscribe to specific event types only.
Start broad, narrow down
When building a new integration, subscribe to all events initially. Once you know which events your application needs, narrow the subscription to reduce unnecessary traffic.
Event Ordering
Events are delivered via SQS and are approximately chronological, but strict ordering is not guaranteed. Because delivery may be retried (see Retry Policy), two events for the same resource may arrive out of order during retries or high-traffic periods.
If your application depends on event order (for example, processing content.created before content.updated), use the timestamp field in the payload to sort events, and design your handler to tolerate reordering by checking the current state of the resource rather than relying solely on the event data.
Source of truth
- Call sites that actually emit events: every
emitWebhookEvent(...)reference underVR_CMS_API/src/. Any event string not listed on this page is not emitted today. - Shared emitter:
VR_CMS_API/src/shared/emitWebhookEvent.js.