---
updatedAt: 2026-09-25T16:20:21.000Z
agentTools:
  projectIndex: https://docs.getmontecarlo.com/llms.txt
---

# Databricks Workflows

Databricks Workflows is Databricks' managed orchestration services, which enables users to easily create and manage multitask workflows for ETL, analytics and machine learning pipelines.

Integrating MC with Databricks Workflows allows you to quickly determine which Databricks workflow potentially caused an anomaly downstream, accelerating your time to resolution. You will also be able to manage your workflow failure alerts along with all other data quality alerts in Monte Carlo, so you have centralized incident triage, notification routing, and data quality reporting across all your data and system issues.

The following docs will walk through

1. [Databricks Workflows on Lineage and as Assets](https://docs.getmontecarlo.com/docs/databricks-workflow#1-databricks-workflows-on-lineage-and-as-assets)
2. [Databricks Workflows Failures as MC Alerts](https://docs.getmontecarlo.com/docs/databricks-workflow#2-databricks-workflows-failures-as-mc-alerts)

# 1) Databricks Workflows on Lineage and as Assets

## Databricks Job on Lineage

Understand which Databricks Workflows jobs creates the lineage between two tables in your Databricks environment.

![](https://files.readme.io/bcfd06c1360029d5e47960cb7ee9446f58c332f46504799e6c574c2f571c3c95-Screenshot_2024-10-11_at_2.20.55_PM.png)

Click into the Databricks icon to see recent job runs for this lineage edge.

![](https://files.readme.io/ff9289f353675d0e915901bbac068726c1aa6c251c53a60cc6196dd3c5c9fd29-Screenshot_2024-10-23_at_4.06.10_PM.png)

## Databricks Jobs As Assets

Use Monte Carlo as a single pane of glass for all data quality context for each table, including Databricks Job runs. Check the status and duration of recent Databricks job runs relevant to a table of interest.

![](https://files.readme.io/962ea1b86f4b7a62051d692cd273a1ccbb7d3c3ddcc3cab762a1f2c9389ef7a6-Screenshot_2024-10-11_at_2.19.15_PM.png)

## Setup and Getting Started

If you have set up the MC-Databricks integration after 10/1/2024 following the latest documentation or if you already get the described features above, there should be no additional configuration needed and you can proceed to [part 2](https://docs.getmontecarlo.com/docs/databricks-workflow#2-databricks-workflows-failures-as-mc-alerts). If not, you need to ensure the following two conditions:<br />i. Have a working MC-Databricks connection, following instructions step 1 through [step 6 here](https://docs.getmontecarlo.com/docs/overview-databricks#step-6-add-the-databricks-integration-in-monte-carlo), and
ii. Make sure permissions to job-related system tables below are granted to the Service Principal. These are also covered in [the setup guide](https://docs.getmontecarlo.com/docs/overview-databricks#system-tables):

```sql SQL
GRANT SELECT ON system.lakeflow.jobs TO <monte_carlo_service_principal>;
GRANT SELECT ON system.lakeflow.job_tasks TO <monte_carlo_service_principal>;
GRANT SELECT ON system.lakeflow.job_run_timeline TO <monte_carlo_service_principal>;
GRANT SELECT ON system.lakeflow.job_task_run_timeline TO <monte_carlo_service_principal>;
```

Then Monte Carlo will automatically start collecting Databricks Workflow Job information.

<br />

# 2. Databricks Workflows Failures as MC Alerts

Additional setup is required to receive Databricks Workflows failures in MC.

## Databricks Job Alerts in MC

Receive alerts on Databricks Workflows failures in Monte Carlo, so you can centrally manage and report on such issues along with all your other data incidents. More info on how alerts work in MC [here](https://docs.getmontecarlo.com/docs/incidents)

![](https://files.readme.io/30e5dd66c8830246c4ebb2abdff482456ec49d3dd2107a44db31afd2890cec63-Screenshot_2024-10-31_at_10.54.10_AM.png)

## Setup

### 1. Create Webhook Key and Secret in Monte Carlo

**Create via UI**

1. On the [Integrations](https://getmontecarlo.com/settings/integrations) page, open your Databricks integration.
2. In the **Integration keys** pane, under **Select key scope**, choose **Webhook events**. Keys with the **Push ingestion** scope are rejected by the webhook.
3. Click **Generate integration key**, and save the key ID and secret. You'll use them as the username and password of the webhook destination in Databricks.

   ![](https://files.readme.io/b712d00b6e65cf98d14d0efcf10be64af9a4f66286ae94c1987974ba9f2ab1f1-4-integration-keys.png)

**Create via CLI**<br />Alternatively, you can use the Monte Carlo CLI to create a Databricks webhook integration key:

```
% montecarlo integrations create-databricks-webhook-key --help
Usage: montecarlo integrations create-databricks-webhook-key
           [OPTIONS]

  Create an integration key for a Databricks webhook

Options:
  --integration-name TEXT  Name of associated Databricks metastore integration
                           (required if you have more than one)
  --option-file FILE       Read configuration from FILE.
  --help                   Show this message and exit.
```

### 2. Add Webhook notification in Databricks

Note: This must be done by a workspace admin in Databricks.

Create a notification destination pointing to the Monte Carlo Databricks webhook endpoint. Copy the endpoint URL from the **Webhook configuration** pane on your Databricks integration's page in Monte Carlo. The pane also shows when Monte Carlo last received a webhook event.

![](https://files.readme.io/d53d9f727d154396cf8ed48319d7056787594b069964d9263aa2cd1ba6599c2d-5-webhook-configuration.png)

Go to Databricks UI, under **Settings**, navigate to tab **Notifications**, click on "Manage" to create a new notification destination.

![](https://files.readme.io/f1c129b226122c22c7193462df6243666b11f5e419e23a7c85fb1f33dc599dc7-Screenshot_2024-10-11_at_4.15.58_PM.png)

In the **Create a new destination** screen:

1. Select type **Webhook** and give the destination a name.
2. Under **URL**, paste the webhook endpoint URL from the **Webhook configuration** pane.
3. Under **Username**, enter the integration key ID from step 1.
4. Under **Password**, enter the integration key secret from step 1.
5. Click **Create**.

<Image src="https://files.readme.io/619d733c9925fe8bcb36cb3667f6c2d05cc89256c7a7e104f837aa68319fa107-Screenshot_2024-10-11_at_4.22.31_PM.png" align="left" border={true} wrap={true} />

<br />

<br />

<br />

<br />

<br />

<br />

You can test that the notification is configured correctly using the "test" feature of the notification:

<Image src="https://files.readme.io/83e009bea47103b929501d122268397e46419b82e33665727eeab0e2dbc7b6a8-Screenshot_2025-07-30_at_1.00.01PM.png" align="center" />

<Image src="https://files.readme.io/20fbb325ecfa7a1fe8b0b3e8942185aa70e08e48ee2269195d43cbe4fb2d1cc7-Screenshot_2025-07-30_at_12.59.42PM.png" align="center" />

For more details on creating notification destination in Databricks, see [Databricks Documentation ](https://docs.databricks.com/en/admin/workspace-settings/notification-destinations.html).

### 3. Add Notifications and Permissions to Databricks Jobs

Next you will set up the notification and permission for each Databricks job you want alerts routed to MC for. You can do it via the Databricks UI for each job one by one, or you can use a script provided below to configure all jobs in bulk. **We recommend configuring for all jobs in bulk via script** given i) it is fast to set up, ii) you can still enable or disable alert generation for each job in MC settings per step 4 below.

**via Databricks UI**<br />For each job you want to send failures to Monte Carlo for, go to that job's page in Databricks UI. On the right-hand-side panel under **Job Notifications**, click on "Edit notifications". Add a new notification, add the Webhook destination you created in the previous step, and check **Failure** then save the notification.

![](https://files.readme.io/eb30825cdd051c2762889bf79e127cb1720b2792eb6214f94a3cce47b1182b17-Screenshot_2024-10-11_at_4.17.10_PM.png)

As part of the failure alerting workflow, Monte Carlo will use the Databricks Jobs API to gather more information to provide context for the alert, which requires the **Can View** permission for those jobs. To grant that permission, go back to the job's page in Databricks and navigate to the **Permissions** section on the right hand side, click on "edit permission".<br />In the **Permission Settings** screen, grant your Monte Carlo service principal the **Can View** permission.

<Image src="https://files.readme.io/0b192621b42efd547f4de65aa3f5d10df5d69111263268af00f9c12e6a8c4bb3-Screenshot_2024-10-31_at_10.17.48_AM.png" align="left" wrap={true} />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

\--

**via Script (bulk option available)\[Recommended]**

Get the UUID of the Monte Carlo notification destination you created before via Databricks UI -> **Settings** -> **Notifications**.  Click on the copy button next to "Edit destination settings" to copy destination ID as the UUID.

<Image src="https://files.readme.io/84ccb936a15696ddc91517828a6d6706eb9a65725784048d3880dc6c23107afd-Screenshot_2024-10-31_at_11.28.50_AM.png" align="left" wrap={true} />

Then get the Application ID of the Service Principal used to allow Monte Carlo Access. You can find this at `https://<your-databricks-workspace>/settings/workspace/identity-and-access/service-principals`

![](https://files.readme.io/fdc530c8e88a553259990246a7ce9aba57a1baf61268f2352e40d59c2739a041-Screenshot_2024-11-21_at_2.30.22_PM.png)

You will use the notification destination UUID and the Application ID for MC Service Principal in the script located [here](https://github.com/monte-carlo-data/mcd-public-resources/blob/main/scripts/databricks/enable_monte_carlo_databricks_job_incidents.py)

You can choose to enable alerts for all jobs, or specify which jobs to enable alerts for by using the `--databricks-job-name` option.

```
Usage: enable_monte_carlo_databricks_job_incidents.py [OPTIONS]

  Enable Monte Carlo incidents for Databricks jobs

Options:
  --mcd-notification-id TEXT      UUID of the existing Databricks Notification
                                  pointing to the MC Webhook endpoint.
                                  [required]
  --mcd-service-principal-name TEXT
                                  Application ID of the existing Monte Carlo
                                  service principal in Databricks.  [required]
  --databricks-job-name TEXT      Databricks Job Name to enable MC incidents
                                  for. Can be used multiple times. If not
                                  specified, enable MC incidents for all jobs.
  --help                          Show this message and exit.
```

Example:

```
python enable_monte_carlo_databricks_job_incidents.py --mcd-notification-id '<mcd-notification-uuid>' --mcd-service-principal-name '<mcd-service-principal-application-id>' --databricks-job-name <job 1> --databricks-job-name <job 2>
```

### 4. Enable Alerts for desired jobs in Monte Carlo

On the same connection where you created the Webhook Key, under the three dot menu, select the `Configure Jobs` option.

![](https://files.readme.io/a64a46112dcf778a51cf0b56496315da692508b66f183d694ac149d075ed5e95-Screenshot_2024-11-21_at_2.42.03_PM.png)

![](https://files.readme.io/a0d30a12f49afb8ae6fba67fa510c3dd464d0bce6abced6eeab51e0a4a8e3213-Screenshot_2024-11-21_at_2.42.10_PM.png)

Here you can choose which jobs to generate alerts for. By default, alerts for jobs are disabled. To bulk enable/disable jobs, click on the checkboxes on the left for all jobs you want to alert on, then click on the "Alerts" button highlighted in blue, then you can either enable or disable alerts for all selected jobs.

![](https://files.readme.io/8a07a6ce972a6b2699d5119a162c9de2bdf21fcc5d85b95731ac74ef0135ad05-Screenshot_2024-11-21_at_2.42.30_PM.png)

### 5. Set up audience

Finally, make sure to set up an audience in MC to route your Databricks workflow failures. You can do that by going to MC UI, **Settings** -> **Notifications**, then either create a new audience or edit an existing audience to include your Databricks workflow failures.<br />You can send failures for all Databricks Workflows to an audience by selecting **Databricks job failures** in **Alert Type** and **All** for **Affected Data**.

![](https://files.readme.io/61b67069b137310a54eff6f8bc01a325724702291a5fc8a804560304acfa6ce3-Screenshot_2024-11-21_at_4.55.01_PM.png)

Or you can route only a subset of Databricks jobs for an audience by selecting **Databases, schemas, tables, jobs, and tags** for **Affected Data**, then adding the jobs you want to include.

![](https://files.readme.io/df6495b2dda96d3e0bb5837c8ef4dba860eb44c1555713e02fdb744ccd3d1fbd-Screenshot_2024-11-21_at_2.57.40_PM.png)

Or use tags to include all databricks workflows jobs under a certain tag, i.e. team: data-platform. Tags from Databricks are imported automatically into MC.

<Image src="https://files.readme.io/a713b7926792c82c4dbfbd778b0256b075f47afdebd23b2d5f357b2d43b626ad-Screenshot_2025-03-18_at_4.48.59_PM.png" align="center" width="500px" />

<br />

For more information on MC Audiences, see [Audiences](https://docs.getmontecarlo.com/docs/notifications-v2#audiences)

Now you should start receiving Databricks workflow failure alerts in the desired audience!

## Network Access Control

You can restrict access to the Databricks webhook and metadata endpoints by IP address using Network Access Control Lists. See [Network Access Control](https://docs.getmontecarlo.com/docs/network-access-control) for setup and configuration details.