Webhook Event Types
Vivreal fires webhook events when key actions occur in your group. Each event has a type string following the resource.action naming convention.
Naming Convention
Event types use a dot-separated format:
{resource}.{sub-resource?}.{action}
Examples:
collection.object.created— a new object was added to a collectionintegration.connected— an integration was connected to the groupsite.deployed— a site deployment completed successfully
Collection Events
Fired when collections or collection objects are 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 |
collection.object.created | A new object was added to a collection |
collection.object.updated | An existing collection object was modified |
collection.object.deleted | A collection object was deleted |
collection.object.published | A collection object's publish date was set or changed |
collection.object.archived | A collection object was archived |
Bulk operations
Bulk operations fire individual events for each affected object. If you update 10 objects at once, you will receive 10 collection.object.updated events.
Integration Events
Fired when integrations are connected, disconnected, or synced.
| Event Type | Description |
|---|---|
integration.connected | An integration was connected to the group |
integration.disconnected | An integration was removed from the group |
integration.updated | An integration's configuration was modified |
integration.synced | A sync operation completed (e.g., Stripe products pulled) |
integration.object.created | A new integration object was created (e.g., synced product) |
integration.object.updated | An integration object was modified |
integration.object.deleted | An integration object was deleted |
Site Events
Fired during site deployment and domain configuration.
| Event Type | Description |
|---|---|
site.created | A new site was created |
site.deployed | A site deployment completed successfully |
site.failed | A site deployment failed |
site.domain.associated | A custom domain was linked to a site |
site.domain.verified | A custom domain's DNS was verified |
site.deleted | A site was deleted |
Group Events
Fired when group membership or settings change.
| Event Type | Description |
|---|---|
group.member.joined | A new member joined the group |
group.member.removed | A member was removed from the group |
group.member.role_changed | A member's role was updated |
group.settings.updated | Group settings were modified |
Media Events
Fired when media files are uploaded or deleted.
| Event Type | Description |
|---|---|
media.uploaded | A new media file was uploaded |
media.deleted | A media file 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 all events in a category (e.g., all
collection.*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 in approximately chronological order, but strict ordering is not guaranteed. If your application depends on event order (e.g., processing created before updated), use the timestamp field in the payload to sort events.
Two events for the same resource may arrive out of order during high-traffic periods. Design your handler to be tolerant of this by always checking the current state of the resource rather than relying solely on the event data.