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

# reaction

> One emoji attached to the end user's message instead of, or as well as, a text reply

`reaction` attaches an emoji to the message the agent is replying to, the way a person taps and holds a message. It can be the whole reply: a reply that contains only a reaction sends no text, which is how to close a conversation without inviting another turn. It renders natively on WhatsApp, Instagram, Messenger, Slack, iMessage, and the web widget; the platform teaches the block but doesn't tell the model it works in the widget, so say so in your instructions when you want it there. See [Response formatting](/channels/formatting/overview) for the per-channel matrix.

*Verified against lua-cli 3.33.0.*

## Syntax

```text theme={null}
::: reaction
emoji=👍
:::
```

## Fields

| Field   | Required | Notes                                                                                   |
| ------- | -------- | --------------------------------------------------------------------------------------- |
| `emoji` | Yes      | Exactly one emoji; `emoji: 👍` and a bare `👍` line also parse. One reaction per reply. |

## Example

A reaction with a short text reply; the emoji lands on the end user's message and the text arrives as usual.

```text theme={null}
Glad it worked. Message me if the next order gives you any trouble.

::: reaction
emoji=🎉
:::
```

## Where it renders

| Channel                                                      | Behavior                                                                                                          |
| ------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------- |
| WhatsApp, Instagram                                          | Native reaction                                                                                                   |
| Messenger                                                    | Native reaction from a fixed set: like, dislike, love, haha, wow, sad, angry, smile; other emoji are sent as text |
| Slack                                                        | Native reaction by emoji name; the Slack app needs the `reactions:write` scope                                    |
| iMessage                                                     | The closest tapback: love, like, dislike, laugh, emphasize, or question                                           |
| Web widget                                                   | Badge on the end user's message; a reaction-only reply shows no bubble                                            |
| Teams, RCS, MessageBird, SMS, Front, email (generated inbox) | The emoji as plain text                                                                                           |
| Email (your own address)                                     | Dropped                                                                                                           |

Pick common emoji: on Messenger, Slack, and iMessage an emoji with no mapping is appended to the reply as text instead of reacting.

## See also

* [Response formatting](/channels/formatting/overview) — the per-channel matrix
* [Slack](/channels/slack) — app scopes
* [actions](/channels/formatting/actions) — when the end user should choose rather than be acknowledged
