
## Set up playbooks

URL: https://docs.atlan.com/product/capabilities/playbooks/how-tos/set-up-playbooks

> Set up playbooks to automate metadata updates at scale using rule-based automations in Atlan. Setup requires admin user permissions in Atlan.

:::warning

**🤓 Who can do this?** You will need to be an admin user in Atlan to create playbooks.

:::

Playbooks power metadata automation for your data assets in Atlan. Create rule-based automations at scale to update [certificates](https://docs.atlan.com/llms/catalog/discovery/add-certificates/llms.txt), [descriptions](https://docs.atlan.com/llms/catalog/discovery/add-descriptions/llms.txt), [owners](https://docs.atlan.com/llms/catalog/discovery/add-owners/llms.txt), [terms](https://docs.atlan.com/llms/governance/glossary/what-is-a-glossary/llms.txt), and [tags](https://docs.atlan.com/llms/governance/tags/what-are-tags/llms.txt) in bulk, helping you streamline workflows and automate repetitive metadata tasks.

You can update the following asset metadata using playbooks:

- [Certificates](https://docs.atlan.com/llms/catalog/discovery/add-certificates/llms.txt)
- [Descriptions](https://docs.atlan.com/llms/catalog/discovery/add-descriptions/llms.txt)
- [Owners](https://docs.atlan.com/llms/catalog/discovery/add-owners/llms.txt)
- [Terms](https://docs.atlan.com/llms/governance/glossary/what-is-a-glossary/llms.txt)
- [Tags](https://docs.atlan.com/llms/governance/tags/what-are-tags/llms.txt)
- [Domains](https://docs.atlan.com/llms/governance/domains/manage-domains/llms.txt)
- [Custom metadata](https://docs.atlan.com/llms/governance/custom-metadata/what-is-custom-metadata/llms.txt)

For example, imagine your organization needs to transfer ownership of several data assets. Instead of your data team manually updating the ownership of each and every asset, you can create a playbook to automate this process and update the metadata of your assets at scale.

## Playbook recommendations

Before you begin, review some general guidelines on running playbooks in Atlan:

- Avoid running multiple playbooks simultaneously on the same set of assets. Allow one playbook run to be completed before proceeding with another operation on the same set of assets. Otherwise, you may experience performance issues and inconsistencies.
- Review and understand the depth of your asset lineage or hierarchy prior to enabling a [tag propagation](https://docs.atlan.com/llms/governance/faq/tags-and-metadata-management/llms.txt) playbook. For assets with complex lineage, [tag propagation may take longer](https://docs.atlan.com/llms/governance/faq/tags-and-metadata-management/llms.txt) to complete than the playbook runtime. You may want to review and judiciously select a list of assets that need to be tagged directly. For their child and/or downstream assets, Atlan recommends that you [enable tag propagation](https://docs.atlan.com/llms/governance/faq/tags-and-metadata-management/llms.txt).

## Create a playbook

To create a playbook in Atlan:

1. From the left menu in Atlan, you can either:
 - Click **Assets** to navigate to the assets page.
 1. From the _Filters_ menu on the left or the tabs along the top, [apply any asset filters](https://docs.atlan.com/llms/catalog/discovery/use-the-filters-menu/llms.txt).
 2. Next to the search bar, click the 3-dot icon and then click **Create playbook** to create a playbook for the filtered assets - this option is only visible to admin users.
 - Click **Governance** to navigate to the governance center.
 1. Under the _Governance_ heading of the _Governance center_, click **Playbooks**.
 2. Click **Create New** to get started.
2. In the _Create new playbook_ dialog box, enter the following details:
 1. For _Name_, enter a name for the task to be accomplished - for example, `Update ownership`. (Atlan recommends that the length of a playbook name must be no longer than 46 characters.)
 2. (Optional) For _Description_, enter a description.
 3. (Optional) Select an icon for your playbook.
3. Click **Create** to save your playbook.

## Set up rules as filters

To set up rules as filters for your playbook:

1. In the _Build Rules_ page of your playbook, click **Filters**.
2. For name, add a name to your filter.
3. To set a matching condition for the filters, select **Match all** or **Match any**. _Match all_ will logically `AND` the criteria, while _Match any_ will logically `OR` the criteria.
4. For _Attributes_, select a relevant option:
 - For this example, we'll click **Connection** and then select a Snowflake connection. (Optional) To further refine your asset selection:
 1. Click **All databases** to filter by databases in a selected connection.
 2. Click **All schemas** to filter by schemas in a selected connection.
 - Click **Connector** to filter assets by [supported connectors](https://docs.atlan.com/llms/catalog/connector-capabilities/supported-sources/llms.txt).
 - Click **Asset type** to filter by specific asset types - for example, tables, columns, queries, glossaries, and more.
 - Click **Certificate** to filter assets by [certification status](https://docs.atlan.com/llms/catalog/discovery/add-certificates/llms.txt).
 - Click **Owners** to filter assets by [asset owners](https://docs.atlan.com/llms/catalog/discovery/add-owners/llms.txt).
 - Click **Tags** to filter assets by your [tags](https://docs.atlan.com/llms/governance/tags/what-are-tags/llms.txt) in Atlan, including imported [Snowflake](https://docs.atlan.com/llms/connectors/snowflake/manage-snowflake-tags/llms.txt) and [dbt](https://docs.atlan.com/llms/connectors/dbt/manage-dbt-tags/llms.txt) tags.
 - (Optional) For [Snowflake tags](https://docs.atlan.com/llms/connectors/snowflake/manage-snowflake-tags/llms.txt) only, to the left of the checkbox, click **Select value**, and then from the _Select tag value_ dialog, select any value(s) to filter assets by tag value.
 - Click **Business Graph, terms, & categories** to filter by a specific [glossary](https://docs.atlan.com/llms/governance/glossary/set-up-glossaries/llms.txt) or [category](https://docs.atlan.com/llms/governance/glossary/what-is-a-glossary/llms.txt) to bulk update all the nested terms or by multiple glossaries and categories.
 - Click **Linked terms** to filter assets by [linked terms](https://docs.atlan.com/llms/governance/glossary/link-terms-to-assets/llms.txt).
 - Click **Domains** to filter by specific [domains or subdomains](https://docs.atlan.com/llms/governance/domains/manage-domains/llms.txt) to bulk update all the assets included in those data domains or subdomains.
 - Click **Products** to filter for [data products](https://docs.atlan.com/llms/governance/data-products/create-data-products/llms.txt) by specific data domains or subdomains.
 - Click **Schema qualified Name** to filter assets by the qualified name of a given schema.
 - Click **Database qualified Name** to filter assets by the qualified name of a given database.
 - Click **dbt** to filter assets by dbt-specific filters and then select a [dbt Cloud](https://docs.atlan.com/llms/connectors/dbt/what-does-atlan-crawl-from-dbt-cloud/llms.txt) or [dbt Core](https://docs.atlan.com/llms/connectors/dbt/what-does-atlan-crawl-from-dbt-core/llms.txt) filter.
 - Click **Properties** to filter assets by [common asset properties](https://docs.atlan.com/llms/catalog/discovery/use-the-filters-menu/llms.txt).
 - Click **Usage** to filter assets by [usage metrics](https://docs.atlan.com/llms/catalog/usage-and-popularity/find-assets-by-usage/llms.txt).
 - Click **Monte Carlo** to filter assets by [Monte Carlo-specific filters](https://docs.atlan.com/llms/connectors/monte-carlo/what-does-atlan-crawl-from-monte-carlo/llms.txt).
 - Click **Soda** to filter assets by [Soda-specific filters](https://docs.atlan.com/llms/connectors/soda/what-does-atlan-crawl-from-soda/llms.txt).
 - Click **Table/View** to filter tables or views by row count, column count, or size.
 - Click **Column** to filter columns by [column-specific filters](https://docs.atlan.com/llms/catalog/discovery/use-the-filters-menu/llms.txt), including parent asset type or name, data type, or [column keys](https://docs.atlan.com/llms/catalog/connector-capabilities/column-keys-crawled/llms.txt).
 - Click **Process** to filter [lineage processes](https://docs.atlan.com/llms/catalog/lineage/what-are-processes/llms.txt) by the SQL query.
 - Click **Query** to filter assets by associated [visual queries](https://docs.atlan.com/llms/catalog/insights/query-data/llms.txt).
 - Click **Measure** to filter [Microsoft Power BI measures](https://docs.atlan.com/llms/connectors/microsoft-power-bi/what-does-atlan-crawl-from-microsoft-power-bi/llms.txt) using the external measures filter.
5. For _Operator_, select **Is one of** for values to include or **Is not** for values to exclude. Depending on the selected attribute(s), you can also choose from [additional operators](https://docs.atlan.com/llms/catalog/discovery/use-the-filters-menu/llms.txt):
 - Select **Equals (=)** or **Not Equals (!=)** to include or exclude assets through exact match search.
 - Select **Starts With** or **Ends With** to filter assets using the starting or ending sequence of values.
 - Select **Contains** or **Does not contain** to find assets with or without specified values contained within the attribute.
 - Select **Pattern** to filter assets using supported [Elastic DSL regular expressions](https://www.elastic.co/guide/en/elasticsearch/references/current/regexp-syntax.html).
 - Select **Is empty** to filter assets with null values.
 - Select **Belongs to** or **Doesn't belong to** to filter [data products](https://docs.atlan.com/llms/governance/data-products/create-data-products/llms.txt) by specific [data domains or subdomains](https://docs.atlan.com/llms/governance/data-products/create-data-domains/llms.txt).
6. For _Values_, select the relevant values. The values will vary depending on the selected attributes.
7. (Optional) To add more filters, click **Add filter** and select **Filter** to add individual filters or **Filter** **Group** to nest more filters in a group.
8. (Optional) To view all the assets that match your rules, in the _Filters_ card, click **View** **all** for a preview.
9. (Optional) To remove a playbook filter, to the right of any filter, click the three horizontal dots and then click **Delete**.
10. (Optional) To turn off a playbook filter, to the right of any filter, click the three horizontal dots and then click **Disable**. Click **Enable** to turn on any disabled filters.

## Select the actions

To select the actions to be performed based on your rules:

1. In the _Build Rules_ page of your playbook, click **Actions**.
2. For _Select Action_, select the relevant metadata option to update:
 - Click **Certificate** to update the [certification status](https://docs.atlan.com/llms/catalog/discovery/add-certificates/llms.txt) of assets to _Verified_, _Draft_, _Deprecated_, or _No certificate_.
 - Click **Description** to update the [description](https://docs.atlan.com/llms/catalog/discovery/add-descriptions/llms.txt) of your assets.
 - Click **Owners** to add, remove, or replace [asset owners](https://docs.atlan.com/llms/catalog/discovery/add-owners/llms.txt). In this example, we'll update the ownership of the assets.
 - Click **Terms** to add [terms](https://docs.atlan.com/llms/governance/glossary/what-is-a-glossary/llms.txt) to your assets or remove or replace them from [linked assets](https://docs.atlan.com/llms/governance/glossary/link-terms-to-assets/llms.txt).
 - Click **Tags** to add [tags](https://docs.atlan.com/llms/governance/tags/what-are-tags/llms.txt) to your assets or remove or replace them from [tagged](https://docs.atlan.com/llms/governance/tags/attach-a-tag/llms.txt) or [propagated](https://docs.atlan.com/llms/governance/faq/tags-and-metadata-management/llms.txt) assets. Note that if there are multiple tag actions to be performed, Atlan will execute them in the following order: `ADD`, `REMOVE`, and then `REPLACE`.
 - Click **Domain** to [add your assets to a specific domain or subdomain](https://docs.atlan.com/llms/governance/domains/organize-assets/llms.txt) or remove them from an existing linked [domain or subdomain](https://docs.atlan.com/llms/governance/domains/manage-domains/llms.txt).
 - Click any [custom metadata structure](https://docs.atlan.com/llms/governance/custom-metadata/what-is-custom-metadata/llms.txt) and then select a [custom metadata property](https://docs.atlan.com/llms/governance/custom-metadata/manage-custom-metadata-structures/llms.txt) to update or unlink it from your assets.
3. For _Select operator_, select the relevant option. The operators will vary depending on the selected action.
4. For _Values_, select the relevant option(s). The values will vary depending on the selected actions.
5. (Optional) To add more actions, click **Add** **Action**.

:::info **Did you know?** 
 You can control tag propagation when adding tags as an action in playbooks. [Tag propagation](https://docs.atlan.com/llms/governance/faq/tags-and-metadata-management/llms.txt) is disabled by default. If you enable tag propagation, you will also be able to [configure how tags are propagated](https://docs.atlan.com/llms/governance/tags/attach-a-tag/llms.txt).

:::

## Profiling playbooks

Create profiling playbooks to automate data quality checks and generate profiling metrics for your data assets. Column profiling supports basic and advanced metrics for data type analysis and quality assessment.

### Supported connectors

The following connectors are supported for profiling playbooks:

- Amazon Athena
- Amazon Redshift
- Databricks
- Google BigQuery
- Microsoft SQL Server
- MySQL
- PostgreSQL
- Snowflake
- Trino

### Data type support

**Column profiling** supports only **number and text data types**. Other data types are not yet supported.

### Pre-configured profiling metrics

Once you select assets and configure your profiling playbook, Atlan can collect the following metrics:

**Basic metrics:**
Average, Average length, Distinct, Max, Max (string), Min, Min (string), Max length, Min length, Row count, Sum

**Advanced metrics:**
Duplicate count, Frequent values, Invalid count, Invalid percentage, Missing count, Missing percentage, Valid count, Values count, Values percentage, Uniqueness, Unique count, Variance, Histogram, Standard deviation

### Pre-run confirmation

Before running a profiling playbook, Atlan calculates approximate row and asset counts and shows a confirmation message: **"This Profiling playbook will query ~X rows across ~Y assets."** You can review your filter selections or proceed with the run.

### Viewing profiling results

After a profiling playbook run completes, view the results by:

1. Navigate to the playbook profile.
2. View the count of profiled assets.
3. Open any profiled asset and navigate to the **Column** tab in the sidebar.
4. Select a profiled column to view the **Profile** tab with collected metrics.

### Current limitations

- **Sampling not supported:** Full row scan only. Approximate counts are calculated before the run but actual sampling during execution is not available.
- **Column scope:** Only number and text data types are supported for profiling.

## Run the playbook

If you'd like to continue working on your playbook, you can save it as a draft. If your playbook is ready, you can proceed to running it.

To run the playbook:

1. You can either:
 - To run the playbook once immediately, click **Run once**.
 - To schedule the playbook to run hourly, daily, weekly, or monthly, click **Schedule** and choose the preferred frequency, timezone, and time.

 :::warning

 If you're scheduling multiple playbooks, Atlan recommends spacing out the schedules as much as possible to minimize any overlap between the playbook workflow runs. For more about workflows in general, see [workflow recommendations](https://docs.atlan.com/llms/catalog/connector-capabilities/order-workflows/llms.txt).

 :::

2. Click **Complete** to run the playbook.
3. In the resulting screen, click **Go to profile** to view your playbook profile.

Once your playbook has completed its run, you will see the metadata updated for your assets! 🎉

## Known limitations and gotchas

Review the following limitations before running playbooks to avoid unexpected behavior:

| Limitation | Detail |
|-----------|--------|
| **No undo** | No revert button exists. To reverse changes: modify playbook rules and re-run. |
| **No per-asset report** | Can't download a list of which specific assets were updated in a run. |
| **No email notifications** | Slack or Teams integrations available; email notifications not supported. |
| **Domain actions** | Cannot add glossaries, categories, or terms to domains via playbook. |
| **Domain read permission** | If you lack read permission on an asset, it's silently removed from the workflow. |
| **Domain update permission** | If you lack update permission, the workflow fails mid-run; some assets may be linked before the failure. |
| **Tag propagation timing** | On complex lineage, tag propagation can outlast the playbook run itself. |
| **Column profiling scope** | Only number and text data types are supported. |
| **Glossary/category/domain tags** | Tags action cannot be applied to Glossaries, Glossary categories, or Data domains. |
| **No request automation** | Cannot automate metadata change requests—only direct updates. |
| **EtcD limit** | Too many rules trigger Kubernetes resource size limit; offload node status not supported. |
| **Concurrent runs** | Running multiple playbooks simultaneously on the same assets causes inconsistencies. |

:::info **Did you know?** 
 If you have any questions about setting up playbooks, head over [here](https://docs.atlan.com/llms/governance/playbooks/troubleshooting-playbooks/llms.txt).

:::

---
