Skip to main content
The agent adds and removes emoji reactions with the message tool’s react action. Behavior varies by channel.

How it works

  • emoji is required when adding a reaction.
  • Set emoji to an empty string ("") to remove the bot’s reaction(s) on channels that support it.
  • Set remove: true to remove one specific emoji (requires non-empty emoji).
  • On channels with status reactions, trackToolCalls: true on a reaction lets the runtime reuse that reacted message for the same turn’s status lifecycle. Discord keeps the chosen reaction stable during work and signals actual failures, rather than cycling through tool-specific emoji.

Channel behavior

  • Empty emoji removes all of the bot’s reactions on the message.
  • remove: true removes just the specified emoji.
  • Adding reactions only: emoji is required and must be non-empty.
  • Reaction removal is not wired to a delete call yet; remove: true is rejected with an explicit error instead of silently no-oping.
  • Requires the Talk bot registered with the reaction feature (see Nextcloud Talk channel docs).
  • Use emoji-list to find allowed standard reactions and numeric custom emoji identifiers.
  • Empty emoji removes the bot’s reactions.
  • remove: true also removes reactions but still requires a non-empty emoji for tool validation.
  • Empty emoji removes the bot reaction.
  • remove: true maps to empty emoji internally (still requires emoji in the tool call).
  • WhatsApp has one bot reaction slot per message; sending a new reaction replaces it rather than stacking multiple emoji.
  • Requires non-empty emoji for both add and remove.
  • remove: true removes that specific emoji reaction.
  • Uses the same react action as other channels (add/remove/list via message reaction IDs), not a separate tool.
  • Adding requires non-empty emoji (mapped to a Feishu emoji_type, e.g. SMILE, THUMBSUP, HEART).
  • remove: true requires non-empty emoji and removes the bot’s own reaction matching that emoji type.
  • Empty emoji with clearAll: true removes all of the bot’s reactions on the message.
  • Inbound reaction notifications are controlled by channels.signal.reactionNotifications: "off" disables them, "own" (default) emits events when users react to bot messages, "all" emits events for all reactions, and "allowlist" emits events only for senders in channels.signal.reactionAllowlist.
  • Outbound reactions are iMessage tapbacks (love, like, dislike, laugh, emphasize, and question); emoji must map to one of these kinds to add a reaction.
  • remove: true without a recognized tapback kind removes all tapback kinds; with a recognized kind it removes just that one.

Reaction level

Per-channel reactionLevel throttles how often the agent sends its own reactions. Values: off, ack, minimal, or extensive.
  • Agent Send - the message tool that includes react
  • Channels - channel-specific configuration