> ## Documentation Index
> Fetch the complete documentation index at: https://help.emaillove.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Migrating an Existing Design System or Template

> Point Claude or Codex at your existing Figma email library, get an audit report, and rebuild it as a working Email Love design system in a new file

You already have something in Figma. Maybe it is a proper design system with variables, styles, and components. Maybe it is a folder of past email templates that were built for one send each. Either way, the question is whether it can come across to Email Love, how much of it, and what it costs.

Point Claude or ChatGPT Codex at your file. Two skills walk it through, one after the other. The first is read-only: it audits what you have and produces a report you can share internally. The second uses that report to rebuild your library as a working Email Love design system in a new file. You review between batches. Your original file is never touched.

You need Claude or Codex with the official Figma MCP connected to your file. Same setup as building emails with the agent, so if you have not done that yet, start there: [Build with the Figma MCP](/plugin/ai/agents-in-figma).

<Note>
  Prefer this done for you, design review included? That is Email Love Enterprise onboarding. Email [hello@emaillove.com](mailto:hello@emaillove.com).
</Note>

## What the audit gives you

Kicked off in Claude or Codex, the audit reads your file (nothing else) and produces one markdown report. It runs in minutes.

The report tells you:

* **What your library actually reduces to.** Finished emails are built from a handful of reusable blocks (a hero, a copy row, a footer) repeated in different orders. The audit finds those blocks, deduplicates them, and shows the real count. In one recent migration, six emails came out as nine distinct modules, so the work was building nine things once, not rebuilding six emails.
* **What happens to each block in email.** Most convert as live, selectable text. Some become editable images (composed art where text and imagery genuinely interleave). A few will not translate to email at all (carousels, hover states, viewport-relative layouts), and the report says what would replace them.
* **Your brand foundations.** Type ramp mapped to email-safe fallbacks, palette, spacing, buttons, and the email width your version gets built at.
* **What a designer should look at.** Fonts you cannot use in email, component masters living in a library file that was not shared, inconsistent widths, image-heavy blocks that need alt text.
* **Effort as a range.** Counts per module type and designer-days as a range, firming up after the first converted batch.

The report is written for both your team and ours, so it doubles as the scoping document if you want us to run the migration for you.

## What the conversion does

Once you approve the audit, the same agent uses it to rebuild your library in a new Figma file. It runs in two phases: foundations once, then modules in batches with design review between them.

**Foundations** is the scaffold: your type ramp as text styles on email-safe fallbacks, your buttons as real email components, your spacing, your logo and recurring imagery, plus a documented file structure (cover, getting started page, foundations sheet, type specimen, one page per module category). A teammate who did not build it can open the file and get to work.

**Module batches** work down the audit's list a handful at a time, one component per module. For each block: the agent screenshots your source, generates the correct email structure, transcribes it into the target file, wires up the mobile version, turns it into a component with properties for what a marketer will actually change, and verifies against the original.

A design review gates the next batch. This is where the theme colors get confirmed, where the type mapping meets real copy, and where you catch anything wrong before it multiplies. Converting a whole library in one unreviewed pass is how you end up redoing all of it.

## Your source file is never touched

The audit only inspects. The conversion screenshots, downloads assets, and builds everything in a separate target file, either one your team designates or a new one named for the customer. Nothing in your current library gets renamed, restructured, or deleted.

## Your file does not need to be tidy

Both a pristine email-native library and a messy older file convert. What changes is which parts get carried across. If your file is drawn at real email widths with proper styles and margins, its geometry is preserved as your spec. If it was eyeballed years ago, your brand and structure carry across but the geometry gets rebuilt to clean email standards (600 wide, body copy at 16, spacing in multiples of 8). The audit tells you which kind of file you have, and you can overrule the call.

## How long this takes

* **The audit is minutes.** It reads and creates nothing, so it finishes quickly regardless of library complexity.
* **Foundations is a single pass**, roughly one batch of modules in length.
* **A first batch of about five modules takes tens of minutes.** On an unstructured source file, longer.
* **A full library of a hundred modules or more takes multiple sessions.** Batching with review between is the design, not a limitation.

The bottleneck is round trips to Figma, not the AI. Almost every node the agent creates or reads is a separate call, so a large module takes proportionally longer than a small one.

## Install

Choose your agent. Claude installs separate audit and converter skills. Codex installs one Email Love plugin containing the whole migration workflow.

<Tabs>
  <Tab title="Claude Code (recommended)">
    ```bash theme={null}
    claude plugin marketplace add email-love/claude-skills
    claude plugin install emaillove-migration-audit@email-love
    claude plugin install emaillove-eds-converter@email-love
    ```

    Install the audit on its own if you only want to scope the job. Inside an interactive `claude` session, the same commands work as `/plugin` slash commands.
  </Tab>

  <Tab title="Claude.ai">
    1. Enable **code execution** under **Settings → Capabilities**. Skills require it.
    2. Open the [releases page](https://github.com/email-love/claude-skills/releases) and download `emaillove-migration-audit.skill`, and `emaillove-eds-converter.skill` if you are converting, from the newest release.
    3. Go to **Settings → Capabilities → Customize → Skills** and upload them.

    Updates are manual here. Download and upload the new bundle when we ship a version.
  </Tab>

  <Tab title="OpenAI Codex">
    The Email Love Codex plugin includes the complete migration workflow as one progressively loaded skill. Install it once:

    ```bash theme={null}
    codex plugin marketplace add email-love/codex-agents --ref v3.0.0
    codex plugin add email-love@email-love
    ```

    Connect the remote Figma MCP if it is not already available:

    ```bash theme={null}
    codex mcp add figma --url https://mcp.figma.com/mcp
    codex mcp login figma
    ```

    Start a new Codex task and ask:

    ```text theme={null}
    Use $email-love-design-system-migration to audit this legacy email design system.
    Keep the source file read-only.
    ```

    Upgrade later with `codex plugin marketplace upgrade email-love`, then start a new task.
  </Tab>
</Tabs>

The audit needs only read access to your file. The conversion also needs the Email Love plugin installed in the target file.

## What to expect

* **Start with the audit, always.** It is read-only and cheap, and it answers the question everyone actually has: what this costs.
* **Your library is probably smaller than it looks.** The audit sizes the job by distinct modules, not finished designs.
* **Verdicts can change on contact.** A module classified as clean live text can turn out to be layered art during conversion, and the batch report will say so.
* **Do not skip the design review between batches.** Batch 1 always surfaces something.
* **Plan it as a project, not an afternoon.** The audit is minutes, a first batch is tens of minutes, a full library runs across several sessions with review in between.
* **Saving modules into a design system needs a paid plan.** The audit and the conversion both work on any plan; the Upload control in the plugin's Assets panel only appears for subscribers.

## Related Articles

* [Build with the Figma MCP](/plugin/ai/agents-in-figma): Same Claude or Codex setup, used to build campaigns from a design system that already exists.
* [Creating and Managing Design Systems](/plugin/components/design-systems): Where converted modules land, and how to upload them.
* [Import Existing Designs with AI Import](/plugin/ai/ai-import): The same conversion engine, run by hand in the plugin, one design at a time.

## Need help?

Email [hello@emaillove.com](mailto:hello@emaillove.com) and we'll respond within a business day.
