Webhooks
Overview
The Sifflet webhook integration lets you send notifications about your monitors to your endpoints. Use webhooks to push Sifflet data observability insights:
- To any notification and ticketing tool your team is using to keep track of data quality issues over there
- To custom scripts to trigger remediation workflows
- To data catalogs to ensure de-risked data self-service
- And more.
You can choose between two event scopes depending on how much data you want your webhook to receive:
- Linked events: Sends only events related to the specific monitors or sources configured with the webhook.
- All events: This scope allows your webhook to receive every event generated in Sifflet, without needing to link specific monitors or assets.
Sifflet webhooks send the following event types: MONITOR_FAILURE, MONITOR_NEEDS_ATTENTION, MONITOR_SUCCESS,
MONITOR_STATUS_CHANGE and TRANSFORMATION_RUN_FAILURE.
Event types sent via our webhooks: MONITOR_FAILURE, MONITOR_NEEDS_ATTENTION, MONITOR_SUCCESS, MONITOR_STATUS_CHANGE, INCIDENT_CLOSED and TRANSFORMATION_RUN_FAILURE.
Webhooks are not templated and are neither incident-centric nor monitor-centric: each payload is a JSON document that already contains the monitor, the run and, when there is one, the incident. To see what each notification channel receives, see the Notification catalog.
Manage the Integration
Set Up the Integration
- Go to your Sifflet application
- Hover over the
Settingsentry of the navigation bar and click theCollaboration Toolsentry - Look for the
Webhookssection - Give your webhook a name
- Enter your webhook URL
- Optionally, add a custom header to attach to the payload (for authentication or any other purposes)
- Click the
Send test notificationbutton. Sifflet sends a payload such as the following one to your endpoint. A success toast notification shows up in Sifflet if your endpoint returns a2xxstatus code.
{
"eventType": "MONITOR_FAILURE",
"eventDate": "2024-11-13 16:45 UTC",
"monitor": {
"id": "7c8ed50d-f887-40d7-b3e6-d4707d3e549b",
"name": "Test Notification Sifflet Monitor 1",
"link": "https://demo.siffletdata.com/monitors/rule/7c8ed50d-f887-40d7-b3e6-d4707d3e549b/overview",
"description": "Monitor with impacted dashboards",
"displayType": "Is an Email",
"severity": "CRITICAL",
"assets": [
{
"name": "Test Notification Dataset 1",
"uri": "bigquery:project-id.dataset-id.Test Notification Dataset 1",
"link": "https://demo.siffletdata.com/data-catalog/asset/dataset:fb8a475d-5ce5-4925-84e0-fd1faf3442f7/overview"
},
{
"name": "Test Notification Dataset 2",
"uri": "bigquery:project-id.dataset-id.Test Notification Dataset 2",
"link": "https://demo.siffletdata.com/data-catalog/asset/dataset:41d96fba-28e5-4044-bf05-0a62f6f139be/overview"
}
],
"tags": [
{
"id": "8688f902-f5a5-441e-92d0-38b6f35736b8",
"name": "Test Notification Classification 1",
"description": "Classification 1 description",
"kind": "CLASSIFICATION"
},
{
"id": "9152ba0c-1038-4915-924c-401bc948b3ae",
"name": "Test Notification Tag 1",
"description": "Tag 1 description",
"kind": "GENERIC"
}
],
"terms": [
{
"id": "a361bff5-43cd-4bfd-aef3-2128f497156f",
"name": "Test Notification Term 1",
"description": "Term 1 description"
}
]
},
"monitorRun": {
"id": "bd8c47f0-3500-4933-a4d8-15af938a6597",
"runType": "MANUAL",
"result": "This monitor run failed",
"status": "FAILED",
"date": "2024-11-13 16:45 UTC",
"message": "Monitor message"
},
"isNewIncident": true,
"incident": {
"id": "0921f0d7-13ac-4ac3-bea6-db9cf9673c42",
"link": "https://demo.siffletdata.com/incidents/issue/12345/overview",
"name": "Test Notification Incident with Dashboards",
"compromisedAssets": [
{
"name": "Test Notification Dashboard 1",
"uri": "tableau://example.online.tableau.com/example/2a33ec68-d199-4121-923f-f80ea0f77c30",
"link": "https://demo.siffletdata.com/data-catalog/asset/dashboard:2a33ec68-d199-4121-923f-f80ea0f77c30/overview"
},
{
"name": "Test Notification Dashboard 2",
"uri": "tableau://example.online.tableau.com/example/2bedca4f-80f0-4e61-abd8-1b2ac6cf6d46",
"link": "https://demo.siffletdata.com/data-catalog/asset/dashboard:2bedca4f-80f0-4e61-abd8-1b2ac6cf6d46/overview"
}
],
"collaborationToolItems": [
{
"type": "JIRA",
"link": "https://my-jira-instance.atlassian.net/browse/P59-1028"
}
]
}
}- Click the
Add webhookbutton.
Send a Webhook Test Notification
Follow these steps to send a test notification for a configured webhook:
- Go to your Sifflet application
- Hover over the
Settingsentry of the navigation bar and click theCollaboration Toolsentry - Look for the
Webhookssection - Find the webhook you want to test in the list of
Configured webhooks - Hover over the configured webhook of interest and click the paper plane icon located at the far right end of the row. Sifflet sends a payload such as the following one to your endpoint.
{
"eventType": "MONITOR_FAILURE",
"eventDate": "2024-11-13 16:45 UTC",
"monitor": {
"id": "7c8ed50d-f887-40d7-b3e6-d4707d3e549b",
"name": "Test Notification Sifflet Monitor 1",
"link": "https://demo.siffletdata.com/monitors/rule/7c8ed50d-f887-40d7-b3e6-d4707d3e549b/overview",
"description": "Monitor with impacted dashboards",
"displayType": "Is an Email",
"severity": "CRITICAL",
"assets": [
{
"name": "Test Notification Dataset 1",
"uri": "bigquery:project-id.dataset-id.Test Notification Dataset 1",
"link": "https://demo.siffletdata.com/data-catalog/asset/dataset:fb8a475d-5ce5-4925-84e0-fd1faf3442f7/overview"
},
{
"name": "Test Notification Dataset 2",
"uri": "bigquery:project-id.dataset-id.Test Notification Dataset 2",
"link": "https://demo.siffletdata.com/data-catalog/asset/dataset:41d96fba-28e5-4044-bf05-0a62f6f139be/overview"
}
],
"tags": [
{
"id": "8688f902-f5a5-441e-92d0-38b6f35736b8",
"name": "Test Notification Classification 1",
"description": "Classification 1 description",
"kind": "CLASSIFICATION"
},
{
"id": "9152ba0c-1038-4915-924c-401bc948b3ae",
"name": "Test Notification Tag 1",
"description": "Tag 1 description",
"kind": "GENERIC"
}
],
"terms": [
{
"id": "a361bff5-43cd-4bfd-aef3-2128f497156f",
"name": "Test Notification Term 1",
"description": "Term 1 description"
}
]
},
"monitorRun": {
"id": "bd8c47f0-3500-4933-a4d8-15af938a6597",
"runType": "MANUAL",
"result": "This monitor run failed",
"status": "FAILED",
"date": "2024-11-13 16:45 UTC",
"message": "Monitor message"
},
"isNewIncident": true,
"incident": {
"id": "0921f0d7-13ac-4ac3-bea6-db9cf9673c42",
"link": "https://demo.siffletdata.com/incidents/issue/12345/overview",
"name": "Test Notification Incident with Dashboards",
"compromisedAssets": [
{
"name": "Test Notification Dashboard 1",
"uri": "tableau://example.online.tableau.com/example/2a33ec68-d199-4121-923f-f80ea0f77c30",
"link": "https://demo.siffletdata.com/data-catalog/asset/dashboard:2a33ec68-d199-4121-923f-f80ea0f77c30/overview"
},
{
"name": "Test Notification Dashboard 2",
"uri": "tableau://example.online.tableau.com/example/2bedca4f-80f0-4e61-abd8-1b2ac6cf6d46",
"link": "https://demo.siffletdata.com/data-catalog/asset/dashboard:2bedca4f-80f0-4e61-abd8-1b2ac6cf6d46/overview"
}
],
"collaborationToolItems": [
{
"type": "JIRA",
"link": "https://my-jira-instance.atlassian.net/browse/P59-1028"
}
]
}
}Delete a Webhook
Follow these steps to delete a webhook:
- Go to your Sifflet application
- Hover over the
Settingsentry of the navigation bar and click theCollaboration Toolsentry - Look for the
Webhookssection - Find the webhook you want to delete in the list of
Configured webhooks - Hover over the configured webhook of interest and click the trash can icon located at the far right end of the row.
Send Webhook Notifications
Choose a webhook as a destination
Select your webhook as a destination in a notification rule. To use a different webhook for a single monitor, override the rules from the monitor's notification settings. See Monitor notifications.
A payload is sent on the following events:
- Monitor failure (
MONITOR_FAILURE) - Monitor needs attention (
MONITOR_NEEDS_ATTENTION) - Monitor success (
MONITOR_SUCCESS) - Status change (
MONITOR_STATUS_CHANGE): a monitor improves to passing, from failing or from needs attention - Incident closed (
INCIDENT_CLOSED)
Payload Examples
Monitor Failure
There can be three different types of monitor failure payload formats. The isMonitorAlreadyLinkedToIncident field tells you whether the monitor was already linked to an incident before this failure. When the failure is linked to an incident, the incident object includes its issue number (issue) and its status.
Monitor Failure, No Incident
{
"eventType": "MONITOR_FAILURE",
"eventDate": "2024-11-08 15:48 UTC",
"monitor": {
"id": "7cd1a2b4-d1f5-4b9e-87c3-36e7d2a9b5d1",
"name": "SQL Monitor",
"link": "https://demo.siffletdata.com/monitors/rule/7cd1a2b4-d1f5-4b9e-87c3-36e7d2a9b5d1/overview",
"description": "Example SQL Monitor",
"displayType": "SQL",
"severity": "CRITICAL",
"assets": [
{
"name": "Example Dataset",
"uri": "bigquery:project-id.dataset-id.Example Dataset",
"link": "https://demo.siffletdata.com/data-catalog/asset/dataset:8a4f0e29-3d32-4b4d-835b-c1d1bdf06f72/overview"
}
],
"tags": [
{
"id": "eb9e1c6a-57b7-4b68-9d4f-7dcbf5434bc2",
"name": "Production",
"description": "Example Tag",
"kind": "GENERIC"
}
],
"terms": [
{
"id": "5d60a51e-e33a-4df7-944e-2b832e1b0c34",
"name": "Revenue",
"description": "Example Business Term"
}
]
},
"monitorRun": {
"id": "3d7e2c1e-2e46-48ea-8b6b-6a3a3e847a34",
"runType": "MANUAL",
"result": "Anomaly detected in 1 timeslot: [2024-11-08] Value = 1 Expected = [value < 0.0].",
"status": "FAILED",
"date": "2024-11-08 15:48 UTC",
"message": "Example Message"
},
"isNewIncident": null,
"isMonitorAlreadyLinkedToIncident": false,
"incident": null
}Monitor Failure, New Incident
{
"eventType": "MONITOR_FAILURE",
"eventDate": "2024-11-08 13:01 UTC",
"monitor": {
"id": "7cd1a2b4-d1f5-4b9e-87c3-36e7d2a9b5d1",
"name": "SQL Monitor",
"link": "https://demo.siffletdata.com/monitors/rule/7cd1a2b4-d1f5-4b9e-87c3-36e7d2a9b5d1/overview",
"description": "Example SQL Monitor",
"displayType": "SQL",
"severity": "CRITICAL",
"assets": [
{
"name": "Example Dataset",
"uri": "bigquery:project-id.dataset-id.Example Dataset",
"link": "https://demo.siffletdata.com/data-catalog/asset/dataset:8a4f0e29-3d32-4b4d-835b-c1d1bdf06f72/overview"
}
],
"tags": [
{
"id": "eb9e1c6a-57b7-4b68-9d4f-7dcbf5434bc2",
"name": "Production",
"description": "Example Tag",
"kind": "GENERIC"
}
],
"terms": [
{
"id": "5d60a51e-e33a-4df7-944e-2b832e1b0c34",
"name": "Revenue",
"description": "Example Business Term"
}
]
},
"monitorRun": {
"id": "3d7e2c1e-2e46-48ea-8b6b-6a3a3e847a34",
"runType": "MANUAL",
"result": "Anomaly detected in 1 timeslot: [2024-11-08] Value = 1 Expected = [value < 0.0].",
"status": "FAILED",
"date": "2024-11-08 13:01 UTC",
"message": "Example Message"
},
"isNewIncident": true,
"isMonitorAlreadyLinkedToIncident": false,
"incident": {
"id": "c4be7e8a-9f2c-4411-bd8e-091d7b3e1295",
"link": "https://demo.siffletdata.com/incidents/issue/123/overview",
"name": "SQL Monitor",
"issue": 123,
"status": "OPEN",
"compromisedAssets": [
{
"name": "Dashboard Drink Orders Analysis:My New Workbook:default",
"uri": "tableau://dub01.online.tableau.com/demo/4f73d901-8b3d-4dd9-8392-c246715d2b93",
"link": "https://demo.siffletdata.com/data-catalog/asset/dashboard:9e8a0c34-f25a-48d7-9dbe-3c1c745dfb72/overview"
},
{
"name": "Dashboard Food orders Analysis:My New Workbook:default",
"uri": "tableau://dub01.online.tableau.com/demo/ae56b3c2-174f-4a4e-9361-4f7a1e6e8b9d",
"link": "https://demo.siffletdata.com/data-catalog/asset/dashboard:1f87e9c3-6d3b-4a6e-b582-13b7f9a2c7e5/overview"
}
],
"collaborationToolItems": [
{
"type": "JIRA",
"link": "https://my-jira-instance.atlassian.net/browse/P59-1028"
}
]
}
}Monitor Failure, Existing Incident
{
"eventType": "MONITOR_FAILURE",
"eventDate": "2024-11-08 13:01 UTC",
"monitor": {
"id": "7cd1a2b4-d1f5-4b9e-87c3-36e7d2a9b5d1",
"name": "SQL Monitor",
"link": "https://demo.siffletdata.com/monitors/rule/7cd1a2b4-d1f5-4b9e-87c3-36e7d2a9b5d1/overview",
"description": "Example SQL Monitor",
"displayType": "SQL",
"severity": "CRITICAL",
"assets": [
{
"name": "Example Dataset",
"uri": "bigquery:project-id.dataset-id.Example Dataset",
"link": "https://demo.siffletdata.com/data-catalog/asset/dataset:8a4f0e29-3d32-4b4d-835b-c1d1bdf06f72/overview"
}
],
"tags": [
{
"id": "eb9e1c6a-57b7-4b68-9d4f-7dcbf5434bc2",
"name": "Production",
"description": "Example Tag",
"kind": "GENERIC"
}
],
"terms": [
{
"id": "5d60a51e-e33a-4df7-944e-2b832e1b0c34",
"name": "Revenue",
"description": "Example Business Term"
}
]
},
"monitorRun": {
"id": "3d7e2c1e-2e46-48ea-8b6b-6a3a3e847a34",
"runType": "MANUAL",
"result": "Anomaly detected in 1 timeslot: [2024-11-08] Value = 1 Expected = [value < 0.0].",
"status": "FAILED",
"date": "2024-11-08 13:01 UTC",
"message": "Example Message"
},
"isNewIncident": false,
"isMonitorAlreadyLinkedToIncident": true,
"incident": {
"id": "c4be7e8a-9f2c-4411-bd8e-091d7b3e1295",
"link": "https://demo.siffletdata.com/incidents/issue/123/overview",
"name": "SQL Monitor",
"issue": 123,
"status": "OPEN",
"compromisedAssets": [
{
"name": "Dashboard Drink Orders Analysis:My New Workbook:default",
"uri": "tableau://dub01.online.tableau.com/demo/4f73d901-8b3d-4dd9-8392-c246715d2b93",
"link": "https://demo.siffletdata.com/data-catalog/asset/dashboard:9e8a0c34-f25a-48d7-9dbe-3c1c745dfb72/overview"
},
{
"name": "Dashboard Food orders Analysis:My New Workbook:default",
"uri": "tableau://dub01.online.tableau.com/demo/ae56b3c2-174f-4a4e-9361-4f7a1e6e8b9d",
"link": "https://demo.siffletdata.com/data-catalog/asset/dashboard:1f87e9c3-6d3b-4a6e-b582-13b7f9a2c7e5/overview"
}
],
"collaborationToolItems": [
{
"type": "JIRA",
"link": "https://my-jira-instance.atlassian.net/browse/P59-1028"
}
]
}
}Monitor Success
When a successful run is linked to an incident, the incident object includes its issue number (issue) and its status.
{
"eventType": "MONITOR_SUCCESS",
"eventDate": "2025-02-19 14:20 UTC",
"monitor": {
"id": "7cd1a2b4-d1f5-4b9e-87c3-36e7d2a9b5d1",
"name": "SQL Monitor",
"link": "https://demo.siffletdata.com/monitors/rule/7cd1a2b4-d1f5-4b9e-87c3-36e7d2a9b5d1/overview",
"description": "Example SQL Monitor",
"displayType": "SQL",
"severity": "CRITICAL",
"assets": [
{
"name": "Example Dataset",
"uri": "bigquery:project-id.dataset-id.Example Dataset",
"link": "https://demo.siffletdata.com/data-catalog/asset/dataset:8a4f0e29-3d32-4b4d-835b-c1d1bdf06f72/overview"
}
],
"tags": [
{
"id": "eb9e1c6a-57b7-4b68-9d4f-7dcbf5434bc2",
"name": "Production",
"description": "Example Tag",
"kind": "GENERIC"
}
],
"terms": [
{
"id": "5d60a51e-e33a-4df7-944e-2b832e1b0c34",
"name": "Revenue",
"description": "Example Business Term"
}
]
},
"monitorRun": {
"id": "0e27324c-a96d-4826-9713-8c1c28690f99",
"runType": "MANUAL",
"result": "No anomaly was detected.",
"status": "SUCCESS",
"date": "2025-02-19 14:20 UTC",
"message": "Example Message"
},
"incident": null
}Monitor Status Change
A status change is sent when a monitor improves to passing, from failing or from needs attention. When the monitor is linked to an incident, the incident object includes its issue number (issue) and its status.
{
"eventType": "MONITOR_STATUS_CHANGE",
"eventDate": "2025-02-19 14:20 UTC",
"monitor": {
"id": "1f1901e6-5ae5-466f-9820-9cfeeec3e891",
"name": "SQL Monitor",
"link": "https://demo.siffletdata.com/monitors/rule/7cd1a2b4-d1f5-4b9e-87c3-36e7d2a9b5d1/overview",
"description": "Example SQL Monitor",
"displayType": "SQL",
"severity": "CRITICAL",
"assets": [
{
"name": "Example Dataset",
"uri": "bigquery:project-id.dataset-id.Example Dataset",
"link": "https://demo.siffletdata.com/data-catalog/asset/dataset:8a4f0e29-3d32-4b4d-835b-c1d1bdf06f72/overview"
}
],
"tags": [
{
"id": "eb9e1c6a-57b7-4b68-9d4f-7dcbf5434bc2",
"name": "Production",
"description": "Example Tag",
"kind": "GENERIC"
}
],
"terms": [
{
"id": "5d60a51e-e33a-4df7-944e-2b832e1b0c34",
"name": "Revenue",
"description": "Example Business Term"
}
]
},
"monitorRun": {
"id": "0e27324c-a96d-4826-9713-8c1c28690f99",
"runType": "MANUAL",
"result": "No anomaly was detected.",
"status": "SUCCESS",
"date": "2025-02-19 14:20 UTC",
"message": "Example Message"
},
"incident": null,
"fromStatus": "FAILING",
"toStatus": "PASSING"
}Incident Closed
Sent when an incident is closed.
{
"eventType": "INCIDENT_CLOSED",
"eventDate": "2022-03-10 11:25 UTC",
"incident": {
"id": "c4be7e8a-9f2c-4411-bd8e-091d7b3e1295",
"link": "https://demo.siffletdata.com/incidents/issue/12345/overview",
"name": "SQL Monitor",
"issue": 12345,
"status": "CLOSED",
"compromisedAssets": [
{
"name": "Dashboard Drink Orders Analysis:My New Workbook:default",
"uri": null,
"link": "https://demo.siffletdata.com/data-catalog/asset/dashboard:9e8a0c34-f25a-48d7-9dbe-3c1c745dfb72/overview"
},
{
"name": "Dashboard Food orders Analysis:My New Workbook:default",
"uri": null,
"link": "https://demo.siffletdata.com/data-catalog/asset/dashboard:1f87e9c3-6d3b-4a6e-b582-13b7f9a2c7e5/overview"
}
],
"collaborationToolItems": []
}
}Updated 1 day ago

