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

  1. Go to your Sifflet application
  2. Hover over the Settings entry of the navigation bar and click the Collaboration Tools entry
  3. Look for the Webhooks section
  4. Give your webhook a name
  5. Enter your webhook URL
  6. Optionally, add a custom header to attach to the payload (for authentication or any other purposes)
  7. Click the Send test notification button. Sifflet sends a payload such as the following one to your endpoint. A success toast notification shows up in Sifflet if your endpoint returns a 2xx status 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"
      }
    ]
  }
}
  1. Click the Add webhook button.

Send a Webhook Test Notification

Follow these steps to send a test notification for a configured webhook:

  1. Go to your Sifflet application
  2. Hover over the Settings entry of the navigation bar and click the Collaboration Tools entry
  3. Look for the Webhooks section
  4. Find the webhook you want to test in the list of Configured webhooks
  5. 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:

  1. Go to your Sifflet application
  2. Hover over the Settings entry of the navigation bar and click the Collaboration Tools entry
  3. Look for the Webhooks section
  4. Find the webhook you want to delete in the list of Configured webhooks
  5. 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:

  1. Monitor failure (MONITOR_FAILURE)
  2. Monitor needs attention (MONITOR_NEEDS_ATTENTION)
  3. Monitor success (MONITOR_SUCCESS)
  4. Status change (MONITOR_STATUS_CHANGE): a monitor improves to passing, from failing or from needs attention
  5. 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": []
  }
}

Did this page help you?