Webhook Alarm Event Payloads¶
This page documents the data Omnistrate sends to webhook notification channels for every alarm event. Use this reference when designing your webhook body template (HTTP Request Body).
Template syntax¶
{{ $var.<field> }} resolves against the alarm event. Field names in {{ $var.<field> }} are case-sensitive.
Example template and rendered body¶
{
"eventID": "{{ $var.id }}",
"serviceID": "{{ $var.ServiceID }}",
"eventName": "{{ $var.Name }}",
"eventDescription": "{{ $var.Description }}",
"eventType": "{{ $var.Type }}",
"payload": "{{ $var.Payload }}",
"timestamp": "{{ $var.CreatedAt }}"
}
{
"eventID": "event-gxocwiBnDH",
"serviceID": "s-tVf1FKBQbl",
"eventName": "Instance restored",
"eventDescription": "SuccessfulRestore",
"eventType": "SuccessfulRestore",
"payload": {
"instance_id": "instance-ep3zs6iwc",
"Service": "My Database",
"Organization": "Acme Corp",
"Resource": "webserver",
"ProductTier": "Enterprise",
"subscription_id": "sub-abc123",
"product_tier_id": "pt-xyz789",
"source_instance_id": "instance-b7zds3mfg",
"snapshot_id": "instance-ss-koet1ataz"
},
"timestamp": "2026-04-20T17:35:07.043983Z"
}
Available template variables¶
The following fields are available for use in HTTP Request Body via {{ $var.<field> }}. Association fields (ServiceID, InstanceID, etc.) are populated only when the alarm event relates to that entity.
Identity and classification¶
| Variable | Description |
|---|---|
{{ $var.id }} | Unique alarm event identifier |
{{ $var.Type }} | Specific event type (e.g. SuccessfulRestore) — see the per-category sections below |
{{ $var.Category }} | Category (InstanceEvent, UserEvent, IdentityProviderEvent, BillingEvent, SystemEvent, DeploymentCellEvent) |
{{ $var.AlertType }} | Alarm or Notification |
{{ $var.Priority }} | Critical, High, Medium, or Low |
{{ $var.Name }} | Short human-readable name |
{{ $var.Description }} | Human-readable description |
Timing¶
| Variable | Description |
|---|---|
{{ $var.CreatedAt }} | ISO 8601 timestamp when the alarm event was raised |
{{ $var.UpdatedAt }} | ISO 8601 timestamp of the last update |
{{ $var.ExpiryTime }} | ISO 8601 timestamp when the alarm event expires |
Associations¶
| Variable | Description |
|---|---|
{{ $var.ServiceID }} | ID of the associated SaaS product |
{{ $var.ServiceEnvironmentID }} | ID of the environment |
{{ $var.ServiceEnvironmentType }} | Environment type (PROD, QA, DEV) |
{{ $var.InstanceID }} | ID of the associated instance |
{{ $var.ResourceID }} | ID of the resource |
{{ $var.ResourceVersion }} | Version of the resource |
Payload¶
| Variable | Description |
|---|---|
{{ $var.Payload }} | The category-specific payload object. Render with "{{ $var.Payload }}" (quoted) to inline as raw JSON; resolves to null when absent. The fields available inside it depend on the event category — see the sections below. |
Instance events¶
Category: InstanceEvent — Use {{ $var.Payload }} to receive the fields documented in this section.
These alarm events are delivered for instance lifecycle operations, health monitoring, scaling, backup/snapshot operations, and recovery actions. For the full list of event types in this category, see Alarm Event Categories and Type.
Payload fields¶
Most instance events deliver the following base fields inside {{ $var.Payload }}:
| Field | Type | Description |
|---|---|---|
instance_id | string | ID of the affected instance |
Service | string | Name of the service |
Organization | string | Name of the end-customer organization |
Resource | string | Name of the resource |
ProductTier | string | Name of the plan |
subscription_id | string | ID of the subscription |
product_tier_id | string | ID of the plan |
{
"instance_id": "instance-12345678",
"Service": "My Database",
"Organization": "Acme Corp",
"Resource": "PostgreSQL Primary",
"ProductTier": "Enterprise",
"subscription_id": "sub-abc123",
"product_tier_id": "pt-xyz789"
}
Monitoring event payload¶
Health monitoring events (UnhealthyInstance, UnhealthyIntegration, UnhealthyCustomerIntegration) deliver a different set of fields inside {{ $var.Payload }}. These events expire after 1 hour rather than the 8-hour default used by other instance events.
| Field | Type | Description |
|---|---|---|
instance_id | string | ID of the affected instance |
instance_status | string | Current status of the instance |
service_id | string | ID of the service |
service_name | string | Name of the service |
service_environment_id | string | ID of the service environment |
service_environment_name | string | Name of the service environment |
product_tier_id | string | ID of the plan |
product_tier_name | string | Name of the plan |
cloud_provider_name | string | Name of the cloud provider |
region_code | string | Cloud region code |
{
"instance_id": "instance-12345678",
"instance_status": "UNHEALTHY",
"service_id": "s-abc123",
"service_name": "My Database",
"service_environment_id": "se-def456",
"service_environment_name": "Production",
"product_tier_id": "pt-xyz789",
"product_tier_name": "Enterprise",
"cloud_provider_name": "aws",
"region_code": "us-east-1"
}
HighCPUUsage and RecoveryStarted events use the standard base payload and may include additional dynamic fields produced by the monitoring pipeline.
Snapshot event payload¶
Snapshot events (FailedSnapshotCreate, SuccessfulSnapshotCreate, FailedSnapshotCopy, SuccessfulSnapshotCopy, FailedSnapshotDelete, SuccessfulSnapshotDelete) deliver the base instance payload plus:
| Field | Type | Description |
|---|---|---|
snapshot_id | string | ID of the snapshot |
Restore event payload¶
Restore events (StartedRestore, FailedRestore, SuccessfulRestore) deliver the base instance payload plus:
| Field | Type | Description |
|---|---|---|
source_instance_id | string | ID of the original instance being restored from |
snapshot_id | string | ID of the snapshot used for the restore (present only for snapshot-based restores) |
{
"instance_id": "instance-12345678",
"Service": "My Database",
"Organization": "Acme Corp",
"Resource": "PostgreSQL Primary",
"ProductTier": "Enterprise",
"subscription_id": "sub-abc123",
"product_tier_id": "pt-xyz789",
"source_instance_id": "instance-original-99",
"snapshot_id": "snap-abc456"
}
User events¶
Category: UserEvent — Use {{ $var.Payload }} to receive the fields documented in this section.
Delivered when end customers sign up, subscribe, get invited, or are removed from your SaaS product.
Payload fields¶
| Field | Type | Description |
|---|---|---|
user_email | string | Email address of the user |
user_name | string | Name of the user |
user_id | string | ID of the user |
user_organization | string | Name of the user's organization |
is_user_enabled | boolean | Whether the user account is enabled |
service_name | string | Name of the service (when applicable) |
product_tier_name | string | Name of the plan (when applicable) |
subscription_id | string | ID of the subscription (when applicable) |
inviting_user_name | string | Name of the inviting user (for invite events) |
token | string | Token associated with the event (when applicable) |
invoice_id | string | ID of the invoice (when applicable) |
{
"user_email": "[email protected]",
"user_name": "Jane Smith",
"user_id": "usr-abc123",
"user_organization": "Acme Corp"
}
{
"user_email": "[email protected]",
"user_name": "Jane Smith",
"user_id": "usr-abc123",
"user_organization": "Acme Corp",
"is_user_enabled": true,
"service_name": "My Database",
"product_tier_name": "Enterprise",
"subscription_id": "sub-xyz789"
}
{
"user_email": "[email protected]",
"user_name": "Bob Jones",
"user_id": "usr-def456",
"user_organization": "Acme Corp",
"is_user_enabled": true,
"service_name": "My Database",
"product_tier_name": "Enterprise",
"inviting_user_name": "Jane Smith",
"subscription_id": "sub-xyz789"
}
Identity provider events¶
Category: IdentityProviderEvent — Use {{ $var.Payload }} to receive the fields documented in this section.
Delivered when an identity provider verification fails.
Payload fields¶
| Field | Type | Description |
|---|---|---|
IdentityProviderID | string | ID of the identity provider |
IdentityProviderName | string | Name of the identity provider |
IdentityProviderType | string | Type of the identity provider |
Status | string | Current status of the identity provider |
ClientID | string | Client ID of the identity provider configuration |
{
"IdentityProviderID": "idp-abc123",
"IdentityProviderName": "Okta SSO",
"IdentityProviderType": "SAML",
"Status": "FAILED",
"ClientID": "0oa1b2c3d4e5f6g7h8"
}
Billing events¶
Category: BillingEvent — Use {{ $var.Payload }} to receive the fields documented in this section.
Delivered for metering export operations and invoice generation.
Payload fields¶
When a billing event is associated with a specific service and plan, the payload includes:
| Field | Type | Description |
|---|---|---|
ServiceName | string | Name of the service |
ServiceID | string | ID of the service |
Environment | string | Environment type |
ProductTierName | string | Name of the plan |
ProductTierID | string | ID of the plan |
{
"ServiceName": "My Database",
"ServiceID": "s-abc123",
"Environment": "PROD",
"ProductTierName": "Enterprise",
"ProductTierID": "pt-xyz789"
}
For organization-level billing events (e.g., InvoiceGenerateSuccess without a specific plan), the payload contains only custom details provided at creation time.
System events¶
Category: SystemEvent — Use {{ $var.Payload }} to receive the fields documented in this section.
Delivered for upgrade path operations.
Payload fields¶
The fields available inside {{ $var.Payload }} describe the upgrade path. Field names use PascalCase except for the two source-specific fields at the bottom.
Core fields (always present):
| Field | Type | Description |
|---|---|---|
ServiceID | string | ID of the service |
ProductTierID | string | ID of the plan |
UpgradePathID | string | ID of the upgrade path |
SourceVersion | string | Source plan version |
SourceVersionName | string | Name of the source version |
TargetVersion | string | Target plan version |
TargetVersionName | string | Name of the target version |
Status | string | Current status of the upgrade path |
Type | string | Type of the upgrade path |
CreatedAt | string | Timestamp when the upgrade was created (ISO 8601) |
ReleasedAt | string | Timestamp when the upgrade was released (ISO 8601) |
UpdatedAt | string | Timestamp when the upgrade was last updated (ISO 8601) |
Progress fields:
| Field | Type | Description |
|---|---|---|
TotalCount | integer | Total instances eligible for upgrade |
CompletedCount | integer | Instances that completed the upgrade |
FailedCount | integer | Instances that failed the upgrade |
PendingCount | integer | Instances pending upgrade |
SkippedCount | integer | Instances that were skipped |
InProgressCount | integer | Instances currently upgrading |
ScheduledCount | integer | Instances scheduled for upgrade (present when a date is set) |
Optional fields (present when applicable):
| Field | Type | Description |
|---|---|---|
PlannedExecutionDate | string | Planned execution date (ISO 8601) |
CompletedAt | string | Timestamp when the upgrade completed (ISO 8601) |
CreatedBy | string | Name of the user who created the upgrade |
LastModifiedBy | string | Name of the user who last modified the upgrade |
LastRequestedAction | string | Last maintenance action requested |
NotifyCustomer | boolean | Whether end customers are notified |
MaxConcurrentUpgrades | integer | Maximum concurrent upgrades |
FailedInstanceReasons | object | Map of instance IDs to failure details |
StatusMessage | string | Human-readable status message |
Additional fields:
| Field | Type | Description |
|---|---|---|
scheduling_event_type | string | "scheduled", "immediate", or "reminder" (for UpgradeScheduled) |
completion_status | string | "SUCCESS", "CANCELLED", or "SKIPPED" (for completion events) |
{
"ServiceID": "s-abc123",
"ProductTierID": "pt-xyz789",
"UpgradePathID": "up-abc123",
"SourceVersion": "2.0",
"SourceVersionName": "v2.0 Stable",
"TargetVersion": "3.0",
"TargetVersionName": "v3.0 GA",
"Status": "Scheduled",
"Type": "Major",
"TotalCount": 15,
"CompletedCount": 0,
"FailedCount": 0,
"PendingCount": 15,
"SkippedCount": 0,
"InProgressCount": 0,
"ScheduledCount": 15,
"CreatedAt": "2025-03-15T10:00:00Z",
"ReleasedAt": "2025-03-15T10:00:00Z",
"UpdatedAt": "2025-03-15T10:00:00Z",
"PlannedExecutionDate": "2025-04-01T02:00:00Z",
"CreatedBy": "[email protected]",
"NotifyCustomer": true,
"scheduling_event_type": "scheduled"
}
Deployment cell events¶
Category: DeploymentCellEvent — Use {{ $var.Payload }} to receive the fields documented in this section.
Delivered during the lifecycle of deployment cells. The payload structure varies by event type.
Payload fields — bootstrap events¶
The DeploymentCellCreate*, DeploymentCellUpdate*, and DeploymentCellDelete* event types deliver the following fields inside {{ $var.Payload }}:
| Field | Type | Description |
|---|---|---|
host_cluster_id | string | ID of the deployment cell |
region | string | Cloud region code |
cloud_provider | string | Cloud provider name |
role | string | Role of the deployment cell |
org_id | string | ID of the owning organization |
root_user_id | string | ID of the root user |
{
"host_cluster_id": "hc-abc123",
"region": "us-east-1",
"cloud_provider": "aws",
"role": "dataplane",
"org_id": "org-xyz789",
"root_user_id": "usr-abc123"
}
Payload fields¶
The DeploymentCellStarted, DeploymentCellInProgress, DeploymentCellCompleted, and RepairingDeploymentCellStarted event types deliver the following fields inside {{ $var.Payload }}:
| Field | Type | Description |
|---|---|---|
host_cluster_id | string | ID of the deployment cell |
host_cluster_status | string | Current status of the deployment cell |
host_cluster_role | string | Role of the deployment cell |
host_cluster_type | string | Type of the deployment cell |
organization_id | string | ID of the owning organization |
account_config_id | string | ID of the cloud account configuration |
On completion (DeploymentCellCompleted), these additional metrics fields are delivered:
| Field | Type | Description |
|---|---|---|
operation_duration_seconds | number | Duration of the operation in seconds |
operation_initial_status | string | Status when the operation started |
operation_final_status | string | Status after the operation completed |
{
"host_cluster_id": "hc-abc123",
"host_cluster_status": "READY",
"host_cluster_role": "dataplane",
"host_cluster_type": "kubernetes",
"organization_id": "org-xyz789",
"account_config_id": "ac-def456",
"operation_duration_seconds": 842.5,
"operation_initial_status": "PENDING",
"operation_final_status": "READY"
}
HostClusterCleanup events deliver the fields above plus the following cleanup-specific fields:
| Field | Type | Description |
|---|---|---|
host_cluster_id | string | ID of the deployment cell |
host_cluster_status | string | Current status of the deployment cell |
host_cluster_role | string | Role of the deployment cell |
host_cluster_type | string | Type of the deployment cell |
organization_id | string | ID of the owning organization |
account_config_id | string | ID of the cloud account configuration |
root_user_id | string | ID of the root user |
region_id | string | ID of the region |
auto_cleanup | boolean | Whether this was an automatic cleanup (true) |
cleanup_reason | string | Reason for cleanup (e.g., inactive_deployment_cell) |
cleanup_details | object | Nested details about the cleanup (see below) |
The cleanup_details object contains:
| Field | Type | Description |
|---|---|---|
inactivity_threshold | string | Duration of inactivity that triggered cleanup |
cleanup_time | string | ISO 8601 timestamp when the cleanup was initiated |