Reactions and Reply
In addition to sending new messages, you can react to existing messages with emojis and reply to specific messages (creating a "reply" threading context).
Availability by channel
| Feature | Messenger | Telegram | ||
|---|---|---|---|---|
| React with emoji | ✅ | ✅ | ✅ | ✅ |
| Remove reaction | ✅ | ✅ | ✅ | ✅ |
| Reply | ✅ | ❌ | ❌ | ✅ |
Emoji reaction
To react to a message, pass the messageId of the original message and the desired emoji:
{
"from": "channel-uuid",
"to": "5511993986082",
"content": {
"reaction": {
"messageId": "9b509e32-bfec-4fe6-8a63-2c22017a3a17",
"emoji": "❤️"
}
}
}
The messageId is the internal platform identifier of the message (returned in the webhook when the message is received, or in the messageId field of the response when you sent it).
Use standard Unicode emojis. More complex emojis (ZWJ sequences) may not be supported on all channels.
Remove reaction
To remove a reaction, send the same messageId without the emoji field (or with an empty string):
{
"from": "channel-uuid",
"to": "5511993986082",
"content": {
"reaction": {
"messageId": "9b509e32-bfec-4fe6-8a63-2c22017a3a17"
}
}
}
Reply (replying to a specific message)
Reply creates a visual thread — the recipient sees the original message quoted above your reply. Available on WhatsApp and Telegram.
{
"from": "channel-uuid",
"to": "5511993986082",
"content": {
"text": "Sure! I'll check that for you.",
"context": {
"messageId": "9b509e32-bfec-4fe6-8a63-2c22017a3a17"
}
}
}
The context.messageId field can be combined with any text content type (not just text — you can reply with an image, for example):
{
"content": {
"imageUrl": "https://example.com/image.jpg",
"text": "Here is the image you requested!",
"context": {
"messageId": "9b509e32-bfec-4fe6-8a63-2c22017a3a17"
}
}
}
Where to get the messageId for reaction/reply?
The messageId you need to pass is the platform's internal identifier, which appears in:
- Received message webhooks — when the user sends a message, the payload includes its
messageId - Your send response — when you send a message, the platform returns its
messageId
// Response from your send
{
"messageId": "9b509e32-bfec-4fe6-8a63-2c22017a3a17",
"status": "sent"
}
Save relevant messageIds if you need to implement reactions or replies later.
Next steps
- Content Types — all message types and channel availability
- Interactive Messages — buttons, lists, and CTA URL
- Event Types and Payload — how received messages arrive at your webhook