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

# Microsoft Teams

> Deploy your agent to Microsoft Teams channels and private chats

Deploy your agent to Microsoft Teams and let users talk to it in team channels or direct chats. Once deployed, the agent can respond to mentions, reply in threads, and even send rich Adaptive Cards right inside Teams.

## Setting Up the Teams Deployment

Teams deployments require an **Azure AD (Entra ID)** application that the agent uses to read messages and post replies. You can either connect via delegated OAuth (signing in as a user) or via an **app-only service principal** (recommended for production and DMs).

<Steps>
  <Step title="Register an Azure application">
    Go to [portal.azure.com](https://portal.azure.com) → **Microsoft Entra ID** → **App registrations** → **New registration**. Give the app a name (e.g. `Noxus Agent`) and register it.
  </Step>

  <Step title="Grant Microsoft Graph permissions">
    Under **API permissions**, add the Microsoft Graph permissions the agent needs to read messages and post replies (for example `Chat.Create`, `ChatMessage.Read.All`, `Channel.ReadBasic.All`, `ChannelMessage.Send`, `Team.ReadBasic.All`, `User.Read.All`). A tenant admin must **Grant admin consent** for the application-level permissions.
  </Step>

  <Step title="Create a client secret">
    Under **Certificates & secrets**, create a new **Client secret** and copy the value — you will only see it once.
  </Step>

  <Step title="Enter credentials in Noxus">
    Back in Noxus, create a new Microsoft Teams connection and fill in the fields:

    * **Tenant ID** — your Azure AD tenant UUID.
    * **Client ID (Application ID)** — from the app's **Overview** page.
    * **Client Secret** — the value you copied in the previous step.
    * **User ID or Email (UPN)** — optional. Leave empty for channel-only deployments; required when you want the agent to handle direct messages (DMs) with app-only permissions.

    Click **Connect** to save. Noxus validates the credentials against Microsoft Graph.
  </Step>

  <Step title="Install the Noxus app in Teams">
    Install the Noxus bot app into your Teams tenant (or add the bot to specific channels) so it can receive messages. The bot needs to be present in every channel where you want it to respond.
  </Step>
</Steps>

<Warning>
  Admin consent is required for channel-wide message subscriptions and DM subscriptions via app-only permissions. If your deployment can't activate, check that admin consent was granted for every Microsoft Graph permission.
</Warning>

## Deployment Settings

Once your Teams connection is established, configure how the agent behaves in Teams. Settings are organized into the sections below.

### Deployment

| Field       | Description                                                                                                                   |
| :---------- | :---------------------------------------------------------------------------------------------------------------------------- |
| **Status**  | Toggle the deployment **Online** or **Offline**. When online, the agent listens and responds to Teams messages automatically. |
| **Version** | The published agent version this deployment uses.                                                                             |

<Note>
  A published **version** is required before you can set a deployment to Online. You cannot edit the configuration while the deployment is active — switch it to **Offline** first, then make your changes.
</Note>

### Configuration

| Field                   | Description                                                                                             |
| :---------------------- | :------------------------------------------------------------------------------------------------------ |
| **Teams Connection**    | The Microsoft Teams connection to use. Manage connections in your workspace's connections settings.     |
| **Custom Instructions** | Per-deployment instructions appended to the agent's system prompt (e.g. `"Always respond in Spanish"`). |

### Conversation Triggers

A new conversation starts when **all** specified fields match an incoming message. Fields use AND logic — every non-empty field must match.

| Field                             | Description                                                                                                                        |
| :-------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------- |
| **Only support private messages** | When enabled, the agent only responds to direct chats (DMs) and is not bound to a team or channel. Useful for DM-based assistants. |
| **Team**                          | The Team the agent listens to. Hidden when **Only support private messages** is on.                                                |
| **Channel**                       | The specific channel inside the Team where triggers fire.                                                                          |
| **Keywords**                      | One or more keywords that must appear in the message.                                                                              |
| **Reset conversation keywords**   | Keywords that force a new conversation. If left empty, all private messages continue in the same conversation thread.              |
| **Trigger on my own messages**    | Advanced — when on, the agent also fires on messages sent by the authenticated user. Off by default to prevent self-loops.         |

### Reply Behavior

| Field                              | Description                                                                                                                                                                                 |
| :--------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Reply mode**                     | `Auto` — reply in the same context (channel or DM). `Thread` — always reply in a thread. `Tool-based` — nothing is sent automatically; the agent must call the `send_message` tool to post. |
| **Batch messages before replying** | When enabled, the agent waits for a pause before responding, batching multiple incoming messages together.                                                                                  |
| **Quiet period (seconds)**         | How long to wait after the last message before replying. New messages reset the timer. Default: `5`.                                                                                        |

### Channel Tools

Toggle which Teams-specific tools the agent can use during conversations.

| Tool                 | Description                                                                                                |
| :------------------- | :--------------------------------------------------------------------------------------------------------- |
| **React To Message** | Add an emoji reaction to a message (Teams supports `like`, `heart`, `laugh`, `surprised`, `sad`, `angry`). |
| **Reply In Thread**  | Reply to a specific message in a thread.                                                                   |

### Rate Limits

| Field                              | Description                                                                                              |
| :--------------------------------- | :------------------------------------------------------------------------------------------------------- |
| **Max messages per minute**        | Limit how many messages the agent sends per minute. `0` for unlimited.                                   |
| **Max new conversations per hour** | Limit how many new conversations can be started per hour. `0` for unlimited.                             |
| **Conversation timeout (minutes)** | After this many minutes of inactivity, the next message starts a fresh conversation. `0` for no timeout. |

### Display

| Field               | Description                                                            |
| :------------------ | :--------------------------------------------------------------------- |
| **Show thinking**   | Display the agent's reasoning steps in Teams messages. Off by default. |
| **Show tool calls** | Display tool call status in Teams messages. Off by default.            |
| **Show sources**    | Display source citations in Teams messages. On by default.             |
