Skip to content

Webhook Event Types

Complete list of webhook events emitted by Vivreal

intermediate4 min readFor developers

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 created
  • collection.updated — a collection group's schema or settings were modified
  • integration.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 TypeDescription
content.createdA new content item (collection object) was created
content.updatedAn existing content item was modified
content.deletedA 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 TypeDescription
collection.createdA new collection was created
collection.updatedA collection's schema or settings were modified
collection.deletedA 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 TypeDescription
integration.createdA new integration object was created (e.g., a Stripe product synced into Vivreal)
integration.updatedAn integration object was modified
integration.deletedAn 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 under VR_CMS_API/src/. Any event string not listed on this page is not emitted today.
  • Shared emitter: VR_CMS_API/src/shared/emitWebhookEvent.js.