Skip to content

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

HTTP Request Body
{
  "eventID": "{{ $var.id }}",
  "serviceID": "{{ $var.ServiceID }}",
  "eventName": "{{ $var.Name }}",
  "eventDescription": "{{ $var.Description }}",
  "eventType": "{{ $var.Type }}",
  "payload": "{{ $var.Payload }}",
  "timestamp": "{{ $var.CreatedAt }}"
}
Rendered HTTP body (SuccessfulRestore example)
{
  "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
Example instance event payload
{
  "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
Example UnhealthyInstance payload
{
  "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)
Example restore event payload
{
  "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)
Example UserSignUp payload
{
  "user_email": "[email protected]",
  "user_name": "Jane Smith",
  "user_id": "usr-abc123",
  "user_organization": "Acme Corp"
}
Example UserSubscription payload
{
  "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"
}
Example UserSubscriptionInvite payload
{
  "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
Example identity provider event payload
{
  "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
Example billing event payload (with 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)
Example UpgradeScheduled payload
{
  "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
Example DeploymentCellCreateStarted payload (bootstrap)
{
  "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
Example DeploymentCellCompleted payload
{
  "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