Overview
When an event occurs on your connection, Configly sends a POST request to every active webhook subscription that includes that event type. Each delivery contains a standard event envelope with type-specific data.
To subscribe to events, see Webhooks API.
Event envelope
Every webhook delivery has this structure:
{
"id": "evt_a1b2c3d4e5f6g7h8",
"type": "health_check.completed",
"timestamp": "2026-04-15T14:30:00.000Z",
"connectionId": "clx1abc...",
"data": { }
}
| Field | Type | Description |
|---|---|---|
id |
string | Unique event identifier with evt_ prefix. |
type |
string | One of the event types listed below. |
timestamp |
string | ISO 8601 timestamp of when the event was created. |
connectionId |
string | The connection that triggered the event. |
data |
object | Type-specific payload. Shape varies by event type. |
Active event types
connection.sync_completed
Fires when a Zendesk sync finishes successfully, regardless of whether individual items had failures. See GitHub status and sync for the sync endpoints.
| Data field | Type | Description |
|---|---|---|
snapshotVersion |
number | Version number of the completed snapshot. |
totalCount |
number | Total objects synced. |
successCount |
number | Objects synced successfully. |
failureCount |
number | Objects that failed to sync. |
durationMs |
number | Sync duration in milliseconds. |
connection.sync_failed
Fires when the sync operation fails entirely (not individual item failures within a successful sync).
| Data field | Type | Description |
|---|---|---|
error |
string | Error message describing the failure. |
config.applied
Fires when changes are pushed to Zendesk with a status of "success" or "partial". Not emitted on full failure. See Apply changes for the apply endpoints.
| Data field | Type | Description |
|---|---|---|
operationId |
string | The apply operation identifier. |
changeReason |
string | The reason provided when applying. |
status |
string |
success or partial. |
changeCount |
number | Total changes attempted. |
successCount |
number | Changes applied successfully. |
failureCount |
number | Changes that failed. |
preSnapshotVersion |
string | Snapshot version before the apply. |
postSnapshotVersion |
string | Snapshot version after the apply. |
health_check.completed
Fires after every health check run. See Running health checks for the health check endpoints.
| Data field | Type | Description |
|---|---|---|
reportId |
string | The health check report identifier. |
score |
number | Overall health score. |
totalFindings |
number | Total findings in the report. |
criticalCount |
number | Number of critical findings. |
warningCount |
number | Number of warning findings. |
infoCount |
number | Number of informational findings. |
health_check.score_changed
Fires only when a health check report's score differs from the previous report's score. Not emitted on the first-ever health check (there is no previous score to compare).
| Data field | Type | Description |
|---|---|---|
reportId |
string | The new report identifier. |
previousScore |
number | Score from the previous report. |
newScore |
number | Score from the current report. |
delta |
number | Score change. Positive means improvement, negative means degradation. |
health_check.critical_finding
Fires when new critical-severity findings are detected that were not present in the previous report. "New" is determined by comparing each finding's check ID and affected objects against the previous report.
| Data field | Type | Description |
|---|---|---|
reportId |
string | The report identifier. |
newCriticalCount |
number | Number of newly appearing critical findings. |
findings |
array | Each entry has checkId, severity, title, and category. |
Reserved event types
config.changed and snapshot.completed are defined in the event vocabulary but not currently emitted. They are reserved for future use. A subscription may include them, but no deliveries will be sent for these types until they are activated in a future release.
Subscribing to events
Create a webhook subscription with the event types you want to receive. See Webhooks API for the full subscription management endpoints.
curl -X POST https://api.configly.app/v1/webhooks \
-H "Authorization: Bearer cly_your_key" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/webhook",
"events": [
"connection.sync_completed",
"health_check.completed",
"health_check.score_changed",
"config.applied"
]
}'
Comments
0 comments
Please sign in to leave a comment.