Summary
We’re introducing emoji reactions to stories and status updates in the API, replacing the legacy “likes” system. As part of this update, several likes-related fields will be deprecated and replaced by a new reaction_summary
field that provides more expressive feedback options. A new GET /reactions
endpoint will also be available to fetch detailed reaction data.
Deprecated fields include:
likes
hearts
num_likes
num_hearts
liked
hearted
Why we’re making this change
Emoji reactions are a natural extension of the existing and successful “likes” feature, allowing users to express a wider range of emotions and feedback on comments across web, mobile, and email. This enhancement aligns with Asana’s goal of fostering bite-sized, lightweight communication while keeping teams engaged and collaborative. By expanding reactions beyond “likes,” we provide users with more nuanced ways to interact without adding friction to their workflow.
Who is affected
Users who currently rely on the likes
feature will be affected. These fields will continue to appear for now but will stop being updated as reactions are rolled out more broadly.
Timeline (approximate)
-
June 25: Rollout begins for emoji reactions (initially available to select workspaces)
-
June 25 to late August: Experimental phase — reactions will be gradually rolled out, and both likes and reactions will be written for compatibility
-
After the experiment: Broader availability and continued backward compatibility for a period of time
Change details
The deprecated likes-related fields (listed above) will remain in the API response for now, but they will eventually stop receiving new data. During the experimental phase, both likes and reactions will continue to be written for compatibility. These fields may still appear in responses, but once your workspace transitions to reactions, they will no longer receive new data. They will remain for backward compatibility but are no longer actively maintained
Structure of reaction_summary
(GET
story or status update will include a list of these):
{
"emoji_base": string,
"variant": string,
"count": number,
"reacted": boolean,
}
Example of reaction_summary
(included in GET
story or status update)
"reaction_summary": [
{
"emoji_base": "👋",
"variant": "👋",
"count": 1,
"reacted": false
},
{
"emoji_base": "👍",
"variant": "👍",
"count": 1,
"reacted": true
},
{
"emoji_base": "✊",
"variant": "✊",
"count": 1,
"reacted": true
},
{
"emoji_base": "✊",
"variant": "✊🏻",
"count": 1,
"reacted": true
},
{
"emoji_base": "😀",
"variant": "😀",
"count": 1,
"reacted": true
},
{
"emoji_base": "😘",
"variant": "😘",
"count": 1,
"reacted": true
}
]
Reaction object structure (used to update a story)
{
"emoji": "string",
"reacted": boolean
}
Migration steps
- Existing
likes
will be migrated to(thumbs-up) reactions.
- During the rollout, likes will continue to be written to maintain compatibility.
- Update your integration to:
- Read from
reaction_summary
(see: getting story, getting status update) - Write reactions instead of
likes
(see: updating a story) - Use the new
GET /reactions
endpoint for a paginated list of all reactions
- Read from