---
title: "Reaction received event"
method: POST
path: "reaction.received"
tags: ["Webhook Events"]
---

# Reaction received event

`POST reaction.received` (webhook)

Fired when a participant adds or removes an emoji reaction on a message.
Supported on WhatsApp, Telegram, Slack, Instagram and Facebook Messenger.
Distinct from message.received so a reaction (e.g. a thumbs-up) is not
mistaken for an inbound message.
The `reaction.action` field is `added` or `removed`. On WhatsApp and Meta
removals the platform does not report which emoji was removed, so
`reaction.emoji` may be an empty string.
Instagram and Facebook accounts connected before reactions shipped only
emit this event after their webhook subscription is refreshed; reconnect
the account if reactions never arrive. Requires the Inbox add-on.

## Payload

- WebhookPayloadReaction — Webhook payload for reaction received events (WhatsApp, Telegram, Slack, Instagram, Facebook Messenger)
  - `id` string, required — Stable webhook event ID
  - `event` 'reaction.received', required
  - `reaction` object, required
    - `emoji` string, required — The emoji reacted with. May be an empty string when `action` is `removed` on WhatsApp (Meta does not report which emoji was removed).
    - `action` 'added' | 'removed', required
    - `messageId` string — Internal Zernio message ID of the reacted-to message, when resolvable from the platform ID.
    - `platformMessageId` string, required — Platform-native ID of the reacted-to message (e.g. WhatsApp wamid).
    - `sender` object, required — Whoever added or removed the reaction. Usually the participant, but on Slack, Instagram and Facebook Messenger it is the business own platform id when the reaction was made from the native app: compare it with conversation.participantId.
      - `id` string, required
      - `contactId` string — Zernio CRM Contact id for this sender, when one exists.
      - `name` string
      - `username` string
      - `picture` string
      - `phoneNumber` string, nullable — WhatsApp only. Sender's phone number in E.164 format (with leading `+`), when available.
    - `reactedAt` string, date-time, required
  - `conversation` InboxWebhookConversation, required — The conversation context included in inbox webhook payloads.
    - `id` string, required
    - `platformConversationId` string, required
    - `participantId` string
    - `participantName` string
    - `participantUsername` string
    - `participantPicture` string
    - `status` 'active' | 'archived', required
    - `contactId` string — Zernio CRM Contact ID for the participant, when one exists. Resolved by joining `participantId` to the ContactChannel collection. Best-effort: omitted when no channel matches or `participantId` is absent. Lets integrators join any inbox webhook back to the CRM Contact without needing to look at the sender — which matters for outgoing and delivery-status events whose sender is the business.
  - `account` InboxWebhookAccount, required — The account context included in inbox webhook payloads.
    - `id` string, required — Social account ID
    - `accountId` string — Social account ID (same value as id). Canonical field so consumers can filter every webhook event on one field (e.g. route staging vs production by account). id is kept for backward compatibility.
    - `profileId` string — Zernio profile (workspace) ID this account belongs to. Use it to route or filter inbox webhooks by workspace. This is the profile ID only, not its name (resolve the name via the API with this ID). Optional; omitted on the shared WhatsApp sandbox account and when the account has no resolvable profile.
    - `platform` string, required
    - `username` string, required
    - `displayName` string
  - `timestamp` string, date-time, required

## Acknowledgement `200`

Webhook received successfully

---

[API](https://skmtc.net/zernio/apis/zernio-api.md) · [All operations](https://skmtc.net/zernio/apis/zernio-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/zernio/zernio-api/versions/f81ca70ea6b9/schema)
