Make One Custom Emoji Work in Teams, Slack, and Discord
Do not redraw the same reaction three times. Keep one clean square master, then run three small export checks so it stays readable and uploadable wherever your team chats.
Miles Crawford
Start With One Square Master
Keep the editable source as a square PNG with transparency and enough resolution to crop cleanly. Treat that file as the master, not as the final upload. A face, hand, or object that fills most of the square will survive chat-size rendering better than a detailed scene with generous margins.
If the source is a photo or clip, the Teamsmoji maker can remove the background, crop the subject, and preview the result locally in your browser. Keep the original source too; compression is easy to repeat, but lost detail is not.
Use the Strictest Useful Export
Slack says square JPG, PNG, or GIF images under 128KB work best, with transparent backgrounds preferred and animated GIFs capped at 50 frames. Microsoft recommends square JPEG, PNG, or GIF files under 256KB. Discord accepts JPEG, PNG, GIF, or WebP custom emoji under 256KB and notes that uploads up to 128×128 pixels are resized to 32×32.
For a static emoji that needs to travel across all three, export a square transparent PNG under 128KB. That is not the only format each platform accepts; it is the simplest shared target. For animation, make a GIF under 128KB and 50 frames if Slack is part of the plan, then preview it on every platform before a wider rollout.
Run the Thumbnail Test Before Uploading
Shrink the emoji to roughly chat size. If the expression disappears, the problem is usually the composition rather than the platform. Crop tighter, simplify thin details, strengthen contrast, and remove tiny text. Discord explicitly says its emoji render at 32×32 pixels, and the same small-size discipline helps in Teams and Slack.
Test light and dark chat backgrounds. A transparent subject with dark edges can vanish in dark mode; a pale subject can disappear on white. A subtle outline often fixes both without changing the reaction itself.
Keep the Name Portable Too
Use a short lowercase name built from letters, numbers, and underscores, such as :needs_clarity:. Discord requires at least two characters and allows only alphanumeric characters and underscores. A portable name also makes the emoji easier to recall in Slack and easier to manage as a shared set.
Name the reaction by what it does, not by what the artwork depicts. :needs_clarity: will be found more often than :yellow_face_glasses:. See the full custom emoji naming guide before uploading a batch.
The Five-Minute Cross-Platform Check
- Open the square master and crop the subject tightly.
- Export a transparent PNG under 128KB.
- Preview it at about 32×32 pixels on light and dark backgrounds.
- Give it one portable lowercase name with underscores.
- Upload it separately to each workspace or server and check the real picker and message view.
Platform permissions still apply. If the upload control is missing, check the relevant Teams, Slack, or Discord setup guide rather than repeatedly recompressing a valid file.