Email campaigns often get treated like a copy and HTML problem.
Then launch day comes around and the message is full of heavy hero graphics, blurry sale badges, oversized fallback images, and product collages that looked fine in Figma but feel clumsy once they hit the inbox.
That is why CRM teams need an image workflow, not just an email template.
TinyImage is useful here because it keeps compression, format decisions, batch exports, and file-size review inside Figma. The gain is not only smaller assets. It is making sure the visual layer of the campaign is ready before the handoff reaches the ESP or the final HTML build.
This article is different from nearby TinyImage pieces like Website Asset Compression Budget for Design Teams, Responsive Image Handoff from Figma, and Documentation Screenshot Workflow for Support Teams. Those focus on site assets, responsive web delivery, or docs screenshots. This one is about campaign images that have to survive email client constraints and repeated send cycles.
Email images fail for different reasons than website images
Website image workflows usually optimize for page speed, responsive loading, and CMS reuse.
Email images have a different pressure profile:
- they often sit inside fixed-width layouts
- they may be repeated across several campaign variants
- they need to look acceptable in constrained inbox environments
- they are frequently reviewed by non-technical stakeholders as screenshots before send
- they are often rebuilt too late if the file sizes are wrong
That means the image review should happen before the HTML export or upload, not after.
If the team waits until the final email test to realize the hero image is too heavy or the fallback PNG is fuzzy, the campaign is already in the expensive part of the workflow.
Decide which images are doing real work in the message
Not every email image deserves the same handling.
I like to sort campaign visuals into four roles:
hero: the primary branded visual or announcement blockproduct: screenshots, product shots, or offer tiles that need detailsupporting: divider artwork, icons, badges, or simple texturefallback: images used when a richer email module or live content source is unavailable
That classification helps the team make better export decisions.
A hero image may deserve more visual quality even if the file is slightly heavier. A supporting badge usually does not. A product collage may need careful sharpness checks if text is embedded in the image. A fallback image should be judged against the narrowest client or layout it will realistically appear in.
Start the campaign with an image budget, not a guessing game
The simplest way to stop bloated email imagery is to define an asset budget at the same time you approve the design.
You do not need a complicated spreadsheet. You just need a few rules everyone can remember:
- hero image target range
- product tile target range
- thumbnail or badge target range
- which assets must preserve fine text detail
- which assets can accept more aggressive compression
This keeps the team from arguing about quality in the abstract.
Instead of “can we compress this more?”, the better question becomes “is this asset still doing its job at the target weight?”
If your broader campaign system also lives in Figma, Emailify is the natural companion product because it keeps the design and export workflow together. But even when another build path handles the HTML, TinyImage can still clean up the image layer before handoff.
Choose the export format by asset type
Email teams often default to PNG for everything because it feels safe.
That safety comes with a cost.
For many campaigns, a better rule is:
- use JPG for photographic or textured hero visuals where small savings matter
- use PNG when edge sharpness or embedded text has to stay crisp
- use WebP only when the downstream email workflow definitely supports the way the image will be delivered
- avoid treating one format as the answer for every module
TinyImage helps because you can compare those options without leaving the Figma workflow.
The goal is not theoretical compression purity. The goal is a campaign asset pack that stays visually credible in the inbox without becoming an avoidable weight problem.
If your team is still standardizing format choices more broadly, SVG vs PNG vs WebP for Figma Exports is the best adjacent read.
Review the images at the widths the campaign will actually use
This is where a lot of CRM teams get misled.
The artboard looks generous in Figma, so the export seems fine. But once the asset is rendered in the actual email width, the text gets softer, the product crop feels cramped, or the supporting image no longer reads clearly on mobile.
Before you lock the export set, check:
- the main desktop email width
- the narrowest mobile presentation that matters
- any repeated product grid or card treatment
- the fallback version if a richer live module is unavailable
That last point matters more than people expect. Teams often optimize the best-looking version of the campaign but forget the backup imagery that actually ships more often.
Build one boring export pass for every send
A repeatable image workflow should feel unglamorous.
That is a good sign.
Here is a practical pass:
- isolate the final email image frames in Figma
- name them by campaign, module, and variant
- export a first pass at quality-first settings
- compare the assets at real email widths
- compress until each asset still looks trustworthy in context
- package the approved set for the HTML or ESP handoff
Useful filenames:
summer-sale-hero-desktop.jpgsummer-sale-hero-mobile.jpgsummer-sale-product-grid-tile-01.pngsummer-sale-fallback-offer-badge.png
TinyImage removes a lot of the wasted time between steps three and five because the team does not have to export from Figma, upload to a separate compressor, compare versions, and repeat that loop manually.
QA the campaign images like a CRM operator, not only like a designer
The final review should focus on what matters in a send:
- Does the hero still look sharp in the inbox width?
- Are product details readable enough to support the offer?
- Did any text baked into the image become softer than expected?
- Are repeated tiles visually consistent across variants?
- Did the team accidentally keep decorative whitespace that adds weight without helping the message?
This is also the moment to be honest about what should stay as live HTML text instead of imagery. TinyImage can optimize exports, but it should not be used to hide copy that would be more maintainable as real email text.
If the team also handles the full Figma-to-email production path, Figma Email QA Before ESP Upload is a strong follow-up read from the Emailify library.
A practical checklist before the asset handoff
Before the campaign moves to final build or send prep, confirm:
- every email image has a defined role
- the biggest assets meet the agreed weight targets
- the chosen format matches the asset type
- the exports were checked at real email widths
- embedded text still reads comfortably
- fallback visuals were reviewed, not only the primary layout
- filenames are clear enough for the handoff owner
Where TinyImage helps most
TinyImage does not tell a CRM team which offer deserves the hero slot or whether a product tile should be redesigned. That still takes campaign judgment.
What it does remove is the repetitive export-and-compress scramble that happens right before a send.
If your team keeps shipping email campaigns with heavy images, inconsistent sharpness, or last-minute asset cleanup, build a proper email image pass around TinyImage instead of treating every campaign as a one-off export problem. The result is faster production, more reliable handoff, and cleaner inbox visuals without extra tooling.