Skip to main content

Webhook payload

Connect docs via MCP

When you configure a webhook for data quality events, Atlan sends an HTTPS POST request to your endpoint each time a rule lifecycle or execution event occurs. This page documents the event types, payload structure, and field definitions your endpoint receives.

The top-level structure is the same for all event types.

{
"eventType": "<event-type>",
"ruleData": { ... }
}

Event types

Atlan sends webhook events for two categories: rule lifecycle changes and rule execution results.

Rule lifecycle events

These events fire when a rule definition changes.

DATA_QUALITY_RULE_CREATEDstring
Optional

Fires when a new data quality rule is created.

DATA_QUALITY_RULE_UPDATEDstring
Optional

Fires when an existing rule is modified.

DATA_QUALITY_RULE_DELETEDstring
Optional

Fires when a rule is removed.

Rule execution events

These events fire after a scheduled or on-demand rule run completes.

DATA_QUALITY_RULE_PASSstring
Optional

Fires when a rule execution succeeds.

DATA_QUALITY_RULE_FAILstring
Optional

Fires when a rule execution fails.

ruleData field reference

Every event includes a ruleData object containing rule metadata, execution results, threshold configuration, and the associated dataset and column details. Fields are grouped below by function.

Example payload

The following example shows a DATA_QUALITY_RULE_FAIL event for a Custom SQL rule applied to a Snowflake table:

{
"eventType": "DATA_QUALITY_RULE_FAIL",
"ruleData": {
"connector": "snowflake",
"qualifiedName": "default/snowflake/1741280185/ANALYTICS/ATLAN_DEV/STG_PACKAGE_TYPES/rule/fa9b4d5f-945a-4685-0d7c-0210896d51e4",
"templateName": "Custom SQL",
"dimension": "completeness",
"priority": "NORMAL",
"latestResult": "FAIL",
"metricValue": "14",
"sourceSyncStatus": "SUCCESSFUL",
"sourceSyncErrorMessage": "",
"rowScopeFilteringEnabled": false,
"failedRowsSQL": "",
"customSQLReturnType": "NUMERIC_VALUE",
"customSQL": "SELECT count(*) FROM \"ANALYTICS\".\"ATLAN_DEV\".\"STG_PACKAGE_TYPES\"",
"latestResultComputedAt": 1772812401828,
"latestMetricValueComputedAt": 1772812223254,
"threshold": {
"thresholdValue": 12,
"thresholdCompareOperator": "LTE",
"thresholdUnit": null
},
"baseDatasetInfo": {
"qualifiedName": "default/snowflake/1741280185/ANALYTICS/ATLAN_DEV/STG_PACKAGE_TYPES",
"baseDatasetGuid": "7a7153c2-9ea8-4e1f-8ecb-12e63dd49809",
"baseDatasetTypename": "Table",
"name": "STG_PACKAGE_TYPES"
},
"baseColumnInfo": {
"qualifiedName": "",
"baseColumnGuid": "",
"baseColumnTypename": "",
"name": ""
}
}
}

Rule identification

These fields identify the rule, its template, quality dimension, and priority.

connectorstring
Required

Source warehouse.

Allowed values:
snowflakedatabricksbigquery

qualifiedNamestring
Required

Atlan qualified name of the DQ rule asset.

templateNamestring
Required

Rule template used for the check.

Allowed values:
Custom SQLRow CountNull CheckFreshness

dimensionstring
Required

Quality dimension the rule measures.

Allowed values:
completenessaccuracyfreshnessuniqueness

prioritystring
Required

Rule priority level.

Allowed values:
LOWNORMALURGENT

Execution results

These fields report the outcome and timing of the most recent rule run.

latestResultstring
Required

Most recent execution outcome.

Allowed values:
PASSFAIL

metricValuestring
Required

Measured value. Always returned as a string, even when the value is numeric.

latestResultComputedAtnumber
Required

Unix timestamp in milliseconds when the result was last computed.

Example:1772812401828

latestMetricValueComputedAtnumber
Required

Unix timestamp in milliseconds when the metric value was last measured.

Example:1772812223254

Source sync

These fields indicate whether the rule result was synced back to the source warehouse.

sourceSyncStatusstring
Required

Status of syncing the result back to the warehouse.

Allowed values:
SUCCESSFULFAILEDIN_PROGRESS

sourceSyncErrorMessagestring
Required

Error message if sync failed. Returns an empty string otherwise.

Row filtering

These fields describe the row-scope filtering and failed-rows query configuration for the rule.

rowScopeFilteringEnabledboolean
Required

Whether row-scope filtering is configured for this rule.

failedRowsSQLstring
Required

SQL query to retrieve the failing rows. Returns an empty string if not applicable.

Custom SQL

These fields are populated only for rules that use the Custom SQL template. For other rule types, both fields return an empty string.

customSQLReturnTypestring
Optional

Return type for Custom SQL rules.

Allowed values:
NUMERIC_VALUEBOOLEAN

customSQLstring
Optional

The SQL expression defined in the Custom SQL rule.

threshold

The threshold object contains the pass/fail boundary configured for the rule.

thresholdValuenumber
Required

Configured threshold value.

thresholdCompareOperatorstring
Required

Comparison operator applied to the threshold.

Allowed values:
LTELTGTEGTEQNEQ

thresholdUnitstring | null
Optional

Unit for the threshold. Used by freshness rules. Returns null for other rule types.

baseDatasetInfo

The baseDatasetInfo object identifies the table or view the rule is applied to.

qualifiedNamestring
Required

Atlan qualified name of the table or view.

baseDatasetGuidstring
Required

GUID of the table or view asset.

baseDatasetTypenamestring
Required

Asset type of the base dataset.

Allowed values:
TableViewMaterialisedView

namestring
Required

Display name of the table or view.

baseColumnInfo

The baseColumnInfo object identifies the column for column-level rules. For table-level rules, all fields return an empty string.

qualifiedNamestring
Optional

Qualified name of the column.

baseColumnGuidstring
Optional

GUID of the column asset.

baseColumnTypenamestring
Optional

Column asset type.

namestring
Optional

Column name.

See also

  • Configure webhooks: Set up webhook endpoints to receive data quality events
  • Configure alerts: Configure Slack or Microsoft Teams notifications for data quality rule failures