Skip to main content

Webhook payload structure (Beta)

This topic describes the JSON payload format for event notification webhooks, including details about the fields. For more information about the Event Notifications (Beta) feature, see About event notifications (Beta).

Webhook payload structure

Webhooks deliver a JSON payload with the following structure:

{
"event": "customer.created",
"timestamp": "2026-01-25T22:48:32Z",
"text": "A new customer has been created.\n\nCustomer: Testy McTestface\nCustomer ID: 38ljzNKNZZSIp3bUQYSPzJUUBpd\nApplication: Demo\nChannel: Stable\nLicense Type: trial\nExpiration: 2026-02-24\nCreated at: 2026-01-25 22:48:32 UTC\n\nView customer: https://vendor.replicated.com/apps/demo-jaybird/customer/38ljzNKNZZSIp3bUQYSPzJUUBpd",
"data": {
"app_id": "34LgWqPkIlmhPDhvQVrbWcRwvLW",
"team_id": "CKUTNRX16FghU69v_RjZ1Q1EFXBcQBMZ",
"app_name": "Demo",
"app_slug": "demo-jaybird",
"eventType": "customer.created",
"channel_id": "34LgWuB1oCNbdLV6BbeepUSAEA6",
"created_at": "2026-01-25T22:48:32.391894468Z",
"event_type": "customer.created",
"expires_at": "2026-02-24T22:47:37Z",
"customer_id": "38ljzNKNZZSIp3bUQYSPzJUUBpd",
"channel_name": "Stable",
"license_type": "trial",
"customer_name": "Testy McTestface",
"subscription_name": "Trial Customer Alerts"
}
}

Top-level fields

The following describes the top-level fields in the webhook payload:

FieldTypeDescription
eventstringEvent type identifier such as "customer.created" or "instance.upgrade_started"
timestampstringISO 8601 timestamp when the event occurred
textstringHuman-readable text description of the event, formatted for readability in Slack and other chat tools
dataobject

Event-specific data containing detailed information about the event. See data object fields on this page.

data object fields

The data object contains detailed, event-specific information. There are common fields that apply to all event types as well as event-specific fields.

Common fields

The webhook payload includes the following common data object fields for all event types:

FieldTypeDescription
app_idstringApplication identifier
team_idstringTeam identifier
app_namestringApplication name
app_slugstringApplication slug (URL-safe identifier)
event_typestringEvent type identifier
subscription_namestringCustom subscription name, if set. The subscription_name field is included in the data object only when a custom name is set on the subscription.

Event-specific fields

This section describes the event-specific fields in the webhook payload data object.

Release Assets Downloaded events

The following fields apply to the Release Assets Downloaded event type:

FieldTypeDescription
customer_idstringCustomer identifier
customer_namestringCustomer display name
channel_idstringChannel identifier
channel_namestringChannel name
license_typestringLicense type: paid, trial, dev, or community
asset_typestringType of asset pulled: helm_chart, embedded_cluster_bundle, or proxy_image
asset_namestringName of the asset (chart name, app slug, or full proxy path)
asset_versionstringVersion or tag of the asset
service_account_namestringEnterprise Portal service account name, if a service account made the pull. Empty for direct license pulls.
is_first_customer_pullbooleantrue if this is the first software pull by this customer across all asset types; false for all subsequent pulls. Forward-only: customers who pulled software before this feature shipped will always have false. The is_first_customer_pull field is useful for revenue recognition workflows.
downloaded_atstringTimestamp (International Organization for Standardization (ISO) 8601 format) of when the pull occurred