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

# AppDynamics

> AppDynamics provider allows you to get AppDynamics `alerts/actions` via webhook installation

## Authentication

This provider requires authentication.

* **appDynamicsAccountName**: AppDynamics Account Name (required: True, sensitive: False)
* **appId**: AppDynamics appId (required: True, sensitive: False)
* **host**: AppDynamics host (required: True, sensitive: False)
* **appDynamicsAccessToken**: AppDynamics Access Token (required: False, sensitive: False)
* **appDynamicsUsername**: Username (required: False, sensitive: False)
* **appDynamicsPassword**: Password (required: False, sensitive: True)

Certain scopes may be required to perform specific actions or queries via the provider. Below is a summary of relevant scopes and their use cases:

* **authenticated**: User is Authorized (mandatory)
* **administrator**: Administrator privileges (mandatory)

## In workflows

This provider can't be used as a "step" or "action" in workflows. If you want to use it, please let us know by creating an issue in the [GitHub repository](https://github.com/keephq/keep/issues).

## Connecting with the Provider

1. Ensure you have a AppDynamics account with the necessary [permissions](https://docs.appdynamics.com/accounts/en/cisco-appdynamics-on-premises-user-management/roles-and-permissions). The basic permissions required are `Account Owner` or `Administrator`. Alternatively you can create an account [instructions](https://docs.appdynamics.com/accounts/en/global-account-administration/access-management/manage-user-accounts)

## Provider configuration

1. Find your account name [here](https://accounts.appdynamics.com/overview).
2. Get the appId of the Appdynamics instance in which you wish to install the webhook into.
3. Determine the Host [here](https://accounts.appdynamics.com/overview).

### Basic Auth authentication

1. Obtain AppDynamics **Username** and **Password**
2. Go to **Basic Auth** tab under **Authentication** section
3. Enter **Username** and **Password**

<Frame>
  <img src="https://mintcdn.com/keep-docs/SMI4wgz6Tw4qDsiL/images/appdynamics_9.png?fit=max&auto=format&n=SMI4wgz6Tw4qDsiL&q=85&s=42fbd357229eed32b81b5a22801d3702" width="1000" alt="Keep add AppDynamics Username and Password" data-path="images/appdynamics_9.png" />
</Frame>

### Access Token authentication

1. Log in to the **Controller UI** as an **Account Owner** or other roles with the **Administer users**, **groups**, **roles** permission.
2. Go to **Administration**

<Frame>
  <img src="https://mintcdn.com/keep-docs/SMI4wgz6Tw4qDsiL/images/appdynamics_1.png?fit=max&auto=format&n=SMI4wgz6Tw4qDsiL&q=85&s=fd0db00526f61b614d69181d0e9421ff" width="1000" alt="AppDynamics Administration" data-path="images/appdynamics_1.png" />
</Frame>

3. Go to **API Client** tab

<Frame>
  <img src="https://mintcdn.com/keep-docs/SMI4wgz6Tw4qDsiL/images/appdynamics_2.png?fit=max&auto=format&n=SMI4wgz6Tw4qDsiL&q=85&s=7521ae1f9e54c09712ad154ac25ae43c" width="1000" alt="AppDynamics API Client tab" data-path="images/appdynamics_2.png" />
</Frame>

4. Click **+ Create**

<Frame>
  <img src="https://mintcdn.com/keep-docs/SMI4wgz6Tw4qDsiL/images/appdynamics_3.png?fit=max&auto=format&n=SMI4wgz6Tw4qDsiL&q=85&s=39eeb35a84c50d3cac4fe0ae981a6edf" width="1000" alt="Create new AppDynamics API Client" data-path="images/appdynamics_3.png" />
</Frame>

5. Fill Client **Name** and **Description**
6. Click **Generate Secret**

<Frame>
  <img src="https://mintcdn.com/keep-docs/SMI4wgz6Tw4qDsiL/images/appdynamics_4.png?fit=max&auto=format&n=SMI4wgz6Tw4qDsiL&q=85&s=cc0dd500246a6484faf6532b3dffbce1" width="1000" alt="AppDynamics generate API Client Secret" data-path="images/appdynamics_4.png" />
</Frame>

<Tip>
  This API Client secret is not an authentication token yet
</Tip>

7. Add **Account Owner** and/or **Administrator** roles

<Frame>
  <img src="https://mintcdn.com/keep-docs/SMI4wgz6Tw4qDsiL/images/appdynamics_5.png?fit=max&auto=format&n=SMI4wgz6Tw4qDsiL&q=85&s=67b53149d8e04fd0fc3aeab2bff41c48" width="1000" alt="AppDynamics add API Client roles" data-path="images/appdynamics_5.png" />
</Frame>

8. Click **Save**

<Frame>
  <img src="https://mintcdn.com/keep-docs/SMI4wgz6Tw4qDsiL/images/appdynamics_6.png?fit=max&auto=format&n=SMI4wgz6Tw4qDsiL&q=85&s=fd75a3554ab18f808b725a7158502ab0" width="1000" alt="AppDynamics save API Client" data-path="images/appdynamics_6.png" />
</Frame>

9. Click **Generate Temporary Token**

<Frame>
  <img src="https://mintcdn.com/keep-docs/SMI4wgz6Tw4qDsiL/images/appdynamics_7.png?fit=max&auto=format&n=SMI4wgz6Tw4qDsiL&q=85&s=23c994199d261f452fa45155f56f4e03" width="1000" alt="AppDynamics Generate API Client Temporary Access Token" data-path="images/appdynamics_7.png" />
</Frame>

<Tip>
  This token is not persistent, but since Keep uses it just once to install Webhook, we will use it without oAuth
</Tip>

10. Click **Save** one again

<Warning>
  This is important. Otherwise generated token will not be saved and authentication will fail
</Warning>

11. Copy generated token

<Frame>
  <img src="https://mintcdn.com/keep-docs/SMI4wgz6Tw4qDsiL/images/appdynamics_8.png?fit=max&auto=format&n=SMI4wgz6Tw4qDsiL&q=85&s=29399a2b15f836bc6ce382e532efea4d" width="1000" alt="AppDynamics copy API Client Temporary Access Token" data-path="images/appdynamics_8.png" />
</Frame>

12. Go to **Access Token** tab under **Authentication** section

<Frame>
  <img src="https://mintcdn.com/keep-docs/SMI4wgz6Tw4qDsiL/images/appdynamics_10.png?fit=max&auto=format&n=SMI4wgz6Tw4qDsiL&q=85&s=7984ca7b8d31c7e3b970cd1a82349a76" width="1000" alt="Keep add AppDynamics Access Token" data-path="images/appdynamics_10.png" />
</Frame>

13. Enter Access Token

## Connecting provider

1. Ensure **Install webhook** is checked
2. Click **Connect**

## Webhook Integration Modifications

The webhook integration adds Keep as an alert monitor within the AppDynamics instance. It can be found under the "Alerts & Respond" section.
The integration automatically gains access to the following scopes within AppDynamics:

* `administrator`
* `authenticated`

## Useful Links

* [AppDynamics HTTP Action Templates](https://docs.appdynamics.com/appd/24.x/24.3/en/extend-cisco-appdynamics/cisco-appdynamics-apis/configuration-import-and-export-api#id-.ConfigurationImportandExportAPIv24.2-ImportHTTPActionTemplatesintoanAccount)
* [AppDynamics Permissions and Roles](https://docs.appdynamics.com/accounts/en/cisco-appdynamics-on-premises-user-management/roles-and-permissions)
* [AppDynamics User Accounts](https://docs.appdynamics.com/accounts/en/global-account-administration/access-management/manage-user-accounts)
