Help Center
How can we help? πŸ‘‹

Updatable Templates: update in place instead of creating duplicates

How the Enable Updatable Templates toggle stores an ESP template ID on your Figma frame so re-exporting updates the existing template instead of piling up duplicates

Every time you export an email to your ESP, the plugin would normally create a brand new template or campaign. Export the same design five times while you're fine-tuning it and you'd end up with five copies to clean up. Updatable Templates solves that: turn it on and the plugin remembers which ESP template each Figma frame created, so re-exporting updates that same template in place instead of making a duplicate.

This article explains the concept once; each ESP guide repeats the platform-specific details.

How it works

  1. When you save an API key for a supported ESP, an Enable Updatable Templates toggle appears below the credentials in the export panel.
  1. With the toggle on, your first export creates a new template/campaign in the ESP and stores the ESP's returned template ID on the Figma frame itself (in the frame's plugin data).
  1. On the next export of that same frame, the plugin reads the stored ID back and tells the ESP to update that existing template rather than create a new one. The template ID stays stable.
  1. A successful update shows a Successfully updated! toast instead of Successfully exported!
  1. If the update fails β€” most commonly because the template was deleted in the ESP β€” the plugin automatically falls back to creating a new template so your export still succeeds.

With the toggle off, every export creates a new template, which is what you want when you're intentionally spinning off a copy.

Why use it

  • No duplicate cleanup. Iterating on a design no longer litters your ESP with near-identical templates.
  • Stable IDs. Because the template ID doesn't change, anything in your ESP that references it β€” a Single Send, an automation step, an API call β€” keeps pointing at the latest version.
  • Figma stays the source of truth. Edit in Figma, re-export, and the live ESP template updates. You don't maintain two copies by hand.

Important: the ID lives on the frame

The stored template ID is attached to a specific Figma frame. That has a few consequences worth knowing:

  • Duplicating a frame does not carry a clean link β€” a duplicated or renamed frame may be treated as new, creating a separate template on its next export.
  • A brand-new frame has no stored ID, so its first export always creates a new template (then links from then on).
  • Deleting the template in the ESP breaks the link; the plugin notices the failed update and creates a fresh template, then re-links to that one.

If you want a separate template on purpose, either turn the toggle off for that export or start from a new frame.

Which destinations support it

Updatable Templates is wired up across the plugin's API-based ESP integrations, including Customer.io, Braze, SendX, Brevo, Mailjet, Airship, Postmark, ActiveCampaign, SendGrid, and both MailerLite variants, alongside the established Marketo and Salesforce paths. The exact label and behavior can vary slightly per platform (for example, MailerLite can only update campaigns that are still in draft status), so check the specific ESP's guide for any platform notes.

Plain HTML/MJML downloads and webhook-style destinations (Custom Webhook, Zapier, Make) don't use template IDs, so the toggle doesn't apply to them.

Troubleshooting

It created a duplicate even with the toggle on: The plugin only updates a template it previously created from that exact frame. If you duplicated the frame, renamed it in a way that broke the link, or the original template was deleted in the ESP, it will create a new one. The frame then links to the new template going forward.

I want a fresh copy: Turn Enable Updatable Templates off before exporting, or export from a new frame.

The toggle isn't showing: Save a valid API key for the ESP first β€” the toggle appears below the credentials once a key is stored. Note it doesn't appear for HTML/MJML or webhook destinations.

Need help? Join our Discord community or reach out to our support team at support@emaillove.com.

Related Articles

Did this answer your question?
😞
😐
🀩