Skip to main content
Add a tapback reaction to a message. The type values are Apple’s six tapback verbs — love, like, dislike, laugh, emphasize, question — plus custom, which carries any single emoji in custom_emoji.

Add or remove a reaction

Use operation to add or remove the reaction:

Choose a target

A reaction targets a slot: the whole message, or one exact part of it.
target_part_id names a part of any kind. Read the part_id off the part you want from the message itself.

Read the result

A success returns the stored reaction, the same object recipients receive as the data of a reaction.added or reaction.removed event:
actor.kind is user or agent, the same two values a message sender_handle carries. changed says whether anything actually moved. Relay emits reaction.added or reaction.removed only when it is true, so a retry costs recipients nothing. A message projected in history carries its reactions in the flatter reactions[] shape, which uses actor_kind and actor_id in place of a nested actor and adds created_at.

Receiving reaction events

When a user reacts to the agent’s message, the agent’s webhook receives reaction.added or reaction.removed:
changed appears only in the reaction endpoint’s own 200 response; the event fires exactly when it was true, so it carries no changed field.
Use a reaction when acknowledgment is enough. React with like to a “thanks” instead of sending another message.

Next steps