> ## Documentation Index
> Fetch the complete documentation index at: https://docs.open-metadata.org/llms.txt
> Use this file to discover all available pages before exploring further.

# How to Set Up Bots | OpenMetadata Developer Guide

> Create and manage bots for task automation, data notifications, and metadata workflows.

# How to Set Up Bots

The default account for any ingestion pipeline deployed from the UI is `ingestion-bot`. To configure `ingestion-bot` from the UI, go to the settings page and access the `Bots` tile.

<img src="https://mintcdn.com/openmetadata/PxJX3dUf7RRlpwVS/public/images/developers/settings-bot.png?fit=max&auto=format&n=PxJX3dUf7RRlpwVS&q=85&s=fb9827681feb106de36a4cf572d325e9" alt="settings-bot" width="2943" height="1413" data-path="public/images/developers/settings-bot.png" />

<img src="https://mintcdn.com/openmetadata/FFPgqWxUp0cM2_kH/public/images/developers/bot-listing.png?fit=max&auto=format&n=FFPgqWxUp0cM2_kH&q=85&s=439d3b64d3b1bb58a8edaf8836db1638" alt="bot-listing" width="2943" height="1413" data-path="public/images/developers/bot-listing.png" />

You can either create a new bot or update the existing `ingestion-bot`.

### Update `ingestion-bot`

Click on `ingestion-bot` and you will be redirected to it's details page, there you can

* Revoke the token if already present
* Copy the generated token

<img src="https://mintcdn.com/openmetadata/FFPgqWxUp0cM2_kH/public/images/developers/bot-token-page.png?fit=max&auto=format&n=FFPgqWxUp0cM2_kH&q=85&s=b9eb13c10e940859007ccde6590c4d98" alt="bot-listing" width="2943" height="1413" data-path="public/images/developers/bot-token-page.png" />

* Generate new token

<img src="https://mintcdn.com/openmetadata/FFPgqWxUp0cM2_kH/public/images/developers/generate-new-token.png?fit=max&auto=format&n=FFPgqWxUp0cM2_kH&q=85&s=3e34adf06a36f9f0bfdfc85b221df0b7" alt="generate new token" width="2733" height="536" data-path="public/images/developers/generate-new-token.png" />

<img src="https://mintcdn.com/openmetadata/FFPgqWxUp0cM2_kH/public/images/developers/bot-token-generate.png?fit=max&auto=format&n=FFPgqWxUp0cM2_kH&q=85&s=b36ba2e685e7676619efb841353490de" alt="token generate page" width="2733" height="1271" data-path="public/images/developers/bot-token-generate.png" />

### Create a new bot

Click the `Add bot` button, and you will be directed to the bot creation page. Fill in the required details and then click on the `Create` button.

<img src="https://mintcdn.com/openmetadata/FFPgqWxUp0cM2_kH/public/images/developers/create-bot.png?fit=max&auto=format&n=FFPgqWxUp0cM2_kH&q=85&s=8c10c3f003e715b7bd83849f81ef2cd6" alt="create bot" width="2733" height="1271" data-path="public/images/developers/create-bot.png" />

### Notes:

**1. `ingestion-bot`**

The `ingestion-bot` bot is created (or updated if it already exists) as a system bot that cannot be deleted, and
the credentials used for this bot, if they did not exist before, will be the ones present in the OpenMetadata configuration.
Otherwise, a JWT Token will be generated to be the default authentication mechanism of the `ingestion-bot`.

**2. JWT Token auth mechanism**

If you decide to configure a JWT Token for the authentication mechanism ensure that you have also the value `http://localhost:8585/api/v1/system/config/jwks`
in your `publicKeyUrls` list:

* For **bare metal** configuration:

```yaml theme={null}
authenticationConfiguration:
  provider: "google"
  publicKeyUrls:
    - "https://www.googleapis.com/oauth2/v3/certs"
    - "http://localhost:8585/api/v1/system/config/jwks"
```

* For **docker** configuration, the value to be updated is `AUTHENTICATION_PUBLIC_KEYS`:

```bash theme={null}
AUTHENTICATION_PUBLIC_KEYS=[https://www.googleapis.com/oauth2/v3/certs, http://localhost:8585/api/v1/system/config/jwks]
```

* In the case of **kubernetes**, you have to update `publicKeys` values:

```yaml theme={null}
openmetadata:
  config:
    authentication:
      publicKeys:
        - "https://www.googleapis.com/oauth2/v3/certs"
        - "http://localhost:8585/api/v1/system/config/jwks"
```

**3. Redeploying ingestion pipelines**

When the `ingestion-bot` is updated, we must redeploy our ingestion pipelines since the credentials used by the bot have been updated,
and they will no longer be valid.
