---
title: "Adding custom Teams bots"
canonical_url: "https://docs.getdx.com/custom-ms-teams-bots/"
md_url: "https://docs.getdx.com/custom-ms-teams-bots.md"
last_updated: "2026-06-18"
---

# Adding custom Teams bots
DX allows sending MS Teams surveys through custom Teams bots. A DX workspace can have multiple Teams bots configured for different use cases (e.g., different types of surveys).

## Prerequisites

- An account with access to Microsoft Entra ID to create App registrations
- Access to the Microsoft Teams Developer Portal
- Permission to upload and install apps to Teams, or an IT admin who can
- DX admin access

## Setup instructions

### Step 1 - Register your app in Microsoft Entra ID

Create an app registration within Microsoft Entra ID by visiting the App registrations page in the main navigation:

![](https://docs.getdx.com/assets/images/administration/custom-teams-bots/entra-app-registrations.png){class="max-w-lg"}

Click **New registration** and then type a name you'd like for your app. Then, select **Multitenant** and hit **Register**.

![](https://docs.getdx.com/assets/images/administration/custom-teams-bots/entra-register-app.png){class="max-w-lg"}

### Step 2 - Create your Teams app

Next, open the Microsoft Teams [Developer Portal](https://dev.teams.microsoft.com/) and click **+ New app**.

![](https://docs.getdx.com/assets/images/administration/custom-teams-bots/ms-teams-dev-portal.png){class="max-w-lg"}

Fill out all required fields denoted by an asterisk:

| Field                  | Value                       |
| ---------------------- | --------------------------- |
| **Website URL**        | `https://app.getdx.com`     |
| **Privacy Policy URL** | `https://getdx.com/privacy` |
| **Terms URL**          | `https://getdx.com/terms`   |

When you get to the Application (Client) ID field, paste in the Application ID from the Entra app registration you created earlier:

![](https://docs.getdx.com/assets/images/administration/custom-teams-bots/application-id.png){class="max-w-lg"}
![](https://docs.getdx.com/assets/images/administration/custom-teams-bots/application-id-2.png){class="max-w-lg"}

Be sure to scroll to the bottom and hit **Save**. Then, go to **App features** in the main navigation and click the **Bot** tile to configure a bot for your app.

![](https://docs.getdx.com/assets/images/administration/custom-teams-bots/app-features.png){class="max-w-lg"}

### Step 3 - Configure a bot and its endpoint

Under **Identify your bot**, choose **Select an existing bot** and then click **Create a new bot**.

![](https://docs.getdx.com/assets/images/administration/custom-teams-bots/identify-bot.png){class="max-w-lg"}

On the next screen, give your bot a name. The name you choose will be what your respondents will see in Teams.

After you've specified a name, configure the endpoint address with:

```
https://app.getdx.com/microsoft/interaction
```

Then click **Save**.

### Step 4 - Configure permissions and generate a client secret

In the left navigation, open **Client secrets** and click **Generate a new secret**. Store the secret securely for later. Then, navigate back to **Apps** on the left and click the Teams app you started creating.

![](https://docs.getdx.com/assets/images/administration/custom-teams-bots/client-secrets.png){class="max-w-lg"}

Open **App features** again and click **Bot**.

![](https://docs.getdx.com/assets/images/administration/custom-teams-bots/app-features-2.png){class="max-w-lg"}

From the dropdown, select an existing bot and pick the one you just created.

In **What can your bot do**, select **Only send notifications (one-way conversations)**.

In **Select the scopes where people can use your bot**, select **Personal** and **Team**.

Click **Save**.

![](https://docs.getdx.com/assets/images/administration/custom-teams-bots/bot-permissions.png){class="max-w-lg"}

Next, in the left navigation open **Permissions** and check the box for **Send the user notifications**.

![](https://docs.getdx.com/assets/images/administration/custom-teams-bots/notification-permissions.png){class="max-w-lg"}

Expand **Application** permissions and check **TeamMember.Read.Group**.

![](https://docs.getdx.com/assets/images/administration/custom-teams-bots/application-permissions.png){class="max-w-lg"}

Scroll to the bottom and click **Save**.

![](https://docs.getdx.com/assets/images/administration/custom-teams-bots/save-permissions.png){class="max-w-lg"}

### Step 5 - Export your app package

Be sure to add an icon from **Branding** before exporting:

![](https://docs.getdx.com/assets/images/administration/custom-teams-bots/branding-settings.png){class="max-w-lg"}

To export the app, select **App package** in the left-hand navigation and click **Manifest**.

![](https://docs.getdx.com/assets/images/administration/custom-teams-bots/app-package.png){class="max-w-lg"}

The `manifest.json` file should look very similar to this, but with different IDs for `id` and `botId`:

<details>

<summary>
MS Teams manifest example
</summary>



```json
{
  "$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.17/MicrosoftTeams.schema.json",
  "version": "1.0.0",
  "manifestVersion": "1.17",
  "id": "60711477-760f-4a73-8d23-c37d97bf8dff",
  "name": {
    "short": "Gen AI Feedback for Teams",
    "full": ""
  },
  "developer": {
    "name": "DX",
    "mpnId": "",
    "websiteUrl": "https://app.getdx.com",
    "privacyUrl": "https://getdx.com/privacy",
    "termsOfUseUrl": "https://getdx.com/terms"
  },
  "description": {
    "short": "App to gather feedback from developers",
    "full": "App using DX to gather feedback on internal tools for the platform team."
  },
  "icons": {
    "outline": "outline.png",
    "color": "color.png"
  },
  "accentColor": "#FFFFFF",
  "staticTabs": [
    {
      "entityId": "conversations",
      "scopes": ["personal"]
    },
    {
      "entityId": "about",
      "scopes": ["personal"]
    }
  ],
  "bots": [
    {
      "botId": "740c690a-334e-4a98-a33d-3c1f918205c0",
      "scopes": ["team", "personal"],
      "isNotificationOnly": true,
      "supportsCalling": false,
      "supportsVideo": false,
      "supportsFiles": false
    }
  ],
  "validDomains": [],
  "webApplicationInfo": {
    "id": "4eaf04ec-852c-40a6-b3d5-e227a453b64e",
    "resource": ""
  }
}
```



  </details>

Click **Download app package** in the top navigation. You should get a ZIP file that consists of the manifest and branding assets (three files).

### Step 6 - Add the bot in DX

Browse to [**Administration -> Teams**](https://app.getdx.com/admin/microsoft_teams_bots) and click **+ Add**.

- Enter the name of your Bot (not your Teams app). This must match the name you created earlier exactly.
- Paste the Bot's **application ID** (this is the `botId` in the manifest).
- Paste the client secret you generated earlier.
- Click **Save**.

### Step 7 - Make your bot multi-tenant

Within Microsoft Entra ID, navigate to your bot and click where it says **My organization only** under **Supported account types**.

![](https://docs.getdx.com/assets/images/administration/custom-teams-bots/my-org-only.png){class="max-w-lg"}

Change this to **Accounts in any organizational directory** and click **Save**.

![](https://docs.getdx.com/assets/images/administration/custom-teams-bots/accounts-org-dir.png){class="max-w-lg"}

### Step 8 - Install your app to a team

In Microsoft Teams, navigate to the team(s) you'd like to install the app to. The team(s) should be the same one(s) that the main DX app is installed to and contain all potential survey subjects as members. You can only send surveys to users who are members of the teams the app is installed to.

Right-click on a team and select **Manage team**.

![](https://docs.getdx.com/assets/images/administration/custom-teams-bots/manage-team.png){class="max-w-lg"}

Go to **Apps** in the menu and click **Upload an app**. If this menu does not show, contact an IT admin to have them install it to the team.

Select your ZIP file, click **Add**, then **Set up a bot**.

![](https://docs.getdx.com/assets/images/administration/custom-teams-bots/add-bot-1.png){class="max-w-lg"}
![](https://docs.getdx.com/assets/images/administration/custom-teams-bots/add-bot-2.png){class="max-w-lg"}

You should get a message confirming the bot was successfully installed.

![](https://docs.getdx.com/assets/images/administration/custom-teams-bots/add-bot-3.png){class="max-w-lg"}
---

## Sitemap

[Overview of all docs pages](/llms.txt)
