> For the complete documentation index, see [llms.txt](https://docs.arnica.io/arnica-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.arnica.io/arnica-documentation/getting-started/chatops/microsoft-teams/interacting-with-the-arnica-teams-bot.md).

# Interacting With the Arnica Teams Bot

Commands and finding actions available in the Arnica Microsoft Teams bot

## Overview

Once the Microsoft tenant is connected, developers work with Arnica in Teams in two ways: by sending the bot a command, and by acting on the finding cards Arnica posts.

## Commands

In a private chat with the bot, type the command on its own. In a channel, mention the bot first, for example `@Arnica risks mine`.

| Command         | What it does                                                                |
| --------------- | --------------------------------------------------------------------------- |
| `help`          | Lists the commands the bot supports.                                        |
| `risks help`    | Lists the available risk commands.                                          |
| `risks mine`    | Returns a secure link to the code risks where you are the author or pusher. |
| `risks product` | Returns a secure link to the code risks for the products you own.           |

{% hint style="info" %}
Microsoft Teams commands are plain words, with no leading slash. The slash-command forms shown in some Slack examples do not apply to Teams.
{% endhint %}

{% hint style="warning" %}
The links returned by `risks mine` and `risks product` are personal. Anyone who opens a shared link can comment on and change the status of those risks on your behalf, so do not forward them.
{% endhint %}

If Arnica does not recognize a message, it replies with a prompt to type `help`.

## Acting on code risk findings

When a policy routes a code risk to Teams, Arnica posts an Adaptive Card that identifies the risk and links back to the full context in Arnica. The card includes the risk type and title, the location and file, the description, the severity and current status, and the pusher and author. A pull request link, a recommendation, and reference links are included when the finding has them, and findings surfaced by AI analysis also show an AI confidence rating.

<figure><img src="https://4035514934-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMxc1Ek3qoIZi5t2Sx7do%2Fuploads%2Fgit-blob-ce971ca08866f46908d4f36d9df8f3ec979ea5c5%2Fteams-code-risk-card.png?alt=media" alt="Code risk notification card in Microsoft Teams, with Acknowledge and Dismiss actions" width="500"><figcaption></figcaption></figure>

From the card, a developer can:

* **Acknowledge** — record that the risk is being worked on.
* **Dismiss** — close the finding with a justification.

{% hint style="info" %}
When the policy rule that sent the notification has **Dismissals Require Review** enabled, the button reads **Dismiss (requires review)** instead, and the finding stays open until a reviewer approves the dismissal. See [Require Review Before Dismissal](/arnica-documentation/code-risks/code-risk-policy-settings/require-review-before-dismissal.md).
{% endhint %}

<figure><img src="https://4035514934-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMxc1Ek3qoIZi5t2Sx7do%2Fuploads%2Fgit-blob-a2d60a84e8b6fd3b82e13bb27dc147679385a73c%2Fteams-dismiss-requires-review.png?alt=media" alt="Code risk card in Microsoft Teams showing the Dismiss (requires review) action" width="400"><figcaption></figcaption></figure>

Selecting **Dismiss** prompts for a reason:

| Reason            | Meaning                                                                            |
| ----------------- | ---------------------------------------------------------------------------------- |
| Not Accurate      | The finding is a false positive.                                                   |
| Risk is Tolerable | The risk is understood and accepted.                                               |
| No Capacity       | There is no capacity to address the risk now. Available when the policy allows it. |
| Snooze            | Suppress the finding temporarily. Available when the policy allows it.             |

Both **Dismissal Reason** and **Additional Details** are required, and the dismissal is not recorded until **Submit** is selected. **Cancel** closes the form and leaves the finding as it was.

<figure><img src="https://4035514934-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMxc1Ek3qoIZi5t2Sx7do%2Fuploads%2Fgit-blob-c3cea379415ea0e15111827b32515bb8c7130786%2Fteams-dismissal-reason.png?alt=media" alt="Dismissal form on a Teams code risk card, with the dismissal reason and additional details fields" width="470"><figcaption></figcaption></figure>

Once submitted, Arnica records who requested the dismissal from Teams and processes it through the same policy workflow as a dismissal made in the application.

## Acting on secret findings

Secret cards identify the secret type, the location and file, the severity and status, and the pusher and author. They support the same dismissal reasons as code risk cards, but offer only **Dismiss** — there is no acknowledge action on a secret.

<figure><img src="https://4035514934-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMxc1Ek3qoIZi5t2Sx7do%2Fuploads%2Fgit-blob-9872c1b8b8c6d7050a2b8bfd466a8aeb1dfa657e%2Fteams-secret-card.png?alt=media" alt="Secret detection card in Microsoft Teams, with a Dismiss action" width="470"><figcaption></figcaption></figure>

When secret mitigation resets a branch, Arnica posts a follow-up card reporting whether the reset succeeded, linking to the mitigated branch, and providing the local Git commands for syncing to it.

## Reviewing dismissal requests

When a dismissal requires review, a policy with the **User Dismissed Finding via ChatOps** trigger routes it to the configured reviewers. Arnica notifies them in Teams with a card naming the developer who requested the dismissal, the reason and additional details they submitted, and a status of **Dismissed (Pending Review)**. From it, a reviewer can:

* **Approve** the dismissal.
* **Reject** it, optionally with details explaining why.

<figure><img src="https://4035514934-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMxc1Ek3qoIZi5t2Sx7do%2Fuploads%2Fgit-blob-099103966a426a1aca7dd16809995ec28accc9d6%2Fteams-dismissal-review-card.png?alt=media" alt="Dismissal review card in Microsoft Teams, with Approve and Reject actions" width="440"><figcaption></figcaption></figure>

Arnica records the reviewer identity from Teams and updates the original finding card so the status stays accurate for everyone who saw it.

## Card updates

Arnica keeps Teams cards current. When a finding is resolved, dismissed, snoozed, approved, or rejected — whether the change was made in Teams, in Slack, or in the Arnica application — Arnica updates the original card in place, or replies in the same thread when the card cannot be updated.

## Related topics

* [Microsoft Teams integration overview](/arnica-documentation/getting-started/chatops/microsoft-teams.md)
* [Adding Arnica to a Team or Channel](/arnica-documentation/getting-started/chatops/microsoft-teams/adding-arnica-to-a-team-or-channel.md)
* [Interacting With the Arnica Slackbot](/arnica-documentation/getting-started/chatops/slack/interacting-with-the-arnica-slackbot.md)
* [Operational Guidance](/arnica-documentation/getting-started/chatops/microsoft-teams/operational-guidance.md)
