Description
Custom emojis are a big part of company culture:
We should support them everywhere a user can pick an emoji.
Spec
Formats: jpg, png, gif, π¦ svg (max. 128KB for svg)
Size: unlimited but we scale down to a 64Γ64 square (fit, do not crop or fill)
Alias
π¦ default alias comes from the file name
(non-supported characters are omitted)
alias must be 2+ characters long, so it's possible to insert the emoji into rich text by typing :xx
alias must be unique
no multiple aliases UI for now
Behavior
Emojis are workspace-wide and available in the unified picker under Custom section + in rich text by typing :alias:
When an emoji is removed from a workspace:
it's not possible to insert it anymore
anyone can upload a new emoji with the same alias
(does not affect old usage of the previous emoji with this alias)
π¦ all places where the emoji has been used (rich text, select options, etc.) stay intact
(not the case in Slack)

Export a doc with a custom emoji β import: insert alias; if the an emoji with this alias is present in the target workspace, alias gets replaced by the emoji.
π¦ Live updates for newly uploaded emojis are nice to have
Removing a custom emoji
We add a simple screen to a newly added Customization section in settings:
Admins and authors are able to update aliases and delete emojis.
When an emoji is removed, all its usages are preserved intact β it's just not available in the picker again. We considered an alternative approach of retroactively updating old places, but decided against it:
π you can easily manipulate custom emojis without fear to break anything
π you may be sure that what you see in the document wonβt change retroactively somehow
π© the system can be abused by uploading some inappropriate custom emojis, and admin canβt remove it afterwards (but we can add delete feature anyway in this solution, admins only for example)
π© there is no way to update all old emoji usage, in case you want to use the newer version of the image (updated brand logo, todayβs weather, etc) (maybe even by some automation)
π© works differently in slack
Permissions
Open questions
βοΈ Can you add a custom icon, not just a custom emoji?
No, you can still achieve the same result via an "emoji".
βοΈ What is the UI for adding a custom emoji?
So far: steal from Slack :ihar:
βοΈ What is the UI for removing a custom emoji?
Could Admins also disable some native emojis on their workspace (e.g. π§πΎ)? No
βοΈ What to do with a scenario when you want to upload a custom "emoji" to serve as an icon for a particular Entity, but don't want this emoji to appear elsewhere? Notion is optimised for this scenario, by the way. Not solving for now, Avatar might be a workaround.
βοΈ Technical: is Emoji an example of π¦ Global Types (idea)? What if we decide to introduce permissions for adding custom emojis in the future?
Stored in layout service, not in Fibery core
Next
Import custom emojis from Slack
π¦s:
References
https://twitter.com/peer_rich/status/1601295314828201984
https://clickup.canny.io/feature-requests/p/add-custom-emoji-as-you-can-do-in-slack
Please PLEASE create this feature. It's one of our team's biggest perceived losses with this move to ClickUp from Slack (and it doesn't have to be that way!). It's such a seemingly small, but actually huge culture-builder in an all-virtual environment, complete with inside jokes, memories, etc.