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

# Emoji actions

> Use Microsoft Teams reactions to trigger Ravenna actions like creating, resolving, closing, reopening, and assigning tickets without leaving the conversation.

Emoji actions bring ticket management directly into Microsoft Teams using reactions. React to a message with one of the supported emojis to create, resolve, close, reopen, or assign tickets without opening Ravenna.

<Info>
  Reactions are processed when added. Removing a reaction is a no-op. There is no "undo" by removing the emoji.
</Info>

## Mental model

Teams reactions are a lightweight, no-context-switch way to drive the most common ticket actions. They are intentionally restricted to a small, fixed set of actions that have safe semantics when invoked from a chat surface.

A reaction is mapped to a Ravenna `ReactionAction` via a static table. The table covers both modern unicode reactions and the Bot Framework's legacy six-reaction set.

***

## Target ticket resolution

When a reaction is received, Ravenna picks the target ticket using the following order:

1. If the reaction's `replyToId` matches a `ChatMessage` in the conversation, use the ticket linked to that specific reply. This lets reactions on individual replies in a long thread target the correct ticket.
2. Otherwise, fall back to the conversation's primary linked ticket.

If neither lookup finds a ticket, the reaction is ignored.

***

## Default reaction map

| Reaction | Source  | Action                   |
| -------- | ------- | ------------------------ |
| 🎫       | unicode | `CreateTicket`           |
| ✅        | unicode | `ResolveTicket`          |
| ❌        | unicode | `CloseTicket`            |
| 📖       | unicode | `ReopenTicket`           |
| 👀       | unicode | `AssignToMe`             |
| 👎       | unicode | `StopAutomatedResponses` |
| `heart`  | legacy  | `ResolveTicket`          |
| `angry`  | legacy  | `CloseTicket`            |
| `laugh`  | legacy  | `ReopenTicket`           |
| `like`   | legacy  | `AssignToMe`             |
| `sad`    | legacy  | `StopAutomatedResponses` |

***

## Constraints and gotchas

* Reaction **removal** is a no-op. The action set does not include any reversible actions (e.g. unfollow).
* The reactor must be a provisioned Ravenna user. If the reactor has never interacted with the bot, Ravenna provisions them on the fly via Microsoft Graph before applying the action.
* The mapping is currently a **static default**. A per-workspace configurable mapping is planned but not yet shipped.
* The 🎫 reaction creates a ticket from the reacted message using Graph reaction subscriptions. It is available to organizations in the early access program.
* A few reaction actions are not yet available on Teams:
  * 🏷️ tag-from-reaction
  * ❗ priority changes
  * `:lock:` private-note conversion
* Outbound emoji reflection (where Ravenna posts a status reaction back on the source message, for example ✅ when the ticket is resolved) is not yet available on Teams. Ticket state changes update the linked Adaptive Card in place instead.
