# Hypermatic Docs

> Complete machine-readable documentation corpus for the Hypermatic plugin documentation.

This file contains generated Markdown versions of public Hypermatic Docs pages. For a smaller crawl map, use [/llms.txt](/llms.txt).

## Full Documentation

---
url: "/bannerify/animation/ai-animation-timelines.md"
description: "Copy a Bannerify timeline prompt into your preferred AI assistant, validate its JSON plan, and safely apply the recommended animations and timings."
---

# Creating AI animation timelines

> Copy a Bannerify timeline prompt into your preferred AI assistant, validate its JSON plan, and safely apply the recommended animations and timings.

Bannerify can turn the layers and current timings from one banner into a structured prompt for ChatGPT, Claude, Gemini, or another AI assistant. Paste the returned JSON into Bannerify to validate and review the proposed entry, exit, and hover animations before applying anything.

Bannerify does not contact an AI service or change the timeline when you copy the prompt. You choose where to paste it, and the timeline is only updated after its JSON response passes validation and you click **Apply AI Timeline**.

## Create an AI timeline

1. Load your banner frames or sections into Bannerify.
2. Click the **Create AI Animation Timeline** prompt icon in the header of the banner you want to animate.
3. Describe the direction you want. Include the intended mood, visual hierarchy, important layer order, or elements that should remain subtle.
4. Click **Copy AI Prompt**.
5. Paste the prompt into your preferred AI assistant and send it without removing the included timeline data or rules.
6. Copy the JSON object from the AI response.
7. Return to Bannerify and paste the response into **Paste and validate the JSON response**. Bannerify automatically validates pasted JSON, or you can click **Validate JSON**.
8. Review every proposed change, including the previous and recommended animation and timing.
9. Click **Apply AI Timeline**.

The preview updates immediately and Bannerify saves the new animation settings to the Figma layers.

> **Tip:** For more useful results, describe the viewing sequence instead of naming animation presets. For example: _Introduce the headline first, bring the product in from the right, then reveal the CTA. Keep the motion restrained and add a subtle CTA hover._ The copied prompt already supplies the supported Bannerify animation names.

## Review and undo the result

The review panel shows only the tracks that will change. It compares the current entry, exit, and hover settings with the validated recommendation for each affected layer.

Applying an AI timeline creates one Bannerify history step, even when several layers change. Use the **Undo** button or Command + Z on macOS / Ctrl + Z on Windows to restore the complete previous timeline. You can then redo the same AI plan or generate a fresh one. See [Undoing and redoing timeline changes](/bannerify/animation/undo-redo) for all shortcuts and history behavior.

## What Bannerify includes in the prompt

Each copied prompt contains the information the AI needs to create a valid plan:

- A temporary reference such as `L1` for every editable timeline layer
- Layer names, types, stack order, and bounds
- The banner dimensions and timeline length
- Current entry, exit, and hover settings
- The allowed timing window for each layer or section scene
- Split Text and SVG Draw compatibility
- A catalog of supported Bannerify animation IDs, including saved custom animations that can be used for entry or exit tracks
- Your animation direction

Bannerify does not include raw Figma banner or layer IDs, exported image data, SVG markup, or other layer asset bytes. The copied prompt does include layer names and layout/timeline metadata, so review it before sharing designs that contain confidential naming or structure.

## How the JSON is validated

Bannerify validates the complete response before changing any layer. It checks that:

- The response uses the current Bannerify timeline schema and matches the copied prompt
- Every supplied layer reference appears exactly once
- No unknown layer references or animation IDs were invented
- Split Text and SVG Draw animations are only used on compatible layers
- Entry and exit animations fit inside the layer's allowed timeline or scene window
- Entry and exit ranges do not overlap
- Durations are at least 0.1 seconds
- Timing values can be normalized to Bannerify's 0.1-second timeline increments

If the timeline, layer settings, custom animation catalog, or scene timing changes after you copy a prompt, Bannerify rejects the old response. Click **Copy Fresh Prompt** and ask the AI again so its plan is based on the current timeline.

## JSON response format

The copied prompt asks the AI to return a single JSON object in this format:

```json
{
  "schemaVersion": "bannerify.timeline-plan.v1",
  "snapshotId": "ai-example-snapshot",
  "timelineSeconds": 5,
  "layers": [
    {
      "layerRef": "L1",
      "entry": {
        "animationId": "fade-in-bottom",
        "startSeconds": 0.2,
        "durationSeconds": 0.6,
        "loop": false
      },
      "exit": {
        "animationId": "fade-out",
        "startSeconds": 4.3,
        "durationSeconds": 0.5,
        "loop": false
      },
      "hover": null
    }
  ]
}
```

Each `entry`, `exit`, or `hover` value can be:

- An animation object to replace that track
- `null` to remove its animation
- `"keep"` to leave its current value unchanged

Do not edit the `schemaVersion`, `snapshotId`, `timelineSeconds`, layer references, or animation IDs. If an AI wraps the response in a single `json` code block, Bannerify can still read it.

## Working with section scenes and special animations

For banners loaded from Figma sections, the prompt contains the current timing window for each scene. The AI can change layer timings inside that window, but it cannot move a layer into another scene. Adjust scene timing in Bannerify first, then copy a fresh prompt if you want the AI to use the new window.

Split Text animations are only available when the text layer is eligible. SVG Draw animations are only available for compatible SVG layers. Saved custom keyframe animations are included as entry and exit choices. Existing animations that are not in the supplied AI catalog can still be preserved by returning `"keep"` for that track.

Layers beginning with `locked-` are intentionally omitted. If a nested layer is missing, [expand it into the Bannerify timeline](/bannerify/design/nested), refresh the banner, and copy a fresh prompt.

## Troubleshooting

### The response says the timeline changed

The prompt is no longer based on the current banner state. Click **Copy Fresh Prompt**, replace the previous prompt in your AI assistant, and use its new JSON response.

### An animation ID is not in the catalog

Ask the AI to use only the exact `animationCatalog` IDs supplied in the copied prompt. Do not substitute a display name or invent a new animation name.

### A layer is missing or duplicated

The AI response must include every supplied `layerRef` exactly once, even when every track for that layer is set to `"keep"`.

### The entry and exit animations overlap

Ask the AI to finish the entry before the exit starts. Both ranges must also remain inside that layer's `timeWindowSeconds`.

### The JSON is valid but shows no changes

The response preserved the current values or recommended the settings already on the timeline. Adjust your direction and copy a fresh prompt if you want a different result.

> **Warning:** Always preview the complete banner before exporting. JSON validation confirms that the plan is structurally safe and compatible with the current timeline, but the creative result still needs a visual review.

---

---
url: "/bannerify/animation/ai-prompt-animations.md"
description: "Generate Bannerify-ready JSON animations, then paste them into the Bannerify custom animations panel in Figma."
---

# Creating AI prompt JSON animations

> Generate Bannerify-ready JSON animations, then paste them into the Bannerify custom animations panel in Figma.

### Video Tutorial: Animate and export banners to HTML from Figma

This video walks through how to animate and export production-ready HTML banners from Figma in seconds.
[Embedded media](https://www.youtube.com/embed/WDYRd9cSJcs)

## Generate your animation JSON on bannerify.hypermatic.com

[Video](/assets/videos/bannerify/animation/ai-prompt-animations.mp4)

1. Open [https://bannerify.hypermatic.com](https://bannerify.hypermatic.com).
2. In the **Create Your Custom Bannerify Animation** section, describe the animation you want (for example: "Elastic slide in from left with slight rotation").
3. Click **Copy Prompt to Clipboard** and paste it into ChatGPT or Claude, or click **Open Prompt in ChatGPT** / **Open Prompt in Claude**.
4. Then copy the generated animation JSON snippet.
5. Open your Figma file and run the Bannerify plugin.
6. Open the **Custom Animations** panel in Bannerify.
7. Paste the JSON into the text area labeled **Paste generated JSON code here**.
8. Confirm the animation appears in your timeline animation preset dropdowns.

The animation auto-saves on paste and can be selected like any other preset from the layer timeline animation menus.

> **Warning:** Custom animations are saved in your current Figma file. If you switch to a different Figma file, you will need to paste the JSON there again.

---

---
url: "/bannerify/animation/animating-banners.md"
description: "After you've loaded your Figma frames into Bannerify, you can apply animations to any layer in your banners by using the timeline features inside the plugin."
---

# Animating your banners

> After you've loaded your Figma frames into Bannerify, you can apply animations to any layer in your banners by using the timeline features inside the plugin.

### Video Tutorial: Animate and export banners to HTML from Figma

This video walks through how to animate and export production-ready HTML banners from Figma in seconds.
[Embedded media](https://www.youtube.com/embed/-TA088FNulA)

## Selecting animations

[Video](/assets/videos/bannerify/animation/select-animations.mp4)

Bannerify comes with dozens of pre-defined keyframe based animations, which are grouped into 5 categories:

- Entrances
- Exits
- Basic Transforms
- Attention Seekers
- Background Pans

To set an **entry animation**, hover over the layer you would like to animate in the Bannerify timeline and click on the **top select box**. Scroll through the list of animations and **click** on an animation name to apply it to your layer. You'll see the banner preview update instantly with the new animation applied.

> **Tip:** **Removing animations from a layer**. If you don't want a layer to have any animations, you can either select the **No Entry Animation** and/or **No Exit Animation**, or alternatively, you can rename any Figma layer with the prefix **locked-** (for example, _locked-RectangleBackground_), which will also ensure no animations are added, and will disable the animations select box in the plugin timeline, too.

## Previewing your banner animations in the timeline

[Video](/assets/videos/bannerify/animation/preview-banner.mp4)

You can preview your animations in your banners by clicking the **Play** icon button, and pause the timeline at any point by clicking the **Pause** icon button. You can also restart the animation playback from the beginning by clicking the **Restart** icon button.

To jump to a certain part of the timeline, you can click on any point in the timeline **Seconds** header on any banner, or you can click and drag your mouse left and right to scrub through the timeline that way, too.

## Adjusting the timeline length

[Video](/assets/videos/bannerify/animation/adjusting-timeline.mp4)

You can adjust the length of the entire timeline itself for all of your banners by clicking the **Timeline** select box in the Bannerify header; selecting a length (with options from 3 seconds to 3 minutes) will automatically extend or shrink the Bannerify timeline for all of your banners. Bannerify will do its best to update your existing animations if they previously extended beyond a new shorter timeline, and vice-versa.

> **Warning:** **You can't automatically undo timeline length updates**. Selecting a new timeline length will apply the changes to the timelines across all of your banners. You will need to manually update your timeline animations again if you change your mind. With this in mind, it's usually worth setting your timeline length **before** starting to work on your animations.

## Adding exit animations

[Video](/assets/videos/bannerify/animation/exit-animation.mp4)

Adding **exit animations** works the same way as adding entry animations; instead of clicking the top select box, you can click on the **bottom select box** to select an exit animation for your layer.

> **Note:** Please ensure that any exit animation set on a layer **is set to begin _after_ the "entry" animation ends**, otherwise this will cause issues with both animations overlapping and having conflicting transitions at the same.

## Adjusting animation speeds and timings

[Video](/assets/videos/bannerify/animation/adjust-speed.mp4)

You can adjust the speed and delay of your animations by **clicking down** on the left/right **edges** of the timeline bar for your layer, then **holding and dragging** with your mouse to adjust the length of your animation and it's start/end point.

You can shift the location of your animation on the timeline by **clicking down** on the **middle** of the timeline bar for your layer, then **holding and dragging** with your mouse; moving it either left or right to change where it is placed in your timeline.

> **Tip:** **Use your keyboard to input precise timing numbers**. If you'd prefer not to use the timeline slider, you can also set your speed and delay values by clicking the second value in your timeline layer, and entering a new number with your keyboard (for example, *1.5*) to set the amount of seconds.

## Looping animations

[Video](/assets/videos/bannerify/animation/loop-animation.mp4)

If you have an animation on a specific layer that you would like to repeat infinitely (even after the banner timeline has finished), you can enable the **Loop** toggle next to the animation you've selected. This can be handy for very short animations that lend themselves to a looped playback (for example, "Heartbeart", "Flicker" or "Pulse").

## Copy/pasting animations

[Video](/assets/videos/bannerify/animation/copy-paste.mp4)

You can quickly copy an animation from one timeline layer to another by using the **Copy** and **Paste** buttons. Clicking the **Copy** button will copy the animation, which can then be pasted by clicking the **Paste** button on any other layer.

> **Tip:** **Pasting a copied animation to multiple layers** You can also apply your copied animation in bulk to multiple layers by using the [bulk apply](/bannerify/animation/animating-banners#applying-bulk-animations) feature.

## Applying bulk animations

[Video](/assets/videos/bannerify/animation/bulk-animations.mp4)

To quickly apply an animation to multiple layers at the same time, select some layers using the checkboxes next to each layer name (or use **Quick Select Layers** feature), then set your animation in the slide-up area at the bottom of the plugin window. Once you're happy with your animation, click the **Apply animations to layers** button to apply the new animation to all of the selected layers.

## Quick selecting similar layers

[Video](/assets/videos/bannerify/animation/quick-select.mp4)

If you're working with a banner set that contains multiple banners with the same elements or layers, you can use the **Quick Select Layers** select box in the Bannerify header to automatically select similar layers across all of your banners. This can be a great alternative to manually checking each layer.

> **Tip:** **Example of using Quick Select Layers** For example, if all of your banners contain a layer called **CTA Button**, you can click on that option to automatically check all the **CTA Button** layers for you. This will then allow you to **bulk apply** animations to that layer across all of your banners at the same time.

## Using magic delays and magic speeds

[Video](/assets/videos/bannerify/animation/magic-timeline.mp4)

The **Magic Delay** and **Magic Speed** select boxes in the Bannerify header allow you to automatically apply timings to _all_ of your layers, across _all_ of your banners with **one click**.

### Magic Delays
If you want _all_ of your layers in _all_ of your banners to have a **staggered delay** offset, you can click on the **Magic Delay** select box in the Bannerify header; selecting a delay (from 0.1 seconds to 0.5 seconds) will automatically apply that staggered delay to every layer's timeline in Bannerify for each banner.

### Magic Speeds
If you want _all_ of your layers in _all_ of your banners to be **the same speed**, you can click on the **Magic Speed** select box in the Bannerify header; selecting a speed (from 0.1 seconds to 1 second) will automatically apply that speed to every layer's timeline in Bannerify for each banner.

> **Warning:** **You can't automatically undo magic speeds/delays**. Selecting a magic speed or delay option will apply the changes to the timelines across all of your banners. You will need to manually reset them again if you change your mind.

---

---
url: "/bannerify/animation/animation-easing.md"
description: "Choose easing curves to control the timing of your custom animations."
---

# Setting the animation easing

> Choose easing curves to control the timing of your custom animations.

### Video Tutorial: Add custom animations to your Figma banner designs

This video walks through how to add custom keyframe animations to your banners using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/Js4uSQ855uo)

[Video](/assets/videos/bannerify/animation/changing-easing.mp4)

You can choose what kind of easing you need your animation to have by choosing an option from the **Animation Easing** select box. Easing is automatically applied to your entire timeline, and will update the **Live Preview** area so you can see how your selected easing changes how your keyframe animation moves.

You can choose from the following easing options:

- Ease (Default)
- Linear
- Ease In
- Ease Out
- Ease In Out
- Cubic Bezier

### Setting a custom Cubic Bezier easing value

### Video Tutorial: Add cubic bezier easing to banner animations in Figma

This video walks through how to add custom cubic-bezier easing to banner animations in Figma using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/uS2TRRQiYzw)

If you select the **Cubic Bezier** easing option, you need to paste in a valid CSS cubic-bezier value (for example, `cubic-bezier(0.65,0.05,0.36,1);`). You can generate a custom cubic beizer curve, by using a site like [https://easings.co/](https://easings.co/), or any other website service that you prefer to help to generate custom CSS cubic-bezier curves.

---

---
url: "/bannerify/animation/animation-origin-point.md"
description: "Control the pivot point for your custom animations."
---

# Setting the animation origin point

> Control the pivot point for your custom animations.

### Video Tutorial: Add custom animations to your Figma banner designs

This video walks through how to add custom keyframe animations to your banners using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/Js4uSQ855uo)

[Video](/assets/videos/bannerify/animation/origin-point.mp4)

By default, the origin for all of your custom animation will be set to `Center` and `Center` for the X/Y axis, but you can customize these by clicking the **Animation Origin Point** select input options, where you can set `Top`, `Center` or `Bottom` for the vertical axis, and `Left`, `Center` or `Right` for the horizontal axis.

Changing the animation origin will affect where the animation is "pinned" for the layer. For example, setting the origin to `Top` and `Left` would become the point for your layer at which a rotation animation is hinged on, or the point of your layer that could be scaled in/out from and to.

---

---
url: "/bannerify/animation/animation-speed-timing.md"
description: "Fine-tune the speed, duration, and delay of your animations."
---

# Adjusting animation speeds and timings

> Fine-tune the speed, duration, and delay of your animations.

[Video](/assets/videos/bannerify/animation/adjust-speed.mp4)

You can adjust the speed and delay of your animations by **clicking down** on the left/right **edges** of the timeline bar for your layer, then **holding and dragging** with your mouse to adjust the length of your animation and it's start/end point.

You can shift the location of your animation on the timeline by **clicking down** on the **middle** of the timeline bar for your layer, then **holding and dragging** with your mouse; moving it either left or right to change where it is placed in your timeline.

> **Tip:** **Use your keyboard to input precise timing numbers**. If you'd prefer not to use the timeline slider, you can also set your speed and delay values by clicking the second value in your timeline layer, and entering a new number with your keyboard (for example, *1.5*) to set the amount of seconds.

### Adjust timings on multiple layers

Select two or more layers, then drag the entry, exit, or hover timing bar on one of the selected layers. Bannerify applies the same movement to the matching active timing track on the other selected layers while preserving their relative offsets.

If the earliest or latest selected timing reaches the edge of the timeline, Bannerify stops the group at that boundary. Locked layers, inactive timing tracks, and entry timings controlled by mirrored Figma Motion animations are left unchanged.

Each completed drag is saved as one [undoable history step](/bannerify/animation/undo-redo).

---

---
url: "/bannerify/animation/bulk-animations.md"
description: "Apply the same animation to multiple layers at once."
---

# Applying bulk animations

> Apply the same animation to multiple layers at once.

[Video](/assets/videos/bannerify/animation/bulk-animations.mp4)

To quickly apply an animation to multiple layers at the same time, select some layers using the checkboxes next to each layer name (or use the **Quick Select Layers** menu), then set your animation in the slide-up area at the bottom of the plugin window. Once you're happy with your animation, click the **Apply animations to layers** button to apply the new animation to all of the selected layers.

Your layer selection stays active after applying animations or layer settings, so you can make several related changes without selecting the same layers again. Hide the batch actions panel when you need more room to work on the timeline, then use **Show Batch Actions** to reopen it without losing the selection. Use **Clear** or press Esc when you are finished.

You can also drag an entry, exit, or hover timing bar on any selected layer to adjust that timing track on the other compatible selected layers. Bannerify preserves the layers' relative timing offsets and keeps the group within the timeline bounds.

> **Tip:** You can [undo or redo timeline changes](/bannerify/animation/undo-redo) if a batch change does not look right.

---

---
url: "/bannerify/animation/copy-paste-animations.md"
description: "Quickly duplicate animations from one layer to another."
---

# Copy/pasting animations

> Quickly duplicate animations from one layer to another.

[Video](/assets/videos/bannerify/animation/copy-paste.mp4)

You can quickly copy an animation from one timeline layer to another by using the **Copy** and **Paste** buttons. Clicking the **Copy** button will copy the animation, which can then be pasted by clicking the **Paste** button on any other layer.

> **Tip:** **Pasting a copied animation to multiple layers** You can also apply your copied animation in bulk to multiple layers by using the [bulk apply](/bannerify/animation/bulk-animations) feature.

---

---
url: "/bannerify/animation/copy-paste-keyframe-properties.md"
description: "Duplicate properties from one keyframe to another."
---

# Copying and pasting keyframe properties

> Duplicate properties from one keyframe to another.

### Video Tutorial: Add custom animations to your Figma banner designs

This video walks through how to add custom keyframe animations to your banners using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/Js4uSQ855uo)

[Video](/assets/videos/bannerify/animation/copy-paste-keyframe.mp4)

You can copy/paste properties from one keyframe to another by first selecting the keyframe you would like to copy the properties from, clicking the **Copy Properties** button, then selecting the keyframe you would like to paste the copied properties to, then clicking the **Paste Properties** button to paste the copied properties onto the selected keyframe.

> **Note:** **Copied properties are only available until the panel is closed**. You can copy and paste properties from/to any keyframes in your animations while the custom animations panel is open, any copied properties will be not be available to paste after you close the custom animations panel.

---

---
url: "/bannerify/animation/creating-keyframes.md"
description: "Add and manage keyframes on your custom animation timeline."
---

# Creating custom animation keyframes

> Add and manage keyframes on your custom animation timeline.

### Video Tutorial: Add custom animations to your Figma banner designs

This video walks through how to add custom keyframe animations to your banners using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/Js4uSQ855uo)

[Video](/assets/videos/bannerify/animation/keyframes.mp4)

When you open the animations panel, you'll see 2 keyframes; the first keyframe (0%) and the final keyframe (100%). These are added by default and can't be removed, as a keyframe animation needs at least one frame to start the animation from and a keyframe to show where it ends.

### Selecting a keyframe to edit

You can instantly swap between any keyframes by clicking a keyframe under the **Animation Timeline** near the top of the custom animations panel. Clicking a keyframe will allow you to edit the properties for that specific keyframe.

### Inserting new keyframes

To add a keyframe between the default start and end points, enter its percentage (for example, **50**) and select **Insert New Keyframe**.

Any new keyframe that you add will automatically be created with the same properties that your currently selected keyframe contains; this lets you Adjust properties based on other keyframes you've already added. Your newly added keyframe will also be automatically selected after you click the **Insert New Keyframe** button.

---

---
url: "/bannerify/animation/custom-keyframes.md"
description: "If you need a specific animation that isn't available in the animation presets included in Bannerify, you can create your own custom timeline animation by adding custom keyframes with your own X, Y, Scale, Rotation and Opacity properties."
---

# Creating custom keyframe animations

> If you need a specific animation that isn't available in the animation presets included in Bannerify, you can create your own custom timeline animation by adding custom keyframes with your own X, Y, Scale, Rotation and Opacity properties.

### Video Tutorial: Add custom animations to your Figma banner designs

This video walks through how to add custom keyframe animations to your banners using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/Js4uSQ855uo)

## Opening the custom animations panel

[Video](/assets/videos/bannerify/animation/opening-panel.mp4)

To open the custom animations panel, click on the **Custom Animations** button in the main Bannerify header. This will open up the custom animation panel, where you'll be able to start adding your own keyframe animation.

## Creating custom animation keyframes

[Video](/assets/videos/bannerify/animation/keyframes.mp4)

When you open the animations panel, you'll see 2 keyframes; the first keyframe (0%) and the final keyframe (100%). These are added by default and can't be removed, as a keyframe animation needs at least one frame to start the animation from and a keyframe to show where it ends.

### Selecting a keyframe to edit

You can instantly swap between any keyframes by clicking a keyframe under the **Animation Timeline** near the top of the custom animations panel. Clicking a keyframe will allow you to edit the properties for that specific keyframe.

### Inserting new keyframes

To add a keyframe between the default start and end points, enter its percentage (for example, **50**) and select **Insert New Keyframe**.

Any new keyframe that you add will automatically be created with the same properties that your currently selected keyframe contains; this lets you Adjust properties based on other keyframes you've already added. Your newly added keyframe will also be automatically selected after you click the **Insert New Keyframe** button.

## Editing keyframe properties

[Video](/assets/videos/bannerify/animation/editing-properties.mp4)

You can edit 5 different properties for any of your animation keyframes. Any differences in properties between your keyframes will automatically be animated. For example, setting scale to 2x on the 0% keyframe, and setting scale to 1x on the 100% keyframe will automatically create a "shrinking" animation.

- The **X** property will animate your element's left/right pixel position (in pixels).
- The **Y** property will animate your element's top/bottom pixel position (in pixels).
- The **Opacity** property will animate your element's transparency percentage.
- The **Rotate** property will animate your element's rotation degrees.
- The **Scale** property will animate your element's size.

### Using Percentage Based Relative X/Y Transforms

If you would prefer to set X/Y positioning based on the percentage of the animated element, you can enable the **Relative % Transforms** toggle in the keyframe properties panel, which will allow you to set a percentage value for your X/Y values (instead of pixels).

Applying a percentage X/Y transform value will automatically animate the element that the animation is applied to by using its position, and applying the percentage transform to that size. For example, setting a `10%` X transform value on a keyframe will animate a layer that's `100px` wide, by `10px`. Applying that same animation with a `10%` X transform value to a layer that's `200px` wide, will animate the layer by `20px`.

### Splitting Scale into X/Y Scale Options

If you would prefer to set the scale values for each X/Y axis individually, you can click the **Unlock Scaling** toggle in the keyframe properties panel, which will allow you to set the horizontal and vertical "Scale" values for your keyframes independently, rather than equally scaling them both for an even scale up or down animation.

This setting can be useful if you need to animate the width or height of a layer, without also affecting other X/Y axis at the same time.

## Using the live preview to see your animation

[Video](/assets/videos/bannerify/animation/live-preview-speeds.mp4)

To See how your animation is looking based on the keyframes and their properties that you've updated, you can look at the **Live Preview** area, which sits right next to your keyframe properties, and directly underneath the animation timeline. Any changes you make to your keyframes, properties or easing will automatically be shown in the live preview.

> **Tip:** **You can adjust the playback speed of the live preview**. If you want to see how your custom animation looks at different speeds, you can change the playback speed in the live preview by dragging the **Preview Speed** slider left and right to increase and decrease the playback speed.

## Copying and pasting keyframe properties

[Video](/assets/videos/bannerify/animation/copy-paste-keyframe.mp4)

You can copy/paste properties from one keyframe to another by first selecting the keyframe you would like to copy the properties from, clicking the **Copy Properties** button, then selecting the keyframe you would like to paste the copied properties to, then clicking the **Paste Properties** button to paste the copied properties onto the selected keyframe.

> **Note:** **Copied properties are only available until the panel is closed**. You can copy and paste properties from/to any keyframes in your animations while the custom animations panel is open, any copied properties will be not be available to paste after you close the custom animations panel.

## Deleting keyframes

[Video](/assets/videos/bannerify/animation/deleting-keyframe.mp4)

To delete an keyframe, click any keyframe under the **Animation Timeline** to select it, then click on the **Delete Keyframe** button to delete your keyframe from the timeline. Note, that you _can't_ delete the **0%** or **100%** keyframes, as these are default keyframes required for your animation timeline.

After you delete any keyframe, the **0%** keyframe will automatically be re-selected as the active keyframe to edit.

> **Warning:** **Deleting a keyframe animation will permanently delete it**. When you delete any of your keyframes, it will be permanently removed from your timeline and you won't be able to undo the deletion. However, you are able to **Copy Properties** of a keyframe, delete it, then paste your deleted properties in a different keyframe while you're still editing your animation timeline.

## Setting the animation easing

[Video](/assets/videos/bannerify/animation/changing-easing.mp4)

You can choose what kind of easing you need your animation to have by choosing an option from the **Animation Easing** select box. Easing is automatically applied to your entire timeline, and will update the **Live Preview** area so you can see how your selected easing changes how your keyframe animation moves.

You can choose from the following easing options:

- Ease (Default)
- Linear
- Ease In
- Ease Out
- Ease In Out
- Cubic Bezier

### Setting a custom Cubic Bezier easing value

### Video Tutorial: Add cubic bezier easing to banner animations in Figma

This video walks through how to add custom cubic-bezier easing to banner animations in Figma using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/uS2TRRQiYzw)

If you select the **Cubic Bezier** easing option, you need to paste in a valid CSS cubic-bezier value (for example, `cubic-bezier(0.65,0.05,0.36,1);`). You can generate a custom cubic beizer curve, by using a site like [https://easings.co/](https://easings.co/), or any other website service that you prefer to help to generate custom CSS cubic-bezier curves.

## Setting the animation origin point

[Video](/assets/videos/bannerify/animation/origin-point.mp4)

By default, the origin for all of your custom animation will be set to `Center` and `Center` for the X/Y axis, but you can customize these by clicking the **Animation Origin Point** select input options, where you can set `Top`, `Center` or `Bottom` for the vertical axis, and `Left`, `Center` or `Right` for the horizontal axis.

Changing the animation origin will affect where the animation is "pinned" for the layer. For example, setting the origin to `Top` and `Left` would become the point for your layer at which a rotation animation is hinged on, or the point of your layer that could be scaled in/out from and to.

## Saving your new custom animation

[Video](/assets/videos/bannerify/animation/adding-new-animation.mp4)

To save your new animation, give your animation a name by filling in the **New Custom Animation Name** input text field, then click the **Add New Animation**

> **Note:** **Custom animations will only be saved/available to the current Figma file**. Saving an animation makes it available to any _page_ inside your _current_ Figma file. However, your saved animations _won't_ show up if you run Bannerify inside a completely different/new Figma file, as the animations are saved directly to the Figma file and can't be transferred to another file. You will need to re-create any new animations in any new Figma files. Alternatively, you could setup a new _page_ in the _current_ Figma file, where your saved custom animations from this Figma file will still be available to use.

## Using your saved custom animations

[Video](/assets/videos/bannerify/animation/using-custom-animation.mp4)

Once you've saved at least one custom animation, you can use them in your banners by clicking the **entry animations** and **exit animations** select boxes in your layers timelines; you will see a new group in the select box options called **Custom Animations**, where you'll be able to see all of the custom animations that you've saved.

> **Tip:** **Bulk applying custom animations** As with other preset animations, you can also apply your custom animation in bulk by using the [bulk apply](/bannerify/animation/animating-banners#applying-bulk-animations) feature.

## Updating your saved animations

[Video](/assets/videos/bannerify/animation/update-saved-keyframes.mp4)

To update a custom animation that you've previously saved, choose the animation you'd like to update from the **Your Saved Animations** select box; this will load up your saved animation and its keyframes into the custom animation panel.

Once you've chosen the saved animation, you can edit your keyframes and properties as needed. Once you're happy with the updates, click the **Update Saved Animations** button to save the changes and _override_ the previous animation keyframes.

Note, updating a saved animation will automatically apply the updated keyframes to any layers in your banners that was already using the custom animation you've just updated.

> **Tip:** **Create a new animation based on a saved animation**. If you want to load in a saved animation and modify it, but not "override" the saved version, you can create a new animation from it by entering in a **New Custom Animation Name** and clicking the **Add New Animation** button.

## Deleting your saved animations

[Video](/assets/videos/bannerify/animation/deleting-animation.mp4)

To delete an animation, select any option under **Your Saved Animations** to load in the animation, then click on the **Delete Saved Animation** button to delete your saved animation.

> **Warning:** **Deleting a saved animation will permanently delete it and remove it from your layers**. When you delete any of your saved animations, it will be permanently removed from **Your Saved Animations** list. Any layers in your banners that were using the deleted custom animation will be changed back to having **no animation** applied.

---

---
url: "/bannerify/animation/deleting-keyframes.md"
description: "Remove keyframes from your custom animation timeline."
---

# Deleting keyframes

> Remove keyframes from your custom animation timeline.

### Video Tutorial: Add custom animations to your Figma banner designs

This video walks through how to add custom keyframe animations to your banners using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/Js4uSQ855uo)

[Video](/assets/videos/bannerify/animation/deleting-keyframe.mp4)

To delete an keyframe, click any keyframe under the **Animation Timeline** to select it, then click on the **Delete Keyframe** button to delete your keyframe from the timeline. Note, that you _can't_ delete the **0%** or **100%** keyframes, as these are default keyframes required for your animation timeline.

After you delete any keyframe, the **0%** keyframe will automatically be re-selected as the active keyframe to edit.

> **Warning:** **Deleting a keyframe animation will permanently delete it**. When you delete any of your keyframes, it will be permanently removed from your timeline and you won't be able to undo the deletion. However, you are able to **Copy Properties** of a keyframe, delete it, then paste your deleted properties in a different keyframe while you're still editing your animation timeline.

---

---
url: "/bannerify/animation/deleting-saved-animations.md"
description: "Remove custom animations you no longer need."
---

# Deleting your saved animations

> Remove custom animations you no longer need.

### Video Tutorial: Add custom animations to your Figma banner designs

This video walks through how to add custom keyframe animations to your banners using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/Js4uSQ855uo)

[Video](/assets/videos/bannerify/animation/deleting-animation.mp4)

To delete an animation, select any option under **Your Saved Animations** to load in the animation, then click on the **Delete Saved Animation** button to delete your saved animation.

> **Warning:** **Deleting a saved animation will permanently delete it and remove it from your layers**. When you delete any of your saved animations, it will be permanently removed from **Your Saved Animations** list. Any layers in your banners that were using the deleted custom animation will be changed back to having **no animation** applied.

---

---
url: "/bannerify/animation/editing-keyframe-properties.md"
description: "Customize X, Y, Scale, Rotation, and Opacity properties for your keyframes."
---

# Editing keyframe properties

> Customize X, Y, Scale, Rotation, and Opacity properties for your keyframes.

### Video Tutorial: Add custom animations to your Figma banner designs

This video walks through how to add custom keyframe animations to your banners using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/Js4uSQ855uo)

[Video](/assets/videos/bannerify/animation/editing-properties.mp4)

You can edit 5 different properties for any of your animation keyframes. Any differences in properties between your keyframes will automatically be animated. For example, setting scale to 2x on the 0% keyframe, and setting scale to 1x on the 100% keyframe will automatically create a "shrinking" animation.

- The **X** property will animate your element's left/right pixel position (in pixels).
- The **Y** property will animate your element's top/bottom pixel position (in pixels).
- The **Opacity** property will animate your element's transparency percentage.
- The **Rotate** property will animate your element's rotation degrees.
- The **Scale** property will animate your element's size.

### Using Percentage Based Relative X/Y Transforms

If you would prefer to set X/Y positioning based on the percentage of the animated element, you can enable the **Relative % Transforms** toggle in the keyframe properties panel, which will allow you to set a percentage value for your X/Y values (instead of pixels).

Applying a percentage X/Y transform value will automatically animate the element that the animation is applied to by using its position, and applying the percentage transform to that size. For example, setting a `10%` X transform value on a keyframe will animate a layer that's `100px` wide, by `10px`. Applying that same animation with a `10%` X transform value to a layer that's `200px` wide, will animate the layer by `20px`.

### Splitting Scale into X/Y Scale Options

If you would prefer to set the scale values for each X/Y axis individually, you can click the **Unlock Scaling** toggle in the keyframe properties panel, which will allow you to set the horizontal and vertical "Scale" values for your keyframes independently, rather than equally scaling them both for an even scale up or down animation.

This setting can be useful if you need to animate the width or height of a layer, without also affecting other X/Y axis at the same time.

---

---
url: "/bannerify/animation/exit-animations.md"
description: "Apply exit animations to layers that animate out of view."
---

# Adding exit animations

> Apply exit animations to layers that animate out of view.

---

---
url: "/bannerify/animation/figma-motion.md"
description: "Opt in to detected Figma Motion keyframes and control how their properties, timing, and easing are reproduced in Bannerify."
---

# Using Figma Motion animations

> Opt in to detected Figma Motion keyframes and control how their properties, timing, and easing are reproduced in Bannerify.

[Video](/assets/videos/bannerify/animation/bannerify-figma-motion.mp4)

### Video Tutorial: Export animated Figma Motion banners to HTML, MP4 video, or GIF

[Embedded media](https://www.youtube.com/embed/QKvJ2YVTUyU)

Bannerify can detect supported animations created with Figma Motion and make them available as a **Figma Motion** entry animation. You decide which layers use it, just like any other Bannerify animation.

Detection never replaces an existing Bannerify entry animation automatically. Apply Figma Motion to individual layers or use Bannerify's existing batch layer actions to apply it to several layers at once.

> **Warning:** **Figma Motion is currently a Beta API.** Figma may change its Motion data model while the API is in beta. See the [Figma Motion API documentation](https://developers.figma.com/docs/plugins/api/figma-motion/) for Figma's current API status.

## Before you start

- Add a Motion animation to a layer inside your banner frame in Figma.
- Make sure the layer appears in the Bannerify timeline. If it is inside a group, component, or other layer, [include the nested layer first](/bannerify/design/nested).
- Load or refresh the banner in Bannerify after changing Motion keyframes in Figma.

## Apply detected Motion in one click

When Bannerify finds supported Motion on layers that are not using it yet, a **Figma Motion detected** message appears above the banner timelines.

Click **Apply to All Banners (_n_ Layers)** to apply each eligible layer's own supported Motion tracks across every banner frame currently loaded in Bannerify. The count includes all eligible Motion layers across the loaded timelines. Bannerify also enables **Mirror Figma Motion Timings** so the native offsets are used immediately. Existing exit and hover animations are unchanged, and you can turn mirroring off afterward to restore editable Bannerify timing ranges.

## Apply Figma Motion to several layers

1. Open the banner frame in Bannerify and refresh it if needed.
2. Select the checkboxes for the layers you want to update, or use **Quick Select Layers**.
3. In **Batch Layer Actions**, open the **Entry** animation menu.
4. Choose **Apply Each Layer's Figma Motion** from the **Figma Motion** group.
5. Set the Bannerify entry timing you want and click **Apply Animations to Selected Layers**.

Bannerify applies each layer's own detected Motion keyframes. If your selection also contains layers without supported Motion values, those layers keep their current entry animation and Bannerify shows how many selected layers are eligible before you apply.

## Apply Figma Motion to one layer

1. Find the animated layer in the Bannerify timeline.
2. Open its **Entry Animation** menu.
3. Select the detected animation from the **Figma Motion** group.

Bannerify combines all supported Motion tracks on the layer into a single entry animation. For example, position, opacity, scale, and rotation can animate together while keeping their own keyframes and easing.

## Mirror the Figma Motion timeline

After at least one layer is using its Figma Motion entry animation, Bannerify shows **Mirror Figma Motion Timings** above the timeline. The label includes the number of Motion layers it will update, such as **Mirror Figma Motion Timings (5 Layers)**.

- The one-click **Apply to All Banners** action enables it automatically.
- Leave it off to position or resize Motion animation bars using normal Bannerify timing controls.
- Turn it on to use each selected Motion animation's native Figma start and end offsets. Bannerify also adjusts the overall timeline to fit the longest selected Motion timeline.
- Turn it off again to restore the editable Bannerify timing ranges you were using before mirroring.

The Mirror toggle itself only synchronizes timeline timing. It does not apply Figma Motion to additional layers or replace any other entry animations. The one-click action applies eligible layers before enabling it; for a more selective opt-in, use the per-layer or batch workflow and then control mirroring separately.

> **Tip:** **For banners that are already animated in Figma**, use **Apply to All Banners** for the closest match to Figma's native timeline in one step. Bannerify applies every eligible loaded layer and enables **Mirror Figma Motion Timings** automatically. Its overall timeline setting uses whole seconds, so the longest native timeline is rounded up to the next whole second when needed.

You can still add a separate Bannerify exit animation. For a clean handoff, place the exit animation after the Figma Motion entry animation ends.

## Supported Motion properties

Bannerify currently reproduces these native Motion properties:

- Position on the X and Y axes
- Opacity
- Scale on the X and Y axes
- Rotation

Each property keeps its own keyframes, timing, and easing inside the combined Bannerify animation. Bannerify converts supported cubic-bezier and spring easing into the format used by its preview and exports. Very small visual differences can occur, especially with spring motion.

If an animation mixes supported and unsupported properties, Bannerify reproduces the supported properties and identifies the properties it cannot currently export. A layer with no supported Motion properties will not show a **Figma Motion** option.

The timeline notice identifies unsupported properties, including size, corner radius, auto layout spacing and padding, stroke or border weight, path trim, fills, strokes, or effects. The listed properties will not be animated in the exported file.

## Refresh after editing in Figma

After changing a Motion animation in Figma, click **Refresh All Banners** in Bannerify, or use **Refresh Banner Layers** for the affected banner. Bannerify detects the latest keyframes. Layers already using Figma Motion stay opted in, while newly animated layers remain unchanged until you apply Figma Motion to them.

## Preview and export

Figma Motion animations work with Bannerify's Play and Replay controls and can be scrubbed at any point in the timeline. They are also included when exporting to:

- CSS or GSAP HTML
- GIF
- MP4

Before exporting, review the **Figma Motion detected** notice above the timeline. It identifies when:

- Supported Motion was detected but has not been applied as the layer's Bannerify entry animation.
- A Motion layer contains properties Bannerify does not currently export.
- A Motion layer contains only unsupported properties and cannot be applied yet.

You can apply all supported, unapplied Motion directly from the timeline notice.

## Troubleshooting

### Some Figma Motion animations are missing from the export

1. Check the **Figma Motion detected** notice above the timeline for unapplied layers.
2. Click **Apply to All Banners**, or select Figma Motion from each affected layer's **Entry Animation** menu.
3. Review any unsupported property names listed in the warning.
4. Expand nested animated layers into the Bannerify timeline, then refresh the banner.
5. Confirm **Mirror Figma Motion Timings** remains enabled if the exported offsets should match Figma's Motion timeline.

### Figma Motion does not appear in the animation menu

- Check that the layer has at least one supported Motion property.
- If the layer is nested, make sure it is included in the Bannerify timeline.
- Refresh the banner after adding or editing the Motion animation in Figma.
- For batch actions, make sure the current selection contains at least one layer with detected Motion values.

### The timing does not match Figma Motion

First apply Figma Motion to the layers you want to use. Then enable **Mirror Figma Motion Timings** above the timeline to use their native start and end offsets instead of the custom Bannerify animation-bar positions.

### The animation looks slightly different

Check that every animated property is supported. Cubic-bezier easing is reproduced directly where possible, while spring and independently eased tracks are converted for Bannerify's preview and export formats and may have very small differences.

---

---
url: "/bannerify/animation/hover.md"
description: "You can add animated hover states to any layer in your Bannerify timeline, which will be included in any HTML exports from the plugin."
---

# Adding hover animation states to layers

> You can add animated hover states to any layer in your Bannerify timeline, which will be included in any HTML exports from the plugin.

### Video Tutorial: Add hover animations to your Figma banner designs

This video walks through how to add hover animations to your banners using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/dOdeG78NlSw)

[Video](/assets/videos/bannerify/animation/hovers.mp4)

You can add a hover animation state (for HTML exports) to any layer in your timeline by clicking the **Add Hover** toggle, and then selecting a hover animation from the revealed drop down selector. You can set the animation to repeat by enabling the **Loop** toggle, and you can adjust the speed of the hover animation by dragging the speed slider next to it.

To preview how the animation looks, you can hover over the layer with your mouse in the Bannerify preview window.

> **Tip:** **Applying a hover animation to multiple layers**. You can also apply a hover animation in bulk to multiple layers by using the [bulk apply](/bannerify/animation/animating-banners#applying-bulk-animations) feature.

## Adding transitional hover states

[Video](/assets/videos/bannerify/animation/button-hovers.mp4)

If you want to transition between two different states (for example, hovering over a CTA button and changing its colors), you can do that by creating your "hover" state layer and placing it above your original layer and applying the entry hover state to ensure it transitions in whenever that element is hovered over.

---

---
url: "/bannerify/animation/live-preview.md"
description: "See your custom animation in real-time as you adjust keyframes and properties."
---

# Using the live preview

> See your custom animation in real-time as you adjust keyframes and properties.

### Video Tutorial: Add custom animations to your Figma banner designs

This video walks through how to add custom keyframe animations to your banners using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/Js4uSQ855uo)

[Video](/assets/videos/bannerify/animation/live-preview-speeds.mp4)

To See how your animation is looking based on the keyframes and their properties that you've updated, you can look at the **Live Preview** area, which sits right next to your keyframe properties, and directly underneath the animation timeline. Any changes you make to your keyframes, properties or easing will automatically be shown in the live preview.

> **Tip:** **You can adjust the playback speed of the live preview**. If you want to see how your custom animation looks at different speeds, you can change the playback speed in the live preview by dragging the **Preview Speed** slider left and right to increase and decrease the playback speed.

---

---
url: "/bannerify/animation/looping-animations.md"
description: "Make animations repeat infinitely on specific layers."
---

# Looping animations

> Make animations repeat infinitely on specific layers.

[Video](/assets/videos/bannerify/animation/loop-animation.mp4)

If you have an animation on a specific layer that you would like to repeat infinitely (even after the banner timeline has finished), you can enable the **Loop** toggle next to the animation you've selected. This can be handy for very short animations that lend themselves to a looped playback (for example, "Heartbeart", "Flicker" or "Pulse").

---

---
url: "/bannerify/animation/magic-delays-speeds.md"
description: "Automatically apply timing offsets and speeds to all layers across all banners."
---

# Using magic delays and magic speeds

> Automatically apply timing offsets and speeds to all layers across all banners.

[Video](/assets/videos/bannerify/animation/magic-timeline.mp4)

The **Magic Delay** and **Magic Speed** select boxes in the Bannerify header allow you to automatically apply timings to _all_ of your layers, across _all_ of your banners with **one click**.

### Magic Delays
If you want _all_ of your layers in _all_ of your banners to have a **staggered delay** offset, you can click on the **Magic Delay** select box in the Bannerify header; selecting a delay (from 0.1 seconds to 0.5 seconds) will automatically apply that staggered delay to every layer's timeline in Bannerify for each banner.

### Magic Speeds
If you want _all_ of your layers in _all_ of your banners to be **the same speed**, you can click on the **Magic Speed** select box in the Bannerify header; selecting a speed (from 0.1 seconds to 1 second) will automatically apply that speed to every layer's timeline in Bannerify for each banner.

> **Tip:** Magic speed and delay changes are saved as a single history step. Use Bannerify's [undo action](/bannerify/animation/undo-redo) if you want to restore the previous timings.

---

---
url: "/bannerify/animation/opening-custom-panel.md"
description: "Access the custom animations panel to start creating your own keyframe animations."
---

# Opening the custom animations panel

> Access the custom animations panel to start creating your own keyframe animations.

### Video Tutorial: Add custom animations to your Figma banner designs

This video walks through how to add custom keyframe animations to your banners using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/Js4uSQ855uo)

[Video](/assets/videos/bannerify/animation/opening-panel.mp4)

To open the custom animations panel, click on the **Custom Animations** button in the main Bannerify header. This will open up the custom animation panel, where you'll be able to start adding your own keyframe animation.

---

---
url: "/bannerify/animation/previewing-animations.md"
description: "Preview and control your banner animations using the timeline playback controls."
---

# Previewing your banner animations in the timeline

> Preview and control your banner animations using the timeline playback controls.

[Video](/assets/videos/bannerify/animation/preview-banner.mp4)

You can preview your animations in your banners by clicking the **Play** icon button, and pause the timeline at any point by clicking the **Pause** icon button. You can also restart the animation playback from the beginning by clicking the **Restart** icon button.

To jump to a certain part of the timeline, you can click on any point in the timeline **Seconds** header on any banner, or you can click and drag your mouse left and right to scrub through the timeline that way, too.

---

---
url: "/bannerify/animation/quick-select-layers.md"
description: "Automatically select matching layers across all your banners."
---

# Quick selecting similar layers

> Automatically select matching layers across all your banners.

[Video](/assets/videos/bannerify/animation/quick-select.mp4)

If you're working with a banner set that contains multiple banners with the same elements or layers, you can use the **Quick Select Layers** menu in the Bannerify header to select similar layers across all of your banners. Search for a layer name, then use its checkbox to add or remove every match without closing the menu.

> **Tip:** **Example of using Quick Select Layers** For example, if all of your banners contain a layer called **CTA Button**, you can click on that option to automatically check all the **CTA Button** layers for you. This will then allow you to **bulk apply** animations to that layer across all of your banners at the same time.

Use **Select All** or **Clear** at the bottom of the menu to update the full selection. You can also build a selection directly in the timeline:

- Click a layer row to select only that layer.
- Hold Command on macOS or Ctrl on Windows while clicking to add or remove individual layers.
- Hold Shift while clicking to select a continuous range in the same banner or scene.

The batch actions panel also includes **Select Visible**, **Select Scene**, and **Invert** shortcuts. Select a layer in a scene before using **Select Scene**.

---

---
url: "/bannerify/animation/saving-custom-animation.md"
description: "Save your custom keyframe animation to use across your banners."
---

# Saving your new custom animation

> Save your custom keyframe animation to use across your banners.

### Video Tutorial: Add custom animations to your Figma banner designs

This video walks through how to add custom keyframe animations to your banners using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/Js4uSQ855uo)

[Video](/assets/videos/bannerify/animation/adding-new-animation.mp4)

To save your new animation, give your animation a name by filling in the **New Custom Animation Name** input text field, then click the **Add New Animation**

> **Note:** **Custom animations will only be saved/available to the current Figma file**. Saving an animation makes it available to any _page_ inside your _current_ Figma file. However, your saved animations _won't_ show up if you run Bannerify inside a completely different/new Figma file, as the animations are saved directly to the Figma file and can't be transferred to another file. You will need to re-create any new animations in any new Figma files. Alternatively, you could setup a new _page_ in the _current_ Figma file, where your saved custom animations from this Figma file will still be available to use.

---

---
url: "/bannerify/animation/selecting-animations.md"
description: "Choose from dozens of pre-defined keyframe based animations for your banner layers."
---

# Selecting animations

> Choose from dozens of pre-defined keyframe based animations for your banner layers.

### Video Tutorial: Animate and export banners to HTML from Figma

This video walks through how to animate and export production-ready HTML banners from Figma in seconds.
[Embedded media](https://www.youtube.com/embed/-TA088FNulA)

## Animations

Bannerify comes with dozens of pre-defined keyframe based animations, which are grouped into 5 categories:

- Entrances
- Exits
- Basic Transforms
- Attention Seekers
- Background Pans

> **Tip:** **Using Split Text animations**. Bannerify also includes a dedicated set of split character, word, and line animations for supported text layers. See [Split Text Animations](/bannerify/animation/split-text) for the setup steps, supported fonts, and current caveats.

> **Tip:** **Using native Figma Motion animations**. Choose a detected animation from the **Figma Motion** group on an individual layer, or choose **Apply Each Layer's Figma Motion** from the **Batch Layer Actions** entry menu. After Motion is applied to at least one layer, enable **Mirror Figma Motion Timings** above the timeline if you also want native Figma timing offsets. See [Using Figma Motion animations](/bannerify/animation/figma-motion) for the complete opt-in steps and supported properties.

> **Tip:** **Removing animations from a layer**. If you don't want a layer to have any animations, you can either select the **No Entry Animation** and/or **No Exit Animation**, or alternatively, you can rename any Figma layer with the prefix **locked-** (for example, _locked-RectangleBackground_), which will also ensure no animations are added, and will disable the animations select box in the plugin timeline, too.

## Adding entry animations

[Video](/assets/videos/bannerify/animation/select-animations.mp4)

To set an **entry animation**, hover over the layer you would like to animate in the Bannerify timeline and click on the **top select box**. Scroll through the list of animations and **click** on an animation name to apply it to your layer. You'll see the banner preview update instantly with the new animation applied.

## Adding exit animations

[Video](/assets/videos/bannerify/animation/exit-animation.mp4)

Adding **exit animations** works the same way as adding entry animations; instead of clicking the top select box, you can click on the **bottom select box** to select an exit animation for your layer.

> **Note:** Please ensure that any exit animation set on a layer **is set to begin _after_ the "entry" animation ends**, otherwise this will cause issues with both animations overlapping and having conflicting transitions at the same.

---

---
url: "/bannerify/animation/split-text.md"
description: "Animate text by characters, words, or lines in Bannerify, with the current setup steps, supported layer rules, and export caveats."
---

# Split text animations

> Animate text by characters, words, or lines in Bannerify, with the current setup steps, supported layer rules, and export caveats.

### Video Tutorial: Add split text animations to Figma banners

This video walks through how to add split text animations (by character, word, or line) to Figma banners using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/NrzaotL5IMw)

[Video](/assets/videos/bannerify/animation/bannerify-split-text.mp4)

## Using split text animations

Bannerify includes a dedicated set of **Split Text** animations for text layers. These let you animate text by **characters**, **words**, or **lines** instead of moving the whole layer as one block.

To apply one:

1. Add a normal Figma **text layer** to your banner.
2. Load the layer into your Bannerify timeline.
3. Click the **entry** or **exit** animation select box for that text layer.
4. Open the **Split Text (GSAP Only)** group.
5. Choose the split text animation you want.
6. Preview the result in Bannerify and adjust the timing if needed.

> **Tip:** For the cleanest final output, use [HTML / GSAP export](/bannerify/export/html) when you want Bannerify's dedicated split text runtime.

## Entry and exit pairing

You can use split text on the **entry animation**, the **exit animation**, or both.

- Entry and exit split text animations stay in the same order in the select lists so they are easy to pair.
- Exit labels are mirrored where possible, such as **Type On / Type Off**, **Rise / Fall**, and **Reveal / Conceal**.
- For best results, make sure your exit animation starts **after** the entry animation has finished.

## Supported text layers

Split text is only available when the selected layer can be safely prepared as rich HTML text.

Your text layer should be:

- a normal **text layer**
- using a **web-safe font**, **Google Font**, or a custom font with a direct **.woff** / **.woff2** URL added in Bannerify's custom fonts panel
- free from inline text links
- free from list formatting
- free from text format overrides
- not using Bannerify's scrollable text mode

If you change a supported layer back to an unsupported font or unsupported text setup later, Bannerify will keep the selected split text animation on the layer, but mark it as unavailable until the layer becomes eligible again.

## Custom font URLs

If your text layer uses a custom brand font that is not available as a web-safe font or Google Font, add a direct **.woff** or **.woff2** font file URL in Bannerify's custom fonts panel.

The URL must point directly to the font file itself, such as `https://example.com/fonts/client-font.woff2`. A normal font page, download page, CSS file, or ZIP file will not work in this field.

Bannerify detects the custom font styles used by Split Text layers and lists each font style once, so you can paste the URL for that font style instead of adding the same URL to every text layer.

To open the custom fonts panel:

1. Apply a Split Text animation to the custom-font text layer.
2. Click **Configure Fonts** in the warning under the banner preview, or hover over the text layer in the timeline and click **Fonts**.
3. Paste the direct **.woff** or **.woff2** URL for each listed font style.
4. Click **Done**, then preview or export again.

Bannerify uses those font URLs to render the Split Text preview, canvas/video exports, and HTML / GSAP exports. For HTML / GSAP exports, Bannerify also adds the matching `@font-face` rule automatically.

You can still choose Split Text animations on custom-font layers before adding the font URL. Bannerify will show a warning under the banner preview until a valid **.woff** or **.woff2** URL is added.

> **Note:** If you previously added a custom Split Text font URL directly on a text layer, Bannerify automatically moves that saved URL into the new custom fonts panel when you open it.

## When split text is unavailable

Bannerify will block split text on layers in any of these situations:

- the selected layer is not a text layer
- the layer has a **format override**
- **Scrollable Text** is enabled on that layer
- the text contains **inline links**
- the text is formatted as a **list**
- Bannerify cannot prepare the text layer for split text preview

When this happens, Bannerify will show the reason directly in the plugin UI instead of silently applying the animation.

If the only issue is a custom font with no valid **.woff** / **.woff2** URL, Bannerify lets you select the Split Text animation and shows a warning instead of hiding the option.

## Bulk apply, paste, and numpad shortcuts

Split text follows stricter rules than normal animations when you apply it to multiple layers at once.

- Every selected layer must be a **text layer**
- Every selected text layer must already be **eligible** for split text, or only need a custom **.woff** / **.woff2** font URL

This rule applies to:

- **Bulk apply**
- **Copy / paste animations**
- **Numpad shortcut apply** actions

If even one selected layer is unsupported, Bannerify will block that split text action and show a warning.

## Preview and export notes

Bannerify labels this group as **Split Text (GSAP Only)** because HTML / GSAP exports use Bannerify's dedicated split text runtime.

In current versions:

- Bannerify preview supports split text
- current canvas-rendered export paths can also render split text
- HTML / GSAP export is still the best option when you want the most faithful text-based split animation output

## Best results

- Use split text most often on short headlines, callouts, or compact copy.
- Keep intentional line breaks in mind, because line-based split animations follow the rendered text layout.
- Preview the animation at the final banner size before exporting.

---

---
url: "/bannerify/animation/static-end-frames.md"
description: "This feature works by automatically preventing your “exit” animation from playing, and keeping your layer in the final state of its “entry” animation for the rest of the time that your banner is visible after it finishes all its playback iterations."
---

# Keeping layers as a static end frame in HTML exports

> This feature works by automatically preventing your “exit” animation from playing, and keeping your layer in the final state of its “entry” animation for the rest of the time that your banner is visible after it finishes all its playback iterations.

[Video](/assets/videos/bannerify/animation/static-end-frame.mp4)

If some of your banner layers include entry/exit animations on a banner that is also set to only loop a certain number of times (rather than infinitely) in **HTML exports**, this can end up resulting in some of your exit animations making layers invisible after the final banner playback iteration.

To resolve this issue for this scenario, you can specify any layer in your banner's timeline to remain visible after your banner's final playback iteration.

You can optionally enable this setting by clicking any layer's **Settings** icon button in the main timeline to open the layer settings, and enabling the **Keep layer as static end frame (remove final exit animation)** toggle.

> **Tip:** **Bulk applying static layer settings** As with other layer settings, you can also apply your custom static end frame setting to layers in bulk by using the [bulk apply](/bannerify/animation/animating-banners#applying-bulk-animations) feature.

---

---
url: "/bannerify/animation/timeline-length.md"
description: "Change the duration of your banner timeline from 3 seconds to 3 minutes."
---

# Adjusting the timeline length

> Change the duration of your banner timeline from 3 seconds to 3 minutes.

[Video](/assets/videos/bannerify/animation/adjusting-timeline.mp4)

You can adjust the length of the entire timeline itself for all of your banners by clicking the **Timeline** select box in the Bannerify header; selecting a length (with options from 3 seconds to 3 minutes) will automatically extend or shrink the Bannerify timeline for all of your banners. Bannerify will do its best to update your existing animations if they previously extended beyond a new shorter timeline, and vice-versa.

> **Tip:** **Keeping your timeline length when copy/pasting banners**. If you need to copy/paste banners onto a new page in the same Figma file, keep Bannerify open, create the new page, and then paste your banners there. Bannerify will automatically copy your current page's timeline and export settings onto brand new pages while the plugin is running. If you paste into a completely separate Figma file, Figma may not carry over those page-level Bannerify settings, so you may need to set the timeline length again in the new file.

> **Warning:** **You can't automatically undo timeline length updates**. Selecting a new timeline length will apply the changes to the timelines across all of your banners. You will need to manually update your timeline animations again if you change your mind. With this in mind, it's usually worth setting your timeline length **before** starting to work on your animations.

---

---
url: "/bannerify/animation/undo-redo.md"
description: "Restore recent animation, timing, and batch changes in the Bannerify timeline."
---

# Undoing and redoing timeline changes

> Restore recent animation, timing, and batch changes in the Bannerify timeline.

Bannerify keeps a history of timeline edits while the current plugin timeline is open. Use the left and right arrow buttons in the Bannerify header to undo or redo the most recent change. Hover over either button to see the action that will be restored.

You can also use these keyboard shortcuts while focus is outside a text or number input:

- Command + Z on macOS or Ctrl + Z on Windows to undo.
- Command + Shift + Z on macOS, or Ctrl + Shift + Z / Ctrl + Y on Windows, to redo.

History steps include animation choices, completed timing drags, precise speed or delay edits, loop and hover toggles, pasted or batch-applied animations, Magic timing changes, Figma Motion timing changes, scene timing shifts, and timeline length changes.

Continuous interactions are grouped into useful steps. For example, dragging a timing bar creates one history step when you release it, and applying an animation to several selected layers creates one batch step.

Layer selection, timeline playback, preview seeking, and scene expand or collapse controls do not create history steps.

> **Warning:** Timeline history is available for the current Bannerify session. Refreshing or reloading the banner data starts a new history.

---

---
url: "/bannerify/animation/updating-saved-animations.md"
description: "Edit and update previously saved custom animations."
---

# Updating your saved animations

> Edit and update previously saved custom animations.

### Video Tutorial: Add custom animations to your Figma banner designs

This video walks through how to add custom keyframe animations to your banners using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/Js4uSQ855uo)

[Video](/assets/videos/bannerify/animation/update-saved-keyframes.mp4)

To update a custom animation that you've previously saved, choose the animation you'd like to update from the **Your Saved Animations** select box; this will load up your saved animation and its keyframes into the custom animation panel.

Once you've chosen the saved animation, you can edit your keyframes and properties as needed. Once you're happy with the updates, click the **Update Saved Animations** button to save the changes and _override_ the previous animation keyframes.

Note, updating a saved animation will automatically apply the updated keyframes to any layers in your banners that was already using the custom animation you've just updated.

> **Tip:** **Create a new animation based on a saved animation**. If you want to load in a saved animation and modify it, but not "override" the saved version, you can create a new animation from it by entering in a **New Custom Animation Name** and clicking the **Add New Animation** button.

---

---
url: "/bannerify/animation/using-saved-animations.md"
description: "Apply your saved custom animations to layers in your banners."
---

# Using your saved custom animations

> Apply your saved custom animations to layers in your banners.

### Video Tutorial: Add custom animations to your Figma banner designs

This video walks through how to add custom keyframe animations to your banners using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/Js4uSQ855uo)

[Video](/assets/videos/bannerify/animation/using-custom-animation.mp4)

Once you've saved at least one custom animation, you can use them in your banners by clicking the **entry animations** and **exit animations** select boxes in your layers timelines; you will see a new group in the select box options called **Custom Animations**, where you'll be able to see all of the custom animations that you've saved.

> **Tip:** **Bulk applying custom animations** As with other preset animations, you can also apply your custom animation in bulk by using the [bulk apply](/bannerify/animation/bulk-animations) feature.

---

---
url: "/bannerify/design/custom-css-classes.md"
description: "You can optionally add custom CSS class names to any layers in your timeline for HTML exports, which may be useful for any kind of custom coding/development work."
---

# Add custom CSS class names for layers in your HTML exports

> You can optionally add custom CSS class names to any layers in your timeline for HTML exports, which may be useful for any kind of custom coding/development work.

[Video](/assets/videos/bannerify/design/custom-css-classes.mp4)

If you want to override the image scale size for any layer in your timeline, you can optionally do this for any layer by clicking any layer's **Settings** icon button in the main timeline to open the layer settings, and entering your custom CSS class name into the **Optionally include custom CSS classes to this layer in HTML exports** input field.

This will ensure that your layer will include your specified custom CSS class name to its HTML `class` attribute when they're exported to HTML from the Bannerify plugin.

> **Tip:** **Bulk applying custom CSS class name settings**. As with other layer settings, you can also apply your custom CSS class name to layers in bulk by using the [bulk apply](/bannerify/animation/animating-banners#applying-bulk-animations) feature.

---

---
url: "/bannerify/design/figma-buzz.md"
description: "Learn how to load banner designs from a Figma Buzz file into Bannerify, open the full animation timeline, and export your banners."
---

# Using Bannerify with Figma Buzz

> Learn how to load banner designs from a Figma Buzz file into Bannerify, open the full animation timeline, and export your banners.

### Video Tutorial: Animate and export Figma Buzz banners to HTML, MP4 video, or GIF

[Embedded media](https://www.youtube.com/embed/DlUogTWnheQ)

[Video](/assets/videos/bannerify/design/figma-buzz.mp4)

## Loading banners from a Figma Buzz file

Bannerify can load your existing banner designs directly from a Figma Buzz file:

1. Open the **Plugins** panel in your Buzz file and run **Bannerify Banner Studio**.
2. Check or uncheck the banner frames you want to use in the Bannerify sidebar.
3. Click **Load Checked Banners** to load your selection, or **Load All Banners** to include every listed frame.
4. When prompted, click Figma's **pop-out** icon in the top-right corner of the plugin header.
5. Use the full Bannerify workspace to animate layers, preview your banners, and access the export options.

## Why Bannerify uses the pop-out window

Figma Buzz initially opens plugins in a narrow sidebar. Bannerify keeps the banner checklist in this compact view, then asks you to open the wider pop-out window after your banners have loaded.

The pop-out window contains the standard Bannerify timeline, animation controls, previews, and export features. If you dock Bannerify back into the Buzz sidebar, you can use the pop-out icon again to return to the full workspace with the same loaded banners.

> **Tip:** After opening the full workspace, you can use Bannerify's normal [animation controls](/bannerify/animation/selecting-animations) and [export options](/bannerify/export/html) with your Buzz banner designs.

## Buzz sidebar options

The Buzz sidebar focuses on loading banner frames that already exist in your file. **Generate New Banners**, Figma Section multi-scene loading, and other setup controls remain available when using Bannerify in a standard Figma Design file.

---

---
url: "/bannerify/design/figma-frames.md"
description: "Bannerify works by looking through all of your **top level frames and instances** in the active Figma page and using each one as its own **banner**. Bannerify will also load top level elements inside of a Figma component set (or 'variants) layer as banners."
---

# Designing your banners in Figma

> Bannerify works by looking through all of your **top level frames and instances** in the active Figma page and using each one as its own **banner**. Bannerify will also load top level elements inside of a Figma component set (or 'variants) layer as banners.

### Video Tutorial: Animate and export banners to HTML from Figma

This video walks through how to animate and export production-ready HTML banners from Figma in seconds.
[Embedded media](https://www.youtube.com/embed/-TA088FNulA)

## Starting from a blank Figma page

[Video](/assets/videos/bannerify/design/blank-frames.mp4)

To quickly get started designing your own banners, Bannerify will offer to create some standard banner sizes automatically for you when the plugin is run inside of an empty Figma page.

## Structuring your Figma banner frame layers

[Video](/assets/videos/bannerify/design/frame-children.mp4)

The **direct child layers** of each frame are used as the default **elements** inside of each banner. As we'll see in the sections below, each of these elements can be individually animated inside the Bannerify plugin to create your banners.

> **Note:** **Hidden child layers will be included in your banner frames** Any direct child layers that have been toggled to **hidden** in Figma will still appear in your Bannerify layers timeline. The reason for this is to allow child layers to be visibly hidden while designing banners that may contain elements that need to be transitioned in and out over multiple stages. Bannerify will automatically display these hidden layers in their visually un-hidden state.

> **Tip:** **Hiding Figma layers from your timeline**. If you don't want a certain layer in your Figma frame to be included in the timeline, you can rename any Figma layer with the prefix **hide-** (for example, _hide-RectangleBackground_), which will ensure this layer doesn't get included in the plugin timeline or your banner exports.

## Starting with banners you've already designed

[Video](/assets/videos/bannerify/design/loading-existing.mp4)

If you've already created some banner designs in Figma, running the Bannerify plugin on your page will automatically load a list of the available frames or instances in your file that can be used as banners.

You can either check/uncheck only the banners you'd like the plugin to load and then click **Load Checked Banners** button, or you can click the **Load All Banners** button to automatically load all of them.

## Refreshing or re-loading multiple/all banners

[Video](/assets/videos/bannerify/design/refreshing-all-banners.mp4)

If you add or update any layers in your Figma file while Bannerify is already running, they won't be updated automatically. However, there are two ways to refresh your banners.

To refresh all of the banners in your timeline, or load in brand new banners from your Figma file, you can click the **Refresh** icon in the main plugin header menu.

This will show the initial banner selection screen again, where you can either check/uncheck only the banners you'd like the plugin to load and then click **Load Checked Banners** button, or you can click the **Load All Banners** button to automatically load all of them. Any updated layers will show up in the Bannerify timeline and real-time previews.

## Refreshing a single banner

[Video](/assets/videos/bannerify/design/refreshing-single-banners.mp4)

If you add or update any layers in your Figma file while Bannerify is already running, they won't be updated automatically. However, there are two ways to refresh your banners.

To quickly refresh a single banner, you can click the **Refresh** icon in the banner's header bar to only refresh the layers for that banner, any updated layers will show up in the Bannerify timeline and real-time previews.

## Setting a solid banner background fill

[Video](/assets/videos/bannerify/design/setting-background-fill.mp4)

You can set a solid background colour of any banner by setting the solid **Fill** of that frame to the colour you need in Figma; this may be seen briefly before your image elements load.

## Auto-scrolling banners into view

[Video](/assets/videos/bannerify/design/scroll-layers.mp4)

To Switch between editing banners, Bannerify automatically scrolls a banner into view in the timeline when it's corresponding layer (or child layer) is clicked on the Figma page.

This also works the other way around, where if you click on the **frame** or **instance** icon button above any of your banner previews in the timeline, the corresponding Figma layer will be automatically scrolled and zoomed into view on your Figma page.

## Resizing the plugin window

[Video](/assets/videos/bannerify/design/resize-window.mp4)

If you're using a bigger (or smaller) computer monitor, Bannerify lets you resize the plugin window to make it easier to use and view the timeline depending on the size of your screen. You can resize the window from smaller to larger (4K) sizes by clicking the size dropdown in the main plugin header menu.

---

---
url: "/bannerify/design/generate-new-banners.md"
description: "Create multiple new banner sizes from one or more existing Figma frames, then optionally let Bannerify resize and re-layout the content for each new output size."
---

# Generating new banners from existing Figma frames

> Create multiple new banner sizes from one or more existing Figma frames, then optionally let Bannerify resize and re-layout the content for each new output size.

If you've already designed one or more banner frames in Figma, Bannerify can generate brand new banner frames in multiple sizes from those originals.

This is useful when you've finished one strong master size and want Bannerify to produce a first-pass set of other standard ad sizes without manually rebuilding every layout from scratch.

## What this feature does

- Duplicates selected top-level Figma frames or instances into new frames.
- Lets you choose multiple standard banner sizes at once.
- Supports custom output sizes.
- Can optionally re-layout text, logos, CTAs and graphics for each new aspect ratio.
- Leaves your original source frames unchanged.

> **Tip:** Use this as a production shortcut, not a substitute for creative review. Bannerify can get you very close quickly, and you can make any final design adjustments directly in Figma.

## Step 1. Open the Generate tab

Open Bannerify in Figma, then switch from the normal **Load** tab to the **Generate** tab.

Bannerify will scan the current page for top-level Figma frames and instances that can be used as source banners.

## Step 2. Select your source frames

Check the one or more source frames you want to use as the starting point.

Good candidates include:

- completed banner designs
- a strong master size such as `300x250` or `1200x628`
- frames with clean structure and clearly grouped elements

Bannerify generates new frames from the selected sources; it does not overwrite the originals.

## Step 3. Choose the output sizes

Enable the banner sizes you want to generate.

The Generate tab includes a set of common ad sizes such as:

- Leaderboard (`728x90`)
- Medium Rectangle (`300x250`)
- Large Rectangle (`336x280`)
- Skyscraper (`120x600`)
- Wide Skyscraper (`160x600`)
- Half-Page Skyscraper (`300x600`)
- Banner (`468x60`)
- Square (`250x250`)

If you need a non-standard size, enter a custom width and height and click **Add Custom Size**.

## Step 4. Optionally enable smart layout

If you want Bannerify to adapt the contents of each new banner automatically, turn on:

- **Auto re-layout new Figma frame content layers (BETA)**

When enabled, Bannerify will try to resize and reposition the content in each new frame so it fits the target aspect ratio more naturally.
It also tries to keep content closer to its original frame bias, so layouts that started top-heavy or edge-aligned are less likely to drift back toward the middle.

When disabled, Bannerify will still create the new frame sizes, but it will only resize the outer frame and leave the inner content placement closer to the original source layout.

## Step 5. Click Generate

Click the **Generate** button to create the selected sizes.

Bannerify will create new Figma frames on the page, named from the source frame plus the output size, for example:

- `Homepage Promo / Leaderboard (728x90)`
- `Homepage Promo / Medium Rectangle (300x250)`
- `Homepage Promo / Half-Page Skyscraper (300x600)`

## What smart layout tries to adapt

When the re-layout toggle is enabled, Bannerify will try to:

- resize and reposition text blocks
- keep headlines more readable in narrow, tall, or very short wide formats
- keep top-, middle-, or bottom-biased content closer to its original source position
- avoid shrinking the whole composition too much when the new size stays close to the original aspect ratio
- preserve spacing around wider text areas
- move decorative elements and shapes to fit the new aspect ratio
- keep grouped content together where possible
- reduce obvious overlaps and overflow

The exact result depends on the source frame structure and the aspect ratio difference between the original and target size.

## When to enable or disable re-layout

### Turn it on when

- you want a fast first pass for multiple new sizes
- your source banner has clearly structured content
- you want Bannerify to do the heavy lifting before final polish

### Leave it off when

- you only want the new frame sizes created quickly
- you plan to manually reposition everything yourself in Figma
- the source layout is very custom and you want exact manual control

## Best practices for better results

You'll get the most consistent output when your source banners are structured clearly in Figma.

### Keep important elements as direct children or logical groups

For example:

- headline group
- body copy group
- CTA or button group
- logo group
- product image group

This makes it easier for Bannerify to identify what each element is doing and re-layout it sensibly.

### Avoid using one giant flat frame of unrelated layers

If every element sits loose in the root frame with no logical grouping, Bannerify has less semantic information to work with.

### Give long copy a sensible text box

If your banner contains long legal copy or disclaimer text, set up the text layer with a realistic width in the source frame.

If the copy needs to remain scrollable in HTML exports, see [Scrollable Text Layers](/bannerify/design/scrollable-text).

### Use Sections only for multi-scene banners

The Generate feature creates new sizes from existing frames.

If you want to combine several frames into one animated banner sequence, see [Multi-Scene Banners](/bannerify/design/scenes).

## After generation

The generated banners are normal Figma frames. You can:

- tweak the layout manually
- animate them in Bannerify
- export them to HTML, GIF, MP4, WebM or other supported formats

If you later update the original source design, Generate a fresh batch again.

## Troubleshooting tips

- If the generated layouts need too much manual correction, try turning the re-layout toggle off and resize the variants manually.
- If text-heavy sizes still need adjustment, simplify the source layout and try generating again.
- If generated banners contain too much copy for very small sizes, shorten the source copy or use scrollable or popup text patterns.
- If you want Bannerify to treat multiple frames as one banner, use [Figma Sections](/bannerify/design/scenes) instead of the Generate feature.

## Summary

The Generate feature is the fastest way to turn one or more finished Figma banners into a full set of new banner sizes.

Select your source frames, choose your output sizes, decide whether to enable **Auto re-layout new Figma frame content layers (BETA)**, and let Bannerify generate new frames directly on the page.

---

---
url: "/bannerify/design/gif.md"
description: "There are two different options for using GIFs in your banner designs, each one works a bit differently, depending on how you'd like to incorporate the GIF into your design. "
---

# Including animated GIFs in your HTML banners

> There are two different options for using GIFs in your banner designs, each one works a bit differently, depending on how you'd like to incorporate the GIF into your design. 

> **Note:** Your GIF layer will need to be included in the main timeline. Any **_nested_ layers containing a GIF won't be rendered** or included in your HTML exports. Embedded animated GIFs will also **not be included in GIF/Video exports** from Bannerify.

> **Tip:** **Flagging transparent GIFs**. By default, your GIF exports won't include transparency. If your GIF does require transparency, Add the word **transparent** anywhere in your Figma layer's name.

## Using animated GIFs as image layers

[Video](/assets/videos/bannerify/design/animated-gif-layer.mp4)

You can drag a `.gif` file inside of any top level banner, which will add it as a Figma image layer.

This method won't allow to include any other content over the top of the animated GIF, however, any additional Figma fills (eg color/gradient overlays) on this frame will also be included in the final `.gif` export.

## Using animated GIFs as background fills on a frame layer

[Video](/assets/videos/bannerify/design/animated-gif-fill.mp4)

Alternatively, you can also drag a `.gif` file from your computer onto a frame layer's **fill**, which will set it as an image fill on the background of the frame. Any additional Figma fills (eg color/gradient overlays) on this frame will also be included in the final `.gif` export.

The advantage of this is that you can add other Figma layers (text, images etc) inside of the frame on top of your animated GIF, and those will also be included in the `.gif` that gets exported with your HTML banners.

---

---
url: "/bannerify/design/hide-layers-from-backup.md"
description: "By default, all of the layers from your Figma frame will be included in the HTML exports backup.jpg file, but you can specify certain layers to be excluded."
---

# Hide certain layers from your HTML backup.jpg image

> By default, all of the layers from your Figma frame will be included in the HTML exports backup.jpg file, but you can specify certain layers to be excluded.

[Video](/assets/videos/bannerify/design/hide-backup-layers.mp4)

If you have different content layers transitioning in and out at different points in your banner animation, you will likely want to hide some of those from appearing in the your backup.jpg file.

If you want to hide any layer in your timeline from being included in the `backup.jpg` file with your HTML exports, you can optionally do this for any layer by clicking any layer's **Settings** icon button in the main timeline to open the layer settings, and enabling the **Hide this layer from being included in your backup.jpg** toggle.

This will automatically hide that layer from appearing in your `backup.jpg` file during the export of your HTML banners.

> **Tip:** **Bulk applying backup.jpg hide settings**. As with other layer settings, you can also apply your backup exclusion to layers in bulk by using the [bulk apply](/bannerify/animation/animating-banners#applying-bulk-animations) feature.

---

---
url: "/bannerify/design/links.md"
description: "There are two ways to add URL links to your HTML banner exports in Bannerify; one is to include an `<a>` link tag around the entire banner, and the other is to add clickable links to individual layers in your timeline. "
---

# Adding clickable URL links to your banners

> There are two ways to add URL links to your HTML banner exports in Bannerify; one is to include an `<a>` link tag around the entire banner, and the other is to add clickable links to individual layers in your timeline. 

> **Note:** **Links only applies to HTML exports**. Note that this will only apply to all HTML export options, and won't have any effect on GIF or video exports from the plugin.

## Adding a clickable URL to the entire banner

[Video](/assets/videos/bannerify/design/banner-link-tag.mp4)

To add a link around your entire banner, you can paste a link into the URL field inside of the export settings panel. This will automatically wrap your entire banner inside of an `` tag, which has an `href` set to the URL that you specified in the input field.

## Adding a clickable URL to a specific timeline layer

[Video](/assets/videos/bannerify/design/prototype-link.mp4)

If you need to make a certain timeline layer clickable, you can do this by clicking that layer in your Figma canvas, then adding an **Open link** interaction under the native Figma **Prototype** panel. Pasting your link into the URL field of the Figma interaction will automatically include an `onclick="window.open('https://yourwebsitelink.com', '_blank')"` attribute to that element in your HTML banner export.

> **Tip:** **Only applies to layers visible in your Bannerify timeline**. Note that this will only be applied to layers that are visible in your Figma timeline. By default, this means direct child layers of your banner frame; you can optionally [include nested layers](/bannerify/animation/animating-banners#animating-nested-child-layers-individually) via the plugin, and then apply a prototype link interaction to those nested layers, if desired, too.

## Using Enabler.exit() on timeline layers for DoubleClick exports

If you export with the **DoubleClick Studio** format, you can also set a timeline layer's Figma prototype URL to an `Enabler.exit(...)` call instead of a normal website URL.

1. Select a layer in your timeline (for example your CTA button).
2. In Figma's **Prototype** panel, add an **On click -> Open link** interaction.
3. In the URL field, enter a DoubleClick exit call like:

```js
Enabler.exit("CTA Exit");
```

4. Export your banner with Bannerify using the **DoubleClick Studio** format.

Bannerify will then:
- bind that layer to `Enabler.exit("CTA Exit")`,
- keep the default full-banner background exit (`Enabler.exit("Background Exit")`),
- prevent the layer click from bubbling to the background exit, so you do not get duplicate exit calls.

> **Tip:** **Use this only for DoubleClick exports**. For non-DoubleClick HTML formats, use regular website URLs in Prototype links (for example, `https://example.com`).

---

---
url: "/bannerify/design/lottie.md"
description: "You can embed Lottie file animations to a non-text Figma layer in your Bannerify timeline by clicking the **Settings** icon button for that layer, and then pasting in a URL pointing to a valid Lottie file (`.json`) into the Lottie embed input field."
---

# Including Lottie file animations in your banners

> You can embed Lottie file animations to a non-text Figma layer in your Bannerify timeline by clicking the **Settings** icon button for that layer, and then pasting in a URL pointing to a valid Lottie file (`.json`) into the Lottie embed input field.

### Video Tutorial: Add Lottie animations to Figma banner exports

This video walks through how to add Lottie file animations to your banners using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/JOJXVPWejOw)

[Video](/assets/videos/bannerify/design/lottie-animation.mp4)

To get a Lottie animation, you can either [browse the selection of animations](https://lottiefiles.com/featured?ref=bannerify) on LottieFiles.com, or if you've created your own using the [After Effects plugin](https://lottiefiles.com/plugins/after-effects), you can upload your `.json` file to the LottieFiles website as a [private animation](https://lottiefiles.com/preview?ref=bannerify), and then copy the URL link to your animation in the same way to use it in Bannerify.

By default, your Lottie animation will automatically loop, but you can change this if needed by turning off the **Loop Embed** toggle.

To remove a Lottie animation from your layer, click on the the **Settings** icon button again and remove the URL from the Lottie embed input field.

> **Tip:** **Bulk applying Lottie file URLs** As with other layer settings, you can also apply your Lottie file URL setting to layers in bulk by using the [bulk apply](/bannerify/animation/animating-banners#applying-bulk-animations) feature.

> **Note:** **Complex visual effects/masks in video/GIF exports**. If you're exporting banners containing Lottie files to video or GIFs from Bannerify, certain Lottie files contain special effects, masks or styles that won't be supported as they are in the HTML exports.

> **Warning:** **Some ad platforms will block Lottie animations from being used**. If you're exporting banners containing Lottie files to HTML for ad platforms like Google Ads, some of these platforms won't allow you to upload your banners, as they don't allow third party Javascript libraries (like Lottie) to be used.

---

---
url: "/bannerify/design/nested.md"
description: "By default, Bannerify only loads the direct child layers from your Figma banners into the timeline, but you can also include nested child layers when needed, too."
---

# Animating nested layers in your banner frames

> By default, Bannerify only loads the direct child layers from your Figma banners into the timeline, but you can also include nested child layers when needed, too.

[Video](/assets/videos/bannerify/design/nested-layers.mp4)

To choose which layers in your banner frame you'd like to expand and load into your Bannerify timeline as animatable layers, you can click on the **List** icon button at the top of your banner in the timeline, then click on the **Arrow** icon next to any layers with child layers to expand or collapse them as needed.

Closing this panel will automatically refresh your banner to reveal all of the nested children you exposed in your timeline as new individual layers in your timeline.

Bannerify also supports Figma [slot layers](https://help.figma.com/hc/en-us/articles/38231200344599-Use-slots-to-build-flexible-components-in-Figma) inside your banner frames. These slot containers are treated like nested layer groups in the Bannerify layer picker, and start expanded by default the first time Bannerify loads them so their child layers are immediately available in your timeline. If you manually collapse one of those Slot layers, Bannerify will remember that preference for later refreshes instead of forcing it open every time.

> **Tip:** Alternatively, you can specify which layers should be expanded (to load their nested children into the timeline) by adding `[expand]` to the parent layer name, without needing to use the nested user interface in the plugin, described above.

---

---
url: "/bannerify/design/override-image-format.md"
description: "By default, Bannerify will try to automatically select the best image file format for each layer, but you can specify your own file format overrides for any layers in your timeline."
---

# Override the image file format for layers in your HTML exports

> By default, Bannerify will try to automatically select the best image file format for each layer, but you can specify your own file format overrides for any layers in your timeline.

[Video](/assets/videos/bannerify/design/override-image-format.mp4)

If you want to override the image file format for any layer in your timeline, you can optionally do this for any layer by clicking any layer's **Settings** icon button in the main timeline to open the layer settings, and selecting an option from the **Optionally override the image format for this layer in banner exports** dropdown select list:

- Auto-detect optimal format _(Default)_
- Export layer as JPG _(.jpg)_
- Export layer as PNG _(.png)_
- Export layer as SVG _(.svg)_

This will ensure that your layer will always be exported to the image format you've selected when they're exported to HTML from the Bannerify plugin.

> **Tip:** **Bulk applying image format override settings**. As with other layer settings, you can also apply your image format override to layers in bulk by using the [bulk apply](/bannerify/animation/animating-banners#applying-bulk-animations) feature.

---

---
url: "/bannerify/design/override-image-scale.md"
description: "By default, Bannerify will use your global image scale setting in the HTML export settings panel, but you can specify individual image scale overrides for any layers in your timeline."
---

# Override the image scale for layers in your HTML exports

> By default, Bannerify will use your global image scale setting in the HTML export settings panel, but you can specify individual image scale overrides for any layers in your timeline.

[Video](/assets/videos/bannerify/design/override-image-scale.mp4)

If you want to override the image scale size for any layer in your timeline, you can optionally do this for any layer by clicking any layer's **Settings** icon button in the main timeline to open the layer settings, and selecting an option from the **Optionally override the image scale for this layer in banner exports** dropdown select list:

- Use Global HTML Export Image Scale Setting _(Default)_
- Export this layer at @0.5x Resolution
- Export this layer at @1x Resolution
- Export this layer at @1.5x Resolution
- Export this layer at @2x Resolution (Retina)

This will ensure that your layer will always be exported at the scaling resolution that you've selected when they're exported to HTML from the Bannerify plugin.

> **Tip:** **Bulk applying image scale override settings**. As with other layer settings, you can also apply your image scale override to layers in bulk by using the [bulk apply](/bannerify/animation/animating-banners#applying-bulk-animations) feature.

---

---
url: "/bannerify/design/popups.md"
description: "You can use Bannerify to add a simple overlay popup to display rich text text (for example, disclaimers or terms and conditions) that shows up when you click on a certain layer in your banner."
---

# Adding clickable rich text popup overlay links to your banners

> You can use Bannerify to add a simple overlay popup to display rich text text (for example, disclaimers or terms and conditions) that shows up when you click on a certain layer in your banner.

### Video Tutorial: Add rich text popup overlays to HTML Figma banners

This video walks through how to add rich text popup overlays to HTML Figma banners using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/fOlw2ghGcIc)

[Video](/assets/videos/bannerify/design/popup-overlays.mp4)

If you need to have a popup overlay with scrollable (and dismissible) rich text included in your banner, which can be opened by clicking a certain layer in your banner timeline, you can do this by [selecting those desired trigger layers](/bannerify/animation/animating-banners#quick-selecting-similar-layers) in each of your banners, then choosing any animation options under the **Generate Popup Overlay Disclaimers** section in the bulk actions window at the bottom of the plugin (which appears when multiple layers are checked in your timeline).

Once your happy with the popup animation settings, clicking the **Create Popup Links** button will automatically create a "Popup" component (containing a text layer and a close button) on your Figma page and automatically linking each of your selected layers as a trigger to point to that new Popup component via the native Figma Prototype link feature.

You're welcome to modify the content of the text layer, adjust the font size and change the solid color fills of the popup background, close icon and the text layer.

When you export your HTML banners, the plugin will automatically look for those Figma Prototype links and the Popup component that they're pointing to, and generate the clickable triggers and popup overlay code in your final exported banner set.

### Customizing scrollbar styles

If you want to customize the scrollbar styling for scrollable truncated text layers or popup overlay text, enable **Inject Custom Code** in your HTML export settings, then paste this into the **Custom CSS** field.

```css
:root {
  --bannerify-scrollbar-color: #ff6600;
  --bannerify-scrollbar-track-color: rgba(0, 0, 0, 0.12);
  --bannerify-scrollbar-width: 8px;
  --bannerify-scrollbar-height: 8px;
  --bannerify-scrollbar-radius: 8px;
}

/* Scrollable truncated text + popup overlay text */
[data-bnfy-scroll="1"],
dialog[id^="o_"] [class$="_text"] {
  scrollbar-color: var(--bannerify-scrollbar-color)
    var(--bannerify-scrollbar-track-color);
  scrollbar-width: thin;
}

/* Chrome, Edge, Safari */
[data-bnfy-scroll="1"]::-webkit-scrollbar,
dialog[id^="o_"] [class$="_text"]::-webkit-scrollbar {
  width: var(--bannerify-scrollbar-width);
  height: var(--bannerify-scrollbar-height);
}

[data-bnfy-scroll="1"]::-webkit-scrollbar-thumb,
dialog[id^="o_"] [class$="_text"]::-webkit-scrollbar-thumb {
  background-color: var(--bannerify-scrollbar-color);
  border-radius: var(--bannerify-scrollbar-radius);
}

[data-bnfy-scroll="1"]::-webkit-scrollbar-track,
dialog[id^="o_"] [class$="_text"]::-webkit-scrollbar-track {
  background-color: var(--bannerify-scrollbar-track-color);
}
```

You can change the values at the top to update the scrollbar color, track color, width, height, and corner radius. Some browsers and mobile devices may still render scrollbars using their native system style, but the CSS will be applied wherever the client allows custom scrollbar styling.

> **Warning:** Note, this component is designed to be extremely simple, with just the single text layer (for disclaimer text) and the close button. Feel free to customize the text content, font styles and colors, but any **other customizations or additional layers added may break the exported HTML** as a result.

---

---
url: "/bannerify/design/scenes.md"
description: "Learn how to combine multiple same-size Figma frames into a single multi-scene banner by wrapping them in a Section, then animate and export them as HTML, GIF, or video using Bannerify."
---

# Creating multi-scene banners using Figma Sections

> Learn how to combine multiple same-size Figma frames into a single multi-scene banner by wrapping them in a Section, then animate and export them as HTML, GIF, or video using Bannerify.

### Video Tutorial: Create multi-scene animated banners in Figma

This video walks through how to create multi-scene animated banners in Figma (and export to HTML or video) using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/_RJoxtwDC04)

## What are multi-scene banners?

By default, Bannerify treats each top-level Figma frame as a separate banner.

When you enable **Use Figma sections as multi scene banners**, Bannerify treats each **Figma Section** as one banner, and each same-size frame inside that section as a separate scene in the same timeline.

This is ideal when you want to sequence multiple creative states/messages in one banner export.

Bannerify follows the Figma visual frame layer order inside the section, so if you move the scene frames around in Figma, the scene order in Bannerify will update after you refresh and reload the banners.

## Quick setup

1. Create your banner frames in Figma as normal.
2. Select the frames that should become scenes in one banner.
3. Right-click and choose **Wrap in new section**.
4. In Bannerify, click **Refresh all banners** to return to the load screen.
5. Enable **Use Figma sections as multi scene banners**.
6. Click **Load checked banners** (or **Load all banners**).

You should now see one banner per section, with layers grouped by scenes in the timeline.

## Step-by-step workflow

### 1. Run Bannerify

Open Bannerify from Figma plugins.
If you use it often, save it to your **Saved plugins** list for quick access.

### 2. Confirm default behavior (optional)

Before enabling sections mode, Bannerify will load top-level frames as separate banners.

This is useful to verify your source frames are detected correctly.

### 3. Wrap scene frames in a Section

Select all frames you want to combine into one multi-scene banner, then use:

**Right click -> Wrap in new section**

That section now becomes your single banner container in sections mode.

### 4. Reload and switch to sections mode

Click **Refresh all banners** in Bannerify, then enable:

**Use Figma sections as multi scene banners**

Bannerify will now scan sections instead of individual frames.

### 5. Load section banners

Click **Load checked banners** or **Load all banners**.

You will now see:
- One banner per section
- Scene groupings in the timeline (Scene 1, Scene 2, Scene 3, etc.)
- Scene-aware layer labeling and controls

> **Tip:** If you want Scene 3 to appear before Scene 2, or Scene 1 to move to the end, move the scene frames into the Figma visual frame layer order you want inside the section, then refresh and reload the section in Bannerify.

### 6. Adjust timeline length for scene sequencing

If scenes currently overlap, increase the timeline length (for example from `5s` to `15s`. and click **Update timeline length**.

Then adjust layer timings so each scene enters/exits in sequence across the longer timeline.

> **Tip:** Use grouped scene timing controls to shift scene timing blocks more quickly instead of adjusting every layer one-by-one.

### 7. Preview and export

Use preview playback to validate scene order and timing, then export as needed:

- **HTML** export for ad/platform code packages
- **GIF** export for animated image output
- **MP4/Video** export for video deliverables

All scenes in a section are exported as one combined banner sequence.

## Working with multiple sizes and multiple sections

You can duplicate sections to create additional banner sizes/variants.

On refresh, Bannerify will load each section as a separate banner, each containing its own set of scenes.
This lets you export multiple dimensions and multi-scene variants in a single batch.

## Important requirement: scene frames must match dimensions

For frames to be treated as scenes in the same banner, they must have identical dimensions inside the section.

If one frame has even a 1px difference, Bannerify may exclude it from that section's scene set.

> **Warning:** Example: if two frames are `269x250` and one is `268x250`, Bannerify can load only the matching-size frames as scenes.

If this happens:

1. Make all scene frames in the section the exact same width and height.
2. Refresh the banners.
3. Reload the section banner.

## Troubleshooting checklist

- **Only some scenes are loading**: verify all frames in the section have identical dimensions.
- **Section changes are not appearing**: click **Refresh all banners** and reload.
- **Scene order is wrong**: reorder the frames inside the Figma section, then click **Refresh all banners** and reload.
- **Scenes overlap too much**: increase timeline length and redistribute timings.
- **Export looks different from preview**: re-check layer timings and scene order after timeline changes.

## Summary

Using Figma Sections with Bannerify is the fastest way to build longer, narrative banner sequences without forcing everything into one giant frame.

Design each scene as a normal frame, wrap them in a section, enable sections mode, then animate/export as one combined banner.

---

---
url: "/bannerify/design/scrollable-text.md"
description: "Use truncated text layers in Figma to export scrollable HTML text or auto-scrolling GIF and video text in Bannerify."
---

# Adding scrollable truncated text layers to your banners

> Use truncated text layers in Figma to export scrollable HTML text or auto-scrolling GIF and video text in Bannerify.

### Video Tutorial: Add scrollable text disclaimers to Figma banner exports

This video walks through how to add scrollable text disclaimers (with auto-scroll) to Figma banner exports using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/lDPV4QU_ZRU)

[Video](/assets/videos/bannerify/design/scrollable-text.mp4)

If you need long legal text, safety copy, or PI content to stay readable in a compact area, Bannerify can export a truncated text layer as native scrollable HTML text, and render auto-scrolling text into GIF/video outputs.

If you want a dismissible overlay instead of inline scrolling text, see [Add Popup Overlay](/bannerify/design/popups).

### Step 1. Create a truncated text layer in Figma

Create a text layer with a fixed text box size, and make sure it is set to **Truncate** (instead of auto-growing).

In HTML exports, the visible text box size becomes the scroll container while the full text content is preserved inside it. In GIF/video exports, the same text box clips the rendered auto-scroll motion.

### Step 2. Enable scrollable text in Bannerify

Open the layer settings for that text layer, then enable:

- **Enable scrollable text**

This feature is only available for truncated text layers.

### Step 3. Choose scroll behavior

When enabled, choose one of these modes:

- **Manual User Scrollable**: user scrolls manually for the full timeline.
- **Auto Scroll on Layer Enter**: starts auto-scrolling when the layer enters.
- **Auto Scroll on Banner End**: starts auto-scrolling when the banner timeline finishes.

In GIF/video exports, both auto-scroll modes use the same scroll speed as HTML exports. If the scroll needs more time than the original banner timeline, the exported file is extended so the text can finish scrolling at that speed.

#### Banner loop behavior

- If playback count is finite, **Auto Scroll on Banner End** triggers only on the final playthrough.
- If the banner is set to infinite looping, **Auto Scroll on Banner End** is skipped.

### Step 4. Review export notes

- In **HTML** outputs, manual mode remains user-scrollable. In either auto mode, wheel, touch, or scrollbar input stops the automatic motion at its current position so the user can continue scrolling manually.
- In **GIF/video** outputs, auto-scroll modes are rendered into the exported frames; manual mode remains static because exported files are not interactive.
- Native browser/device scrollbar styling is used.
- If that layer has an image format override applied, scrollable text is disabled for that layer.

### Customizing scrollbar styles

If you want to customize the scrollbar styling for scrollable truncated text layers or popup overlay text, enable **Inject Custom Code** in your HTML export settings, then paste this into the **Custom CSS** field.

```css
:root {
  --bannerify-scrollbar-color: #ff6600;
  --bannerify-scrollbar-track-color: rgba(0, 0, 0, 0.12);
  --bannerify-scrollbar-width: 8px;
  --bannerify-scrollbar-height: 8px;
  --bannerify-scrollbar-radius: 8px;
}

/* Scrollable truncated text + popup overlay text */
[data-bnfy-scroll="1"],
dialog[id^="o_"] [class$="_text"] {
  scrollbar-color: var(--bannerify-scrollbar-color)
    var(--bannerify-scrollbar-track-color);
  scrollbar-width: thin;
}

/* Chrome, Edge, Safari */
[data-bnfy-scroll="1"]::-webkit-scrollbar,
dialog[id^="o_"] [class$="_text"]::-webkit-scrollbar {
  width: var(--bannerify-scrollbar-width);
  height: var(--bannerify-scrollbar-height);
}

[data-bnfy-scroll="1"]::-webkit-scrollbar-thumb,
dialog[id^="o_"] [class$="_text"]::-webkit-scrollbar-thumb {
  background-color: var(--bannerify-scrollbar-color);
  border-radius: var(--bannerify-scrollbar-radius);
}

[data-bnfy-scroll="1"]::-webkit-scrollbar-track,
dialog[id^="o_"] [class$="_text"]::-webkit-scrollbar-track {
  background-color: var(--bannerify-scrollbar-track-color);
}
```

You can change the values at the top to update the scrollbar color, track color, width, height, and corner radius. Some browsers and mobile devices may still render scrollbars using their native system style, but the CSS will be applied wherever the client allows custom scrollbar styling.

> **Warning:** Scrollable text is designed for truncated text layers only. If your layer is not truncated, it should be exported using normal text/image behavior.

---

---
url: "/bannerify/design/unclip-content.md"
description: "By default, Bannerify only exports the visible image areas inside of your banner, which helps to save on un-needed image data being included in your HTML exports, but you can optionally override this behavior."
---

# Including a layer's unclipped image content

> By default, Bannerify only exports the visible image areas inside of your banner, which helps to save on un-needed image data being included in your HTML exports, but you can optionally override this behavior.

[Video](/assets/videos/bannerify/design/unclip-layer.mp4)

If you do need to include the full unclipped image area outside of your banner dimensions, due to the animation moving in/out of the overall banner frame area, you can optionally do this for any layer by clicking any layer's **Settings** icon button in the main timeline to open the layer settings, and enabling the **Include full unclipped layer** toggle.

This will unclip any parent frames for that layer during export and include the full layer content previously being clipped, and allow you to see that extra image area being included in animations that move the animation in/out of the banner's dimensions.

> **Tip:** **Bulk applying clipping settings**. As with other layer settings, you can also apply your custom clipping setting to layers in bulk by using the [bulk apply](/bannerify/animation/animating-banners#applying-bulk-animations) feature.

> **Warning:** **Unclipping image layers will increase file sizes**. Please use this feature carefully if you need to keep your banner file sizes low. Unclipping a layer's content area will include more of the image, so this is especially important to be mindful of if your image layers are much larger in dimensions to the banner dimensions (which usually acts as the clipping size, by default).

---

---
url: "/bannerify/design/variants.md"
description: "Bannerify can export multiple HTML, GIF, MP4, WebM, APNG, WebP, image, or PDF banner variants from a single Figma banner set by applying rows from a CSV, XLSX, or ZIP spreadsheet source during export."
---

# Creating banner variants from spreadsheet data

> Bannerify can export multiple HTML, GIF, MP4, WebM, APNG, WebP, image, or PDF banner variants from a single Figma banner set by applying rows from a CSV, XLSX, or ZIP spreadsheet source during export.

### Video Tutorial: Bulk export Figma banner variants from a spreadsheet

This video walks through how to bulk export Figma banner variants from a spreadsheet to HTML or Video/GIF using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/EiVk0G0nEU4)

[Video](/assets/videos/bannerify/export/banner-spreadsheet-variants.mp4)

Bannerify can turn one loaded banner set into many exported variants by applying one spreadsheet row at a time during export. Bannerify does not permanently sync the spreadsheet into your Figma file. Instead, it uses your selected rows as temporary export inputs, generates each banner variant, and then packages those files into your final `.zip`.

Banner variants work with:

- HTML banner exports
- GIF, MP4, WebM, animated WebP, and animated PNG exports
- Static JPG, PNG, WebP, and PDF exports

## Step 1: Match your spreadsheet headers to Figma layer names

The first row of your spreadsheet should contain the layer names you want Bannerify to replace during export.

For text layers, rename your Figma text layers to match the spreadsheet headers exactly.

For image layers, rename your Figma image-filled layers to match the spreadsheet headers exactly, then put either an image URL, a `data:image/...` value, or a ZIP asset reference in the spreadsheet cell.

For embedded media layers, rename the target non-text Figma layer to match the spreadsheet header exactly, then put either a direct `.mp4`, `.webm`, or `.json` URL in the spreadsheet cell, or a matching `.mp4`, `.webm`, or `.json` file reference from an uploaded ZIP source. Bannerify will treat video values as embedded video sources and `.json` values as embedded Lottie sources during export.

For style sync, rename the target layer to match the spreadsheet header exactly, then put a valid CSS declaration string in the spreadsheet cell, such as `color:#ffffff; font-size:48px;` or `display:none;`.

For visibility control, you can also put `_hide` or `_show` in a matching spreadsheet cell to hide or show that Figma layer during variant export.

Here is a simple example:

| headline | cta | logo | badge |
| --- | --- | --- | --- |
| Shop now pay later | Download the app | logo-1.png | display:none; |
| Split your payments | Learn more | logo-2.png | opacity:0.5; |
| Flexible spending power | Get started | logo-3.png | background-color:#111111; color:#ffffff; |

Each data row becomes one banner variant.

> **Tip:** If you upload a `.zip` file instead of a plain `.csv` or `.xlsx`, Bannerify will use the first spreadsheet file it finds inside the ZIP and can also resolve bundled images, `.mp4`, `.webm`, and `.json` media files from the same ZIP by filename or relative path.

## Supported spreadsheet cell values

Bannerify currently applies these spreadsheet value types during variant export:

- Plain text values for matching Figma text layers
- Image references for matching image-filled layers:
  image URLs, `data:image/...` values, or image file references bundled inside an uploaded ZIP
- Direct `.mp4`, `.webm`, or `.json` URLs for matching embedded media layers
- `.mp4`, `.webm`, or `.json` file references bundled inside an uploaded ZIP for matching embedded media layers
- CSS declaration strings for matching sync target layers
- `_hide` and `_show` visibility commands for matching layers

If you want to control visibility or styling from the spreadsheet, use CSS values such as `display:none;`, `opacity:0;`, `left:20px;`, or `transform:translateX(40px);`.

Bannerify currently accepts these CSS properties in spreadsheet values:

- `width`, `height`, `opacity`
- `background`, `background-image`, `background-color`
- `border-radius`, `border`, `border-left`, `border-right`, `border-top`, `border-bottom`, `border-color`, `border-width`
- `font-size`, `color`, `font-family`, `font-weight`, `text-transform`, `font-style`, `line-height`, `text-align`, `vertical-align`
- `display`, `flex-direction`, `gap`, `justify-content`, `align-items`
- `padding`, `padding-top`, `padding-right`, `padding-bottom`, `padding-left`
- `box-shadow`, `filter`, `transform`, `left`, `top`

## Step 2: Upload your CSV, XLSX, or ZIP file

Open the **Variants** panel in Bannerify and upload a `.csv`, `.xlsx`, or `.zip` file in the **Data Source** section.

After Bannerify reads the file, it will show a preview of the active spreadsheet on the left side of the panel. This lets you check that your headers and row values look correct before you export anything.

The preview table highlights image values with thumbnails, shows video values as `Video Embed` or `Video URL` badges, shows CSS declaration values as style tokens, and displays `_hide` / `_show` values as layer visibility commands so you can quickly spot non-text rows before export.

If you upload a new file later, Bannerify will replace the current file-based source with the latest one.

## Step 3: Enable variants and choose which rows to export

Once a spreadsheet is loaded, turn on **Enable Banner Variants During Exports**.

You can use the checkboxes in the table to choose exactly which rows should be exported as variants:

- Use the checkbox in the table header to select or unselect all rows
- Use the checkbox on any row to include or exclude that individual variant
- Only checked rows are used during export

Bannerify remembers those row selections for the saved spreadsheet source, so when you reopen the plugin your included and excluded rows stay the same.

## Missing fonts and export fallback behavior

When variants are enabled, Bannerify checks your selected banners for missing fonts before export.

If Bannerify finds missing font layers in Figma, it will warn you in the Variants panel. In that case, Bannerify falls back to exporting the original banners instead of trying to render broken spreadsheet variants.

## Automatic variant folder and file naming

If you leave **Export Folder Structure Naming** blank, Bannerify names each exported variant automatically.

The automatic rules are:

1. Original exports included alongside spreadsheet variants are grouped inside `row-0` for small spreadsheets, or `row-000` when the total row count requires zero padding.
2. The variant folder path uses the spreadsheet's `folder` value if present.
3. If there is no `folder` value, Bannerify falls back to `row-1`, `row-2`, and so on for smaller spreadsheets, and zero-pads them for larger sets like `row-001`, `row-002`.
4. The exported file name uses the spreadsheet's `name` value if present.
5. If there is no `name` value, Bannerify keeps the original Figma banner name for the export.

That means a blank naming field can produce paths like these:

- `row-0/300x250_Homepage Hero`
- `product-launch/300x250_Homepage Hero`
- `row-003/300x250_Homepage Hero`

## Customizing export folder and file names

You can override the automatic naming by entering your own template into **Export Folder Structure Naming**.

Use either:

- `name-only-template`
- `folder/name-template`

Anything before the final `/` becomes the variant folder path. Anything after it becomes the exported file name.

If you enter only a name template, Bannerify uses that resolved value as the exported item path. For HTML exports, `#{Item_Name}` creates a folder like `summer-sale` with its `index.html` inside. For image or video exports, it creates a file like `summer-sale.png`, `summer-sale.gif`, or `summer-sale.mp4`.

### Using spreadsheet header placeholders

You can use any spreadsheet header as a dynamic token by wrapping it like this:

- `#{headline}`
- `#{cta}`
- `#{campaign}`
- `#{product_name}`

If your header contains spaces or punctuation, Bannerify also supports the normalized underscore form. For example, a header called `CTA Label` can be used as `#{CTA Label}` or `#{cta_label}`.

### Using Bannerify's built-in placeholders

Bannerify also supports a few built-in values:

- `#{row_number}` for the current row number, starting at `1`
- `#{row_index}` for the zero-based row index
- `#{figma_name}` for the Figma banner name
- `#{figma_width}` for the banner width
- `#{figma_height}` for the banner height
- `#{figma_size}` for the banner size, like `300x250`
- `#{source}` for the spreadsheet source name
- `#{source_slug}` for a slugified version of the source name
- `#{platform}` for the current export platform

Examples:

- `#{campaign}/#{figma_size}_#{figma_name}`
- `#{row_number}_#{headline}`
- `exports/#{campaign}/#{figma_name}`
- `exports/#{row_number}_#{figma_size}`

> **Tip:** If you have spreadsheet headers that overlap with built-in token names, such as `name` or `folder`, you can explicitly reference the raw spreadsheet value with `#{csv_name}` or `#{csv_folder}`.

## ZIP structure and preview page behavior

When variants are enabled, Bannerify exports each row into its own variant folder inside the final `.zip` file.

For HTML exports, the generated preview `index.html` automatically points to each variant banner's exported path.

For canvas-based exports such as GIF, MP4, WebM, animated WebP, animated PNG, and static image exports, the preview `index.html` also follows the same variant folder and file naming rules.

That means your preview page stays in sync with:

- selected spreadsheet rows
- custom folder and file naming templates
- automatic `row`, `folder`, or `name` based fallback paths

## How spreadsheet media files are packaged

When a spreadsheet row swaps an embedded media layer, Bannerify handles the media according to the source type:

- Direct `.mp4`, `.webm`, or `.json` URLs stay as remote URLs in exported HTML banners
- ZIP-bundled `.mp4`, `.webm`, or `.json` files are copied into each exported HTML banner folder and referenced locally
- For canvas-based exports such as GIF, MP4, WebM, animated WebP, and animated PNG, Bannerify reads either the remote media URL or the ZIP media file during rendering, then uses that temporary media source for the exported frames

Bannerify only applies those spreadsheet media values during export. It does not permanently overwrite the original media URL stored on your Figma layer.

## Practical tips

- Keep your spreadsheet headers short and descriptive
- Use row checkboxes to exclude draft rows instead of deleting them
- Use a ZIP source when you want to bundle a spreadsheet with local image assets or local `.mp4`, `.webm`, or `.json` media files
- Use direct media URLs when your `.mp4`, `.webm`, or `.json` files are already hosted online
- Use image-filled layers for GIF file swaps; embedded media variants currently cover `.mp4`, `.webm`, and `.json`
- Leave naming blank unless you need a custom folder structure
- Test one export first if you are introducing a new naming template

---

---
url: "/bannerify/design/video.md"
description: "You can embed video files to a non-text Figma layer in your Bannerify timeline by clicking the **Settings** icon button for that layer, and then pasting in a URL pointing to a valid video file (`.mp4` or `.webm`) into the video embed input field."
---

# Including Video file embeds in your banners

> You can embed video files to a non-text Figma layer in your Bannerify timeline by clicking the **Settings** icon button for that layer, and then pasting in a URL pointing to a valid video file (`.mp4` or `.webm`) into the video embed input field.

### Video Tutorial: Add video embeds to Figma banner exports

This video walks through how to add video file embeds to your banners using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/8eqKeU4c4bc)

> **Warning:** **YouTube/Vimeo links will not work.** You must link directly to an .mp4 video file URL, by uploading your video to a service like [Dropbox](https://www.dropbox.com/) first.

> **Note:** **Hosted video URLs stay remote in HTML exports by default.** Bannerify keeps direct `.mp4`/`.webm` video embed URLs in the exported HTML instead of downloading the video into the ZIP. To package hosted video files into HTML export ZIPs, enable **Download videos into ZIP** beside the embed URL field. Google Ads HTML5 and Google App Campaign Playable uploads still leave video embed URLs unbundled because those ZIP uploads do not support packaged video files.

[Video](/assets/videos/bannerify/design/video-embeds.mp4)

While the Figma Plugin API doesn't support reading video files directly from your Figma file layers, Bannerify lets you embed videos into your non-text timeline layers by pasting in a direct URL pointing to an `.mp4` or `.webm` file.

To get a video file, you can either browse the selection of free stock videos on a site like [Pixabay](https://pixabay.com/videos/), or you can upload your own `.mp4` or `.webm` file to a file hosting service like [Dropbox](https://dropbox.com) or [Backblaze B2](https://www.backblaze.com/b2/cloud-storage.html), and then copy the URL link to your animation to use it in Bannerify.

By default, your video will automatically loop, but you can change this if needed by turning off the **Loop Embed** toggle.

To remove a video animation from your layer, click on the the **Settings** icon button again and remove the URL from the video embed input field.

> **Note:** If you're copying a Dropbox link, please ensure it's linking direclty to the video file itself (you should `.mp4` as part of the URL), as sometimes Dropbox "Share"/"Copy Link" buttons will link to an entire folder instead, depending on which part of the Dropbox interface they're viewed from.

> **Tip:** **Bulk applying video file URLs** As with other layer settings, you can also apply your video file URL setting to layers in bulk by using the [bulk apply](/bannerify/animation/animating-banners#applying-bulk-animations) feature.

> **Tip:** **Spreadsheet-driven video and Lottie swaps** You can also swap embedded media per spreadsheet row during export by using the [variants workflow](/bannerify/design/variants) with direct `.mp4`, `.webm`, or `.json` URLs, or matching `.mp4`, `.webm`, or `.json` files bundled inside an uploaded ZIP source.

> **Warning:** **Keep the total size of any video embeds under 4mb** to avoid your banner ad getting blocked by [Chrome's heavy ad policy update](https://developer.chrome.com/blog/heavy-ad-interventions) that they've rolled out.

---

---
url: "/bannerify/export/animated-png.md"
description: "Once you've finished animating your layers in the timeline, you can export your banners to animated PNG (APNG) files."
---

# Exporting your banners to animated PNG image

> Once you've finished animating your layers in the timeline, you can export your banners to animated PNG (APNG) files.

### Video Tutorial: Export banners to animated PNG (APNG) images from Figma

This video walks through how to export production-ready animated banners from Figma to animated PNG (APNG) images using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/GoBXTURjPuM)

[Video](/assets/videos/bannerify/export/animated-apng.mp4)

After you've clicked the **Export to GIF/Video** and configured your export settings, you can click the **Export APNG** button at the bottom of the export panel to begin exporting your banners from Figma to animated PNG images. This will export your animated banners to [animated PNG](https://www.litmus.com/blog/animated-pngs-in-email-an-alternative-to-gifs) image files.

> **Note:** **Browser Support**. Due to browser compatibility issues, **Animated PNG** images can _only_ be exported using [Chrome](https://www.google.com/intl/en_us/chrome/) or the [Figma Desktop App](https://www.figma.com/downloads/).

> **Tip:** **Including or excluding banners in your export**. By default, all of the top level layers in your Figma file that are loaded into Bannerify as banners will be included in your export; if you want to exclude any banners from being included (without [re-loading the selected banners](/bannerify/design/figma-frames#refreshing-your-banners-from-figma) in), you can toggle the **Include Banner in Export** switch in any banner's timeline header to "off"; this will hide that banner's timeline and also exclude it from being added to any exports.

### Frames Per Second

You can change the framerate of your GIF exports by using the **Frames Per Second** select box options. You can select from the FPS options below:

- 60 FPS (Ludicrous Mode)
- 30 FPS (Ultra Smooth)
- 24 FPS (Smooth)
- 18 FPS (Less Smooth)
- 12 FPS (Least Smooth)
- 6 FPS (Jittery)

> **Warning:** **Higher FPS will take longer to render**. Note that more frames will take longer to export and ouput larger file sizes. For example, exporting a **5 second timeline** at **24 FPS** will render out **120 frames** _per_ banner.

### Downloading the final PNG .zip file

After Bannerify has finished processing your banners, you'll be shown a confirmation message; you can download your `.zip` file containing your exported banners by clicking the **Download your .zip file** button.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

### Opening your PNG .zip file

After you've downloaded your `.zip` file from Figma to your computer, you can open your file explorer to the directory where it was saved. **Double clicking** on the exported `.zip` file will unzip the contents and let you use your banners however you like.

---

---
url: "/bannerify/export/animated-webp.md"
description: "Once you've finished animating your layers in the timeline, you can export your banners to animated WebP files."
---

# Exporting your banners to animated WebP image

> Once you've finished animating your layers in the timeline, you can export your banners to animated WebP files.

### Video Tutorial: Export banners to animated WebP images from Figma

This video walks through how to export production-ready animated banners from Figma to animated WebP images using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/-MsleYiQHIQ)

[Video](/assets/videos/bannerify/export/animated-webp.mp4)

After you've clicked the **Export to GIF/Video** and configured your export settings, you can click the **Export WebP** button at the bottom of the export panel to begin exporting your banners from Figma to animated WebP images. This will export your animated banners to [animated WebP](https://css-tricks.com/gifs-without-the-gif-the-most-performant-image-and-video-options-right-now/#aa-use-animated-webp) image files.

> **Note:** **Browser Support**. Due to browser compatibility issues, **Animated WebP** videos can _only_ be exported using [Chrome](https://www.google.com/intl/en_us/chrome/) or the [Figma Desktop App](https://www.figma.com/downloads/).

> **Tip:** **Including or excluding banners in your export**. By default, all of the top level layers in your Figma file that are loaded into Bannerify as banners will be included in your export; if you want to exclude any banners from being included (without [re-loading the selected banners](/bannerify/design/figma-frames#refreshing-your-banners-from-figma) in), you can toggle the **Include Banner in Export** switch in any banner's timeline header to "off"; this will hide that banner's timeline and also exclude it from being added to any exports.

### Frames Per Second

You can change the framerate of your GIF exports by using the **Frames Per Second** select box options. You can select from the FPS options below:

- 60 FPS (Ludicrous Mode)
- 30 FPS (Ultra Smooth)
- 24 FPS (Smooth)
- 18 FPS (Less Smooth)
- 12 FPS (Least Smooth)
- 6 FPS (Jittery)

> **Warning:** **Higher FPS will take longer to render**. Note that more frames will take longer to export and ouput larger file sizes. For example, exporting a **5 second timeline** at **24 FPS** will render out **120 frames** _per_ banner.

### Downloading the final WebP .zip file

After Bannerify has finished processing your banners, you'll be shown a confirmation message; you can download your `.zip` file containing your exported banners by clicking the **Download your .zip file** button.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

### Opening your WebP .zip file

After you've downloaded your `.zip` file from Figma to your computer, you can open your file explorer to the directory where it was saved. **Double clicking** on the exported `.zip` file will unzip the contents and let you use your banners however you like.

---

---
url: "/bannerify/export/backup-image.md"
description: "This can be helpful for certain advertising platforms that prefer (or require) you to include a backup static fallback JPG image."
---

# Including a backup.jpg fallback image file for all banners

> This can be helpful for certain advertising platforms that prefer (or require) you to include a backup static fallback JPG image.

[Video](/assets/videos/bannerify/export/add-backup-image.mp4)

Enabling the **Include a "backup.jpg" for all banners** toggle will automatically export your frames from Figma as a @1x JPG and be included in each banner folder as a `backup.jpg` file.

Specifying a maximum size in kilobytes (kb) will automatically optimize the `backup.jpg` image file to be under your specified limit. If you don't specify a size limit for your backup image, it will automatically default to 200kb (you also can set a higher limit, if needed).

## Hiding layers from your backup images

[Video](/assets/videos/bannerify/design/hide-backup-layers.mp4)

If you have different content layers transitioning in and out at different points in your banner animation, you will likely want to hide some of those from appearing in the your `backup.jpg` file.

You can do this by enabling the **Hide in backup.jpg** toggle for any layer in its [layer settings panel](/bannerify/design/hide-layers-from-backup), which will ensure it doesn't get included in the backup image for that banner.

> **Tip:** You can also show or hide elements from your `backup.jpg` file in bulk by using the [bulk apply](/bannerify/animation/animating-banners#applying-bulk-animations) feature.

---

---
url: "/bannerify/export/banner-size-optimization.md"
description: "Some ad platforms have a size limit per banner (for example, 150kb), so you can use this HTML export setting to try and automatically fit each banner under that size threshold."
---

# Setting a maximum file size target for each banner in your HTML exports

> Some ad platforms have a size limit per banner (for example, 150kb), so you can use this HTML export setting to try and automatically fit each banner under that size threshold.

[Video](/assets/videos/bannerify/export/set-target-size.mp4)

Enabling the **Maximum file size target for each banner** option will allow you to specify a maximum size in kilobytes (kb) for each banner; the plugin will automatically optimize the image assets to be under your specified limit. If you don't specify a size limit with the compression option enabled, it will automatically default to 150kb, which is the size limit (per banner) imposed by Google Ads.

> **Note:** **If you have a low file size target, and also have lots of image assets in your banners** (and/or have the global image scale set to `1.5x` or `2x`), the banner sizes still may end up larger than your target, as there is a limit to how much each image asset can be compressed before it's un-usable.

> **Tip:** **Exporting WebP images instead of JPG/PNG**. You can optionally use WebP compression by enabling the **Use WebP** toggle switch. Enabling the the **Use WebP** toggle will automatically compress/convert any of JPG/PNG images into Google's **[WebP](https://en.wikipedia.org/wiki/WebP)** format instead; which is designed to have a better image:quality ratio. Please check the [WebP browser support](https://caniuse.com/webp) to ensure that using this feature aligns with the browsers you're supporting with your banner ads.

> **Warning:** **Any animated GIF files will not be included in the target file size**. Note, due to GIFs being large in file size by default and not highly compressible, any maximum file size targets will not include any animated GIFs that are included in your HTML banner export.

---

---
url: "/bannerify/export/cloudflare-pages.md"
description: "Use Bannerify's built-in Cloudflare Pages integration to publish an exported HTML banner preview page to a shareable URL."
---

# Upload a Bannerify preview page to Cloudflare Pages

> Use Bannerify's built-in Cloudflare Pages integration to publish an exported HTML banner preview page to a shareable URL.

Bannerify can publish the generated HTML preview page and all of its banner assets directly to Cloudflare Pages.

## Configure Cloudflare Pages

1. In Cloudflare, create an [API token](https://dash.cloudflare.com/profile/api-tokens) with **Cloudflare Pages: Edit** access for the account you want to use.
2. Copy the account ID from your Cloudflare dashboard.
3. In Bannerify, click **Export to HTML**, enable **Upload Preview Page**, and select **Cloudflare Pages**.
4. Paste the API token and account ID, then enter a lowercase Pages project name using letters, numbers or hyphens.

After you click **Export Banners**, Bannerify uploads the generated preview files and returns a Cloudflare Pages preview URL. If the named Pages project does not exist, Bannerify creates it with `main` as the production branch before uploading.

The API token is stored in your Figma user's private client storage. The account ID and project name are saved with the current Figma page so the same project can be reused for later exports.

Cloudflare Pages offers a free plan for static sites, subject to its current [Pages limits](https://developers.cloudflare.com/pages/platform/limits/).

---

---
url: "/bannerify/export/code-output.md"
description: "Choose the correct Bannerify HTML output for an ad platform, responsive layout, or custom hosting workflow."
---

# Ad Platform Options

> Choose the correct Bannerify HTML output for an ad platform, responsive layout, or custom hosting workflow.

[Video](/assets/videos/bannerify/export/use-editable-text.mp4)

Every option in Bannerify's **Code Output Settings** has a dedicated guide below. Choose the exact destination requested by the media team instead of selecting a similarly named Google, responsive, or legacy platform format.

## Standard HTML outputs

- [HTML/JS (CSS @keyframes)](/bannerify/export/platforms/html-keyframes)
- [HTML/JS (GSAP/GreenSock)](/bannerify/export/platforms/html-gsap)

## Advertising platform outputs

- [AdForm](/bannerify/export/platforms/adform)
- [AdForm Mobile (MRAID)](/bannerify/export/platforms/adform-mobile)
- [Adition](/bannerify/export/platforms/adition)
- [AdRoll](/bannerify/export/platforms/adroll)
- [Adobe Ad Cloud](/bannerify/export/platforms/adobe-ad-cloud)
- [Amazon Ads](/bannerify/export/platforms/amazon-ads)
- [AppLovin (Responsive HTML5)](/bannerify/export/platforms/applovin-responsive)
- [AppNexus](/bannerify/export/platforms/appnexus)
- [Basis](/bannerify/export/platforms/basis)
- [BidTheatre](/bannerify/export/platforms/bidtheatre)
- [Delta Projects](/bannerify/export/platforms/delta-projects)
- [DemandScience](/bannerify/export/platforms/demandscience)
- [DoubleClick (DCM)](/bannerify/export/platforms/doubleclick-dcm)
- [DoubleClick Studio](/bannerify/export/platforms/doubleclick-studio)
- [DV360](/bannerify/export/platforms/dv360)
- [Flashtalking](/bannerify/export/platforms/flashtalking)
- [Google Ad Manager (DFP)](/bannerify/export/platforms/google-ad-manager)
- [Google Ads](/bannerify/export/platforms/google-ads)
- [Google Ads (Responsive HTML5)](/bannerify/export/platforms/google-ads-responsive)
- [Google App Campaign (Playable)](/bannerify/export/platforms/google-app-campaign-playable)
- [Google App Campaign (Responsive)](/bannerify/export/platforms/google-app-campaign-responsive)
- [Google Display Network](/bannerify/export/platforms/google-display-network)
- [IAB](/bannerify/export/platforms/iab)
- [Jivox Dynamic Creative (GSAP)](/bannerify/export/platforms/jivox-gsap)
- [Jivox Dynamic Creative (CSS)](/bannerify/export/platforms/jivox-css)
- [Performance Max (PMAX)](/bannerify/export/platforms/performance-max)
- [Responsive HTML (Media Queries)](/bannerify/export/platforms/responsive-html-media-queries)
- [Simpli.fi](/bannerify/export/platforms/simplifi)
- [Seznam Sklik](/bannerify/export/platforms/seznam-sklik)
- [6sense Dynamic Creative](/bannerify/export/platforms/6sense)
- [Sizmek](/bannerify/export/platforms/sizmek)
- [StackAdapt](/bannerify/export/platforms/stackadapt)
- [The Trade Desk](/bannerify/export/platforms/the-trade-desk)
- [USSD (Tap to SMS)](/bannerify/export/platforms/ussd-sms)
- [USSD (Tap to Call)](/bannerify/export/platforms/ussd-call)
- [Yandex](/bannerify/export/platforms/yandex)
- [Xandr](/bannerify/export/platforms/xandr)

## Multi-platform and other HTML outputs

- [Multiple Ad Platforms](/bannerify/export/platforms/multiple-ad-platforms)
- [Scaleable HTML/JS (CSS @keyframes)](/bannerify/export/platforms/scaleable-html)
- [Responsive HTML/JS (CSS @keyframes)](/bannerify/export/platforms/responsive-html-keyframes)
- [Figma Sections (Separate .zip Files)](/bannerify/export/platforms/figma-sections)

---

---
url: "/bannerify/export/gif.md"
description: "Once you've finished animating your layers in the timeline, you can export your banners to animated GIF files."
---

# Exporting your banners to animated GIF files

> Once you've finished animating your layers in the timeline, you can export your banners to animated GIF files.

### Video Tutorial: Export banners to GIFs from Figma

This video walks through how to export production-ready animated banners from Figma to GIFs using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/J2wk4r1QL1k)

[Video](/assets/videos/bannerify/export/animated-gif.mp4)

Once you're happy with your banners and would like to export them to GIF, WebM, MP4 or animated WebP file you can click the **Export to GIF/Video** button in the Bannerify header. This will open the GIF/Video export settings.

> **Note:** **Including or excluding banners in your export**. By default, all of the frames in your Figma file that are loaded into Bannerify as banners will be included in your export; if you want to exclude any banners from being included, you can toggle the **Export** switch in any banner's timeline header to "off"; this will hide that banner's timeline and also exclude it from being added to any exports.

> **Tip:** **Including or excluding banners in your export**. By default, all of the top level layers in your Figma file that are loaded into Bannerify as banners will be included in your export; if you want to exclude any banners from being included (without [re-loading the selected banners](/bannerify/design/figma-frames#refreshing-your-banners-from-figma) in), you can toggle the **Include Banner in Export** switch in any banner's timeline header to "off"; this will hide that banner's timeline and also exclude it from being added to any exports.

### Frames Per Second

You can change the framerate of your GIF exports by using the **Frames Per Second** select box options. You can select from the FPS options below:

- 60 FPS (Ludicrous Mode)
- 30 FPS (Ultra Smooth)
- 24 FPS (Smooth)
- 18 FPS (Less Smooth)
- 12 FPS (Least Smooth)
- 6 FPS (Jittery)

> **Warning:** **Higher FPS will take longer to render**. Note that more frames will take longer to export and ouput larger file sizes. For example, exporting a **5 second timeline** at **24 FPS** will render out **120 frames** _per_ banner.

### Lossless or lossy compression

By default, GIFs are exported with *Lossless* compression, which means that the file size is kept low without any noticeable quality loss. If you require even smaller GIFs (at the expensive of some quality loss), you can enable **Lossy** compression instead, and adjust the custom compression quality slider to your needs.

> **Note:** **Setting advanced dithering options**. If you know what you're doing, you can customise the type of [dithering](https://en.wikipedia.org/wiki/Dither#Examples_2) that's used in your GIF export by changing the image dithering dropdown selector option in the GIF export settings panel.

### Using global color palette

If you're exporting a GIF where the color palette for every frame is the same (with only some minor movement, text changes etc between them) and are seeing some color artifacts, you may want to enable the **All frames have the same color palette** toggle option, which will re-use the color palette from the first frame in your GIF, and apply that to all of the other frames in your GIF, too.

> **Warning:** **Global color palettes can be buggy**. Please only use this option as a last resort if your GIF is showing unwanted color related artifacts or banding, as it can cause other issues if some colors in other frames of your GIF aren't included in the first frame.

### Infinitely loop playback

Enabling the **infinitely loop playback** option will export GIFs that continuously loop their animation timeline forever. If you disable this setting, your GIFs will play through their animation timeline once, and then freeze on the final frame of the animation. This option only applies to **GIF** exports.

### Flagging transparent backgrounds for GIFs

By default, your GIF exports won't include transparent backgrounds. If your GIF does require transparency, Add the word **transparent** anywhere in your banner (parent Figma frame) layer name.

### Downloading the final GIF .zip file

After Bannerify has finished processing your banners, you'll be shown a confirmation message; you can download your `.zip` file containing your exported banners by clicking the **Download your .zip file** button.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

### Opening your GIF .zip file

After you've downloaded your `.zip` file from Figma to your computer, you can open your file explorer to the directory where it was saved. **Double clicking** on the exported `.zip` file will unzip the contents and let you use your banners however you like.

---

---
url: "/bannerify/export/html.md"
description: "Once you've finished animating your layers in the timeline, you can export your banners to animated HTML banners"
---

# Exporting your banners to HTML

> Once you've finished animating your layers in the timeline, you can export your banners to animated HTML banners

### Video Tutorial: Export banners to HTML/GSAP from Figma

This video walks through how to export production-ready animated banners from Figma to HTML/GreenSock (GSAP) in seconds using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/SS2J6k5Wo7s)
### Video Tutorial: Export HTML banners from Figma to multiple ad platforms

This video walks through how to export animated HTML banners from Figma to multiple ad platforms with one click using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/Q16MPp9YKjg)

[Video](/assets/videos/bannerify/export/html-export.mp4)

## Exporting to HTML

Once you're happy with your banners and would like to export them to HTML, you can click the **Export to HTML** button in the Bannerify header. This will open the HTML export settings.

After you've configured all of your HTML export settings, you can click the **Export Banners** button at the bottom of the export panel to begin exporting your banners from Figma to HTML.

After Bannerify has finished processing your banners, you'll be shown a confirmation message; you can download your `.zip` file containing your exported banners by clicking the **Download your .zip file** button.

After you've downloaded your `.zip` file from Figma to your computer, you can open your file explorer to the directory where it was saved. **Double clicking** on the exported `.zip` file will unzip the contents and let you use your banners however you like.

> **Note:** **Please ensure you unzip the exported `.zip` file first** before using the banners or uploading them to an ad platform, as the exported .zip file contains all of the individual banners (and the nested `_zips` folder, where all of your banners are pre-zipped individually, ready to be uploaded to an ad platform).

> **Warning:** **Browser ad blockers can stop local banner previews from playing correctly.** If an exported HTML banner looks frozen, does not animate, or behaves differently in your browser preview, temporarily disable ad blocker/privacy extensions for the local preview file or test in another browser before re-exporting.

Each HTML output format has its own setup and packaging requirements. Use the [Ad Platform Options](/bannerify/export/code-output) guide to choose the correct format before exporting.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

## Standard Options

### Adding a 1px black border to all banners

Enabling the 1px border option will automatically include a `1px solid black` border to the CSS of all of your banners. This can be helpful for certain advertising platforms that prefer (or require) you to include a 1px black border to your banners.

### Adding a preloader animations to all banners

Enabling the preloader option will automatically include a preloader to the HTML of all of your banners. This loading animation will be displayed until all of the banner's images have loaded in the web browser.

## Playback Options

### Setting the number of times to play through banners

Setting this option will specify how many times you would like the banner timeline on all of your banners to play through from start to end. The default option is **1**, which means that your banners will play through the animation timeline from start to end **once**.

You can change this number by entering a higher number into the number input field, like **6**, for example. This would ensure that the timeline animation for all of your banners are played through **six times** from start to end.

### Infinitely looping your banners

You can repeat the animation timeline to play on repeat _forever_ in all of your banners by enabling the **Infinitely loop all banners** option.

## Include individual .zip files for each banner

Enabling the **Include individual .zip files for each banner** toggle will include an additional folder called `_zips` in your exported file. The `_zips` folder will contain individual zip files for each of the banners that you've exported. This can be useful and time saving if your advertising platform requires you to upload a zip file for each banner.

> **Info:** **Optionally include backup.jpg from zips** If you want the `backup.jpg` image file to be included inside each zip, enabling the **Add "backup.jpg" to individual zip files** toggle will ensure that `backup.jpg` images are included inside your individual zips. If this toggle is disabled while individually zipping your banners, and you've _also_ enabled the **Include a "backup.jpg" for all banners** toggle, all of your backup images will also be included in a `_backups` folder inside the root directory of the main Bannerify exported `.zip` file.

## Choosing an HTML output format

Bannerify can export platform-neutral HTML, platform-specific upload packages, responsive layouts, and several batch formats. Each option in **Code Output Settings** has a dedicated guide under [Ad Platform Options](/bannerify/export/code-output), including its setup, click handling, package structure, and testing notes.

## Including or excluding banners in your export

By default, all of the top level layers in your Figma file that are loaded into Bannerify as banners will be included in your export; if you want to exclude any banners from being included (without [re-loading the selected banners](/bannerify/design/figma-frames#refreshing-your-banners-from-figma) in), you can toggle the **Include Banner in Export** switch in any banner's timeline header to "off"; this will hide that banner's timeline and also exclude it from being added to any exports.

## Minified code exports

To optimize file sizes, Bannerify will minifies all the code that's exported by default, and will save out a single `.html` file per banner. If you need your code to be more readable and/or split out into separate `.html`, `.css`, `.js` files, you can turn off the **Minified** toggle in the code export options.

## Export text as paragraph tags instead of SVG images

By default, any text layers in your Bannerify timeline will be exported as SVG images (in image tags), but you can optionally export these as rich text (in paragraph tags) instead by enabling the **Export text as <p> tags instead of <svg>** toggle option.

---

---
url: "/bannerify/export/inject-custom-code.md"
description: "You can (optionally) inject any custom HTML, CSS and Javscript into all of your banners from the HTML export settings panel."
---

# Inject custom HTML/CSS/Javascript code into all of your HTML banner exports

> You can (optionally) inject any custom HTML, CSS and Javscript into all of your banners from the HTML export settings panel.

### Video Tutorial: Add custom HTML, CSS, and Javascript to Figma banner exports

This video walks through how to add custom HTML, CSS, and Javascript to Figma banner exports using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/Uwe6PLmErRU)

[Video](/assets/videos/bannerify/export/inject-custom-code.mp4)

If you need to add your own custom HTML/CSS/Javascript to all of your HTML banner exports, you can enable the **Inject Custom Code** toggle in the export settings, which will allow you to add custom HTML before the closing `` (for adding content) or `` (for adding meta tags or asset links) tags, or adding custom CSS to a new **style** tag, or adding custom Javascript code inside new a `` tag.

> **Tip:** **Custom disclaimer overlay toggle example**. You can reference [this CodePen HTML/CSS/JS code example](https://codepen.io/hypermatic/pen/YzbPjvK) as a basic example for a common use case for this feature, which will inject a toggleable disclaimer pop-up over your banners. Feel free to copy and modify the styles and content as needed.

## Saved Custom Code Presets (Optional)

[Video](/assets/videos/bannerify/export/saved-code-presets.mp4)

The **Saved Custom Code Presets** feature lets you save and reuse different configurations of custom HTML, CSS, and JavaScript code when exporting banners. To use it, you can populate your custom code in the four available areas (Head HTML, Body HTML, CSS, and JavaScript), enter a descriptive name, and click **Save as New Preset** to store that configuration for future use.

Once saved, you can quickly load any preset from the **Load Saved Preset (Optional)** dropdown menu to instantly populate all custom code areas with your saved configuration. This eliminates the need to manually copy and paste code snippets each time you export banners with different requirements. You can manage your presets by deleting ones you no longer need or updating existing ones by loading them, making changes, and saving with the same name. All presets are stored locally within your current Figma app (using the [clientStorage](https://www.figma.com/plugin-docs/api/figma-clientStorage/) API from Figma) and persist whenever you reopen the Bannerify code panel across different Figma files, making it easy to maintain consistent code across multiple export sessions.

---

---
url: "/bannerify/export/make.md"
description: "If you want to upload your banners online (rather than just included locally in the exported `.zip` file), you can use the built-in custom Make webhook upload integration in the Bannerify HTML export settings."
---

# Automatically upload your banners to a Make Webhook URL

> If you want to upload your banners online (rather than just included locally in the exported `.zip` file), you can use the built-in custom Make webhook upload integration in the Bannerify HTML export settings.

To use this feature, you can click the **Export to HTML** button in the Bannerify header, enable the **Upload Preview Page** toggle, select the **Make** dropdown option, then paste in your valid [Make webhook](https://help.make.com/webhooks) URL.

After you click the **Export Banners** button, you will see confirmation of the Make webhook POST being completed, with your .zip file containing the banners uploaded, along with a link to view your "Zap" history to confirm it ran in Make as expected.

---

---
url: "/bannerify/export/netlify.md"
description: "If you want to host the preview page of all your banners online (rather than just included locally in the exported `.zip` file), you can use the built-in Netlify upload integration in the Bannerify HTML export settings."
---

# Automatically upload preview page to a Netlify URL

> If you want to host the preview page of all your banners online (rather than just included locally in the exported `.zip` file), you can use the built-in Netlify upload integration in the Bannerify HTML export settings.

### Video Tutorial: Upload preview links for HTML banners from Figma to Netlify

This video walks through how to upload preview links for HTML banners from Figma to Netlify using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/ZBJeKCTWo4k)

[Video](/assets/videos/bannerify/export/netlify-upload.mp4)

To use this feature, you can click the **Export to HTML** button in the Bannerify header, enable the **Upload Preview Page** toggle, select the **Netlify** dropdown option, then paste in your Netlify [personal access token](https://app.netlify.com/user/applications) to connect Bannerify and create a new Netlify site for the current Figma page.

> **Warning:** **If Netlify is blocked on your network**. If preview uploads work for one teammate but not another, ask your IT team to allow `proxy.hypermatic.com` and `api.netlify.com`.

You can optionally click on the **Change site name** link to update the auto-generated subdomain name from Netlify to something more personalized, and then click the **Refresh** icon button in Figma after saving it in Netlify to show the updated URL.

After you click the **Export Banners** button, you will see confirmation of the Netlify preview page being uploaded, along with a link to view it, and another link to the Netlify settings page to manage the site.

---

---
url: "/bannerify/export/platforms/6sense.md"
description: "Generate the Bannerify starter output for a developer-customized 6sense dynamic creative."
---

# Exporting 6sense dynamic HTML creatives

> Generate the Bannerify starter output for a developer-customized 6sense dynamic creative.

Select **6sense Dynamic Creative** when a developer will finish the creative using 6sense company data and AppNexus click tracking. Bannerify adds starter personalization code, a sample company-to-URL mapping, and the platform libraries needed by that implementation.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

> **Warning:** This output is a developer starter, not a completed dynamic campaign integration. A developer must replace the sample API configuration and mappings, connect the required dynamic text elements, review the click URL logic, and test the result with the campaign's 6sense setup before delivery.

Contact [6sense](https://6sense.com/contact/) for account-specific API and implementation details.

---

---
url: "/bannerify/export/platforms/adform-mobile.md"
description: "Export AdForm Mobile MRAID HTML creatives from Bannerify."
---

# Exporting mobile MRAID banners for AdForm

> Export AdForm Mobile MRAID HTML creatives from Bannerify.

Select **AdForm Mobile (MRAID)** for mobile in-app AdForm placements that explicitly require MRAID. Bannerify adds the mobile metadata and routes the banner click through AdForm's MRAID click URL using `mraid.open()`.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Confirm the required dimensions, MRAID version, file-size limit, and preview method with the media team before delivery. The host app supplies the MRAID runtime when the creative is served.

---

---
url: "/bannerify/export/platforms/adform.md"
description: "Export AdForm-ready HTML banner ZIP files from Bannerify."
---

# Exporting HTML banners for AdForm

> Export AdForm-ready HTML banner ZIP files from Bannerify.

Select **AdForm** for standard AdForm HTML5 banner uploads. Bannerify includes the AdForm DHTML runtime, binds the banner click to AdForm's `clickTAG`, and creates the required `manifest.json` with the creative dimensions and destination URL.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Upload the individual ZIP files from the `_zips` folder. See the [AdForm export tutorial](/bannerify/tutorials/export-banners-for-adform-from-figma) for a complete walkthrough.

---

---
url: "/bannerify/export/platforms/adition.md"
description: "Export clickTag-enabled HTML banner ZIP files for Adition."
---

# Exporting HTML banners for Adition

> Export clickTag-enabled HTML banner ZIP files for Adition.

Select **Adition** when the destination platform is Adition. Bannerify wraps the creative with the platform's click destination and produces one fixed-size HTML package for each included Figma frame.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Upload the individual ZIP files from the `_zips` folder and confirm the requested dimensions and maximum file size with the campaign brief.

---

---
url: "/bannerify/export/platforms/adobe-ad-cloud.md"
description: "Export clickTag-enabled HTML banner ZIP files for Adobe Advertising Cloud."
---

# Exporting HTML banners for Adobe Ad Cloud

> Export clickTag-enabled HTML banner ZIP files for Adobe Advertising Cloud.

Select **Adobe Ad Cloud** for HTML creatives delivered through Adobe Advertising Cloud. Bannerify defines the configured `clickTag` and binds it to the banner after the document is ready.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Upload the individual ZIP files from the `_zips` folder. Confirm dimensions, file-size limits, and any campaign-specific tracking requirements with the Adobe Ad Cloud operator.

---

---
url: "/bannerify/export/platforms/adroll.md"
description: "Export clickTag-enabled HTML banner ZIP files for AdRoll."
---

# Exporting HTML banners for AdRoll

> Export clickTag-enabled HTML banner ZIP files for AdRoll.

Select **AdRoll** for fixed-size HTML creatives that will be uploaded to AdRoll. Bannerify defines the destination as `window.clickTag` and binds the full banner click to that URL.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Upload the individual ZIP files from the `_zips` folder and validate them against the current AdRoll creative requirements supplied with the campaign.

---

---
url: "/bannerify/export/platforms/amazon-ads.md"
description: "Export Amazon Ads HTML creatives with Amazon SDK click handling."
---

# Exporting HTML banners for Amazon Ads

> Export Amazon Ads HTML creatives with Amazon SDK click handling.

Select **Amazon Ads** when the creative will run in an Amazon HTML ad workflow. Bannerify loads Amazon's advertising SDK, routes clicks through `SDK.clickThrough()`, and writes the creative JavaScript to the separate file structure expected by this output.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Bannerify disables WebP for this format. Upload the individual ZIP files from `_zips`, and confirm current size, asset, and policy requirements with the Amazon campaign brief.

---

---
url: "/bannerify/export/platforms/applovin-responsive.md"
description: "Export self-contained portrait, landscape, and optional square MRAID HTML creatives for AppLovin."
---

# Exporting responsive HTML5 creatives for AppLovin

> Export self-contained portrait, landscape, and optional square MRAID HTML creatives for AppLovin.

Select **AppLovin (Responsive HTML5)** when you need one self-contained MRAID HTML file that adapts to full-screen mobile placements.

## Setup

1. Create one `9:16` portrait frame and one `16:9` landscape frame in Figma. Add one square frame if the campaign brief also requires a `1:1` layout.
2. Include those frames in the Bannerify timeline.
3. Click **Export to HTML** and select **AppLovin (Responsive HTML5)**.
4. Export and unzip Bannerify's downloaded file.
5. Upload the self-contained `.html` file to the AppLovin workflow specified by the client or media team.

Bannerify waits for AppLovin's MRAID ready event before starting, displays the included layout whose aspect ratio is closest to the device viewport, and scales it proportionally to cover the placement. It also includes a loading indicator, keeps video muted, routes clicks through `mraid.open()`, and embeds images and downloaded video files directly into the HTML. The finished creative does not need a separate `images` or `videos` folder.

Keep the required CTA visible in the design, and do not add a close button because AppLovin supplies one for the placement.

## Why both orientations are required

AppLovin's `9:16` requirement applies to portrait video and image end-card assets. HTML playables have a different requirement: the single HTML file must work properly in both portrait and landscape orientations.

Bannerify therefore requires one `9:16` portrait frame and one `16:9` landscape frame for this export. The two frames can use the same copy, images, and creative concept; the landscape frame only needs to adapt the layout for the wider orientation. Bannerify combines both frames into one responsive HTML file. A `1:1` square frame is optional.

> **Info:** If a client asks for only a `9:16` asset, confirm whether they need a video, image end card, or HTML playable. A portrait-only brief can be valid for the first two formats, but it is not sufficient for Bannerify's **AppLovin (Responsive HTML5)** export.

## Exporting multiple creative versions

Put each portrait and landscape set inside its own Figma Section. A Section may also contain one square frame. Bannerify creates one self-contained AppLovin `.html` file per Section.

> **Warning:** This single-file format does not currently support Lottie or YouTube layers because they depend on external runtime files. Convert those layers to an image sequence or a small muted video first. Bannerify also checks the `2 MB` compressed and `50 MB` uncompressed limits used by this export.

See AppLovin's [HTML playable specifications](https://support.applovin.com/en/growth/promoting-your-apps/welcome-to-applovin/creative-specs-and-guidelines) for the current single-file, orientation, audio, and click-through rules.

---

---
url: "/bannerify/export/platforms/appnexus.md"
description: "Export AppNexus-compatible HTML banner ZIP files from Bannerify."
---

# Exporting HTML banners for AppNexus

> Export AppNexus-compatible HTML banner ZIP files from Bannerify.

Select **AppNexus** for creatives delivered through the legacy AppNexus workflow. Bannerify loads the AppNexus HTML5 library and uses its clickTag wrapper so the platform can provide the final destination at serve time.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Upload the individual ZIP files from `_zips`. AppNexus is now part of Xandr; use the separate [Xandr](/bannerify/export/platforms/xandr) option when that is the name specified by the media team.

See the [AppNexus export tutorial](/bannerify/tutorials/export-banners-for-appnexus-from-figma) for a complete example.

---

---
url: "/bannerify/export/platforms/basis.md"
description: "Export clickTag-enabled HTML banner ZIP files for Basis."
---

# Exporting HTML banners for Basis

> Export clickTag-enabled HTML banner ZIP files for Basis.

Select **Basis** for fixed-size HTML creatives that will be uploaded through Basis. Bannerify defines the configured destination as `window.clickTag` and binds the full banner click to that URL.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Upload the individual ZIP files from `_zips` and confirm the requested dimensions and package-size limits with the campaign brief.

---

---
url: "/bannerify/export/platforms/bidtheatre.md"
description: "Export BidTheatre HTML creatives with platform metadata and click handling."
---

# Exporting HTML banners for BidTheatre

> Export BidTheatre HTML creatives with platform metadata and click handling.

Select **BidTheatre** for HTML creatives delivered through BidTheatre. Bannerify adds the BidTheatre HTML5 helper, reads the served `clickurl` parameter, and includes `metadata.json` with the creative dimensions and entry file.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Upload the individual ZIP files from `_zips` and validate them with the current BidTheatre workflow before delivery.

---

---
url: "/bannerify/export/platforms/delta-projects.md"
description: "Export Delta Projects HTML creatives with manifest metadata and platform click handling."
---

# Exporting HTML banners for Delta Projects

> Export Delta Projects HTML creatives with manifest metadata and platform click handling.

Select **Delta Projects** for HTML creatives delivered through the Delta Projects platform. Bannerify adds the platform boot code, uses its served clickTag API, and creates `manifest.json` with the creative dimensions, entry file, and destination URL.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Upload the individual ZIP files from `_zips` and confirm any campaign-specific requirements with the media team.

---

---
url: "/bannerify/export/platforms/demandscience.md"
description: "Export clickTag-enabled HTML banner ZIP files for DemandScience, formerly Terminus."
---

# Exporting HTML banners for DemandScience

> Export clickTag-enabled HTML banner ZIP files for DemandScience, formerly Terminus.

Select **DemandScience** for HTML creatives delivered through DemandScience, formerly Terminus. Bannerify reads the served `clickTAG` query parameter and opens it when the banner is clicked.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Upload the individual ZIP files from `_zips` and confirm dimensions, file-size limits, and any campaign-specific parameters with the media team.

---

---
url: "/bannerify/export/platforms/doubleclick-dcm.md"
description: "Export fixed-size clickTag-enabled HTML banners for DoubleClick Campaign Manager and Campaign Manager 360."
---

# Exporting HTML banners for Campaign Manager 360

> Export fixed-size clickTag-enabled HTML banners for DoubleClick Campaign Manager and Campaign Manager 360.

Select **DoubleClick (DCM)** for fixed-size HTML creatives delivered through DoubleClick Campaign Manager, now called Campaign Manager 360. Bannerify adds Google-compatible size metadata and binds the banner to `window.clickTag`.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Upload the individual ZIP files from `_zips`. See the [DCM export tutorial](/bannerify/tutorials/export-banners-for-dcm-from-figma) for a complete walkthrough.

---

---
url: "/bannerify/export/platforms/doubleclick-studio.md"
description: "Export Studio Enabler HTML creatives with background and layer-specific exits."
---

# Exporting HTML banners for DoubleClick Studio

> Export Studio Enabler HTML creatives with background and layer-specific exits.

Select **DoubleClick Studio** when the creative will use the Studio Enabler workflow. Bannerify waits for the Enabler to initialize and become visible before starting the banner, then routes background and linked-layer clicks through named `Enabler.exit()` events.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Prototype links applied to individual Figma layers become separate Studio exit names. Unlinked banner areas use the background exit.

See the [DoubleClick Studio export tutorial](/bannerify/tutorials/export-banners-for-doubleclick-from-figma) and Google's [Studio HTML5 guidance](https://support.google.com/richmedia/answer/2389093) for current trafficking requirements.

---

---
url: "/bannerify/export/platforms/dv360.md"
description: "Export fixed-size clickTag-enabled HTML banner ZIP files for DV360."
---

# Exporting HTML banners for Display & Video 360

> Export fixed-size clickTag-enabled HTML banner ZIP files for DV360.

Select **DV360** for fixed-size HTML creatives delivered through Display & Video 360. Bannerify adds Google-compatible size metadata, defines the configured destination as `window.clickTag`, and packages each included Figma frame separately.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Upload the individual ZIP files from `_zips` and confirm the accepted dimensions, maximum package size, and account permissions with the DV360 operator.

---

---
url: "/bannerify/export/platforms/figma-sections.md"
description: "Create separate Bannerify HTML packages for groups of frames organized in Figma Sections."
---

# Batch exporting HTML banners by Figma Section

> Create separate Bannerify HTML packages for groups of frames organized in Figma Sections.

Select **Figma Sections (Separate .zip Files)** when each Figma Section represents a separate creative set or responsive banner package.

## Setup

1. Put each group of related banner frames inside its own Figma Section.
2. Load the frames into Bannerify and click **Export to HTML**.
3. Select **Figma Sections (Separate .zip Files)**.
4. Export and unzip the main Bannerify download.
5. Use the separately named package created for each Section.

Bannerify groups included frames by their parent Section and preserves the Section name in the exported structure. Frames that belong to different creative versions should not share the same Section.

---

---
url: "/bannerify/export/platforms/flashtalking.md"
description: "Export Flashtalking HTML creatives with the platform API and manifest file."
---

# Exporting HTML banners for Flashtalking

> Export Flashtalking HTML creatives with the platform API and manifest file.

Select **Flashtalking** for creatives delivered through the Flashtalking HTML5 API. Bannerify waits for the Flashtalking runtime, applies clickTag `1` to the banner container, and creates `manifest.js` with the entry file and creative dimensions.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Upload the individual ZIP files from `_zips`. See the [Flashtalking export tutorial](/bannerify/tutorials/export-banners-for-flashtalking-from-figma) for a complete walkthrough.

---

---
url: "/bannerify/export/platforms/google-ad-manager.md"
description: "Export fixed-size Bannerify HTML5 banners for publisher-side uploads to Google Ad Manager."
---

# Exporting HTML banners for Google Ad Manager

> Export fixed-size Bannerify HTML5 banners for publisher-side uploads to Google Ad Manager.

Select **Google Ad Manager (DFP)** for fixed-size HTML5 creatives that will be uploaded through Google Ad Manager. Bannerify adds Google-compatible size metadata and click handling to each banner package.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Upload the individual banner `.zip` files from the `_zips` folder. Keep each Figma frame at the exact dimensions requested by the publisher or campaign brief.

> **Note:** Google Ad Manager is the publisher-side ad serving product formerly called DoubleClick for Publishers. For a Google Ads campaign, use one of the dedicated [Google Ads](/bannerify/export/platforms/google-ads) options instead.

See Google's [HTML5 creative guidance for Google Ad Manager](https://support.google.com/admanager/answer/7046799) for current account and upload requirements.

---

---
url: "/bannerify/export/platforms/google-ads-responsive.md"
description: "Combine supplied Google Display banner layouts into one responsive uploaded HTML5 ZIP."
---

# Exporting one responsive HTML5 ZIP for Google Ads

> Combine supplied Google Display banner layouts into one responsive uploaded HTML5 ZIP.

Select **Google Ads (Responsive HTML5)** when a Google Ads Display campaign needs one uploaded HTML5 ZIP containing several standard banner layouts.

## Setup

1. Create a separate Figma frame for every banner size the campaign needs, such as `300x250`, `728x90`, or `160x600`.
2. Include all of those frames in the Bannerify timeline.
3. Click **Export to HTML** and select **Google Ads (Responsive HTML5)**.
4. Export and unzip Bannerify's downloaded file.
5. Upload the single responsive ZIP inside the `_zip` folder to Google Ads.

Bannerify adds Google's responsive uploaded-HTML5 metadata and switches to the included layout whose dimensions match the available ad space. It does not generate new layouts or stretch one frame across unrelated banner sizes, so include every size required by the campaign.

This format is different from [Responsive HTML (Media Queries)](/bannerify/export/platforms/responsive-html-media-queries), which is intended for custom hosting, and from [Google App Campaign (Responsive)](/bannerify/export/platforms/google-app-campaign-responsive), which is a full-screen portrait and landscape format for campaigns promoting an app.

> **Note:** Google Ads limits uploaded HTML5 access to eligible accounts and supported campaign types. A fresh test account may reject HTML5 uploads even when the ZIP structure is valid.

See Google's [responsive uploaded HTML5 ad documentation](https://support.google.com/google-ads/answer/9050398) and [responsive layout documentation](https://support.google.com/webdesigner/answer/7002441).

---

---
url: "/bannerify/export/platforms/google-ads.md"
description: "Export separate fixed-size HTML5 ZIP files from Bannerify for Google Ads Display campaigns."
---

# Exporting fixed-size HTML5 banners for Google Ads

> Export separate fixed-size HTML5 ZIP files from Bannerify for Google Ads Display campaigns.

Select **Google Ads** when the campaign needs a separate uploaded HTML5 ZIP for each fixed banner size. Bannerify adds the required `ad.size` metadata and Google-compatible click handling to every exported banner.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Upload the individual banner ZIPs from the `_zips` folder. Each Figma frame should match a supported Google Ads dimension, and each compressed upload ZIP must be `600 KB` or smaller.

Use [Google Ads (Responsive HTML5)](/bannerify/export/platforms/google-ads-responsive) instead when the campaign explicitly needs one responsive upload containing multiple supplied banner layouts.

See Google's [uploaded display ad specifications](https://support.google.com/google-ads/answer/1722096) for current dimensions, file-size limits, and account eligibility requirements.

---

---
url: "/bannerify/export/platforms/google-app-campaign-playable.md"
description: "Export fixed-orientation playable HTML5 ZIP files for Google App Campaign placements."
---

# Exporting playable HTML5 ads for Google App Campaigns

> Export fixed-orientation playable HTML5 ZIP files for Google App Campaign placements.

Select **Google App Campaign (Playable)** when Google Ads asks for the Exit API or playable App Campaign metadata. Bannerify includes Google's `exitapi.js` script, uses `ExitApi.exit()` for banner clicks, adds the App Campaign metadata, and scales the creative for a full-screen playable placement.

## Setup

1. Create the Figma frame at `320x480` for portrait or `480x320` for landscape.
2. Include the frame in the Bannerify timeline.
3. Click **Export to HTML** and select **Google App Campaign (Playable)**.
4. Export and unzip the main Bannerify download.
5. Upload the individual playable ZIP from the `_zips` folder.

Bannerify downloads external video layer URLs for this format, places each video in the exported banner's `videos` folder, and updates the HTML to use the bundled file.

You can check the upload package with the [Google Ads HTML5 Validator](https://h5validator.appspot.com/adwords/asset) by enabling **Select for App Campaigns**. Keep the entire uploaded banner ZIP within Google's current App Campaign HTML5 limit.

Use [Google App Campaign (Responsive)](/bannerify/export/platforms/google-app-campaign-responsive) when one upload must contain both portrait and landscape layouts.

---

---
url: "/bannerify/export/platforms/google-app-campaign-responsive.md"
description: "Export one Google App Campaign ZIP containing portrait and landscape playable layouts."
---

# Exporting responsive HTML5 ads for Google App Campaigns

> Export one Google App Campaign ZIP containing portrait and landscape playable layouts.

Select **Google App Campaign (Responsive)** when you need one App Campaign upload ZIP that supports both full-screen orientations.

## Setup

1. Create one `320x480` portrait frame and one `480x320` landscape frame in Figma.
2. Include both frames in the Bannerify timeline.
3. Click **Export to HTML** and select **Google App Campaign (Responsive)**.
4. Export and unzip Bannerify's downloaded file.
5. Upload the responsive ZIP inside the `_zip` folder to Google Ads.

Bannerify adds the combined orientation metadata, switches to the matching Figma layout at runtime, and scales that layout proportionally to cover the full-screen placement. Keep important text, logos, and buttons away from the outer edges because wider or taller screens may crop those edges.

## Exporting multiple creative versions

Put each `320x480` and `480x320` pair inside its own Figma Section. Bannerify creates one responsive upload ZIP per Section. Every included Section must contain exactly one supported portrait frame and one supported landscape frame.

> **Note:** This format is only for campaigns promoting a mobile app. It does not convert these layouts into standard Google Display banner sizes.

You can check the package with the [Google Ads HTML5 Validator](https://h5validator.appspot.com/adwords/asset) by enabling **Select for App Campaigns**. Also preview the result in both orientations to confirm that important content stays within the safe area.

---

---
url: "/bannerify/export/platforms/google-display-network.md"
description: "Export separate fixed-size HTML5 ZIP files for Google Display Network campaigns."
---

# Exporting HTML5 banners for Google Display Network

> Export separate fixed-size HTML5 ZIP files for Google Display Network campaigns.

Select **Google Display Network** for separate fixed-size HTML5 banner uploads to a Google Display campaign. Bannerify adds Google-compatible size metadata and click handling to each exported package.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Upload the individual banner ZIPs from the `_zips` folder. Use [Google Ads (Responsive HTML5)](/bannerify/export/platforms/google-ads-responsive) only when the campaign explicitly calls for one responsive upload containing several supplied layouts.

See Google's [uploaded display ad specifications](https://support.google.com/google-ads/answer/1722096) for supported dimensions, the current `600 KB` HTML5 ZIP limit, and account eligibility requirements.

---

---
url: "/bannerify/export/platforms/html-gsap.md"
description: "Export platform-neutral animated HTML banners using GreenSock GSAP."
---

# Exporting HTML banners with GSAP

> Export platform-neutral animated HTML banners using GreenSock GSAP.

Select **HTML/JS (GSAP/GreenSock)** for platform-neutral HTML banners that use GSAP for animation. This option does not add an ad-network SDK, manifest, or platform-specific click wrapper.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Use this format for custom hosting, development handoff, or a workflow that explicitly accepts GSAP-based HTML. See the [GSAP export tutorial](/bannerify/tutorials/export-banners-to-html-gsap-from-figma) for a complete example.

---

---
url: "/bannerify/export/platforms/html-keyframes.md"
description: "Export platform-neutral animated HTML banners using CSS keyframe animations."
---

# Exporting HTML banners with CSS keyframes

> Export platform-neutral animated HTML banners using CSS keyframe animations.

Select **HTML/JS (CSS @keyframes)** for platform-neutral HTML banners that use native CSS keyframe animations. This option does not add an ad-network SDK, manifest, or platform-specific click wrapper.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Use this format for custom hosting, development handoff, or an ad platform that accepts standard HTML and supplies its own integration instructions. If the destination appears elsewhere under [Ad Platform Options](/bannerify/export/code-output), use that dedicated option instead.

---

---
url: "/bannerify/export/platforms/iab.md"
description: "Export standard fixed-size HTML banners with an IAB-style served clickTag parameter."
---

# Exporting IAB HTML banners

> Export standard fixed-size HTML banners with an IAB-style served clickTag parameter.

Select **IAB** for a standard fixed-size HTML package when the campaign brief asks for Bannerify's IAB output. Bannerify reads the served `clicktag` query parameter and opens it when the banner is clicked.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

IAB guidance does not define one universal upload package for every ad server. Confirm the dimensions, file-size limit, naming, and validator with the receiving platform before delivery.

See the [IAB export tutorial](/bannerify/tutorials/export-banners-for-iab-from-figma) for a complete example.

---

---
url: "/bannerify/export/platforms/jivox-css.md"
description: "Export Jivox dynamic HTML creatives using Bannerify's CSS animation output."
---

# Exporting Jivox dynamic creatives with CSS animations

> Export Jivox dynamic HTML creatives using Bannerify's CSS animation output.

Select **Jivox Dynamic Creative (CSS)** when the Jivox workflow should use Bannerify's CSS animation output. Bannerify adds Jivox authoring and creative-size metadata and routes clicks through `jvxAd.openClickThrough()`.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Dynamic content bindings and feed setup are campaign-specific. Confirm those values and the final upload workflow with the Jivox developer or media team.

---

---
url: "/bannerify/export/platforms/jivox-gsap.md"
description: "Export Jivox dynamic HTML creatives using Bannerify's GSAP animation output."
---

# Exporting Jivox dynamic creatives with GSAP

> Export Jivox dynamic HTML creatives using Bannerify's GSAP animation output.

Select **Jivox Dynamic Creative (GSAP)** when the Jivox workflow should use GSAP animations. Bannerify adds the GSAP runtime, Jivox authoring and creative-size metadata, and `jvxAd.openClickThrough()` click handling.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Dynamic content bindings and feed setup are campaign-specific. Confirm those values and the final upload workflow with the Jivox developer or media team.

---

---
url: "/bannerify/export/platforms/multiple-ad-platforms.md"
description: "Generate several Bannerify platform formats from one HTML export."
---

# Exporting banners for multiple ad platforms

> Generate several Bannerify platform formats from one HTML export.

Select **Multiple Ad Platforms** when the same set of banners needs to be delivered in more than one supported platform format.

## Setup

1. Load the banner frames into Bannerify and click **Export to HTML**.
2. Select **Multiple Ad Platforms** under **Code Output Settings**.
3. Add every required platform to the platform selector.
4. Configure the shared export settings and click the export button.
5. Unzip the main Bannerify download. Each selected platform is placed in its own folder with the corresponding HTML, click handling, metadata, and package structure.

> **Note:** Platform requirements can differ. Check the dedicated page for every selected output before delivery, and validate the exact package in each destination platform.

See the [multiple ad platform export tutorial](/bannerify/tutorials/export-animated-html-banners-from-figma-to-multiple-ad-platforms) for a complete walkthrough.

---

---
url: "/bannerify/export/platforms/performance-max.md"
description: "Use Bannerify's Performance Max HTML output when a Google campaign workflow explicitly accepts an uploaded HTML creative."
---

# Exporting HTML banners for Performance Max

> Use Bannerify's Performance Max HTML output when a Google campaign workflow explicitly accepts an uploaded HTML creative.

Select **Performance Max (PMAX)** when your Google campaign workflow or media team explicitly asks for Bannerify's PMAX HTML output. Bannerify adds its PMAX retail product metadata and Google-compatible click handling to the exported creative.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Confirm the required dimensions, feed setup, upload method, and account eligibility with the person managing the campaign before delivery. Performance Max commonly assembles ads from uploaded assets, so the availability of an HTML upload depends on the exact campaign workflow.

---

---
url: "/bannerify/export/platforms/responsive-html-keyframes.md"
description: "Combine supplied layouts into responsive platform-neutral HTML using CSS keyframes."
---

# Exporting responsive platform-neutral HTML banners

> Combine supplied layouts into responsive platform-neutral HTML using CSS keyframes.

Select **Responsive HTML/JS (CSS @keyframes)** when several supplied Figma layouts should be combined into one platform-neutral responsive HTML output.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Bannerify uses the supplied frame dimensions to choose the matching layout at runtime. It does not generate missing layouts, so include each size or orientation required by the host environment.

This option does not add an ad-platform SDK or click wrapper. Use [Responsive HTML (Media Queries)](/bannerify/export/platforms/responsive-html-media-queries) when you need the clickTag-enabled responsive option, or choose a named platform format when the package will be uploaded to an ad network.

---

---
url: "/bannerify/export/platforms/responsive-html-media-queries.md"
description: "Combine supplied Figma layouts into a clickTag-enabled responsive HTML banner for custom hosting."
---

# Exporting responsive HTML banners with media queries

> Combine supplied Figma layouts into a clickTag-enabled responsive HTML banner for custom hosting.

Select **Responsive HTML (Media Queries)** when several supplied Figma layouts should be combined into one responsive HTML creative for custom hosting or a compatible third-party placement.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Bannerify includes the supplied layouts in one responsive document, uses media queries to select the matching layout, and adds the destination URL entered in the export panel. It does not generate new layouts, so include every size or breakpoint the placement requires.

> **Warning:** This is not a Google Ads upload format. Use [Google Ads (Responsive HTML5)](/bannerify/export/platforms/google-ads-responsive) for one responsive Google Display upload, or [Google Ads](/bannerify/export/platforms/google-ads) for separate fixed-size ZIPs.

See the [responsive HTML export tutorial](/bannerify/tutorials/export-responsive-html-banners-from-figma) for a complete walkthrough.

---

---
url: "/bannerify/export/platforms/scaleable-html.md"
description: "Scale one fixed Bannerify layout proportionally to the browser viewport."
---

# Exporting scaleable HTML banners

> Scale one fixed Bannerify layout proportionally to the browser viewport.

Select **Scaleable HTML/JS (CSS @keyframes)** when one fixed-layout banner should scale proportionally with the browser viewport.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

This mode scales the original Figma dimensions as one visual unit. It does not reflow individual elements, switch between supplied layouts, or create new ad sizes. Use [Responsive HTML (Media Queries)](/bannerify/export/platforms/responsive-html-media-queries) when the creative needs different layouts at different viewport sizes.

---

---
url: "/bannerify/export/platforms/seznam-sklik.md"
description: "Export Sklik-compatible fixed-size HTML banner ZIP files from Bannerify."
---

# Exporting HTML banners for Seznam Sklik

> Export Sklik-compatible fixed-size HTML banner ZIP files from Bannerify.

Select **Seznam Sklik** for fixed-size HTML creatives uploaded to Sklik. Bannerify generates Sklik-compatible HTML structure, preserves the configured destination link, and applies the platform-specific output cleanup required by this format.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Upload the individual ZIP files from `_zips` and test the exact generated package in the current Sklik validator or campaign account.

See [Seznam Sklik](https://www.sklik.cz/) for the current platform requirements.

---

---
url: "/bannerify/export/platforms/simplifi.md"
description: "Export Simpli.fi HTML creatives with the platform click macro."
---

# Exporting HTML banners for Simpli.fi

> Export Simpli.fi HTML creatives with the platform click macro.

Select **Simpli.fi** for HTML creatives delivered through Simpli.fi. Bannerify binds the banner click to the platform's `{{clickMacro}}` placeholder so Simpli.fi can supply the destination and tracking URL when the creative is served.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Upload the individual ZIP files from `_zips` and leave the generated click macro unchanged.

---

---
url: "/bannerify/export/platforms/sizmek.md"
description: "Export Sizmek HTML creatives with EB runtime click handling."
---

# Exporting HTML banners for Sizmek

> Export Sizmek HTML creatives with EB runtime click handling.

Select **Sizmek** for HTML creatives delivered through a Sizmek or compatible EB workflow. Bannerify loads the EB runtime, waits for it to initialize, and routes the banner click through `EB.clickthrough()`.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Upload the individual ZIP files from `_zips`. See the [Sizmek export tutorial](/bannerify/tutorials/export-banners-for-sizmek-from-figma) for a complete walkthrough.

---

---
url: "/bannerify/export/platforms/stackadapt.md"
description: "Export StackAdapt HTML creatives with the platform's served click parameter."
---

# Exporting HTML banners for StackAdapt

> Export StackAdapt HTML creatives with the platform's served click parameter.

Select **StackAdapt** for fixed-size HTML creatives uploaded to StackAdapt. Bannerify reads the served `click` query parameter and opens it when the banner is clicked.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

You can optionally enable **Put image files inside an /images subfolder** when the receiving workflow requires that structure. Upload the individual ZIP files from `_zips` and validate the final package with StackAdapt.

---

---
url: "/bannerify/export/platforms/the-trade-desk.md"
description: "Export The Trade Desk HTML creatives with a served clickTAG parameter."
---

# Exporting HTML banners for The Trade Desk

> Export The Trade Desk HTML creatives with a served clickTAG parameter.

Select **The Trade Desk** for fixed-size HTML creatives delivered through The Trade Desk. Bannerify reads the served `clickTAG` query parameter and opens it when the banner is clicked.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Upload the individual ZIP files from `_zips` and confirm the requested dimensions and package-size limits with the campaign brief.

---

---
url: "/bannerify/export/platforms/ussd-call.md"
description: "Create Studio Enabler HTML creatives that open a preconfigured phone call action when tapped."
---

# Exporting tap-to-call HTML banners

> Create Studio Enabler HTML creatives that open a preconfigured phone call action when tapped.

Select **USSD (Tap to Call)** when the primary banner action should open the device's phone interface. Bannerify uses the Studio Enabler, records separate website and tap-to-call counters, and opens the configured phone number with a `tel:` URL.

## Setup

1. Load the banner into Bannerify and click **Export to HTML**.
2. Select **USSD (Tap to Call)**.
3. Enter the website clickTag and telephone number shown in the export panel.
4. Export and unzip the main Bannerify download.
5. Upload the individual ZIP from `_zips` to the compatible Studio workflow.

Test the exact creative on supported mobile devices. Desktop browser previews may not have an application registered for `tel:` links.

---

---
url: "/bannerify/export/platforms/ussd-sms.md"
description: "Create Studio Enabler HTML creatives that open a preconfigured SMS action when tapped."
---

# Exporting tap-to-SMS HTML banners

> Create Studio Enabler HTML creatives that open a preconfigured SMS action when tapped.

Select **USSD (Tap to SMS)** when the primary banner action should open the device's SMS interface. Bannerify uses the Studio Enabler, records separate website and tap-to-SMS counters, and opens the configured phone number with an `sms:` URL.

## Setup

1. Load the banner into Bannerify and click **Export to HTML**.
2. Select **USSD (Tap to SMS)**.
3. Enter the website clickTag and the SMS phone number shown in the export panel.
4. Export and unzip the main Bannerify download.
5. Upload the individual ZIP from `_zips` to the compatible Studio workflow.

Test the exact creative on supported mobile devices. Desktop browser previews may not have an application registered for `sms:` links.

---

---
url: "/bannerify/export/platforms/xandr.md"
description: "Export Xandr-compatible HTML banner ZIP files from Bannerify."
---

# Exporting HTML banners for Xandr

> Export Xandr-compatible HTML banner ZIP files from Bannerify.

Select **Xandr** for HTML creatives delivered through the current Xandr workflow. Bannerify loads the AppNexus/Xandr HTML5 library and uses its clickTag wrapper so the platform can supply the destination at serve time.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Upload the individual ZIP files from `_zips`. Use the separate [AppNexus](/bannerify/export/platforms/appnexus) option only when the receiving workflow explicitly uses the legacy AppNexus name.

---

---
url: "/bannerify/export/platforms/yandex.md"
description: "Export Yandex HTML5 creatives with the Yandex banner API click URL."
---

# Exporting HTML banners for Yandex

> Export Yandex HTML5 creatives with the Yandex banner API click URL.

Select **Yandex** for HTML5 creatives delivered through Yandex. Bannerify loads the Yandex HTML5 banner API and assigns the platform-provided click URL to the exported banner.

## Exporting with this option

1. Load the banner frames you want to export into Bannerify.
2. Click **Export to HTML** in the Bannerify header.
3. Select the output option named in this guide under **Code Output Settings**.
4. Enter the destination URL or other platform-specific values shown in the export panel.
5. Click the export button, download the generated `.zip`, and unzip the main Bannerify download.

If you enable **Include individual .zip files for each banner**, the upload-ready banner packages are placed in the `_zips` folder. Some responsive and single-file formats use a different package described on their dedicated page.

> **Note:** Always test the exact exported file in the destination platform or its official validator. A local browser preview confirms the creative renders, but it cannot confirm account eligibility or platform approval.

Upload the individual ZIP files from `_zips` and test them against Yandex's current [HTML5 banner requirements](https://yandex.com/support/direct/products-cpm-campaign/about.html).

---

---
url: "/bannerify/export/preview.md"
description: "Bannerify includes an HTML preview page inside of your banner .zip file exports, which is great for Sharing a preview of all your banners to a client or stakeholder on your team."
---

# Customizing the preview page for your exported HTML banners

> Bannerify includes an HTML preview page inside of your banner .zip file exports, which is great for Sharing a preview of all your banners to a client or stakeholder on your team.

[Video](/assets/videos/bannerify/export/customize-preview-page.mp4)

When you export any HTML banners, Bannerify will automatically include an HTML preview page. This file loads in all of your exported banners on the same page, and lays them out in a grid where you can see them all at the same time.

By default, the **Generate Preview Page** toggle is enabled in your HTML export settings panel, but if you'd prefer to exclude a preview page from being generated and added to your `.zip` package, you can optionally turn off this toggle, if needed.

## Preview Page Title

The name of your **Figma document** will be used as the `` tag for the exported HTML preview page from Bannerify.

## Preview Page Banner Order

The order of your banner frames in the Figma layers panel will be used to order your banners on the preview page.

## Selecting a layout for your preview page

Updating the **preview page layout** select box option will set the grid style used to position your banners in the generated `index.html` preview page. You can change this by selecting a different option in the select box.

### Masonry Layout Grid

The masonry layout mode option will automatically figure out the best layout to fit all of your banners. This can be a good option for a large banner set.

### Centered Layout Grid

The centered layout mode option will vertically align and horitzontally center all of the banners. This can be a good option for smaller banner sets.

## Enabling "Dark Mode" on your preview page

Enabling the **Dark Mode** setting will set a dark theme/background to your generated `index.html` preview page. You can enable this setting if your banner designs work better against a darker background.

## Adding a branded header to your preview page

If you're showing your `index.html` preview page to clients or third party stakeholders, you can add some custom HTML and CSS to apply your own branding or custom header to the page. Any HTML you add will be

### Custom HTML

Any code added to the **Custom HTML** field will be injected directly after the `` tag in the generated `index.html` page. You can add anything here, like a custom header, or something as simple as an `` tag linking to your company logo.

### Custom CSS

Any code added to the **Custom CSS** field will be injected into a custom `style` tag (so you don't need to add your own `style` tag in your input) in the `index.html` page. This can be used to style the **Custom HTML** you've added.

## Sharing your preview page online

The exported Bannerify `.zip` includes a root `index.html` file that displays all of the exported banners. You can either upload this package from Bannerify using one of the built-in integrations, or upload it manually to a static hosting service.

### Quick manual upload with Tiiny Host

For a quick drag-and-drop option, you can [manually upload the exported Bannerify `.zip` to Tiiny Host](/bannerify/export/tiiny-host). The package already contains the required root `index.html`, so you do not need to rearrange the exported files first.

### Built-in direct uploads

Enable **Upload Preview Page** in the Bannerify HTML export panel, then select one of these hosting providers:

- **[Netlify](/bannerify/export/netlify)** uploads the preview package to a Netlify site.
- **[Cloudflare Pages](/bannerify/export/cloudflare-pages)** uses a Cloudflare API token, account ID and Pages project name. Bannerify creates the Pages project automatically if it does not already exist.
- **[Vercel](/bannerify/export/vercel)** uses a Vercel access token and project name, with an optional Team ID. Each export creates a new preview deployment URL.

Cloudflare Pages has a free plan for static sites, subject to its current [Pages limits](https://developers.cloudflare.com/pages/platform/limits/). Vercel also has a free Hobby plan, but Vercel restricts Hobby accounts to personal, non-commercial use; business and team work requires an eligible paid plan.

Zapier and Make remain available for custom automation. Those integrations send the exported `.zip` to your webhook, so your Zap or Make scenario still needs a downstream static host if you want it to return a public preview URL.

### Using the preview with Commentful

Commentful review links currently display Figma frames rather than embedding an external live HTML preview. For QA, share the hosted Bannerify preview URL for animation and interaction checks alongside a Commentful review link for frame-based comments and approvals.

---

---
url: "/bannerify/export/retina-images.md"
description: "You can export JPG and PNG banner images at 0.5x, 1x, 1.5x, or 2x resolution from the global image scale setting in the HTML export settings panel."
---

# Rendering banner images at different resolutions in your exported HTML banners

> You can export JPG and PNG banner images at 0.5x, 1x, 1.5x, or 2x resolution from the global image scale setting in the HTML export settings panel.

[Video](/assets/videos/bannerify/export/enable-retina-images.mp4)

Using the **Global Image Scale** option will automatically export any **JPG** and **PNG** images at your selected scale: `0.5x`, `1x`, `1.5x`, or `2x`.

Higher scales will give you sharper looking images in your banners, but will also increase the file sizes of any **JPG** and **PNG** images.

You can also optionally [override this per layer](/bannerify/design/override-image-scale) by clicking any layer's **Settings** icon button in the main timeline to open the layer settings, where you can specify forcing the layer to be exported as `0.5x`, `1x`, `1.5x`, `2x`, or left as the default, which will use the global **Global Image Scale** setting.

---

---
url: "/bannerify/export/tiiny-host.md"
description: "Create a shareable Bannerify preview page URL by manually uploading the exported .zip file to Tiiny Host."
---

# Manually upload a Bannerify preview page to Tiiny Host

> Create a shareable Bannerify preview page URL by manually uploading the exported .zip file to Tiiny Host.

[Tiiny Host](https://tiiny.host/) is a manual drag-and-drop alternative if the built-in Bannerify preview hosting options are unavailable or blocked on your network.

Unlike the Netlify, Cloudflare Pages and Vercel integrations, Bannerify does not connect to Tiiny Host or upload files automatically. You upload the exported `.zip` through the Tiiny Host website after the Bannerify export finishes.

## Upload the preview page

1. In Bannerify, click **Export to HTML** and leave **Generate Preview Page** enabled.
2. Click **Export Banners** and save the generated `.zip` file.
3. Open [Tiiny Host](https://tiiny.host/), then drag and drop the Bannerify `.zip` into its uploader.
4. Choose a link name and follow the Tiiny Host prompts to publish the site.
5. Copy the generated URL to share the live banner preview with your client or team.

The Bannerify package already includes the required root `index.html` preview page, so you can upload the exported `.zip` as-is without extracting or rearranging its files.

> **Warning:** Tiiny Host is a separate third-party service. Its free plan currently has a 3 MB upload limit, and free users must log in at least once every three months to keep links online. Uploaded links are publicly accessible unless your plan includes password protection. Check the current [Tiiny Host pricing and limits](https://tiiny.host/pricing) before uploading confidential or larger banner packages.

---

---
url: "/bannerify/export/vercel.md"
description: "Use Bannerify's built-in Vercel integration to publish an exported HTML banner preview page to a shareable deployment URL."
---

# Upload a Bannerify preview page to Vercel

> Use Bannerify's built-in Vercel integration to publish an exported HTML banner preview page to a shareable deployment URL.

Bannerify can publish the generated HTML preview page and all of its banner assets directly to Vercel.

## Configure Vercel

1. Create a [Vercel access token](https://vercel.com/account/tokens).
2. In Bannerify, click **Export to HTML**, enable **Upload Preview Page**, and select **Vercel**.
3. Paste the access token and enter the Vercel project name you want to use.
4. If the project belongs to a Vercel team, also enter its Team ID.

After you click **Export Banners**, Bannerify uploads the generated preview files and returns the unique URL for the new Vercel preview deployment.

The access token is stored in your Figma user's private client storage. The project name and optional Team ID are saved with the current Figma page so they can be reused for later exports.

> **Warning:** Vercel's free Hobby plan is restricted to personal, non-commercial use. Business and team projects require an eligible paid plan. See the current [Vercel Hobby plan terms](https://vercel.com/docs/plans/hobby) before using it for client or company work.

---

---
url: "/bannerify/export/video.md"
description: "Once you've finished animating your layers in the timeline, you can export your banners to MP4 videos."
---

# Exporting your banners to MP4 videos

> Once you've finished animating your layers in the timeline, you can export your banners to MP4 videos.

### Video Tutorial: Export banners to MP4 videos from Figma

This video walks through how to export production-ready animated banners from Figma to MP4 Videos using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/rlq7Zq0fl7o)

[Video](/assets/videos/bannerify/export/animated-mp4.mp4)

After you've clicked the **Export to GIF/Video** and configured your export settings, you can click the **Export MP4** button at the bottom of the export panel to begin exporting your banners from Figma to MP4. This will export your animated banners to [h264](https://en.wikipedia.org/wiki/Advanced_Video_Coding) encoded [MP4](https://en.wikipedia.org/wiki/WebM) videos.

> **Note:** **Browser Support**. Due to browser compatibility issues, **MP4** videos can _only_ be exported using [Chrome](https://www.google.com/intl/en_us/chrome/) or the [Figma Desktop App](https://www.figma.com/downloads/).

> **Info:** **MP4s are automatically optimized**. MP4 video exports will automatically be optimized to get the best quality at the lowest file size.

> **Tip:** **Including or excluding banners in your export**. By default, all of the top level layers in your Figma file that are loaded into Bannerify as banners will be included in your export; if you want to exclude any banners from being included (without [re-loading the selected banners](/bannerify/design/figma-frames#refreshing-your-banners-from-figma) in), you can toggle the **Include Banner in Export** switch in any banner's timeline header to "off"; this will hide that banner's timeline and also exclude it from being added to any exports.

### Frames Per Second

You can change the framerate of your GIF exports by using the **Frames Per Second** select box options. You can select from the FPS options below:

- 60 FPS (Ludicrous Mode)
- 30 FPS (Ultra Smooth)
- 24 FPS (Smooth)
- 18 FPS (Less Smooth)
- 12 FPS (Least Smooth)
- 6 FPS (Jittery)

> **Warning:** **Higher FPS will take longer to render**. Note that more frames will take longer to export and ouput larger file sizes. For example, exporting a **5 second timeline** at **24 FPS** will render out **120 frames** _per_ banner.

### Adding an audio track to MP4 video exports

### Video Tutorial: Add audio to Figma video banner exports

This video walks through how to add audio files to your MP4 video banner exports in Figma using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/XLg0YGQglgA)

Before exporting your MP4 video, you can optionally include an .mp3 audio file to your exported videos by dragging and dropping an `.mp3` file from your computer (you can download .mp3 music files from a site like [Pixabay](https://pixabay.com/music/search/)) into the Bannerify export settings. Then you can click the **Export MP4** button at the bottom of the export panel to begin exporting your banners from Figma to MP4 with the audio track automatically included.

Alternatively, if you've already embedded a video URL into one of your layers and would prefer to use the audio from that video, you can enable the **Use audio from embedded video** toggle, and this will automatically include the audio from the video on your banner's timeline layer.

> **Note:** **Browser Support**. Due to browser compatibility issues, **MP4** videos can _only_ be exported using [Chrome](https://www.google.com/intl/en_us/chrome/) or the [Figma Desktop App](https://www.figma.com/downloads/).

### Downloading the final MP4 video .zip file

After Bannerify has finished processing your banners, you'll be shown a confirmation message; you can download your `.zip` file containing your exported banners by clicking the **Download your .zip file** button.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

### Opening your MP4 video .zip file

After you've downloaded your `.zip` file from Figma to your computer, you can open your file explorer to the directory where it was saved. **Double clicking** on the exported `.zip` file will unzip the contents and let you use your banners however you like.

---

---
url: "/bannerify/export/webm-video.md"
description: "Once you've finished animating your layers in the timeline, you can export your banners to WebM videos."
---

# Exporting your banners to WebM videos

> Once you've finished animating your layers in the timeline, you can export your banners to WebM videos.

### Video Tutorial: Export banners to WebM videos from Figma

This video walks through how to export production-ready animated banners from Figma to WebM Videos using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/Nur9nWx9Qhs)

[Video](/assets/videos/bannerify/export/animated-webm.mp4)

After you've clicked the **Export to GIF/Video** and configured your export settings, you can click the **Export WebM** button at the bottom of the export panel to begin exporting your banners from Figma to WebM. This will export your animated banners to [WebM](https://en.wikipedia.org/wiki/WebM) videos.

> **Note:** **Browser Support**. Due to browser compatibility issues, **WebM** videos can _only_ be exported using [Chrome](https://www.google.com/intl/en_us/chrome/) or the [Figma Desktop App](https://www.figma.com/downloads/).

> **Note:** **WebMs are automatically optimized**. WebM video exports will automatically be optimized to get the best quality at the lowest file size.

> **Tip:** **Including or excluding banners in your export**. By default, all of the top level layers in your Figma file that are loaded into Bannerify as banners will be included in your export; if you want to exclude any banners from being included (without [re-loading the selected banners](/bannerify/design/figma-frames#refreshing-your-banners-from-figma) in), you can toggle the **Include Banner in Export** switch in any banner's timeline header to "off"; this will hide that banner's timeline and also exclude it from being added to any exports.

### Frames Per Second

You can change the framerate of your GIF exports by using the **Frames Per Second** select box options. You can select from the FPS options below:

- 60 FPS (Ludicrous Mode)
- 30 FPS (Ultra Smooth)
- 24 FPS (Smooth)
- 18 FPS (Less Smooth)
- 12 FPS (Least Smooth)
- 6 FPS (Jittery)

> **Warning:** **Higher FPS will take longer to render**. Note that more frames will take longer to export and ouput larger file sizes. For example, exporting a **5 second timeline** at **24 FPS** will render out **120 frames** _per_ banner.

### Downloading the final WebM video .zip file

After Bannerify has finished processing your banners, you'll be shown a confirmation message; you can download your `.zip` file containing your exported banners by clicking the **Download your .zip file** button.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

### Opening your WebM video .zip file

After you've downloaded your `.zip` file from Figma to your computer, you can open your file explorer to the directory where it was saved. **Double clicking** on the exported `.zip` file will unzip the contents and let you use your banners however you like.

## Configuring video export FPS (frames per second) settings

You can change the framerate of your video exports by using the **Frames Per Second** select box options. You can select from the FPS options below:

- 60 FPS (Ludicrous Mode)
- 30 FPS (Ultra Smooth)
- 24 FPS (Smooth)
- 18 FPS (Less Smooth)
- 12 FPS (Least Smooth)
- 6 FPS (Jittery)

---

---
url: "/bannerify/export/zapier.md"
description: "If you want to upload your banners online (rather than just included locally in the exported `.zip` file), you can use the built-in custom Zapier webhook upload integration in the Bannerify HTML export settings."
---

# Automatically upload your banners to a Zapier Webhook URL

> If you want to upload your banners online (rather than just included locally in the exported `.zip` file), you can use the built-in custom Zapier webhook upload integration in the Bannerify HTML export settings.

### Video Tutorial: Export animated HTML banners from Figma to Google Drive with Zapier

This video walks through how to export animated HTML banners from Figma to Google Drive with Zapier using the Bannerify plugin.
[Embedded media](https://www.youtube.com/embed/yVS3gDPDNUo)

[Video](/assets/videos/bannerify/export/zapier-upload.mp4)

To use this feature, you can click the **Export to HTML** button in the Bannerify header, enable the **Upload Preview Page** toggle, select the **Zapier** dropdown option, then paste in your valid [Zapier webhook](https://zapier.com/apps/webhook/integrations) URL.

After you click the **Export Banners** button, you will see confirmation of the Zapier webhook POST being completed, with your .zip file containing the banners uploaded, along with a link to view your "Zap" history to confirm it ran in Zapier as expected.

---

---
url: "/bannerify/faq/plans.md"
description: "To get unlimited usage of all of the Bannerify Pro features, you will need to purchase a license from the [Hypermatic website](https://hypermatic.com/bannerify#pro)."
---

# Bannerify Free vs Bannerify Pro

> To get unlimited usage of all of the Bannerify Pro features, you will need to purchase a license from the [Hypermatic website](https://hypermatic.com/bannerify#pro).

Bannerify includes 10 free trials of the _Pro_ version. Once these trials have been used up, the Figma plugin will revert to their _Free_ version, which will have limited functionality.

  - **Bannerify Free**: ### Animation Timeline Unlimited Usage       ### WebM Exports Unlimited Usage       ### HTML Exports Try during 10 Pro Trials       ### GIF Exports Try during 10 Pro Trials       ### MP4 Video Exports Try during 10 Pro Trials
  - **Bannerify Pro**: ### Animation Timeline Unlimited Usage       ### WebM Exports Unlimited Usage       ### HTML Exports Unlimited Usage       ### GIF Exports Unlimited Usage       ### MP4 Video Exports Unlimited Usage

---

---
url: "/bannerify/faq/security.md"
description: "Bannerify runs as an official plugin inside of Figma's own app, which are reviewed and approved by the Figma team."
---

# Bannerify Security

> Bannerify runs as an official plugin inside of Figma's own app, which are reviewed and approved by the Figma team.

The Figma plugin is run directly from Figma's own servers, and runs inside of a your Figma file, which means that it inherits all of the [security](https://www.figma.com/security/) and infrastructure of the Figma platform, which exceed industry standards for data protection and security:

- SOC 2 Type 2
- SOC 3
- Cloud Security Alliance (CSA) STAR: Level 1
- ISO/IEC 27001:2013
- ISO/IEC 27018:2019
- EU Cloud Code of Conduct (COC): Level 2

There's **no additional software** that needs to be installed to use the Figma plugin, as Figma plugins run as a built-in part of Figma's own native functionality, and all Figma plugins Accessibile and can be instantly run from inside any Figma file, or via the official [Figma Community](https://www.figma.com/community) ecosystem inside of the Figma app.

If your organization is already approved to use Figma, then you _already have access_ to Figma plugins.

## How Bannerify works

The [Bannerify Figma plugin](https://www.figma.com/community/plugin/796124491692147799) helps users Export animated banners to production-ready HTML or video files.

Bannerify is designed to be privacy and security focused, so nothing _ever_ leaves your Figma file.

All functionality and file exports are handled client-side directly in the Figma plugin using the [Figma Plugins API](https://www.figma.com/plugin-docs/), and are _never_ uploaded, processed or stored anywhere in the cloud or outside of Figma.

## What Bannerify does and doesn't do

Bannerify uses the [Figma Plugins API](https://www.figma.com/plugin-docs/) to help users export production ready animated banners from Figma to HTML or video files, and download them _directly_ to their computer.

Bannerify doesn't rely on _any_ external servers to handle exporting banners from Figma to code or video files, which means that nothing in your Figma file ever leaves the Figma plugin or Figma itself; any files that are exported via the plugin are done so entirely locally to the user's own computer.

### Bannerify does

- Allow users to automatically export their animated banners to HTML files.
- Allow users to automatically export their animated banners to MP4, WebM or GIF files.
- Allow users to _optionally_ upload their exported HTML banners to their _own_ [Netlify](https://www.netlify.com/) account to automatically generate a preview link for stakeholders.
- Download any exported banner files _directly_ to the user's computer.

### Bannerify does _not_

- Upload _any_ data from your Figma file.
- Store _any_ data from your Figma file.
- Use _any_ servers or cloud storage to process or store your Figma data.
- Collect or store _any_ personal information (Figma plugins *cannot* access any private information about Figma projects, Figma teams or Figma users).

## How Figma plugins work

Figma plugins are written in HTML/CSS/Javascript, and are run in a tightly controlled [sandbox environment](https://www.figma.com/plugin-docs/how-plugins-run/) inside of the main Figma application.

Figma plugins can only do whatever Figma allows them to do inside the permissions of the [Figma Plugins API](https://www.figma.com/plugin-docs/), and importantly, **plugins don't have any access to personal information** about the Figma user running the plugin.

## What Figma plugins can and can't do

As per the article on [Figma plugin security](https://www.figma.com/blog/how-we-built-the-figma-plugin-system/), there are a limited number of things that Figma plugins can do, and many more things that they can't do:

### Figma plugins can

- Only be run by an explicit user action
- Show UI in a single plugin-specific dialog
- Read any data in your Figma document (for example, a “find layer by name” plugin)
- Modify any data in your Figma document (for example, a “rename selected layers” plugin)
- Communicate with any server over the internet (for example, an “import from service X” plugin)

### Figma plugins _cannot_

- Run by themselves
- Get information about the project or team that owns the file
- Access anything when they aren’t running
- Access data from any files other than the file they were run in
- Change Figma’s UI outside of the plugin UI dialog

> **Tip:** Figma account administrators at your company can [configure an allowlist of plugins](https://help.figma.com/hc/en-us/articles/4404228724759-Manage-plugins-and-widgets-in-an-organization) that are allowed inside the organization. This can be used to prevent untrusted Figma plugins from being run in any file in that organization.

---

---
url: "/bannerify/faq/troubleshooting.md"
description: "Troubleshooting guide for Bannerify exports, rendering issues, and platform constraints."
---

# Troubleshooting Bannerify

> Troubleshooting guide for Bannerify exports, rendering issues, and platform constraints.

### Rotated parent frame causing layer positioning issues

This usually occurs if the **parent frame** has been rotated to something other than **0 degrees** (e.g., "-90" or "180") before the contents were added, which throws off the positioning of the child layers. To resolve this, you can create a new **unrotated** frame with the same dimensions and copy or drag the child layers from the original rotated frame into the new frame with no rotation set.

### Text layer bounding box (cropping)

The other thing that might be throwing off the position or cropping a text layer is if the size of the text box doesn't match the size of the text itself. For example, if there are multiple lines of text, but the "bounding box" height is only very short, this will cause the positioning to be offset incorrectly. To resolve this, you can tweak the height of the bounding box to match the size of the text content itself.

### Blurred SVGs with shadows in Safari

There is a [known issue](https://forum.figma.com/t/pixelization-of-the-drop-shadow-of-my-svg-on-safari/36410/7) with SVGs that contain any drop shadows in Safari, where it will rasterize the vector into pixels instead, and that causes it to look less sharp.

One suggestion in the thread above would be to split the shadow layer and button/content layer onto two different layers; so the button layer above without a shadow would still render as a sharp looking SVG in Safari, and the layer underneath would only serve to add the shadow behind it.

Alternatively, you could also override the image format just for that button CTA layer to "PNG" via the plugin, and also override that layer's scale setting to @2x retina, and this would ensure the CTA gets exported as a 2x PNG image, which will keep it looking sharp and avoid the SVG shadows issue in Safari.

### Colors/gradients in GIFs look a bit grainy

GIFs are a bit different from normal JPG/PNG images, as they can only contain a maximum of 256 colors. If you're using highly detailed images or gradients with lots of color variation, it's expected that it won't look as sharp or have the same color accuracy as the original images used as the source of the GIF due to this limitation of the GIF format.

### Transparency isn't showing in GIFs

The GIF file format supports either 0% opacity or 100% opacity, but nothing in between. This means that you can have an animated GIF with a completely transparent background behind elements that are completely opaque and visible. This means that layers either need to be completely transparent or not; any layers with lower than 50% opacity will be transparent, while any layers with opacity greater than 50% will be opaque.

**Flagging transparent GIFs in Figma**. By default, your GIF exports won't include transparency. If your GIF does require transparency, Add the word **transparent** anywhere in your Figma layer's name.

### Where to host .mp4 video files

For adding videos to Bannerify, the plugin will load up any URLs that link directly to a .mp4 file, so unfortunately, URLs pointing to Vimeo/YouTube or any web-based player-type links won't be usable in this case. One good option for hosting videos is [Backblaze B2](https://www.backblaze.com/b2/cloud-storage.html); you can sign up for a free account that gives you 10gb of free storage, and if you create a public storage bucket, you should be able to copy/paste the links for any video files you upload to it and drop that link to the .mp4 into Bannerify. Another popular file hosting option is [Dropbox](https://www.dropbox.com/), which will let you upload your `.mp4` file and use that link in the Bannerify plugin; Bannerify will automatically handle changing the `?dl=0` to `?raw=1` to ensure the link points directly to the video file (rather than the Dropbox website player).

### Thin white line around image exports

Occasionally some images will contain a faint, thin white line around the edges. Figma [does this](https://twitter.com/Skcrub/status/1255544876701270017) if a layer isn't positioned on a rounded pixel value (e.g., Y: 156.76 or X: 56.3) will automatically result in this sub-pixel line getting included in the export. Bannerify tries to automatically round these values for layers that allow resizing via the Figma Plugin API, but to manually resolve the issue (if needed), please ensure that your layer positions are all rounded pixel values.

### High-res banners not exporting to MP4

If you're exporting high-resolution banners to MP4 video from the plugin, sometimes Figma hits its 2gb memory limit ceiling and can't render out the video file to `.mp4` directly. To workaround this, you can export your banners from Bannerify to the WebM format instead and then convert the exported `.webm` video files to `.mp4` outside of Figma using the [Handbrake](https://handbrake.fr/) video transcoder.

### Google Ads not being validated

There are a couple of common reasons why an HTML banner might not be uploading or being validated by Google. Usually, the banner file size will be too large, or the banner sizes don't exactly meet the "standard" sizes. You can use these services to validate your banners for [Google Ads](https://h5validator.appspot.com/adwords/asset) or [DoubleClick](https://h5validator.appspot.com/dcm/) before uploading them.

### Exported HTML banner is not animating or playing in the browser

If your exported HTML banner looks frozen, does not animate, or works in Bannerify's preview but not when you open the exported HTML file in a browser, check whether an ad blocker or privacy browser extension is enabled. Some extensions can block local or ad-related HTML files from running correctly. Temporarily disable the extension for the local preview file, open the export in another browser, or upload the banner to your normal preview/staging environment and test it there.

### Blank file extensions using Figma desktop app on Windows

There's a known issue with the Figma desktop app (only on Windows), which also happens for normal file exports from Figma. When you go to save your file, you may see an "all files" label. If you ignore this and continue by clicking "Save," it should still save the file with the correct extension and allow you to open it as expected after it has downloaded to your computer. If it still saves the file with a blank extension, you should be able to rename the file to manually append the correct extension to the file name.

### Google HTML validator converting SVG elements with drop shadow into PNG (when uploaded via mobile)

For some reason, when uploading a banner .zip to the [DCM Validator](https://h5validator.appspot.com/dcm/asset) via a mobile device (for example, iPhone) browser, the validator will automatically convert any SVG elements that contain a drop shadow into a PNG instead, causing it to look more pixelated in the preview.

### Pixelated image exports

If you're exporting banners while the image assets in Figma are still progressively loading, they may be exported looking pixelated, as the image wasn't fully loaded in the Figma file before it was exported. To resolve this, please ensure that all of the images have loaded 100% and are looking sharp inside the Figma file before exporting your banners with the Bannerify plugin. To help further with solving this issue, you can use the ["Downsizer" feature](/tinyimage/downsize) in [TinyImage](https://www.figma.com/community/plugin/789009980664807964/TinyImage-Compressor) to shrink down your image fills to match their layer size, which will shrink their file size and ensure they load much faster in your Figma file.

### Adding aria-hidden='true' attributes to layers

If you need to include aria-hidden attributes for accessibility reasons, you can do this per-layer by including `aria-hidden` in your Figma layer name; this will automatically include `aria-hidden="true"` to that HTML element when the banners are exported to HTML.

### VPN may be required in China

Note, if you're in China, the accounts server _may_ be blocked by "The Great Firewall of China." If you're seeing an activation error, despite using a valid key, you will likely need to use a [VPN](https://protonvpn.com/free-vpn/) to resolve the issue.

### 'An error occurred while loading the plugin environment'

This may happen in the Figma desktop app if [the Use Developer VM](https://www.figma.com/plugin-docs/debugging/#developer-vm) debug setting in Figma is enabled by mistake; you can make sure it's turned off by **right-clicking** anywhere on your Figma canvas, hovering over **Plugins**, then hovering over **Development**, and making sure that the **Use Developer VM** is _unchecked_; after it is unchecked (and does _not_ have a tick icon next to it), re-running the Figma plugin should work as expected.

---

---
url: "/bannerify/overview/install.md"
description: "Ensure you're logged into your Figma account, then follow the steps below to install and run the [Bannerify Figma plugin](https://www.figma.com/community/plugin/796124491692147799/bannerify-banner-studio)."
---

# Install and run the Bannerify Figma Plugin

> Ensure you're logged into your Figma account, then follow the steps below to install and run the [Bannerify Figma plugin](https://www.figma.com/community/plugin/796124491692147799/bannerify-banner-studio).

### Video Tutorial: How to install (and remove) Figma plugins

This video tutorial is a complete step-by-step guide showing you the new process of how to install (and remove) Figma plugins after the mid-2024 "UI3" update to the Figma app
[Embedded media](https://www.youtube.com/embed/CzjxF2Jv6PM)

## Installing the Bannerify Figma Plugin

1. Open any Figma file.
2. Click on the **Actions** icon in the bottom Figma toolbar.
3. Click the **Plugins & Widgets** tab to filter results to Figma plugins.
4. Search for **Bannerify** in the search bar.
5. Click on the **Bannerify** search result.
6. Click the **Save** button to install the Bannerify plugin.

> **Note:** Figma users in a **Figma Organization** may only be able to install approved plugins. Please contact your Figma Org admin at your company to [approve the Bannerify plugin](https://help.figma.com/hc/en-us/articles/4404228724759-Manage-plugins-and-widgets-in-an-organization) if you're unable to install certain Figma plugins.

## Running the Bannerify Figma Plugin

Once you've [installed](#installing-the-figma-plugin) the **Bannerify** Figma plugin, to run the plugin in your Figma file:

  1. **Right-click** anywhere on your Figma file's page canvas
  2. Hover your mouse over the **Plugins** ▶ menu item
  3. Hover your mouse over the **Saved plugins** ▶ menu item
  4. Click on the **Bannerify** plugin menu item

> **Tip:** After you've run the **Bannerify** plugin once in a Figma file, you'll be able to quickly re-launch it by clicking the **Bannerify** icon in the right-hand side Figma column (under the **Plugin** subheading).

> **Warning:** Only Figma users with **Edit** access to a Figma file can run a Figma plugin in that Figma file; if you only have **View** permissions, you won't be able to run any Figma plugins in that file.

## Uninstalling the Bannerify Figma plugin

1. Open any Figma file.
2. Click on the **Actions** icon in the bottom Figma toolbar.
3. Click the **Plugins & Widgets** tab to filter results to Figma plugins.
4. Search for **Bannerify** in the search bar.
5. Click on the **Bannerify** search result.
6. Click the **Remove** button to uninstall the Bannerify plugin.

> **Note:** This will remove the plugin from your **Saved Plugins** list, however, the Figma plugin may still show up under your **Recents** list (if it has been recently run), as Figma saves this list of recent plugins in your browser's/app's local storage. The plugin will vanish from the Recents menu after other plugins are run to take its place.

---

---
url: "/bannerify/overview/pro.md"
description: "After trying out all the Pro features of Bannerify **10 times**, you can optionally upgrade to continue using all the extra features that are only available in the Pro version; or if you're a casual user, you can continue using the Free version forever."
---

# Activating Bannerify Pro

> After trying out all the Pro features of Bannerify **10 times**, you can optionally upgrade to continue using all the extra features that are only available in the Pro version; or if you're a casual user, you can continue using the Free version forever.

> **Tip:** Need a Bannerify Pro account? You can purchase a Pro account for you or your team by visiting the [Bannerify](https://www.hypermatic.com/bannerify/#pro) product page on the Hypermatic website.

## Activating the Figma plugin with an Bannerify Pro license key

1. [Purchase a Bannerify Pro license](https://www.hypermatic.com/bannerify/#pro) for you or your team.
2. [Run the Bannerify Plugin](/bannerify/overview/install), then click on the **Upgrade Now** button at the bottom of the Figma plugin window.
3. **Paste in your Pro License Key** (from your license purchase receipt), then click the **Unlock** button.

This will unlock the Pro version of Bannerify and give you unlimited use all of the Figma plugin features.

> **Warning:** Note, if you're in China, the accounts server _may_ be blocked by "The Great Firewall of China". If you're seeing a activation error, despite using a valid key, you will likely need to use a [VPN](https://protonvpn.com/free-vpn/) to resolve the issue.

> **Info:** If you ever need to use a different license key at any time (for example, you were using your own personal Pro license key, but now your employer is buying you a Pro license to use instead), you can press **CTRL + K** while your plugin window is open in Figma, and this will bring up the license key prompt again, where you can enter a different license key.

---

---
url: "/bannerify/overview/quickstart.md"
description: "Animate Figma designs and export production-ready banners as HTML, GIF, video, and other advertising formats."
---

# Get started with Bannerify

> Animate Figma designs and export production-ready banners as HTML, GIF, video, and other advertising formats.

[![Bannerify Figma Plugin](https://www.hypermatic.com/bannerify.jpg)](https://www.figma.com/community/plugin/796124491692147799/bannerify-banner-studio)

## Install and activate Bannerify

- [Install & Run the Figma plugin](/bannerify/overview/install.md): How to run Bannerify inside of Figma
- [Activate Bannerify Pro](/bannerify/overview/pro.md): How to buy and use a Pro license key

## Using Bannerify

  - [Bannerify Documentation](/bannerify/design/figma-frames.md): Detailed docs with short screencaps
  - [Bannerify Video Tutorials](/bannerify/tutorials.md): Full step-by-step video walkthroughs

## Frequently asked questions

- [Troubleshooting Bannerify](/bannerify/faq/troubleshooting.md): Common issues issues you may run into
- [Bannerify Security](/bannerify/faq/security.md): Details about how Bannerify works
- [Receipts](/faq/receipts.md): Find email receipts and PDF invoices
- [Billing](/faq/billing.md): Manage your Pro subscription
- [License Seat Management](/faq/seats.md): Manage the Figma users on your key
- [Bannerify Free vs Pro](/bannerify/faq/plans.md): Compare Free vs Pro features

[Video](https://www.hypermatic.com/assets/videos/bannerify/BANNERIFY_DEMO.mp4)

## Bannerify features

- Works with Figma Design, Figma Buzz and Figma Motion.
- Build timeline animations and preview them inside Figma.
- Generates all the images, HTML, CSS and Javascript you need for every banner.
- Export to HTML/CSS, GSAP, ``, Google Ads, DoubleClick and many more.
- Create your own animations, or use dozens of professional presets.
- Set a maximum file size (kb) per banner for automatic asset optimization.
- Optionally include static fallback "backup" JPG for every banner.
- Generate responsive HTML preview pages, with optional upload workflows for Netlify, Cloudflare Pages, Vercel, Zapier, or Make.
- Export your animated banners to HTML/CSS, GIF, MP4, WebM, animated WebP and animated PNG (APNG) files, GSAP (Greensock), AdForm, AdForm Mobile (MRAID), Adition, AdRoll, Adobe Ad Cloud, AppLovin (Responsive HTML5), AppNexus, Basis, Delta Projects, DoubleClick (DCM), DoubleClick Studio, DV360, FlashTalking, Google Ads (fixed-size and Responsive HTML5), Google Ad Manager (DFP), Google App Campaigns (Playable and Responsive), Google Display Network, IAB, Jivox (Dynamic Creative), Responsive HTML (Media Queries), 6sense (Dynamic Creative), Seznam Sklik, Sizmek, StackAdapt, DemandScience (formerly Terminus), The Trade Desk, BidTheatre, Xandr, Amazon Ads, USSD (Tap to SMS), USSD (Tap to Call), Yandex and more!
- Automatically saves all of your exported banners and preview page as a single .zip file.

---

---
url: "/bannerify/tutorials.md"
description: "The best free Figma tutorial videos for beginners (or power users) to level up."
---

# Bannerify Video Tutorials

> The best free Figma tutorial videos for beginners (or power users) to level up.

## Designing Banners

- [Export animated Figma Motion banners to HTML, MP4 video, or GIF](/bannerify/tutorials/export-animated-figma-motion-banners)
- [Animate and export Figma Buzz banners to HTML, MP4 video, or GIF](/bannerify/tutorials/animate-and-export-figma-buzz-banners)
- [Animate and export banners to HTML from Figma](/bannerify/tutorials/animate-and-export-banners-to-html-from-figma)
- [Create multi-scene animated banners in Figma](/bannerify/tutorials/create-multi-scene-animated-banners-in-figma)
- [Add video embeds to Figma banner exports](/bannerify/tutorials/add-video-embeds-to-figma-banner-exports)
- [Generate custom banner animations with AI](/bannerify/tutorials/generate-custom-banner-animations-with-ai)
- [Add custom animations to your Figma banner designs](/bannerify/tutorials/add-custom-animations-to-your-figma-banner-designs)
- [Add hover animations to your Figma banner designs](/bannerify/tutorials/add-hover-animations-to-your-figma-banner-designs)
- [Add masked animations to Figma banners](/bannerify/tutorials/add-masked-animations-to-figma-banners)
- [Add split text animations to Figma banners](/bannerify/tutorials/add-split-text-animations-to-figma-banners)
- [Add cubic bezier easing to banner animations in Figma](/bannerify/tutorials/add-cubic-bezier-easing-to-banner-animations-in-figma)
- [Add Lottie animations to Figma banner exports](/bannerify/tutorials/add-lottie-animations-to-figma-banner-exports)
- [Add scrollable text disclaimers to HTML Figma banners](/bannerify/tutorials/add-scrollable-text-disclaimers-to-html-figma-banners)
- [Add rich text popup overlays to HTML Figma banners](/bannerify/tutorials/add-rich-text-popup-overlays-to-html-figma-banners)

## HTML Exports

- [Export banners to HTML/GSAP from Figma](/bannerify/tutorials/export-banners-to-html-gsap-from-figma)
- [Add custom HTML, CSS, and Javascript to Figma banner exports](/bannerify/tutorials/add-custom-html-css-and-javascript-to-figma-banner-exports)
- [Export animated HTML banners from Figma to multiple ad platforms](/bannerify/tutorials/export-animated-html-banners-from-figma-to-multiple-ad-platforms)
- [Upload preview links for HTML banners from Figma to Netlify](/bannerify/tutorials/upload-preview-links-for-html-banners-from-figma-to-netlify)
- [Export animated HTML banners from Figma to Google Drive with Zapier](/bannerify/tutorials/export-animated-html-banners-from-figma-to-google-drive-with-zapier)
- [Bulk export Figma banner variants from a spreadsheet to HTML or Video/GIF](/bannerify/tutorials/bulk-export-figma-banner-variants-from-a-spreadsheet-to-html-or-video-gif)

## GIF/Video Exports

- [Export banners to MP4 videos from Figma](/bannerify/tutorials/export-banners-to-mp4-videos-from-figma)
- [Add audio to Figma video banner exports](/bannerify/tutorials/add-audio-to-figma-video-banner-exports)
- [Export banners to GIFs from Figma](/bannerify/tutorials/export-banners-to-gifs-from-figma)
- [Export banners to WebM videos from Figma](/bannerify/tutorials/export-banners-to-webm-videos-from-figma)
- [Export banners to animated PNG (APNG) images from Figma](/bannerify/tutorials/export-banners-to-animated-png-apng-images-from-figma)
- [Export banners to animated WebP images from Figma](/bannerify/tutorials/export-banners-to-animated-webp-images-from-figma)
- [Bulk export Figma banner variants from a spreadsheet](/bannerify/tutorials/bulk-export-figma-banner-variants-from-a-spreadsheet)

## Ad Platforms

- [Export banners for Google Ads from Figma](/bannerify/tutorials/export-banners-for-google-ads-from-figma)
- [Export responsive HTML banners from Figma](/bannerify/tutorials/export-responsive-html-banners-from-figma)
- [Export banners for DoubleClick from Figma](/bannerify/tutorials/export-banners-for-doubleclick-from-figma)
- [Export banners for AdForm from Figma](/bannerify/tutorials/export-banners-for-adform-from-figma)
- [Export banners for DCM from Figma](/bannerify/tutorials/export-banners-for-dcm-from-figma)
- [Export banners for Flashtalking from Figma](/bannerify/tutorials/export-banners-for-flashtalking-from-figma)
- [Export banners for IAB from Figma](/bannerify/tutorials/export-banners-for-iab-from-figma)
- [Export banners for Sizmek from Figma](/bannerify/tutorials/export-banners-for-sizmek-from-figma)
- [Export banners for AppNexus from Figma](/bannerify/tutorials/export-banners-for-appnexus-from-figma)

## More video tutorials

- [How to export Figma to HTML Canvas using Bannerify](/bannerify/tutorials/how-to-export-figma-to-html-canvas-using-bannerify)
- [How to install Figma plugins in 2022](/bannerify/tutorials/how-to-install-figma-plugins-in-2022)

---

---
url: "/bannerify/tutorials/add-audio-to-figma-video-banner-exports.md"
description: "This tutorial shows how to use the Bannerify Figma plugin to export animated Figma banners as MP4 video files with an added audio track. It covers installing or running Bannerify, selecting banners, adding an MP3 file in the export options, and exporting a zip that contains MP4 videos with sound."
---

# Add audio to Figma video banner exports

> This tutorial shows how to use the Bannerify Figma plugin to export animated Figma banners as MP4 video files with an added audio track. It covers installing or running Bannerify, selecting banners, adding an MP3 file in the export options, and exporting a zip that contains MP4 videos with sound.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/XLg0YGQglgA)

**What this video covers**

This tutorial shows how to use the Bannerify Figma plugin to export animated Figma banners as MP4 video files with an added audio track. It covers installing or running Bannerify, selecting banners, adding an MP3 file in the export options, and exporting a zip that contains MP4 videos with sound.

**Things you'll need**

- Bannerify Figma plugin installed or saved
- Animated Figma banners already designed and ready to export
- An MP3 audio file to add to the export

**Steps**

1. Open Figma Resources, search for Bannerify under Plugins, and install or run the Bannerify Figma plugin.
2. Select the banner frames you want to export and load them into Bannerify.
3. Click Export to GIF/Video and choose the MP4 export option.
4. Find an MP3 file to use, such as one downloaded from Pixabay, and save it to your computer.
5. Drag and drop the MP3 file into the MP4 audio drop zone in the Bannerify export options.
6. Click Export MP4 to render the selected banners with the audio track included.
7. Download the zip file, unzip it, and play the exported MP4 files to confirm the audio is included.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=XLg0YGQglgA)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-audio-to-figma-video-banner-exports-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/add-cubic-bezier-easing-to-banner-animations-in-figma.md"
description: "This tutorial shows how to add custom cubic bezier easing curves to Bannerify custom animations in Figma. It demonstrates creating a custom animation, pasting a generated cubic bezier rule into Bannerify, previewing the motion, and exporting the banner as a GIF/Video or HTML preview."
---

# Add cubic bezier easing to banner animations in Figma

> This tutorial shows how to add custom cubic bezier easing curves to Bannerify custom animations in Figma. It demonstrates creating a custom animation, pasting a generated cubic bezier rule into Bannerify, previewing the motion, and exporting the banner as a GIF/Video or HTML preview.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/uS2TRRQiYzw)

**What this video covers**

This tutorial shows how to add custom cubic bezier easing curves to Bannerify custom animations in Figma. It demonstrates creating a custom animation, pasting a generated cubic bezier rule into Bannerify, previewing the motion, and exporting the banner as a GIF/Video or HTML preview.

**Things you'll need**

- Figma
- Bannerify Figma plugin

**Steps**

1. Open Bannerify from Figma by finding it in Resources or from Plugins > Saved Plugins.
2. Load the Figma frames you want Bannerify to treat as banners so their layers appear in the timeline.
3. Click Custom Animations to open the keyframe editor and build an animation with keyframes.
4. Set the animation easing to Cubic Bezier and paste in a custom CSS cubic bezier rule copied from a cubic bezier generator site.
5. Name the animation and click Add new animation, then assign it to a layer such as a CTA button under the Custom group.
6. Edit the saved animation if needed, then click Update saved animation to apply the changes.
7. Copy and paste the animation to other matching layers, apply it, and export the result using Export to GIF/Video or HTML.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=uS2TRRQiYzw)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-cubic-bezier-easing-to-banner-animations-in-figma-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/add-custom-animations-to-your-figma-banner-designs.md"
description: "The video shows how to install the Bannerify Figma plugin and use its custom Animation editor to build keyframe-based banner animations. It demonstrates creating, saving, updating, deleting, and applying custom animations, then exporting them in GIF/MP4, HTML, and banner set outputs."
---

# Add custom animations to your Figma banner designs

> The video shows how to install the Bannerify Figma plugin and use its custom Animation editor to build keyframe-based banner animations. It demonstrates creating, saving, updating, deleting, and applying custom animations, then exporting them in GIF/MP4, HTML, and banner set outputs.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/Js4uSQ855uo)

**What this video covers**

The video shows how to install the Bannerify Figma plugin and use its custom Animation editor to build keyframe-based banner animations. It demonstrates creating, saving, updating, deleting, and applying custom animations, then exporting them in GIF/MP4, HTML, and banner set outputs.

**Things you'll need**

- Figma Community access
- The Bannerify Banner Studio plugin installed

**Steps**

1. Install the Bannerify Banner Studio plugin from Figma Community and open it from Plugins in your Figma project.
2. Open the Animations panel to create a custom CSS-based timeline animation instead of using preset entrances and exits.
3. Set keyframe properties such as X-axis, Y-axis, opacity, rotation, and scale, then use the live preview and easing controls to shape the motion.
4. Add intermediate keyframes with Insert New Keyframe, copy and paste properties between frames if needed, and adjust the animation path and timing.
5. Name the animation, click Add New Animation, and select it under Custom Animations to apply it to a banner layer.
6. Use the timeline speed slider and delay controls to preview the animation, and update a saved animation or create a new version such as v2.
7. Delete keyframes or saved animations with the delete controls; deleting an applied animation reverts the layer to No Animation.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=Js4uSQ855uo)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-custom-animations-to-your-figma-banner-designs-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/add-custom-html-css-and-javascript-to-figma-banner-exports.md"
description: "This tutorial shows how to use the Bannerify Figma plugin to export HTML banners with optional custom HTML, CSS, and Javascript injected into the output. It also demonstrates how to turn the feature on or off and how custom code appears in the exported preview page."
---

# Add custom HTML, CSS, and Javascript to Figma banner exports

> This tutorial shows how to use the Bannerify Figma plugin to export HTML banners with optional custom HTML, CSS, and Javascript injected into the output. It also demonstrates how to turn the feature on or off and how custom code appears in the exported preview page.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/Uwe6PLmErRU)

**What this video covers**

This tutorial shows how to use the Bannerify Figma plugin to export HTML banners with optional custom HTML, CSS, and Javascript injected into the output. It also demonstrates how to turn the feature on or off and how custom code appears in the exported preview page.

**Things you'll need**

- Bannerify should already be installed or saved as a Figma plugin.
- The banners should already be designed and ready to export.

**Steps**

1. Open Figma, use the Resources icon to search for Bannerify, and save or run the plugin from Plugins > Saved Plugins.
2. In Bannerify, open Export to HTML and turn on Inject Custom Code.
3. Paste custom HTML into the body tag field for banner content.
4. Paste custom CSS into the CSS styles field and Javascript into the Javascript code field.
5. Export Banners, download the zip file, and open the HTML preview page to test the injected code.
6. Turn off Inject Custom Code and export again to remove the custom code from the output.
7. Optionally add code to the HTML to head tag field for items like meta tags or script tags that belong in the document head.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=Uwe6PLmErRU)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-custom-html-css-and-javascript-to-figma-banner-exports-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/add-hover-animations-to-your-figma-banner-designs.md"
description: "This tutorial shows how to install the Bannerify Figma plugin, load banner frames, add hover animation states to individual layers, and export the result as production-ready HTML and CSS. It also demonstrates previewing the hover effects in a browser and applying the same hover settings to multiple layers by bulk apply or copy and paste."
---

# Add hover animations to your Figma banner designs

> This tutorial shows how to install the Bannerify Figma plugin, load banner frames, add hover animation states to individual layers, and export the result as production-ready HTML and CSS. It also demonstrates previewing the hover effects in a browser and applying the same hover settings to multiple layers by bulk apply or copy and paste.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/dOdeG78NlSw)

**What this video covers**

This tutorial shows how to install the Bannerify Figma plugin, load banner frames, add hover animation states to individual layers, and export the result as production-ready HTML and CSS. It also demonstrates previewing the hover effects in a browser and applying the same hover settings to multiple layers by bulk apply or copy and paste.

**Things you'll need**

- Figma installed
- Bannerify installed from the Figma Community

**Steps**

1. Install Bannerify from the Figma Community plugins tab.
2. Open your Figma file, right-click, go to Plugins, and launch Bannerify.
3. Select the banner frames you want to load, then click Load selected banners.
4. Choose a layer such as CTA or Logo, turn on Add Hover, and pick a hover animation like Grow, Rotation, Bounce-in, Skew, or Wobble.
5. Adjust the hover animation speed and optionally enable Loop for continuous playback while hovering.
6. Click Export to HTML, choose the output settings, optionally add a click tag, then click Export Banner and download the .zip file.
7. Unzip the export, open index.html or the banners folder in a browser to preview the animations; use bulk application or Copy and Paste to reuse hover settings on other layers.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=dOdeG78NlSw)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-hover-animations-to-html-banners-in-figma-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/add-lottie-animations-to-figma-banner-exports.md"
description: "The video shows how to use the Bannerify Figma plugin to add Lottie animations into banner designs by pasting a Lottie JSON URL into a placeholder layer. It also shows how to combine Lottie embeds with Bannerify transitions and export the finished banner to HTML/CSS, GIF, WebM, or MP4."
---

# Add Lottie animations to Figma banner exports

> The video shows how to use the Bannerify Figma plugin to add Lottie animations into banner designs by pasting a Lottie JSON URL into a placeholder layer. It also shows how to combine Lottie embeds with Bannerify transitions and export the finished banner to HTML/CSS, GIF, WebM, or MP4.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/JOJXVPWejOw)

**What this video covers**

The video shows how to use the Bannerify Figma plugin to add Lottie animations into banner designs by pasting a Lottie JSON URL into a placeholder layer. It also shows how to combine Lottie embeds with Bannerify transitions and export the finished banner to HTML/CSS, GIF, WebM, or MP4.

**Things you'll need**

- A Figma file with banner frames and placeholder layers set up.
- A Bannerify plugin installation.
- A Lottie JSON file URL from lottiefiles.com or another source.

**Steps**

1. Install the Bannerify Figma plugin from the Figma Community Plugins tab.
2. Open your banner file in Figma, right-click, and launch Bannerify from Plugins.
3. Load the parent frames you want to work on with Load Selected Banners.
4. Create or select a placeholder layer, open its settings, and paste a Lottie Animation URL from lottiefiles.com or another Lottie JSON source.
5. Set the Lottie animation to loop if desired, then preview it alongside Bannerify layer animations such as fade in or scale in/out.
6. Add more placeholder layers or use Media Embed and Quick Select Layer to apply the same Lottie animation across multiple layers or banners.
7. Export the banner with Export to HTML or Export to GIF/Video, then download the .zip file and open the exported HTML or video output.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=JOJXVPWejOw)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-lottie-animations-to-figma-banner-exports-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/add-masked-animations-to-figma-banners.md"
description: "This tutorial shows how to use the Bannerify Figma plugin to add masked entrance and exit animations to banner layers. It also covers exporting the finished banner as HTML, GreenSock/GSAP, Google ads, GIF, or video."
---

# Add masked animations to Figma banners

> This tutorial shows how to use the Bannerify Figma plugin to add masked entrance and exit animations to banner layers. It also covers exporting the finished banner as HTML, GreenSock/GSAP, Google ads, GIF, or video.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/GIGNYoB6oCM)

**What this video covers**

This tutorial shows how to use the Bannerify Figma plugin to add masked entrance and exit animations to banner layers. It also covers exporting the finished banner as HTML, GreenSock/GSAP, Google ads, GIF, or video.

**Things you'll need**

- Figma
- Bannerify Figma plugin

**Steps**

1. Open Figma, click the Resources icon, search for Bannerify, and save or run the plugin.
2. Right-click on the canvas, go to Plugins, and open Bannerify.
3. Select the parent frame or artboard you want to use, then load the checked banner so Bannerify treats its layers as animation elements.
4. For each layer, open the entrance and exit animation controls and choose from the new masked animation categories, such as square or wipe effects.
5. Adjust the direction, timing, and delays on layers to create staggered masked entrances and exits.
6. Preview the result in Bannerify to check the masking effect.
7. Export the banner using Export to HTML, GreenSock or GSAP, or an ad platform such as Google ads, or export it as GIF or video.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=GIGNYoB6oCM)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-masked-animations-to-figma-banners-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/add-rich-text-popup-overlays-to-html-figma-banners.md"
description: "This video shows how to use the Bannerify Figma plugin to add interactive popup overlay disclaimers to HTML banner exports. It covers selecting CTA trigger layers, generating and customizing the overlay component, exporting to HTML, and testing the result in the browser."
---

# Add rich text popup overlays to HTML Figma banners

> This video shows how to use the Bannerify Figma plugin to add interactive popup overlay disclaimers to HTML banner exports. It covers selecting CTA trigger layers, generating and customizing the overlay component, exporting to HTML, and testing the result in the browser.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/fOlw2ghGcIc)

**What this video covers**

This video shows how to use the Bannerify Figma plugin to add interactive popup overlay disclaimers to HTML banner exports. It covers selecting CTA trigger layers, generating and customizing the overlay component, exporting to HTML, and testing the result in the browser.

**Things you'll need**

- A Figma file with banner frames already created
- The Bannerify Figma plugin

**Steps**

1. Open the Figma file, find Bannerify from Resources or Saved Plugins, and run the plugin.
2. Load the checked banner frames into Bannerify so their layers are imported into the plugin timeline.
3. Use Quick Select Layers to select the trigger layers, such as all layers named "CTA Button."
4. In Generate Popup Overlay Disclaimers, choose the transition, speed, easing, and direction, then click "Create Popup Links."
5. Edit the generated popup overlay component in Figma by changing the content, colors, and padding as needed.
6. Export the banners to HTML, download the zip file, unzip it, and open the index.html preview page in a browser.
7. Click the CTA buttons in the exported banners to verify the rich text overlay opens and closes as expected.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=fOlw2ghGcIc)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-rich-text-popup-overlays-to-html-figma-banners-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/add-scrollable-text-disclaimers-to-html-figma-banners.md"
description: "This tutorial shows how to add scrollable disclaimer text to HTML Figma banners using the Bannerify Figma plugin. It explains how to make a text layer truncation-enabled, turn on scrollable HTML text, and export the banner for manual scrolling or auto-scrolling behavior."
---

# Add scrollable text disclaimers to HTML Figma banners

> This tutorial shows how to add scrollable disclaimer text to HTML Figma banners using the Bannerify Figma plugin. It explains how to make a text layer truncation-enabled, turn on scrollable HTML text, and export the banner for manual scrolling or auto-scrolling behavior.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/lDPV4QU_ZRU)

**What this video covers**

This tutorial shows how to add scrollable disclaimer text to HTML Figma banners using the Bannerify Figma plugin. It explains how to make a text layer truncation-enabled, turn on scrollable HTML text, and export the banner for manual scrolling or auto-scrolling behavior.

**Things you'll need**

- A Figma file with banner frames ready to load into Bannerify.
- The Bannerify Figma plugin installed or saved in Figma.

**Steps**

1. Open the Figma file, find Bannerify in the Figma plugins list, and run the plugin.
2. Load the banner frames into Bannerify so their content layers appear in the timeline.
3. Select the disclaimer text layer in Figma and enable truncate text so the layer becomes a truncated text box.
4. Refresh the banner in Bannerify, then open the layer settings and enable scrollable HTML text.
5. Choose one of the scroll modes: manually scrollable, auto-scroll on layer enter, or auto-scroll on banner end.
6. Export the banner as HTML, unzip the downloaded file, and open the index HTML preview in a browser to test the scroll behavior.
7. Copy the configured text layer into other banners, refresh all banners, and export multiple banners if needed.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=lDPV4QU_ZRU)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-scrollable-text-disclaimers-with-auto-scroll-to-html-figma-banners-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/add-split-text-animations-to-figma-banners.md"
description: "This tutorial shows how to use the Bannerify Figma plugin to add split text animations to banner text layers, including character-by-character, word-by-word, and line-by-line effects. It also explains how to export those banners as MP4, GIF, WebM, or HTML with the HTML GreenSock Animation option required for split text animations."
---

# Add split text animations to Figma banners

> This tutorial shows how to use the Bannerify Figma plugin to add split text animations to banner text layers, including character-by-character, word-by-word, and line-by-line effects. It also explains how to export those banners as MP4, GIF, WebM, or HTML with the HTML GreenSock Animation option required for split text animations.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/NrzaotL5IMw)

**What this video covers**

This tutorial shows how to use the Bannerify Figma plugin to add split text animations to banner text layers, including character-by-character, word-by-word, and line-by-line effects. It also explains how to export those banners as MP4, GIF, WebM, or HTML with the HTML GreenSock Animation option required for split text animations.

**Things you'll need**

- A Figma file with at least one frame to load into Bannerify.
- Bannerify installed as a Figma plugin.

**Steps**

1. Open your Figma file, search for Bannerify from the actions icon, and run or save the plugin, then launch it from saved plugins.
2. Load the current Figma frame into Bannerify by clicking the load banners button so the frame contents appear in the timeline.
3. Select a text layer in the timeline and open the entry or exit animation settings.
4. Scroll to the split text section and choose an animation that splits text by characters, words, or lines.
5. Preview the animation, then apply a matching split text option for the exit animation if needed.
6. Export the banner as MP4, GIF, WebM, or another animated format, or choose export to HTML and switch code output to the HTML GreenSock Animation option before exporting.
7. Download and open the exported files to verify the animation playback.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=NrzaotL5IMw)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-split-text-animations-to-figma-banners-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/add-video-embeds-to-figma-banner-exports.md"
description: "This tutorial shows how to install the Bannerify Figma plugin, load banner frames, and embed video URLs into placeholder layers so the video plays back in the banner timeline. It then demonstrates exporting the banners to HTML and to WebM video, with GIF and MP4 mentioned as additional export options."
---

# Add video embeds to Figma banner exports

> This tutorial shows how to install the Bannerify Figma plugin, load banner frames, and embed video URLs into placeholder layers so the video plays back in the banner timeline. It then demonstrates exporting the banners to HTML and to WebM video, with GIF and MP4 mentioned as additional export options.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/8eqKeU4c4bc)

**What this video covers**

This tutorial shows how to install the Bannerify Figma plugin, load banner frames, and embed video URLs into placeholder layers so the video plays back in the banner timeline. It then demonstrates exporting the banners to HTML and to WebM video, with GIF and MP4 mentioned as additional export options.

**Things you'll need**

- Figma
- Bannerify Figma plugin
- A direct .mp4 or .webm video URL

**Steps**

1. Find Bannerify in the Figma Community under the Plugins tab and install it.
2. Open your Figma file, right-click, go to Plugins, and run Bannerify.
3. Click Load Selected Banners to load the banner frames into Bannerify.
4. Choose a placeholder or other layer, open its settings, and paste an .mp4 or .webm URL into the embed field.
5. Preview the banner timeline to confirm the video plays alongside the other animations.
6. Use Apply Embed or Quick Select to apply the same video to multiple selected layers or banners.
7. Export the banners with Export to HTML or Export to GIF/Video, then download and open the exported files to verify the result.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=8eqKeU4c4bc)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-video-embeds-to-figma-banner-exports-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/animate-and-export-banners-to-html-from-figma.md"
description: "This video shows how to use the Bannerify Figma plugin to turn top-level Figma frames into animated banner ads. It covers applying and previewing animations, refreshing edits, and exporting banners to HTML with options like Vanilla HTML/CSS, dark mode, image compression, and ad-platform-specific formats."
---

# Animate and export banners to HTML from Figma

> This video shows how to use the Bannerify Figma plugin to turn top-level Figma frames into animated banner ads. It covers applying and previewing animations, refreshing edits, and exporting banners to HTML with options like Vanilla HTML/CSS, dark mode, image compression, and ad-platform-specific formats.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

This video walks through how to animate and export production-ready HTML banners from Figma in seconds.

[Embedded media](https://www.youtube.com/embed/-TA088FNulA)

**What this video covers**

This video shows how to use the Bannerify Figma plugin to turn top-level Figma frames into animated banner ads. It covers applying and previewing animations, refreshing edits, and exporting banners to HTML with options like Vanilla HTML/CSS, dark mode, image compression, and ad-platform-specific formats.

**Things you'll need**

- Figma
- Bannerify plugin installed in Figma

**Steps**

1. Install Bannerify from Figma Community, or duplicate the example file from the Files tab to get started quickly.
2. Open Bannerify from the Plugins menu and review how each top-level frame in the Figma file becomes a separate banner in the plugin.
3. Assign animation styles to individual layers, groups of layers, or an entire banner, then preview the motion with the play button and adjust timing, loop, delay, and speed.
4. Use multi-select, quick select by layer name, and the magic delay and magic speed controls to apply consistent animation settings across multiple layers or banners.
5. If you change the Figma design after opening Bannerify, click the refresh button so the plugin updates the preview with the latest layer positions and content.
6. Click Export Banners to HTML, choose options such as dark mode, black border, preloader, image compression, and the export format, then export the banners to a .zip file.
7. Open the exported folder and use index.html to review the responsive preview page and replay the animations.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=-TA088FNulA)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-animated-banners-from-figma-to-html-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/animate-and-export-figma-buzz-banners.md"
description: "Watch how to load Figma Buzz banner designs into Bannerify, animate them, and export them to HTML, MP4 video, or GIF."
---

# Animate and export Figma Buzz banners to HTML, MP4 video, or GIF

> Watch how to load Figma Buzz banner designs into Bannerify, animate them, and export them to HTML, MP4 video, or GIF.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/DlUogTWnheQ)

**What this video covers**

This tutorial shows how to animate banner designs from Figma Buzz with Bannerify, reuse those animations across multiple banner sizes, and export the finished banners to HTML, MP4 video, or GIF.

**Things you'll need**

- A Figma Buzz file with a banner design
- The Bannerify Figma plugin

**Steps**

1. Create a Figma Buzz file, then add a banner template or create a banner from scratch.
2. Open the **Plugins** panel, search for Bannerify, and run the Bannerify Figma plugin.
3. Click **Load All Banners**, then use the pop-out icon in the plugin header to open the full Bannerify animation timeline.
4. Apply animations to the layers in your first banner, adjust their positions on the timeline to stagger the timing, and preview the result.
5. Copy and paste the animated banner in Figma Buzz, then select a different ad size for the copied frame.
6. Click the refresh button in Bannerify and load all banners again. The animations from the original banner are automatically applied to the copied banner sizes.
7. To create an HTML export, click **Export to HTML**, choose the target platform and any additional settings, then export and download the zip file.
8. Unzip the HTML export and open its `index.html` file in a browser to preview the banners. For platforms such as Google Ads, use the upload-ready files in the `_zips` folder.
9. To create a video or GIF export, click **Export to GIF/Video**, choose an output format such as MP4 or GIF, configure any optional settings, then export and download the zip file.
10. Unzip the export to access the generated media files, or open the included `index.html` file to preview them together in a browser.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=DlUogTWnheQ)
- [Learn more about using Bannerify with Figma Buzz](/bannerify/design/figma-buzz)
- [Browse Bannerify tutorial docs](/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/bulk-export-figma-banner-variants-from-a-spreadsheet-to-html-or-video-gif.md"
description: "The video shows how to use the Bannerify Figma plugin to bulk export banner variants from a CSV or Excel spreadsheet. It demonstrates mapping spreadsheet columns to Figma layer names, loading optional local images from a zipped file, and exporting the variants to HTML, GIF, or video."
---

# Bulk export Figma banner variants from a spreadsheet to HTML or Video/GIF

> The video shows how to use the Bannerify Figma plugin to bulk export banner variants from a CSV or Excel spreadsheet. It demonstrates mapping spreadsheet columns to Figma layer names, loading optional local images from a zipped file, and exporting the variants to HTML, GIF, or video.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/EiVk0G0nEU4)

**What this video covers**

The video shows how to use the Bannerify Figma plugin to bulk export banner variants from a CSV or Excel spreadsheet. It demonstrates mapping spreadsheet columns to Figma layer names, loading optional local images from a zipped file, and exporting the variants to HTML, GIF, or video.

**Things you'll need**

- A Figma file with banner frames and content layers already set up
- A CSV or Excel file with column names matching the Figma layer names
- Optional local image assets zipped together with the spreadsheet if images are included

**Steps**

1. Open your Figma file, find Bannerify from the actions menu or saved Figma plugins, and run the plugin.
2. Go to the Variance panel and prepare your spreadsheet data source, making sure the spreadsheet header names match the Figma layer names.
3. If you need images, zip the CSV or Excel file together with the image assets and make sure the image names match the spreadsheet values.
4. Drag and drop the zip file into Bannerify to load the rows and preview the mapped text and images.
5. Close the Variance panel and export the banners, choosing Export to HTML or Export to GIF or video and then selecting the desired format.
6. Download the exported zip file, unzip it, and open index.html to preview the generated banner variants.
7. If you reopen the plugin later, reimport the data into the Variance panel and optionally toggle rows on or off before exporting again.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=EiVk0G0nEU4)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-bulk-export-figma-banner-variants-from-a-spreadsheet-to-html-or-video-gif-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/bulk-export-figma-banner-variants-from-a-spreadsheet.md"
description: "The video shows how to use the Bannerify Figma plugin to bulk export banner variants from a CSV or Excel spreadsheet. It demonstrates mapping spreadsheet columns to Figma layer names, loading optional local images from a zipped file, and exporting the variants to HTML, GIF, or video."
---

# Bulk export Figma banner variants from a spreadsheet

> The video shows how to use the Bannerify Figma plugin to bulk export banner variants from a CSV or Excel spreadsheet. It demonstrates mapping spreadsheet columns to Figma layer names, loading optional local images from a zipped file, and exporting the variants to HTML, GIF, or video.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/EiVk0G0nEU4)

**What this video covers**

The video shows how to use the Bannerify Figma plugin to bulk export banner variants from a CSV or Excel spreadsheet. It demonstrates mapping spreadsheet columns to Figma layer names, loading optional local images from a zipped file, and exporting the variants to HTML, GIF, or video.

**Things you'll need**

- A Figma file with banner frames and content layers already set up
- A CSV or Excel file with column names matching the Figma layer names
- Optional local image assets zipped together with the spreadsheet if images are included

**Steps**

1. Open your Figma file, find Bannerify from the actions menu or saved Figma plugins, and run the plugin.
2. Go to the Variance panel and prepare your spreadsheet data source, making sure the spreadsheet header names match the Figma layer names.
3. If you need images, zip the CSV or Excel file together with the image assets and make sure the image names match the spreadsheet values.
4. Drag and drop the zip file into Bannerify to load the rows and preview the mapped text and images.
5. Close the Variance panel and export the banners, choosing Export to HTML or Export to GIF or video and then selecting the desired format.
6. Download the exported zip file, unzip it, and open index.html to preview the generated banner variants.
7. If you reopen the plugin later, reimport the data into the Variance panel and optionally toggle rows on or off before exporting again.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=EiVk0G0nEU4)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-bulk-export-figma-banner-variants-from-a-spreadsheet-to-html-or-video-gif-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/create-multi-scene-animated-banners-in-figma.md"
description: "This tutorial shows how to use the Bannerify Figma plugin to turn multiple Figma frames into one animated banner with multiple scenes. It also demonstrates exporting the result as HTML, GIF, or MP4, and how to handle multiple banners and multiple dimensions."
---

# Create multi-scene animated banners in Figma

> This tutorial shows how to use the Bannerify Figma plugin to turn multiple Figma frames into one animated banner with multiple scenes. It also demonstrates exporting the result as HTML, GIF, or MP4, and how to handle multiple banners and multiple dimensions.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/_RJoxtwDC04)

**What this video covers**

This tutorial shows how to use the Bannerify Figma plugin to turn multiple Figma frames into one animated banner with multiple scenes. It also demonstrates exporting the result as HTML, GIF, or MP4, and how to handle multiple banners and multiple dimensions.

**Things you'll need**

- A Figma file with frames already created.
- The Bannerify Figma plugin saved in Figma plugins.

**Steps**

1. Open the Bannerify Figma plugin from the Actions menu or from Saved plugins.
2. Load the current Figma frames as banners to see the default behavior, where each frame is treated separately.
3. Select the frames you want in one banner, then use Wrap in new section to place them inside a section layer.
4. Return to the banner loading screen, enable Use Figma sections as multi scene banners, and load the section.
5. Adjust the timeline length and scene offsets so each scene animates in sequence within the same banner.
6. Export the banner by choosing Export HTML or another format such as MP4, then download the zip file and open the preview in a browser.
7. For multiple banners, duplicate sections, keep each banner frame the same size within its section, refresh the plugin, and load or export all banners together.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=_RJoxtwDC04)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-create-multi-scene-animated-banners-from-figma-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/export-animated-figma-motion-banners.md"
description: "Learn how to import native Figma Motion animations into Bannerify, mirror their timing, and export the finished banners to HTML, MP4 video, or GIF."
---

# Export animated Figma Motion banners to HTML, MP4 video, or GIF

> Learn how to import native Figma Motion animations into Bannerify, mirror their timing, and export the finished banners to HTML, MP4 video, or GIF.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/QKvJ2YVTUyU)

**What this video covers**

This tutorial shows how to import native Figma Motion animations into Bannerify, apply them individually or across every loaded banner, control whether Bannerify mirrors the original Motion timing, and export the finished banners to HTML, MP4 video, or GIF.

**Things you'll need**

- A Figma file containing a banner with supported Figma Motion animations
- The Bannerify Figma plugin

**Steps**

1. Open your Figma file, find Bannerify in the **Plugins** tab, and run or save the plugin for easy access.
2. Run Bannerify from your saved plugins, then click **Load All Banners** to load the banner frames and their content layers.
3. Switch the Figma file from **Design** to **Motion** mode and confirm that the banner layers contain the native animations you want to export.
4. To import one animation, open a layer's **Entry Animation** menu and select its detected animation from the **Figma Motion** group.
5. To import every detected animation at once, click **Apply to All Banners** above the Bannerify timelines.
6. Leave **Mirror Figma Motion Timings** enabled to preserve the native start and end offsets, or disable it to reposition and resize the animation bars in Bannerify.
7. Preview the imported animations in Bannerify and optionally combine them with Bannerify presets, custom animations, exit animations, or hover animations.
8. To create an HTML export, click **Export to HTML**, choose plain HTML or a platform such as Google Ads, export the banners, and download the zip file.
9. Unzip the HTML export and open its `index.html` file in a browser to preview the code-based animation.
10. To create an MP4 or GIF export, click **Export to GIF/Video**, choose the output format and settings, export and download the zip file, then open the generated media or preview page.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=QKvJ2YVTUyU)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-animated-banners-from-figma-motion-to-html-mp4-video-or-gif-using-bannerify)
- [Learn more about using Figma Motion animations in Bannerify](/bannerify/animation/figma-motion)
- [Browse Bannerify tutorial docs](/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/export-animated-html-banners-from-figma-to-google-drive-with-zapier.md"
description: "This tutorial shows how to export animated HTML banners from Figma with the Bannerify Figma plugin and send the exported zip file to Google Drive through a Zapier webhook. It walks through creating a Zapier Zap with a Webhooks by Zapier catch hook trigger and a Google Drive upload file action, then mapping the Bannerify file and file name before testing and publishing the automation."
---

# Export animated HTML banners from Figma to Google Drive with Zapier

> This tutorial shows how to export animated HTML banners from Figma with the Bannerify Figma plugin and send the exported zip file to Google Drive through a Zapier webhook. It walks through creating a Zapier Zap with a Webhooks by Zapier catch hook trigger and a Google Drive upload file action, then mapping the Bannerify file and file name before testing and publishing the automation.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/yVS3gDPDNUo)

**What this video covers**

This tutorial shows how to export animated HTML banners from Figma with the Bannerify Figma plugin and send the exported zip file to Google Drive through a Zapier webhook. It walks through creating a Zapier Zap with a Webhooks by Zapier catch hook trigger and a Google Drive upload file action, then mapping the Bannerify file and file name before testing and publishing the automation.

**Things you'll need**

- A Figma file with frames to use as banners
- A Zapier account
- A Google Drive account

**Steps**

1. Open your Figma file, run the Bannerify Figma plugin from Figma plugins, and load the banners from your Figma frames.
2. In Bannerify, finish your banner animations, click Export to HTML, enable upload preview page, and change the upload platform from Netlify to Zapier.
3. In Zapier, create a new Zap, add Webhooks by Zapier as the trigger, and set the trigger event to catch hook to get a webhook URL.
4. Paste the Zapier webhook URL into Bannerify, then send a test export from Bannerify so Zapier can capture the uploaded zip file data.
5. In Zapier, add Google Drive as the action, choose upload file, connect your Google account, and select the destination folder in Google Drive.
6. Map the incoming file and file name fields from the webhook data to the Google Drive upload step, then test the step and publish the Zap.
7. After publishing, future Bannerify HTML exports sent through the webhook will be uploaded automatically to the selected Google Drive folder.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=yVS3gDPDNUo)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-animated-banners-to-google-drive-from-figma-with-zapier-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/export-animated-html-banners-from-figma-to-multiple-ad-platforms.md"
description: "This tutorial shows how to use the Bannerify Figma plugin to export animated banners from Figma into production-ready HTML for one or more ad platforms. It also demonstrates the new Multiple Platforms option for generating banner exports for platforms like Google Ads, DoubleClick, and Adform in one process."
---

# Export animated HTML banners from Figma to multiple ad platforms

> This tutorial shows how to use the Bannerify Figma plugin to export animated banners from Figma into production-ready HTML for one or more ad platforms. It also demonstrates the new Multiple Platforms option for generating banner exports for platforms like Google Ads, DoubleClick, and Adform in one process.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/Q16MPp9YKjg)

**What this video covers**

This tutorial shows how to use the Bannerify Figma plugin to export animated banners from Figma into production-ready HTML for one or more ad platforms. It also demonstrates the new Multiple Platforms option for generating banner exports for platforms like Google Ads, DoubleClick, and Adform in one process.

**Things you'll need**

- A Figma file with banner frames already created
- Banner animations already set up in Bannerify

**Steps**

1. Open your Figma file, find Bannerify under the plugins tab, and run it from Saved Plugins.
2. Load the Figma frames you want to use as banners into the plugin and finish setting up your animations.
3. Click Export to HTML in the top-right corner of the plugin.
4. For a single platform, choose a format such as Google Ads and click Export Banners.
5. For multiple platforms, select Multiple Platforms, then add platforms like Google Ads, DoubleClick, and Adform in the Add Platforms field.
6. Export the banners, download the zip file, and unzip it to access the platform-specific folders and the _zips folder.
7. Open index.html in a browser to preview the banners before uploading them to the ad platforms.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=Q16MPp9YKjg)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-animated-banners-to-multiple-ad-platforms-from-figma-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/export-banners-for-adform-from-figma.md"
description: "This video shows how to install and use the Bannerify HTML Exporter Figma plugin to export animated banners from Figma to HTML for the AdForm platform. It also briefly explains the files Bannerify generates, including AdFormDHTML.js, manifest.json, HTML, and the images folder."
---

# Export banners for AdForm from Figma

> This video shows how to install and use the Bannerify HTML Exporter Figma plugin to export animated banners from Figma to HTML for the AdForm platform. It also briefly explains the files Bannerify generates, including AdFormDHTML.js, manifest.json, HTML, and the images folder.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/8P5W9Q9v-5g)

**What this video covers**

This video shows how to install and use the Bannerify HTML Exporter Figma plugin to export animated banners from Figma to HTML for the AdForm platform. It also briefly explains the files Bannerify generates, including AdFormDHTML.js, manifest.json, HTML, and the images folder.

**Things you'll need**

- Figma
- The Bannerify HTML Exporter plugin
- Banners already designed and animated in Figma

**Steps**

1. Open Figma, go to Community, search for Bannerify, and install the Bannerify HTML Exporter plugin.
2. Optionally duplicate the tutorial file from the URL in the plugin's additional notes, or use your own banner design.
3. Right-click in the Figma file, open Plugins, and launch Bannerify HTML Exporter.
4. Click Export banners to HTML, open the export format/platform dropdown, and select AdForm.
5. Click Export banners, then save the generated zip file.
6. Unzip the file and open index.html in a browser to preview the exported banners and animations.
7. Inspect an exported banner folder to see the AdForm files Bannerify creates automatically.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=8P5W9Q9v-5g)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-figma-to-html-for-ad-form-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/export-banners-for-appnexus-from-figma.md"
description: "This tutorial shows how to use the Bannerify HTML Exporter Figma plugin to export animated banner designs from Figma to HTML for the AppNexus platform. It also demonstrates the generated file structure, including the AppNexus HTML5 library, HTML, CSS, JavaScript, and exported image assets."
---

# Export banners for AppNexus from Figma

> This tutorial shows how to use the Bannerify HTML Exporter Figma plugin to export animated banner designs from Figma to HTML for the AppNexus platform. It also demonstrates the generated file structure, including the AppNexus HTML5 library, HTML, CSS, JavaScript, and exported image assets.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/qRBXJX0yChc)

**What this video covers**

This tutorial shows how to use the Bannerify HTML Exporter Figma plugin to export animated banner designs from Figma to HTML for the AppNexus platform. It also demonstrates the generated file structure, including the AppNexus HTML5 library, HTML, CSS, JavaScript, and exported image assets.

**Things you'll need**

- Bannerify HTML Exporter installed in Figma
- A Figma file containing banner designs

**Steps**

1. Install Bannerify from Figma Community by searching for “bannerify” and selecting “Bannerify HTML Exporter.”
2. Open a banner file in Figma, then right click, go to Plugins, and launch Bannerify HTML Exporter.
3. Click “Export banners to HTML” and open the code output settings.
4. Change the export platform from Vanilla HTML and JavaScript to AppNexus.
5. Click “Export banners” to generate the code, images, and zip file.
6. Save and open the zip file, then double click “index.html” to preview the exported banners.
7. Optionally inspect the exported folder in a code editor to see the HTML, CSS, JavaScript, images, and AppNexus click handling.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=qRBXJX0yChc)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-figma-to-html-for-app-nexus-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/export-banners-for-dcm-from-figma.md"
description: "This tutorial shows how to use the Bannerify Figma plugin to export animated banners from Figma to HTML for DoubleClick Campaign Manager (DCM). It also demonstrates how to inspect the exported files and verify the click tag behavior with HTML5 Validator."
---

# Export banners for DCM from Figma

> This tutorial shows how to use the Bannerify Figma plugin to export animated banners from Figma to HTML for DoubleClick Campaign Manager (DCM). It also demonstrates how to inspect the exported files and verify the click tag behavior with HTML5 Validator.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/8nWhYP7cnk8)

**What this video covers**

This tutorial shows how to use the Bannerify Figma plugin to export animated banners from Figma to HTML for DoubleClick Campaign Manager (DCM). It also demonstrates how to inspect the exported files and verify the click tag behavior with HTML5 Validator.

**Things you'll need**

- Figma
- Bannerify HTML Exporter
- A Figma file with pre-designed animated banners

**Steps**

1. Install the Bannerify HTML Exporter plugin from Figma Community if it is not already installed.
2. Open a Figma file with pre-designed animated banners, then launch Bannerify HTML Exporter from the Plugins menu.
3. Click Export banners to HTML, choose DoubleClick Campaign Manager (DCM) under advertising platforms, and export the banners.
4. Save the exported zip file, then open it to view the generated banner folders and the index.html file.
5. Open index.html in a browser to preview the exported animation, or inspect the HTML, CSS, and JavaScript in a code editor.
6. Use HTML5 Validator to upload a zipped banner and confirm that the click event tracks correctly.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=8nWhYP7cnk8)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-figma-to-html-for-double-click-campaign-manager-dcm-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/export-banners-for-doubleclick-from-figma.md"
description: "This video shows how to use the Bannerify Figma plugin to export animated banner designs from Figma to HTML for DoubleClick Studio. It walks through installing the plugin, exporting the banners, and checking the generated DoubleClick Studio-compatible files in the browser and code editor."
---

# Export banners for DoubleClick from Figma

> This video shows how to use the Bannerify Figma plugin to export animated banner designs from Figma to HTML for DoubleClick Studio. It walks through installing the plugin, exporting the banners, and checking the generated DoubleClick Studio-compatible files in the browser and code editor.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/vyxXHZ4rpos)

**What this video covers**

This video shows how to use the Bannerify Figma plugin to export animated banner designs from Figma to HTML for DoubleClick Studio. It walks through installing the plugin, exporting the banners, and checking the generated DoubleClick Studio-compatible files in the browser and code editor.

**Things you'll need**

- Figma
- Bannerify HTML Exporter
- DoubleClick Studio

**Steps**

1. Install Bannerify from the Figma Community by searching for "bannerify" and selecting "Bannerify HTML Exporter".
2. Open the provided Figma file from the plugin description and duplicate it for the tutorial banners and preset animations.
3. Launch Bannerify from Figma by right-clicking, going to plugins, and selecting "Bannerify HTML Exporter".
4. Click "Export banners to HTML" and choose "DoubleClick Studio" under the advertising platforms code output settings.
5. Click "Export banners" to generate the code, images, and zip file.
6. Open the exported zip, then open "index.html" in a browser to preview the banners and animation.
7. Inspect the exported folder in a code editor to see the HTML, JavaScript, CSS, and DoubleClick Studio-specific Enabler.js integration.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=vyxXHZ4rpos)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-figma-to-html-for-doubleclick-studio-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/export-banners-for-flashtalking-from-figma.md"
description: "This video shows how to use the Bannerify HTML Exporter Figma plugin to export animated banners from Figma to HTML for the Flashtalking ad platform. It walks through installing the plugin, opening a prepared Figma file, choosing the Flashtalking export format, and checking the generated HTML package."
---

# Export banners for Flashtalking from Figma

> This video shows how to use the Bannerify HTML Exporter Figma plugin to export animated banners from Figma to HTML for the Flashtalking ad platform. It walks through installing the plugin, opening a prepared Figma file, choosing the Flashtalking export format, and checking the generated HTML package.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/lCjG54qAFb4)

**What this video covers**

This video shows how to use the Bannerify HTML Exporter Figma plugin to export animated banners from Figma to HTML for the Flashtalking ad platform. It walks through installing the plugin, opening a prepared Figma file, choosing the Flashtalking export format, and checking the generated HTML package.

**Things you'll need**

- Figma
- Bannerify HTML Exporter plugin
- A banner design or the duplicated example project

**Steps**

1. Install the Bannerify HTML Exporter plugin from Figma Community if it is not already installed.
2. Open the Bannerify plugin details and use the URL in the 'additional notes' section to duplicate the example project, or open your own banner design.
3. Right-click in the Figma file, go to plugins, and launch 'Bannerify HTML Exporter' to load the banners.
4. Click 'Export banners to HTML', then open 'code output settings' and select 'Flashtalking' from the 'export format' dropdown.
5. Click 'Export banners' to generate a zip file containing the exported banners and assets.
6. Open the zip contents and preview 'index.html' to verify that the banners and animations load correctly.
7. Inspect the exported files in a code editor if needed, including the HTML, CSS, JavaScript, and 'manifest.js' files for Flashtalking.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=lCjG54qAFb4)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-figma-to-html-for-flashtalking-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/export-banners-for-google-ads-from-figma.md"
description: "The video shows how to use the Bannerify Figma plugin to export animated HTML banners from Figma for Google Ads. It also demonstrates how to preview the exported zip, inspect the generated code, and validate the result with the Google Ads HTML5 validator."
---

# Export banners for Google Ads from Figma

> The video shows how to use the Bannerify Figma plugin to export animated HTML banners from Figma for Google Ads. It also demonstrates how to preview the exported zip, inspect the generated code, and validate the result with the Google Ads HTML5 validator.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/ZFeByEwsjME)

**What this video covers**

The video shows how to use the Bannerify Figma plugin to export animated HTML banners from Figma for Google Ads. It also demonstrates how to preview the exported zip, inspect the generated code, and validate the result with the Google Ads HTML5 validator.

**Things you'll need**

- Figma
- Bannerify HTML Exporter plugin

**Steps**

1. Install the Bannerify HTML Exporter plugin from the Figma Community tab if it is not already installed.
2. Open a Figma file with banners set up, or duplicate the sample file linked in the Bannerify plugin details additional notes.
3. Right-click on the canvas, go to plugins, and launch Bannerify HTML Exporter.
4. Click Export banners to HTML, then open the code output settings and choose Google Ads from the advertising platforms list.
5. Click Export banners to generate the HTML, images, and zip file.
6. Open the zip file and view index.html to preview the exported banners and replay animations if needed.
7. Optionally upload the zip to the Google Ads HTML5 validator to check the creative before use.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=ZFeByEwsjME)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-figma-to-html-for-google-ads-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/export-banners-for-iab-from-figma.md"
description: "The video shows how to install the Bannerify HTML Exporter Figma plugin and use it to export already animated banner designs from Figma to HTML for IAB. It then previews the exported output, explains the generated files, and shows where the banners can be uploaded afterward."
---

# Export banners for IAB from Figma

> The video shows how to install the Bannerify HTML Exporter Figma plugin and use it to export already animated banner designs from Figma to HTML for IAB. It then previews the exported output, explains the generated files, and shows where the banners can be uploaded afterward.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/JHucv6UEaBU)

**What this video covers**

The video shows how to install the Bannerify HTML Exporter Figma plugin and use it to export already animated banner designs from Figma to HTML for IAB. It then previews the exported output, explains the generated files, and shows where the banners can be uploaded afterward.

**Things you'll need**

- Figma
- Bannerify HTML Exporter

**Steps**

1. Open Figma Community, search for “Bannerify,” and install “Bannerify HTML Exporter.”
2. Open the plugin description to find the example Figma design link in the “additional notes” section, or use your own banner design.
3. In your Figma project, right click and choose plugins, then launch “Bannerify HTML Exporter.”
4. Click “Export banners to HTML,” open “code output settings,” and select “IAB” under the “advertising platforms” export format group.
5. Click “Export banners,” then save the generated zip file.
6. Open the exported folder and use the “index.html” file to preview the banners in the browser.
7. Inspect the exported folder in Visual Studio Code to see the HTML, images, CSS, and JavaScript generated for the banner set.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=JHucv6UEaBU)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-figma-to-html-for-iab-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/export-banners-for-sizmek-from-figma.md"
description: "This tutorial shows how to use the Bannerify Figma plugin to export animated banners from Figma to HTML for the Sizmek ad platform. It covers installing Bannerify, selecting the Sizmek export format, and reviewing the generated HTML, JavaScript, CSS, images, and EBLoader.js files."
---

# Export banners for Sizmek from Figma

> This tutorial shows how to use the Bannerify Figma plugin to export animated banners from Figma to HTML for the Sizmek ad platform. It covers installing Bannerify, selecting the Sizmek export format, and reviewing the generated HTML, JavaScript, CSS, images, and EBLoader.js files.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/xuGoT7KbVOw)

**What this video covers**

This tutorial shows how to use the Bannerify Figma plugin to export animated banners from Figma to HTML for the Sizmek ad platform. It covers installing Bannerify, selecting the Sizmek export format, and reviewing the generated HTML, JavaScript, CSS, images, and EBLoader.js files.

**Things you'll need**

- Figma
- Bannerify HTML Exporter
- Access to the pre-designed banners linked in the plugin description, if following along with the tutorial example

**Steps**

1. Install the Bannerify plugin from Figma Community by searching for "Bannerify" and selecting "Bannerify HTML Exporter".
2. Open the plugin description and use the URL in the "additional notes" section to load the pre-designed banner file, if desired.
3. In your Figma file, right click the banners, go to Plugin, and launch "Bannerify HTML Exporter".
4. Click "Export banners to HTML", then under "code output settings" open the "export format" drop-down and choose "Sizmek".
5. Click "export banners", then save the generated zip file and unzip it.
6. Open the exported folder and preview the banners by opening "index.html" in a browser.
7. Inspect the exported files in a code editor to see the HTML, JavaScript, CSS, image assets, and the automatically included "EBLoader.js" script.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=xuGoT7KbVOw)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-figma-to-html-for-sizmek-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/export-banners-to-animated-png-apng-images-from-figma.md"
description: "This tutorial shows how to use the Bannerify Figma plugin to export animated banners from Figma as animated PNG (APNG) files. It also demonstrates downloading the ZIP output and previewing the exported PNGs with the included index.html file."
---

# Export banners to animated PNG (APNG) images from Figma

> This tutorial shows how to use the Bannerify Figma plugin to export animated banners from Figma as animated PNG (APNG) files. It also demonstrates downloading the ZIP output and previewing the exported PNGs with the included index.html file.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/GoBXTURjPuM)

**What this video covers**

This tutorial shows how to use the Bannerify Figma plugin to export animated banners from Figma as animated PNG (APNG) files. It also demonstrates downloading the ZIP output and previewing the exported PNGs with the included index.html file.

**Steps**

1. Open your Figma file, search for Bannerify from the actions icon, and save or run the plugin.
2. Right-click on the canvas, go to plugins, then saved plugins, and launch Bannerify.
3. Click load banners to import the Figma frames and their child layers into Bannerify.
4. When the banners are ready, click export to GIF/video and choose export APNG.
5. Wait for Bannerify to process each banner, then download the ZIP file and unzip it.
6. Open the APNG folder to view the exported .png files, or drag the index.html file into a browser to preview them together.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=GoBXTURjPuM)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-animated-png-apng-files-from-figma-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/export-banners-to-animated-webp-images-from-figma.md"
description: "This video shows how to use the Bannerify Figma plugin to export animated banners from Figma as animated WebP image files. It also compares Export WebP with Export GIF, showing that animated WebP keeps sharper, more vibrant output at 2x retina resolution."
---

# Export banners to animated WebP images from Figma

> This video shows how to use the Bannerify Figma plugin to export animated banners from Figma as animated WebP image files. It also compares Export WebP with Export GIF, showing that animated WebP keeps sharper, more vibrant output at 2x retina resolution.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/-MsleYiQHIQ)

**What this video covers**

This video shows how to use the Bannerify Figma plugin to export animated banners from Figma as animated WebP image files. It also compares Export WebP with Export GIF, showing that animated WebP keeps sharper, more vibrant output at 2x retina resolution.

**Things you'll need**

- Figma installed with the Bannerify Figma plugin available
- Banner frames already designed in Figma
- Animations already set up on the banners

**Steps**

1. Open Figma, click the Resources icon, search for Bannerify, and run the plugin or save it to your plugins list.
2. In your file, right-click and open Plugins > Saved plugins, then launch Bannerify.
3. Select the banner frames you want to export, then click Load checked banners in the plugin.
4. When your banners are loaded and animated, click Export to GIF/Video and choose Export WebP.
5. Wait for Bannerify to convert the frames and merge them into a single animated WebP file.
6. Download the zip file, unzip it, and open the webp folder and index preview page to view the exported banners.
7. Optionally export GIF as well to compare the quality and file size against animated WebP.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=-MsleYiQHIQ)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-banners-from-figma-to-animated-web-p-images-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/export-banners-to-gifs-from-figma.md"
description: "The video shows how to use the Bannerify Figma plugin to export animated banner designs from Figma to GIF files. It also demonstrates the export settings, the ZIP download, and the generated index.html preview page."
---

# Export banners to GIFs from Figma

> The video shows how to use the Bannerify Figma plugin to export animated banner designs from Figma to GIF files. It also demonstrates the export settings, the ZIP download, and the generated index.html preview page.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/J2wk4r1QL1k)

**What this video covers**

The video shows how to use the Bannerify Figma plugin to export animated banner designs from Figma to GIF files. It also demonstrates the export settings, the ZIP download, and the generated index.html preview page.

**Things you'll need**

- Figma installed
- Bannerify plugin installed
- Animated banner designs already set up in Bannerify

**Steps**

1. Install the Bannerify plugin from Figma Community or Plugins by searching for “Bannerify” and clicking Install.
2. Open your Figma file, then right click on the page and choose Plugins > Bannerify.
3. Confirm that your parent frames are loaded as banners and that your layer animations are already set up.
4. Click “Export to GIF/Video” to open the export settings panel.
5. Choose whether the GIF should loop, adjust the output quality slider, and optionally enable the preview page dark mode.
6. Click “Export to GIF” and wait while Bannerify plays each banner, renders the GIFs, and zips the results.
7. Save the ZIP file, unzip it, and open the included index.html file to preview all exported GIFs together.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=J2wk4r1QL1k)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-animated-banners-from-figma-to-gi-fs-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/export-banners-to-html-gsap-from-figma.md"
description: "The video shows how to install the Bannerify Figma plugin and use it to export animated banners from Figma as HTML and JavaScript in the GreenSock (GSAP) format. It then demonstrates saving the export as a zip, opening index.HTML to preview the banners, and inspecting the generated HTML and JavaScript files."
---

# Export banners to HTML/GSAP from Figma

> The video shows how to install the Bannerify Figma plugin and use it to export animated banners from Figma as HTML and JavaScript in the GreenSock (GSAP) format. It then demonstrates saving the export as a zip, opening index.HTML to preview the banners, and inspecting the generated HTML and JavaScript files.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/SS2J6k5Wo7s)

**What this video covers**

The video shows how to install the Bannerify Figma plugin and use it to export animated banners from Figma as HTML and JavaScript in the GreenSock (GSAP) format. It then demonstrates saving the export as a zip, opening index.HTML to preview the banners, and inspecting the generated HTML and JavaScript files.

**Things you'll need**

- A Figma account with a banner design file open
- The Bannerify plugin installed in Figma

**Steps**

1. Install the Bannerify plugin in Figma by searching for "Bannerify" in Community or search and selecting "Bannerify HTML Exporter".
2. Open the Figma file with the prepared banners, or duplicate the example file from the plugin description if you want to follow along.
3. Right-click on the page, go to Plugins, and launch "Bannerify HTML Exporter".
4. Click "Export Banners to HTML" to open the export settings.
5. Under "Code output settings," choose "Vanilla HTML/JS" and then select "GreenSock (GSAP)" as the export format/platform.
6. Click "Export banners," save the generated zip file, and unzip it.
7. Open "index.HTML" to preview the exported banners in the browser, or open the generated HTML and JavaScript files in a code editor to inspect the output.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=SS2J6k5Wo7s)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-figma-to-html-green-sock-gsap-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/export-banners-to-mp4-videos-from-figma.md"
description: "The video shows how to use the Bannerify Figma plugin to export animated banner designs from Figma as MP4 video files with one click. It also demonstrates the export options, the generated ZIP download, and the HTML preview page for reviewing all exported videos together."
---

# Export banners to MP4 videos from Figma

> The video shows how to use the Bannerify Figma plugin to export animated banner designs from Figma as MP4 video files with one click. It also demonstrates the export options, the generated ZIP download, and the HTML preview page for reviewing all exported videos together.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/rlq7Zq0fl7o)

**What this video covers**

The video shows how to use the Bannerify Figma plugin to export animated banner designs from Figma as MP4 video files with one click. It also demonstrates the export options, the generated ZIP download, and the HTML preview page for reviewing all exported videos together.

**Things you'll need**

- A Figma file with banner frames already set up.
- Animations already configured in the banner designs.

**Steps**

1. Install the Bannerify Banner Ad Studio plugin from Figma Community if it is not already installed.
2. Right click on the Figma page, go to Plugins, and open Bannerify Banner Ad Studio.
3. Click Export to GIF/Video in the plugin header.
4. Set the Frames Per Second and Image Compression options, and leave Dark Mode on or off for the HTML preview page as needed.
5. Click Export to MP4.
6. Save the downloaded ZIP file, unzip it, and open the included index.html in Chrome to preview all the MP4 files.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=rlq7Zq0fl7o)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-animated-banners-from-figma-to-m-p4-videos-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/export-banners-to-webm-videos-from-figma.md"
description: "This tutorial shows how to install the Bannerify Figma plugin and use it to export animated banners from Figma to WebM video files in one click. It also explains the export options, the generated preview page, and how to open the resulting zip file and WebM videos."
---

# Export banners to WebM videos from Figma

> This tutorial shows how to install the Bannerify Figma plugin and use it to export animated banners from Figma to WebM video files in one click. It also explains the export options, the generated preview page, and how to open the resulting zip file and WebM videos.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/Nur9nWx9Qhs)

**What this video covers**

This tutorial shows how to install the Bannerify Figma plugin and use it to export animated banners from Figma to WebM video files in one click. It also explains the export options, the generated preview page, and how to open the resulting zip file and WebM videos.

**Things you'll need**

- Figma
- The Bannerify Figma plugin
- Animated banners already set up in Bannerify

**Steps**

1. Install the Bannerify Figma plugin from Figma Community or Plugins and confirm it shows as Installed.
2. Open your Figma file, right click, go to Plugins, and launch Bannerify.
3. Make sure your parent frames and layer animations are set up the way you want in Bannerify.
4. Click Export to GIF/Video, adjust output quality and the preview page setting if needed, and leave the GIF-only option off for WebM export.
5. Click Export to WebM and wait while Bannerify renders each banner and packages the results into a zip file.
6. Save the download, unzip it, and open the included index.html preview page or individual WebM files.
7. Use the exported WebM files on the web as needed, or convert them to another format with a third-party tool if required.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=Nur9nWx9Qhs)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-animated-banners-from-figma-to-web-m-videos-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/export-responsive-html-banners-from-figma.md"
description: "The video shows how to use the Bannerify Figma plugin to export responsive HTML banner ads from Figma. It explains how to select Responsive HTML (Media Queries), export the banners, and download the resulting .zip file with a single responsive index.html file that uses media queries to display the right banner size."
---

# Export responsive HTML banners from Figma

> The video shows how to use the Bannerify Figma plugin to export responsive HTML banner ads from Figma. It explains how to select Responsive HTML (Media Queries), export the banners, and download the resulting .zip file with a single responsive index.html file that uses media queries to display the right banner size.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/RXBaPS4nSQ4)

**What this video covers**

The video shows how to use the Bannerify Figma plugin to export responsive HTML banner ads from Figma. It explains how to select **Responsive HTML (Media Queries)**, export the banners, and download the resulting `.zip` file with a single responsive `index.html` file that uses media queries to display the right banner size.

> **Note:** This **Responsive HTML (Media Queries)** format is generic responsive HTML for custom hosting; it is not a Google Ads upload format. For a single responsive uploaded Display ZIP, use [**Google Ads (Responsive HTML5)**](/bannerify/export/platforms/google-ads-responsive). For separate fixed-size ZIPs, use **Google Ads** or **Google Display Network**.

**Things you'll need**

- Figma
- Bannerify Figma plugin
- Frames already designed and animated as banners

**Steps**

1. Open Figma, go to Resources, search for Bannerify under the Plugins tab, and run or save the Bannerify plugin.
2. Load the frames on the page into Bannerify so they appear in the timeline as banners.
3. Click Export to HTML, then choose Export HTML and change the code output settings from HTML/CSS to **Responsive HTML (Media Queries)**.
4. Optionally add a clickTag, include a zip file inside the zip, and choose whether to minify the code.
5. Click Export Banners to generate the HTML, CSS, JavaScript, and images.
6. Download the .zip file, unzip it, and use the responsive folder containing the index.html file and images.
7. Preview or inspect the exported index.html to see how media queries swap banners based on viewport size.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=RXBaPS4nSQ4)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-responsive-html-banners-from-figma-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/generate-custom-banner-animations-with-ai.md"
description: "This tutorial shows how to use the Bannerify Figma plugin to generate custom key frame animations with AI prompts from ChatGPT or Claude, then import the JSON back into Bannerify. It also demonstrates applying those custom animations to layers and exporting the finished banners as MP4 video or HTML."
---

# Generate custom banner animations with AI

> This tutorial shows how to use the Bannerify Figma plugin to generate custom key frame animations with AI prompts from ChatGPT or Claude, then import the JSON back into Bannerify. It also demonstrates applying those custom animations to layers and exporting the finished banners as MP4 video or HTML.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/WDYRd9cSJcs)

**What this video covers**

This tutorial shows how to use the Bannerify Figma plugin to generate custom key frame animations with AI prompts from ChatGPT or Claude, then import the JSON back into Bannerify. It also demonstrates applying those custom animations to layers and exporting the finished banners as MP4 video or HTML.

**Things you'll need**

- A Figma file with frames to use as banners
- Bannerify installed as a Figma plugin
- Access to ChatGPT or Claude, or another AI tool that can produce the JSON prompt output

**Steps**

1. Open a Figma file, find Bannerify from the Actions menu, and run it from Saved Plugins.
2. Load your frames as banners with Load All Banners so Bannerify can read the layers into the timeline.
3. Open Custom Animations, then use Ask AI to open the Bannerify web tool and generate an animation prompt from an existing preset or from scratch.
4. Open the prompt in ChatGPT or Claude, copy the JSON response, and paste it into Paste generated JSON code here in Bannerify.
5. Review the generated key frames, adjust values like timing or position if needed, and click Update Saved Animation.
6. Apply the custom animation to one layer or Similar Layers, then preview the animation in the timeline.
7. Export the result with Export to GIF or Video, Export MP4, or Export to HTML, then download the zip file and use the preview or source files.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=WDYRd9cSJcs)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-generate-custom-animations-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/how-to-export-figma-to-html-canvas-using-bannerify.md"
description: "The video shows how to use the Bannerify Figma plugin to export animated banners from Figma as HTML Canvas. It covers installing the plugin, choosing the HTML Canvas export format, and opening the exported files to preview the generated canvas-based animations."
---

# How to export Figma to HTML Canvas using Bannerify

> The video shows how to use the Bannerify Figma plugin to export animated banners from Figma as HTML Canvas. It covers installing the plugin, choosing the HTML Canvas export format, and opening the exported files to preview the generated canvas-based animations.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/kjDWvQkCxek)

**What this video covers**

The video shows how to use the Bannerify Figma plugin to export animated banners from Figma as HTML Canvas. It covers installing the plugin, choosing the HTML Canvas export format, and opening the exported files to preview the generated canvas-based animations.

**Things you'll need**

- Figma
- Bannerify HTML Exporter plugin
- A Figma file with banners and animations already set up

**Steps**

1. Install the Bannerify HTML Exporter plugin from the Figma Community if it is not already installed.
2. Open your Figma file and launch Bannerify by right-clicking the design, then selecting plugins and Bannerify HTML Exporter.
3. In the plugin, click Export Banners to HTML to open the export settings panel.
4. Under Code output settings, change Export format/platform from Vanilla HTML/CSS to Vanilla HTML/JS (HTML Canvas).
5. Click Export Banners and save the generated zip file with the default or preferred name.
6. Open the zip file, then open index.html in Chrome to preview the exported banners and animations.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=kjDWvQkCxek)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-figma-to-html-canvas-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/how-to-install-figma-plugins-in-2022.md"
description: "This tutorial shows the updated 2022 way to install and uninstall Figma plugins using the Figma Community and the new “Try it out” flow. It uses the Bannerify plugin as an example and also explains how to launch installed plugins from a Figma file."
---

# How to install Figma plugins in 2022

> This tutorial shows the updated 2022 way to install and uninstall Figma plugins using the Figma Community and the new “Try it out” flow. It uses the Bannerify plugin as an example and also explains how to launch installed plugins from a Figma file.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/0bEnR3cpXI8)

**What this video covers**

This tutorial shows the updated 2022 way to install and uninstall Figma plugins using the Figma Community and the new “Try it out” flow. It uses the Bannerify plugin as an example and also explains how to launch installed plugins from a Figma file.

**Things you'll need**

- A Figma account
- Access to Figma Community
- Figma open in the browser or the Figma desktop app

**Steps**

1. Open the Figma Community by clicking the “Community” icon or text at the top.
2. Find a plugin by searching or by opening the “Plugins” tab, then open the plugin detail page.
3. Click “Try it out” for the plugin you want, and choose the Figma account or Figma team to add it to.
4. In the blank Figma file that opens, go to the “Resources” panel, click the three dot “More options” icon, and select “Install”.
5. To use the plugin later, open a Figma file, right-click, go to “Plugins” > “Installed Figma plugins”, and select the plugin.
6. To uninstall it, open the plugin from the “Resources” tab, click the three dot “More options” icon, and choose “Uninstall”.
7. Use “Recents” or switch to “Installed” in the “Resources” menu to review plugins you have installed.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=0bEnR3cpXI8)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-install-figma-plugins-in-2022)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/bannerify/tutorials/upload-preview-links-for-html-banners-from-figma-to-netlify.md"
description: "This video shows how to use the Bannerify Figma plugin to export HTML banners and automatically upload the included preview page to Netlify. It also shows how to create a Netlify personal access token, connect it in Bannerify, rename the site, and share the hosted preview URL with clients or stakeholders."
---

# Upload preview links for HTML banners from Figma to Netlify

> This video shows how to use the Bannerify Figma plugin to export HTML banners and automatically upload the included preview page to Netlify. It also shows how to create a Netlify personal access token, connect it in Bannerify, rename the site, and share the hosted preview URL with clients or stakeholders.

[← Back to Bannerify Video Tutorials](/bannerify/tutorials)

[Embedded media](https://www.youtube.com/embed/ZBJeKCTWo4k)

**What this video covers**

This video shows how to use the Bannerify Figma plugin to export HTML banners and automatically upload the included preview page to Netlify. It also shows how to create a Netlify personal access token, connect it in Bannerify, rename the site, and share the hosted preview URL with clients or stakeholders.

**Things you'll need**

- A prepared Figma file with banners set up in Bannerify
- A Netlify account

**Steps**

1. Open the Figma Resources icon, search for Bannerify, and save the Bannerify plugin for easy access.
2. Run Bannerify from Saved plugins and load your prepared banners into the plugin.
3. Click Export to HTML, choose the export settings you want, and enable Upload Preview Page URL to Netlify.
4. In Netlify, create a new personal access token, copy it, and paste it into the personal access token field in Bannerify.
5. If needed, open the generated Netlify site and change the site name in Domain settings, then refresh Bannerify to update the preview URL.
6. Click Export Banners to export the files and upload the preview page to Netlify.
7. Use the Netlify preview URL to share the live banner preview, and open site settings in Netlify if you need to manage the site later.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=ZBJeKCTWo4k)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-upload-preview-links-for-html-banners-from-figma-to-netlify-using-bannerify)
- [Browse Bannerify tutorial docs](https://docs.hypermatic.com/bannerify/tutorials)

---

---
url: "/commentful/comments/comment-metadata.md"
description: "You can add metadata (for example, a title, tags, categories, due dates, assignees, etc) to any Figma comment in your kanban board to help provide more useful context."
---

# Adding custom metadata to your Figma comments

> You can add metadata (for example, a title, tags, categories, due dates, assignees, etc) to any Figma comment in your kanban board to help provide more useful context.

[Video](/assets/videos/commentful/comments/edit-comment-metadata.mp4)

To add or update metadata on your Figma comments, make sure the _Figma Comments_ tab is selected, then click on any Figma comment card to open up its details panel in the plugin.

Once you've clicked on a Figma comment, under the _Overview_ tab in the comment details popup panel, you can populate any metadata you like, which will be saved in real-time, and will be visible from the main kanban board, and from the same **Details** panel.

---

---
url: "/commentful/comments/custom-statuses.md"
description: "You can organize your Figma comments into a Trello-style kanban board with your own custom statuses"
---

# Organise Figma comments into custom statuses

> You can organize your Figma comments into a Trello-style kanban board with your own custom statuses

## Creating a new custom comment status

[Video](/assets/videos/commentful/comments/add-custom-status.mp4)

Under the **Figma Comments** tab, you can create custom columns for your kanban board under to organize your Figma comments into different custom statuses.

YOu can do this by horizontally scrolling to the far-right hand side of the plugin, selecting your **New Status Icon**, choosing your **New Status Color**, providing a **New Status Label**, and then clicking the **Add New Custom Status** button to create and save your new status.

Once your status has been created, it will show up as the far-right column next to any existing statuses you've already added.

> **Tip:** The default **Backlog** status will always be present as a default category where any new/uncategorized Figma comments will show up for you to assign their own custom status.

### Editing a custom comment status

You can edit a custom status at any time by clicking the **3 Dots** icon button next to any custom status label, updating your icon/color/label, then clicking the **Update Custom Status** button to save your updated status details.

### Deleting a custom comment status

You can delete a custom status at any time by clicking the **3 Dots** icon button next to any custom status label, then enabling the **I want to delete this custom status** toggle, then clicking the **Delete Custom Status** button to remove custom status.

> **Note:** This will only delete your custom status, and **will not delete any Figma comments** already inside of that status; these comments will automatically be moved to the **Backlog** status after your custom status has been deleted.

## Re-arrange custom comment status swimlanes

[Video](/assets/videos/commentful/comments/rearrange-statuses.mp4)

After you've created at least two custom statuses, you can re-arrange them on your kanban board underneath the **Figma Comments** at any time by clicking the custom status column **Label** text and dragging it horizontally left or right to shift it before or after other custom status columns.

Once you've dragged the column where you'd like it to be placed, letting go of your mouse to _drop_ the status will save it in its new ordered location.

---

---
url: "/commentful/comments/export-comments.md"
description: "You can export and download your Figma comments to a CSV spreadsheet file at any time from the Commentful plugin."
---

# Exporting Figma comments to a CSV file

> You can export and download your Figma comments to a CSV spreadsheet file at any time from the Commentful plugin.

[Video](/assets/videos/commentful/comments/export-comments-to-csv.mp4)

To export a list of your Figma comments, with the _Figma Comments_ tab selected in the plugin, you can click on the **Export Comments** button in the bottom right of the plugin window.

Commentful downloads the comments as a UTF-8 `.csv` file that you can open in Microsoft Excel, Google Sheets, Apple Numbers, or another spreadsheet app. Emoji and other Unicode characters are preserved in the export.

---

---
url: "/commentful/comments/post-comments.md"
description: "You can quickly post new Figma comments and replies from the Commentful plugin"
---

# Posting new Figma comments from the plugin

> You can quickly post new Figma comments and replies from the Commentful plugin

## Posting a new Figma comment from the Commentful plugin

[Video](/assets/videos/commentful/comments/attach-comment-to-node.mp4)

To post a new comment, you can either leave a comment pin normally (using the native Comment feature in Figma), or you can click on the **Plus** icon button next to any status column under the _Figma Comments_ tab in the Commentful plugin.

Once you've clicked the **Plus** button, you need to click on a single Figma layer, which will automatically attach the new Figma comment to that exact layer, making it easier to attach the comment to the layer (if its visual position moves around later, etc).

You will also be able to [add metadata](/commentful/comments/comment-metadata) to your new Figma comment, like a title for the comment, custom tags, a [custom status](/commentful/comments/custom-statuses), due date and assignee.

Once you've selected the Figa layer and added your metadata, you can use the built-in markdown editor to write your new comment, then click the **Post New Figma Comment** button to post your new Figma comment.

> **Note:** After your new comment has been posted from the plugin, it will show up in both the native Figma comment pin and also be loaded into the Commentful plugin (via the Figma API), so anyone who isn't using the Commentful plugin will still be able to see it in the Figma file (when the Figma Comments view is active).

> **Tip:** Figma comments [support markdown syntax](https://help.figma.com/hc/en-us/articles/360041068574-Add-comments-to-files#Add_text_styling_to_comments), so to make this easier, Commentful includes a visual markdown editor to make it easier for you to add bold/italics or links.

> **Warning:** ** Figma API Rate Limits (Effective Nov 17, 2024)** Figma limits API requests to **5 per minute** for Figma users on their Starter (free) tier. Commentful automatically mitigates this limit with caching and request limiting. For heavier usage (for example, posting many comments per minute via the Commentful plugin), consider upgrading to a Full Figma seat.

## Replying to Figma comment threads from the Commentful plugin

[Video](/assets/videos/commentful/comments/post-a-thread-comment.mp4)

You can reply to any Figma comment by clicking its card under the **Figma Comments** tab, then using the built-in markdown editor to write your reply, then click the **Reply To Figma Thread** button to post your reply to the comment thread.

> **Note:** After the your comment reply has been posted from the plugin, it will show up in both the native Figma comment pin and also be loaded into the Commentful plugin (via the Figma API), so anyone who isn't using the Commentful plugin will still be able to see it in the Figma file (when the Figma Comments view is active).

> **Tip:** Figma comments [support markdown syntax](https://help.figma.com/hc/en-us/articles/360041068574-Add-comments-to-files#Add_text_styling_to_comments), so to make this easier, Commentful includes a visual markdown editor to make it easier for you to add bold/italics or links.

> **Warning:** ** Figma API Rate Limits (Effective Nov 17, 2024)** Figma limits API requests to **5 per minute** for Figma users on their Starter (free) tier. Commentful automatically mitigates this limit with caching and request limiting. For heavier usage (for example, posting many comments per minute via the Commentful plugin), consider upgrading to a Full Figma seat.

---

---
url: "/commentful/comments/search-and-filter-comments.md"
description: "You can quickly find the Figma comments you're looking for by either searching via keywords, applying narrowing filters, or sorting your comments by different properties."
---

# Searching, filtering and sorting your Figma comments

> You can quickly find the Figma comments you're looking for by either searching via keywords, applying narrowing filters, or sorting your comments by different properties.

## Search your Figma comments

[Video](/assets/videos/commentful/comments/search-comments.mp4)

To search your Figma comments, with the _Figma Comments_ tab selected, you can start typing a keyword in the **Search Input** field to instantly trigger an automatic content search of your Figma comments.

You can **click on any item** in the search results list to open that comment card in the Commentful plugin.

## Filter your Figma comments

[Video](/assets/videos/commentful/comments/filter-comments.mp4)

To filter your Figma comments, with the _Figma Comments_ tab selected, you can click on the **Filter** icon button (to the right of the search input field) in the plugin subheader to bring up the filters panel.

With the filtering panel open, you can apply any desired filters to narrow down the Figma comments that will be displayed in your kanban board under the **Figma Comments** tab; these can include filtering by comment date ranges, filtering by Commentful tags, filtering by Figma user and filtering by which Figma frame(s) the Figma comments belong to.

> **Tip:** You can clear your applied filters at any time by re-opening the filters panel (by clicking the **Filters** icon button in the plugin subheader), then clicking the **Clear Filters** button, which will reset all the filters and show all of your Figma comments again (without any narrowing/filtering of comments applied).

## Sort your Figma comments

[Video](/assets/videos/commentful/comments/sort-comment-order.mp4)

To sort your Figma comments, with the _Figma Comments_ tab selected, you can click on the **Sort** select box at the bottom of the plugin window to use the comment sorting dropdown options.

This dropdown box will let you sort by:

- The **Last Reply** in any Figma comment (this is default sort option).
- The Figma comment **Created Date**.
- The name of the Figma **User** who posted the comment.

Selecting any of these dropdown options will autmatically sort your Figma comments in the kanban board by the ordering you've selected.

---

---
url: "/commentful/comments/view-comments.md"
description: "You can View all of the Figma comments in your file from the _Figma Comments_ tab in the Commentful plugin."
---

# Viewing native Figma comments left by any Figma users in your current file

> You can View all of the Figma comments in your file from the _Figma Comments_ tab in the Commentful plugin.

## Loading Figma comments from your file automatically

[Video](/assets/videos/commentful/comments/leave-a-figma-comment.mp4)

After you've successfully connected your Figma file to the plugin, Commentful will automatically check for new Figma comments in your file every 60 seconds (to avoid API rate limits), allowing you to see all of your Figma comments at once, and [organize them](/commentful/comments/custom-statuses) into a Trello-style board, [search and filter](/commentful/comments/search-and-filter-comments) them, [add todo items](/commentful/todos/assign-todos), or [apply custom metadata](/commentful/comments/comment-metadata) like tags, assignees, due dates, etc, to them.

> **Warning:** ** Figma API Rate Limits (Effective Nov 17, 2024)** Figma limits API requests to **5 per minute** for Figma users on their Starter (free) tier. Commentful automatically mitigates this limit with caching and request limiting. For heavier usage (for example, posting many comments per minute via the Commentful plugin), consider upgrading to a Full Figma seat.

## See an activity overview of all the latest Figma comments post

[Video](/assets/videos/commentful/comments/view-latest-comment-activity.mp4)

You can click on the **Alert Bell** icon button to quickly see an overview of all of the latest Figma comment activity in your Figma file, and quickly jump to where they're located in your Figma file, or open up the comment in the plugin to view the full thread of replies (or add your own new reply).

## Jump to a pin to show where a Figma comment is on your canvas

[Video](/assets/videos/commentful/comments/jump-to-comment-pin.mp4)

Select a numbered **Pin** icon to jump to the comment's location on the Figma canvas. Commentful adds a matching visual pin and removes it when the plugin closes.

---

---
url: "/commentful/faq/plans.md"
description: "To get unlimited usage of all of the Commentful Pro features, you will need to purchase a license from the [Hypermatic website](https://hypermatic.com/commentful#pro)."
---

# Commentful Free vs Commentful Pro

> To get unlimited usage of all of the Commentful Pro features, you will need to purchase a license from the [Hypermatic website](https://hypermatic.com/commentful#pro).

Commentful includes 10 free trials of the _Pro_ version. Once these trials have been used up, the Figma plugin will revert to their _Free_ version, which will have limited functionality.

  - **Commentful Free**: ### Todo List Items Unlimited Usage       ### Figma Comment Updates Try during 10 Pro Trials       ### Shared Review Links Try during 10 Pro Trials
  - **Commentful Pro**: ### Todo List Items Unlimited Usage       ### Figma Comment Updates Unlimited Usage       ### Shared Review Links Unlimited Usage

---

---
url: "/commentful/faq/security.md"
description: "Commentful runs as an official plugin inside of Figma's own app, which are reviewed and approved by the Figma team."
---

# Commentful Security

> Commentful runs as an official plugin inside of Figma's own app, which are reviewed and approved by the Figma team.

The Figma plugin is run directly from Figma's own servers, and runs inside of a your Figma file, which means that it inherits all of the [security](https://www.figma.com/security/) and infrastructure of the Figma platform, which exceed industry standards for data protection and security:

- SOC 2 Type 2
- SOC 3
- Cloud Security Alliance (CSA) STAR: Level 1
- ISO/IEC 27001:2013
- ISO/IEC 27018:2019
- EU Cloud Code of Conduct (COC): Level 2

There's **no additional software** that needs to be installed to use the Figma plugin, as Figma plugins run as a built-in part of Figma's own native functionality, and all Figma plugins Accessibile and can be instantly run from inside any Figma file, or via the official [Figma Community](https://www.figma.com/community) ecosystem inside of the Figma app.

If your organization is already approved to use Figma, then you _already have access_ to Figma plugins.

## How Commentful works

The [Commentful Figma plugin](https://www.figma.com/community/plugin/1030968261424288884) uses the [Figma Plugins API](https://www.figma.com/plugin-docs/) and the [Figma REST API](https://www.figma.com/developers/api) to load in the Figma comments from your current file and allow them to be organized within the plugin's user interface.

It also allows users to keep a todo list of tasks, which are stored inside of the Figma file itself via the Figma Plugins API, and are _never_ uploaded, stored or used outside of the plugin.

You can also optionally create "Review" links, which allows users to optionally create password-protected URLs, which can be shared (by their choice) with any stakeholders to allow them to provide feedback on designs without needing a Figma account via the Commentful web app.

Any uploads and cloud storage services used by the Commentful Plugin and Commentful Web App are hosted on [Google Cloud](https://cloud.google.com/) (the same infrastructure that Google hosts all of its own products with), via [Google Firebase](https://firebase.google.com/).

As per the [Privacy and Security in Firebase](https://firebase.google.com/support/privacy), all Firebase services (aside from App Indexing) have successfully completed the **ISO 27001** and **SOC 1**, **SOC 2**, and **SOC 3** evaluation process, and some have also completed the **ISO 27017** and **ISO 27018** certification process.

## What Commentful does and doesn't do

Commentful uses the [Figma Plugins API](https://www.figma.com/plugin-docs/) and the [Figma REST API](https://www.figma.com/developers/api) to load in the Figma comments from your current file and allow them to be organized within the plugin's user interface.

### Commentful does

- Allow users to connect their Figma file to the plugin via the official [Figma REST API](https://www.figma.com/developers/api) to be able to read and post Figma comments in the current on the current Figma user's behalf.
- Encrypt any image uploads with AES-256.
- Download Excel (.xlsx) file exports of comments, todos and feedback files directly to the user's computer.
- Allow users to optionally create password-protected "Review" links that can be shared with stakeholders.

### Commentful does _not_

- Share _any_ comments, todos or other data from your Figma file design.
- Make _any_ password-protected "Review" URLs created via the plugin publicly accessible or indexed by any search engines.
- Collect or store _any_ personal information (Figma plugins *cannot* access any private information about Figma projects, Figma teams or Figma users).

## How Figma plugins work

Figma plugins are written in HTML/CSS/Javascript, and are run in a tightly controlled [sandbox environment](https://www.figma.com/plugin-docs/how-plugins-run/) inside of the main Figma application.

Figma plugins can only do whatever Figma allows them to do inside the permissions of the [Figma Plugins API](https://www.figma.com/plugin-docs/), and importantly, **plugins don't have any access to personal information** about the Figma user running the plugin.

## What Figma plugins can and can't do

As per the article on [Figma plugin security](https://www.figma.com/blog/how-we-built-the-figma-plugin-system/), there are a limited number of things that Figma plugins can do, and many more things that they can't do:

### Figma plugins can

- Only be run by an explicit user action
- Show UI in a single plugin-specific dialog
- Read any data in your Figma document (for example, a “find layer by name” plugin)
- Modify any data in your Figma document (for example, a “rename selected layers” plugin)
- Communicate with any server over the internet (for example, an “import from service X” plugin)

### Figma plugins _cannot_

- Run by themselves
- Get information about the project or team that owns the file
- Access anything when they aren’t running
- Access data from any files other than the file they were run in
- Change Figma’s UI outside of the plugin UI dialog

> **Tip:** Figma account administrators at your company can [configure an allowlist of plugins](https://help.figma.com/hc/en-us/articles/4404228724759-Manage-plugins-and-widgets-in-an-organization) that are allowed inside the organization. This can be used to prevent untrusted Figma plugins from being run in any file in that organization.

---

---
url: "/commentful/faq/troubleshooting.md"
description: "Troubleshooting guide for Commentful with network and plugin loading issues."
---

# Troubleshooting Commentful

> Troubleshooting guide for Commentful with network and plugin loading issues.

### Netskope blocking the Commentful web app from loading

There is a known issue with [Netskope](https://www.netskope.com/) blocking access to Firebase databases; to resolve this, please ensure you allow `firestore.googleapis.com:443` (as per [this thread](https://stackoverflow.com/questions/52441316/firestore-grpc-behind-a-corporate-firewall-proxy)).

### VPN may be required in China

Note, if you're in China, the accounts server _may_ be blocked by "The Great Firewall of China". If you're seeing an activation error, despite using a valid key, you will likely need to use a [VPN](https://protonvpn.com/free-vpn/) to resolve the issue.

### 'An error occurred while loading the plugin environment'

This may happen in the Figma desktop app if [the Use Developer VM](https://www.figma.com/plugin-docs/debugging/#developer-vm) debug setting in Figma is enabled by mistake; you can make sure it's turned off by **right-clicking** anywhere on your Figma canvas, hovering over **Plugins**, then hovering over **Development**, and making sure that the **Use Developer VM** is _unchecked_; after it is unchecked (and does _not_ have a tick icon next to it), re-running the Figma plugin should work as expected.

---

---
url: "/commentful/overview/install.md"
description: "Ensure you're logged into your Figma account, then follow the steps below to install and run the [Commentful Figma plugin](https://www.figma.com/community/plugin/1030968261424288884/commentful-feedback-workflow)."
---

# Install and run the Commentful Figma Plugin

> Ensure you're logged into your Figma account, then follow the steps below to install and run the [Commentful Figma plugin](https://www.figma.com/community/plugin/1030968261424288884/commentful-feedback-workflow).

### Video Tutorial: How to install (and remove) Figma plugins

This video tutorial is a complete step-by-step guide showing you the new process of how to install (and remove) Figma plugins after the mid-2024 "UI3" update to the Figma app
[Embedded media](https://www.youtube.com/embed/CzjxF2Jv6PM)

## Installing the Commentful Figma Plugin

1. Open any Figma file.
2. Click on the **Actions** icon in the bottom Figma toolbar.
3. Click the **Plugins & Widgets** tab to filter results to Figma plugins.
4. Search for **Commentful** in the search bar.
5. Click on the **Commentful** search result.
6. Click the **Save** button to install the Commentful plugin.

> **Note:** Figma users in a **Figma Organization** may only be able to install approved plugins. Please contact your Figma Org admin at your company to [approve the Commentful plugin](https://help.figma.com/hc/en-us/articles/4404228724759-Manage-plugins-and-widgets-in-an-organization) if you're unable to install certain Figma plugins.

## Running the Commentful Figma Plugin

Once you've [installed](#installing-the-figma-plugin) the **Commentful** Figma plugin, to run the plugin in your Figma file:

  1. **Right-click** anywhere on your Figma file's page canvas
  2. Hover your mouse over the **Plugins** ▶ menu item
  3. Hover your mouse over the **Saved plugins** ▶ menu item
  4. Click on the **Commentful** plugin menu item

> **Tip:** After you've run the **Commentful** plugin once in a Figma file, you'll be able to quickly re-launch it by clicking the **Commentful** icon in the right-hand side Figma column (under the **Plugin** subheading).

> **Warning:** Only Figma users with **Edit** access to a Figma file can run a Figma plugin in that Figma file; if you only have **View** permissions, you won't be able to run any Figma plugins in that file.

## Uninstalling the Commentful Figma plugin

1. Open any Figma file.
2. Click on the **Actions** icon in the bottom Figma toolbar.
3. Click the **Plugins & Widgets** tab to filter results to Figma plugins.
4. Search for **Commentful** in the search bar.
5. Click on the **Commentful** search result.
6. Click the **Remove** button to uninstall the Commentful plugin.

> **Note:** This will remove the plugin from your **Saved Plugins** list, however, the Figma plugin may still show up under your **Recents** list (if it has been recently run), as Figma saves this list of recent plugins in your browser's/app's local storage. The plugin will vanish from the Recents menu after other plugins are run to take its place.

---

---
url: "/commentful/overview/pro.md"
description: "After trying out all the Pro features of Commentful **10 times**, you can optionally upgrade to continue using all the extra features that are only available in the Pro version; or if you're a casual user, you can continue using the Free version forever."
---

# Activating Commentful Pro

> After trying out all the Pro features of Commentful **10 times**, you can optionally upgrade to continue using all the extra features that are only available in the Pro version; or if you're a casual user, you can continue using the Free version forever.

> **Tip:** Need a Commentful Pro account? You can purchase a Pro account for you or your team by visiting the [Commentful](https://www.hypermatic.com/commentful/#pro) product page on the Hypermatic website.

## Activating the Figma plugin with an Commentful Pro license key

1. **Purchase a Pro license** for you or your team by visiting the [Commentful](https://www.hypermatic.com/commentful/#pro) product page on the Hypermatic website.
2. **Run the Commentful Plugin**, then click on the **Upgrade Now** button at the bottom of the Figma plugin window.
3. **Paste in your Pro key**, then click the **Unlock** button.

This will unlock the Pro version of Commentful and give you unlimited use all of the Figma plugin features.

> **Warning:** Note, if you're in China, the accounts server _may_ be blocked by "The Great Firewall of China". If you're seeing a activation error, despite using a valid key, you will likely need to use a [VPN](https://protonvpn.com/free-vpn/) to resolve the issue.

> **Info:** If you ever need to use a different license key at any time (for example, you were using your own personal Pro license key, but now your employer is buying you a Pro license to use instead), you can press **CTRL + K** while your plugin window is open in Figma, and this will bring up the license key prompt again, where you can enter a different license key.

---

---
url: "/commentful/overview/quickstart.md"
description: "Organize Figma comments, track todos, and collect external design feedback from stakeholders."
---

# Get started with Commentful

> Organize Figma comments, track todos, and collect external design feedback from stakeholders.

[![Commentful Figma Plugin](https://www.hypermatic.com/commentful.jpg)](https://www.figma.com/community/plugin/1030968261424288884/commentful-feedback-workflow)

## Install and activate Commentful

- [Install & Run the Figma plugin](/commentful/overview/install.md): How to run Commentful inside of Figma
- [Activate Commentful Pro](/commentful/overview/pro.md): How to buy and use a Pro license key

## Using Commentful

  - [Commentful Documentation](/commentful/setup/connect-figma-file.md): Detailed docs with short screencaps
  - [Commentful Video Tutorials](/commentful/tutorials.md): Full step-by-step video walkthroughs

## Frequently asked questions

- [Troubleshooting Commentful](/commentful/faq/troubleshooting.md): Common issues issues you may run into
- [Commentful Security](/commentful/faq/security.md): Details about how Commentful works
- [Receipts](/faq/receipts.md): Find email receipts and PDF invoices
- [Billing](/faq/billing.md): Manage your Pro subscription
- [License Seat Management](/faq/seats.md): Manage the Figma users on your key
- [Commentful Free vs Pro](/commentful/faq/plans.md): Compare Free vs Pro features

[Video](https://www.hypermatic.com/assets/videos/commentful/COMMENTFUL_DEMO.mp4)

## Commentful features

- Organize Figma comments by custom statuses on a kanban board
- Add tags, due dates, and todos to Figma comments.
- See all todos assigned to you (and your own private todos) in one place
- Filter Figma comments by frame, date, status, user, or tag.
- Search Figma comments with autocomplete results.
- Add markdown formatting, links and lists to your Figma comments
- Gather external design feedback from anyone outside of your Figma file
- Optional Slack, Zapier and Make integrations to be notified of any review link activity
- Automatically apply external text and image feedback in Figma with one click
- Export your Figma comments, todos and external feedback to CSV and JSON files

---

---
url: "/commentful/reviews/applying-figma-feedback.md"
description: "After you've gathered some text content and/or image content feedback via a review link, you can automatically apply the content updates in Figma with one click."
---

# Automatically applying text and image feedback from a shared review link in your Figma file

> After you've gathered some text content and/or image content feedback via a review link, you can automatically apply the content updates in Figma with one click.

[Video](/assets/videos/commentful/reviews/apply-figma-feedback-updates.mp4)

To automatically apply any text or image feedback left via the review link, with the _Reviews_ tab selected in the plugin and a **Review** card already open, you can click on the **Update In Figma** button next to any text or image feedback item to automatically apply the text content update to that Figma layer, or insert the image file uploaded via the review link to that Figma layer's image fills.

> **Tip:** Clicking a **Update In Figma** button will apply the content update and automatically check the checkbox for that review feedback item, mark it off as completed; if you click a completed checkbox, this will revert the todo item to being incomplete again, but won't undo the content update, which you can optionally do by pressing `CMD + Z` (on Mac) or `CTRL + Z` (on Windows).

---

---
url: "/commentful/reviews/create-new-version.md"
description: "After you've created your initial review URL, you can optionally upload additional _versions_ of the link for stakeholders to review as the iterations of the design progress."
---

# Upload a new version to your existing shareable review link

> After you've created your initial review URL, you can optionally upload additional _versions_ of the link for stakeholders to review as the iterations of the design progress.

[Video](/assets/videos/commentful/reviews/create-new-version-url.mp4)

To create a new version for an existing review URL, click on the _Reviews_ tab, then click on an existing **Review** card, then click on the **Plus** icon button, select the Figma frames you'd like to upload (and select the order you'd like them to appear in).

Once you've selected your Figma frames, give it a **New Version Label** (which will be shown in your Review's _Versions_ [dropdown selector](/commentful/reviews/switching-review-versions), and also user-facing in the web app's heading text when viewing the versioned review link), then click the **Create New Version Review URL** button to upload your frames and generate an additional version on your review link.

Once the static Figma frame images have finished uploading, you'll be able to **copy the new version Review URL** and password (or the _passwordless_ URL) to share it with any stakeholders, which will let them [leave feedback on your designs via the Commentful web app](/commentful/reviews/leaving-feedback) in the browser.

> **Note:** Each version is a fixed snapshot. You cannot replace its uploaded frames because existing comments refer to their original positions and content. Create another version for the next design iteration. Reviewers can switch between versions to compare the designs and their feedback.

---

---
url: "/commentful/reviews/create-review-link.md"
description: "You can upload any Figma frames from your page to create a review link, which can be viewed in the browser (without needing a Figma account) to allow anyone to leave feedback on your static designs without being in your Figma file."
---

# Create a shareable review link to gather external feedback on your designs

> You can upload any Figma frames from your page to create a review link, which can be viewed in the browser (without needing a Figma account) to allow anyone to leave feedback on your static designs without being in your Figma file.

[Video](/assets/videos/commentful/reviews/create-and-copy-review-url.mp4)

You can create an external shareable review link that you can send to any clients or stakeholders to review your designs and leave feedback (without needing a Figma account) directly from the Commentful Figma plugin.

To create a brand new review URL to share, click on the _Reviews_ tab, then click the **Create New Review Link** button, select the Figma frames you'd like to upload (and select the order you'd like them to appear in).

Once you've selected your Figma frames, give it a **Review Title** (which will be shown in your plugin's _Reviews_ tab, and also user-facing in the web app's heading text when viewing a review link), then click the **Create New Review URL** button to upload your frames and generate a brand new review URL.

Once the static Figma frame images have finished uploading, you'll be able to **copy the Review URL** and password (or the _passwordless_ URL) to share it with any stakeholders, which will let them [leave feedback on your designs via the Commentful web app](/commentful/reviews/leaving-feedback) in the browser.

> **Note:** A review version is a fixed snapshot. You cannot replace its uploaded frames because existing comments refer to their original positions and content. [Create a new version](/commentful/reviews/create-new-version) when the designs change.

## Edit a review link title

[Video](/assets/videos/commentful/reviews/edit-review-title.mp4)

If you've already uploaded a review link but want to change the title (which shows up in your plugin's _Reviews_ tab, and also user-facing in the web app's heading text when viewing a review link), with the _Reviews_ tab selected in the plugin, you can click on a **Review** card to select it, then click on the **Share Link URL** tab, click on the **Pencil** icon button, type your new review link title, then click on the **Update Title** button to save it.

---

---
url: "/commentful/reviews/delete-review-link.md"
description: "You can permanently delete any review link (including any 'versions' created for it) from the Commentful plugin."
---

# Delete a review link URL, along with any feedback left on it

> You can permanently delete any review link (including any 'versions' created for it) from the Commentful plugin.

[Video](/assets/videos/commentful/reviews/delete-share-link.mp4)

To delete any review link URL (along with any _Versions_ of it, and any client feedback already submitted via the link) from the Commentful Figma plugin, with the _Reviews_ tab selected in the plugin and a **Review** card already open, you can click on the **Trash** icon button in the top right of the plugin window.

If you're sure you want to permanently delete the review link, enable the **Yes, I want to delete this entire review** toggle, and then you can click the **Delete this Shared Review** button to confirm; then this will instantly and _permanently_ delete the review URL, along with any _versions_ of the review link that were uploaded, and any feedback that was already submitted via the review link.

> **Warning:** Please be mindful that deleting a Review Link will **permanently delete it**, this includes the URL itself (which will become inactive), along with any feedback already left via the review link.

---

---
url: "/commentful/reviews/export-review-feedback.md"
description: "You can export and copy review link feedback from the Commentful web app as CSV, Markdown, or ready-to-paste AI summary prompts."
---

# Export review link feedback from the Commentful web app

> You can export and copy review link feedback from the Commentful web app as CSV, Markdown, or ready-to-paste AI summary prompts.

## Export review feedback to CSV from the Figma plugin

[Video](/assets/videos/commentful/reviews/export-review-feedback-to-csv.mp4)

To export a list of any review link feedback and change requests from the Commentful Figma plugin, with the _Reviews_ tab selected in the plugin and a **Review** card already open, you can click on the **Export Feedback** button in the bottom right of the plugin window.

Commentful downloads the current review version's feedback as a UTF-8 `.csv` file. You can open it in Microsoft Excel, Google Sheets, Apple Numbers, or another spreadsheet app. Emoji and other Unicode characters are preserved.

## Export review feedback from the Commentful web app

[Video](/assets/videos/commentful/reviews/export-web-app-feedback-csv.mp4)

To export a list of any review link feedback and change requests from the Commentful web app, click the **Show All Feedback** button in the top right of the browser window, then click the **Export Feedback** dropdown in the top of the feedback panel.

The export menu can be used with the feedback that is currently visible in the panel, so any active search query, author filter, date range, feedback type filter or completed-feedback filter will be respected.

### Download CSV

Choosing **Download CSV** will automatically export and download the currently filtered feedback as a `.csv` file you can open in an app of your choice (for example, Microsoft Excel, Google Sheets or Apple Numbers).

### Copy Markdown or CSV

If you want to paste your feedback into another tool, document or chat, you can also use:

- **Copy as Markdown**
- **Copy as CSV**

These options will copy the currently filtered feedback directly to your clipboard.

### Copy an AI summary prompt

You can also use the export menu to prepare a ready-to-paste summary prompt for:

- **Summarize in ChatGPT**
- **Summarize in Claude**
- **Summarize in Gemini**

Each option copies a pre-written prompt to your clipboard that already includes the currently filtered review feedback, making it easy to paste into the AI tool of your choice and quickly generate a summary, grouped themes, priorities and action items.

> **Tip:** Whenever an export or copy action succeeds in the web app, Commentful will show a confirmation message in the feedback sidebar so you can quickly verify that the action worked.

---

---
url: "/commentful/reviews/leaving-feedback.md"
description: "Review links that you've created with the Commentful plugin can be viewed in the browser via the Commentful web app (without needing a Figma account) to allow anyone to leave feedback on your static designs without being in your Figma file."
---

# Gathering design feedback and approval statuses from clients using the Commentful web app

> Review links that you've created with the Commentful plugin can be viewed in the browser via the Commentful web app (without needing a Figma account) to allow anyone to leave feedback on your static designs without being in your Figma file.

## Leaving general comments, text content and image content feedback

[Video](/assets/videos/commentful/reviews/leave-feedback-types.mp4)

There are 3 different modes of feedback that a reviewer can use to provide general comments or text/image change requests:

### Leave Comments

By clicking the **Leave Comments** button (which is the default mode), a reviewer will be able to drop a feedback pin anywhere on your Figma frames and leave a general comment on that area of the design.

This feedback will need to be taken into account and actioned manually in Figma. You can also have a threaded conversion on these general types of comments by [replying the original comment](#replying-to-general-comment-threads) via the Commentful Figma plugin or directly in the Commentful web app.

### Request Text Updates

By clicking the **Request Text Updates** button, you can switch into a mode which reveals clickable areas where any Figma text layers are located in the original Figma frames.

This will allow a reviewer to click on any of these text areas and request text changes to that text layer.

In the Commentful Figma plugin, you can [apply each text update](/commentful/reviews/applying-figma-feedback) to its corresponding Figma layer.

### Request Images Updates

By clicking the **Request Images Updates** button, you can switch into a mode which reveals clickable areas where any Figma layers that contain _Image fills_ are located in the original Figma frames.

This will allow a reviewer to click on any of these image areas and request an image update to that text layer by uploading an image file from their computer.

In the Commentful Figma plugin, you can [apply each image update](/commentful/reviews/applying-figma-feedback) to its corresponding Figma layer.

## Replying to general comment threads

[Video](/assets/videos/commentful/reviews/replying-to-threads.mp4)

You can reply to any feedback pins that were created in the [Leave Comments](#leave-comments) feedback mode via the Commentful Figma plugin or directly in the Commentful web app.

## Enabling desktop notifications and mention handles

While viewing a Commentful review link in your browser, you can enable desktop notifications for that review so you can be alerted when new feedback is added.

To do this, open the **Notifications** panel in the Commentful web app, then:

1. Click **Enable Notifications**
2. Allow notifications in your browser
3. Optionally set your **Display Name** and **Mention Handle**
4. Choose whether you'd like to be notified about **All review activity** or **Only when I'm @mentioned**

Once a reviewer has enabled notifications and saved a mention handle, other reviewers can notify them directly by typing `@handle` in a new comment or reply.

> **Tip:** Mention suggestions will appear inline while typing `@` in the comment field, making it easier to notify reviewers who have already enabled notifications on that review link.

> **Note:** Desktop notifications are enabled per browser/device, so if a reviewer wants to receive notifications on another computer or browser, they'll need to enable them there as well.

## Editing Text Change Requests

[Video](/assets/videos/commentful/reviews/edit-text-feedback.mp4)

You can edit any feedback pins that were created in the [Request Text Updates](#request-text-updates) feedback mode via the Commentful Figma plugin or directly in the Commentful web app by clicking the **Edit** toggle button in the feedback sidebar (after clicking your pin), making any content updates in the text field, then clicking the **Update Requested Text Change** button too apply the update..

## Viewing and searching all of the feedback on your review link

[Video](/assets/videos/commentful/reviews/view-and-search-feedback.mp4)

You can view a list of all the feedback that's been left on your current review link by clicking the **Show All Feedback** button in the top right of the browser window.

This opens a feedback sidebar that can display the current review in multiple formats:

- **List View** for reading through each feedback item one by one
- **Kanban View** for organizing feedback into workflow columns
- **Table View** for scanning the review feedback in a more compact format

Along with the comment or text/image feedback itself, the sidebar also includes filters for feedback type, author, completed feedback state, date range and free-text search.

> **Tip:** If you prefer to review the feedback outside of the browser, you can use the [Export Feedback](/commentful/reviews/export-review-feedback) dropdown to download a CSV file, copy the filtered feedback as Markdown or CSV, or copy an AI-ready summary prompt.

### Searching your feedback

You can Perform a _text search_ of all the feedback by typing a word that queries for either the **Comment** content, the **Username** of the reviewer (this is [the reviewer name that they set](#updating-your-reviewer-name) before leaving any feedback), or the **Pin Number** (if you already know the pin number you want to lookup).

### Filtering completed feedback and visual pins

The feedback sidebar also includes a **completed feedback** filter with three options:

- **Include completed feedback**
- **Hide completed feedback**
- **Hide completed feedback (and visual pins)**

If you choose **Hide completed feedback (and visual pins)**, completed feedback will be hidden from both the feedback sidebar and the numbered pin overlays shown on top of the review frames, making it easier to focus only on work that is still active.

## Navigating feedback pins left by reviewers

[Video](/assets/videos/commentful/reviews/view-feedback-pins.mp4)

You can click on any feedback pin that was left on your Figma frames by clicking any the numbered **Pin** icon buttons that are floating over your designs, which will open up the feedback left on that pin as a pop-out panel on the right side of your browser window.

If you're browsing all of the pins in the [feedback panel](#viewing-and-searching-all-of-the-feedback-on-your-review-link) list instead, you can also click on the **Pin** icon buttons next to each feedback item in this list as well, which will automatically scroll that comment into view and briefly animate it to make it easier to see (which can be useful if you have lots of pins on the page at once).

## Organising feedback into Kanban board statuses

[Video](/assets/videos/commentful/reviews/kanban-board-view.mp4)

You can optionally sort any feedback left on your designs into customizeable statuses by clicking the **Kanban View** tab (while the **Show All Feedback** panel is open); this lets you drag and drop feedback cards into different columns, re-arrange their stacking order in an existing column, or create, rename, re-arrange and delete the status columns themselves, to more Track where things are at while working through feedback.

## Setting the approval status of a Figma frame

[Video](/assets/videos/commentful/reviews/set-frame-approval-statuses.mp4)

Along with [leaving feedback](#leaving-general-comments-text-content-and-image-content-feedback) on your designs, a reviewer can also set the approval status of any Figma frame by changing the **Approval** dropdown menu to one of the following options:

- Not Approved Yet
- Approved (With Changes)
- Approved

Changing the approval status will update the color and status label above that Figma frame in your Commentful web app review link; this lets you See the approval status of your frames at a glance.

## Changing the view mode for the Figma frames

[Video](/assets/videos/commentful/reviews/change-frame-scale-mode.mp4)

By default, all of the static Figma frames you've uploaded will be visible at once, where the reviewer can Scroll vertically and horizintally to see all of the frames and add feedback where needed.

The way that the frames are displayed can be changed by clicking a different **View Mode** button in the bottom left corner of the page when viewing a review link.

## Copying a direct Commentful web app link to a Figma frame

[Video](/assets/videos/commentful/reviews/share-frame-link.mp4)

You or your reviewers can copy a direct link to any Figma frame in your review link by clicking the **Copy Link To This Frame** icon button, which will copy a direct link to the clipboard.

Pasting this link and visiting it in your browser will automatically scroll to that Figma frame on the review link, and also highlight it with a colored outline to See which frame is being linked to.

This feature can be useful for sending a link to a specific frame that you would like a reviewer to look at or provide feedback on.

## Updating your reviewer name

[Video](/assets/videos/commentful/reviews/set-reviewer-name.mp4)

Before someone can start leaving feedback on a review link, they'll need to set their name (to identify who has left which pieces of feedback).

The name input will appear automatically if it hasn't already been set, or you can change this manually at any time by clicking the **Name** button in the bottom right corner of the page when viewing a review link.

> **Tip:** You can pre-populate a reviewer's name when sending them the initial share link by adding their name in the **Review Share URL** panel for the review in the Commentful Figma plugin.

If a reviewer also enables desktop notifications, their reviewer name can be used as the basis for a default mention handle, which they can customize in the **Notifications** panel.

---

---
url: "/commentful/reviews/make-integration.md"
description: "You can optionally have notifications sent to a Make webhook every time a new comment is left on a Commentful review link you've shared with a client."
---

# Setup Make webhook for review link comments

> You can optionally have notifications sent to a Make webhook every time a new comment is left on a Commentful review link you've shared with a client.

## Create a Make Webhook

### 1. Create a new scenario (if you don't have one already)

[Create your Make scenario](https://www.make.com/en/scenarios)

Click **Create a new scenario** to start building your automation.

### 2. Add a Webhooks module

Search for and add the **Webhooks** module as your trigger.

Choose **Custom webhook** and click **Add** to create a new webhook.

### 3. Copy your Make Webhook URL

Make will generate a unique webhook URL for you that looks like this:

`https://hook.make.com/abcdefghijklmnopqrstuvwxyz123456`

Copy this URL - you'll need it to configure Commentful.

> **Tip:** You can leave the Make setup page open while you configure Commentful, as Make will wait for the first webhook to arrive to determine the data structure.

### 4. Configure your scenario actions

After setting up Commentful (see below), you can configure what happens when a comment is received:

- Send to Slack, Discord, or Microsoft Teams
- Create a task in Asana, Monday, or Notion
- Send an email notification via Gmail or SendGrid
- Add to Google Sheets or Airtable
- Or connect to 1,500+ other apps and services

## Add your Make webhook URL via the Commentful plugin

[Video](/assets/videos/commentful/reviews/save-slack-webhook.mp4)

To set up the Commentful Make integration, you can create a Make Webhook URL by [following the steps above](#create-a-make-webhook), and then in the Commentful Figma plugin under the **Settings** icon button (in the top right of the plugin window):

1. Click **Enable webhook notifications for review links**
2. Select **Make** from the **Webhook Platform** dropdown
3. Copy/paste in your Make Webhook URL:

   for example, `https://hook.make.com/abcdefghijklmnopqrstuvwxyz123456`

> **Tip:** You can make sure the Make integration is working by clicking the **Send Test Message** button, which will send a test notification from Commentful to your Make webhook.

## Add your Make webhook URL via the Commentful web app

To set up the Commentful Make integration, you can create a Make Webhook URL by [following the steps above](#create-a-make-webhook), and then in Commentful Web App (when opening any shared review link in your browser):

1. Press the **CTRL + K** keys on your keyboard to open settings
2. Click **Enable webhook notifications for review links**
3. Select **Make** from the **Webhook Platform** dropdown
4. Copy/paste in your Make Webhook URL:

   for example, `https://hook.make.com/abcdefghijklmnopqrstuvwxyz123456`

> **Tip:** You can make sure the Make integration is working by clicking the **Send Test Message** button, which will send a test notification from Commentful to your Make webhook.

## Webhook payload examples

Commentful sends structured JSON payloads to Make webhooks with clear, easy-to-use fields. The payload structure varies based on the type of activity.

### Test Message

When you click "Send Test Message", this payload is sent:

```json
{
  "type": "test",
  "author": {
    "name": "johndoe",
    "displayName": "John Doe (Project Name)"
  },
  "project": {
    "name": "Homepage"
  },
  "frame": {
    "name": "Homepage",
    "nodeId": "123:456"
  },
  "urls": {
    "commentful": "https://commentful.hypermatic.com/share/xxx/yyy",
    "figma": "https://www.figma.com/file/xxx?node-id=123"
  },
  "action": "[Test Message] Yay! Your Make Webhook URL is working!",
  "message": "[Test Message] Yay! Your Make Webhook URL is working!",
  "timestamp": 1234567890
}
```

### New Comment

When someone posts a new comment on a frame:

```json
{
  "type": "comment",
  "author": {
    "name": "johndoe",
    "displayName": "John Doe (Project Name)"
  },
  "project": {
    "name": "Homepage"
  },
  "frame": {
    "name": "Homepage",
    "nodeId": "123:456"
  },
  "urls": {
    "commentful": "https://commentful.hypermatic.com/share/xxx/yyy?pin=abc123",
    "figma": "https://www.figma.com/file/xxx?node-id=123"
  },
  "action": "New Feedback Comment",
  "message": "This section needs more contrast for accessibility",
  "timestamp": 1234567890,
  "feedbackId": "abc123"
}
```

### Reply to Comment Thread

When someone replies to an existing comment:

```json
{
  "type": "reply",
  "author": {
    "name": "janesmith",
    "displayName": "Jane Smith (Project Name)"
  },
  "project": {
    "name": "Homepage"
  },
  "frame": {
    "name": "Homepage",
    "nodeId": "123:456"
  },
  "urls": {
    "commentful": "https://commentful.hypermatic.com/share/xxx/yyy?pin=abc123",
    "figma": "https://www.figma.com/file/xxx?node-id=123"
  },
  "action": "New Comment Thread Reply",
  "message": "I'll update the contrast ratio to meet WCAG AA standards",
  "timestamp": 1234567890,
  "feedbackId": "abc123"
}
```

### Text Change Request

When someone requests a text change:

```json
{
  "type": "text",
  "author": {
    "name": "johndoe",
    "displayName": "John Doe (Project Name)"
  },
  "project": {
    "name": "Homepage"
  },
  "frame": {
    "name": "Homepage",
    "nodeId": "123:456"
  },
  "urls": {
    "commentful": "https://commentful.hypermatic.com/share/xxx/yyy?pin=abc123",
    "figma": "https://www.figma.com/file/xxx?node-id=123"
  },
  "action": "New Text Change Request",
  "message": "",
  "timestamp": 1234567890,
  "feedbackId": "abc123",
  "textChange": {
    "original": "Sign Up Now",
    "new": "Get Started Today"
  }
}
```

### Image Change Request

When someone uploads an image as feedback:

```json
{
  "type": "image",
  "author": {
    "name": "johndoe",
    "displayName": "John Doe (Project Name)"
  },
  "project": {
    "name": "Homepage"
  },
  "frame": {
    "name": "Homepage",
    "nodeId": "123:456"
  },
  "urls": {
    "commentful": "https://commentful.hypermatic.com/share/xxx/yyy?pin=abc123",
    "figma": "https://www.figma.com/file/xxx?node-id=123"
  },
  "action": "New Image Change Request",
  "message": "",
  "timestamp": 1234567890,
  "feedbackId": "abc123",
  "image": {
    "url": "https://example.com/path/to/image.png",
    "fileName": "updated-logo.png"
  }
}
```

### Status Update

When someone changes the status of a comment (e.g., "To Do" → "Done"):

```json
{
  "type": "status",
  "author": {
    "name": "johndoe",
    "displayName": "John Doe (Project Name)"
  },
  "project": {
    "name": "Homepage"
  },
  "frame": {
    "name": "Homepage",
    "nodeId": "123:456"
  },
  "urls": {
    "commentful": "https://commentful.hypermatic.com/share/xxx/yyy?pin=abc123",
    "figma": "https://www.figma.com/file/xxx?node-id=123"
  },
  "action": "Updated to Done",
  "message": "",
  "timestamp": 1234567890,
  "feedbackId": "abc123",
  "status": {
    "text": "Done",
    "color": "#1bc47d"
  }
}
```

## Determining the Data Structure

After you send your first test message from Commentful, Make will automatically detect the webhook data structure. Click **OK** in the Make webhook module to confirm the structure, then continue building your scenario with the available data fields.

## Using the Webhook Data in Make

All webhook payloads have consistent, easy-to-access fields that you can map directly in your Make scenario:

### Common Fields (in every payload)

- **type** - The activity type: `test`, `comment`, `reply`, `text`, `image`, or `status`
- **author.name** - The user's handle/username
- **author.displayName** - The formatted display name with project context
- **project.name** - The project or page name
- **frame.name** - The Figma frame name
- **frame.nodeId** - The Figma node ID
- **urls.commentful** - Direct link to view in Commentful
- **urls.figma** - Direct link to open in Figma
- **action** - Human-readable description of the activity
- **message** - The comment or feedback message (may be empty for text/image/status changes)
- **timestamp** - Unix timestamp of when the activity occurred
- **feedbackId** - Unique ID for this feedback item (not present in test messages)

### Activity-Specific Fields

Depending on the `type`, additional fields are available:

- **textChange** (when `type` is `text`):
  - `textChange.original` - The original text
  - `textChange.new` - The requested new text

- **image** (when `type` is `image`):
  - `image.url` - URL to the uploaded image
  - `image.fileName` - Original filename of the image

- **status** (when `type` is `status`):
  - `status.text` - The new status name (e.g., "Done", "In Progress")
  - `status.color` - Hex color code for the status

### Common Make Scenarios

1. **Router Module** - Filter by `type` field to route different activities to different paths
2. **Direct Field Mapping** - Map fields like `author.displayName`, `message`, and `action` directly to output modules
3. **HTTP Module** - Use `image.url` to download and process uploaded images
4. **Slack/Discord/Teams** - Forward formatted notifications using structured fields
5. **Google Sheets/Airtable** - Log all feedback with clean, structured data
6. **Asana/Monday/Notion** - Create tasks with all relevant details pre-mapped
7. **Conditional Logic** - Filter by `status.color` or `type` to trigger specific workflows
8. **Email** - Send formatted notifications using `urls.commentful` and `urls.figma` for clickable links

---

---
url: "/commentful/reviews/slack-integration.md"
description: "You can optionally have notifications sent to a Slack channel every time a new comment is left on a Commentful review link you've shared with a client."
---

# Setup Slack notification for review link comments

> You can optionally have notifications sent to a Slack channel every time a new comment is left on a Commentful review link you've shared with a client.

## Generate a webhook in Slack

### 1. Create a Slack app (if you don't have one already)

[Create your Slack app](https://api.slack.com/apps/new)

Pick a name, choose a workspace to associate your app with (bearing in mind that you'll probably be posting lots of test messages, so you might want to create a channel for sandbox use), and then click **Create App**. If you've already created an app, you can use that one instead.

### 2. Enable Incoming Webhooks for your Slack app

After creating your Slack app, you'll be redirected to the settings page for your new app (if you are using an existing app, just load its settings via your [app's management dashboard](https://api.slack.com/apps)).

From here select the **Incoming Webhooks** feature, and click the **Activate Incoming Webhooks** toggle to switch it on.

### 3. Create an Incoming Webhook to your Slack workspace

Now that Incoming Webhooks are enabled, the settings page should refresh and some extra options will appear. One of those options will be a really helpful button marked **Add New Webhook to Workspace**, and you should click it.

What this button does is trigger a shortcut version of the installation flow for Slack apps, one that is completely self-contained so that you don't have to actually built any code to generate an Incoming Webhook URL. You'll see something like the following screen:

![Permissions screen with incoming webhooks channel selector](/assets/images/commentful/slack-webhook-example.png)

 pick a channel that the app will post to, and then click the **Authorize** button. If you need to add the Incoming Webhook to a private channel, you must first be in that channel.

You'll be sent back to your app settings, and you should now see a new entry under the **Webhook URLs for Your Workspace** section, with a Webhook URL that'll look something like this:

`https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX`

That URL is your shiny new Incoming Webhook, one that's specific to a single user, and a single channel.

## Add your Slack webhook URL via the Commentful plugin

[Video](/assets/videos/commentful/reviews/save-slack-webhook.mp4)

To set up the Commentful Slack notifications, you can create a Slack Webhook URL by [following the steps above](#generate-a-webhook-in-slack), and then in the Commentful Figma plugin under the **Settings** icon button (in the top right of the plugin window), then click **Enable Slack notifications for review links**, then copy/paste in your Slack Webhook URL:

for example, `https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX`)

> **Tip:** You can make sure the Slack integration is working by clicking the **Send Test Message to Slack** button, which will send a test notification from Commentful to your Slack channel.

## Add your Slack webhook URL via the Commentful web app

To set up the Commentful Slack notifications, you can create a Slack Webhook URL by [following the steps above](#generate-a-webhook-in-slack), and then in Commentful Web App (when opening any shared review link in your browser), press the **CTRL + K** keys on your keyboard , then copy/paste in your Slack Webhook URL:

for example, `https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX`)

> **Tip:** You can make sure the Slack integration is working by clicking the **Send Test Message to Slack** button, which will send a test notification from Commentful to your Slack channel.

> **Note:** Slack webhook notifications are sent to your chosen Slack channel as channel alerts. If you include text like `@name` in your Commentful comments, Slack may display that text in the message body, but Commentful does not automatically map Commentful reviewers to Slack users for guaranteed native Slack mentions.

---

---
url: "/commentful/reviews/switching-review-versions.md"
description: "If you've uploaded multiple versions for any of your review links, you can switch between them in the Commentful Figma plugin and in the Commentful web app."
---

# Switching between review link versions in the Figma plugin and web app

> If you've uploaded multiple versions for any of your review links, you can switch between them in the Commentful Figma plugin and in the Commentful web app.

## Switch review link versions in the Commentful web app

[Video](/assets/videos/commentful/reviews/switch-figma-versions.mp4)

To instantly switch between the versions of your designs for any review link that has more than one [new version uploaded](/commentful/reviews/create-new-version) to it while viewing it in the Commentful web app, you can click on the **Versions** dropdown selector in the bottom/center of the Commentful web app window. Selecting a different version will automatically navigate to that version's URL and load up the static Figma frame designs that were uploaded for that version, along with any feedback that has been left for that version.

## Switch review link versions in the Commentful Figma plugin

[Video](/assets/videos/commentful/reviews/switch-review-versions.mp4)

To instantly switch between the versions of your designs for any review link that has more than one [new version uploaded](/commentful/reviews/create-new-version) to it while viewing it in the Commentful Figma plugin, with the _Reviews_ tab selected, and a **Review** card already clicked, you can select any version from the _Versions_ dropdown selector, which will show any feedback that has been left for that selected version.

---

---
url: "/commentful/reviews/zapier-integration.md"
description: "You can optionally have notifications sent to a Zapier webhook every time a new comment is left on a Commentful review link you've shared with a client."
---

# Setup Zapier webhook for review link comments

> You can optionally have notifications sent to a Zapier webhook every time a new comment is left on a Commentful review link you've shared with a client.

## Create a Zapier Webhook

### 1. Create a new Zap (if you don't have one already)

[Create your Zap](https://zapier.com/app/zaps)

Click **Create Zap** to start building your automation.

### 2. Set up the Webhooks by Zapier trigger

In the trigger step, search for and select **Webhooks by Zapier**.

Choose **Catch Hook** as the event type, then click **Continue**.

### 3. Copy your Zapier Webhook URL

Zapier will generate a unique webhook URL for you that looks like this:

`https://hooks.zapier.com/hooks/catch/1234567/abcdefg/`

Copy this URL - you'll need it to configure Commentful.

> **Tip:** You can leave the Zapier setup page open while you configure Commentful, as you need to come back to test the webhook.

### 4. Configure your Zap action

After setting up Commentful (see below), you can configure what happens when a comment is received:

- Send to Slack, Discord, or Microsoft Teams
- Create a task in Asana, Trello, or ClickUp
- Send an email notification
- Add to a Google Sheet or Airtable
- Or connect to 6,000+ other apps

## Add your Zapier webhook URL via the Commentful plugin

[Video](/assets/videos/commentful/reviews/save-slack-webhook.mp4)

To set up the Commentful Zapier integration, you can create a Zapier Webhook URL by [following the steps above](#create-a-zapier-webhook), and then in the Commentful Figma plugin under the **Settings** icon button (in the top right of the plugin window):

1. Click **Enable webhook notifications for review links**
2. Select **Zapier** from the **Webhook Platform** dropdown
3. Copy/paste in your Zapier Webhook URL:

   for example, `https://hooks.zapier.com/hooks/catch/1234567/abcdefg/`

> **Tip:** You can make sure the Zapier integration is working by clicking the **Send Test Message** button, which will send a test notification from Commentful to your Zapier webhook.

## Add your Zapier webhook URL via the Commentful web app

To set up the Commentful Zapier integration, you can create a Zapier Webhook URL by [following the steps above](#create-a-zapier-webhook), and then in Commentful Web App (when opening any shared review link in your browser):

1. Press the **CTRL + K** keys on your keyboard to open settings
2. Click **Enable webhook notifications for review links**
3. Select **Zapier** from the **Webhook Platform** dropdown
4. Copy/paste in your Zapier Webhook URL: for example, `https://hooks.zapier.com/hooks/catch/1234567/abcdefg/`

> **Tip:** You can make sure the Zapier integration is working by clicking the **Send Test Message** button, which will send a test notification from Commentful to your Zapier webhook.

## Webhook payload examples

Commentful sends structured JSON payloads to Zapier webhooks with clear, easy-to-use fields. The payload structure varies based on the type of activity.

### Test Message

When you click "Send Test Message", this payload is sent:

```json
{
  "type": "test",
  "author": {
    "name": "johndoe",
    "displayName": "John Doe (Project Name)"
  },
  "project": {
    "name": "Homepage"
  },
  "frame": {
    "name": "Homepage",
    "nodeId": "123:456"
  },
  "urls": {
    "commentful": "https://commentful.hypermatic.com/share/xxx/yyy",
    "figma": "https://www.figma.com/file/xxx?node-id=123"
  },
  "action": "[Test Message] Yay! Your Zapier Webhook URL is working!",
  "message": "[Test Message] Yay! Your Zapier Webhook URL is working!",
  "timestamp": 1234567890
}
```

### New Comment

When someone posts a new comment on a frame:

```json
{
  "type": "comment",
  "author": {
    "name": "johndoe",
    "displayName": "John Doe (Project Name)"
  },
  "project": {
    "name": "Homepage"
  },
  "frame": {
    "name": "Homepage",
    "nodeId": "123:456"
  },
  "urls": {
    "commentful": "https://commentful.hypermatic.com/share/xxx/yyy?pin=abc123",
    "figma": "https://www.figma.com/file/xxx?node-id=123"
  },
  "action": "New Feedback Comment",
  "message": "This section needs more contrast for accessibility",
  "timestamp": 1234567890,
  "feedbackId": "abc123"
}
```

### Reply to Comment Thread

When someone replies to an existing comment:

```json
{
  "type": "reply",
  "author": {
    "name": "janesmith",
    "displayName": "Jane Smith (Project Name)"
  },
  "project": {
    "name": "Homepage"
  },
  "frame": {
    "name": "Homepage",
    "nodeId": "123:456"
  },
  "urls": {
    "commentful": "https://commentful.hypermatic.com/share/xxx/yyy?pin=abc123",
    "figma": "https://www.figma.com/file/xxx?node-id=123"
  },
  "action": "New Comment Thread Reply",
  "message": "I'll update the contrast ratio to meet WCAG AA standards",
  "timestamp": 1234567890,
  "feedbackId": "abc123"
}
```

### Text Change Request

When someone requests a text change:

```json
{
  "type": "text",
  "author": {
    "name": "johndoe",
    "displayName": "John Doe (Project Name)"
  },
  "project": {
    "name": "Homepage"
  },
  "frame": {
    "name": "Homepage",
    "nodeId": "123:456"
  },
  "urls": {
    "commentful": "https://commentful.hypermatic.com/share/xxx/yyy?pin=abc123",
    "figma": "https://www.figma.com/file/xxx?node-id=123"
  },
  "action": "New Text Change Request",
  "message": "",
  "timestamp": 1234567890,
  "feedbackId": "abc123",
  "textChange": {
    "original": "Sign Up Now",
    "new": "Get Started Today"
  }
}
```

### Image Change Request

When someone uploads an image as feedback:

```json
{
  "type": "image",
  "author": {
    "name": "johndoe",
    "displayName": "John Doe (Project Name)"
  },
  "project": {
    "name": "Homepage"
  },
  "frame": {
    "name": "Homepage",
    "nodeId": "123:456"
  },
  "urls": {
    "commentful": "https://commentful.hypermatic.com/share/xxx/yyy?pin=abc123",
    "figma": "https://www.figma.com/file/xxx?node-id=123"
  },
  "action": "New Image Change Request",
  "message": "",
  "timestamp": 1234567890,
  "feedbackId": "abc123",
  "image": {
    "url": "https://example.com/path/to/image.png",
    "fileName": "updated-logo.png"
  }
}
```

### Status Update

When someone changes the status of a comment (e.g., "To Do" → "Done"):

```json
{
  "type": "status",
  "author": {
    "name": "johndoe",
    "displayName": "John Doe (Project Name)"
  },
  "project": {
    "name": "Homepage"
  },
  "frame": {
    "name": "Homepage",
    "nodeId": "123:456"
  },
  "urls": {
    "commentful": "https://commentful.hypermatic.com/share/xxx/yyy?pin=abc123",
    "figma": "https://www.figma.com/file/xxx?node-id=123"
  },
  "action": "Updated to Done",
  "message": "",
  "timestamp": 1234567890,
  "feedbackId": "abc123",
  "status": {
    "text": "Done",
    "color": "#1bc47d"
  }
}
```

## Using the Webhook Data in Zapier

All webhook payloads have consistent, easy-to-access fields:

### Common Fields (in every payload)

- **type** - The activity type: `test`, `comment`, `reply`, `text`, `image`, or `status`
- **author.name** - The user's handle/username
- **author.displayName** - The formatted display name with project context
- **project.name** - The project or page name
- **frame.name** - The Figma frame name
- **frame.nodeId** - The Figma node ID
- **urls.commentful** - Direct link to view in Commentful
- **urls.figma** - Direct link to open in Figma
- **action** - Human-readable description of the activity
- **message** - The comment or feedback message (may be empty for text/image/status changes)
- **timestamp** - Unix timestamp of when the activity occurred
- **feedbackId** - Unique ID for this feedback item (not present in test messages)

### Activity-Specific Fields

Depending on the `type`, additional fields are available:

- **textChange** (when `type` is `text`):
  - `textChange.original` - The original text
  - `textChange.new` - The requested new text

- **image** (when `type` is `image`):
  - `image.url` - URL to the uploaded image
  - `image.fileName` - Original filename of the image

- **status** (when `type` is `status`):
  - `status.text` - The new status name (e.g., "Done", "In Progress")
  - `status.color` - Hex color code for the status

### Common Zap Workflows

1. **Filter by type** - Use the `type` field to route different activities to different actions
2. **Create tasks** - Map fields directly to task management tools (Asana, Trello, ClickUp)
3. **Send formatted notifications** - Use `author.displayName`, `action`, and `message` in Slack/Teams messages
4. **Log to spreadsheet** - Add rows to Google Sheets with all the structured data
5. **Conditional logic** - Filter by `status.text` or `status.color` to trigger specific workflows
6. **Download images** - Use `image.url` to fetch and process uploaded images
7. **Deep linking** - Use `urls.commentful` and `urls.figma` to create clickable links in any app

---

---
url: "/commentful/setup/connect-figma-file.md"
description: "The first time you run Commentful, you need to link it to your Figma file by generating a Figma personal access token and adding your Figma file URL."
---

# Connect your Figma file to the Commentful plugin

> The first time you run Commentful, you need to link it to your Figma file by generating a Figma personal access token and adding your Figma file URL.

## 1. Generate your Figma personal access token

[Video](/assets/videos/commentful/setup/create-figma-token.mp4)

To connect your Figma file to the Commentful plugin, you need to [generate a personal access token](https://help.figma.com/hc/en-us/articles/8085703771159-Manage-personal-access-tokens) in your Figma account:

1. Go to your **Settings** panel (in the dropdown menu under your Figma account icon).
2. Scroll down the **Account** tab in the settings popup to the **Personal access tokens** section.
3. Click **Generate new token**.
4. Set a **Token name** (for example, _Commentful Figma Plugin_).
5. Set the **Expiration** dropdown option to **90 Days**.
6. Ensure the the **File content** dropdown option is set to **Read-only**.
7. Ensure the the **Comments** dropdown option is set to **Write**.
8. All of the other dropdown options can be left as **No access**.
9. Click the **Generate token** button.
10. Click the **Copy this token** (this is your only chance to do so).

> **Note:** Note that Figma has removed the _No expiration_ option from the **Expiration** dropdown, so you will need to refresh your Figma personal access token every _90 days_. You will _not_ lose any data, comments or any review data if your Figma personal access token expires; the token just provides the Commentful plugin authentication to view the comments in your Figma file.

> **Warning:** ** Figma API Rate Limits (Effective Nov 17, 2024)** Figma limits API requests to **5 per minute** for Figma users on their Starter (free) tier. Commentful automatically mitigates this limit with caching and request limiting. For heavier usage (for example, posting many comments per minute via the Commentful plugin), consider upgrading to a Full Figma seat.

## 2. Paste your token and Figma file URL into Commentful

[Video](/assets/videos/commentful/setup/connect-figma-file.mp4)

After you've generated your Figma peronal access token and copied it to your clipboard, run the Commentful plugin and then follow the steps below:

1. Click **Connect This Figma File** button in the Commentful plugin.
2. Paste your personal access token into the plugin and click the **Save Token** button.
3. Click on the **Share** button in the top right of your Figma file to open the share popup.
4. Set the Figma file permissions for **Anyone with the link** as **can view**.
5. Click **Copy link** to copy the current Figma file URL to your clipboard.
6. Paste your Figma file URL into the plugin and click the **Save URL** button.

> **Warning:** If you've duplicated a Figma file from another file that was already linked to Commentful, you need to [re-link the plugin](/commentful/setup/relink-figma-file) with your new Figma file URL from the duplicated Figma file by clicking the **Re-link your Figma file** button in the Commentful **Settings** panel.

---

---
url: "/commentful/setup/relink-figma-file.md"
description: "If you've duplicated a Figma file from another Figma file that was already linked to the Commentful plugin, you need to re-link it to your new Figma file URL to fetch the correct comments."
---

# Re-Linking a Figma File

> If you've duplicated a Figma file from another Figma file that was already linked to the Commentful plugin, you need to re-link it to your new Figma file URL to fetch the correct comments.

[Video](/assets/videos/commentful/setup/relink-file.mp4)

If you've duplicated a Figma file from another file that was already linked to Commentful, you need to re-link the plugin with your new Figma file URL from the duplicated Figma file by clicking the **Re-link your Figma file** button in the Commentful **Settings** panel, then pasting in your new Figma file URL to save it.

---

---
url: "/commentful/setup/toggle-window-size.md"
description: "You can expand and contract the size of the Commentful Figma plugin window depending on how much Figma canvas or plugin window space you need."
---

# Toggle Plugin Window Size

> You can expand and contract the size of the Commentful Figma plugin window depending on how much Figma canvas or plugin window space you need.

[Video](/assets/videos/commentful/setup/toggle-window-size.mp4)

To toggle the size of the Commentful plugin window, you can click on the **Toggle** icon button in top right of the plugin window. Clicking it will expand the size of the plugin window, allowing you to see more, and clicking it again will toggle the plugin window back to its default narrower size, which lets you see more of your Figma canvas.

---

---
url: "/commentful/todos/assign-todos.md"
description: "You can assign todo items to yourself (or other Figma users who are also using the Commentful plugin) on any Figma comment to help make them more actionable."
---

# Assign todo items to Figma comments

> You can assign todo items to yourself (or other Figma users who are also using the Commentful plugin) on any Figma comment to help make them more actionable.

[Video](/assets/videos/commentful/todos/assign-todos-from-comment.mp4)

To add todo items (or check-off any existing todo items) on your Figma comments, make sure the _Figma Comments_ tab is selected, then click on any Figma comment card to open up its details panel in the plugin.

Once you've clicked on a Figma comment, under the _Todos_ tab in the comment details popup panel, you can assign todo items to yourself (or other Figma users who are also using the Commentful plugin) by typing in the todo input field, then clicking the **Add Todo** button (or pressing the _Enter_ key) to create the new todo item on your Figma comment.

The todo items will appear under the _Todos_ tab when this comment is viewed by any Figma user who is using the Commentful plugin, and a list of all the todo items just assigned to you will also be Viewable under the _My Todos_ tab when you select either the **Assigned Todos (This Page)** or **Assigned Todos (All Pages)** dropdown filter option.

The completed number and percentage of any todos created for a Figma comment will be viewable from the kanban board overview cards under the _Figma Comments_ tab, and also whenever the comment card is clicked, under the _Overview_ tab.

> **Tip:** Clicking a checkbox next to any todo item will mark it off as completed, and if you click a completed checkbox, this will revert the todo item to being incomplete again.

---

---
url: "/commentful/todos/delete-todos.md"
description: "You can delete individual todo items or an entire todo list under your _My Todos_ panel at any time."
---

# Deleting todo items and lists

> You can delete individual todo items or an entire todo list under your _My Todos_ panel at any time.

[Video](/assets/videos/commentful/todos/delete-todos.mp4)

## Delete a single todo item

To delete a **single todo item**, with the _My Todos_ tab selected, hover over any todo item under any todo list, then click on the **Trash** icon button; this will instantly and _permanently_ delete the todo item and remove it from the todo list it belongs to.

> **Warning:** Please be mindful that deleting a todo item or a todo list will **permanently delete it**.

## Delete an entire list of todo items

To delete **an entire list of todos items**, with the _My Todos_ tab selected, hover over any todo list, then click on the **Trash** icon button, which will display a confirmation prompt asking if you really want to delete the todo list (and all of the todo items inside of it).

If you're sure you want to permanently delete the todo list, you can click the **Delete Todo List** button to confirm; then this will instantly and _permanently_ delete the todo list, along with any todo items inside of the list.

> **Warning:** Please be mindful that deleting a todo item or a todo list will **permanently delete it**.

---

---
url: "/commentful/todos/export-todos.md"
description: "You can export and download your Todos to a CSV spreadsheet file at any time from the Commentful plugin."
---

# Export todo lists to a CSV file

> You can export and download your Todos to a CSV spreadsheet file at any time from the Commentful plugin.

[Video](/assets/videos/commentful/todos/export-todos.mp4)

To export a list of your todo items, with the _My Todos_ tab selected in the plugin, you can click on the **Export Todos** button in the bottom right of the plugin window.

This will automatically export and download your todo items, which will be saved directly to your computer as a `.csv` file you can open as a spreadsheet in an app of your choice (for example, Microsoft Excel, Google Sheeets or Apple Numbers).

---

---
url: "/commentful/todos/private-todos.md"
description: "You can have your own private lists of todo items that are only visible to you in the Commentful plugin."
---

# Create private todo lists

> You can have your own private lists of todo items that are only visible to you in the Commentful plugin.

[Video](/assets/videos/commentful/todos/add-private-todos.mp4)

To add private todo items (or check-off any existing private todo items), make sure the _My Todos_ tab is selected, then select either the **Private Todos (This Page)** or **Private Todos (All Pages)** dropdown filter option,

After either private todos filter is selected, you can give your new **Private Todo List** a name, then click on the **Add New List** button (or press the _Enter_ key) to create a brand new private todo list to start adding items to.

Once you've created one or more private todo lists, you can start adding private todo items to them by adding the todo item text in the input field under the todo list of your choice, then click on the **Add Todo** (or press the _Enter_ key) to create a new todo item in that private todo list.

> **Tip:** Clicking a checkbox next to any todo item will mark it off as completed, and if you click a completed checkbox, this will revert the todo item to being incomplete again.

---

---
url: "/commentful/tutorials.md"
description: "The best free Figma tutorial videos for beginners (or power users) to level up."
---

# Commentful Video Tutorials

> The best free Figma tutorial videos for beginners (or power users) to level up.

## Video Tutorials

- [Supercharge and organize your Figma comments](/commentful/tutorials/supercharge-and-organize-your-figma-comments)
- [Get feedback from clients without a Figma account](/commentful/tutorials/get-feedback-from-clients-without-a-figma-account)

---

---
url: "/commentful/tutorials/get-feedback-from-clients-without-a-figma-account.md"
description: "This video shows how to use the Commentful Figma plugin to collect external comments and feedback from clients and stakeholders without a Figma account. It walks through creating review links, handling text and image update requests, updating feedback in Figma, exporting feedback to CSV, and deleting feedback when needed."
---

# Get feedback from clients without a Figma account

> This video shows how to use the Commentful Figma plugin to collect external comments and feedback from clients and stakeholders without a Figma account. It walks through creating review links, handling text and image update requests, updating feedback in Figma, exporting feedback to CSV, and deleting feedback when needed.

[← Back to Commentful Video Tutorials](/commentful/tutorials)

[Embedded media](https://www.youtube.com/embed/ta9IvkSXaG4)

**What this video covers**

This video shows how to use the Commentful Figma plugin to collect external comments and feedback from clients and stakeholders without a Figma account. It walks through creating review links, handling text and image update requests, updating feedback in Figma, exporting feedback to CSV, and deleting feedback when needed.

**Things you'll need**

- A Figma file
- A Figma API token

**Steps**

1. Find Commentful in the Figma Community under the Plugins tab and install it.
2. In your Figma file, right-click, go to Plugins, and open Commentful.
3. If prompted, click Connect To Figma File, save your Figma API token, then copy your Figma file link from Share and Save URL.
4. Open the Reviews tab, click Create New Review, sort and select the frames to include, name the review, and create the review URL.
5. Share the Passwordless URL or a password-protected URL with clients or stakeholders so they can leave comments, request text updates, or request image updates.
6. Review incoming feedback in the plugin, jump to the pin location, and use Update in Figma to apply text or image changes automatically.
7. Use Hide Completed Feedback to tidy the list, Export Feedback to generate a CSV, or Delete Feedback to remove unwanted feedback.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=ta9IvkSXaG4)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-get-comments-and-feedback-without-a-figma-account-using-commentful)
- [Browse Commentful tutorial docs](https://docs.hypermatic.com/commentful/tutorials)

---

---
url: "/commentful/tutorials/supercharge-and-organize-your-figma-comments.md"
description: "This tutorial shows how to use the Commentful Figma plugin to organize native Figma comments into statuses, tags, todos, and searchable views. It also demonstrates how to reply to threads, create new comment threads, export comments to CSV, and re-link the plugin if a Figma file is duplicated."
---

# Supercharge and organize your Figma comments

> This tutorial shows how to use the Commentful Figma plugin to organize native Figma comments into statuses, tags, todos, and searchable views. It also demonstrates how to reply to threads, create new comment threads, export comments to CSV, and re-link the plugin if a Figma file is duplicated.

[← Back to Commentful Video Tutorials](/commentful/tutorials)

[Embedded media](https://www.youtube.com/embed/8bi57aDmpc8)

**What this video covers**

This tutorial shows how to use the Commentful Figma plugin to organize native Figma comments into statuses, tags, todos, and searchable views. It also demonstrates how to reply to threads, create new comment threads, export comments to CSV, and re-link the plugin if a Figma file is duplicated.

**Things you'll need**

- A Figma file with native Figma comments
- A Figma personal access token
- The Figma file URL

**Steps**

1. Install Commentful from the Figma Community, then open it from Plugins in your Figma file.
2. Connect the plugin by saving a personal access token and pasting the Figma file URL to sync native Figma comments.
3. Create custom statuses such as Completed or In Progress, then move comment threads into the right column.
4. Open a thread card to edit its title, set a due date, add tags like Design, and filter comments by status, tag, user, date, location, or keyword search.
5. Reply to an existing thread with markdown formatting, emojis, and links, then post it back to Figma.
6. Add todos either on a comment thread or in My Todos, and switch between Private Todos and Assigned Todos to track work.
7. Use the alerts panel to review recent comments, export Figma comments to CSV, or create a new comment thread directly in Commentful.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=8bi57aDmpc8)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-supercharge-and-organize-your-figma-comments-using-commentful)
- [Browse Commentful tutorial docs](https://docs.hypermatic.com/commentful/tutorials)

---

---
url: "/convertify/export/adobe-after-effects.md"
description: "Export Figma designs to Adobe XD for After Effects workflows and configure export options."
---

# Exporting Figma to Adobe After Effects

> Export Figma designs to Adobe XD for After Effects workflows and configure export options.

### Video Tutorial: Convert Figma to Adobe After Effects

This video walks through how to automatically convert your designs from Figma to After Effects (in one click) directly from Figma using the Convertify plugin.
[Embedded media](https://www.youtube.com/embed/-UBknnWT6D0)

To export your designs from Figma for [Adobe After Effects](https://www.adobe.com/products/aftereffects.html), you can follow the steps to convert, download and open your `.xd` file, which can then be [exported from Adobe XD](https://helpx.adobe.com/after-effects/using/effects-applications.html#WorkingwithAdobeXDandAfterEffects) into Adobe After Effects.

## Selecting a single Figma page to convert for use in Adobe After Effects

[Video](/assets/videos/convertify/export/ae-export-page.mp4)

Once the Convertify plugin is running, ensure the **Export Figma to Adobe After Effects** option is selected, you can select the Figma page you would like to convert for use in Adobe After Effects.

The plugin will automatically export the Figma page that you're currently viewing. You can change the Figma page you would like to export by clicking any page in your Figma file listed in the left-hand column in Figma, under the **Pages** column heading.

After you've selected your Figma page, you can convert your design to an Adobe XD file (to then export to After Effects) by clicking the **Export to Adobe After Effects** button in the Convertify plugin. This will begin the automated conversion process.

> **Info:** **Time Estimates** The time estimate (for example, **~14 seconds to convert 555 layers**) is based on the number of layers in your Figma page to give you an indicator of how long the conversion will take. Note that Figma pages that contain _large_ images will likely increase the time needed to finish converting your Figma page to your Adobe XD file.

> **Warning:** **Adobe XD doesn't support multiple pages in a document**. Note, selecting _multiple pages_ only applies to Sketch exports, as the Adobe XD app only supports [single page](https://adobexd.uservoice.com/forums/353007-adobe-xd-feature-requests/suggestions/13958565-multiple-pages-separate-sets-of-artboards) files right now.

## Exporting selected Figma frames on your page to XD

[Video](/assets/videos/convertify/export/ae-export-frame.mp4)

Alternatively, if you don't want to convert full Figma page to an Adobe XD file (to then export to After Effects), you can convert certain frame layer(s) in your Figma design to Adobe XD by selecting the Figma frame(s) you want to convert, then click the **Export Selected Frames** button in the Convertify plugin. This will begin the automated conversion process.

> **Warning:** **Adobe XD doesn't support multiple pages in a document**. Note, selecting _multiple pages_ only applies to Sketch exports, as the Adobe XD app only supports [single page](https://adobexd.uservoice.com/forums/353007-adobe-xd-feature-requests/suggestions/13958565-multiple-pages-separate-sets-of-artboards) files right now.

## Downloading your .xd file for exporting into After Effects

[Video](/assets/videos/convertify/export/ae-download.mp4)

After Convertify has finished processing your Figma page, you'll be shown a confirmation message; you can download your `.xd` file by clicking the **Download .xd file** button.

After you've downloaded your `.xd` file from Figma to your computer, you can open your file explorer to the directory where it was saved. **Double clicking** on the exported `.xd` file will open it up in the version of Adobe XD] that you have installed on your computer.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

## Exporting your artboard from Adobe XD into After Effects

[Video](/assets/videos/convertify/export/ae-export-xd.mp4)

> **Note:** **Installing Adobe XD** If you're a Mac or Windows user, and **if you have a paid Adobe CC account**, you can [install Adobe XD in Creative Cloud](https://creativecloud.adobe.com/apps/all/all-platforms/pdp/xd) (or download the `.dmg` installer [directly from here](https://creativecloud.adobe.com/apps/download/xd?promoid=B8NR3RT1&mv=other)), which should allow you to run it on your computer. You can also find the [Windows standalone installer](https://archive.org/details/adobe-xd-54.1.12.1-for-windows) online, too.

After you've opened your `.xd` file in Adobe XD, you can natively [export artboards](https://helpx.adobe.com/after-effects/using/effects-applications.html#WorkingwithAdobeXDandAfterEffects) to After Effects by clicking any artboard in your page (the one that you would like to use in After Effects), then click File → Export → After Effects.

> **Tip:** If XD isn't exporting your artboard to After Effects, please try checking the Mark for Export checkbox in the right side panel first.

### Viewing your exported layers in After Effects

[Video](/assets/videos/convertify/export/ae-open-ae.mp4)

After you've clicked File → Export → After Effects in for your selected artboard in Adobe XD, the Adobe After Effects app (please ensure it's installed) will automatically open up on your computer, and natively export your selected artboard and all its layers from Adobe XD into your After Effects timeline.

Once the export has finished, you can save your new After Effects file, and close off Adobe XD to continue working on your motion design using the layers originally from your Figma file, which are now all available to animate in After Effects.

## Configuring your Adobe After Effects export options

Before exporting your designs from Figma to Adobe After Effects (via .xd file import), you can configure some optional settings that may be useful.

### Render layers starting with an * as images

Enabling the **Render layers starting with an * as images** toggle will automatically export any Figma layers with layer names that start with "_*_" (for example, "*Frame 1") as image layers instead of their normal layer type.

### Include reference image overlays for artboards

Enabling the **Include reference image overlays for artboards** toggle will automatically include image references of each artboard on top of each one in your exported file, with a layer opacity of 50%; this can be helpful to make any manual edits or layer positioning tweaks.

### Flatten/ungroup all Figma "Group" layers

Enabling the **Flatten/ungroup all Figma "Group" layers** toggle will automatically ungroup any "Group" layers in your Figma file.

### Scale After Effects comps

Selecting a **Scale After Effects Comps** option will automatically scale your existing Figma artboards to a scale from **@0.25x - @4x** (the default is **@1x**, which won't change the scale of your designs at all). This will ensure your comps are scaled up or down when you exported the converted .xd file into After Effects.

### Render more visually accurate text

Adobe XD doesn't support text properties like vertical text alignment, and calculates line-heights differently than Figma.

Enabling the **Render more visually accurate text** toggle will more export your Figma text values more accurately for XD (for any fonts in the design that are installed on your machine).

> **Warning:** **Slower conversion times**. Note, enabling the **Render more visually accurate text**  option may cause the conversion to be much slower than usual (depending on number of text layers).

## Understanding differences between Figma and After Effects

Convertify does its best to convert all of your layers and atrributes from Figma over to Adobe XD for exporting into After Effects, however, there are some natural limitations based on Adobe XD supporting a smaller number of native features than Figma does.

### Figma features that are missing in Adobe XD (and won't be exported over to After Effects from XD).

These features are available in Figma, but aren't native to Adobe XD, so they won't be carried over to After Effects when you export your file there.

- Hiding parent artboards
- Rotated parent artboards
- Ellipsis with "arc" properties
- Mulitple fills/strokes on a layer
- Vector layers that use corner radius
- Strokes/fills applied to groups
- Vertical alignment for text layers
- Nested layer masks

## Related Convertify guides

- Follow the [step-by-step Figma to Adobe After Effects tutorial](/convertify/tutorials/convert-figma-to-adobe-after-effects).
- Review the underlying [Figma to Adobe XD export workflow](/convertify/export/adobe-xd).
- Explore the [Convertify Figma plugin](https://www.hypermatic.com/convertify/) for other import and export formats.

---

---
url: "/convertify/export/adobe-indesign.md"
description: "Export selected Figma pages and frames to a zipped Adobe InDesign (IDML) package with Convertify."
---

# Exporting Figma to Adobe InDesign

> Export selected Figma pages and frames to a zipped Adobe InDesign (IDML) package with Convertify.

### Video Tutorial: Export Figma to Adobe InDesign

This video walks through how to automatically export Figma to Adobe InDesign (.idml) files with one click using the Convertify plugin.
[Embedded media](https://www.youtube.com/embed/9Ei5wHpsC14)

[Video](/assets/videos/convertify/export/export-indesign.mp4)

To export your designs from Figma for [Adobe InDesign](https://www.adobe.com/products/indesign.html), select the **Export Figma to Adobe InDesign** option from the Convertify select box in the plugin.

## Exporting the current Figma page to InDesign

To convert an entire page, click **Export This Page** to begin converting the current page to an Adobe InDesign `.idml` package.

## Exporting selected Figma frames to InDesign

If you only want specific areas exported, select the Figma frames you want and then click **Export Selected Frames**.

## Downloading your .idml package from Figma

After Convertify has finished processing, download your `.zip` file from the file browser.

By default, hidden Figma layers are preserved in InDesign exports as hidden objects in the `.idml` file. To leave hidden Figma layers out of the exported package, open the InDesign export settings and enable **Remove hidden layers from export** before exporting.

If linked images look soft while you are editing in InDesign, choose **View > Display Performance > High Quality Display**. This changes InDesign's on-screen preview quality; the exported package can still contain the full-resolution files in the `Links` folder.

The exported `.zip` package contains:

- Your `.idml` file
- A `Links` folder with image assets

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

## Opening .idml file in InDesign

Once downloaded, unzip the package and open the `.idml` file in Adobe InDesign to continue editing.

Keep the `Links` folder in the same directory as your `.idml` file so linked images are resolved correctly in InDesign.

---

---
url: "/convertify/export/adobe-photoshop.md"
description: "Export selected Figma pages and frames to Adobe Photoshop (PSD) files with Convertify."
---

# Exporting Figma to Adobe Photoshop

> Export selected Figma pages and frames to Adobe Photoshop (PSD) files with Convertify.

### Video Title: Export Figma to Adobe Photoshop

This video walks through how to automatically export Figma to Adobe Photoshop (.psd) files with one click using the Convertify plugin.
[Embedded media](https://www.youtube.com/embed/mmrIp3yB62g)

[Video](/assets/videos/convertify/export/psd-export.mp4)

To export your designs from Figma for [Adobe Photoshop](https://www.adobe.com/products/photoshop.html), select the **Export Figma to Adobe Photoshop** option from the Convertify select box in the plugin.

## Exporting the current Figma page to Photoshop

To convert an entire page, click **Export This Page** to begin converting the current page to a `.psd` file.

## Exporting selected Figma frames to Photoshop

If you only want specific areas exported, select the Figma frames you want and then click **Export Selected Frames**.

## Photoshop PSD size limits

PSD files have a maximum document size of 30,000 x 30,000 px, and very large PSD canvases can also be too large to build safely in the browser. If your selected frames are spread far apart on the Figma canvas, Convertify will stop the export before building the file and ask you to move the frames closer together or export a smaller selection.

## Downloading your .psd file from Figma

After Convertify has finished processing, download your `.psd` file from the file browser.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

## Opening .psd file in Photoshop

Once downloaded, open the `.psd` file in Adobe Photoshop to continue editing.

---

---
url: "/convertify/export/adobe-xd.md"
description: "Export Figma pages or frames to Adobe XD files with Convertify, including options and limitations."
---

# Exporting Figma to Adobe XD

> Export Figma pages or frames to Adobe XD files with Convertify, including options and limitations.

### Video Tutorial: Convert Figma to Adobe XD

This video walks through how to automatically convert your designs from Figma to Adobe XD files (in one click) directly from Figma using the Convertify plugin.
[Embedded media](https://www.youtube.com/embed/cGYU2jvnSs8)

To export your designs from Figma for Adobe XD, you can follow the steps to convert, download and open your `.xd` file.

> **Note:** **Installing Adobe XD** If you're a Mac or Windows user, and **if you have a paid Adobe CC account**, you can [install Adobe XD in Creative Cloud](https://creativecloud.adobe.com/apps/all/all-platforms/pdp/xd) (or download the `.dmg` installer [directly from here](https://creativecloud.adobe.com/apps/download/xd?promoid=B8NR3RT1&mv=other)), which should allow you to run it on your computer. You can also find the [Windows standalone installer](https://archive.org/details/adobe-xd-54.1.12.1-for-windows) online, too.

## Selecting a single Figma page to convert to Adobe XD

[Video](/assets/videos/convertify/export/xd-export-page.mp4)

Once the Convertify plugin is running, ensure the **Export Figma to Adobe XD** option is selected, then you can select the Figma page you would like to convert to Adobe XD.

The plugin will automatically export the Figma page that you're currently viewing. You can change the Figma page you would like to export by clicking any page in your Figma file listed in the left-hand column in Figma, under the **Pages** column heading.

After you've selected your Figma page, you can convert your design to Adobe XD by clicking the **Export This Page** button in the Convertify plugin. This will begin the automated conversion process.

> **Info:** **Time Estimates**. The time estimate (for example, **~14 seconds to convert 555 layers**) is based on the number of layers in your Figma page to give you an indicator of how long the conversion will take. Note that Figma pages that contain _large_ images will likely increase the time needed to finish converting your Figma page to your Adobe XD file.

> **Warning:** **Adobe XD doesn't support multiple pages in a document**. Note, selecting _multiple pages_ only applies to Sketch exports, as the Adobe XD app only supports [single page](https://adobexd.uservoice.com/forums/353007-adobe-xd-feature-requests/suggestions/13958565-multiple-pages-separate-sets-of-artboards) files right now.

## Exporting selected Figma frames on your page to XD

[Video](/assets/videos/convertify/export/xd-export-frame.mp4)

Alternatively, if you don't want to convert full Figma page to Adobe XD, you can convert certain frame layer(s) in your Figma design to Adobe XD by selecting the Figma frame(s) you want to convert, then click the **Export Selected Frames** button in the Convertify plugin. This will begin the automated conversion process.

> **Info:** **Time Estimates**. The time estimate (for example, **~14 seconds to convert 555 layers**) is based on the number of layers in your Figma page to give you an indicator of how long the conversion will take. Note that Figma pages that contain _large_ images will likely increase the time needed to finish converting your Figma page to your Adobe XD file.

## Downloading your .xd file

[Video](/assets/videos/convertify/export/xd-download.mp4)

After Convertify has finished processing your Figma page, you'll be shown a confirmation message; you can download your `.xd` file by clicking the **Download .xd file** button.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

## Opening your .xd file

[Video](/assets/videos/convertify/export/xd-open.mp4)

After you've downloaded your `.xd` file from Figma to your computer, you can open your file explorer to the directory where it was saved. **Double clicking** on the exported `.xd` file will open it up in the version of Adobe XD that you have installed on your computer.

## Configuring your Adobe XD export options

Before exporting your designs from Figma to Adobe XD, you can configure some optional settings that may be useful.

### Render layers starting with an * as images

Enabling the **Render layers starting with an * as images** toggle will automatically export any Figma layers with layer names that start with "_*_" (for example, "*Frame 1") as image layers instead of their normal layer type.

### Include reference image overlays for artboards

Enabling the **Include reference image overlays for artboards** toggle will automatically include image references of each artboard on top of each one in your exported file, with a layer opacity of 50%; this can be helpful to make any manual edits or layer positioning tweaks.

### Flatten/ungroup all Figma "Group" layers

Enabling the **Flatten/ungroup all Figma "Group" layers** toggle will automatically ungroup any "Group" layers in your Figma file.

### Render more visually accurate text

Adobe XD doesn't support text properties like vertical text alignment, and calculates line-heights differently than Figma.

Enabling the **Render more visually accurate text** toggle will more export your Figma text values more accurately for XD (for any fonts in the design that are installed on your machine).

> **Warning:** **Slower conversion times**. Note, enabling the **Render more visually accurate text**  option may cause the conversion to be much slower than usual (depending on number of text layers).

## Understanding differences between Figma and Adobe XD

Convertify does its best to convert all of your layers and atrributes from Figma over to Adobe XD, however, there are some natural limitations based on Adobe XD supporting a smaller number of native features than Figma does.

### Figma features that are missing in Adobe XD

These features are available in Figma, but aren't native to Adobe XD, so they won't be carried over with the Convertify plugin.

- Hiding parent artboards
- Rotated parent artboards
- Ellipsis with "arc" properties
- Mulitple fills/strokes on a layer
- Vector layers that use corner radius
- Strokes/fills applied to groups
- Vertical alignment for text layers
- Nested layer masks

### Supported prototype links in Adobe XD

Note that Adobe XD protoypes only supports interactions of **On Click**, **On Drag** and **Key/Gamepad**.

Adobe XD also supports navigation types of **Navigate To**, **Open Overlay**, **Scroll To** and **Back**.

Convertify will only carry over any prototype links in Figma that match these prototype attributes that are supported in Adobe XD.

## Related Convertify guides

- Follow the [step-by-step Figma to Adobe XD tutorial](/convertify/tutorials/convert-figma-to-adobe-xd).
- Continue the workflow by [exporting Figma designs to Adobe After Effects](/convertify/export/adobe-after-effects).
- Explore the [Convertify Figma plugin](https://www.hypermatic.com/convertify/) for other import and export formats.

---

---
url: "/convertify/export/canva.md"
description: "Export selected Figma pages and frames to PSD files for Canva with Convertify."
---

# Exporting Figma to Canva

> Export selected Figma pages and frames to PSD files for Canva with Convertify.

### Video Tutorial: Export Figma to Canva with one click

This video walks through how to automatically export Figma to Canva via PSD files with one click using the Convertify plugin.
[Embedded media](https://www.youtube.com/embed/bsucvuXSMxA)

[Video](/assets/videos/convertify/export/export-canva.mp4)

To export your designs from Figma for [Canva](https://www.canva.com/), select the **Export Figma to Canva** option from the Convertify select box in the plugin.

Convertify creates a `.psd` file for this export, because Canva supports importing Adobe Photoshop files. After downloading the file, import the `.psd` into Canva using Canva's [Adobe Illustrator or Photoshop import flow](https://www.canva.com/en_au/help/ai-import/).

Convertify packs exported frames into a PSD grid first, ordered visually from top-left to bottom-right based on their positions on the Figma canvas. If the packed PSD is still too large, Convertify automatically splits the Canva export into a `.zip` containing smaller `.psd` files. Canva has a 300 MB import limit, so this helps keep large Figma pages importable in Canva.

## Exporting the current Figma page to Canva

To convert an entire page, click **Export This Page** to begin converting the current page to a `.psd` file.

## Exporting selected Figma frames to Canva

If you only want specific areas exported, select the Figma frames you want and then click **Export Selected Frames**.

## Splitting large Canva exports

Convertify first tries to create one packed PSD file. If the export is near Canva's 300 MB import limit, exceeds PSD document limits, or is too large to build safely, Convertify automatically creates a `.zip` package containing smaller `.psd` files instead of one combined `.psd` file.

You can also turn on **Split each frame into a separate PSD file** before exporting if you prefer separate PSD files from the start. After downloading the `.zip`, unzip it on your computer and import the `.psd` files into Canva individually. If a single frame is still over Canva's 300 MB import limit, split that design into smaller Figma frames and export again.

## Downloading your .psd file from Figma

After Convertify has finished processing, download your `.psd` file from the file browser. If Convertify exports a `.zip` file, download and unzip it before importing the PSD files into Canva.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

## Importing the .psd file into Canva

Once downloaded, upload or import the `.psd` file into Canva. Canva may convert unsupported Photoshop layer features, effects, or fonts differently, so check the imported design before using it in a live project.

---

---
url: "/convertify/export/eps.md"
description: "Export Figma frames to individual EPS files for print, with ZIP packaging for multiple frames."
---

# Exporting Figma to EPS (PostScript)

> Export Figma frames to individual EPS files for print, with ZIP packaging for multiple frames.

### Video Tutorial: Convert Figma to EPS (PostScript)

This video walks through how to automatically convert your designs from Figma to EPS PostScript (in one click) directly from Figma using the Convertify plugin.
[Embedded media](https://www.youtube.com/embed/ZEclPO-3sbw)

To export your designs from Figma to EPS ([PostScript](https://en.wikipedia.org/wiki/PostScript) ), you can follow the steps to convert, download and open your `.eps` file.

## Selecting a single Figma page to convert to EPS

[Video](/assets/videos/convertify/export/eps-export-page.mp4)

Once the Convertify plugin is running, ensure the **Export Figma to Unlayered EPS for Print** option is selected, then you can select the Figma page you would like to convert to EPS.

The plugin will automatically export the Figma page that you're currently viewing. You can change the Figma page you would like to export by clicking any page in your Figma file listed in the left-hand column in Figma, under the **Pages** column heading.

After you've selected your Figma page, you can convert your design to EPS by clicking the **Export This Page** button in the Convertify plugin. This will begin the automated conversion process.

## Exporting selected Figma frames on your page to EPS

[Video](/assets/videos/convertify/export/eps-export-frame.mp4)

Alternatively, if you don't want to convert full Figma page to EPS, you can convert certain frame layer(s) in your Figma design to EPS by selecting the Figma frame(s) you want to convert, then click the **Export Selected Frames** button in the Convertify plugin. This will begin the automated conversion process.

## Exporting multiple EPS files

Convertify creates one individual `.eps` file for each exported Figma frame. If you export multiple frames, Convertify packages the resulting EPS files together in a `.zip` file for download.

## Downloading your .eps file

[Video](/assets/videos/convertify/export/eps-download.mp4)

After Convertify has finished processing your Figma page, you'll be shown a confirmation message; you can download your `.eps` file by clicking the **Download .eps file** button, and then you can use your file to print your design.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

---

---
url: "/convertify/export/sketch.md"
description: "Export Figma pages or frames to Sketch files with Convertify, plus symbol and compatibility notes."
---

# Exporting Figma to Sketch

> Export Figma pages or frames to Sketch files with Convertify, plus symbol and compatibility notes.

### Video Tutorial: Convert Figma to Sketch

This video walks through how to automatically convert your designs from Figma to Sketch files (in one click) directly from Figma using the Convertify plugin.
[Embedded media](https://www.youtube.com/embed/1zwE3xSJeas)

To export your designs from Figma for [Sketch](https://www.sketch.com/), you can follow the steps below to convert, download and open your `.sketch` file.

## Exporting full Figma page(s) to Sketch

[Video](/assets/videos/convertify/export/sketch-convert.mp4)

Once the Convertify plugin is running, ensure the **Export Figma to Sketch** option is selected, then you can select the Figma pages in your current file that you would like to convert to Sketch.

By default, all pages in your Figma file are automatically selected to be exported, but if you want to specify exactly which pages are included in the export, you can turn off the **Export all Figma pages to Sketch** toggle switch, and then uncheck/check the Figma pages for your current file that you'd like to export in the list of pages below the toggle.

After you've selected your Figma page(s), you can convert your design to Sketch by clicking the **Export Pages** button in the Convertify plugin. This will begin the automated conversion process.

> **Info:** **Time Estimates**. The time estimate (for example, **~14 seconds to convert 555 layers**) is based on the number of layers in your Figma page to give you an indicator of how long the conversion will take. Note that Figma pages that contain _large_ images will likely increase the time needed to finish converting your Figma page to your Adobe XD file.

## Exporting selected Figma frames on your page to Sketch

[Video](/assets/videos/convertify/export/sketch-frames.mp4)

Alternatively, if you don't want to convert full Figma page(s) to Sketch, you can convert certain frame layer(s) in your Figma design to Sketch by selecting the Figma frame(s) you want to convert, then click the **Export Selected Frames** button in the Convertify plugin. This will begin the automated conversion process.

> **Info:** **Time Estimates**. The time estimate (for example, **~14 seconds to convert 555 layers**) is based on the number of layers in your Figma page to give you an indicator of how long the conversion will take. Note that Figma pages that contain _large_ images will likely increase the time needed to finish converting your Figma page to your Adobe XD file.

## Downloading your .sketch file

[Video](/assets/videos/convertify/export/sketch-download.mp4)

After Convertify has finished processing your Figma layers, you'll be shown a confirmation message; you can download your `.sketch` file by clicking the **Download .sketch file** button.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

## Opening your .sketch file

[Video](/assets/videos/convertify/export/sketch-open.mp4)

After you've downloaded your `.sketch` file from Figma to your computer, you can open your file explorer to the directory where it was saved. **Double clicking** on the exported `.sketch` file will open it up in the version of [Sketch](https://www.sketch.com/) that you have installed on your computer.

## Enabling Figma Components to Sketch Symbols

### Video Tutorial: Export Figma Components to Sketch Symbols

This video walks through how to automatically convert your components from Figma to Sketch symbols using the Convertify plugin.
[Embedded media](https://www.youtube.com/embed/iOkr2w5KYMI)

[Video](/assets/videos/convertify/export/sketch-components.mp4)

By default, Figma components and instances are converted as regular Sketch groups and layers from Figma to Sketch. However, you can opt-in to the support for this feature by opening the Sketch settings in the Convertify plugin and enabling the **Export Figma Components to Sketch Symbols** toggle, which will convert your Figma components into Sketch symbols.

## Understanding differences between Figma and Sketch

Convertify does its best to convert all of your layers and atrributes from Figma over to Sketch, however, there are some natural limitations based on Sketch supporting a smaller number of native features than Figma does.

### Figma features that are missing in Sketch

These features are available in Figma, but aren't native to Sketch, so they won't be carried over with the Convertify plugin.

- Hiding parent artboards
- Rotated parent artboards
- Ellipsis with "arc" properties

### Supported prototype links in Sketch

Note that Sketch protoypes only supports the interaction of **On Click**.

Sketch also supports navigation types of **Navigate To** and **Back**.

Convertify will only carry over any prototype links in Figma that match these prototype attributes that are supported in Sketch.

---

---
url: "/convertify/faq/plans.md"
description: "To get unlimited usage of all of the Convertify Pro features, you will need to purchase a license from the [Hypermatic website](https://hypermatic.com/convertify#pro)."
---

# Convertify Free vs Convertify Pro

> To get unlimited usage of all of the Convertify Pro features, you will need to purchase a license from the [Hypermatic website](https://hypermatic.com/convertify#pro).

Convertify includes 10 free trials of the _Pro_ version. Once these trials have been used up, the Figma plugin will revert to their _Free_ version, which will have limited functionality.

  - **Convertify Free**: ### EPS File Exports Unlimited Usage       ### Adobe File Exports Try during 10 Pro Trials       ### Sketch File Exports Try during 10 Pro Trials       ### Adobe File Imports Try during 10 Pro Trials       ### Google & Word Doc Imports Try during 10 Pro Trials       ### Image to Vector Imports Try during 10 Pro Trials
  - **Convertify Pro**: ### EPS File Exports Unlimited Usage       ### Adobe File Exports Unlimited Usage       ### Sketch File Exports Unlimited Usage       ### Adobe File Imports Unlimited Usage       ### Google & Word Doc Imports Unlimited Usage       ### Image to Vector Imports Unlimited Usage

---

---
url: "/convertify/faq/security.md"
description: "Convertify runs as an official plugin inside of Figma's own app, which are reviewed and approved by the Figma team."
---

# Convertify Security

> Convertify runs as an official plugin inside of Figma's own app, which are reviewed and approved by the Figma team.

The Figma plugin is run directly from Figma's own servers, and runs inside of a your Figma file, which means that it inherits all of the [security](https://www.figma.com/security/) and infrastructure of the Figma platform, which exceed industry standards for data protection and security:

- SOC 2 Type 2
- SOC 3
- Cloud Security Alliance (CSA) STAR: Level 1
- ISO/IEC 27001:2013
- ISO/IEC 27018:2019
- EU Cloud Code of Conduct (COC): Level 2

There's **no additional software** that needs to be installed to use the Figma plugin, as Figma plugins run as a built-in part of Figma's own native functionality, and all Figma plugins Accessibile and can be instantly run from inside any Figma file, or via the official [Figma Community](https://www.figma.com/community) ecosystem inside of the Figma app.

If your organization is already approved to use Figma, then you _already have access_ to Figma plugins.

## How Convertify works

The [Convertify Figma plugin](https://www.figma.com/community/plugin/849159306117999028) helps users Convert Figma files into other design formats (eg `.sketch` or `.xd` files), and can also import other formats into Figma (eg `.xd`, `.pdf`, `.pptx`, or `.docx` files).

Convertify is designed to be privacy and security focused, so nothing _ever_ leaves your Figma file.

All functionality and file imports/exports are handled client-side directly in the Figma plugin using the [Figma Plugins API](https://www.figma.com/plugin-docs/), and are _never_ uploaded, processed or stored anywhere in the cloud or outside of Figma.

## What Convertify does and doesn't do

Convertify uses the [Figma Plugins API](https://www.figma.com/plugin-docs/) to convert designs directly inside of your Figma file, and doesn't rely on _any_ external servers, which means that nothing in your Figma file ever leaves the Figma plugin or Figma itself; any files that are imported/exported via the plugin are done so entirely locally to/from the user's own computer.

### Convertify does

- Allow users to export their Figma designs to other design file formats from Figma.
- Allow users to drag/drop other design format files from the user's computer to be imported to Figma.
- Download any converted files _directly_ to the user's computer.

### Convertify does _not_

- Upload _any_ data from your Figma file design or any imported designs.
- Store _any_ data from your Figma file design or any imported designs.
- Use _any_ servers or cloud storage to process or store your Figma files or imported designs.
- Collect or store _any_ personal information (Figma plugins *cannot* access any private information about Figma projects, Figma teams or Figma users).

## How Figma plugins work

Figma plugins are written in HTML/CSS/Javascript, and are run in a tightly controlled [sandbox environment](https://www.figma.com/plugin-docs/how-plugins-run/) inside of the main Figma application.

Figma plugins can only do whatever Figma allows them to do inside the permissions of the [Figma Plugins API](https://www.figma.com/plugin-docs/), and importantly, **plugins don't have any access to personal information** about the Figma user running the plugin.

## What Figma plugins can and can't do

As per the article on [Figma plugin security](https://www.figma.com/blog/how-we-built-the-figma-plugin-system/), there are a limited number of things that Figma plugins can do, and many more things that they can't do:

### Figma plugins can

- Only be run by an explicit user action
- Show UI in a single plugin-specific dialog
- Read any data in your Figma document (for example, a “find layer by name” plugin)
- Modify any data in your Figma document (for example, a “rename selected layers” plugin)
- Communicate with any server over the internet (for example, an “import from service X” plugin)

### Figma plugins _cannot_

- Run by themselves
- Get information about the project or team that owns the file
- Access anything when they aren’t running
- Access data from any files other than the file they were run in
- Change Figma’s UI outside of the plugin UI dialog

> **Tip:** Figma account administrators at your company can [configure an allowlist of plugins](https://help.figma.com/hc/en-us/articles/4404228724759-Manage-plugins-and-widgets-in-an-organization) that are allowed inside the organization. This can be used to prevent untrusted Figma plugins from being run in any file in that organization.

---

---
url: "/convertify/faq/troubleshooting.md"
description: "Troubleshooting Convertify imports and exports across Figma, Adobe XD, and Sketch with common fixes."
---

# Troubleshooting Convertify

> Troubleshooting Convertify imports and exports across Figma, Adobe XD, and Sketch with common fixes.

## Figma

### Converting massive Figma files

If you're happy to wait for the process to finish, Convertify can handle really large Figma files (tens of thousands of layers). If possible, try not to switch out of your Figma tab and let it run to completion. If you're converting files with 50,000+ layers (especially with lots of images), you'll likely experience some slower speeds when it comes to bundling up the final file.

**Avoid grouping parent level artboards**. One thing that can slow down conversions is if your designs have your top-level artboards inside of a Figma "Group" (or across multiple "Group") layers. Leaving your artboards to be the parent level children will help speed up the conversion process.

**File Splitting**. If the file is _really_ big and Won't finish or takes too long to do in one go; a good approach is "splitting" your Figma page across multiple pages, and converting each smaller page one by one. This should help lighten the load on Convertify for bigger files.

### Adobe Illustrator (.ai) file isn't importing

If you're dragging your .ai file into Convertify using the "Import Adobe Illustrator to Figma" option, you may need to open your .ai file in Illustrator again and re-save it to .ai with the **Create PDF Compatible File** checkbox selected; then if you drag that newly saved .ai file into Convertify, it should import.

### Thin white line around image exports

Occasionally some images will contain a faint, thin white line around the edges. Figma [does this](https://twitter.com/Skcrub/status/1255544876701270017) if a layer isn't positioned on a rounded pixel value (e.g., Y: 156.76 or X: 56.3) will automatically result in this sub-pixel line getting included in the export. To resolve the issue, please ensure that your layer positions are all rounded pixel values.

### Blank file extensions using Figma desktop app on Windows

There's a known issue with the Figma desktop app (only on Windows), which also happens for normal file exports from Figma. When you go to save your file, you may see an "all files" label. If you ignore this and continue by clicking "Save", it should still save the file with the correct extension and allow you to open it as expected after it has downloaded to your computer. If it still saves the file with a blank extension, you should be able to rename the file to manually append the correct extension to the file name.

### Pixelated image exports

If you're converting your file while the image assets in Figma are still progressively loading, they may be exported looking pixelated, as the image wasn't fully loaded in the Figma file before it was exported. To resolve this, please ensure that all of the images have loaded 100% and are looking sharp inside the Figma file before converting your Figma file with the Convertify plugin. To help further with solving this issue, you can use the ["Downsizer" feature](/tinyimage/downsize) to shrink down your image fills to match their layer size, which will shrink their file size and ensure they load much faster in your Figma file.

### VPN may be required in China

Note, if you're in China, the accounts server _may_ be blocked by "The Great Firewall of China". If you're seeing an activation error, despite using a valid key, you will likely need to use a [VPN](https://protonvpn.com/free-vpn/) to resolve the issue.

### 'An error occurred while loading the plugin environment'

This may happen in the Figma desktop app if [the Use Developer VM](https://www.figma.com/plugin-docs/debugging/#developer-vm) debug setting in Figma is enabled by mistake; you can make sure it's turned off by **right-clicking** anywhere on your Figma canvas, hovering over **Plugins**, then hovering over **Development**, and making sure that the **Use Developer VM** is _unchecked_; after it is unchecked (and does _not_ have a tick icon next to it), re-running the Figma plugin should work as expected.

## Adobe XD

### Figma features missing in Adobe XD

These features are available in Figma, but aren't native to Adobe XD, so they won't be carried over with the Convertify plugin.
- Hiding parent artboards
- Rotated parent artboards
- Ellipsis with "arc" properties
- Multiple fills/strokes on a layer
- Vector layers that use corner radius
- Strokes/fills applied to groups
- Vertical alignment for text layers
- Nested layer masks

### Installing Adobe XD

If you're a Mac or Windows user, you can [install Adobe XD in Creative Cloud](https://creativecloud.adobe.com/apps/all/all-platforms/pdp/xd) (or download the `.dmg` installer [directly from here](https://creativecloud.adobe.com/apps/download/xd?promoid=B8NR3RT1&mv=other)), which should allow you to run it on your computer. You can also find the [Windows standalone installer](https://archive.org/details/adobe-xd-54.1.12.1-for-windows) online, too.

### Vertical Text Alignment in Adobe XD

Vertically aligned text isn't supported in Adobe XD, so Convertify will attempt to emulate vertically aligned text (where possible) by offsetting the top position.

## Sketch

### Figma features missing in Sketch

These features are available in Figma, but aren't native to Sketch, so they won't be carried over with the Convertify plugin.
- Hiding parent artboards
- Rotated parent artboards
- Ellipsis with "arc" properties

### The Sketch file won't open

If you're running an older version of Sketch, please ensure you select the version of Sketch you're using in Convertify before exporting the Figma file. Alternatively, if possible, updating your version of Sketch should help you get the best results with opening files exported from Convertify. If neither of these options work, it may be being caused by a bug in the plugin, in which case; please do [get in touch](https://hypermatic.com/contact/) and we'll try to publish a fix as soon as possible!

### Missing Fonts in Sketch

There are some cases where you may need to click the "Missing Fonts" notification in Sketch and manually re-assign them if they're not currently installed on your computer.

### Text Clipping in Sketch

If your text layer bounds (width/height) in Figma are smaller than the text size itself, Sketch will visually vertically clip if the height is shorter than the text itself, or it will put your text onto multiple lines if the width is shorter than the text itself. To resolve this when it occurs, you can adjust the width/height of your text layer(s) in Figma and re-export it for Sketch.

### Groups in Sketch

Groups in Sketch can't have backgrounds, so Convertify will add a background "rectangle" layer to visually emulate group backgrounds from your Figma design.

### Image Crops in Sketch

Non-destructive image cropping isn't supported in Sketch, so Convertify will transform your cropped images from Figma to a "masked" Sketch group, retaining your full original image and emulating its visual crop.

### Clip Content in Sketch

"Clip content" doesn't exist on group layers in Sketch, so Convertify will create a "mask" layer at the bottom of the group to visually emulate clipping for Figma frames with clipped content enabled.

---

---
url: "/convertify/import/adobe-illustrator.md"
description: "How to import Illustrator .ai files into Figma with Convertify, including vector import tips."
---

# Importing Adobe Illustrator to Figma

> How to import Illustrator .ai files into Figma with Convertify, including vector import tips.

### Video Tutorial: Import Adobe Illustrator to Figma

This video walks through how to automatically import your Adobe Illustrator (.ai) files to Figma using the Convertify plugin.
[Embedded media](https://www.youtube.com/embed/Xb4hBxewwEE)

[Video](/assets/videos/convertify/import/import-ai.mp4)

To import your designs from an Adobe Illustrator (.ai) file to Figma, select the **Import Adobe Illustrator to Figma** option from the Convertify select box in the plugin, and then drag and drop your .ai file from anywhere on your computer into the dropzone area inside of the Convertify plugin to begin importing your design into Figma and wait for it to finish.

> **Tip:** By default, the Illustrator file will be imported as static JPG image frames. If you need vector layer data, you can try enabling the **Import Artboards as Vector Layers** toggle in the plugin before importing your Illustrator file.

> **Note:** If your Illustrator file isn't importing at all, you may need to re-save it by opening the `.ai` file in Adobe Illustrator, re-saving it as a new Illustrator file and ensuring the **PDF compatible** checkbox is **enabled**.

---

---
url: "/convertify/import/adobe-indesign.md"
description: "Import Adobe InDesign .idml files into Figma with Convertify."
---

# Importing Adobe InDesign to Figma

> Import Adobe InDesign .idml files into Figma with Convertify.

### Video Tutorial: Import Adobe InDesign to Figma

This video walks through how to automatically import your Adobe InDesign (.idml) files to Figma using the Convertify plugin.
[Embedded media](https://www.youtube.com/embed/Nc0kEtedF70)

[Video](/assets/videos/convertify/import/import-indesign.mp4)

To import your designs from an Adobe InDesign (.idml) file to Figma, select the **Import Adobe InDesign to Figma** option from the Convertify select box in the plugin, and then drag and drop your `.idml` file from anywhere on your computer into the dropzone area inside of the Convertify plugin to begin importing your design into Figma and wait for it to finish.

The `.idml` file is imported directly into your current Figma file. If your document contains multiple pages, each top-level page is imported for review and editing.

---

---
url: "/convertify/import/adobe-photoshop.md"
description: "Import Adobe Photoshop .psd files into Figma with Convertify."
---

# Importing Adobe Photoshop to Figma

> Import Adobe Photoshop .psd files into Figma with Convertify.

### Video Title: Import Adobe Photoshop to Figma

This video walks through how to automatically import your Adobe Photoshop (.psd) files to Figma using the Convertify plugin.
[Embedded media](https://www.youtube.com/embed/r5ITJXDOHiI)

[Video](/assets/videos/convertify/import/import-psd.mp4)

To import your designs from an Adobe Photoshop (.psd) file to Figma, select the **Import Adobe Photoshop to Figma** option from the Convertify select box in the plugin, and then drag and drop your `.psd` file from anywhere on your computer into the dropzone area inside of the Convertify plugin to begin importing your design into Figma and wait for it to finish.

The `.psd` file is imported directly into your current Figma file. If your document contains multiple artboards, each top-level artboard is imported for review and editing.

---

---
url: "/convertify/import/adobe-xd.md"
description: "Steps to import Adobe XD files into Figma with Convertify and required XD installation notes."
---

# Importing Adobe XD to Figma

> Steps to import Adobe XD files into Figma with Convertify and required XD installation notes.

### Video Tutorial: Import Adobe XD to Figma

This video walks through how to automatically convert and import your designs from Adobe XD to Figma using the Convertify plugin.
[Embedded media](https://www.youtube.com/embed/9SrTAJnl68g)

[Video](/assets/videos/convertify/import/import-xd.mp4)

To import your designs from an Adobe XD (.xd) file to Figma, select the **Import Adobe XD to Figma** option from the Convertify select box in the plugin, and then drag and drop your .xd file from anywhere on your computer into the dropzone area inside of the Convertify plugin to begin importing your design into Figma and wait for it to finish.

> **Note:** **Installing Adobe XD** If you're a Mac or Windows user, you can [install Adobe XD in Creative Cloud](https://creativecloud.adobe.com/apps/all/all-platforms/pdp/xd) (or download the `.dmg` installer [directly from here](https://creativecloud.adobe.com/apps/download/xd?promoid=B8NR3RT1&mv=other)), which should allow you to run it on your computer. You can also find the [Windows standalone installer](https://archive.org/details/adobe-xd-54.1.12.1-for-windows) online, too.

---

---
url: "/convertify/import/google-docs.md"
description: "Import Google Docs into Figma by publishing to web and pasting the public URL."
---

# Importing Google Docs to Figma

> Import Google Docs into Figma by publishing to web and pasting the public URL.

### Video Tutorial: Import Google Docs to Figma

This video walks through how to automatically convert and import pages from Google Docs to Figma using the Convertify plugin.
[Embedded media](https://www.youtube.com/embed/DuXOipNO3Nk)

[Video](/assets/videos/convertify/import/import-google-doc.mp4)

Select **Import Google Doc to Figma** in Convertify, paste the public Google Docs URL, then select **Import Google Doc**.

> **Tip:** Convertify needs permission to read the document. In Google Docs, select **Share** and change **Restricted** to **Anyone with the link** before copying the URL.

---

---
url: "/convertify/import/google-sheets.md"
description: "Import Google Sheets tables into Figma via public share URL using Convertify."
---

# Importing Google Sheets to Figma

> Import Google Sheets tables into Figma via public share URL using Convertify.

### Video Tutorial: Import Google Sheets to Figma

This video walks through how to automatically convert and import tables from Google Sheets to Figma using the Convertify plugin.
[Embedded media](https://www.youtube.com/embed/cfzEPRPRfCg)

[Video](/assets/videos/convertify/import/import-google-sheet.mp4)

Select **Import Google Sheet to Figma** in Convertify, paste the public Google Sheets URL, then select **Import Google Sheet**.

> **Tip:** Convertify needs permission to read the spreadsheet. In Google Sheets, select **Share** and change **Restricted** to **Anyone with the link** before copying the URL.

---

---
url: "/convertify/import/lottie.md"
description: "Convert Lottie JSON and dotLottie files to animated GIF layers in Figma with Convertify."
---

# Importing Lottie animations as animated GIF layers to Figma

> Convert Lottie JSON and dotLottie files to animated GIF layers in Figma with Convertify.

### Video Tutorial: Import Lottie file animations to Figma

This video walks through how to automatically import your Lottie files (.lottie / .json) to Figma using the Convertify plugin.
[Embedded media](https://www.youtube.com/embed/-x-2psLbbVA)

[Video](/assets/videos/convertify/import/lottie-imports.mp4)

To import Lottie animations to Figma, select the **Import Lottie as GIF to Figma** option from the Convertify select box in the plugin, then drag and drop your `.json` or `.lottie` file into the dropzone area inside the Convertify plugin to import it as an animated GIF image layer.

Convertify renders the Lottie animation locally inside the plugin, converts it into an animated GIF, and inserts it into your Figma file as an image fill layer.

For unusually large or long animations, Convertify may reduce the GIF dimensions or sample a lower frame rate so the conversion can complete reliably inside Figma.

> **Info:** Animated GIF layers may appear static while editing in Figma, but can play when viewed in presentation/prototype contexts that support animated GIF playback.

> **Warning:** Lottie files are imported as GIF image layers, not editable vector animation layers.

---

---
url: "/convertify/import/pdf.md"
description: "How to import PDF files into Figma with Convertify, including drag-and-drop, vector layers, and editable text."
---

# Importing PDF to Figma

> How to import PDF files into Figma with Convertify, including drag-and-drop, vector layers, and editable text.

### Video Tutorial: Import PDF to Figma

This video walks through how to automatically import your PDF files to Figma using the Convertify plugin.
[Embedded media](https://www.youtube.com/embed/7BEJzVi8yeE)

[Video](/assets/videos/convertify/import/import-pdf.mp4)

To import your designs from a PDF (.pdf) file to Figma, select the **Import PDF to Figma** option from the Convertify select box in the plugin, and then drag and drop your .pdf file from anywhere on your computer into the dropzone area inside of the Convertify plugin to begin importing your design into Figma and wait for it to finish.

> **Tip:** By default, the PDF will be imported as static JPG image frames. If you need editable layers, enable **Import Pages as Vector Layers**.

## Importing editable text

When **Import Pages as Vector Layers** is enabled, Convertify also displays the **Import Editable Text Layers** option. This option is enabled by default and converts text stored as text in the PDF into native, editable Figma text layers.

> **Note:** Some PDFs store text as vector outlines or scanned images instead of text data. Those parts will remain vectors or images because the original characters are not available to edit. Convertify may also substitute fonts that are not available in Figma, which can cause small visual differences.

---

---
url: "/convertify/import/powerpoint.md"
description: "Import Microsoft PowerPoint .pptx files into Figma with Convertify."
---

# Importing PowerPoint to Figma

> Import Microsoft PowerPoint .pptx files into Figma with Convertify.

To import your slides from a Microsoft PowerPoint (`.pptx`) file to Figma, select the **Import PowerPoint to Figma** option from the Convertify select box in the plugin, and then drag and drop your `.pptx` file from anywhere on your computer into the dropzone area inside of the Convertify plugin to begin importing your slides into Figma and wait for it to finish.

The `.pptx` file is imported directly into your current Figma file. If your presentation contains multiple slides, each top-level slide is imported for review and editing.

---

---
url: "/convertify/import/svg.md"
description: "Import optimized SVG files into Figma by dragging them into Convertify."
---

# Importing Optimized SVG to Figma

> Import optimized SVG files into Figma by dragging them into Convertify.

### Video Tutorial: Import optimized SVG to Figma

This video walks through how to automatically import optimized SVG to Figma using the Convertify plugin.
[Embedded media](https://www.youtube.com/embed/b-ENDkyz4ro)

[Video](/assets/videos/convertify/import/import-svg.mp4)

To import optimized and simplified SVG (.svg) vector files to Figma, select the **Import Optimized SVG to Figma** option from the Convertify select box in the plugin, and then drag and drop your .svg file from anywhere on your computer into the dropzone area inside of the Convertify plugin to import your optimized SVG vector into Figma.

---

---
url: "/convertify/import/vector.md"
description: "Convert bitmap images to traced SVG vectors in Figma using Convertify."
---

# Convert and import a JPG, PNG or WebP image to Vector SVG in Figma

> Convert bitmap images to traced SVG vectors in Figma using Convertify.

### Convert an image to vector SVG in Figma with one click

This video walks through how to automatically convert and import a JPG/PNG image to vector SVG in Figma using the Convertify plugin.
[Embedded media](https://www.youtube.com/embed/mSAk3iGpaXQ)

[Video](/assets/videos/convertify/import/traced-vector.mp4)

To convert a bitmap image into a vector SVG file and import it into Figma, select the **Import Image as Traced SVG to Figma** option from the Convertify select box in the plugin, and then drag and drop your .png, .jpg or .webp file from anywhere on your computer into the dropzone area inside of the Convertify plugin to import your vectorized SVG layer into Figma.

> **Tip:** **Using higher quality and resolution input images will result in a better vector**. To get a better conversion result, you can try [upscaling your image](https://www.google.com/search?q=image+upscale) first, before importing it into the plugin.

> **Info:** If you'd prefer to download the converted vector, you can click the **Download SVG File** button to download the converted .svg file directly to your computer (instead of inserting it into Figma).

---

---
url: "/convertify/import/video-to-gif.md"
description: "Convert MP4 videos to animated GIF layers in Figma with Convertify and size limits."
---

# Importing MP4 video files as animated GIF layers to Figma

> Convert MP4 videos to animated GIF layers in Figma with Convertify and size limits.

### Video Tutorial: Import an MP4 video to animated GIF in Figma with one click

This video walks through how to automatically convert and import a MP4 video to an animated GIF layer in Figma using the Convertify plugin.
[Embedded media](https://www.youtube.com/embed/e_PLQv2RY8Y)

[Video](/assets/videos/convertify/import/import-video-to-gif.mp4)

To import MP4 (.mp4) video files to Figma, select the **Import Video as GIF to Figma** option from the Convertify select box in the plugin, and then drag and drop your .mp4 file from anywhere on your computer into the dropzone area inside of the Convertify plugin to import your converted animated GIF image layer into Figma.

> **Warning:** Note, due to the large size of animated GIFs, **MP4 imports are limited to 60 seconds in length**.

> **Info:** For unusually large or long videos, Convertify may reduce the GIF dimensions while preserving the aspect ratio so the conversion can complete reliably inside Figma.

---

---
url: "/convertify/import/word-docs.md"
description: "Import Microsoft Word .docx files into Figma with Convertify."
---

# Importing Word Docs to Figma

> Import Microsoft Word .docx files into Figma with Convertify.

To import your content from a Microsoft Word (`.docx`) file to Figma, select the **Import Word Doc to Figma** option from the Convertify select box in the plugin, and then drag and drop your `.docx` file from anywhere on your computer into the dropzone area inside of the Convertify plugin to begin importing your document into Figma and wait for it to finish.

The `.docx` file is imported directly into your current Figma file. If your document contains multiple pages, each top-level page is imported for review and editing.

---

---
url: "/convertify/overview/install.md"
description: "Ensure you're logged into your Figma account, then follow the steps below to install and run the [Convertify Figma Plugin](https://www.figma.com/community/plugin/849159306117999028/convertify-sketch-adobe-google)."
---

# Install and run the Convertify Figma Plugin

> Ensure you're logged into your Figma account, then follow the steps below to install and run the [Convertify Figma Plugin](https://www.figma.com/community/plugin/849159306117999028/convertify-sketch-adobe-google).

### Video Tutorial: How to install (and remove) Figma plugins

This video tutorial is a complete step-by-step guide showing you the new process of how to install (and remove) Figma plugins after the mid-2024 "UI3" update to the Figma app
[Embedded media](https://www.youtube.com/embed/CzjxF2Jv6PM)

## Installing the Convertify Figma Plugin

1. Open any Figma file.
2. Click on the **Actions** icon in the bottom Figma toolbar.
3. Click the **Plugins & Widgets** tab to filter results to Figma plugins.
4. Search for **Convertify** in the search bar.
5. Click on the **Convertify** search result.
6. Click the **Save** button to install the Convertify plugin.

> **Note:** Figma users in a **Figma Organization** may only be able to install approved plugins. Please contact your Figma Org admin at your company to [approve the Convertify plugin](https://help.figma.com/hc/en-us/articles/4404228724759-Manage-plugins-and-widgets-in-an-organization) if you're unable to install certain Figma plugins.

## Running the Convertify Figma Plugin

Once you've [installed](#installing-the-figma-plugin) the **Convertify** Figma plugin, to run the plugin in your Figma file:

  1. **Right-click** anywhere on your Figma file's page canvas
  2. Hover your mouse over the **Plugins** ▶ menu item
  3. Hover your mouse over the **Saved plugins** ▶ menu item
  4. Click on the **Convertify** plugin menu item

> **Tip:** After you've run the **Convertify** plugin once in a Figma file, you'll be able to quickly re-launch it by clicking the **Convertify** icon in the right-hand side Figma column (under the **Plugin** subheading).

> **Warning:** Only Figma users with **Edit** access to a Figma file can run a Figma plugin in that Figma file; if you only have **View** permissions, you won't be able to run any Figma plugins in that file.

## Uninstalling the Convertify Figma plugin

import UnInstallSnippet from "/snippets/uninstalling-figma-plugins.mdx";

1. Open any Figma file.
2. Click on the **Actions** icon in the bottom Figma toolbar.
3. Click the **Plugins & Widgets** tab to filter results to Figma plugins.
4. Search for **Convertify** in the search bar.
5. Click on the **Convertify** search result.
6. Click the **Remove** button to uninstall the Convertify plugin.

> **Note:** This will remove the plugin from your **Saved Plugins** list, however, the Figma plugin may still show up under your **Recents** list (if it has been recently run), as Figma saves this list of recent plugins in your browser's/app's local storage. The plugin will vanish from the Recents menu after other plugins are run to take its place.

---

---
url: "/convertify/overview/pro.md"
description: "After trying out all the Pro features of Convertify **10 times**, you can optionally upgrade to continue using all the extra features that are only available in the Pro version; or if you're a casual user, you can continue using the Free version forever."
---

# Activating Convertify Pro

> After trying out all the Pro features of Convertify **10 times**, you can optionally upgrade to continue using all the extra features that are only available in the Pro version; or if you're a casual user, you can continue using the Free version forever.

> **Tip:** Need a Convertify Pro account? You can purchase a Pro account for you or your team by visiting the [Convertify](https://www.hypermatic.com/convertify/#pro) product page on the Hypermatic website.

## Activating the Figma plugin with an Convertify Pro license key

1. **Purchase a Pro license** for you or your team by visiting the [Convertify](https://www.hypermatic.com/convertify/#pro) product page on the Hypermatic website.
2. **Run the Convertify Plugin**, then click on the **Upgrade Now** button at the bottom of the Figma plugin window.
3. **Paste in your Pro key**, then click the **Unlock** button.

This will unlock the Pro version of Convertify and give you unlimited use all of the Figma plugin features.

> **Warning:** Note, if you're in China, the accounts server _may_ be blocked by "The Great Firewall of China". If you're seeing a activation error, despite using a valid key, you will likely need to use a [VPN](https://protonvpn.com/free-vpn/) to resolve the issue.

> **Info:** If you ever need to use a different license key at any time (for example, you were using your own personal Pro license key, but now your employer is buying you a Pro license to use instead), you can press **CTRL + K** while your plugin window is open in Figma, and this will bring up the license key prompt again, where you can enter a different license key.

---

---
url: "/convertify/overview/quickstart.md"
description: "Export Figma files to Sketch, Canva, XD, or After Effects, and import common design and document formats into Figma."
---

# Get started with Convertify

> Export Figma files to Sketch, Canva, XD, or After Effects, and import common design and document formats into Figma.

[![Convertify Figma Plugin](https://www.hypermatic.com/convertify.jpg)](https://www.figma.com/community/plugin/849159306117999028/convertify-sketch-adobe-google)

## Install and activate Convertify

- [Install & Run the Figma plugin](/convertify/overview/install.md): How to run Convertify inside of Figma
- [Activate Convertify Pro](/convertify/overview/pro.md): How to buy and use a Pro license key

## Using Convertify

  - [Convertify Documentation](/convertify/export/adobe-xd.md): Detailed docs with short screencaps
  - [Convertify Video Tutorials](/convertify/tutorials.md): Full step-by-step video walkthroughs

## Frequently asked questions

- [Troubleshooting Convertify](/convertify/faq/troubleshooting.md): Common issues issues you may run into
- [Convertify Security](/convertify/faq/security.md): Details about how Convertify works
- [Receipts](/faq/receipts.md): Find email receipts and PDF invoices
- [Billing](/faq/billing.md): Manage your Pro subscription
- [License Seat Management](/faq/seats.md): Manage the Figma users on your key
- [Convertify Free vs Pro](/convertify/faq/plans.md): Compare Free vs Pro features

[Video](https://www.hypermatic.com/assets/videos/convertify/CONVERTIFY_DEMO.mp4)

## Convertify features

- Convert Figma designs to Sketch, Canva, Adobe XD, After Effects, Adobe Photoshop, Adobe Illustrator, Adobe InDesign, or EPS.
- Import Adobe XD, Photoshop, PDF, Illustrator, InDesign, PowerPoint, Word, optimized SVG, Google Docs, and Google Sheets content into Figma.
- Import PNG/JPG bitmap images as vectorized SVG layers with the image tracer feature.
- Import MP4 video files and Lottie animations as animated GIF layers.
- Converts each artboard (layer-by-layer) to a real .sketch or .xd file.
- Simple pages converted in seconds; larger pages in minutes.
- Converts almost all layer styles and properties (see below for details).
- Includes color and text style libraries from Figma.
- Convert your Figma Components to Sketch/XD Symbols.
- Natively export artboards to After Effects from Adobe XD with converted .xd file.
- Includes all supported prototype links from Figma.
- Download the exported .sketch, .xd, psd, .idml, or .eps file to your computer from Figma.

---

---
url: "/convertify/tutorials.md"
description: "The best free Figma tutorial videos for beginners (or power users) to level up."
---

# Convertify Video Tutorials

> The best free Figma tutorial videos for beginners (or power users) to level up.

## Adobe

- [Convert Figma to Adobe XD](/convertify/tutorials/convert-figma-to-adobe-xd)
- [Convert Figma to Adobe After Effects](/convertify/tutorials/convert-figma-to-adobe-after-effects)
- [Import Adobe XD to Figma](/convertify/tutorials/import-adobe-xd-to-figma)
- [Import Adobe Illustrator to Figma](/convertify/tutorials/import-adobe-illustrator-to-figma)
- [Export Figma to Adobe Photoshop](/convertify/tutorials/export-figma-to-adobe-photoshop)
- [Import Adobe Photoshop to Figma](/convertify/tutorials/import-adobe-photoshop-to-figma)
- [Import Adobe InDesign to Figma](/convertify/tutorials/import-adobe-indesign-to-figma)
- [Export Figma to Adobe InDesign](/convertify/tutorials/export-figma-to-adobe-indesign)

## Sketch

- [Convert Figma to Sketch](/convertify/tutorials/convert-figma-to-sketch)
- [Convert Figma Components to Sketch Symbols](/convertify/tutorials/convert-figma-components-to-sketch-symbols)

## Canva

- [Export Figma to Canva with one click](/convertify/tutorials/export-figma-to-canva-with-one-click)

## Google

- [Import Google Docs to Figma](/convertify/tutorials/import-google-docs-to-figma)
- [Import Google Sheets to Figma](/convertify/tutorials/import-google-sheets-to-figma)

## Other

- [Convert an image to vector SVG in Figma with one click](/convertify/tutorials/convert-an-image-to-vector-svg-in-figma-with-one-click)
- [Import PDF to Figma](/convertify/tutorials/import-pdf-to-figma)
- [Import Lottie file animations to Figma with one click](/convertify/tutorials/import-lottie-file-animations-to-figma-with-one-click)
- [Import an MP4 video to animated GIF in Figma with one click](/convertify/tutorials/import-an-mp4-video-to-animated-gif-in-figma-with-one-click)
- [Import optimized SVG to Figma](/convertify/tutorials/import-optimized-svg-to-figma)
- [Convert Figma to EPS (PostScript)](/convertify/tutorials/convert-figma-to-eps-postscript)

---

---
url: "/convertify/tutorials/convert-an-image-to-vector-svg-in-figma-with-one-click.md"
description: "The video shows how to use the Convertify Figma plugin to trace bitmap images and import them into Figma as editable SVG vector layers. It also demonstrates that starting with a sharper, upscaled JPG, PNG, or WebP image can produce cleaner vector results."
---

# Convert an image to vector SVG in Figma with one click

> The video shows how to use the Convertify Figma plugin to trace bitmap images and import them into Figma as editable SVG vector layers. It also demonstrates that starting with a sharper, upscaled JPG, PNG, or WebP image can produce cleaner vector results.

[← Back to Convertify Video Tutorials](/convertify/tutorials)

[Embedded media](https://www.youtube.com/embed/mSAk3iGpaXQ)

**What this video covers**

The video shows how to use the Convertify Figma plugin to trace bitmap images and import them into Figma as editable SVG vector layers. It also demonstrates that starting with a sharper, upscaled JPG, PNG, or WebP image can produce cleaner vector results.

**Things you'll need**

- A Figma file
- The Convertify Figma plugin
- A bitmap image such as JPG, PNG, or WebP

**Steps**

1. Open your Figma file, go to Resources, search for Convertify under the Plugins tab, and run it from Saved plugins.
2. In Convertify, go to the import options and select Import image as traced SVG to Figma.
3. Drag and drop a JPG, PNG, or WebP image from your computer into the plugin drop zone.
4. Wait for Convertify to trace the image and generate the SVG paths.
5. Click Insert SVG to Figma to bring the traced vector into the file as editable layers.
6. Optionally download the SVG file instead of inserting it into Figma.
7. For better results, upscale lower-resolution images first before importing them.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=mSAk3iGpaXQ)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-convert-an-image-to-vector-svg-in-figma-with-one-click-using-convertify)
- [Browse Convertify tutorial docs](https://docs.hypermatic.com/convertify/tutorials)

---

---
url: "/convertify/tutorials/convert-figma-components-to-sketch-symbols.md"
description: "This tutorial shows how to use the Convertify Figma plugin to export a Figma design to Sketch, including converting Figma components into Sketch symbols. It also demonstrates how the exported Sketch file can be edited through symbols, colors, and styles for global updates."
---

# Convert Figma Components to Sketch Symbols

> This tutorial shows how to use the Convertify Figma plugin to export a Figma design to Sketch, including converting Figma components into Sketch symbols. It also demonstrates how the exported Sketch file can be edited through symbols, colors, and styles for global updates.

[← Back to Convertify Video Tutorials](/convertify/tutorials)

[Embedded media](https://www.youtube.com/embed/iOkr2w5KYMI)

**What this video covers**

This tutorial shows how to use the Convertify Figma plugin to export a Figma design to Sketch, including converting Figma components into Sketch symbols. It also demonstrates how the exported Sketch file can be edited through symbols, colors, and styles for global updates.

**Things you'll need**

- Figma
- Convertify plugin
- Sketch

**Steps**

1. Install the Convertify plugin from the Figma Community.
2. Open a Figma file, then run Convertify from right-click > Plugins > Convertify.
3. Open the settings icon next to the Sketch button and enable “Convert Figma components to Sketch symbols”.
4. Click “Convert to Sketch” and wait for the plugin to process all pages and layers.
5. Click “Download Sketch File” and save the file to your computer.
6. Open the exported Sketch file in Sketch and check the new “Symbols” page for converted components.
7. Edit symbols, colors, or styles in Sketch to update the design globally.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=iOkr2w5KYMI)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-convert-figma-components-to-sketch-symbols-using-convertify)
- [Browse Convertify tutorial docs](https://docs.hypermatic.com/convertify/tutorials)

---

---
url: "/convertify/tutorials/convert-figma-to-adobe-after-effects.md"
description: "This video shows how to export a Figma design to Adobe After Effects using the Convertify Figma plugin. The workflow converts a Figma page to an XD file, then exports the XD artboard to After Effects so the layers can be animated there."
---

# Convert Figma to Adobe After Effects

> This video shows how to export a Figma design to Adobe After Effects using the Convertify Figma plugin. The workflow converts a Figma page to an XD file, then exports the XD artboard to After Effects so the layers can be animated there.

[← Back to Convertify Video Tutorials](/convertify/tutorials)

[Embedded media](https://www.youtube.com/embed/-UBknnWT6D0)

**What this video covers**

This video shows how to export a Figma design to Adobe After Effects using the Convertify Figma plugin. The workflow converts a Figma page to an XD file, then exports the XD artboard to After Effects so the layers can be animated there.

**Things you'll need**

- Convertify must be installed in Figma.
- Adobe XD and Adobe After Effects are used in the export workflow.

**Steps**

1. Install Convertify from the Figma Community Plugins tab.
2. Open your Figma file, then right-click and choose Plugins > Convertify.
3. Select the page you want to export, since the Adobe export only supports single pages.
4. Click Convert to After Effects, then download the XD file using Download XD file (for exporting to After Effects).
5. Open the downloaded XD file in Adobe XD.
6. Select the artboard you want to export, then go to File > Export > After Effects.
7. After Effects opens with the exported artboard and Figma layers ready to animate.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=-UBknnWT6D0)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-figma-to-after-effects-in-one-click-using-convertify)
- [Browse Convertify tutorial docs](https://docs.hypermatic.com/convertify/tutorials)

---

---
url: "/convertify/tutorials/convert-figma-to-adobe-xd.md"
description: "The video shows how to use the Convertify Figma plugin to convert Figma designs into Adobe XD files in one click. It demonstrates the installation, export, and opening of the generated XD file, while also pointing out a few conversion caveats for unsupported Adobe XD features."
---

# Convert Figma to Adobe XD

> The video shows how to use the Convertify Figma plugin to convert Figma designs into Adobe XD files in one click. It demonstrates the installation, export, and opening of the generated XD file, while also pointing out a few conversion caveats for unsupported Adobe XD features.

[← Back to Convertify Video Tutorials](/convertify/tutorials)

[Embedded media](https://www.youtube.com/embed/cGYU2jvnSs8)

**What this video covers**

The video shows how to use the Convertify Figma plugin to convert Figma designs into Adobe XD files in one click. It demonstrates the installation, export, and opening of the generated XD file, while also pointing out a few conversion caveats for unsupported Adobe XD features.

**Things you'll need**

- Figma
- Convertify
- Adobe XD

**Steps**

1. Search for Convertify in Figma Community or Plugins and install it.
2. In your Figma file, right-click and choose Plugins > Convertify, or launch it from the Convertify icon.
3. Select the page to convert and click Convert to XD.
4. Wait for the plugin to finish converting and bundling the XD file, then save it to your desktop.
5. Open the generated Adobe XD file to review the imported artboards, layers, text, images, and vectors.
6. Check for unsupported elements such as arc features, nested masks, star shapes, vector corner radiuses, and vertical text alignment, then adjust the design in Figma if needed before re-exporting.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=cGYU2jvnSs8)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-convert-figma-to-adobe-xd-files-in-one-click-using-convertify)
- [Browse Convertify tutorial docs](https://docs.hypermatic.com/convertify/tutorials)

---

---
url: "/convertify/tutorials/convert-figma-to-eps-postscript.md"
description: "This tutorial shows how to use the Convertify Figma plugin to export designs from Figma to EPS or PostScript in one click. It demonstrates both exporting an entire page of artboards and exporting only selected top-level parent frames as individual EPS files."
---

# Convert Figma to EPS (PostScript)

> This tutorial shows how to use the Convertify Figma plugin to export designs from Figma to EPS or PostScript in one click. It demonstrates both exporting an entire page of artboards and exporting only selected top-level parent frames as individual EPS files.

[← Back to Convertify Video Tutorials](/convertify/tutorials)

[Embedded media](https://www.youtube.com/embed/ZEclPO-3sbw)

**What this video covers**

This tutorial shows how to use the Convertify Figma plugin to export designs from Figma to EPS or PostScript in one click. It demonstrates both exporting an entire page of artboards and exporting only selected top-level parent frames as individual EPS files.

**Things you'll need**

- Figma
- Convertify Figma plugin

**Steps**

1. Open the Figma file you want to export, then use the Resources icon to search for the Convertify plugin and save it to your Figma plugins list.
2. Run Convertify from the plugin list or by right-clicking the canvas and going to Plugins > Saved plugins.
3. To export an entire page, stay on the page you want to convert and click Convert to EPS so each artboard or frame is exported as its own EPS file.
4. When the conversion finishes, click Download .eps to save the file.
5. To export only specific frames, select the top-level parent frames or artboards you want to convert.
6. In the plugin, choose EPS from the dropdown and click Convert layers to EPS.
7. After the files are processed, download the EPS package and unzip it to access the individual EPS files.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=ZEclPO-3sbw)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-figma-to-eps-files-in-one-click-using-convertify)
- [Browse Convertify tutorial docs](https://docs.hypermatic.com/convertify/tutorials)

---

---
url: "/convertify/tutorials/convert-figma-to-sketch.md"
description: "This video shows how to use the Convertify Figma to Sketch plugin to export Figma designs into editable Sketch files. It walks through installing the plugin, converting pages of different sizes, and opening the resulting .Sketch files in Sketch with layers, text, images, vectors, and zoom position carried over."
---

# Convert Figma to Sketch

> This video shows how to use the Convertify Figma to Sketch plugin to export Figma designs into editable Sketch files. It walks through installing the plugin, converting pages of different sizes, and opening the resulting .Sketch files in Sketch with layers, text, images, vectors, and zoom position carried over.

[← Back to Convertify Video Tutorials](/convertify/tutorials)

[Embedded media](https://www.youtube.com/embed/1zwE3xSJeas)

**What this video covers**

This video shows how to use the Convertify Figma to Sketch plugin to export Figma designs into editable Sketch files. It walks through installing the plugin, converting pages of different sizes, and opening the resulting .Sketch files in Sketch with layers, text, images, vectors, and zoom position carried over.

**Things you'll need**

- Figma
- Sketch

**Steps**

1. Install Convertify from the Figma plugin directory by searching for “Convertify Figma to Sketch” and clicking install.
2. Open a Figma file, right-click, go to Plugins, and launch “Convertify Figma to Sketch.”
3. Check the selected page name and the estimated conversion time, then click “Convert to Sketch.”
4. Wait for the conversion and bundling process to finish, then save the generated Sketch file when prompted.
5. Open the saved .Sketch file in Sketch to confirm the design, layers, and editable text were preserved.
6. If Sketch shows “Missing Fonts,” use the Missing Fonts prompt to replace them and confirm the changes.
7. Use the plugin on larger files as needed; the video shows that conversion time varies with layer count and nested layers.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=1zwE3xSJeas)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-convert-figma-to-sketch-files-in-one-click-using-convertify)
- [Browse Convertify tutorial docs](https://docs.hypermatic.com/convertify/tutorials)

---

---
url: "/convertify/tutorials/export-figma-to-adobe-indesign.md"
description: "This tutorial shows how to use the Convertify Figma plugin to export Figma designs to Adobe InDesign as an IDML file with a links folder for image assets. It demonstrates exporting either an entire page or selected frames, then unzipping the package and opening the IDML file in Adobe InDesign."
---

# Export Figma to Adobe InDesign

> This tutorial shows how to use the Convertify Figma plugin to export Figma designs to Adobe InDesign as an IDML file with a links folder for image assets. It demonstrates exporting either an entire page or selected frames, then unzipping the package and opening the IDML file in Adobe InDesign.

[← Back to Convertify Video Tutorials](/convertify/tutorials)

[Embedded media](https://www.youtube.com/embed/9Ei5wHpsC14)

**What this video covers**

This tutorial shows how to use the Convertify Figma plugin to export Figma designs to Adobe InDesign as an IDML file with a links folder for image assets. It demonstrates exporting either an entire page or selected frames, then unzipping the package and opening the IDML file in Adobe InDesign.

**Things you'll need**

- A Figma file with frames to export
- Adobe InDesign

**Steps**

1. In Figma, open the Actions icon, search for Convertify under the Figma plugins tab, then run it or save it for later use from Saved plugins.
2. In Convertify, choose the export Figma to Adobe InDesign option under the export from Figma heading.
3. Choose export this page to export every frame on the page, or select the parent frames in Figma and choose export selected frames to export only those frames.
4. Click download zip and save the package.
5. Unzip the file to access the IDML file and the links folder.
6. Open the IDML file in Adobe InDesign and keep the links folder with it so the image assets stay linked correctly.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=9Ei5wHpsC14)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-figma-to-adobe-indesign-idml-files-with-one-click-using-convertify)
- [Browse Convertify tutorial docs](https://docs.hypermatic.com/convertify/tutorials)

---

---
url: "/convertify/tutorials/export-figma-to-adobe-photoshop.md"
description: "This tutorial shows how to use the Convertify Figma plugin to export Figma designs to Adobe Photoshop .psd files with one click. It demonstrates exporting an entire page or only selected frames, then opening the downloaded PSD in Adobe Photoshop to access the imported layers, images, icons, and text."
---

# Export Figma to Adobe Photoshop

> This tutorial shows how to use the Convertify Figma plugin to export Figma designs to Adobe Photoshop .psd files with one click. It demonstrates exporting an entire page or only selected frames, then opening the downloaded PSD in Adobe Photoshop to access the imported layers, images, icons, and text.

[← Back to Convertify Video Tutorials](/convertify/tutorials)

[Embedded media](https://www.youtube.com/embed/mmrIp3yB62g)

**What this video covers**

This tutorial shows how to use the Convertify Figma plugin to export Figma designs to Adobe Photoshop .psd files with one click. It demonstrates exporting an entire page or only selected frames, then opening the downloaded PSD in Adobe Photoshop to access the imported layers, images, icons, and text.

**Things you'll need**

- A Figma file with frames or artboards to export.
- The Convertify Figma plugin installed or saved in Figma.

**Steps**

1. Open your Figma file, run the Convertify plugin from the Figma plugins list, and choose the export Figma to Adobe Photoshop option.
2. Choose whether to export the entire page or only selected frames.
3. Click export this page or export selected frames to generate the PSD file.
4. When the converted PSD file is ready, click download PSD and save it to your computer.
5. Open the downloaded .psd file in Adobe Photoshop to view the exported artboards and layers.
6. Edit the imported layers in Photoshop as needed, noting that some text layers may need the correct font installed or may require vectorizing.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=mmrIp3yB62g)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-figma-to-adobe-photoshop-psd-files-with-one-click-using-convertify)
- [Browse Convertify tutorial docs](https://docs.hypermatic.com/convertify/tutorials)

---

---
url: "/convertify/tutorials/export-figma-to-canva-with-one-click.md"
description: "The video shows how to use the Convertify Figma plugin to export Figma designs to Canva. It covers exporting a whole page or selected frames as a PSD file, then importing that file into Canva so the layers remain editable, including an option to split large exports into separate PSD files."
---

# Export Figma to Canva with one click

> The video shows how to use the Convertify Figma plugin to export Figma designs to Canva. It covers exporting a whole page or selected frames as a PSD file, then importing that file into Canva so the layers remain editable, including an option to split large exports into separate PSD files.

[← Back to Convertify Video Tutorials](/convertify/tutorials)

[Embedded media](https://www.youtube.com/embed/bsucvuXSMxA)

**What this video covers**

The video shows how to use the Convertify Figma plugin to export Figma designs to Canva. It covers exporting a whole page or selected frames as a PSD file, then importing that file into Canva so the layers remain editable, including an option to split large exports into separate PSD files.

**Things you'll need**

- A Figma file with frames to export
- The Convertify Figma plugin
- A Canva account

**Steps**

1. Open your Figma file, search for Convertify in the Figma plugins tab, and run or save the plugin.
2. In Convertify, choose the export Figma to Canva option.
3. Export either the current page with export this page or specific frames with export selected frames.
4. When the PSD file is ready, click download PSD for Canva and save it to your computer.
5. Open canva.com, sign in, and drag the PSD file into the Canva homepage to upload it.
6. Open the uploaded file in Canva to edit the individual layers.
7. If the export is too large for Canva's PSD import limit, enable split exports into separate PSD files, export again, download the zip, and upload the PSD files from it to Canva.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=bsucvuXSMxA)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-figma-to-canva-with-one-click-using-convertify)
- [Browse Convertify tutorial docs](https://docs.hypermatic.com/convertify/tutorials)

---

---
url: "/convertify/tutorials/import-adobe-illustrator-to-figma.md"
description: "The video shows how to use the Convertify Figma plugin to import Adobe Illustrator (.ai) files into Figma with one click. It demonstrates both bitmap import and the beta option to import artboards as vector layers, with examples showing the difference in sharpness and editability."
---

# Import Adobe Illustrator to Figma

> The video shows how to use the Convertify Figma plugin to import Adobe Illustrator (.ai) files into Figma with one click. It demonstrates both bitmap import and the beta option to import artboards as vector layers, with examples showing the difference in sharpness and editability.

[← Back to Convertify Video Tutorials](/convertify/tutorials)

[Embedded media](https://www.youtube.com/embed/Xb4hBxewwEE)

**What this video covers**

The video shows how to use the Convertify Figma plugin to import Adobe Illustrator (.ai) files into Figma with one click. It demonstrates both bitmap import and the beta option to import artboards as vector layers, with examples showing the difference in sharpness and editability.

**Things you'll need**

- Figma
- Convertify Figma plugin
- An Adobe Illustrator (.ai) file

**Steps**

1. Open Figma, click the Resources icon, search for Convertify under the Plugins tab, and run it or save it to your plugin list.
2. Open Convertify from Saved Plugins, then change the mode from Export Figma to Sketch to Import Adobe Illustrator to Figma.
3. Optionally leave Import artboards as vector layers turned off to import an .ai file as a bitmap.
4. Drag and drop an Adobe Illustrator (.ai) file into the plugin drop zone to import it into Figma.
5. Turn on the BETA Import artboards as vector layers option and drop the .ai file again to import it as vector layers.
6. Inspect the imported layers in Figma, edit vector shapes and colors, and note that text in vector imports becomes individual vector shapes rather than editable text layers.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=Xb4hBxewwEE)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-import-adobe-illustrator-files-to-figma-with-one-click-using-convertify)
- [Browse Convertify tutorial docs](https://docs.hypermatic.com/convertify/tutorials)

---

---
url: "/convertify/tutorials/import-adobe-indesign-to-figma.md"
description: "This tutorial shows how to use the Convertify Figma plugin to import Adobe InDesign .idml files into Figma with one click. It explains how to package an IDML file with its links folder into a zip, then drag it into Convertify to bring InDesign pages in as editable Figma layers."
---

# Import Adobe InDesign to Figma

> This tutorial shows how to use the Convertify Figma plugin to import Adobe InDesign .idml files into Figma with one click. It explains how to package an IDML file with its links folder into a zip, then drag it into Convertify to bring InDesign pages in as editable Figma layers.

[← Back to Convertify Video Tutorials](/convertify/tutorials)

[Embedded media](https://www.youtube.com/embed/Nc0kEtedF70)

**What this video covers**

This tutorial shows how to use the Convertify Figma plugin to import Adobe InDesign .idml files into Figma with one click. It explains how to package an IDML file with its links folder into a zip, then drag it into Convertify to bring InDesign pages in as editable Figma layers.

**Things you'll need**

- A Figma file with the Convertify plugin available.
- Adobe InDesign files saved as IDML, along with the links folder.

**Steps**

1. Open a Figma file, find Convertify from the Actions icon or saved plugins, and run the plugin.
2. In Convertify, choose the import option for Adobe InDesign to Figma.
3. In Adobe InDesign, save the document as an IDML file, not an INDD file.
4. Zip the IDML file together with the links folder so image assets are included.
5. Drag and drop the zip file into the Convertify drop zone in Figma.
6. Review the imported pages and edit the resulting Figma layers, text, images, and grouped content.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=Nc0kEtedF70)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-import-adobe-indesign-idml-files-to-figma-with-one-click-using-convertify)
- [Browse Convertify tutorial docs](https://docs.hypermatic.com/convertify/tutorials)

---

---
url: "/convertify/tutorials/import-adobe-photoshop-to-figma.md"
description: "The video shows how to use the Convertify Figma plugin to import Adobe Photoshop .psd files into Figma with one click. It demonstrates selecting the import Adobe Photoshop to Figma option, dragging and dropping PSD files, and then editing the imported layers in Figma."
---

# Import Adobe Photoshop to Figma

> The video shows how to use the Convertify Figma plugin to import Adobe Photoshop .psd files into Figma with one click. It demonstrates selecting the import Adobe Photoshop to Figma option, dragging and dropping PSD files, and then editing the imported layers in Figma.

[← Back to Convertify Video Tutorials](/convertify/tutorials)

[Embedded media](https://www.youtube.com/embed/r5ITJXDOHiI)

**What this video covers**

The video shows how to use the Convertify Figma plugin to import Adobe Photoshop .psd files into Figma with one click. It demonstrates selecting the import Adobe Photoshop to Figma option, dragging and dropping PSD files, and then editing the imported layers in Figma.

**Things you'll need**

- A Figma file
- The Convertify Figma plugin
- An Adobe Photoshop .psd file

**Steps**

1. Open a Figma file and find Convertify from the actions icon or run it from saved plugins.
2. In Convertify, choose the import to Figma section and select import Adobe Photoshop to Figma.
3. Drag and drop a .psd file into the Convertify drop zone.
4. Wait for the plugin to load the PSD and create a new page in Figma.
5. Review the imported image layers, text layers, groups, and layer names, then edit them directly in Figma.
6. If needed, tweak small text alignment differences because Photoshop and Figma may render text differently.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=r5ITJXDOHiI)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-import-adobe-photoshop-psd-files-to-figma-with-one-click-using-convertify)
- [Browse Convertify tutorial docs](https://docs.hypermatic.com/convertify/tutorials)

---

---
url: "/convertify/tutorials/import-adobe-xd-to-figma.md"
description: "This video shows how to use the Convertify Figma plugin to import Adobe XD files into Figma. It demonstrates importing layers, text and color styles, prototype links, and components/instances, along with a few font and text import tips."
---

# Import Adobe XD to Figma

> This video shows how to use the Convertify Figma plugin to import Adobe XD files into Figma. It demonstrates importing layers, text and color styles, prototype links, and components/instances, along with a few font and text import tips.

[← Back to Convertify Video Tutorials](/convertify/tutorials)

[Embedded media](https://www.youtube.com/embed/9SrTAJnl68g)

**What this video covers**

This video shows how to use the Convertify Figma plugin to import Adobe XD files into Figma. It demonstrates importing layers, text and color styles, prototype links, and components/instances, along with a few font and text import tips.

**Things you'll need**

- Figma
- Convertify Figma plugin
- An Adobe XD file to import

**Steps**

1. Open a new Figma file, find Convertify from the Resources icon, and run the plugin or save it to Saved plugins.
2. In Convertify, choose "Import Adobe XD to Figma" from the select box.
3. Drag and drop an Adobe XD file into the dropzone to create a new page in the current Figma file.
4. Check the imported layers in Figma to confirm the structure, images, text, and groups were brought across.
5. If needed, enable the toggles to import color and text styles and import prototype links before importing.
6. Make sure the original Adobe XD fonts are installed on your computer, and use "auto height" for text layers if you run into text import issues.
7. Import components and instances from Adobe XD, then review them in the Figma Assets panel if desired.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=9SrTAJnl68g)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-convert-and-import-adobe-xd-to-figma-in-seconds-using-convertify)
- [Browse Convertify tutorial docs](https://docs.hypermatic.com/convertify/tutorials)

---

---
url: "/convertify/tutorials/import-an-mp4-video-to-animated-gif-in-figma-with-one-click.md"
description: "This tutorial shows how to use the Convertify Figma plugin to import an MP4 video as an animated GIF layer directly in Figma. It demonstrates saving and running the plugin, switching to the Import Video as GIF to Figma option, and dragging an MP4 file into the plugin window to create a playable GIF layer on the canvas."
---

# Import an MP4 video to animated GIF in Figma with one click

> This tutorial shows how to use the Convertify Figma plugin to import an MP4 video as an animated GIF layer directly in Figma. It demonstrates saving and running the plugin, switching to the Import Video as GIF to Figma option, and dragging an MP4 file into the plugin window to create a playable GIF layer on the canvas.

[← Back to Convertify Video Tutorials](/convertify/tutorials)

[Embedded media](https://www.youtube.com/embed/e_PLQv2RY8Y)

**What this video covers**

This tutorial shows how to use the Convertify Figma plugin to import an MP4 video as an animated GIF layer directly in Figma. It demonstrates saving and running the plugin, switching to the Import Video as GIF to Figma option, and dragging an MP4 file into the plugin window to create a playable GIF layer on the canvas.

**Things you'll need**

- Figma
- Convertify Figma plugin
- An MP4 video file

**Steps**

1. Open a new or existing Figma file, open the actions icon, search for Convertify under the plugins tab, and save or run it.
2. In Convertify, open the dropdown and switch from Export Figma to Sketch to Import to Figma, then choose Import Video as GIF to Figma.
3. Drag and drop an MP4 video file into the Convertify window.
4. Wait for the plugin to convert the video frame by frame into a GIF and insert it automatically into the Figma page.
5. Select the inserted layer and check the fill preview, where it appears as GIF with a play icon.
6. Use the GIF layer like a normal Figma layer, including resizing it or playing it back inside Figma.
7. Keep video clips short; the tutorial notes a maximum video length of 60 seconds, with shorter clips preferred.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=e_PLQv2RY8Y)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-convert-an-mp4-to-gif-in-figma-with-one-click-using-convertify)
- [Browse Convertify tutorial docs](https://docs.hypermatic.com/convertify/tutorials)

---

---
url: "/convertify/tutorials/import-google-docs-to-figma.md"
description: "The video shows how to use the Convertify Figma plugin to import Google Docs into Figma. It covers setting a Google Doc to “Anyone with the link,” pasting the URL into Convertify, and using options like “Hide Table Borders,” “Merge pages into single frame,” and “Remove Styles and Formatting.”"
---

# Import Google Docs to Figma

> The video shows how to use the Convertify Figma plugin to import Google Docs into Figma. It covers setting a Google Doc to “Anyone with the link,” pasting the URL into Convertify, and using options like “Hide Table Borders,” “Merge pages into single frame,” and “Remove Styles and Formatting.”

[← Back to Convertify Video Tutorials](/convertify/tutorials)

[Embedded media](https://www.youtube.com/embed/DuXOipNO3Nk)

**What this video covers**

The video shows how to use the Convertify Figma plugin to import Google Docs into Figma. It covers setting a Google Doc to “Anyone with the link,” pasting the URL into Convertify, and using options like “Hide Table Borders,” “Merge pages into single frame,” and “Remove Styles and Formatting.”

**Things you'll need**

- A Figma file
- A Google Docs document with sharing set to “Anyone with the link”

**Steps**

1. Open a new Figma file, find Convertify from Resources > Plugins, and run the plugin.
2. Change the plugin option from the default export mode to “Import Google Docs to Figma.”
3. In Google Docs, click “Share,” set “General access” to “Anyone with the link,” and copy the document link.
4. Paste the Google Docs URL into Convertify and click “Import Google Doc.”
5. Optionally enable “Hide Table Borders” if the imported doc uses a table for layout.
6. Use “Merge pages into single frame” to import multiple pages into one Figma frame instead of separate frames.
7. Use “Remove Styles and Formatting” to import a simplified version based on document structure rather than exact Google Docs styling.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=DuXOipNO3Nk)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-import-google-docs-to-figma-with-one-click-using-convertify)
- [Browse Convertify tutorial docs](https://docs.hypermatic.com/convertify/tutorials)

---

---
url: "/convertify/tutorials/import-google-sheets-to-figma.md"
description: "This tutorial shows how to use the Convertify Figma plugin to import a Google Sheets table directly into Figma with one click. It also demonstrates how to adjust the imported table’s columns, header styling, image size, and stroke settings after import."
---

# Import Google Sheets to Figma

> This tutorial shows how to use the Convertify Figma plugin to import a Google Sheets table directly into Figma with one click. It also demonstrates how to adjust the imported table’s columns, header styling, image size, and stroke settings after import.

[← Back to Convertify Video Tutorials](/convertify/tutorials)

[Embedded media](https://www.youtube.com/embed/cfzEPRPRfCg)

**What this video covers**

This tutorial shows how to use the Convertify Figma plugin to import a Google Sheets table directly into Figma with one click. It also demonstrates how to adjust the imported table’s columns, header styling, image size, and stroke settings after import.

**Things you'll need**

- A Figma file with the Convertify plugin available
- A Google Sheet with a simple table layout, using the first row as headers
- A shareable Google Sheets link set to Anyone with the link

**Steps**

1. Open the Resources icon in Figma, search for Convertify, and run the plugin or save it for later use.
2. In Convertify, switch from the default export option to Import to Figma and choose Import Google Sheet Table to Figma.
3. Open the Google Sheet, set General access to Anyone with the link, keep the permission as Viewer, and copy the share link.
4. Paste the Google Sheets URL into Convertify and click Import Google Sheet.
5. Wait for the table and any image URLs in the sheet to be downloaded and imported into Figma.
6. Edit the imported component in Figma by resizing columns, changing text styling, adjusting the image layer in the table header component, and turning table strokes on or off as needed.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=cfzEPRPRfCg)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-import-google-sheets-to-figma-with-one-click-using-convertify)
- [Browse Convertify tutorial docs](https://docs.hypermatic.com/convertify/tutorials)

---

---
url: "/convertify/tutorials/import-lottie-file-animations-to-figma-with-one-click.md"
description: "This tutorial shows how to import Lottie animations into Figma using the Convertify Figma plugin in one click. It demonstrates selecting the import Lottie as GIF to Figma option, then drag-and-dropping Lottie or JSON files so they become playable GIF fills in Figma designs and prototypes."
---

# Import Lottie file animations to Figma with one click

> This tutorial shows how to import Lottie animations into Figma using the Convertify Figma plugin in one click. It demonstrates selecting the import Lottie as GIF to Figma option, then drag-and-dropping Lottie or JSON files so they become playable GIF fills in Figma designs and prototypes.

[← Back to Convertify Video Tutorials](/convertify/tutorials)

[Embedded media](https://www.youtube.com/embed/-x-2psLbbVA)

**What this video covers**

This tutorial shows how to import Lottie animations into Figma using the Convertify Figma plugin in one click. It demonstrates selecting the import Lottie as GIF to Figma option, then drag-and-dropping Lottie or JSON files so they become playable GIF fills in Figma designs and prototypes.

**Things you'll need**

- A Figma file
- The Convertify Figma plugin
- A Lottie file or Lottie JSON file

**Steps**

1. Open a Figma file and run Convertify from the Figma plugins list.
2. In Convertify, change the default export option to import Lottie as GIF to Figma.
3. Download a Lottie file or Lottie JSON file from lottiefiles.com, or use your own Lottie file.
4. Drag and drop the Lottie or JSON file into the plugin’s drop zone.
5. Wait for Convertify to load and optimize the animation as a GIF fill in Figma.
6. Preview the imported animation inline in Figma or play it in a prototype.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=-x-2psLbbVA)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-import-lottie-file-animations-to-figma-with-one-click-using-convertify)
- [Browse Convertify tutorial docs](https://docs.hypermatic.com/convertify/tutorials)

---

---
url: "/convertify/tutorials/import-optimized-svg-to-figma.md"
description: "This video shows how to use the Convertify Figma plugin to import pre-optimized SVG files into Figma. It demonstrates that the imported SVGs keep the same visual appearance while using fewer groups and simplified vector layers for easier editing."
---

# Import optimized SVG to Figma

> This video shows how to use the Convertify Figma plugin to import pre-optimized SVG files into Figma. It demonstrates that the imported SVGs keep the same visual appearance while using fewer groups and simplified vector layers for easier editing.

[← Back to Convertify Video Tutorials](/convertify/tutorials)

[Embedded media](https://www.youtube.com/embed/b-ENDkyz4ro)

**What this video covers**

This video shows how to use the Convertify Figma plugin to import pre-optimized SVG files into Figma. It demonstrates that the imported SVGs keep the same visual appearance while using fewer groups and simplified vector layers for easier editing.

**Things you'll need**

- Figma
- Convertify Figma plugin
- SVG files

**Steps**

1. Open Figma and go to the Resources tab.
2. Search for Convertify under the Plugins tab and save it to your Figma plugins list.
3. On the canvas, right-click and go to Plugins > Saved Plugins > Convertify to run the plugin.
4. Open the plugin dropdown and choose Import to Figma > Import Optimized SVG to Figma.
5. Drag and drop an SVG file into the plugin to import an optimized version onto the page.
6. Compare the optimized SVG with a normal SVG import to see the reduced groups and vector layers.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=b-ENDkyz4ro)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-import-optimized-svg-files-to-figma-with-one-click-using-convertify)
- [Browse Convertify tutorial docs](https://docs.hypermatic.com/convertify/tutorials)

---

---
url: "/convertify/tutorials/import-pdf-to-figma.md"
description: "This video shows how to use the Convertify Figma plugin to import PDF files into Figma with one click. It compares importing PDFs as flat images versus vector layers, and explains the tradeoffs between visual accuracy, speed, and editability."
---

# Import PDF to Figma

> This video shows how to use the Convertify Figma plugin to import PDF files into Figma with one click. It compares importing PDFs as flat images versus vector layers, and explains the tradeoffs between visual accuracy, speed, and editability.

[← Back to Convertify Video Tutorials](/convertify/tutorials)

[Embedded media](https://www.youtube.com/embed/7BEJzVi8yeE)

**What this video covers**

This video shows how to use the Convertify Figma plugin to import PDF files into Figma with one click. It compares importing PDFs as flat images versus vector layers, and explains the tradeoffs between visual accuracy, speed, and editability.

**Things you'll need**

- Figma
- The Convertify Figma plugin
- A PDF file to import

**Steps**

1. Open Figma, click the Resources icon, search for Convertify under the Plugins tab, and run it or save it as a Saved Plugin.
2. In Convertify, change the default mode from "Export Figma to Sketch" to "Import PDF to Figma".
3. Drag and drop a PDF file into the import box to bring the PDF pages into Figma as images by default.
4. If you want sharper, editable output, enable **Import Pages as Vector Layers**. Leave **Import Text as Editable Layers** enabled to convert supported PDF text into native Figma text layers, then drag the PDF in again.
5. Review the imported content. Text stored as text in the PDF will be editable, while text stored as vector outlines or scanned images will remain vectors or images. Fonts that are unavailable in Figma may be substituted.
6. Use the imported pages or layers in Figma, and manually adjust any masked or clipped content if needed.
7. Repeat the same process for other PDF types, such as illustration PDFs or multi-page portfolio PDFs.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=7BEJzVi8yeE)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-import-pdf-files-to-figma-with-one-click-using-convertify)
- [Browse Convertify tutorial docs](https://docs.hypermatic.com/convertify/tutorials)

---

---
url: "/copydoc/export/comic.md"
description: "The **Export Figma Frames** feature in CopyDoc works by letting you export frames on your current Figma page to other popular document formats."
---

# Export Comic/Manga

> The **Export Figma Frames** feature in CopyDoc works by letting you export frames on your current Figma page to other popular document formats.

[Video](/assets/videos/copydoc/export/export-frames-pdf.mp4)

### Selecting your Figma frames to include

To get started with this feature, click on the **Export Frames** button in the main CopyDoc plugin screen.

You'll now be able to select the frames from your current Figma page that you would like to export to another format.

CopyDoc will load all of your **parent frames** from your current Figma page into the plugin as a list of frames that you can use to choose the frames you would like to include; you can click on any frame's checkbox or image thumbnail to select it (clicking it again will deselect it).

> **Tip:** **Parent frames required**. To export frames from CopyDoc, your Figma page must contain at least one **Parent Frame**; this means, any "frames" that are located _directly_ underneath your page.

### Selecting your document export format

After you've selected the Figma frames you would like to export, you can select the **export format** using the dropdown box options.

## Export Comic/Manga

Selecting the **Comic/Manga** option lets you export your Figma frames to a CBR file that can be viewed with any Comic Book or Manga reading apps. You can configure the following settings for Comic/Manga exports:

### Include Design References

Enabling the **Include Design References** option will include `.png` images for each FIgma frame that you've selected to export. These can be used as a visual design reference alongside your text exported to `.cbr` files.

### Exporting and downloading your document

When you're happy with your selected frames and the options for your chosen export format, you can click on the **Export** button to generate your file.

After clicking the **Export** button, you'll see a confirmation screen letting you know that your file is ready to download. To download the file from Figma to your computer, you can click the **Download** button in the CopyDoc plugin.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

---

---
url: "/copydoc/export/docx.md"
description: "The **Export Figma Frames** feature in CopyDoc works by letting you export frames on your current Figma page to other popular document formats."
---

# Export Microsoft Word

> The **Export Figma Frames** feature in CopyDoc works by letting you export frames on your current Figma page to other popular document formats.

[Video](/assets/videos/copydoc/export/export-frames-pdf.mp4)

### Selecting your Figma frames to include

To get started with this feature, click on the **Export Frames** button in the main CopyDoc plugin screen.

You'll now be able to select the frames from your current Figma page that you would like to export to another format.

CopyDoc will load all of your **parent frames** from your current Figma page into the plugin as a list of frames that you can use to choose the frames you would like to include; you can click on any frame's checkbox or image thumbnail to select it (clicking it again will deselect it).

> **Tip:** **Parent frames required**. To export frames from CopyDoc, your Figma page must contain at least one **Parent Frame**; this means, any "frames" that are located _directly_ underneath your page.

### Selecting your document export format

After you've selected the Figma frames you would like to export, you can select the **export format** using the dropdown box options.

## Export Microsoft Word

Selecting the **Microsoft Word** option lets you export your Figma frames (which are treated as "pages") to a DOCX file that can be opened and edited in the Microsoft Word desktop app. You can configure the following settings for Microsoft Word exports:

### Export DOCX File Per Frame

Enabling the **Export DOCX File Per Frame** toggle will ensure each Figma frame you've selected will be exported as an individual `.docx` files, rather than exporting all of the selected frames being merged together into a single `.docx` file.

> **Warning:** DOCX Exports aren't optimised for Google Docs or Office 365 Web**. If you're exporting your Figma designs to `.docx`, Open them in Microsoft Word, as some features won't be supported in Google Docs.

### Exporting and downloading your document

When you're happy with your selected frames and the options for your chosen export format, you can click on the **Export** button to generate your file.

After clicking the **Export** button, you'll see a confirmation screen letting you know that your file is ready to download. To download the file from Figma to your computer, you can click the **Download** button in the CopyDoc plugin.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

---

---
url: "/copydoc/export/ebook.md"
description: "The **Export Figma Frames** feature in CopyDoc works by letting you export frames on your current Figma page to other popular document formats."
---

# Export E-Book

> The **Export Figma Frames** feature in CopyDoc works by letting you export frames on your current Figma page to other popular document formats.

[Video](/assets/videos/copydoc/export/export-frames-pdf.mp4)

### Selecting your Figma frames to include

To get started with this feature, click on the **Export Frames** button in the main CopyDoc plugin screen.

You'll now be able to select the frames from your current Figma page that you would like to export to another format.

CopyDoc will load all of your **parent frames** from your current Figma page into the plugin as a list of frames that you can use to choose the frames you would like to include; you can click on any frame's checkbox or image thumbnail to select it (clicking it again will deselect it).

> **Tip:** **Parent frames required**. To export frames from CopyDoc, your Figma page must contain at least one **Parent Frame**; this means, any "frames" that are located _directly_ underneath your page.

### Selecting your document export format

After you've selected the Figma frames you would like to export, you can select the **export format** using the dropdown box options.

## Export E-Book

Selecting the **E-Book** option lets you export your Figma frames to a EPUB file that can be viewed with any e-book reader software or app. You can configure the following settings for E-Book exports:

### Include Design References

Enabling the **Include Design References** option will include `.png` images for each FIgma frame that you've selected to export. These can be used as a visual design reference alongside your text exported to `.epub` files.

### Exporting and downloading your document

When you're happy with your selected frames and the options for your chosen export format, you can click on the **Export** button to generate your file.

After clicking the **Export** button, you'll see a confirmation screen letting you know that your file is ready to download. To download the file from Figma to your computer, you can click the **Download** button in the CopyDoc plugin.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

---

---
url: "/copydoc/export/excel.md"
description: "The **Export Figma Frames** feature in CopyDoc works by letting you export frames on your current Figma page to other popular document formats."
---

# Export Excel

> The **Export Figma Frames** feature in CopyDoc works by letting you export frames on your current Figma page to other popular document formats.

[Video](/assets/videos/copydoc/export/export-frames-pdf.mp4)

### Selecting your Figma frames to include

To get started with this feature, click on the **Export Frames** button in the main CopyDoc plugin screen.

You'll now be able to select the frames from your current Figma page that you would like to export to another format.

CopyDoc will load all of your **parent frames** from your current Figma page into the plugin as a list of frames that you can use to choose the frames you would like to include; you can click on any frame's checkbox or image thumbnail to select it (clicking it again will deselect it).

> **Tip:** **Parent frames required**. To export frames from CopyDoc, your Figma page must contain at least one **Parent Frame**; this means, any "frames" that are located _directly_ underneath your page.

### Selecting your document export format

After you've selected the Figma frames you would like to export, you can select the **export format** using the dropdown box options.

## Export Microsoft Excel

Selecting the **Microsoft Excel** option lets you export the text content of your Figma frames to a XLSX file that can be opened and edited in Microsoft Excel (or another spreadsheet app that supports `.xlsx` files). You can configure the following settings for Microsoft Excel exports:

### Export XLSX File Per Frame

Enabling the **Export XLSX File Per Frame** toggle will ensure each Figma frame you've selected will be exported as an individual `.xlsx` files, rather than exporting all of the selected frames being merged together into a single `.xlsx` file (with each Figma frame as a different "tab" in the Excel file).

### Include Design References

Enabling the **Include Design References** option will include `.png` images for each FIgma frame that you've selected to export. These can be used as a visual design reference alongside your text exported to `.xlsx` files.

### Exporting and downloading your document

When you're happy with your selected frames and the options for your chosen export format, you can click on the **Export** button to generate your file.

After clicking the **Export** button, you'll see a confirmation screen letting you know that your file is ready to download. To download the file from Figma to your computer, you can click the **Download** button in the CopyDoc plugin.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

---

---
url: "/copydoc/export/figma-comments.md"
description: "The **Export Figma Comments** feature in CopyDoc lets you export all of the comments from the current Figma file to a `.csv` and `.json` file (with optional images for design references) that you can download to your computer."
---

# Exporting Figma comments

> The **Export Figma Comments** feature in CopyDoc lets you export all of the comments from the current Figma file to a `.csv` and `.json` file (with optional images for design references) that you can download to your computer.

### Video Tutorial: Export comments from Figma files

This video walks through how to export your comments from your Figma files to CSV/JSON files (with image references) using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/GXg0q8GO_Ik)

## Generating your Figma personal access token

[Video](/assets/videos/copydoc/export/create-figma-token.mp4)

To be able to export comments from the CopyDoc plugin, you need to [generate a personal access token](https://help.figma.com/hc/en-us/articles/8085703771159-Manage-personal-access-tokens) in your Figma account:

1. Go to your **Settings** panel (in the dropdown menu under your Figma account icon).
2. Scroll down the **Account** tab in the settings popup to the **Personal access tokens** section.
3. Click **Generate new token**.
4. Set a **Token name** (for example, _CopyDoc Figma Plugin_).
5. Set the **Expiration** dropdown option to **90 Days**.
6. Ensure the the **File content** dropdown option is set to **Read-only**.
7. Ensure the the **Comments** dropdown option is set to **Write**.
8. All of the other dropdown options can be left as **No access**.
9. Click the **Generate token** button.
10. Click the **Copy this token** (this is your only chance to do so).

## Exporting your Figma comments from the CopyDoc plugin

[Video](/assets/videos/copydoc/export/download-figma-comments.mp4)

To get started with this feature, click on the **Export Figma Comments** button in the main CopyDoc plugin screen, then follow the steps below:

### Adding your Figma personal token

To authenticate the request for reading comments in your Figma file, you will need to manually add a personal Figma access token by following the steps in the [Generating your Figma personal access token](#generating-your-figma-personal-access-token) section above.

> **Note:** **Your token will automatically be saved after successful export**. After you've successfully exported comments via CopyDoc, your Figma personal access token will automatically be saved (and pre-populated in the input field) for future use in the plugin, across other Figma projects.

### Adding your Figma file URL

You will need to manually add your Figma page URL by clicking the **Share** button in the Figma header, then clicking **Copy link** in the pop-up window, and finally pasting the copied URL into the **Figma Page URL (Required)** input field in the CopyDoc plugin settings.

### Toggling design references option

Enabling the **Include Design References** option will include `.png` images (containing numbered/positioned pins per comment thread) for each frame that contains at least one comment. These can be used as a visual reference alongside the text comments exported to `.csv` and `.json` files.

### Fetching and exporting comments

Once you've added your valid **Figma Page URL** and **Figma Personal Access Token**, you can click the **Export Comments to CSV/JSON** button, which will scan your Figma file for any comments and generate a CSV and JSON file (along with image references, if the **Include Design References** option was enabled).

After CopyDoc has finished exporting your comments, you'll be shown a confirmation message; you can download your `.zip` file containing your exported comments by clicking the **Download Comments** button.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

### Opening .zip file

After you've downloaded your `.zip` file from Figma to your computer, you can open your file explorer to the directory where it was saved. **Double clicking** on the exported `.zip` file will unzip the contents and let you use your comments however you like.

---

---
url: "/copydoc/export/pdf.md"
description: "The **Export Figma Frames** feature in CopyDoc works by letting you export frames on your current Figma page to other popular document formats."
---

# Export PDF

> The **Export Figma Frames** feature in CopyDoc works by letting you export frames on your current Figma page to other popular document formats.

[Video](/assets/videos/copydoc/export/export-frames-pdf.mp4)

### Selecting your Figma frames to include

To get started with this feature, click on the **Export Frames** button in the main CopyDoc plugin screen.

You'll now be able to select the frames from your current Figma page that you would like to export to another format.

CopyDoc will load all of your **parent frames** from your current Figma page into the plugin as a list of frames that you can use to choose the frames you would like to include; you can click on any frame's checkbox or image thumbnail to select it (clicking it again will deselect it).

> **Tip:** **Parent frames required**. To export frames from CopyDoc, your Figma page must contain at least one **Parent Frame**; this means, any "frames" that are located _directly_ underneath your page.

### Selecting your document export format

After you've selected the Figma frames you would like to export, you can select the **export format** using the dropdown box options.

## Export PDF

Selecting the **PDF** option lets you export your Figma frames (which are treated as "pages") to a PDF document. You can configure the following settings for PDF exports:

### Export PDF File Per Frame

Enabling the **Export PDF File Per Frame** toggle will ensure each Figma frame you've selected will be exported as an individual `.pdf` files, rather than exporting all of the selected frames being merged together into a single `.pdf` file.

### Vector Gradient Fix

If you're exporting Figma frames to `.pdf` that contain gradient fills inside any vector paths, you can enable the **Vector Gradient Fix** setting to ensure the gradient is rendered as expected. If you don't need this option, there's no need to enable it.

### DPI

You can select the DPI (dots per inch) setting for your PDF exports, which will influence the file size and quality of your exported `.pdf` files. The higher the DPI, the better the quality (with higher file sizes) - the lower the DPI, the less quality (with lower file sizes).

The available DPI options are:

- **72dpi** Low Quality
- **150dpi** Good Quality
- **300dpi** Best Quality

> **Note:** **PDF Export Browser Support**. Due to browser compatibility issues, exporting **PDF** files from CopyDoc _isn't_ supported in **Safari**. Please run the plugin in another browser (like [Chrome](https://www.google.com/intl/en_us/chrome/)) or the [Figma Desktop App](https://www.figma.com/downloads/) instead.

### Exporting and downloading your document

When you're happy with your selected frames and the options for your chosen export format, you can click on the **Export** button to generate your file.

After clicking the **Export** button, you'll see a confirmation screen letting you know that your file is ready to download. To download the file from Figma to your computer, you can click the **Download** button in the CopyDoc plugin.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

---

---
url: "/copydoc/export/plain-text.md"
description: "The **Export Figma Frames** feature in CopyDoc works by letting you export frames on your current Figma page to other popular document formats."
---

# Export Plain Text

> The **Export Figma Frames** feature in CopyDoc works by letting you export frames on your current Figma page to other popular document formats.

[Video](/assets/videos/copydoc/export/export-frames-pdf.mp4)

### Selecting your Figma frames to include

To get started with this feature, click on the **Export Frames** button in the main CopyDoc plugin screen.

You'll now be able to select the frames from your current Figma page that you would like to export to another format.

CopyDoc will load all of your **parent frames** from your current Figma page into the plugin as a list of frames that you can use to choose the frames you would like to include; you can click on any frame's checkbox or image thumbnail to select it (clicking it again will deselect it).

> **Tip:** **Parent frames required**. To export frames from CopyDoc, your Figma page must contain at least one **Parent Frame**; this means, any "frames" that are located _directly_ underneath your page.

### Selecting your document export format

After you've selected the Figma frames you would like to export, you can select the **export format** using the dropdown box options.

## Export Plain Text

Selecting the **Plain Text** option lets you export the text content of your Figma frames to a TXT file that can be opened and edited in any text editing software. You can configure the following settings for Plain Text exports:

### Include Design References

Enabling the **Include Design References** option will include `.png` images for each FIgma frame that you've selected to export. These can be used as a visual design reference alongside your text exported to `.txt` files.

### Exporting and downloading your document

When you're happy with your selected frames and the options for your chosen export format, you can click on the **Export** button to generate your file.

After clicking the **Export** button, you'll see a confirmation screen letting you know that your file is ready to download. To download the file from Figma to your computer, you can click the **Download** button in the CopyDoc plugin.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

---

---
url: "/copydoc/export/table.md"
description: "The **Export Figma Frames** feature in CopyDoc works by letting you export frames on your current Figma page to other popular document formats."
---

# Export HTML Table

> The **Export Figma Frames** feature in CopyDoc works by letting you export frames on your current Figma page to other popular document formats.

[Video](/assets/videos/copydoc/export/export-frames-pdf.mp4)

### Selecting your Figma frames to include

To get started with this feature, click on the **Export Frames** button in the main CopyDoc plugin screen.

You'll now be able to select the frames from your current Figma page that you would like to export to another format.

CopyDoc will load all of your **parent frames** from your current Figma page into the plugin as a list of frames that you can use to choose the frames you would like to include; you can click on any frame's checkbox or image thumbnail to select it (clicking it again will deselect it).

> **Tip:** **Parent frames required**. To export frames from CopyDoc, your Figma page must contain at least one **Parent Frame**; this means, any "frames" that are located _directly_ underneath your page.

### Selecting your document export format

After you've selected the Figma frames you would like to export, you can select the **export format** using the dropdown box options.

## Export HTML Table

Selecting the **HTML Table** option lets you export the text content of your Figma frames to a HTML file that can be opened in a web browser, or edited in any text/code editing software. You can configure the following settings for HTML Table exports:

### Include Design References

Enabling the **Include Design References** option will include `.png` images for each FIgma frame that you've selected to export. These can be used as a visual design reference alongside your text exported to `.html` files.

### Exporting and downloading your document

When you're happy with your selected frames and the options for your chosen export format, you can click on the **Export** button to generate your file.

After clicking the **Export** button, you'll see a confirmation screen letting you know that your file is ready to download. To download the file from Figma to your computer, you can click the **Download** button in the CopyDoc plugin.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

---

---
url: "/copydoc/faq/plans.md"
description: "To get unlimited usage of all of the CopyDoc Pro features, you will need to purchase a license from the [Hypermatic website](https://hypermatic.com/copydoc#pro)."
---

# CopyDoc Free vs CopyDoc Pro

> To get unlimited usage of all of the CopyDoc Pro features, you will need to purchase a license from the [Hypermatic website](https://hypermatic.com/copydoc#pro).

CopyDoc includes 10 free trials of the _Pro_ version. Once these trials have been used up, the Figma plugin will revert to their _Free_ version, which will have limited functionality.

  - **CopyDoc Free**: ### Find & Replace Unlimited Usage       ### Text Exports Try during 10 Pro Trials       ### Text Imports Try during 10 Pro Trials       ### Content Library Try during 10 Pro Trials       ### Spreadsheet Sync Try during 10 Pro Trials       ### Text Localization Try during 10 Pro Trials       ### Spell Checking Try during 10 Pro Trials
  - **CopyDoc Pro**: ### Find & Replace Unlimited Usage       ### Text Exports Unlimited Usage       ### Text Imports Unlimited Usage       ### Content Library Unlimited Usage       ### Spreadsheet Sync Unlimited Usage       ### Text Localization Unlimited Usage       ### Spell Checking Unlimited Usage

---

---
url: "/copydoc/faq/security.md"
description: "CopyDoc runs as an official plugin inside of Figma's own app, which are reviewed and approved by the Figma team."
---

# CopyDoc Security

> CopyDoc runs as an official plugin inside of Figma's own app, which are reviewed and approved by the Figma team.

The Figma plugin is run directly from Figma's own servers, and runs inside of a your Figma file, which means that it inherits all of the [security](https://www.figma.com/security/) and infrastructure of the Figma platform, which exceed industry standards for data protection and security:

- SOC 2 Type 2
- SOC 3
- Cloud Security Alliance (CSA) STAR: Level 1
- ISO/IEC 27001:2013
- ISO/IEC 27018:2019
- EU Cloud Code of Conduct (COC): Level 2

There's **no additional software** that needs to be installed to use the Figma plugin, as Figma plugins run as a built-in part of Figma's own native functionality, and all Figma plugins Accessibile and can be instantly run from inside any Figma file, or via the official [Figma Community](https://www.figma.com/community) ecosystem inside of the Figma app.

If your organization is already approved to use Figma, then you _already have access_ to Figma plugins.

## How CopyDoc works

The [CopyDoc Figma plugin](https://www.figma.com/community/plugin/900893606648879767) helps users Export, import, localize and update text in Figma.

CopyDoc is designed to be privacy and security focused, with core import/export workflows handled locally inside the Figma plugin.

All standard file imports/exports are handled client-side directly in the plugin using the [Figma Plugins API](https://www.figma.com/plugin-docs/), and are _never_ uploaded, processed or stored on Hypermatic servers or any CopyDoc cloud backend.

## What CopyDoc does and doesn't do

CopyDoc uses the [Figma Plugins API](https://www.figma.com/plugin-docs/) to help you export/import, localize, sync, spellcheck and find/replace text content inside of your Figma file.

For normal local file import/export workflows, it doesn't rely on any CopyDoc backend to process your design content.

### CopyDoc does

- Allow users to optionally export text content from their Figma file to an XLSX, JSON, CSV or XLIFF file, which is then saved _directly_ to their computer.
- Allow users to optionally drag/drop XLSX, CSV, JSON or XLIFF files from the user's computer to re-import updated content to Figma.
- Allow users to optionally export Figma frames from their Figma file to a PDF, DOCX, CSV or XLSX file, which is then saved _directly_ to their computer.
- Allow users to spell check their text content inside of the Figma file.
- Allow users to optionally sync content from a Google Sheets URL, which imports content _directly_ via the official Google Sheets API.
- Allow users to optionally localize selected text with ChatGPT, Claude or Gemini by explicitly enabling those features and providing their own API key.
- Allow users to find and replace text inside of the Figma file.
- Allow users to optionally export Figma comments from their Figma file to an XLSX file via the [Figma REST API](https://www.figma.com/developers/api), which is then saved _directly_ to their computer.
- Allow users to optionally use manual AI prompt workflows, where CopyDoc generates a prompt locally and the user manually pastes the CSV result back into the plugin.

### CopyDoc does not

- Upload _any_ design data or content from your Figma file to Hypermatic servers for normal import/export processing.
- Store _any_ design data or content from your Figma file on Hypermatic servers.
- Use _any_ CopyDoc cloud backend to process your design data or content for standard local import/export workflows.
- Collect or store _any_ personal information (Figma plugins *cannot* access any private information about Figma projects, Figma teams or Figma users).

## How Figma plugins work

Figma plugins are written in HTML/CSS/Javascript, and are run in a tightly controlled [sandbox environment](https://www.figma.com/plugin-docs/how-plugins-run/) inside of the main Figma application.

Figma plugins can only do whatever Figma allows them to do inside the permissions of the [Figma Plugins API](https://www.figma.com/plugin-docs/), and importantly, **plugins don't have any access to personal information** about the Figma user running the plugin.

## What Figma plugins can and can't do

As per the article on [Figma plugin security](https://www.figma.com/blog/how-we-built-the-figma-plugin-system/), there are a limited number of things that Figma plugins can do, and many more things that they can't do:

### Figma plugins can

- Only be run by an explicit user action
- Show UI in a single plugin-specific dialog
- Read any data in your Figma document (for example, a “find layer by name” plugin)
- Modify any data in your Figma document (for example, a “rename selected layers” plugin)
- Communicate with any server over the internet (for example, an “import from service X” plugin)

### Figma plugins _cannot_

- Run by themselves
- Get information about the project or team that owns the file
- Access anything when they aren’t running
- Access data from any files other than the file they were run in
- Change Figma’s UI outside of the plugin UI dialog

> **Tip:** Figma account administrators at your company can [configure an allowlist of plugins](https://help.figma.com/hc/en-us/articles/4404228724759-Manage-plugins-and-widgets-in-an-organization) that are allowed inside the organization. This can be used to prevent untrusted Figma plugins from being run in any file in that organization.

## Optional external connections

Some CopyDoc features are optional and only connect to third-party services when you explicitly choose to use them.

- **AI localization APIs**: if you choose ChatGPT, Claude or Gemini localization, CopyDoc sends only the selected text and localization prompt directly to that provider using your own API key. Those requests are not stored in your Figma file, and your API key is stored per Figma user on your device rather than in the file itself.
- **Manual AI prompt workflows**: if you choose a manual ChatGPT, Claude or Gemini prompt workflow, CopyDoc generates the prompt locally, and you decide what to paste into the external AI app yourself.
- **Google Sheets**: if you choose to sync from a public Google Sheet, CopyDoc reads that sheet directly so it can import the content into Figma.
- **Airtable**: if you choose Airtable integration, CopyDoc reads or writes the content needed for that Airtable workflow.
- **Figma comments export**: if you choose to export comments, CopyDoc uses your Figma Personal Access Token to read comments from the [Figma REST API](https://www.figma.com/developers/api).

These optional integrations are user-initiated and are not required for the plugin's standard local export/import workflows.

---

---
url: "/copydoc/faq/troubleshooting.md"
description: "Troubleshooting guide for CopyDoc exports, imports, and font or spreadsheet issues."
---

# Troubleshooting CopyDoc

> Troubleshooting guide for CopyDoc exports, imports, and font or spreadsheet issues.

### Microsoft Word line height exceeding the height of a text layer

If your text layer has a large line height (that exceeds the height of the text layer itself), your text will be pushed down in the Microsoft Word (.docx) export.

### Google Sheets converting 'ID' column to numbers

When importing a CSV file into Google Sheets, please ensure you _uncheck_ the **Convert text to numbers, dates and formulas** checkbox, otherwise your Figma IDs will be modified and messed up, which means they won't be able to be imported properly back into Figma.

### Any Figma layers with a missing font can't be replaced, updated or spell checked

If your Figma text layer contains a [missing font](https://help.figma.com/hc/en-us/articles/360039956994-Manage-missing-fonts), the plugin won't be able to update it. Please ensure any text layers you would like to update in any way using the CopyDoc plugin have their missing fonts resolved.

### Error when trying to export Figma comments

If you're using a valid Figma API token in a Figma file that has comments, but you're seeing an error message saying that the token is invalid, your ISP is likely blocking the API request to fetch Figma comments; so you will likely need to use a [VPN](https://protonvpn.com/free-vpn/) to resolve the issue.

### DOCX file exports aren't optimized for Google Docs

If you're exporting your Figma designs to .docx, Open them in Microsoft Word, as some features won't be supported in Google Docs.

### Google Sheet URL not loading

When connecting a spreadsheet to CopyDoc, you must use a native Google Sheets document, not an Excel (.xlsx) file uploaded to Google Drive.

The Difference:

- Native Google Sheets - Created directly in Google Sheets
- Google Drive XLSX - Excel files uploaded to or created in Google Drive

While both look nearly identical in the Google interface, only native Google Sheets work with CopyDoc's integration.

If you have an XLSX file in Google Drive that you want to use with CopyDoc:

1. Open the XLSX file in Google Drive
2. Click **File** → **Save as Google Sheet**
3. In the new Google Sheets document, click **Share**
4. Set permissions to **Anyone with the link can view**
5. Copy the new URL and paste it into CopyDoc

**Tip**: You can identify an XLSX file by the small "XLSX" badge indicator in the Google Drive interface.

### Some elements are missing and turning into purple rectangles when exporting PDF from Figma

This is a known [Figma bug](https://forum.figma.com/t/pdf-export-consistently-missing-elements/3547) that can show purple boxes instead of images. CopyDoc uses Figma's native PDF export, so the same problem can appear in CopyDoc exports.

One suggestion that can help is to ensure the problematic layer is actually nested _inside_ of the main Figma frame, as sometimes a Figma layer is "visually" positioned on top of your frame on the canvas, but the layer itself is still sitting outside of the frame; this seems to be related to why the problem occurs sometimes.

### Slow PDF exports

If your PDF exports are going really slow, it's likely due to having high-res/large image fills in some of the content, which causes Figma to take a much longer time generating PDFs. To help with this issue, you can use the ["Downsizer" feature](/tinyimage/downsize) in [TinyImage](https://www.figma.com/community/plugin/789009980664807964/TinyImage-Compressor) to shrink down your image fills to match their layer size, which will shrink their file size and ensure they load much faster in your Figma file. Once you've finished downsizing the image fills in your Figma page, re-running CopyDoc and exporting your PDF again via the plugin should be much faster.

### Editing PDFs in Adobe Acrobat shows dotted lines

This can be resolved by un-checking the "Show bounding boxes" toggle in the Acrobat Acrobat app sidebar while editing your PDF. Showing the dotted bounding box lines is something that [Adobe enables by default](https://archive.md/Uhdbk) while enter "Edit" mode when you have a PDF open in the app, but turning off the "Show bounding boxes" toggle will turn hide those from being displayed with one click.

### Opening CSV files with unicode characters in Microsoft Excel

Microsoft Excel requires you to use the built-in [Import Wizard](https://community.jaspersoft.com/wiki/how-import-csv-document-cyrillic-symbols-excel-and-correctly-render-them-program) to import the CSV if your text contains unicode characters (for example, if your content is in Polish or Russian or has certain accented characters). Note that other spreadsheet software like Apple Keynote and Google Sheets doesn't require you to do this, and you can open the CSV file normally in those apps. To do this in Microsoft Excel, you can create a brand new Excel file, click on the **Data** tab in the Excel header, select the **From Text** button, browse for the exported `.csv` that CopyDoc exported, then select **UTF-8** as the **file origin**; then confirm to import the file into Excel as expected. To save the edited file, selecting the **CSV UTF-8 (Comma-delimited) (*.csv)** option should preserve the unicode characters (instead of swapping them out as question marks with a normal CSV file).

### Blank file extensions using Figma desktop app on Windows

There's a known issue with the Figma desktop app (only on Windows), which also happens for normal file exports from Figma. When you go to save your file, you may see an "all files" label. If you ignore this and continue by clicking "Save", it should still save the file with the correct extension and allow you to open it as expected after it has downloaded to your computer. If it still saves the file with a blank extension, you should be able to rename the file to manually append the correct extension to the file name.

### Pixelated image exports

If you're exporting design references or exporting a PDF/DOCX while the image assets in Figma are still progressively loading, they may be exported looking pixelated, as the image wasn't fully loaded in the Figma file before it was exported. To resolve this, please ensure that all of the images have loaded 100% and are looking sharp inside the Figma file before re-exporting with the CopyDoc plugin. To help further with solving this issue, you can use the ["Downsizer" feature](/tinyimage/downsize) to shrink down your image fills to match their layer size, which will shrink their file size and ensure they load much faster in your Figma file.

### VPN may be required in China

Note, if you're in China, the accounts server _may_ be blocked by "The Great Firewall of China". If you're seeing an activation error, despite using a valid key, you will likely need to use a [VPN](https://protonvpn.com/free-vpn/) to resolve the issue.

### 'An error occurred while loading the plugin environment'

This may happen in the Figma desktop app if [the Use Developer VM](https://www.figma.com/plugin-docs/debugging/#developer-vm) debug setting in Figma is enabled by mistake; you can make sure it's turned off by **right-clicking** anywhere on your Figma canvas, hovering over **Plugins**, then hovering over **Development**, and making sure that the **Use Developer VM** is _unchecked_; after it is unchecked (and does _not_ have a tick icon next to it), re-running the Figma plugin should work as expected.

## More CopyDoc help

- Follow the [CopyDoc quick-start guide](/copydoc/overview/quickstart) to confirm the plugin is installed and configured correctly.
- Use the [CopyDoc text export workflow](/copydoc/update/export) to verify supported update and re-import formats.
- Watch the [Figma to Microsoft Word tutorial](https://www.hypermatic.com/tutorials/how-to-export-figma-to-microsoft-word-docx-files-using-copy-doc/) for a complete document-export example.

---

---
url: "/copydoc/library/airtable.md"
description: "The Content Library feature in CopyDoc lets you use content snippets from an Airtable to populate your Figma text layers, which ensures that you can get up to date content directly from your Airtable URL whenever the **Airtable** option is loaded via the **Integrations** tab in CopyDoc."
---

# Integrating with content from Airtable

> The Content Library feature in CopyDoc lets you use content snippets from an Airtable to populate your Figma text layers, which ensures that you can get up to date content directly from your Airtable URL whenever the **Airtable** option is loaded via the **Integrations** tab in CopyDoc.

### Video Tutorial: Use Airtable as a Figma text content library

This video walks through how to use Airtable as a Figma text content library using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/Aw9wleHHvOs)

[Video](/assets/videos/copydoc/library/airtable-snippets-integration.mp4)

## Structuring your Airtable with text snippets

To create a sheet, login to [Airtable](https://airtable.com/) and click **Create a base**, select the **Workspace** you'd like to add it under, and then click **Create**.

The format of the Airtable needs to follow the structure of: each column of your first/header row contains the _trigger_ names (for example, `//expandme`), with each text variant per snippet populating the rows underneath each trigger's column.

|//firstname|//cities   |
|-----------|-----------|
|Kate       |Seattle    |
|Elbert     |Los Angeles|
|Michael    |New York   |
|Amy        |Austin     |
|           |Portland   |
|           |Boston     |

## Adding your Airtable to CopyDoc

To add your Airtable content snippets in CopyDoc, click on the **Integrations** tab in the Content Library panel, then select the **Airtable** option from the platforms dropdown selector; then you need to add 3 fields:

### Your Airtable Sheet URL

To create a sheet, login to [Airtable](https://airtable.com/) and click **Create a base**, select the **Workspace** you'd like to add it under, and then click **Create**.

The Airtable sheet URL should look like this: `https://airtable.com/appzkSCDvQhxjfrl3/tbl9Ug0eTNoZFX5ne/viwULclwtTCrQq4dR?blocks=hide`

### Your Airtable Personal Access Token

You can [create a token](https://airtable.com/create/tokens) from the Airtable [Personal Access Token](https://airtable.com/developers/web/guides/personal-access-tokens) page.

Your Airtable personal access token should look like this: `patCDDXkwmgP4CyJK.19aa66430076753f90aaf1b27ae0a4ddf14f445dce8add9bd539bcbefcbe35df`

You'll also need to set the **Scope** to `data.records:read`, and making sure to include your **Workspace** that contains the sheet(s) you'd like to use, otherwise there won't be any permissions for the API to read the content from your Airtable.

### Custom Airtable Label

You need to set a custom label (for example, `My Airtable Snippets`) to help you identify your Airtable URL when you use it.

Once you've added those fields, click the **Add** button to load up the content snippets that you can use in your Figma text layers.

---

---
url: "/copydoc/library/figma.md"
description: "Load local Figma string variables into CopyDoc and use them as reusable text snippets."
---

# Integrating with content from Figma Variables

> Load local Figma string variables into CopyDoc and use them as reusable text snippets.

### Video Tutorial: Use Figma Variables as a reusable text content library

This video walks through how to use Figma Variables as a reusable text content library with CopyDoc.
[Embedded media](https://www.youtube.com/embed/X6TDkfp0W8A)

[Video](/assets/videos/copydoc/library/figma-snippets-integration.mp4)

## Creating your Figma Variable text snippets

To create a Figma Variable text snippet, click on the **Local Variables** item in the right-hand side column in the Figma app, then click the **+ Create Variable** button in the pop-up panel, select the **Text** option from the drop down menu; then you can add your variable label under the **Name** column (for example, `Heading`), then add your text snippet content under the **Value** column (for example, `This is my text snippet for a heading`).

Your text content snippet (under the **Value** column) contains the string(s) that will be applied to your Figma text layers when the snippet is clicked on in your content library.

To create multiple variants for one text snippet, you can use double pipe symbols between your strings (for example, `Hey || Hello || Hi`).

After you've added your Figma variables, you'll be able to browse and apply the text values from them to your Figma text layers by selecting the **Figma Variables** option under the **Integrations** tab of the **Content Library** CopyDoc feature.

---

---
url: "/copydoc/library/google-sheets.md"
description: "Load text snippets from a public Google Sheet and use them to populate Figma text layers with CopyDoc."
---

# Using Google Sheets as a content library

> Load text snippets from a public Google Sheet and use them to populate Figma text layers with CopyDoc.

### Video Tutorial: Use Google Sheets as a Figma text content library

This video walks through how to use Google Sheets as a Figma text content library using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/dBMsBeyncSk)

[Video](/assets/videos/copydoc/library/google-snippets-integration.mp4)

## Structuring your Google Sheet with text snippets

The format of the Google Sheet needs to follow the structure of: each column of your first/header row contains the _trigger_ names (for example, `//expandme`), with each text variant per snippet populating the rows underneath each trigger's column.

|//firstname|//cities   |
|-----------|-----------|
|Kate       |Seattle    |
|Elbert     |Los Angeles|
|Michael    |New York   |
|Amy        |Austin     |
|           |Portland   |
|           |Boston     |

## Adding your Google Sheet to CopyDoc

CopyDoc needs permission to read the spreadsheet. In Google Sheets, select **Share** and change **Restricted** to **Anyone with the link** before copying the URL.

In CopyDoc, open **Content Library** → **Integrations**, choose **Google Sheets**, then paste the public URL. CopyDoc loads the sheet content automatically.

---

---
url: "/copydoc/library/placeholders.md"
description: "The CopyDoc content library provides a bunch of placeholder text that you can use as-is (and apply them to your Figma text layers) from the **Placeholders** tab in your content library panel, or alternatively, you can also mix dynamic placeholder text into your own custom text snippets."
---

# Using Placeholder Content

> The CopyDoc content library provides a bunch of placeholder text that you can use as-is (and apply them to your Figma text layers) from the **Placeholders** tab in your content library panel, or alternatively, you can also mix dynamic placeholder text into your own custom text snippets.

### Video Tutorial: Add realistic placeholder text content in Figma

This video walks through how to add realistic placeholder text content in Figma using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/NghMg69P2hA)

## Adding placeholder content directly

[Video](/assets/videos/copydoc/library/apply-placeholders.mp4)

You can browse different placeholder categories for "fake" content snippets under the **Placeholders** tab, and also select your language to localize some of the content (for example, names, places etc).

You can either click on the placeholder name (for example, "First Name") button to apply it to your selected Figma text layer(s), or alternatively, you can copy/paste (or manually type) a trigger shortcut for a placeholder into your Figma text layer directly by prefixing the shortcut name with double backslashes (for example, //fake.person.firstName)

> **Tip:** **You can use your placeholder triggers in other CopyDoc features**. The text expander snippet works by automatically detecting the snippet when a Figma text layer's content is updated, which means that you can use your placeholder trigger shortcuts when using CopyDoc's other text layer update methods (for example, find and replace, bulk CSV/XLSX imports, and Google Sheet sync). Just use the trigger name as part of your updated content `for example, Hello //fake.person.firstName, how it's going?`

## Mixing dynamic placeholders inside your text snippets

[Video](/assets/videos/copydoc/library/mixing-placeholders.mp4)

To use a placeholder inside of a saved snippet, you can add curly brackets around either side of the shortcut name into your snippet text.

To make this easier, you can use the built-in placeholder shortcuts selector by enabling the **Show Placeholder Shortcuts** toggle, which will let you browse and automatically add placeholder shortcuts to your text snippets.

After you've saved your snippet, you can use it normally, in the same ways any other custom text snippet is applied; via [applying it to text layers](/copydoc/library/snippets#apply-snippets-with-text-layer-selection), or [using it as a text expander](/copydoc/library/snippets#apply-snippets-with-text-expander-triggers).

### Creating Custom Mixed Content Examples

Here are some practical examples of mixing placeholders with custom text in your snippets:

**Greeting Templates:**
```
Hello {{fake.person.firstName}}, welcome to our service!
```

**Product Descriptions:**
```
This {{fake.commerce.productAdjective}} {{fake.commerce.product}} is made from {{fake.commerce.productMaterial}} and costs {{fake.commerce.price}}.
```

**User Interface Copy:**
```
{{fake.person.fullName}} joined {{fake.company.name}} as a {{fake.person.jobTitle}} in the {{fake.company.department}} department.
```

**Location-based Content:**
```
Visit our store at {{fake.location.streetAddress}}, {{fake.location.city}}, {{fake.location.state}} {{fake.location.zipCode}}.
```

> **Note:** Each time you apply a snippet with placeholders, the content will be randomly generated, giving you fresh, realistic content for every use. This is particularly useful for populating multiple similar components with varied data.

## Placeholder Shortcut References

Below is a complete list of all placeholder shortcuts that you can either [use as part of your custom text snippets](#mixing-dynamic-placeholders-inside-your-text-snippets) by adding the shortcut between double curly brackets, or, directly into a text layer while editing it by [prefixing the shortcut with double slashes](/copydoc/library/snippets#apply-snippets-with-text-expander-triggers) (for example, //fake.person.firstName)

### Airlines

- `fake.airline.aircraftType` (for example, "Airbus A320")
- `fake.airline.airline` (for example, "Delta Airlines")
- `fake.airline.airplane` (for example, "Boeing 747")
- `fake.airline.airport` (for example, "John F. Kennedy International Airport")
- `fake.airline.flightNumber` (for example, "DL123")
- `fake.airline.recordLocator` (for example, "ABC123")
- `fake.airline.seat` (for example, "21A")

### Animals

- `fake.animal.bear` (for example, "Grizzly Bear")
- `fake.animal.bird` (for example, "Blue Jay")
- `fake.animal.cat` (for example, "Siamese Cat")
- `fake.animal.cetacean` (for example, "Bottlenose Dolphin")
- `fake.animal.cow` (for example, "Holstein Cow")
- `fake.animal.crocodilia` (for example, "American Alligator")
- `fake.animal.dog` (for example, "Golden Retriever")
- `fake.animal.fish` (for example, "Rainbow Trout")
- `fake.animal.horse` (for example, "Thoroughbred Horse")
- `fake.animal.insect` (for example, "Butterfly")
- `fake.animal.lion` (for example, "African Lion")
- `fake.animal.rabbit` (for example, "Holland Lop")
- `fake.animal.rodent` (for example, "Squirrel")
- `fake.animal.snake` (for example, "Python")
- `fake.animal.type` (for example, "Mammal")

### Colors

- `fake.color.cmyk` (for example, "cmyk(24, 56, 100, 3)")
- `fake.color.hsl` (for example, "hsl(187, 72%, 34%)")
- `fake.color.human` (for example, "DarkGreen")
- `fake.color.hwb` (for example, "hwb(333, 14%, 0%)")
- `fake.color.lab` (for example, "lab(57.54, -70.17, 56.39)")
- `fake.color.lch` (for example, "lch(57.54, 92.94, 146.21)")
- `fake.color.rgb` (for example, "rgb(32, 178, 170)")
- `fake.color.space` (for example, "rgb(255, 99, 71)")

### Commerce

- `fake.commerce.department` (for example, "Electronics")
- `fake.commerce.price` (for example, "$349.99")
- `fake.commerce.product` (for example, "Smartphone")
- `fake.commerce.productAdjective` (for example, "Sleek")
- `fake.commerce.productDescription` (for example, "This smartphone features a high-resolution display and a powerful processor.")
- `fake.commerce.productMaterial` (for example, "Leather")
- `fake.commerce.productName` (for example, "Wireless Headphones")

### Company

- `fake.company.name` (for example, "Acme Corporation")
- `fake.company.buzzAdjective` (for example, "Dynamic")
- `fake.company.buzzNoun` (for example, "Solutions")
- `fake.company.buzzPhrase` (for example, "Empowering Success")
- `fake.company.buzzVerb` (for example, "Transform")
- `fake.company.catchPhrase` (for example, "Innovate Your Tomorrow")
- `fake.company.catchPhraseAdjective` (for example, "Revolutionary")
- `fake.company.catchPhraseDescriptor` (for example, "Cutting-edge")
- `fake.company.catchPhraseNoun` (for example, "Solutions")

### Database

- `fake.database.collation` (for example, "utf8_general_ci")
- `fake.database.column` (for example, "email")
- `fake.database.engine` (for example, "InnoDB")
- `fake.database.mongodbObjectId` (for example, "5f16bf99ae900e001f8b9bb5")
- `fake.database.type` (for example, "NoSQL")

### Date
- `fake.date.anytime` (for example, "Sat Apr 29 2023 01:25:14 GMT+0000 (Coordinated Universal Time)")
- `fake.date.birthdate` (for example, "1995-09-15")
- `fake.date.future` (for example, "2025-06-28")
- `fake.date.month` (for example, "June")
- `fake.date.past` (for example, "2002-03-10")
- `fake.date.recent` (for example, "Sun Jul 09 2023 08:18:43 GMT+0000 (Coordinated Universal Time)")
- `fake.date.soon` (for example, "2023-07-26")
- `fake.date.weekday` (for example, "Tuesday")

### Finance
- `fake.finance.accountName` (for example, "John Doe")
- `fake.finance.accountNumber` (for example, "98765432")
- `fake.finance.amount` (for example, "$1234.56")
- `fake.finance.bic` (for example, "GENODEF1M04")
- `fake.finance.bitcoinAddress` (for example, "1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2")
- `fake.finance.creditCardCVV` (for example, "123")
- `fake.finance.creditCardIssuer` (for example, "Visa")
- `fake.finance.creditCardNumber` (for example, "4929272040382633")
- `fake.finance.currencyCode` (for example, "USD")
- `fake.finance.currencyName` (for example, "Euro")
- `fake.finance.currencySymbol` (for example, "$")
- `fake.finance.ethereumAddress` (for example, "0x742d35Cc6634C0532925a3b844Bc454e4438f44e")
- `fake.finance.iban` (for example, "DE89370400440532013000")
- `fake.finance.litecoinAddress` (for example, "LhWZkm3ZR1vuztrbNnFo4VLrqfUEKGZWEd")
- `fake.finance.maskedNumber` (for example, "************1234")
- `fake.finance.pin` (for example, "1234")
- `fake.finance.routingNumber` (for example, "021000021")
- `fake.finance.transactionDescription` (for example, "Payment for services")
- `fake.finance.transactionType` (for example, "Credit")

### Git
- `fake.git.branch` (for example, "feature/add-new-feature")
- `fake.git.commitDate` (for example, "2023-07-24T10:15:37")
- `fake.git.commitEntry` (for example, "Merge pull request #42")
- `fake.git.commitMessage` (for example, "Fix issue with authentication")
- `fake.git.commitSha` (for example, "d86fe8f1e64870ecf89b961631f8c63eade26ca0")

### Hacker
- `fake.hacker.abbreviation` (for example, "SQL")
- `fake.hacker.adjective` (for example, "cyber")
- `fake.hacker.ingverb` (for example, "hacking")
- `fake.hacker.noun` (for example, "firewall")
- `fake.hacker.phrase` (for example, "Encrypt everything!")
- `fake.hacker.verb` (for example, "hack")

### Internet
- `fake.internet.color` (for example, "#ff5733")
- `fake.internet.displayName` (for example, "JohnDoe87")
- `fake.internet.domainName` (for example, "example.com")
- `fake.internet.domainSuffix` (for example, ".net")
- `fake.internet.domainWord` (for example, "web")
- `fake.internet.email` (for example, "john.doe@example.com")
- `fake.internet.emoji` (for example, "😄")
- `fake.internet.exampleEmail` (for example, "jane.doe@example.com")
- `fake.internet.httpMethod` (for example, "GET")
- `fake.internet.httpStatusCode` (for example, "200")
- `fake.internet.ip` (for example, "192.168.0.1")
- `fake.internet.ipv4` (for example, "192.0.2.1")
- `fake.internet.ipv6` (for example, "2001:0db8:85a3:0000:0000:8a2e:0370:7334")
- `fake.internet.mac` (for example, "00:1a:2b:3c:4d:5e")
- `fake.internet.password` (for example, "P@ssw0rd123")
- `fake.internet.port` (for example, "8080")
- `fake.internet.protocol` (for example, "https")
- `fake.internet.url` (for example, "https://www.example.com")
- `fake.internet.userAgent` (for example, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3")
- `fake.internet.userName` (for example, "johndoe123")

### Location
- `fake.location.buildingNumber` (for example, "123")
- `fake.location.cardinalDirection` (for example, "North")
- `fake.location.city` (for example, "New York")
- `fake.location.country` (for example, "United States")
- `fake.location.countryCode` (for example, "US")
- `fake.location.county` (for example, "Los Angeles County")
- `fake.location.direction` (for example, "Southwest")
- `fake.location.latitude` (for example, "40.7128")
- `fake.location.longitude` (for example, "-74.0060")
- `fake.location.nearbyGPSCoordinate` (for example, "40.7128, -74.0060")
- `fake.location.ordinalDirection` (for example, "Northeast")
- `fake.location.secondaryAddress` (for example, "Apt. 2B")
- `fake.location.state` (for example, "California")
- `fake.location.street` (for example, "Main Street")
- `fake.location.streetAddress` (for example, "123 Main Street")
- `fake.location.timeZone` (for example, "America/New_York")
- `fake.location.zipCode` (for example, "10001")

### Lorem
- `fake.lorem.lines` (for example, "Lorem ipsum dolor sit amet, consectetur adipiscing elit.")
- `fake.lorem.paragraph` (for example, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod ligula a dui tincidunt, sit amet euismod metus tristique.")
- `fake.lorem.paragraphs` (for example, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod ligula a dui tincidunt, sit amet euismod metus tristique.\n\nPhasellus posuere massa vitae dui iaculis, sit amet tincidunt mauris eleifend. Vivamus vel dolor vel justo posuere egestas nec id nunc.")
- `fake.lorem.sentence` (for example, "Lorem ipsum dolor sit amet.")
- `fake.lorem.sentences` (for example, "Lorem ipsum dolor sit amet. Consectetur adipiscing elit. Sed euismod ligula a dui tincidunt.")
- `fake.lorem.slug` (for example, "lorem-ipsum-dolor")
- `fake.lorem.text` (for example, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod ligula a dui tincidunt, sit amet euismod metus tristique. Phasellus posuere massa vitae dui iaculis, sit amet tincidunt mauris eleifend. Vivamus vel dolor vel justo posuere egestas nec id nunc.")
- `fake.lorem.word` (for example, "Lorem")
- `fake.lorem.words` (for example, "Lorem ipsum dolor sit amet")

### Music
- `fake.music.genre` (for example, "Rock")
- `fake.music.songName` (for example, "Bohemian Rhapsody")

### Number
- `fake.number.bigInt` (for example, "12345678901234567890")
- `fake.number.binary` (for example, "10101010")
- `fake.number.float` (for example, "3.14")
- `fake.number.hex` (for example, "1a4")
- `fake.number.int` (for example, "42")
- `fake.number.octal` (for example, "52")

### Person
- `fake.person.bio` (for example, "software engineer with a passion for technology and coding.")
- `fake.person.firstName` (for example, "John")
- `fake.person.fullName` (for example, "John Doe")
- `fake.person.gender` (for example, "Male")
- `fake.person.jobArea` (for example, "Information Technology")
- `fake.person.jobDescriptor` (for example, "Senior")
- `fake.person.jobTitle` (for example, "Software Engineer")
- `fake.person.jobType` (for example, "Full-Time")
- `fake.person.lastName` (for example, "Doe")
- `fake.person.middleName` (for example, "Michael")
- `fake.person.prefix` (for example, "Mr.")
- `fake.person.sex` (for example, "Male")
- `fake.person.sexType` (for example, "M")
- `fake.person.suffix` (for example, "Jr.")
- `fake.person.zodiacSign` (for example, "Virgo")

### Phone
- `fake.phone.number` (for example, "+1 (555) 123-4567")
- `fake.phone.imei` (for example, "351756052471134")

### String
- `fake.string.binary` (for example, "10101100")
- `fake.string.hexadecimal` (for example, "1a4f")
- `fake.string.alpha` (for example, "abcXYZ")
- `fake.string.alphanumeric` (for example, "abcXYZ123")
- `fake.string.nanoid` (for example, "a1B2c3D4")
- `fake.string.numeric` (for example, "123456")
- `fake.string.octal` (for example, "147")
- `fake.string.sample` (for example, "Lorem ipsum dolor sit amet, consectetur adipiscing elit.")
- `fake.string.symbol` (for example, "!@#$%^&*")
- `fake.string.uuid` (for example, "6ba7b810-9dad-11d1-80b4-00c04fd430c8")

### System
- `fake.system.commonFileExt` (for example, "txt")
- `fake.system.commonFileName` (for example, "data")
- `fake.system.commonFileType` (for example, "text")
- `fake.system.cron` (for example, "0 * * * *")
- `fake.system.directoryPath` (for example, "/home/user/Documents")
- `fake.system.fileExt` (for example, "js")
- `fake.system.fileName` (for example, "script")
- `fake.system.filePath` (for example, "/home/user/Documents/script.js")
- `fake.system.fileType` (for example, "application/javascript")
- `fake.system.mimeType` (for example, "text/plain")
- `fake.system.networkInterface` (for example, "eth0")
- `fake.system.semver` (for example, "2.1.0")

### Vehicle
- `fake.vehicle.bicycle` (for example, "Mountain Bike")
- `fake.vehicle.color` (for example, "Red")
- `fake.vehicle.fuel` (for example, "Gasoline")
- `fake.vehicle.manufacturer` (for example, "Toyota")
- `fake.vehicle.model` (for example, "Camry")
- `fake.vehicle.type` (for example, "Sedan")
- `fake.vehicle.vehicle` (for example, "Toyota Camry")
- `fake.vehicle.vin` (for example, "1HGCM82633A123456")
- `fake.vehicle.vrm` (for example, "ABC123")

### Word
- `fake.word.adjective` (for example, "beautiful")
- `fake.word.adverb` (for example, "quickly")
- `fake.word.conjunction` (for example, "and")
- `fake.word.interjection` (for example, "wow")
- `fake.word.noun` (for example, "house")
- `fake.word.preposition` (for example, "under")
- `fake.word.words` (for example, "Lorem ipsum")
- `fake.word.sample` (for example, "Lorem ipsum dolor sit amet")
- `fake.word.verb` (for example, "run")

---

---
url: "/copydoc/library/snippets.md"
description: "Create reusable text snippets in CopyDoc's built-in Content Library and insert them into Figma designs."
---

# Using the Content Library

> Create reusable text snippets in CopyDoc's built-in Content Library and insert them into Figma designs.

### Video Tutorial: Create a reusable text content library in Figma

This video walks through how to create a reusable text content library in Figma with CopyDoc.
[Embedded media](https://www.youtube.com/embed/x-gNQqwIOLw)
### Video Tutorial: Add text expander content snippet shortcuts in Figma

This video walks through how to add text expander content snippet shortcuts in Figma using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/OZCbuLVsDmI)

## Creating text expander snippets

[Video](/assets/videos/copydoc/library/create-snippet.mp4)

After opening the **Content Library** panel, to create your first text snippet under the **Collections** tab, click on the **Add New Snippet +** button, and then complete the required fields:

### Trigger Shortcut Name

Trigger shortcuts are special keywords that will have their content expanded when typed (or copy/pasted) into a Figma text layer (for example, `//expandme`).

### Add To Collection (Optional)

By default, any new text snippets added are "Uncategorized", but you can create a custom collection name (or select a previously created collection) to keep your snippets organized by category.

### Text Content Snippet

Your text content snippet contains the string(s) that will be applied to your Figma text layers, when the snippet is clicked on in your content library.

To create multiple variants for one text snippet, you can use double pipe symbols between your strings (for example, `Hey || Hello || Hi`).

### Supported Markdown formatting for text snippets

You can optionally add some basic markdown formatting (bold, italics) and links to your snippets, which will automatically be applied when the snippet is applied to your Figma text layer.

- You can specify **Bold** text by using double asterisks `**Snipet text to bold**` or double underscores `eg.__Snipet text to bold__`
- You can specify *Italic* text by using single asterisks `*Italic Snippet Text*` or single underscores `eg._Italic Snippet Text_`
- You can specify ***Bold Italic*** text by using triple asterisks `***Bold Italic Snippet Text***` or triple underscores `eg.___Bold Italic Snippet Text___`
- You can specify hyperlinks by using the markdown syntax of `This is [my link here](https://example.com) in a text snippet` (you can also format the link text by adding the bold/italic syntax inside of the link's `[]` text area).

## Apply snippets with text layer selection

[Video](/assets/videos/copydoc/library/apply-snippet.mp4)

The first way to apply your saved text snippet(s) is to select the Figma text layer(s) you want to apply your snippet(s) to, and then click on the **Apply** button to apply a random snippet variant to that text layer.

You can also apply your snippets in a certain order or selecting a specific variant, by first expanding the text snippet, then clicking a certain variant or choosing a bulk apply option ("Original Order", "Random Order", "A-Z" or "Z-A").

## Apply snippets with text expander triggers

[Video](/assets/videos/copydoc/library/expand-snippet.mp4)

The other way to use and apply your saved text snippets is by copy/pasting (or manually typing) your text snippet "trigger" (for example, `//expandme`) directly into your Figma text layer while editing the layer's content; this will automatically expand your trigger shortcut into the full text snippet that you added.

> **Tip:** **You can use your triggers in other CopyDoc features**. The text expander snippet works by automatically detecting the snippet when a Figma text layer's content is updated, which means that you can use your trigger shortcuts when using CopyDoc's other text layer update methods (for example, find and replace, bulk CSV/XLSX imports, and Google Sheet sync). Just use the trigger name as part of your updated content `for example, Hello //firstname, how it's going?`

## Editing or deleting your text snippets

[Video](/assets/videos/copydoc/library/edit-snippet.mp4)

To delete or edit a custom text snippet that you've previously added to your content library, expand the text snippet by clicking it in your snippets list under the **Collections** tab, then either click on the **Trash** icon button to delete it instantly, or click on the **Pencil** icon button bring up the edit panel, which will let you update the trigger name, collection or text content for the selected snippet.

## Bulk moving or deleting your text snippets

[Video](/assets/videos/copydoc/library/move-delete-snippets.mp4)

You can quickly move a bunch of text snippets to another collection by selecting the snippets you'd like to export by selecting their checkbox(es), then selecting an existing collection name from the **Select Snippet Collection** dropdown, or by adding a new collection name, then clicking the **Move** button.

Alternatively, instead of moving the snippets to a different collection, you can click the **Delete** button to instantly bulk delete all of the selected snippets instead.

## Exporting your text snippets to CSV

[Video](/assets/videos/copydoc/library/export-csv-snippets.mp4)

You can export a `.csv` file of your custom text snippets by selecting the snippets you'd like to export by selecting their checkbox(es), and then clicking the **Export CSV** button to automatically download your selected snippets to a `.csv` file that you can save to your computer.

You can edit these `.csv` files and [re-import them](#importing-text-snippets-from-csv) back into your content library snippets.

## Importing text snippets from CSV

[Video](/assets/videos/copydoc/library/import-csv-snippets.mp4)

You can import a `.csv` file containing custom text triggers and snippets by clicking the **Import CSV** button under the **Collections** tab of the CopyDoc content library feature.

The `.csv` file that you drag into the dropzone can either be an updated spreadsheet that you exported via the [Export CSV](#exporting-your-text-snippets-to-csv) feature, or a brand new spreadsheet that you've formatted in the same way.

The format of the CSV needs to follow the structure of: each column of your first/header row contains the _trigger_ names (for example, `//expandme`), with each text variant per snippet populating the rows underneath each trigger's column.

|//firstname|//cities   |
|-----------|-----------|
|Kate       |Seattle    |
|Elbert     |Los Angeles|
|Michael    |New York   |
|Amy        |Austin     |
|           |Portland   |
|           |Boston     |

---

---
url: "/copydoc/localization/chatgpt.md"
description: "Use ChatGPT inside CopyDoc with either direct API translation or manual CSV prompts to localize your selected Figma frames in Figma."
---

# Translating your Figma frames with ChatGPT

> Use ChatGPT inside CopyDoc with either direct API translation or manual CSV prompts to localize your selected Figma frames in Figma.

CopyDoc supports ChatGPT in two ways:

- **ChatGPT API** for automated translation and import inside the plugin.
- **ChatGPT Prompt** for a manual copy and paste workflow using the ChatGPT app.

## Use ChatGPT API

The API workflow is the fastest option if you want CopyDoc to handle the full translation and import flow for you.

1. Click the **Localize Text** button in CopyDoc.
2. Choose **ChatGPT API**.
3. Paste your OpenAI [API key](https://platform.openai.com/api-keys).
4. Pick the model you want CopyDoc to use.
5. Select the Figma frames and target locales you want to translate.
6. Enable **Use Markdown** if you need to preserve inline bold, italic, and linked text during translation.
7. Click **Translate & Import**.

CopyDoc will send the selected frame text to ChatGPT for each locale, then automatically import the translated results back into Figma as cloned localized frames.

> **Tip:** Your ChatGPT API key is stored per Figma user on your device and is not saved into the Figma file itself.

## Use ChatGPT Prompt

The manual prompt workflow is useful if you prefer to run translation requests yourself inside ChatGPT instead of connecting an API key.

1. Choose **ChatGPT Prompt** in the localization options.
2. Select the Figma frames and locales you want to translate.
3. Click **Generate Prompt**.
4. Click **Copy Prompt to Clipboard**.
5. Run the prompt in ChatGPT and make sure it returns **raw CSV only**.
6. Paste the CSV response back into CopyDoc.
7. Click **Translate Figma Frames** to import the translated content into Figma.

In the manual prompt workflow, you choose the ChatGPT model inside the ChatGPT app yourself. CopyDoc validates the pasted CSV before importing it.

The generated prompt also tells ChatGPT to preserve supported inline markdown formatting and keep markdown markers, URLs, and placeholders unchanged so the translated content can be imported back into Figma correctly.

> **Tip:** Do not remove or rename the `id`, `frame_id`, `layer_name`, or `figma_text` columns in the CSV response. CopyDoc uses those columns to match translated rows back to the correct Figma layers.

---

---
url: "/copydoc/localization/claude.md"
description: "Use Claude inside CopyDoc with either direct API translation or manual CSV prompts to localize your selected Figma frames in Figma."
---

# Translating your Figma frames with Claude

> Use Claude inside CopyDoc with either direct API translation or manual CSV prompts to localize your selected Figma frames in Figma.

CopyDoc supports Claude in two ways:

- **Claude API** for automated translation and import inside the plugin.
- **Claude Prompt** for a manual copy and paste workflow using the Claude app.

## Use Claude API

1. Click the **Localize Text** button in CopyDoc.
2. Choose **Claude API**.
3. Paste your Anthropic [API key](https://console.anthropic.com/settings/keys).
4. Pick the Claude model you want CopyDoc to use.
5. Select the Figma frames and target locales you want to translate.
6. Enable **Use Markdown** if you need to preserve inline bold, italic, and linked text during translation.
7. Click **Translate & Import**.

CopyDoc will translate the selected frames with Claude and automatically import the translated results back into Figma as cloned localized frames.

> **Tip:** Your Claude API key is stored per Figma user on your device and is not saved into the Figma file itself.

## Use Claude Prompt

1. Choose **Claude Prompt** in the localization options.
2. Select the Figma frames and locales you want to translate.
3. Click **Generate Prompt**.
4. Click **Copy Prompt to Clipboard**.
5. Run the prompt in Claude and make sure the response contains **raw CSV only**.
6. Paste the CSV response back into CopyDoc.
7. Click **Translate Figma Frames** to import the translated content into Figma.

In the manual prompt workflow, you choose the Claude model inside Claude yourself. CopyDoc validates the CSV structure before importing the translated frames.

The generated prompt also tells Claude to preserve supported inline markdown formatting and keep markdown markers, URLs, and placeholders unchanged so the translated content can be imported back into Figma correctly.

> **Tip:** Do not remove or rename the `id`, `frame_id`, `layer_name`, or `figma_text` columns in the CSV response. CopyDoc uses those columns to match translated rows back to the correct Figma layers.

---

---
url: "/copydoc/localization/export.md"
description: "CopyDoc has a built-in localization feature to help you translate any frames on your Figma page into multiple languages or content variations."
---

# Localize your Figma design text layers

> CopyDoc has a built-in localization feature to help you translate any frames on your Figma page into multiple languages or content variations.

### Video Tutorial: The simplest way to localize any Figma designs

This video tutorial is a complete step-by-step guide showing you the simplest way to localize any Figma designs using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/BJ03GUCHTjg)

### Video Tutorial: Translate Figma text layers with XLIFF files

This video walks through how to translate Figma text layers with XLIFF files using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/LHIOqns7QU8)

## Looking for the XLIFF workflow?

If you searched for **Localize Figma Text**, **Localise Figma Text**, **Export/Import XLIFF**, or **XLF**, this is the CopyDoc localization workflow you need.

In CopyDoc, click **Localize Frames** to open the localization flow. From there, choose **Export/Import XLIFF** when you want to export or import translation files instead of using the spreadsheet-based `.xlsx` workflow.

For a step-by-step XLIFF example, see [Translate Figma text layers with XLIFF files](/copydoc/tutorials/translate-figma-text-layers-with-xliff-files).

## Export Figma text layers to a localization spreadsheet

By clicking the **Localize Frames** button in CopyDoc, you can export your frame(s) and select the target languages you'd like to translate the designs to (for example, French, German etc). Clicking the **Export XLSX** button will automatically export the text content from your frame(s) to an `.xlsx` spreadsheet file.

[Video](/assets/videos/copydoc/localization/export-locales.mp4)

### Grouping duplicate text layers

Enabling the **Group Duplicate Text Layers** option will ensure that any text layers with exactly the same content with automatically be grouped into a single entry in your XLSX export. This option can make editing and re-importing your content back into Figma a bit easier, as you only need to edit the text in one place.

### Maintaining the visual text case from Figma

Enabling the **Use Figma Visual Text Case** option will automatically force your exported text layers to match the "visual" text case (for example, "Uppercase", "Title Case", "Lowercase") option set on your text layer in Figma. You can use this option to visually mirror the text content in your design, instead of exporting the underlying text layer content (for example, as it appears with the default "As typed" case setting selected).

## Add localized content for each locale column in your spreadsheet

[Video](/assets/videos/copydoc/localization/edit-locales.mp4)

After you've exported your `.xlsx` file, you can edit the Excel file and populate the placeholder locale columns as needed.

> **Tip:** If you need to add extra columns to your localization spreadsheet that you _don't_ want to be imported back into Figma (for example, metadata content like "approved", "status", "reviewer" etc), you can do this by prepending a triple underscore prefix before any column header name (for example, `___approved` or `__status`) and this will ensure the column is ignored by CopyDoc when the `.xlsx` file is re-imported back into Figma.

## Re-import your localized spreadsheet into Figma

[Video](/assets/videos/copydoc/localization/import-locales.mp4)

After you've populated the locales and saved your spreadsheets, you can re-import your `.xlsx` file back into the CopyDoc plugin by dragging and dropping it in, then clicking the **Localize Frames** button to re-import your new content locales. Upon re-importing the file, CopyDoc will automatically create a brand new page with a new email frame per locale with all of the text updates you made (per text layer/"row") in the spreadsheet.

### Set the imported frame order

After CopyDoc loads your spreadsheet, drag the frames in the import preview into your preferred order before clicking **Localize Frames**. When **Keep Frame Positions** is turned off, CopyDoc uses this order to arrange the original and localized frames from top to bottom on the new page.

> **Note:** Enabling the **Keep Frame Positions** toggle will ensure that the arrangement/positioning of any new imported/translated frames are kept to match the arrangement of the original frames that were exported from Figma. Turning this toggle off will let the plugin arrange them in a tidy/ordered grid of frames instead.

> **Tip:** Enabling the **Add a “Worst Case” Frame (Longest Text)** toggle will create an extra frame that takes the longest bits of text from all the new locales/translations in the spreadsheet per text layer, and generates a frame that shows what the worst case scenario is for text being really long; this can be useful to test the robustness of the design, and make sure it can handle any length of text without breaking or looking weird.

## Using Markdown Formatting

You can optionally export the text in your Localization spreadsheets as markdown by enabling the **Add Markdown** toggle, which will automatically render any bold, italic or hyperlinked text in their markdown format (below). This lets you edit/add formatting to different parts of your CopyDoc design's text content before re-importing any translated text.

After editing the exported spreadsheet, and adding/removing markdown formatting, enabling the **Import Markdown Formatting** toggle with ensure your XLSX import will automatically parse basic supported markdown formatting (below) and apply this to your Figma text layers.

CopyDoc currently supports inline markdown formatting for bold, italic, bold italic, hyperlinks, and line breaks. Avoid adding headings, lists, code blocks, tables, HTML, or other markdown syntax that is outside of those supported inline text features.

### Supported markdown formatting:

- You can specify **Bold** text by using double asterisks around the text, for example, `**Text to bold**`
- You can specify *Italic* text by using single underscores around the text, for example, `_Italic Text_`
- You can specify ***Bold Italic*** text by using double asterisks and one underscore around the text, for example, `**_Italic Text_**`
- You can specify hyperlinks by using the markdown syntax of `This is [my link here](https://example.com) in a text paragraph` (you can also format the link text by adding the bold/italic syntax inside of the link's `[]` text area).

## Other localization workflows

CopyDoc also supports AI-assisted localization workflows:

- [ChatGPT](/copydoc/localization/chatgpt)
- [Claude](/copydoc/localization/claude)
- [Gemini](/copydoc/localization/gemini)

> **Tip:** The AI localization providers each support two workflows in CopyDoc: a direct API translation option and a manual prompt option that generates a CSV translation prompt for you to run in the provider's own app.

## Related CopyDoc guides

- Watch the [Figma localization tutorial](/copydoc/tutorials/the-simplest-way-to-localize-any-figma-designs) for a complete example.
- Use the [CopyDoc text export workflow](/copydoc/update/export) for non-localized spreadsheet and document updates.
- Explore the [CopyDoc Figma plugin](https://www.hypermatic.com/copydoc/) for localization, spreadsheet sync, and document exports.

---

---
url: "/copydoc/localization/gemini.md"
description: "Use Gemini inside CopyDoc with either direct API translation or manual CSV prompts to localize your selected Figma frames in Figma."
---

# Translating your Figma frames with Gemini

> Use Gemini inside CopyDoc with either direct API translation or manual CSV prompts to localize your selected Figma frames in Figma.

CopyDoc supports Gemini in two ways:

- **Gemini API** for automated translation and import inside the plugin.
- **Gemini Prompt** for a manual copy and paste workflow using the Gemini app.

## Use Gemini API

1. Click the **Localize Text** button in CopyDoc.
2. Choose **Gemini API**.
3. Paste your Google AI Studio [API key](https://aistudio.google.com/app/apikey).
4. Pick the Gemini model you want CopyDoc to use.
5. Select the Figma frames and target locales you want to translate.
6. Enable **Use Markdown** if you need to preserve inline bold, italic, and linked text during translation.
7. Click **Translate & Import**.

CopyDoc will send the selected frame text to Gemini for translation and then automatically import the translated results back into Figma as cloned localized frames.

> **Tip:** Your Gemini API key is stored per Figma user on your device and is not saved into the Figma file itself.

## Use Gemini Prompt

1. Choose **Gemini Prompt** in the localization options.
2. Select the Figma frames and locales you want to translate.
3. Click **Generate Prompt**.
4. Click **Copy Prompt to Clipboard**.
5. Run the prompt in Gemini and make sure the response contains **raw CSV only**.
6. Paste the CSV response back into CopyDoc.
7. Click **Translate Figma Frames** to import the translated content into Figma.

In the manual prompt workflow, you choose the Gemini model inside Gemini yourself. CopyDoc validates the CSV structure before importing the translated frames into Figma.

The generated prompt also tells Gemini to preserve supported inline markdown formatting and keep markdown markers, URLs, and placeholders unchanged so the translated content can be imported back into Figma correctly.

> **Tip:** Do not remove or rename the `id`, `frame_id`, `layer_name`, or `figma_text` columns in the CSV response. CopyDoc uses those columns to match translated rows back to the correct Figma layers.

---

---
url: "/copydoc/overview/install.md"
description: "Ensure you're logged into your Figma account, then follow the steps below to install and run the [CopyDoc Figma Plugin](https://www.figma.com/community/plugin/900893606648879767/copydoc-text-kit)."
---

# Install and run the CopyDoc Figma Plugin

> Ensure you're logged into your Figma account, then follow the steps below to install and run the [CopyDoc Figma Plugin](https://www.figma.com/community/plugin/900893606648879767/copydoc-text-kit).

### Video Tutorial: How to install (and remove) Figma plugins

This video tutorial is a complete step-by-step guide showing you the new process of how to install (and remove) Figma plugins after the mid-2024 "UI3" update to the Figma app
[Embedded media](https://www.youtube.com/embed/CzjxF2Jv6PM)

## Installing the CopyDoc Figma Plugin

1. Open any Figma file.
2. Click on the **Actions** icon in the bottom Figma toolbar.
3. Click the **Plugins & Widgets** tab to filter results to Figma plugins.
4. Search for **CopyDoc** in the search bar.
5. Click on the **CopyDoc** search result.
6. Click the **Save** button to install the CopyDoc plugin.

> **Note:** Figma users in a **Figma Organization** may only be able to install approved plugins. Please contact your Figma Org admin at your company to [approve the CopyDoc plugin](https://help.figma.com/hc/en-us/articles/4404228724759-Manage-plugins-and-widgets-in-an-organization) if you're unable to install certain Figma plugins.

## Running the CopyDoc Figma Plugin

Once you've [installed](#installing-the-figma-plugin) the **CopyDoc** Figma plugin, to run the plugin in your Figma file:

  1. **Right-click** anywhere on your Figma file's page canvas
  2. Hover your mouse over the **Plugins** ▶ menu item
  3. Hover your mouse over the **Saved plugins** ▶ menu item
  4. Click on the **CopyDoc** plugin menu item

> **Tip:** After you've run the **CopyDoc** plugin once in a Figma file, you'll be able to quickly re-launch it by clicking the **CopyDoc** icon in the right-hand side Figma column (under the **Plugin** subheading).

> **Warning:** Only Figma users with **Edit** access to a Figma file can run a Figma plugin in that Figma file; if you only have **View** permissions, you won't be able to run any Figma plugins in that file.

## Uninstalling the CopyDoc Figma plugin

1. Open any Figma file.
2. Click on the **Actions** icon in the bottom Figma toolbar.
3. Click the **Plugins & Widgets** tab to filter results to Figma plugins.
4. Search for **CopyDoc** in the search bar.
5. Click on the **CopyDoc** search result.
6. Click the **Remove** button to uninstall the CopyDoc plugin.

> **Note:** This will remove the plugin from your **Saved Plugins** list, however, the Figma plugin may still show up under your **Recents** list (if it has been recently run), as Figma saves this list of recent plugins in your browser's/app's local storage. The plugin will vanish from the Recents menu after other plugins are run to take its place.

---

---
url: "/copydoc/overview/pro.md"
description: "After trying out all the Pro features of CopyDoc **10 times**, you can optionally upgrade to continue using all the extra features that are only available in the Pro version; or if you're a casual user, you can continue using the Free version forever."
---

# Activating CopyDoc Pro

> After trying out all the Pro features of CopyDoc **10 times**, you can optionally upgrade to continue using all the extra features that are only available in the Pro version; or if you're a casual user, you can continue using the Free version forever.

> **Tip:** Need a CopyDoc Pro account? You can purchase a Pro account for you or your team by visiting the [CopyDoc](https://www.hypermatic.com/copydoc/#pro) product page on the Hypermatic website.

## Activating the Figma plugin with an CopyDoc Pro license key

1. **Purchase a Pro license** for you or your team by visiting the [CopyDoc](https://www.hypermatic.com/copydoc/#pro) product page on the Hypermatic website.
2. **Run the CopyDoc Plugin**, then click on the **Upgrade Now** button at the bottom of the Figma plugin window.
3. **Paste in your Pro key**, then click the **Unlock** button.

This will unlock the Pro version of CopyDoc and give you unlimited use all of the Figma plugin features.

> **Warning:** Note, if you're in China, the accounts server _may_ be blocked by "The Great Firewall of China". If you're seeing a activation error, despite using a valid key, you will likely need to use a [VPN](https://protonvpn.com/free-vpn/) to resolve the issue.

> **Info:** If you ever need to use a different license key at any time (for example, you were using your own personal Pro license key, but now your employer is buying you a Pro license to use instead), you can press **CTRL + K** while your plugin window is open in Figma, and this will bring up the license key prompt again, where you can enter a different license key.

---

---
url: "/copydoc/overview/quickstart.md"
description: "Export, import, localize, synchronize, and update text content in Figma designs."
---

# Get started with CopyDoc

> Export, import, localize, synchronize, and update text content in Figma designs.

[![CopyDoc Figma Plugin](https://www.hypermatic.com/copydoc.jpg)](https://www.figma.com/community/plugin/900893606648879767/copydoc-text-kit)

## Install and activate CopyDoc

- [Install & Run the Figma plugin](/copydoc/overview/install.md): How to run CopyDoc inside of Figma
- [Activate CopyDoc Pro](/copydoc/overview/pro.md): How to buy and use a Pro license key

## Using CopyDoc

  - [CopyDoc Documentation](/copydoc/update/export.md): Detailed docs with short screencaps
  - [CopyDoc Video Tutorials](/copydoc/tutorials.md): Full step-by-step video walkthroughs

## Frequently asked questions

- [Troubleshooting CopyDoc](/copydoc/faq/troubleshooting.md): Common issues issues you may run into
- [CopyDoc Security](/copydoc/faq/security.md): Details about how CopyDoc works
- [Receipts](/faq/receipts.md): Find email receipts and PDF invoices
- [Billing](/faq/billing.md): Manage your Pro subscription
- [License Seat Management](/faq/seats.md): Manage the Figma users on your key
- [CopyDoc Free vs Pro](/copydoc/faq/plans.md): Compare Free vs Pro features

[Video](https://www.hypermatic.com/assets/videos/copydoc/COPYDOC_DEMO.mp4)

## CopyDoc features

- Privacy focused: no data or content ever leaves your Figma file.
- Export Figma text layers to XLSX, DOCX, CSV, Markdown and JSON files directly to your computer (or to Airtable).
- Bulk update Figma text layers through XLSX, DOCX, CSV, Markdown, JSON, or Airtable.
- Create a custom content library inside your Figma file (with Text Expander shortcuts), with optional Google Sheets and Airtable integration.
- Sync repeating text/image content or CSS styles from a Google Sheet, Airtable or XLSX/CSV file.
- Automatically generate Figma data tables from a Google Sheet or XLSX/CSV.
- Localize Figma designs with OpenAI, Claude, Gemini, or XLSX file export and import.
- Find & Replace feature to quickly update any matching text.
- Automatically generate Charts by adding your own spreadsheet data.
- Export frames to DOCX, XLSX, TXT, EPUB, HTML or PDF.
- Quickly export selected text layers to XLSX, DOCX, CSV, Markdown, JSON or XLIFF files.
- Spell check your Figma text in dozens of languages.
- Download all Figma comments to CSV and JSON files.
- Include design references for text and comment exports.

---

---
url: "/copydoc/sync/airtable.md"
description: "If you've created your spreadsheet as an Airtable, you can sync it with your Figma design."
---

# Syncing content to Figma from a Airtable

> If you've created your spreadsheet as an Airtable, you can sync it with your Figma design.

### Video Tutorial: Sync Airtable spreadsheet content to Figma

This video walks through how to sync Airtable spreadsheet content to Figma using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/SFAjIzF6P9o)

### Video Tutorial: Auto repeat and sync Figma layers from a spreadsheet

This video walks through how to automatically repeat and sync Figma layers from a spreadsheet using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/_1MHyfYNHFQ)

## Syncing your Airtable content to Figma layers

[Video](/assets/videos/copydoc/sync/airtable-sync.mp4)

To add your Airtable content for the **Sync Content** feature in CopyDoc, select the **Sync from Airtable URL** option from the platforms dropdown selector; then you need to add 3 fields:

### Your Airtable Sheet URL

To create a sheet, login to [Airtable](https://airtable.com/) and click **Create a base**, select the **Workspace** you'd like to add it under, and then click **Create**.

The Airtable sheet URL should look like this: `https://airtable.com/appzkSCDvQhxjfrl3/tbl9Ug0eTNoZFX5ne/viwULclwtTCrQq4dR?blocks=hide`

### Your Airtable Personal Access Token

You can [create a token](https://airtable.com/create/tokens) from the Airtable [Personal Access Token](https://airtable.com/developers/web/guides/personal-access-tokens) page.

Your Airtable personal access token should look like this: `patCDDXkwmgP4CyJK.19aa66430076753f90aaf1b27ae0a4ddf14f445dce8add9bd539bcbefcbe35df`

You'll also need to set the **Scope** to `data.records:read`, and making sure to include your **Workspace** that contains the sheet(s) you'd like to use, otherwise there won't be any permissions for the API to read the content from your Airtable.

### Custom Airtable Label

You need to set a custom label (for example, `My Airtable Snippets`) to help you identify your Airtable URL when you use it.

Once you've added those fields, click the **Use Selected Airtable** button to load up the table content that you can use to sync content with Figma.

> **Warning:** **Figma text layers with missing fonts can't be updated**. If your Figma text layer contains a [missing font](https://help.figma.com/hc/en-us/articles/360039956994-Manage-missing-fonts), the plugin won't be able to update it. Please ensure any text layers you would like to update in any way using the CopyDoc plugin have their missing fonts resolved.

## Auto repeat a single Figma layer with your spreadsheet rows

[Video](/assets/videos/copydoc/sync/auto-repeat-sync.mp4)

When using the **Content** or **Styles** sync tab options, you can automatically repeat a single Figma layer by enabling the **Auto Repeat** toggle, which will automatically copy the original selected Figma layer and duplicate it as many times as the number of rows that your spreadsheet data contains.

If your selected Figma layer is already directly inside of another Figma layer with Auto Layout enabled, the selected layer will automatically be duplicated inside of that parent layer, otherwise, CopyDoc will create a brand new Auto Layout frame and duplicate your new Figma layers there instead.

### Dynamic auto-repeating parent layer names

[Video](/assets/videos/copydoc/sync/auto-renaming-frames.mp4)

If you want to dynamically name the new auto-repeating Figma layer from your spreadsheet data, too, you can do this by ensuring the Figma layer name that you're repeating (for example, `#Title`) matches a column in the spreadsheet that you're syncing; this will automatically use the value from each row under the `#Title` column in your spreadsheet as the layer name for each duplicated Figma layer.

If there's no matching layer name in your spreadsheet, the CopyDoc plugin will take the original Figma layer name and append a row number to it (for example, `My Frame Layer (Row 3)`) instead.

---

---
url: "/copydoc/sync/charts.md"
description: "If you want to automatically generate visual Figma charts using data from spreadsheets, you can click the **Charts** tab in the CopyDoc Sync feature, then follow the steps below."
---

# Importing charts from spreadsheet data

> If you want to automatically generate visual Figma charts using data from spreadsheets, you can click the **Charts** tab in the CopyDoc Sync feature, then follow the steps below.

### Sync chart data to Figma from a spreadsheet

This video walks through how to sync chart data to Figma from a spreadsheet using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/SwgrrN9gY1Q)

[Video](/assets/videos/copydoc/sync/chart-import.mp4)

> **Tip:** **Download sample CSV files for each chart type**. You can download a `.csv` file containing sample data for any chart type by clicking your chart type, then clicking the **chart-sample-data.csv** link, which will download the example CSV file to your computer to update with your own data.

You can select one of the chart options below:

- Bar Chart
- Column Chart
- Line Chart
- Area Chart
- Combo Chart
- Donut Chart
- Pie Chart
- Scatter Chart
- Stepped Area Chart

Once you've chosen your chart type and added your spreadsheet data, click the **Insert Chart to Figma** button to instantly add your chart to Figma as a new editable frame on your current page.

You can optionally customize the colors, text content or any other elements of the chart design by editing the vector/text layers that are automatically added to your page when the chart is inserted from the plugin.

---

---
url: "/copydoc/sync/google-sheets.md"
description: "Connect a public Google Sheet to CopyDoc and sync spreadsheet content into matching Figma layers."
---

# Syncing Google Sheets content to Figma

> Connect a public Google Sheet to CopyDoc and sync spreadsheet content into matching Figma layers.

### Video Tutorial: Sync Google Sheets spreadsheet content to Figma

This video walks through how to sync content from a Google Sheets spreadsheet to your Figma designs using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/J67CDH5XkWk)

### Video Tutorial: Auto repeat and sync Figma layers from a spreadsheet

This video walks through how to automatically repeat and sync Figma layers from a spreadsheet using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/_1MHyfYNHFQ)

## Syncing your Google Sheet content to Figma layers

[Video](/assets/videos/copydoc/sync/google-sheets-sync.mp4)

If you've created your spreadsheet as a Google Sheet, you can sync it with your Figma design by clicking the **Sync Content** button in the main CopyDoc plugin screen, which will open up the settings panel for this feature.

### Making your Google Sheet link public and copying the URL

CopyDoc needs permission to read the spreadsheet. In Google Sheets, select **Share** and change **Restricted** to **Anyone with the link** before copying the URL.

> **Info:** If company policy prevents link sharing, download the Google Sheet as an Excel (`.xlsx`) file. You can [drag and drop that file into CopyDoc](/copydoc/sync/spreadsheet-file) and use the same sync workflow without making the sheet public.

### Pasting your Google Sheet URL and syncing with Figma

You can preview your spreadsheet contents by pasting your public Google Sheets URL into the **Sync Public Google Sheet** input field; if it's a valid, and public URL that's correctly structured, it will automatically load a preview of the headers that it contains after pasting it.

Ensure that you select at least one layer in Figma that contains renamed layers to match your spreadsheet headers, and then click on the **Sync Spreadsheet Rows with Figma Layers** button. This will sync the content from your spreadsheet with your selected renamed Figma layers.

> **Warning:** **Figma text layers with missing fonts can't be updated**. If your Figma text layer contains a [missing font](https://help.figma.com/hc/en-us/articles/360039956994-Manage-missing-fonts), the plugin won't be able to update it. Please ensure any text layers you would like to update in any way using the CopyDoc plugin have their missing fonts resolved.

## Auto repeat a single Figma layer with your spreadsheet rows

[Video](/assets/videos/copydoc/sync/auto-repeat-sync.mp4)

When using the **Content** or **Styles** sync tab options, you can automatically repeat a single Figma layer by enabling the **Auto Repeat** toggle, which will automatically copy the original selected Figma layer and duplicate it as many times as the number of rows that your spreadsheet data contains.

If your selected Figma layer is already directly inside of another Figma layer with Auto Layout enabled, the selected layer will automatically be duplicated inside of that parent layer, otherwise, CopyDoc will create a brand new Auto Layout frame and duplicate your new Figma layers there instead.

### Dynamic auto-repeating parent layer names

[Video](/assets/videos/copydoc/sync/auto-renaming-frames.mp4)

If you want to dynamically name the new auto-repeating Figma layer from your spreadsheet data, too, you can do this by ensuring the Figma layer name that you're repeating (for example, `#Title`) matches a column in the spreadsheet that you're syncing; this will automatically use the value from each row under the `#Title` column in your spreadsheet as the layer name for each duplicated Figma layer.

If there's no matching layer name in your spreadsheet, the CopyDoc plugin will take the original Figma layer name and append a row number to it (for example, `My Frame Layer (Row 3)`) instead.

---

---
url: "/copydoc/sync/hiding.md"
description: "Along with updating text content in your Figma layers, the **Sync Spreadsheet Content** feature also supports automatically hiding and showing Figma layers in the same way."
---

# Hiding and showing Figma layers from the spreadsheet

> Along with updating text content in your Figma layers, the **Sync Spreadsheet Content** feature also supports automatically hiding and showing Figma layers in the same way.

[Video](/assets/videos/copydoc/sync/hidden-sync-figma-layers.mp4)

## Hiding Layers

If you want to hide any of the Figma layers that you're syncing from a spreadsheet, you can put the special keyword `_hide` as the value of your cell; when you sync the spreadsheet with Figma, any matching Figma layers will automatically be hidden.

## Showing Layers

If you want to show any of the Figma layers that you're syncing from a spreadsheet, you can put the special keyword `_show` as the value of your cell; when you sync the spreadsheet with Figma, any matching Figma layers will automatically be set to visible.

---

---
url: "/copydoc/sync/images.md"
description: "You can sync images from external URLs (or from a local `.zip` file) to image fills for your Figma layers using the same naming method as syncing text from a spreadsheet."
---

# Including image URLs in your spreadsheet

> You can sync images from external URLs (or from a local `.zip` file) to image fills for your Figma layers using the same naming method as syncing text from a spreadsheet.

[Video](/assets/videos/copydoc/sync/spreadsheet-image.mp4)

If you want to use images in your spreadsheet that will get added to your non-text Figma layers, you can paste any image URLs that begin with `http://` or `https://` (or you can also use an inline `` HTML tag), and the CopyDoc plugin will automatically assume that they're being used as images. Please also ensure you name your image column header to be the same as your Figma image layers (for example, **#Poster**).

|#Poster |
|-------|
|https://i.redd.it/3fl2s0q1ug661.jpg|
|https://i.redd.it/3fl2s0q1ug661.jpg|
|https://i.redd.it/3fl2s0q1ug661.jpg|

> **Tip:** **Video files are also supported for paid Figma plans**. As per [Figma's documentation](https://help.figma.com/hc/en-us/articles/8878274530455-Add-video-to-prototypes) for native video support, if you're running CopyDoc in a Figma file that's on a paid Figma plan (Education, Professional, Organization, or Enterprise team), you'll also be able to sync videos in the same way as the example of syncing images above. Videos files can be up to 100mb in size and in .mp4, .mov or .webm format.

## Sync local image files from your computer via XLSX import

### Video Tutorial: Sync a folder of images to Figma layers via a spreadsheet

This video walks through how to sync an images folder with Figma layers using a spreadsheet with the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/4JV01bi8nOw)

### Video Tutorial: Sync SVG icons from a spreadsheet to your Figma layers

This video walks through how to sync SVG icons from a spreadsheet to your Figma layers with the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/eybeymh7IdQ)

If you prefer to use images already saved to your computer, instead of image URLs online, you can do this by zipping your images along with your XLSX file.

If you need a hand with this, please follow our step-by-step video tutorials (above) on how to sync a folder of images to your Figma layers via an XLSX spreadsheet.

> **Warning:** **Zip encoding for image files with special characters**. If you're zipping local image files with characters like "æøå" (for example, `Læge.png`), please ensure that the zip file has the correct encoding, as otherwise these characters will be removed or replaced automatically and won't match up with the same filenames in your spreadsheet. If you're on Mac, just using right-click -> "Compress" should be fine, and if you're using Windows, the [WinRAR](https://www.win-rar.com/download.html?&L=0) app should do this correctly.

> **Note:** **2gb maximum size limit for local zip files**. Note that due to the browser's 2gb (gigabyte) memory limit per tab (which the Figma app and browser version are both limited to), any `.zip` files containing local images that you're dropping into CopyDoc for syncing content must be _below_ 2gb (gigabytes), otherwise the content won't be loaded due to exceeding the memory limit for unzipping the file in the plugin.

## Auto repeat a single Figma layer with your spreadsheet rows

[Video](/assets/videos/copydoc/sync/auto-repeat-sync.mp4)

When using the **Content** or **Styles** sync tab options, you can automatically repeat a single Figma layer by enabling the **Auto Repeat** toggle, which will automatically copy the original selected Figma layer and duplicate it as many times as the number of rows that your spreadsheet data contains.

If your selected Figma layer is already directly inside of another Figma layer with Auto Layout enabled, the selected layer will automatically be duplicated inside of that parent layer, otherwise, CopyDoc will create a brand new Auto Layout frame and duplicate your new Figma layers there instead.

### Dynamic auto-repeating parent layer names

[Video](/assets/videos/copydoc/sync/auto-renaming-frames.mp4)

If you want to dynamically name the new auto-repeating Figma layer from your spreadsheet data, too, you can do this by ensuring the Figma layer name that you're repeating (for example, `#Title`) matches a column in the spreadsheet that you're syncing; this will automatically use the value from each row under the `#Title` column in your spreadsheet as the layer name for each duplicated Figma layer.

If there's no matching layer name in your spreadsheet, the CopyDoc plugin will take the original Figma layer name and append a row number to it (for example, `My Frame Layer (Row 3)`) instead.

---

---
url: "/copydoc/sync/merge-tags.md"
description: "CopyDoc supports powerful merge tag syntax that lets you dynamically replace content within your text layers, while preserving formatting and allowing multiple replacements in a single layer."
---

# Using merge tags in Figma to replace merge tag text with spreadsheet data

> CopyDoc supports powerful merge tag syntax that lets you dynamically replace content within your text layers, while preserving formatting and allowing multiple replacements in a single layer.

### Video Tutorial: Sync merge tags in Figma text layers from a spreadsheet

This video walks through how to sync merge tags in Figma text layers from a spreadsheet using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/odONMaXerQQ)
### Video Tutorial: Sync content with advanced merge tags in spreadsheet cells

This video walks through how to sync Figma text content and rename Figma layers with advanced merge tags in spreadsheet cells using the CopyDoc plugin
[Embedded media](https://www.youtube.com/embed/M3TCf3VWOlg)

[Video](/assets/videos/copydoc/sync/placeholder-sync.mp4)

## Merge tag Syntax

CopyDoc uses a simple merge tag syntax: `#{columnName}`. You can insert these merge tags anywhere in your text layers, and they'll be replaced with values from your spreadsheet.

### Example Usage

**Figma text layer:**
```
Hello #{firstName} #{lastName},
Your order #{orderId} is ready for pickup!
```

**Spreadsheet columns:**
| firstName | lastName | orderId |
|-----------|----------|---------|
| John      | Smith    | 12345   |
| Sarah     | Johnson  | 67890   |

**Result after sync:**
- "Hello John Smith, Your order 12345 is ready for pickup!"
- "Hello Sarah Johnson, Your order 67890 is ready for pickup!"

## Key Benefits

- **Preserve formatting**: Text styles, fonts, and colors remain intact
- **Multiple merge tags**: Use as many merge tags as needed in one layer
- **Flexible column naming**: Works with various column header formats
- **Smart fallback**: If no matching column is found, the merge tag text is preserved
- **Cross-row references**: Pull data from specific rows using `.N` syntax
- **Dynamic layer naming**: Use merge tags to rename frames and layers

### Column Header Flexibility

CopyDoc is smart about matching column headers. All of these formats work:
- Standard: `firstName` matches `#{firstName}`
- With # prefix: `#firstName` matches `#{firstName}`
- Full merge tag: `#{firstName}` matches `#{firstName}`

## Advanced Features

[Video](/assets/videos/copydoc/sync/advanced-spreadsheet-merge-tags.mp4)

### Row Index Override (`.N` Syntax)

Pull data from specific rows using the `.N` syntax, where `N` is the row number (starting from 2, as row 1 is headers).

**Example:**

**Spreadsheet:**
| firstName | lastName |
|-----------|----------|
| John      | Smith    |
| Sarah     | Johnson  |
| Mike      | Williams |

**Figma text layer in row 1:**

Current: `#{firstName} #{lastName}`
Next up: `#{firstName.3} #{lastName.3}`

**Result:**

Current: John Smith
Next up: Sarah Johnson

This is useful for:
- Creating "up next" or "previous" references
- Showing related data from other rows
- Building comparative displays
- Creating reference lists

### Renaming Layers with Merge Tags

Merge tags work for renaming frames and layers, too. Use them in your spreadsheet's column values to dynamically generate layer names.

**Example:**

**Spreadsheet:**
| frameName | firstName | lastName |
|------------------------|-----------|----------|
| `#{firstName} #{lastName}` | John      | Smith    |
| `#{firstName} #{lastName}` | Sarah     | Johnson  |

**Result:** Your frames will be renamed to:
- "John Smith"
- "Sarah Johnson"

You can also use row index override in layer names:
- `#{firstName.2}` vs `#{firstName.3}` creates comparative frame names
- Perfect for "before/after" or "option A vs option B" scenarios

### Bulk Layer Renaming

For simpler renaming, if you have 6 Figma frames all named **#My Frame**, you can use this as a column name in your spreadsheet and rename them in bulk with static values or merge tag combinations.

## Spreadsheet Cell Content Interpolation

Spreadsheet cells can reference other columns using merge tag syntax; this happens **before** the value is applied to Figma layers, allowing you to create computed values.

**Example:**

**Spreadsheet:**
| firstName | lastName | fullName | greeting |
|-----------|----------|----------|----------|
| John      | Smith    | `#{firstName} #{lastName}` | `Hello, #{fullName}!` |
| Sarah     | Johnson  | `#{firstName} #{lastName}` | `Hello, #{fullName}!` |

**How it works:**
1. The `fullName` column resolves to "John Smith" or "Sarah Johnson"
2. The `greeting` column then uses that resolved value to become "Hello, John Smith!" or "Hello, Sarah Johnson!"
3. This final value is applied to your Figma text layers

**Benefits:**
- Create reusable formulas in your spreadsheet
- Combine multiple columns into formatted strings
- Build complex content from simple data pieces
- Maintain consistency across similar content patterns

**Advanced Example with Row References:**

| product  | price | competitor | comparison |
|----------|-------|------------|------------|
| Widget A | $99   | Widget B   | `#{product} (#{price})` vs `#{product.3} (#{price.3})` |
| Widget B | $149  | Widget C   | `#{product} (#{price})` vs `#{product.4} (#{price.4})` |
| Widget C | $199  | Widget A   | `#{product} (#{price})` vs `#{product.2} (#{price.2})` |

This creates dynamic comparison text like "Widget A ($99) vs Widget B ($149)"

### Common Use Cases

- **Email templates**: Personalize recipient names and details
- **Business cards**: Generate multiple variations with different contact info
- **Marketing materials**: Create localized versions with different content
- **Data visualizations**: Update labels and titles dynamically
- **Product catalogs**: Batch update product names, prices, and descriptions
- **Comparative layouts**: Show data from multiple rows side-by-side
- **Dynamic layer organization**: Automatically name frames based on their content

### Tips

- Add quotes around values with commas in your CSV: `"42,580"`
- Test with a few layers first before applying to your entire design
- Use meaningful column names to make your spreadsheet easy to understand
- Row numbers start at 2 (row 1 is headers), so `.2` references the first data row
- Spreadsheet cell interpolation resolves first, then Figma layer interpolation
- Combine merge tags creatively to build complex dynamic content

---

---
url: "/copydoc/sync/renaming.md"
description: "Along with updating text content in your Figma layers, the **Sync Spreadsheet Content** feature also supports automatically renaming non-text layers in the same way."
---

# Renaming Figma layers from the spreadsheet

> Along with updating text content in your Figma layers, the **Sync Spreadsheet Content** feature also supports automatically renaming non-text layers in the same way.

### Video Tutorial: Rename Figma layers in bulk from a spreadsheet

This video walks through how to rename Figma layers in bulk from a spreadsheet using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/6lXxRQH98mE)

[Video](/assets/videos/copydoc/sync/spreadsheet-sync-layer-names.mp4)

For example, if you have 6 Figma frames all named **#My Frame**, you can use this as a column name in the first row of your spreadsheet, and then add 6 more rows under that column in your spreadsheet containing the names you'd like rename each of the selected frames to in Figma (for example, "My New Frame Name", "My Other New Frame Name" etc).

When you sync the spreadsheet with Figma, any matching (non-text) Figma layers will automatically be renamed.

---

---
url: "/copydoc/sync/spreadsheet-file.md"
description: "If you've created your spreadsheet as either a `.csv` or `.xlsx` file, you can sync it with your Figma design by clicking the **Sync Content** button in the main CopyDoc plugin screen, which will open up the settings panel for this feature."
---

# Syncing content to Figma from a CSV/XLSX file

> If you've created your spreadsheet as either a `.csv` or `.xlsx` file, you can sync it with your Figma design by clicking the **Sync Content** button in the main CopyDoc plugin screen, which will open up the settings panel for this feature.

### Video Tutorial: Sync XLSX Excel spreadsheet content to Figma

This video walks through how to sync content from an Excel spreadsheet to your Figma designs using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/7YmbMj8LGXI)

### Video Tutorial: Sync CSV spreadsheet content to Figma

This video walks through how to sync content from a CSV spreadsheet to your Figma designs using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/5qdxq629A48)

### Video Tutorial: Auto repeat and sync Figma layers from a spreadsheet

This video walks through how to automatically repeat and sync Figma layers from a spreadsheet using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/_1MHyfYNHFQ)

### Video Tutorial: Sync a folder of images to Figma layers via a spreadsheet

This video walks through how to sync an images folder with Figma layers using a spreadsheet with the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/4JV01bi8nOw)

### Video Tutorial: Sync SVG icons from a spreadsheet to your Figma layers

This video walks through how to sync SVG icons from a spreadsheet to your Figma layers with the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/eybeymh7IdQ)

## Syncing your CSV or XLSX file content to Figma layers

[Video](/assets/videos/copydoc/sync/xlsx-sync.mp4)

You can preview your spreadsheet contents by either dragging and dropping your correctly structured `.csv` or `.xlsx` file into the **Sync XLSX/CSV File** dropzone area, or by clicking it and selecting the file manually by browsing for it on your computer.

Ensure that you select at least one layer in Figma that contains renamed layers to match your spreadsheet headers, and then click on the **Sync Spreadsheet Rows with Figma Layers** button. This will sync the content from your spreadsheet with your selected renamed Figma layers.

> **Warning:** **Figma text layers with missing fonts can't be updated**. If your Figma text layer contains a [missing font](https://help.figma.com/hc/en-us/articles/360039956994-Manage-missing-fonts), the plugin won't be able to update it. Please ensure any text layers you would like to update in any way using the CopyDoc plugin have their missing fonts resolved.

## Auto repeat a single Figma layer with your spreadsheet rows

[Video](/assets/videos/copydoc/sync/auto-repeat-sync.mp4)

When using the **Content** or **Styles** sync tab options, you can automatically repeat a single Figma layer by enabling the **Auto Repeat** toggle, which will automatically copy the original selected Figma layer and duplicate it as many times as the number of rows that your spreadsheet data contains.

If your selected Figma layer is already directly inside of another Figma layer with Auto Layout enabled, the selected layer will automatically be duplicated inside of that parent layer, otherwise, CopyDoc will create a brand new Auto Layout frame and duplicate your new Figma layers there instead.

### Dynamic auto-repeating parent layer names

[Video](/assets/videos/copydoc/sync/auto-renaming-frames.mp4)

If you want to dynamically name the new auto-repeating Figma layer from your spreadsheet data, too, you can do this by ensuring the Figma layer name that you're repeating (for example, `#Title`) matches a column in the spreadsheet that you're syncing; this will automatically use the value from each row under the `#Title` column in your spreadsheet as the layer name for each duplicated Figma layer.

If there's no matching layer name in your spreadsheet, the CopyDoc plugin will take the original Figma layer name and append a row number to it (for example, `My Frame Layer (Row 3)`) instead.

---

---
url: "/copydoc/sync/structure-figma.md"
description: "In Figma, you'll rename your text layers to be the same as the header names that you already setup in your spreadsheet."
---

# Naming your layers in Figma to match the spreadsheet

> In Figma, you'll rename your text layers to be the same as the header names that you already setup in your spreadsheet.

[Video](/assets/videos/copydoc/sync/naming-figma-layers.mp4)

As an example, if you named your spreadsheet headers **#Title** or **#Description**, then you would then name your text layers **#Title** or **#Description** as well; this will ensure that they are mapped together when the spreadsheet is synced up in the plugin later.

## Assigning specific rows to Figma layers

To sync a specific spreadsheet row with a parent Frame layer, append a period (.) followed by the target row number to the layer name. For example; renaming a parent frame layer from `#My Frame` to `#My Frame.3` instructs the sync process to use data from the 3rd row of your spreadsheet when you select that frame layer and provide the spreadsheet. By default, syncing a single frame or layer uses the first row.

You can also override the row used for _individual_ child text layers within the parent frame by applying the same naming convention. For example; changing a nested text layer from `#Heading` to `#Heading.5` ensures that this layer pulls data from the 5th row of the spreadsheet, _even if_ the parent frame is set to `#My Frame.3` (which uses the 3rd row for other synced data).

This optional naming convention allows precise control over which spreadsheet row populates each layer during the sync process.

> **Tip:** **Assigning random rows to Figma layers**. If you would like a Figma layer to sync with a _random_ row's value, you can add an `.x`  to the end of your Figma layer name, directly after the header name. For example, `#Title.x` will always fetch a random row from the **#Title** column of your spreadsheet.

## Figma image layers

If you're using the spreadsheet to update image content, you can also rename your Figma image layers with the same spreadsheet header name (for example, **#Poster**) that contains image URLs in its column's content rows; your Figma layers will automatically be replaced with image content when the spreadsheet is synced.

## Updating (non-text) Figma layer names

If you want to rename any non-text Figma layers, you can use the layer name (for example, **My Frame**) as your column header name, and then add any new names in the rows below it, and any matching Figma layer names will automatically be renamed when the spreadsheet is synced.

## Auto repeat a single Figma layer with your spreadsheet rows

[Video](/assets/videos/copydoc/sync/auto-repeat-sync.mp4)

When using the **Content** or **Styles** sync tab options, you can automatically repeat a single Figma layer by enabling the **Auto Repeat** toggle, which will automatically copy the original selected Figma layer and duplicate it as many times as the number of rows that your spreadsheet data contains.

If your selected Figma layer is already directly inside of another Figma layer with Auto Layout enabled, the selected layer will automatically be duplicated inside of that parent layer, otherwise, CopyDoc will create a brand new Auto Layout frame and duplicate your new Figma layers there instead.

### Dynamic auto-repeating parent layer names

[Video](/assets/videos/copydoc/sync/auto-renaming-frames.mp4)

If you want to dynamically name the new auto-repeating Figma layer from your spreadsheet data, too, you can do this by ensuring the Figma layer name that you're repeating (for example, `#Title`) matches a column in the spreadsheet that you're syncing; this will automatically use the value from each row under the `#Title` column in your spreadsheet as the layer name for each duplicated Figma layer.

If there's no matching layer name in your spreadsheet, the CopyDoc plugin will take the original Figma layer name and append a row number to it (for example, `My Frame Layer (Row 3)`) instead.

---

---
url: "/copydoc/sync/structure-spreadsheet.md"
description: "The **Sync Spreadsheet Content** feature in CopyDoc lets you sync repeatable text and image content from multiple rows from any spreadsheet (which can be an `.xlsx`/`.csv` file or a public Google Sheet URL) to your selected Figma layers."
---

# Structuring your spreadsheet to match your Figma layers

> The **Sync Spreadsheet Content** feature in CopyDoc lets you sync repeatable text and image content from multiple rows from any spreadsheet (which can be an `.xlsx`/`.csv` file or a public Google Sheet URL) to your selected Figma layers.

### Auto repeat and sync Figma layers from a spreadsheet

This video walks through how to automatically repeat and sync Figma layers from a spreadsheet using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/_1MHyfYNHFQ)

[Video](/assets/videos/copydoc/sync/structuring-spreadsheet.mp4)

This can be really helpful for designs that contain repeating grids or lists where you need to populate it with real content automatically.

You can also use this feature to rename layers or apply CSS styles from your spreadsheet, too.

## Example spreadsheet structure for content sync with Figma layers

Regardless of if you're using an XLSX, CSV or Google Sheet for your spreadsheet, the structure is always the same; the very first row (or the "header") of your spreadsheet has to contain the names of the Figma layers that you would like to sync the rest of the rows underneath it with.

You can name these whatever you like, but it's easiest to use a short yet descriptive hashtag format like: **#Title** or **#Description**. In Figma, you would then name your text layers **#Title** or **#Description** as well; this will ensure that they are mapped together when the spreadsheet is synced up in the plugin later.

|#Title  |#Genre      |#Age Rating   |#Total Reviews|
|-------|-----------|-------------|-------------|
|No Time To Die|Action     |13           |123 Reviews  |
|Dune   |Sci-Fi Action|14           |124 Reviews  |
|Black Widow|Action     |18           |125 Reviews  |
|Suicide Squad|Action     |18           |125 Reviews  |

## Auto repeat a single Figma layer with your spreadsheet rows

[Video](/assets/videos/copydoc/sync/auto-repeat-sync.mp4)

When using the **Content** or **Styles** sync tab options, you can automatically repeat a single Figma layer by enabling the **Auto Repeat** toggle, which will automatically copy the original selected Figma layer and duplicate it as many times as the number of rows that your spreadsheet data contains.

If your selected Figma layer is already directly inside of another Figma layer with Auto Layout enabled, the selected layer will automatically be duplicated inside of that parent layer, otherwise, CopyDoc will create a brand new Auto Layout frame and duplicate your new Figma layers there instead.

### Dynamic auto-repeating parent layer names

[Video](/assets/videos/copydoc/sync/auto-renaming-frames.mp4)

If you want to dynamically name the new auto-repeating Figma layer from your spreadsheet data, too, you can do this by ensuring the Figma layer name that you're repeating (for example, `#Title`) matches a column in the spreadsheet that you're syncing; this will automatically use the value from each row under the `#Title` column in your spreadsheet as the layer name for each duplicated Figma layer.

If there's no matching layer name in your spreadsheet, the CopyDoc plugin will take the original Figma layer name and append a row number to it (for example, `My Frame Layer (Row 3)`) instead.

## Supported Markdown formatting for text content

You can optionally add some basic markdown formatting (bold, italics) and links to your spreadsheet content, which will automatically be applied when the snippet is synced to your Figma text layer.

- You can specify **Bold** text by using double asterisks `**Snipet text to bold**` or double underscores `eg.__Snipet text to bold__`
- You can specify *Italic* text by using single asterisks `*Italic Snippet Text*` or single underscores `eg._Italic Snippet Text_`
- You can specify ***Bold Italic*** text by using triple asterisks `***Bold Italic Snippet Text***` or triple underscores `eg.___Bold Italic Snippet Text___`
- You can specify hyperlinks by using the markdown syntax of `This is [my link here](https://example.com) in a text snippet` (you can also format the link text by adding the bold/italic syntax inside of the link's `[]` text area).

---

---
url: "/copydoc/sync/styles.md"
description: "Along with updating text content in your Figma layers, the **Sync Spreadsheet Content** feature also supports automatically applying CSS styles to your layers in the same way."
---

# Using CSS in your spreadsheet to update Figma layer styles

> Along with updating text content in your Figma layers, the **Sync Spreadsheet Content** feature also supports automatically applying CSS styles to your layers in the same way.

### Video Tutorial: Style Figma layers from a spreadsheet with CSS style sync

This video walks through how to style Figma layers from a spreadsheet with CSS style sync using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/l0Bhqx6X3Ic)

[Video](/assets/videos/copydoc/sync/spreadsheet-styles-sync.mp4)

For example, if you have text layers in Figma named **#SectionHeading**, you can change the font size and color of those layers in Figma by adding `font-size: 40px; color: #999999;` to your row(s) underneath the **#SectionHeading** column in your spreadsheet.

When you sync the spreadsheet with Figma, any matching Figma layers will automatically have their styles updated, provided that the CSS value is supported and applies to that layer type.

## Supported CSS properties that you can use to style your Figma layers

Certain CSS properties are available for different layer types, and you can apply multiple properties to a layer by putting them in the same spreadsheet cell:

for example, `color: #000000; font-size: 24px; font-weight: bold;`

|#HeroBlock|#Menu                                   |#CardFrame      |#StaffName                                         |
|----------|----------------------------------------|----------------|---------------------------------------------------|
|background-color: #818AF9; color: #FFF; font-size: 16px; border-radius: 20px;|opacity: 0.3; background-color: #CCD4FF;|font-size: 10px;|font-size: 22px; color: #818AF9; font-weight: bold;|
|background-color: #818AF9; color: #FFF; font-size: 16px; border-radius: 20px;|opacity: 0.3; background-color: #CCD4FF;|font-size: 10px;|font-size: 22px; color: #818AF9; font-weight: bold;|

Below are the CSS properties that are currently supported in the spreadsheet sync feature:

### Text Layers

These CSS properties can be applied to any Figma text layers.

- color (for example, `color: #CCCCCC;`)
- font-size (for example, `font-size: 40px;`)
- line-height (for example, `line-height: 48px;`)
- font-family (for example, `font-family: Arial;`)
- font-weight (for example, `font-weight: bold;`)
- font-style (for example, `font-style: italic;`)
- text-align (for example, `text-align: center;`)
- text-transform (for example, `text-transform: uppercase;`)
- vertical-align (for example, `vertical-align: middle;`)

> **Tip:** **Applying text styles to all child layers**. If you apply any Text Layer CSS styles (for example, `font-size: 30px`) to a layer that contains child layers (for example, Frame, Group, Component, Instance), this will automatically apply the style to _every_ text layer inside of that matching layer.

### Other Layers

These CSS properties can be applied to other Figma layers (images, rectangles, frames etc):

- width (for example, `width: 100px;`)
- height (for example, `height: 100px;`)
- opacity (for example, `opacity: 0.5;`)
- background-color (for example, `background-color: #CCCCCC;`)
- border (for example, `border: 1px solid #CCCCCC;`)
- border-radius (for example, `border-radius: 20px;`)

### Positioning Properties

These CSS properties can be applied to any Figma layers (including text, images, rectangles, frames etc).

### Transform

The `transform` property in CSS lets you visually manipulate an element’s position, rotation, and scale without affecting its actual layout space. This is often used in Figma and similar design tools to reproduce movements, rotations, and resizes that happen *within* a frame, not relative to the document flow.

Common transform functions include:

- **translate**
  Moves an element along both the X and Y axes.
  _Example:_ `transform: translate(10px, 20px)`
  → moves the element **10px right** and **20px down**.

- **translateX**
  Moves an element horizontally along the X-axis.
  _Example:_ `transform: translateX(10px)`
  → moves the element **10px to the right**.

- **translateY**
  Moves an element vertically along the Y-axis.
  _Example:_ `transform: translateY(20px)`
  → moves the element **20px down**.

- **rotate**
  Rotates an element around its origin point.
  _Example:_ `transform: rotate(45deg)`
  → rotates the element **45 degrees clockwise**.

- **scale**
  Resizes an element by a scaling factor on the X and Y axes.
  _Example:_ `transform: scale(1.5)` or `transform: scale(2, 1.5)`
  → increases the element’s size **1.5× overall** or **2× horizontally / 1.5× vertically**.

> **Note:** Multiple transform functions can be combined in sequence.
> Example:
> ```css
> transform: translateX(10px) rotate(45deg) scale(1.2);
> ```
> The order matters because each function applies to the result of the previous one.

### X/Y Position

In contrast to transforms, the **X** and **Y** values in Figma correspond to the element’s *absolute position* within its parent frame or coordinate system. In CSS, this positioning is represented by properties such as:

- **top**
  Specifies the vertical offset from the top edge of the containing element.
  _Example:_ `top: 100px;`
  → positions the element **100px below the top** of its container.

- **left**
  Specifies the horizontal offset from the left edge of the containing element.
  _Example:_ `left: 100px;`
  → positions the element **100px from the left** of its container.

> **Note:** **Difference from transform:**
> - `top` and `left` define the element’s **layout position**.
> - `transform: translate()` shifts the element **visually** without affecting surrounding elements or layout flow.

## Auto repeat a single Figma layer with your spreadsheet rows

[Video](/assets/videos/copydoc/sync/auto-repeat-sync.mp4)

When using the **Content** or **Styles** sync tab options, you can automatically repeat a single Figma layer by enabling the **Auto Repeat** toggle, which will automatically copy the original selected Figma layer and duplicate it as many times as the number of rows that your spreadsheet data contains.

If your selected Figma layer is already directly inside of another Figma layer with Auto Layout enabled, the selected layer will automatically be duplicated inside of that parent layer, otherwise, CopyDoc will create a brand new Auto Layout frame and duplicate your new Figma layers there instead.

### Dynamic auto-repeating parent layer names

[Video](/assets/videos/copydoc/sync/auto-renaming-frames.mp4)

If you want to dynamically name the new auto-repeating Figma layer from your spreadsheet data, too, you can do this by ensuring the Figma layer name that you're repeating (for example, `#Title`) matches a column in the spreadsheet that you're syncing; this will automatically use the value from each row under the `#Title` column in your spreadsheet as the layer name for each duplicated Figma layer.

If there's no matching layer name in your spreadsheet, the CopyDoc plugin will take the original Figma layer name and append a row number to it (for example, `My Frame Layer (Row 3)`) instead.

---

---
url: "/copydoc/sync/table.md"
description: "As well as syncing spreadsheet rows with Figma layers from a spreadsheet, the **Sync Spreadsheet Content** feature in CopyDoc lets you sync repeatable text and image content from multiple rows from any spreadsheet (which can be an `.xlsx`/`.csv` file or a public Google Sheet URL) to your selected Figma layers."
---

# Generating an auto-layout table in Figma from your spreadsheet

> As well as syncing spreadsheet rows with Figma layers from a spreadsheet, the **Sync Spreadsheet Content** feature in CopyDoc lets you sync repeatable text and image content from multiple rows from any spreadsheet (which can be an `.xlsx`/`.csv` file or a public Google Sheet URL) to your selected Figma layers.

[Video](/assets/videos/copydoc/sync/table-import.mp4)

Regardless of if you're using an XLSX, CSV or Google Sheet for your spreadsheet, the structure is always the same; the very first row (or the "header") of your spreadsheet is used as the first header row of the table (as the "component" row), and any rows underneath will become instances of that first header.

You can preview your spreadsheet contents by pasting your [public Google Sheets URL](/copydoc/sync/google-sheets#making-your-google-sheet-link-public-and-copying-the-url) into the **Sync Public Google Sheet** input field; if it's a valid, and public URL that's correctly structured, it will automatically load a preview of the headers that it contains after pasting it.

Once the preview has loaded, and then click on the **Generate a table in Figma from this spreadsheet** button. This will import the content from your spreadsheet into a table on your current Figma page.

## Example spreadsheet structure for table imports

Regardless of if you're using an XLSX, CSV or Google Sheet for your spreadsheet, the structure is always the same; the very first row (or the "header") of your spreadsheet has to contain the names of the Figma layers that you would like to sync the rest of the rows underneath it with.

You can name these whatever you like, but it's easiest to use a short yet descriptive hashtag format like: **#Title** or **#Description**. In Figma, you would then name your text layers **#Title** or **#Description** as well; this will ensure that they are mapped together when the spreadsheet is synced up in the plugin later.

|#Title  |#Genre      |#Age Rating   |#Total Reviews|
|-------|-----------|-------------|-------------|
|No Time To Die|Action     |13           |123 Reviews  |
|Dune   |Sci-Fi Action|14           |124 Reviews  |
|Black Widow|Action     |18           |125 Reviews  |
|Suicide Squad|Action     |18           |125 Reviews  |

## Supported Markdown formatting for table text content

You can optionally add some basic markdown formatting (bold, italics) and links to your spreadsheet content, which will automatically be applied when the snippet is synced to your Figma text layer.

- You can specify **Bold** text by using double asterisks `**Snipet text to bold**` or double underscores `eg.__Snipet text to bold__`
- You can specify *Italic* text by using single asterisks `*Italic Snippet Text*` or single underscores `eg._Italic Snippet Text_`
- You can specify ***Bold Italic*** text by using triple asterisks `***Bold Italic Snippet Text***` or triple underscores `eg.___Bold Italic Snippet Text___`
- You can specify hyperlinks by using the markdown syntax of `This is [my link here](https://example.com) in a text snippet` (you can also format the link text by adding the bold/italic syntax inside of the link's `[]` text area).

---

---
url: "/copydoc/sync/variants.md"
description: "You can use the Sync Content feature in CopyDoc to automatically swap out Figma variants for named component layers when syncing your spreadsheet data."
---

# Syncing Figma component variants from the spreadsheet

> You can use the Sync Content feature in CopyDoc to automatically swap out Figma variants for named component layers when syncing your spreadsheet data.

### Video Tutorial: Sync component variants in Figma using a spreadsheet

This video walks through how to sync component variants in Figma using a spreadsheet with the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/pytew54ZZ_g)

## Step 1: Setting up your component layer variants in Figma

[Video](/assets/videos/copydoc/sync/create-variants.mp4)

Before you sync your spreadsheet to swap out component variants, you'll first need to set up your Figma component set with variants as a Figma layer by following a few steps below (as shown visually in the video above).

1. Create a new Figma component layer and name it to match your spreadsheet header (for example, **#Tag**)
2. Right-click the Figma component layer, hover over **Main component** and click **Add variant** to [create a new Figma component set](https://help.figma.com/hc/en-us/articles/360056440594-Create-and-use-variants).
3. Add as many new variants as needed by **clicking the + icon button** at the bottom of the Figma component set layer (when it's selected), and update the style for each of the new variants (for example, changing backgrounds or colors, etc).
4. Once you've created your component variants, you can **customize the names of the property and variant names**, renaming the Figma defaults to make them easier to identify and use in your spreasheet (for example, renaming "Property 1" to "Genre", and "Variant 1" to "Synthwave").
5. Go to your **Assets** panel in Figma, and drag and drop your new Figma component (for example, #Tag) onto your Figma file and move it into any Figma frame(s) you'd like to sync from a spreadsheet.
6. Follow the **Step 2 instructions below** to automatically swap your component _variant_ option by syncing rows from a spreadsheet with your Figma frames.

## Step 2: Swapping out variants by syncing your spreadsheet

[Video](/assets/videos/copydoc/sync/sync-variants.mp4)

Similar to syncing normal text content, to swap out variants from a spreadsheet, you'll first need to add your Component layer name (for example, **Tag**) as a new _header column_ value in the first row of your spreadsheet.

Then, you can copy/paste the property and variant name that's visible when double-clicking your Figma variant layer in the sidebar, which will have an **=** equals sign (for example, **Genre=Synthwave**) to show the property name and variant name values, in the following spreadsheet rows inside the same column, like the example below (and as shown visually in the video above).

|**#Tag** |
|-------|
|Genre=Synthwave|
|Genre=Outrun|
|Genre=Vaporwave|
|Genre=Darksynth|

When you sync the spreadsheet with Figma, any matching named component Figma layers (for example, **#Tag**) will automatically have their _variant_ value swapped out, based on the variant value you specified in your spreadsheet rows.

> **Tip:** You can still sync additional text or image content normally for other layers in the same spreadsheet by creating extra columns for those, too.

---

---
url: "/copydoc/tutorials.md"
description: "The best free Figma tutorial videos for beginners (or power users) to level up."
---

# CopyDoc Video Tutorials

> The best free Figma tutorial videos for beginners (or power users) to level up.

## Export/Re-Import Text

- [Import/export Figma text layers with CSV files](/copydoc/tutorials/import-export-figma-text-layers-with-csv-files)
- [Export & Re-Import Figma text content via Airtable sync](/copydoc/tutorials/export-and-re-import-figma-text-content-via-airtable-sync)
- [Import/export Figma text layers with JSON files](/copydoc/tutorials/import-export-figma-text-layers-with-json-files)
- [Export and re-import selected text layers in Figma](/copydoc/tutorials/export-and-re-import-selected-text-layers-in-figma)
- [Update Figma text layer content with Markdown files](/copydoc/tutorials/update-figma-text-layer-content-with-markdown-files)
- [Update Figma text from Microsoft Word with DOCX files](/copydoc/tutorials/update-figma-text-from-microsoft-word-with-docx-files)
- [Update Figma text from Google Docs with DOCX files](/copydoc/tutorials/update-figma-text-from-google-docs-with-docx-files)
- [Update Figma text from Office 365 with DOCX files](/copydoc/tutorials/update-figma-text-from-office-365-with-docx-files)

## Sync Spreadsheets

- [Auto repeat and sync Figma layers from a spreadsheet](/copydoc/tutorials/auto-repeat-and-sync-figma-layers-from-a-spreadsheet)
- [Sync XLSX Excel spreadsheet content to Figma](/copydoc/tutorials/sync-xlsx-excel-spreadsheet-content-to-figma)
- [Sync CSV spreadsheet content to Figma](/copydoc/tutorials/sync-csv-spreadsheet-content-to-figma)
- [Sync Google Sheets spreadsheet content to Figma](/copydoc/tutorials/sync-google-sheets-spreadsheet-content-to-figma)
- [Sync Airtable spreadsheet content to Figma](/copydoc/tutorials/sync-airtable-spreadsheet-content-to-figma)
- [Sync a folder of images to Figma layers via a spreadsheet](/copydoc/tutorials/sync-a-folder-of-images-to-figma-layers-via-a-spreadsheet)
- [Sync component variants in Figma using a spreadsheet](/copydoc/tutorials/sync-component-variants-in-figma-using-a-spreadsheet)
- [Sync merge tags in Figma text layers from a spreadsheet](/copydoc/tutorials/sync-merge-tags-in-figma-text-layers-from-a-spreadsheet)
- [Sync content with advanced merge tags in spreadsheet cells](/copydoc/tutorials/sync-content-with-advanced-merge-tags-in-spreadsheet-cells)
- [Sync chart data to Figma from a spreadsheet](/copydoc/tutorials/sync-chart-data-to-figma-from-a-spreadsheet)
- [Sync SVG icons from a spreadsheet to your Figma layers](/copydoc/tutorials/sync-svg-icons-from-a-spreadsheet-to-your-figma-layers)
- [Style Figma layers from a spreadsheet with CSS style sync](/copydoc/tutorials/style-figma-layers-from-a-spreadsheet-with-css-style-sync)
- [Rename Figma layers in bulk from a spreadsheet](/copydoc/tutorials/rename-figma-layers-in-bulk-from-a-spreadsheet)

## Localize Text

- [Translate Figma text layers with XLIFF files](/copydoc/tutorials/translate-figma-text-layers-with-xliff-files)
- [The simplest way to localize any Figma designs](/copydoc/tutorials/the-simplest-way-to-localize-any-figma-designs)

## Content Library

- [Create a reusable text content library in Figma](/copydoc/tutorials/create-a-re-useable-text-content-library-in-figma)
- [Use Google Sheets as a Figma text content library](/copydoc/tutorials/use-google-sheets-as-a-figma-text-content-library)
- [Use Airtable as a Figma text content library](/copydoc/tutorials/use-airtable-as-a-figma-text-content-library)
- [Use Figma Variables as a reusable text content library](/copydoc/tutorials/use-figma-variables-as-a-re-useable-text-content-library)
- [Add realistic placeholder text content in Figma](/copydoc/tutorials/add-realistic-placeholder-text-content-in-figma)
- [Add text expander content snippet shortcuts in Figma](/copydoc/tutorials/add-text-expander-content-snippet-shortcuts-in-figma)

## Export Frames

- [Export Figma to Microsoft Word .docx files](/copydoc/tutorials/export-figma-to-microsoft-word-docx-files)
- [Export Figma to Microsoft Excel .xlsx files](/copydoc/tutorials/export-figma-to-microsoft-excel-xlsx-files)

## Find & Replace

- [Find and replace Figma text content](/copydoc/tutorials/find-and-replace-figma-text-content)

## Spell Check

- [Spell check Figma text layers in your designs](/copydoc/tutorials/spell-check-figma-text-layers-in-your-designs)

## Figma Comments

- [Export comments from Figma files](/copydoc/tutorials/export-comments-from-figma-files)

## More video tutorials

- [How to count words and characters in Figma text layers using CopyDoc](/copydoc/tutorials/how-to-count-words-and-characters-in-figma-text-layers-using-copydoc)

---

---
url: "/copydoc/tutorials/add-realistic-placeholder-text-content-in-figma.md"
description: "This video shows how to use the CopyDoc Figma plugin to add realistic placeholder content to text layers in Figma. It covers the Content Library, placeholder categories, custom text snippets with placeholders, and locale-based localization for names and other content."
---

# Add realistic placeholder text content in Figma

> This video shows how to use the CopyDoc Figma plugin to add realistic placeholder content to text layers in Figma. It covers the Content Library, placeholder categories, custom text snippets with placeholders, and locale-based localization for names and other content.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/NghMg69P2hA)

**What this video covers**

This video shows how to use the CopyDoc Figma plugin to add realistic placeholder content to text layers in Figma. It covers the Content Library, placeholder categories, custom text snippets with placeholders, and locale-based localization for names and other content.

**Things you'll need**

- A Figma file
- The CopyDoc Figma plugin

**Steps**

1. Open your Figma file, find CopyDoc from the resources icon, and run or save the plugin.
2. In CopyDoc, open Content Library and switch to the placeholders tab to browse categories like person, animals, internet, and Lorem Ipsum.
3. Click a text layer and apply a placeholder item such as full name, first name, or an email address to fill the layer with realistic fake content.
4. Use the copy icon to copy a placeholder trigger, or type a shortcut like double slash commands to expand placeholder content in an existing layer.
5. Go to the collections tab, add a new snippet, and combine custom text with placeholders using Show Placeholder Shortcuts and the plus icon.
6. Apply or paste the snippet trigger into one or more selected layers to populate them with randomized placeholder content.
7. Use the localization dropdown to switch locales such as Japanese, Korean, or Italian so placeholders generate content in that language.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=NghMg69P2hA)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-realistic-placeholder-text-content-in-figma-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/add-text-expander-content-snippet-shortcuts-in-figma.md"
description: "This tutorial shows how to open the CopyDoc Figma plugin, use the Content Library, and create reusable text expander snippets. It demonstrates adding a shortcut trigger like slash slash CTA or slash slash nav, then typing the trigger in a text layer to expand it into approved copy."
---

# Add text expander content snippet shortcuts in Figma

> This tutorial shows how to open the CopyDoc Figma plugin, use the Content Library, and create reusable text expander snippets. It demonstrates adding a shortcut trigger like slash slash CTA or slash slash nav, then typing the trigger in a text layer to expand it into approved copy.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/OZCbuLVsDmI)

**What this video covers**

This tutorial shows how to open the CopyDoc Figma plugin, use the Content Library, and create reusable text expander snippets. It demonstrates adding a shortcut trigger like slash slash CTA or slash slash nav, then typing the trigger in a text layer to expand it into approved copy.

**Things you'll need**

- A Figma file
- The CopyDoc Figma plugin

**Steps**

1. Open a Figma file, click the Resources icon, search for CopyDoc under the Plugins tab, and run or save the plugin.
2. From the canvas, right-click, go to Plugins, and open CopyDoc.
3. In CopyDoc, open the Content Library to view and use existing text expander snippets.
4. Click Add New Snippet, enter a trigger such as nav, choose a category such as menus, and add one or more text content variants.
5. Click Save New Snippet to add it to the library.
6. Type the shortcut trigger in a text layer, such as slash slash nav or slash slash CTA, to expand it into the saved snippet.
7. Use the copy/paste workflow for triggers as needed, and optionally import or export snippets in CSV for bulk management.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=OZCbuLVsDmI)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-text-expander-content-snippet-shortcuts-in-figma-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/auto-repeat-and-sync-figma-layers-from-a-spreadsheet.md"
description: "The video shows how to use the CopyDoc Figma plugin to sync layer content from a CSV, Excel file, or Google Sheets URL. It also demonstrates the auto repeat feature, which duplicates a selected Figma layer or component across spreadsheet rows and fills in matching content automatically."
---

# Auto repeat and sync Figma layers from a spreadsheet

> The video shows how to use the CopyDoc Figma plugin to sync layer content from a CSV, Excel file, or Google Sheets URL. It also demonstrates the auto repeat feature, which duplicates a selected Figma layer or component across spreadsheet rows and fills in matching content automatically.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/_1MHyfYNHFQ)

**What this video covers**

The video shows how to use the CopyDoc Figma plugin to sync layer content from a CSV, Excel file, or Google Sheets URL. It also demonstrates the auto repeat feature, which duplicates a selected Figma layer or component across spreadsheet rows and fills in matching content automatically.

**Things you'll need**

- A Figma file with layers named to match the spreadsheet headers.
- A CSV, Excel file, or a publicly shareable Google Sheets URL.

**Steps**

1. Open a Figma file, find CopyDoc from Resources or Saved plugins, and launch the plugin.
2. In CopyDoc, open sync content and choose a source such as CSV, Excel, or Google Sheets URL.
3. Make sure the Figma layer names match the spreadsheet column headers, such as title, genre, minutes, and poster.
4. Drag and drop the CSV into the Drop Zone, preview the rows, and click sync rows with layers to map selected layers to the data.
5. Turn on auto repeat, select a single layer or instance with named nested layers, and click sync and repeat selected layer to duplicate it for each spreadsheet row.
6. Optionally place the layer inside an existing auto layout frame first so the repeated copies stay inside that container.
7. For Google Sheets, set General access to anyone with the link, copy the sheet URL, paste it into CopyDoc, and load the content preview.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=_1MHyfYNHFQ)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/auto-repeat-and-sync-figma-layers-from-a-spreadsheet-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/create-a-re-useable-text-content-library-in-figma.md"
description: "This video shows how to use the CopyDoc Figma plugin to build a reusable text content library in Figma. It covers creating text snippets with trigger shortcuts and variants, then importing, exporting, updating, moving, and deleting snippets in bulk with CSV files and collections."
---

# Create a reusable text content library in Figma

> This video shows how to use the CopyDoc Figma plugin to build a reusable text content library in Figma. It covers creating text snippets with trigger shortcuts and variants, then importing, exporting, updating, moving, and deleting snippets in bulk with CSV files and collections.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/x-gNQqwIOLw)

**What this video covers**

This video shows how to use the CopyDoc Figma plugin to build a reusable text content library in Figma. It covers creating text snippets with trigger shortcuts and variants, then importing, exporting, updating, moving, and deleting snippets in bulk with CSV files and collections.

**Things you'll need**

- Figma
- CopyDoc Figma plugin

**Steps**

1. Open Figma, find CopyDoc in Resources under the Plugins tab, and save it to your Figma plugins list.
2. Run CopyDoc from saved plugins, then open the content library feature.
3. Create a new snippet by setting a trigger shortcut, choosing or creating a collection, entering the text content, and saving the snippet.
4. Edit a snippet to add multiple text variants by separating them with double pipe symbols, then update the snippet.
5. Apply snippets to text layers either by using the snippet buttons or by typing the trigger shortcut such as slash slash tagline.
6. Import snippets in bulk with CSV by downloading the example file, editing it in a spreadsheet app, and dragging the updated CSV into CopyDoc.
7. Export selected snippets to CSV, then re-import the edited file to update existing snippets, or use bulk move and delete actions to manage collections.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=x-gNQqwIOLw)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-create-a-re-useable-text-content-library-in-figma-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/export-and-re-import-figma-text-content-via-airtable-sync.md"
description: "This tutorial shows how to use the CopyDoc Figma plugin to export Figma text layers to Airtable, edit the content in Airtable, and then reimport the text updates back into Figma. It also shows how to set up Airtable access with a personal access token and sync changes in both directions."
---

# Export & Re-Import Figma text content via Airtable sync

> This tutorial shows how to use the CopyDoc Figma plugin to export Figma text layers to Airtable, edit the content in Airtable, and then reimport the text updates back into Figma. It also shows how to set up Airtable access with a personal access token and sync changes in both directions.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/ZoyLiC8riPc)

**What this video covers**

This tutorial shows how to use the CopyDoc Figma plugin to export Figma text layers to Airtable, edit the content in Airtable, and then reimport the text updates back into Figma. It also shows how to set up Airtable access with a personal access token and sync changes in both directions.

**Things you'll need**

- A Figma file with text layers
- An Airtable account
- Airtable personal access token with data records read, data records write, schema bases read, and schema bases write scopes

**Steps**

1. Open the CopyDoc Figma plugin from the actions menu or from Saved plugins.
2. Click export text layers, choose the Airtable option, and select the frames you want to export.
3. Create or open an Airtable base, copy its URL, and paste it into the plugin.
4. Create an Airtable personal access token with the required scopes, copy it, paste it into the plugin, name the connection, and save Airtable.
5. Export the text layers to Airtable, then edit the Figma text column in Airtable while leaving the ID values unchanged.
6. Return to CopyDoc, open import text layers, load the Airtable preview, review the changes, and click update Figma text layers.
7. Repeat the export process whenever you want Airtable and Figma to stay in sync.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=ZoyLiC8riPc)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/export-and-import-figma-text-content-with-airtable-sync-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/export-and-re-import-selected-text-layers-in-figma.md"
description: "This tutorial shows how to use the CopyDoc Figma plugin to export selected text layers from a Figma frame to a CSV spreadsheet, edit the text in a spreadsheet app, and import the changes back into Figma. It also shows how to review detected text changes before updating the selected layers."
---

# Export and re-import selected text layers in Figma

> This tutorial shows how to use the CopyDoc Figma plugin to export selected text layers from a Figma frame to a CSV spreadsheet, edit the text in a spreadsheet app, and import the changes back into Figma. It also shows how to review detected text changes before updating the selected layers.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/gCQZiVV7HOM)

**What this video covers**

This tutorial shows how to use the CopyDoc Figma plugin to export selected text layers from a Figma frame to a CSV spreadsheet, edit the text in a spreadsheet app, and import the changes back into Figma. It also shows how to review detected text changes before updating the selected layers.

**Things you'll need**

- Figma
- CopyDoc installed from the Figma Community

**Steps**

1. Install the CopyDoc plugin from the Figma Community under the Plugins tab.
2. In your Figma file, right-click and open Plugins, then run CopyDoc.
3. Select the frame or text layers you want to export, then click Quick Export.
4. Choose the export format, such as CSV, and select an ordering option, then click Quick Export CSV and download the file.
5. Open the exported CSV in a spreadsheet app, edit the figma_text values, and save the updated file as CSV.
6. Back in CopyDoc, open Import Text Layers, drag in the updated CSV, review the detected changes, and optionally deselect any you do not want to apply.
7. Click Update Figma Text Layers to re-import the approved text changes into Figma.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=gCQZiVV7HOM)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-and-re-import-selected-text-layers-in-figma-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/export-comments-from-figma-files.md"
description: "This tutorial shows how to use the CopyDoc Figma plugin to export Figma comments into CSV and JSON files, along with image references for the frames containing those comments. It walks through installing the plugin, entering the Figma Page URL and Figma Personal Access Token, and downloading the exported comments bundle."
---

# Export comments from Figma files

> This tutorial shows how to use the CopyDoc Figma plugin to export Figma comments into CSV and JSON files, along with image references for the frames containing those comments. It walks through installing the plugin, entering the Figma Page URL and Figma Personal Access Token, and downloading the exported comments bundle.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/GXg0q8GO_Ik)

**What this video covers**

This tutorial shows how to use the CopyDoc Figma plugin to export Figma comments into CSV and JSON files, along with image references for the frames containing those comments. It walks through installing the plugin, entering the Figma Page URL and Figma Personal Access Token, and downloading the exported comments bundle.

**Things you'll need**

- A Figma file with comments already added.
- A Figma personal access token.

**Steps**

1. Install CopyDoc from the Figma Community under the Plugins tab, then open it from Plugins in your Figma file.
2. Choose the Export Figma Comments option and click Export Comments.
3. Copy the Figma Page URL from the Share button and paste it into the Figma Page URL field.
4. Create a new personal access token in Figma Settings under Personal Access Tokens, copy it, and paste it into the Figma Personal Access Token field.
5. Leave Include Design References enabled if you want frame image references with pin markers.
6. Click Export Comments to CSV/JSON, then download and unzip the exported files.
7. Open the CSV or JSON file, and use the frames folder to match comment thread numbers to the exported frame images.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=GXg0q8GO_Ik)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-comments-from-figma-files-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/export-figma-to-microsoft-excel-xlsx-files.md"
description: "This video shows how to use the CopyDoc Figma plugin to export text content from Figma frames into Microsoft Excel .xlsx files. It also explains the two export modes: one Excel file with tabs per frame, or one Excel file per frame, and notes that this Excel export is not meant for re-importing back into Figma."
---

# Export Figma to Microsoft Excel .xlsx files

> This video shows how to use the CopyDoc Figma plugin to export text content from Figma frames into Microsoft Excel .xlsx files. It also explains the two export modes: one Excel file with tabs per frame, or one Excel file per frame, and notes that this Excel export is not meant for re-importing back into Figma.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/xz1hXZDLJTU)

**What this video covers**

This video shows how to use the CopyDoc Figma plugin to export text content from Figma frames into Microsoft Excel .xlsx files. It also explains the two export modes: one Excel file with tabs per frame, or one Excel file per frame, and notes that this Excel export is not meant for re-importing back into Figma.

**Things you'll need**

- Figma
- The CopyDoc Figma plugin
- At least one Figma frame with text content

**Steps**

1. Install CopyDoc from the Figma Community by searching for "CopyDoc" under the Plugins tab and clicking Install.
2. Open a Figma file that contains at least one frame with text content, then right-click and choose Plugins > CopyDoc.
3. In CopyDoc, open Export Frames under the Export Figma Frames menu item and choose Microsoft Excel (.xlxs).
4. Optionally enable design references or select the Excel File Per Frame option if you want separate XLSX files for each frame.
5. Select the frames you want to export and arrange their order if needed.
6. Click Export XLSX, then Download XLSX Export, and save the zip file.
7. Unzip the download and open the XLSX file in Microsoft Excel to view the exported frame text in tabs or as a single Figma Text sheet.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=xz1hXZDLJTU)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-figma-to-microsoft-excel-xlsx-files-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/export-figma-to-microsoft-word-docx-files.md"
description: "This video shows how to use the CopyDoc Figma plugin to export Figma frames to Microsoft Word .docx files. It demonstrates exporting a single frame, reordering and selecting multiple frames, and opening the exported document in Microsoft Word with editable text and preserved styling."
---

# Export Figma to Microsoft Word .docx files

> This video shows how to use the CopyDoc Figma plugin to export Figma frames to Microsoft Word .docx files. It demonstrates exporting a single frame, reordering and selecting multiple frames, and opening the exported document in Microsoft Word with editable text and preserved styling.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/7KdJUmhB8rM)

**What this video covers**

This video shows how to use the CopyDoc Figma plugin to export Figma frames to Microsoft Word .docx files. It demonstrates exporting a single frame, reordering and selecting multiple frames, and opening the exported document in Microsoft Word with editable text and preserved styling.

**Things you'll need**

- Figma
- CopyDoc installed from Figma Community
- Microsoft Word

**Steps**

1. Install CopyDoc from Figma Community if it is not already installed.
2. Open your Figma file, then right click and go to Plugins > CopyDoc.
3. Choose the option to Export frames to Microsoft Word and click Export Frames to load the frames in the file.
4. Select the frames you want to include, then set the export order using the rows, columns, layer order, layer name, or drag-and-drop handles.
5. Click Export to DOCX to generate the Microsoft Word document.
6. Click Download Word Doc to save the .docx file, then open it in Microsoft Word to review or edit the exported content.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=7KdJUmhB8rM)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-figma-to-microsoft-word-docx-files-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/find-and-replace-figma-text-content.md"
description: "This tutorial shows how to use the CopyDoc Figma plugin to find and replace text in a Figma file, preview the matches, and update selected text layers. It also covers case-sensitive matching with Match Case and notes that the required fonts must be installed for text updates to work."
---

# Find and replace Figma text content

> This tutorial shows how to use the CopyDoc Figma plugin to find and replace text in a Figma file, preview the matches, and update selected text layers. It also covers case-sensitive matching with Match Case and notes that the required fonts must be installed for text updates to work.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/E_GDAQdXEGQ)

**What this video covers**

This tutorial shows how to use the CopyDoc Figma plugin to find and replace text in a Figma file, preview the matches, and update selected text layers. It also covers case-sensitive matching with Match Case and notes that the required fonts must be installed for text updates to work.

**Things you'll need**

- CopyDoc must be installed from the Figma Community
- The fonts used in the Figma file must be installed

**Steps**

1. Install CopyDoc from the Figma Community by searching for CopyDoc under the Plugins tab and clicking Install.
2. Open your Figma file, then right-click, go to Plugins, and launch CopyDoc.
3. Click Find and Replace to open the modal, then enter the text you want to find and the replacement text.
4. Click Find Matches and Preview Updates to view all matching text layers on the current page and see the proposed replacements.
5. Use the text icon on a result to jump to and select that layer, and uncheck any matches you do not want to update.
6. Click Update Figma Text Layers to apply the selected replacements, then use Command + Z on Mac or Control + Z on Windows to undo if needed.
7. Use Match Case when you need case-sensitive searching, and make sure the fonts used in the file are installed before updating text.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=E_GDAQdXEGQ)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-find-and-replace-figma-text-content-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/how-to-count-words-and-characters-in-figma-text-layers-using-copydoc.md"
description: "This tutorial shows how to use the CopyDoc Figma plugin to count words, characters, sentences, and paragraphs in Figma text layers. It demonstrates installing the plugin from Figma Community, opening it in a design, and selecting one or more text layers to see the counts update automatically."
---

# How to count words and characters in Figma text layers using CopyDoc

> This tutorial shows how to use the CopyDoc Figma plugin to count words, characters, sentences, and paragraphs in Figma text layers. It demonstrates installing the plugin from Figma Community, opening it in a design, and selecting one or more text layers to see the counts update automatically.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/ZT9b6WSpD8o)

**What this video covers**

This tutorial shows how to use the CopyDoc Figma plugin to count words, characters, sentences, and paragraphs in Figma text layers. It demonstrates installing the plugin from Figma Community, opening it in a design, and selecting one or more text layers to see the counts update automatically.

**Things you'll need**

- Figma
- The CopyDoc plugin installed

**Steps**

1. Search for CopyDoc in Figma Community under the Plugins tab and click Install.
2. Return to your Figma design, right-click, then go to Plugins and open CopyDoc.
3. With the plugin open, click a Figma text layer to view its character, word, sentence, and paragraph counts.
4. Select a larger text block to see counts for that layer update automatically.
5. Select multiple text layers at once, either on the canvas or in the left-hand Layers panel, to count them together.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=ZT9b6WSpD8o)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-count-words-and-characters-in-figma-text-layers-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/import-export-figma-text-layers-with-csv-files.md"
description: "This tutorial shows how to use the CopyDoc Figma plugin to export Figma text layers to a CSV file, edit the text in a spreadsheet app, and import the updated CSV back into Figma. It also demonstrates reviewing differences before applying updates and using CMD + Z or CTRL + Z to undo changes."
---

# Import/export Figma text layers with CSV files

> This tutorial shows how to use the CopyDoc Figma plugin to export Figma text layers to a CSV file, edit the text in a spreadsheet app, and import the updated CSV back into Figma. It also demonstrates reviewing differences before applying updates and using CMD + Z or CTRL + Z to undo changes.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/16QHfpJ8M7E)

**What this video covers**

This tutorial shows how to use the CopyDoc Figma plugin to export Figma text layers to a CSV file, edit the text in a spreadsheet app, and import the updated CSV back into Figma. It also demonstrates reviewing differences before applying updates and using CMD + Z or CTRL + Z to undo changes.

**Things you'll need**

- Figma
- CopyDoc installed from the Figma Community
- A spreadsheet app that can open and save CSV files

**Steps**

1. Install CopyDoc from the Figma Community if it is not already installed.
2. In Figma, right click, open Plugins, and launch CopyDoc.
3. Click Export CSV, choose the frames to export, then download the text as a zip file containing the CSV and frame references.
4. Open the CSV in a spreadsheet app, edit the text, use find and replace if needed, and export the file back to CSV.
5. In CopyDoc, click Import CSV and drag in the updated CSV file.
6. Review the detected differences, use the magnifying glass icons to jump to affected layers, and deselect any changes you do not want.
7. Click Update Figma Text Layers to apply the selected text changes, or use CMD + Z / CTRL + Z to undo if needed.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=16QHfpJ8M7E)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-import-export-figma-text-layers-with-csv-files-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/import-export-figma-text-layers-with-json-files.md"
description: "This tutorial shows how to use the CopyDoc Figma plugin to export Figma text layers to a JSON file, edit the text in a code editor, and import the updated JSON back into Figma. It also demonstrates reviewing changes before applying them, including checking layer diffs and using design reference PNGs from the export."
---

# Import/export Figma text layers with JSON files

> This tutorial shows how to use the CopyDoc Figma plugin to export Figma text layers to a JSON file, edit the text in a code editor, and import the updated JSON back into Figma. It also demonstrates reviewing changes before applying them, including checking layer diffs and using design reference PNGs from the export.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/Nn01U9o_D9o)

**What this video covers**

This tutorial shows how to use the CopyDoc Figma plugin to export Figma text layers to a JSON file, edit the text in a code editor, and import the updated JSON back into Figma. It also demonstrates reviewing changes before applying them, including checking layer diffs and using design reference PNGs from the export.

**Things you'll need**

- Figma
- CopyDoc

**Steps**

1. Install the CopyDoc plugin from the Figma Community and open it from Figma's Plugins menu.
2. Choose the export option and click Export JSON to load the top-level frames you want to include.
3. Click Download Text to save the exported ZIP, which contains the JSON file and, if selected, a frames folder with PNG design references.
4. Open the JSON file in a code editor, update the text values, and save the file.
5. In CopyDoc, switch to Import text updates to Figma from JSON and drag the edited JSON file into the import box.
6. Review the detected text changes, optionally deselect any layers, and use the magnifying glass icon to jump to the affected text on the canvas.
7. Click Update Figma Text Layers to apply the approved changes, or undo with CMD + Z on Mac or CTRL + Z on Windows if needed.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=Nn01U9o_D9o)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-import-export-figma-text-layers-with-json-files-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/rename-figma-layers-in-bulk-from-a-spreadsheet.md"
description: "This tutorial shows how to use the CopyDoc Figma plugin's sync content feature to rename Figma layers in bulk from a spreadsheet. It also demonstrates how the same workflow can update text layers and work with either Google Sheets or an Excel file."
---

# Rename Figma layers in bulk from a spreadsheet

> This tutorial shows how to use the CopyDoc Figma plugin's sync content feature to rename Figma layers in bulk from a spreadsheet. It also demonstrates how the same workflow can update text layers and work with either Google Sheets or an Excel file.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/6lXxRQH98mE)

**What this video covers**

This tutorial shows how to use the CopyDoc Figma plugin's sync content feature to rename Figma layers in bulk from a spreadsheet. It also demonstrates how the same workflow can update text layers and work with either Google Sheets or an Excel file.

**Things you'll need**

- A Figma file with the CopyDoc Figma plugin installed or saved
- A Google Sheets spreadsheet shared with anyone with the link, or a local Excel file

**Steps**

1. Open the CopyDoc Figma plugin from Resources or from saved plugins, then open the sync content feature.
2. Create a spreadsheet where the first row is the column header that matches the Figma layer name, and put the replacement names underneath it.
3. If using Google Sheets, set General access to anyone with the link and copy the sheet URL.
4. Paste the Google Sheets link into CopyDoc, choose the correct tab, and click use selected sheet.
5. Select the matching layers in Figma and click Sync Rows to rename the layers.
6. For text layers or nested layers, add matching column names and values in the spreadsheet, then repeat the sync to update text content and layer names.
7. To use Excel instead, drag and drop the spreadsheet file into CopyDoc, select the tab, choose the sync order, and click Sync Rows.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=6lXxRQH98mE)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-rename-figma-layers-in-bulk-from-a-spreadsheet-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/spell-check-figma-text-layers-in-your-designs.md"
description: "This video shows how to spell check Figma text layers using the CopyDoc plugin. It demonstrates installing the plugin, scanning a page for spelling mistakes, reviewing grouped suggestions, and applying or undoing corrections in bulk."
---

# Spell check Figma text layers in your designs

> This video shows how to spell check Figma text layers using the CopyDoc plugin. It demonstrates installing the plugin, scanning a page for spelling mistakes, reviewing grouped suggestions, and applying or undoing corrections in bulk.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/zIlzh6_kicw)

**What this video covers**

This video shows how to spell check Figma text layers using the CopyDoc plugin. It demonstrates installing the plugin, scanning a page for spelling mistakes, reviewing grouped suggestions, and applying or undoing corrections in bulk.

**Things you'll need**

- Figma
- The CopyDoc plugin installed from Figma Community
- Fonts used in the text layers installed on the machine

**Steps**

1. Install CopyDoc from the Figma Community, then return to your Figma file.
2. Right-click in the file, open Plugins, and launch CopyDoc.
3. Click Spell Check Layers, choose the language that matches your text, and click Find Spelling Mistakes.
4. Review the grouped spelling errors, use the search icons to jump to each affected text layer, and inspect the results in the canvas.
5. Select the correct suggestion to update matching text layers in bulk, or use Undo next to a correction to revert it.
6. If needed, rerun Spell Check Layers after making changes to confirm remaining issues, and use CMD + Z or CTRL + Z for native undo.
7. If a font is missing, install it before applying a suggestion because the correction buttons will be disabled until the font is available.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=zIlzh6_kicw)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-spell-check-figma-text-layers-in-your-designs-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/style-figma-layers-from-a-spreadsheet-with-css-style-sync.md"
description: "This tutorial shows how to use the CopyDoc Figma plugin to style Figma layers from a spreadsheet using CSS, including changing background color, text color, font size, opacity, and border radius. It also demonstrates syncing different rows to different selected layers, mixing style and content updates, using Google Sheets or Microsoft Excel, and finding supported CSS properties in the plugin's CSS docs."
---

# Style Figma layers from a spreadsheet with CSS style sync

> This tutorial shows how to use the CopyDoc Figma plugin to style Figma layers from a spreadsheet using CSS, including changing background color, text color, font size, opacity, and border radius. It also demonstrates syncing different rows to different selected layers, mixing style and content updates, using Google Sheets or Microsoft Excel, and finding supported CSS properties in the plugin's CSS docs.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/l0Bhqx6X3Ic)

**What this video covers**

This tutorial shows how to use the CopyDoc Figma plugin to style Figma layers from a spreadsheet using CSS, including changing background color, text color, font size, opacity, and border radius. It also demonstrates syncing different rows to different selected layers, mixing style and content updates, using Google Sheets or Microsoft Excel, and finding supported CSS properties in the plugin's CSS docs.

**Things you'll need**

- A Figma file with layers named to match the spreadsheet headers
- A spreadsheet in Google Sheets or Microsoft Excel
- For Google Sheets, sharing set to "anyone with the link"

**Steps**

1. Open Figma, use the Resources icon to find CopyDoc, and save it to your plugins list.
2. Run CopyDoc from Plugins > Saved plugins, then open Sync Spreadsheet.
3. Prepare a spreadsheet with layer names in the header row and CSS rules in the cells, matching the names used in the Figma layers.
4. For Google Sheets, set sharing to "anyone with the link" and copy the sheet link; for Excel, use a local file with the same structure.
5. Paste the spreadsheet link or drag and drop the Excel file into CopyDoc, choose the tab, select the matching Figma layer or layers, and click Use Selected Sheet.
6. Click Sync Rows to apply the spreadsheet styles to the selected layers, including nested text layers or multiple selected frames.
7. Optionally switch selection order, mix style and content tabs carefully, and use the CSS docs link for supported properties.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=l0Bhqx6X3Ic)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-style-figma-layers-from-a-spreadsheet-with-css-style-sync-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/sync-a-folder-of-images-to-figma-layers-via-a-spreadsheet.md"
description: "The video shows how to use the CopyDoc Figma plugin to sync spreadsheet content, including local image files, into repeated Figma layers. It also demonstrates an alternative way to generate a table in Figma from the same spreadsheet data."
---

# Sync a folder of images to Figma layers via a spreadsheet

> The video shows how to use the CopyDoc Figma plugin to sync spreadsheet content, including local image files, into repeated Figma layers. It also demonstrates an alternative way to generate a table in Figma from the same spreadsheet data.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/4JV01bi8nOw)

**What this video covers**

The video shows how to use the CopyDoc Figma plugin to sync spreadsheet content, including local image files, into repeated Figma layers. It also demonstrates an alternative way to generate a table in Figma from the same spreadsheet data.

**Things you'll need**

- Figma
- CopyDoc Figma plugin
- A spreadsheet file in .xlsx or .csv format with matching image files

**Steps**

1. Install and open the CopyDoc Figma plugin from Figma Resources or Saved Plugins.
2. Create Figma layers whose names match the spreadsheet headers, such as #Image, #Title, and #Genre.
3. Prepare a spreadsheet with matching column headers and place any referenced image files in a folder alongside it.
4. Compress the spreadsheet and the images folder into a zip file.
5. In CopyDoc, click Sync Content and drag the zip file into the upload area.
6. Select the Figma layers to sync, choose the row order, and click Sync Rows.
7. Optionally, click Generate Table to create a new Figma table from the spreadsheet data.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=4JV01bi8nOw)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-sync-a-folder-of-images-to-figma-layers-with-a-spreadsheet-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/sync-airtable-spreadsheet-content-to-figma.md"
description: "This tutorial shows how to use the CopyDoc Figma plugin to sync Airtable spreadsheet data into Figma layers. It also demonstrates repeating rows into duplicated layers, using the same data in an auto layout frame, and generating a table from Airtable content."
---

# Sync Airtable spreadsheet content to Figma

> This tutorial shows how to use the CopyDoc Figma plugin to sync Airtable spreadsheet data into Figma layers. It also demonstrates repeating rows into duplicated layers, using the same data in an auto layout frame, and generating a table from Airtable content.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/SFAjIzF6P9o)

**What this video covers**

This tutorial shows how to use the CopyDoc Figma plugin to sync Airtable spreadsheet data into Figma layers. It also demonstrates repeating rows into duplicated layers, using the same data in an auto layout frame, and generating a table from Airtable content.

**Things you'll need**

- A Figma file with the CopyDoc plugin available
- An Airtable base with column headers that match the Figma layer names
- An Airtable personal access token with the data.records.read scope

**Steps**

1. Open your Figma file, find CopyDoc in Resources under the Plugins tab, and run or save the plugin.
2. In CopyDoc, open Sync Content, choose the Content tab, and change the source from CSV Excel file to sync from Airtable URL.
3. Paste your Airtable URL, create an Airtable personal access token with the data.records.read scope, grant access to the correct base, and paste the token into CopyDoc.
4. Name and save the Airtable source, then load the content preview to see the Airtable columns and rows.
5. Make sure your Airtable column headers match the Figma layer names exactly, such as #title, #genre, #minutes, and #poster.
6. Select the matching Figma layers and click sync rows with layers to map each Airtable row into the selected design.
7. To repeat a single card automatically, enable auto repeat, select the layer inside an auto layout frame if needed, and click sync and repeat selected layer; you can also switch to the Table tab and generate a table from rows.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=SFAjIzF6P9o)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/sync-airtable-spreadsheet-content-to-figma-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/sync-chart-data-to-figma-from-a-spreadsheet.md"
description: "This tutorial shows how to use the CopyDoc Figma plugin’s sync content feature to import charts into Figma from spreadsheet data. It demonstrates loading CSV files or a Google Sheets URL, previewing the chart, and inserting an editable chart into a Figma file."
---

# Sync chart data to Figma from a spreadsheet

> This tutorial shows how to use the CopyDoc Figma plugin’s sync content feature to import charts into Figma from spreadsheet data. It demonstrates loading CSV files or a Google Sheets URL, previewing the chart, and inserting an editable chart into a Figma file.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/SwgrrN9gY1Q)

**What this video covers**

This tutorial shows how to use the CopyDoc Figma plugin’s sync content feature to import charts into Figma from spreadsheet data. It demonstrates loading CSV files or a Google Sheets URL, previewing the chart, and inserting an editable chart into a Figma file.

**Things you'll need**

- A Figma file with the CopyDoc plugin available
- A CSV file or a Google Sheets URL with chart data

**Steps**

1. Open the CopyDoc plugin in Figma from Resources or from Plugins > Saved plugins.
2. Click sync content, switch from the Content tab to the Chart tab, and choose a chart type such as bar chart or column chart.
3. Download the sample CSV for that chart, edit it with your own data in a spreadsheet app, and save it.
4. Drag and drop the updated CSV into the plugin Drop Zone to preview the chart.
5. Click insert chart to Figma to place the chart on the canvas as editable layers.
6. To use Google Sheets instead, switch the data source to Google Sheets, paste the sheet URL, select the tab, load the chart preview, and insert the chart to Figma.
7. Edit the inserted chart in Figma by changing layer properties such as colors, fonts, size, and other selection colors.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=SwgrrN9gY1Q)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/sync-chart-data-to-figma-from-a-spreadsheet-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/sync-component-variants-in-figma-using-a-spreadsheet.md"
description: "This tutorial shows how to use the CopyDoc Figma plugin to sync component variants and other layer content in Figma from a spreadsheet. It walks through creating a Tag component set with genre variants, matching spreadsheet column names to Figma layer names, and using Sync Content to import rows into selected frames."
---

# Sync component variants in Figma using a spreadsheet

> This tutorial shows how to use the CopyDoc Figma plugin to sync component variants and other layer content in Figma from a spreadsheet. It walks through creating a Tag component set with genre variants, matching spreadsheet column names to Figma layer names, and using Sync Content to import rows into selected frames.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/pytew54ZZ_g)

**What this video covers**

This tutorial shows how to use the CopyDoc Figma plugin to sync component variants and other layer content in Figma from a spreadsheet. It walks through creating a Tag component set with genre variants, matching spreadsheet column names to Figma layer names, and using Sync Content to import rows into selected frames.

**Things you'll need**

- A saved CopyDoc Figma plugin
- A spreadsheet file prepared with matching column names and values

**Steps**

1. Save and run the CopyDoc Figma plugin from the Plugins menu.
2. Create a frame component named Tag, then add variants to turn it into a component set.
3. Rename the variant property to Genre and rename each variant to match the spreadsheet values, such as Synthwave and Vaporwave.
4. Drag the Tag component into your design frames and set up matching layers for fields like #Album, #Artist, #Cover, and #Tag.
5. Double-click each variant layer name in Figma to copy its Property=Value label, then paste those labels into the spreadsheet.
6. Open CopyDoc, go to Sync Content, import the Excel file, select the frames to sync, and click Sync Rows with Layers.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=pytew54ZZ_g)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/sync-figma-component-variants-from-a-spreadsheet-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/sync-content-with-advanced-merge-tags-in-spreadsheet-cells.md"
description: "The video shows how to use the CopyDoc Figma plugin’s Sync Content From Spreadsheet feature to pull data from an Excel file or Google Sheet into Figma. It demonstrates advanced merge tags for renaming layers, updating text, repeating frames for multiple rows, and overriding values by referencing specific spreadsheet rows."
---

# Sync content with advanced merge tags in spreadsheet cells

> The video shows how to use the CopyDoc Figma plugin’s Sync Content From Spreadsheet feature to pull data from an Excel file or Google Sheet into Figma. It demonstrates advanced merge tags for renaming layers, updating text, repeating frames for multiple rows, and overriding values by referencing specific spreadsheet rows.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/M3TCf3VWOlg)

**What this video covers**

The video shows how to use the CopyDoc Figma plugin’s Sync Content From Spreadsheet feature to pull data from an Excel file or Google Sheet into Figma. It demonstrates advanced merge tags for renaming layers, updating text, repeating frames for multiple rows, and overriding values by referencing specific spreadsheet rows.

**Things you'll need**

- A Figma file with the CopyDoc plugin saved
- A spreadsheet file such as an Excel file or Google Sheet

**Steps**

1. Open the Figma file, search for CopyDoc from Actions, save it as a plugin, and run it from Plugins > Saved Plugins.
2. Prepare the Figma layers and frame names to match spreadsheet headers, using tags like #Frame, #firstName, #Headline, and #{firstName} in layer names or text.
3. Open CopyDoc’s Sync Content From Spreadsheet feature, drag and drop the Excel file into the plugin, and review the preview.
4. Select a frame or layer and click Sync Rows With Layers to sync the spreadsheet content into the Figma text and layer names.
5. Enable Auto Repeat if you want CopyDoc to duplicate the selected frame for each spreadsheet row, then click Sync and Repeat Selected Layer.
6. Use dot syntax with a row number, such as .2 or .3, in the spreadsheet to pull a value from a specific row instead of the current row, then resync.
7. Check the updated frame names and text layers to confirm the merge tags and row overrides were applied correctly.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=M3TCf3VWOlg)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-sync-figma-layers-with-advanced-merge-tags-in-spreadsheet-cells-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/sync-csv-spreadsheet-content-to-figma.md"
description: "This video shows how to install the CopyDoc Figma plugin and use its Sync Spreadsheet Content feature to populate repeated Figma layers from a CSV file. It demonstrates matching CSV headers to Figma layer names so text and image content can be synced across multiple duplicated designs."
---

# Sync CSV spreadsheet content to Figma

> This video shows how to install the CopyDoc Figma plugin and use its Sync Spreadsheet Content feature to populate repeated Figma layers from a CSV file. It demonstrates matching CSV headers to Figma layer names so text and image content can be synced across multiple duplicated designs.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/5qdxq629A48)

**What this video covers**

This video shows how to install the CopyDoc Figma plugin and use its Sync Spreadsheet Content feature to populate repeated Figma layers from a CSV file. It demonstrates matching CSV headers to Figma layer names so text and image content can be synced across multiple duplicated designs.

**Things you'll need**

- Figma
- CopyDoc Figma plugin
- A CSV spreadsheet file

**Steps**

1. Install CopyDoc from the Figma Community Plugins tab.
2. Prepare a CSV spreadsheet where the first row contains headers that match Figma layer names such as #Title, #Reviews, and #Poster.
3. Add content rows to the CSV, including image URLs for image fields, then save the file as .csv.
4. Open the CopyDoc plugin in Figma by right-clicking the canvas and choosing Plugins > CopyDoc.
5. Click Sync Content, then drag and drop the CSV file into the plugin to load the headers and preview the rows.
6. Duplicate the original component or other repeatable Figma layer for each spreadsheet row, then select all of the duplicated layers.
7. Click Sync Spreadsheet Rows with Figma Layers to replace matching text and image layers with content from each CSV row.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=5qdxq629A48)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/sync-csv-spreadsheet-content-to-figma-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/sync-google-sheets-spreadsheet-content-to-figma.md"
description: "This tutorial shows how to use the CopyDoc Figma plugin to sync content from a public Google Sheets spreadsheet into matching Figma layers. It covers preparing spreadsheet headers and layer names, sharing the sheet publicly, and syncing text and image URLs into selected Figma instances or layers."
---

# Sync Google Sheets spreadsheet content to Figma

> This tutorial shows how to use the CopyDoc Figma plugin to sync content from a public Google Sheets spreadsheet into matching Figma layers. It covers preparing spreadsheet headers and layer names, sharing the sheet publicly, and syncing text and image URLs into selected Figma instances or layers.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/J67CDH5XkWk)

**What this video covers**

This tutorial shows how to use the CopyDoc Figma plugin to sync content from a public Google Sheets spreadsheet into matching Figma layers. It covers preparing spreadsheet headers and layer names, sharing the sheet publicly, and syncing text and image URLs into selected Figma instances or layers.

**Things you'll need**

- A Figma account with the CopyDoc plugin installed.
- A Google Sheet prepared with matching headers and, for images, public image URLs.

**Steps**

1. Install CopyDoc from the Figma Community under the Plugins tab.
2. Set up a Google Sheet with a header row whose column names match Figma layer names such as #Title and #Poster.
3. For image fields, paste image URLs into the spreadsheet so CopyDoc can download and apply them as image fills.
4. In Google Sheets, use Share, change access from Restricted to Anyone with the link, and copy the link.
5. In Figma, open CopyDoc from Plugins and go to Sync Content, then choose Sync Public Google Sheet.
6. Paste the Google Sheets URL into the plugin and confirm the spreadsheet columns load correctly.
7. Select the matching Figma layers or instances, then click Sync Spreadsheet Rows with Figma Layers to populate the design.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=J67CDH5XkWk)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/sync-google-sheets-spreadsheet-content-to-figma-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/sync-merge-tags-in-figma-text-layers-from-a-spreadsheet.md"
description: "This tutorial shows how to use the CopyDoc Figma plugin to sync inline merge tags in text layers with data from a spreadsheet. It also covers syncing image fills from an artwork column and automatically repeating a selected layer for every spreadsheet row."
---

# Sync merge tags in Figma text layers from a spreadsheet

> This tutorial shows how to use the CopyDoc Figma plugin to sync inline merge tags in text layers with data from a spreadsheet. It also covers syncing image fills from an artwork column and automatically repeating a selected layer for every spreadsheet row.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/odONMaXerQQ)

**What this video covers**

This tutorial shows how to use the CopyDoc Figma plugin to sync inline merge tags in text layers with data from a spreadsheet. It also covers syncing image fills from an artwork column and automatically repeating a selected layer for every spreadsheet row.

**Things you'll need**

- A Figma file with text layers containing placeholder merge tags
- A spreadsheet file such as an Excel XLSX file, CSV, Google Sheets URL, or Airtable URL

**Steps**

1. Open your Figma file, find CopyDoc from the actions menu, and save it to your Figma plugins list or run it from Saved Plugins.
2. Prepare a spreadsheet with column headings that match your placeholder merge tags, using the format #{column_name} in the text layers.
3. In CopyDoc, click sync content and choose a source such as an Excel XLSX file, CSV, Google Sheets URL, or Airtable URL.
4. Drag and drop the spreadsheet into the plugin to preview the matched columns, including any image URL column such as artwork.
5. Select the frames you want to update and click sync rows with layers to replace the placeholder merge tags with spreadsheet values and sync image fills.
6. For repeating content, turn on auto repeat on a selected frame and use sync and repeat selected layer to duplicate it for all spreadsheet rows.
7. If needed, use the layer-name method by renaming a text layer to match a spreadsheet heading, then sync rows with layers to replace the full layer content.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=odONMaXerQQ)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-replace-merge-tags-in-figma-text-layers-with-spreadsheet-files-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/sync-svg-icons-from-a-spreadsheet-to-your-figma-layers.md"
description: "This tutorial shows how to use the CopyDoc plugin to sync spreadsheet content into Figma layers, including text and SVG icons. It demonstrates two workflows: pulling data from a public Google Sheet with hosted SVG links or embedded SVG tags, and importing a local ZIP file containing an Excel/CSV spreadsheet plus SVG files."
---

# Sync SVG icons from a spreadsheet to your Figma layers

> This tutorial shows how to use the CopyDoc plugin to sync spreadsheet content into Figma layers, including text and SVG icons. It demonstrates two workflows: pulling data from a public Google Sheet with hosted SVG links or embedded SVG tags, and importing a local ZIP file containing an Excel/CSV spreadsheet plus SVG files.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/eybeymh7IdQ)

**What this video covers**

This tutorial shows how to use the CopyDoc plugin to sync spreadsheet content into Figma layers, including text and SVG icons. It demonstrates two workflows: pulling data from a public Google Sheet with hosted SVG links or embedded SVG tags, and importing a local ZIP file containing an Excel/CSV spreadsheet plus SVG files.

**Things you'll need**

- A Figma file with layers named to match the spreadsheet headers.
- A spreadsheet in Google Sheets, Excel, or CSV format.
- For Google Sheets, a shared link set to "anyone with the link can be a viewer".

**Steps**

1. Open your Figma file, find CopyDoc from Resources, and run it from Saved plugins.
2. Click the sync spreadsheet button in CopyDoc and choose a Google Sheets link or a local Excel, CSV, or ZIP file.
3. Make sure the spreadsheet header names match the Figma layer names you want to sync, such as "hash title" and "hash icon".
4. For Google Sheets, set sharing to "anyone with the link can be a viewer," copy the link, and paste it into CopyDoc.
5. Select the parent frame layers in Figma, choose the sync order, and click sync rows.
6. For a local import, zip the spreadsheet together with the referenced SVG files, then drag and drop the ZIP into CopyDoc's Drop Zone and sync the rows.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=eybeymh7IdQ)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-sync-svg-icons-from-a-spreadsheet-to-your-figma-layers-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/sync-xlsx-excel-spreadsheet-content-to-figma.md"
description: "The video shows how to use the CopyDoc Figma plugin to sync content from an Excel spreadsheet into Figma designs. It explains how to name spreadsheet headers and Figma layers the same way so text and image content can be populated row by row into repeated layout blocks."
---

# Sync XLSX Excel spreadsheet content to Figma

> The video shows how to use the CopyDoc Figma plugin to sync content from an Excel spreadsheet into Figma designs. It explains how to name spreadsheet headers and Figma layers the same way so text and image content can be populated row by row into repeated layout blocks.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/7YmbMj8LGXI)

**What this video covers**

The video shows how to use the CopyDoc Figma plugin to sync content from an Excel spreadsheet into Figma designs. It explains how to name spreadsheet headers and Figma layers the same way so text and image content can be populated row by row into repeated layout blocks.

**Things you'll need**

- A Figma file with layers named to match the spreadsheet headers.
- An Excel spreadsheet formatted with headers in the first row and content rows below.
- Direct image URLs for any spreadsheet fields meant to populate image layers.

**Steps**

1. Install the CopyDoc plugin from the Figma Community.
2. Prepare an Excel spreadsheet with headers in the first row that match the Figma layer names, and add content rows underneath.
3. In Figma, name the text and image layers to match the spreadsheet headers, using the same labels such as #Tag, #Title, #Min, #Reviews, and #Poster.
4. Duplicate the design block or component to create multiple repeated instances that all use the same named layers.
5. For image fields, paste a direct image URL into the spreadsheet cell after copying the image address from an image source.
6. Open CopyDoc from Plugins, use Sync Content to import the Excel file, then select the target layers in Figma.
7. Click Sync Spreadsheet Rows with Figma Layers to populate each selected block with one spreadsheet row, including text and images.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=7YmbMj8LGXI)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/sync-xlsx-excel-spreadsheet-content-to-figma-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/the-simplest-way-to-localize-any-figma-designs.md"
description: "This tutorial shows how to use the CopyDoc Figma plugin to localize a Figma frame by exporting its text to an Excel spreadsheet, translating it into multiple locales, and importing the translations back into Figma. It also shows that re-importing updated spreadsheets creates a new translated page without overwriting the existing one."
---

# The simplest way to localize any Figma designs

> This tutorial shows how to use the CopyDoc Figma plugin to localize a Figma frame by exporting its text to an Excel spreadsheet, translating it into multiple locales, and importing the translations back into Figma. It also shows that re-importing updated spreadsheets creates a new translated page without overwriting the existing one.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/BJ03GUCHTjg)

**What this video covers**

This tutorial shows how to use the CopyDoc Figma plugin to localize a Figma frame by exporting its text to an Excel spreadsheet, translating it into multiple locales, and importing the translations back into Figma. It also shows that re-importing updated spreadsheets creates a new translated page without overwriting the existing one.

**Things you'll need**

- Figma
- CopyDoc plugin
- Microsoft Excel or another spreadsheet tool

**Steps**

1. Install the CopyDoc plugin from the Figma Community Plugins tab.
2. Open your Figma file, right-click, go to Plugins, and launch CopyDoc.
3. Choose “Localize Figma Frames,” then click “Localize Frames” to load the frames on the current page.
4. Select the frame you want to localize, add locales such as French, Japanese, and German, and click “Export to Excel Spreadsheet.”
5. Open the exported Excel file, fill in the translation columns for each locale, and save the completed spreadsheet.
6. Return to CopyDoc, drag and drop the translated Excel file into the plugin, then click “Localize Selected Frames” to import the translations.
7. Review the newly created translations page in Figma, and repeat the import process later if you want to update translations without overwriting the earlier page.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=BJ03GUCHTjg)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-easily-localize-and-translate-any-figma-designs-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/translate-figma-text-layers-with-xliff-files.md"
description: "This video shows how to localize and translate Figma text layers with the CopyDoc Figma plugin using XLIFF files. It demonstrates exporting text to XLIFF, translating the file, and importing it back into Figma to update the text layers."
---

# Translate Figma text layers with XLIFF files

> This video shows how to localize and translate Figma text layers with the CopyDoc Figma plugin using XLIFF files. It demonstrates exporting text to XLIFF, translating the file, and importing it back into Figma to update the text layers.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/LHIOqns7QU8)

**What this video covers**

This video shows how to localize and translate Figma text layers with the CopyDoc Figma plugin using XLIFF files. It demonstrates exporting text to XLIFF, translating the file, and importing it back into Figma to update the text layers.

If you searched for **Localize Figma Text**, **Localise Figma Text**, **Export/Import XLIFF**, or **XLF**, this tutorial covers that exact CopyDoc workflow.

**Things you'll need**

- CopyDoc Figma plugin installed
- A Figma file with text layers to translate
- An installed font for any text layers you want to update

**Steps**

1. Install the CopyDoc Figma plugin from the Figma community if it is not already installed.
2. Open your Figma file, then right-click and go to Plugins to launch "CopyDoc Text Kit".
3. In "Localize Figma Text", click "Export/Import XLIFF", choose the source language, target language, optional design references, and an XLIFF format, then click "Export XLIFF" and download the file.
4. Open the exported XLIFF file in a text or code editor and translate the text from each <source> tag into the matching <target> tag, then save the file.
5. Return to Figma, open "Localize Figma Text" again, choose the import option, and drag and drop the translated XLIFF file into the import area.
6. Confirm the detected translated language and click "Update Figma text layers translation" to apply the translations to the design.
7. If needed, repeat the process to switch the text layers back to another language or export additional XLIFF files for other translations.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=LHIOqns7QU8)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-translate-figma-text-layers-with-xliff-files-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/update-figma-text-from-google-docs-with-docx-files.md"
description: "This tutorial shows how to use the CopyDoc Figma plugin to export Figma text layers as a DOCX file, edit the content in Google Docs, and then import the updated file back into Figma. It also demonstrates previewing the changes before applying them and notes that longer text may require manual layout adjustments if Auto Layout is not used."
---

# Update Figma text from Google Docs with DOCX files

> This tutorial shows how to use the CopyDoc Figma plugin to export Figma text layers as a DOCX file, edit the content in Google Docs, and then import the updated file back into Figma. It also demonstrates previewing the changes before applying them and notes that longer text may require manual layout adjustments if Auto Layout is not used.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/QA1mmImf7EI)

**What this video covers**

This tutorial shows how to use the CopyDoc Figma plugin to export Figma text layers as a DOCX file, edit the content in Google Docs, and then import the updated file back into Figma. It also demonstrates previewing the changes before applying them and notes that longer text may require manual layout adjustments if Auto Layout is not used.

**Things you'll need**

- Figma with the CopyDoc plugin available
- A Google Docs document for editing the exported DOCX file

**Steps**

1. Open Figma’s Resources icon, search for CopyDoc under the plugins tab, and save or run the plugin.
2. In CopyDoc, choose Export text layers and set the format to DOCX.
3. Export and download the DOCX file, then upload it into Google Docs through File > Open > Upload.
4. Edit the text in Google Docs, including names, subheadings, tags, formatting, and links.
5. Download the edited file from Google Docs as Microsoft Word DOCX.
6. Back in Figma, open Import text layers and drag the updated DOCX file into the drop zone.
7. Review the preview of changes, then click Update Figma text layers to apply them.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=QA1mmImf7EI)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-update-figma-text-from-google-docs-with-docx-files-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/update-figma-text-from-microsoft-word-with-docx-files.md"
description: "This video shows how to use the CopyDoc Figma plugin to export Figma text layers to a DOCX file, edit the copy in Microsoft Word, and then import the updates back into Figma. It also demonstrates that formatting changes and text edits in the Word document can be reflected in the Figma file."
---

# Update Figma text from Microsoft Word with DOCX files

> This video shows how to use the CopyDoc Figma plugin to export Figma text layers to a DOCX file, edit the copy in Microsoft Word, and then import the updates back into Figma. It also demonstrates that formatting changes and text edits in the Word document can be reflected in the Figma file.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/eULh-xz99NU)

**What this video covers**

This video shows how to use the CopyDoc Figma plugin to export Figma text layers to a DOCX file, edit the copy in Microsoft Word, and then import the updates back into Figma. It also demonstrates that formatting changes and text edits in the Word document can be reflected in the Figma file.

**Things you'll need**

- Figma
- CopyDoc Figma plugin
- Microsoft Word

**Steps**

1. Open Figma Resources, search for CopyDoc under the Plugins tab, and save the plugin if desired.
2. Run CopyDoc from Saved Plugins in the Figma canvas.
3. Choose export text layers, select DOCX as the export format, pick the frames to include, and export the DOCX file.
4. Unzip the exported folder and open the DOCX file in Microsoft Word.
5. Edit the text content in Word, including text, links, and formatting such as bold and italic, then save the document.
6. Return to Figma, choose import text layers, and drag and drop the DOCX file into the plugin.
7. Review the preview of changes, then click update Figma text layers to apply the updates to the file.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=eULh-xz99NU)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-update-figma-text-from-microsoft-word-with-docx-files-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/update-figma-text-from-office-365-with-docx-files.md"
description: "This tutorial shows how to use the CopyDoc Figma plugin to export Figma text layers as a DOCX file, edit the content in Office 365 Word, and import the updated text back into Figma. It also shows how to preview the changes before applying them and notes that longer imported text may require manual adjustment if Auto Layout is not used."
---

# Update Figma text from Office 365 with DOCX files

> This tutorial shows how to use the CopyDoc Figma plugin to export Figma text layers as a DOCX file, edit the content in Office 365 Word, and import the updated text back into Figma. It also shows how to preview the changes before applying them and notes that longer imported text may require manual adjustment if Auto Layout is not used.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/Wj9_H2yhibg)

**What this video covers**

This tutorial shows how to use the CopyDoc Figma plugin to export Figma text layers as a DOCX file, edit the content in Office 365 Word, and import the updated text back into Figma. It also shows how to preview the changes before applying them and notes that longer imported text may require manual adjustment if Auto Layout is not used.

**Things you'll need**

- Figma
- CopyDoc Figma plugin
- Office 365 Word

**Steps**

1. Open the Figma Resources icon, search for CopyDoc, and run or save the plugin from Plugins.
2. In Figma, open CopyDoc from Saved Plugins and choose export text layers with DOCX selected as the export format.
3. Select the frames to export and click export DOCX, then download the DOCX export and open the ZIP contents to access the file.
4. Upload the DOCX file to OneDrive in Office 365 and open it in Word to edit the text content and formatting.
5. In Word, make your changes, then use File > Save As > Download a copy to save the updated DOCX to your computer.
6. Return to CopyDoc in Figma, choose import text layers, drag and drop the updated DOCX file, review the previewed changes, and click update Figma text layers.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=Wj9_H2yhibg)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-update-figma-text-from-office-365-with-docx-files-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/update-figma-text-layer-content-with-markdown-files.md"
description: "This tutorial shows how to use the CopyDoc Figma plugin to export text layers to a Markdown file, edit the copy in a markdown editor, and import the file back to update Figma text layers. It also demonstrates grouped duplicate text layers for updating repeated text in multiple places at once."
---

# Update Figma text layer content with Markdown files

> This tutorial shows how to use the CopyDoc Figma plugin to export text layers to a Markdown file, edit the copy in a markdown editor, and import the file back to update Figma text layers. It also demonstrates grouped duplicate text layers for updating repeated text in multiple places at once.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/LIeoBRnuchM)

**What this video covers**

This tutorial shows how to use the CopyDoc Figma plugin to export text layers to a Markdown file, edit the copy in a markdown editor, and import the file back to update Figma text layers. It also demonstrates grouped duplicate text layers for updating repeated text in multiple places at once.

**Things you'll need**

- Figma
- CopyDoc Figma plugin

**Steps**

1. Open Figma’s Resources icon, search for CopyDoc under the Plugins tab, and run or save the plugin.
2. In CopyDoc, choose Export text layers, select Markdown, and export the file.
3. Download and unzip the Markdown export, then edit the text content in a markdown editor while leaving the ID lines unchanged.
4. Return to CopyDoc, choose Import text layers, and drag the saved Markdown file into the drop zone.
5. Review the detected changes, optionally select or deselect items, and click Update Figma text layers to apply them.
6. To update repeated text in multiple layers, re-export with the group duplicate text layers toggle enabled, edit the grouped Markdown file, and import it again.
7. Optionally use Quick export with selected layers to export only specific text layers instead of an entire frame.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=LIeoBRnuchM)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-update-figma-text-layer-content-with-markdown-files-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/use-airtable-as-a-figma-text-content-library.md"
description: "This video shows how to connect Airtable to the CopyDoc Figma plugin so an Airtable spreadsheet can be used as a custom content library in Figma. It covers creating an Airtable personal access token, adding an Airtable URL in CopyDoc, applying text snippets to Figma text layers, and refreshing synced content when the spreadsheet changes."
---

# Use Airtable as a Figma text content library

> This video shows how to connect Airtable to the CopyDoc Figma plugin so an Airtable spreadsheet can be used as a custom content library in Figma. It covers creating an Airtable personal access token, adding an Airtable URL in CopyDoc, applying text snippets to Figma text layers, and refreshing synced content when the spreadsheet changes.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/Aw9wleHHvOs)

**What this video covers**

This video shows how to connect Airtable to the CopyDoc Figma plugin so an Airtable spreadsheet can be used as a custom content library in Figma. It covers creating an Airtable personal access token, adding an Airtable URL in CopyDoc, applying text snippets to Figma text layers, and refreshing synced content when the spreadsheet changes.

**Things you'll need**

- A Figma file with the CopyDoc plugin available
- An Airtable account with a base and a personal access token

**Steps**

1. Open the Figma file, find CopyDoc in Resources under the Plugins tab, and run or save the plugin.
2. In CopyDoc, open Content Library, switch to the Integrations tab, and change the integration from Google Sheets to Airtable.
3. In Airtable, create a personal access token with the data records read scope and add the correct base, then copy the token into CopyDoc.
4. Create or open an Airtable base, add the content rows you want, and copy the Airtable URL into CopyDoc, then click ADD to load the sheet.
5. Select a Figma text layer and use Apply or choose a specific snippet from the panel to populate it from Airtable.
6. Select multiple text layers to apply snippets in order, random order, or alphabetical order.
7. If the Airtable content changes, refresh the loaded library in CopyDoc to sync new fields or updated snippets.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=Aw9wleHHvOs)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-use-airtable-as-a-figma-text-content-library-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/use-figma-variables-as-a-re-useable-text-content-library.md"
description: "This video shows how to use Figma string variables as a reusable text content library in the CopyDoc Figma plugin. It covers creating local string variables in Figma, importing them into CopyDoc through the Integrations tab, and applying them to one or more text layers with ordered or random options."
---

# Use Figma Variables as a reusable text content library

> This video shows how to use Figma string variables as a reusable text content library in the CopyDoc Figma plugin. It covers creating local string variables in Figma, importing them into CopyDoc through the Integrations tab, and applying them to one or more text layers with ordered or random options.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/X6TDkfp0W8A)

**What this video covers**

This video shows how to use Figma string variables as a reusable text content library in the CopyDoc Figma plugin. It covers creating local string variables in Figma, importing them into CopyDoc through the Integrations tab, and applying them to one or more text layers with ordered or random options.

**Things you'll need**

- A Figma file with local string variables created
- The CopyDoc Figma plugin installed

**Steps**

1. Open the CopyDoc Figma plugin from Resources or from Plugins on the canvas.
2. Go to Content Library, then open the Integrations tab and select the Figma option for Figma string variables.
3. Create local string variables in Figma using the create variable button, then name them and paste text into the value field.
4. Use double pipe symbols to split one variable value into multiple strings, or keep a single value for one item.
5. Click the refresh icon in CopyDoc to load the Figma variables into the Content Library.
6. Select one or more text layers in Figma and use Supply to apply a random string, or choose a specific string and apply it.
7. For multiple selected layers, apply the content in order, random order, alphabetical order, reverse alphabetical order, or the same value across selections.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=X6TDkfp0W8A)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-use-figma-variables-as-a-re-useable-text-content-library-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/tutorials/use-google-sheets-as-a-figma-text-content-library.md"
description: "This video shows how to use the CopyDoc Figma plugin to connect a Google Sheets file as a Content Library and use the imported snippets to replace text layers in Figma. It also shows how edits in Google Sheets can be refreshed in CopyDoc to keep the library in sync."
---

# Use Google Sheets as a Figma text content library

> This video shows how to use the CopyDoc Figma plugin to connect a Google Sheets file as a Content Library and use the imported snippets to replace text layers in Figma. It also shows how edits in Google Sheets can be refreshed in CopyDoc to keep the library in sync.

[← Back to CopyDoc Video Tutorials](/copydoc/tutorials)

[Embedded media](https://www.youtube.com/embed/dBMsBeyncSk)

**What this video covers**

This video shows how to use the CopyDoc Figma plugin to connect a Google Sheets file as a Content Library and use the imported snippets to replace text layers in Figma. It also shows how edits in Google Sheets can be refreshed in CopyDoc to keep the library in sync.

**Things you'll need**

- A Figma file with the CopyDoc plugin available.
- A Google Sheets file containing the text content to use as snippets.

**Steps**

1. Open your Figma file, find CopyDoc from Resources > Plugins, and either run it or save it to your Saved plugins list.
2. In CopyDoc, open Content Library and switch to the Integrations tab, where Google Sheets is selected by default.
3. In Google Sheets, set General access to "Anyone with the link can be a viewer" and copy the sheet link.
4. Paste the Google Sheets URL into the "Add new Google sheet" field in CopyDoc and wait for the content to load into the Content Library.
5. Select a Figma text layer or multiple text layers, then use a snippet’s Apply button or choose a specific item to replace the text.
6. Use the ordering options to apply content in order, randomly, or alphabetically reverse, depending on how you want the text mapped.
7. Update the Google Sheet, then click the refresh icon in CopyDoc to reload the latest rows and columns into the library.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=dBMsBeyncSk)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-use-google-sheets-as-a-figma-text-content-library-using-copy-doc)
- [Browse Copydoc tutorial docs](https://docs.hypermatic.com/copydoc/tutorials)

---

---
url: "/copydoc/update/edit.md"
description: "After opening your exported `.zip` file, you can start editing text content in your `.csv`, `.xlsx`, `.md`, `.docx`, `.xliff`, or `.json` file in your software application of choice."
---

# Making text updates to exported files

> After opening your exported `.zip` file, you can start editing text content in your `.csv`, `.xlsx`, `.md`, `.docx`, `.xliff`, or `.json` file in your software application of choice.

[Video](/assets/videos/copydoc/export/editing-text-layers.mp4)

## Editing text in XLSX or CSV files

To edit your exported `.xlsx` or `.csv` file, you can open the file in a spreadsheet application like [Apple Numbers](https://www.apple.com/numbers/), [Microsoft Excel](https://www.microsoft.com/microsoft-365/excel) or [Google Sheets](https://www.google.com/sheets/about/), or Just a text/code editor application like [Visual Studio Code](https://code.visualstudio.com/) or [Sublime Text](https://www.sublimetext.com/).

> **Tip:** **Opening CSV files with unicode characters in Microsoft Excel**. Microsoft Excel requires you to use the built-in [Import Wizard](https://community.jaspersoft.com/wiki/how-import-csv-document-cyrillic-symbols-excel-and-correctly-render-them-program) to import the CSV if your text contains unicode characters (for example, if your content is in Polish or Russian). Note that other spreadsheet software like Apple Keynote and Google Sheets doesn't require you to do this, and you can open the CSV file normally in those apps.

> **Tip:** **Opening CSV files Google Sheets**. When importing a CSV file into Google Sheets, please ensure you _uncheck_ the **Convert text to numbers, dates and formulas** checkbox, otherwise your Figma IDs will be modified and messed up, which means they won't be able to be imported properly back into Figma.

Each row in the `.csv` file represents a string of text from your Figma file, you can verify the parent frame for each text layer by checking the "**frame**" column value as an easy reference, and you can edit the content for each row by updating the "**figma_text**" column value.

### Understanding the columns included in your XLSX or CSV file

#### id

The **id** column contains unique references to the text layers in your original Figma file, this is what allows any text updates to be re-imported back into the CopyDoc plugin later.

> **Warning:** **Don't edit anything in the "id" column**. If you intend to re-import your text updates back into your Figma file, please don't edit anything in the "**id**" column, otherwise the links back to your Figma text won't be possible (or could possibly update other layers incorrectly).

#### frame

The **frame** column contains the name of the parent frame that the current row's text layer is included in, this is helpful for referencing where the text layer appears in your design.

#### layer_name

The **layer_name** column is in reference the name of your text layer in the original Figma file; this is almost always the same as the text content itself, but will be different if you've manually renamed your Figma text layers.

Note: editing or updating the **layer_name** will automatically update your Figma text layer name if the XLSX or CSV file is re-imported back into Figma. This won't have any impact on the text layer's content itself, so please ensure you're making any text _content_ edits to the **figma_text** column, or in any other custom text variants you may have added.

#### figma_text

The **figma_text_** column contains the text content from the text layers in your original Figma file, editing this content will make it available to re-import the updated content back into Figma again.

### Custom Text Variants in your XLSX or CSV

If you've exported your XLSX or CSV file with additional custom columns, these will automatically be included after all of the other default columns in your `.xlsx` or `.csv` file export. You can populate these empty placeholder columns with different versions or different languages, which can be selected if you re-import your CSV back into Figma.

> **Tip:** **Ensure you re-save the XLSX/CSV file as a .xlsx/.csv**. If you're using a spreadsheet app to edit your `.csv` file, please sure you re-save the file as a `.csv` after editing it; sometimes these apps will try to save the file in a different format, which won't be compatible when re-importing your file again via the CopyDoc plugin.

## Editing text in JSON files

To edit your exported `.json` file, you can open the file in a text/code editor application like [Visual Studio Code](https://code.visualstudio.com/) or [Sublime Text](https://www.sublimetext.com/).

Each object in the `.json` file array represents a string of text from your Figma file, you can verify the parent frame for each text layer by checking the "**frame**" property value as an easy reference, and you can edit the content for each object by updating the "**figma_text**" property value.

### Understanding the columns included in your JSON file

#### id

The **id** property contains unique references to the text layers in your original Figma file, this is what allows any text updates to be re-imported back into the CopyDoc plugin later.

> **Warning:** **Don't edit anything in the "id" property**. If you intend to re-import your text updates back into your Figma file, please don't edit anything in the "**id**" property, otherwise the links back to your Figma text won't be possible (or could possibly update other layers incorrectly).

#### frame

The **frame** property contains the name of the parent frame that the current object's text layer is included in, this is helpful for referencing where the text layer appears in your design.

#### layer_name

The **layer_name** property is in reference the name of your text layer in the original Figma file; this is almost always the same as the text content itself, but will be different if you've manually renamed your Figma text layers.

Note: Editing or updating the **layer_name** will automatically update your Figma text layer name if the JSON is re-imported back into Figma. This won't have any impact on the text layer's content itself, so please ensure you're making any text _content_ edits to the **figma_text** property, or in any other custom text variants you may have added.

#### figma_text

The **figma_text_** property contains the text content from the text layers in your original Figma file, editing this content will make it available to re-import the updated content back into Figma again.

### Custom Text Variants in your JSON

If you've exported your JSON file with additional custom properties, these will automatically be included after all of the other default properties in your `.json` file export. You can populate these empty placeholder properties with different versions or different languages, which can be selected if you re-import your JSON back into Figma.

> **Tip:** **Ask your developer friends/team to help you use JSON**. If you don't know much about the JSON format, check with someone you know who understands web development, as they'll be able to use this format to do some really neat things, like integrating the data into a third party API/app, or write their own Node.js script to manipulate the text data in other cool ways.

## Editing text in Markdown files

To edit your exported `.md` file, you can open the file in a text/code editor application like [Visual Studio Code](https://code.visualstudio.com/) or use a dedicated Markdown editor like [Markably](https://markably.io/).

Each text block in the `.md` file represents content from the Figma file. A line containing the corresponding `figma_text_id` appears before each block.

> **Warning:** **Don't edit or remove anything in the "figma_text_id" property lines**. If you intend to re-import your text updates back into your Figma file, please don't edit anything in the "**figma_text_id**" lines, otherwise the links back to your Figma text won't be possible (or could possibly update other layers incorrectly).

### Supported Markdown formatting

You can make updates to any Figma content in your Markdown file, and also modify or add some basic markdown formatting (bold, italics) and links, which can be re-imported back into your Figma file.

- You can specify **Bold** text by using double asterisks around the text, for example, `**Text to bold**`
- You can specify *Italic* text by using single underscores around the text, for example, `_Italic Text_`
- You can specify ***Bold Italic*** text by using double asterisks and one underscore around the text, for example, `**_Italic Text_**`
- You can specify hyperlinks by using the markdown syntax of `This is [my link here](https://example.com) in a text paragraph` (you can also format the link text by adding the bold/italic syntax inside of the link's `[]` text area).

## Editing text in DOCX files

To edit your exported `.docx` file, you can open the file in an application like [Microsoft Word](https://www.microsoft.com/en-au/microsoft-365/word) or [Google Docs](https://docs.google.com/).

Each text block in the `.docx` file represents content from the Figma file. A line containing the corresponding `figma_text_id` appears before each block.

> **Warning:** **Don't edit or remove anything in the "figma_text_id" property lines**. If you intend to re-import your text updates back into your Figma file, please don't edit anything in the "**figma_text_id**" lines, otherwise the links back to your Figma text won't be possible (or could possibly update other layers incorrectly).

### Supported DOCX formatting

You can make updates to any Figma content in your DOCX file, and also modify or add some basic formatting (bold, italics) and links, which can be re-imported back into your Figma file.

## Editing XLIFF files

To edit your exported `.xliff` file, you can open the file in a text/code editor application like [Visual Studio Code](https://code.visualstudio.com/) or [Sublime Text](https://www.sublimetext.com/).

Each `` in the `.xliff` file represents a string of text from your Figma file, you can verify the parent frame for each text layer by checking the "**frame**" property value as an easy reference, and you can edit the target translation locale for each `` by updating the `` value.

> **Tip:** **Use XLIFF editing software to make this easier** If you don't want to use a normal text editor for making updates to your `.xliff` file, you can use specific software made for editing `.xliff` files, such as [Counterparts](https://michelf.ca/software/counterparts-lite/) or [XLIFFTool](https://apps.apple.com/us/app/xlifftool/id1074282695?mt=12) for OSX or [Virtaal](https://virtaal.translatehouse.org/) for Windows.

> **Warning:** **Don't edit anything in the "id" property**. If you intend to re-import your text updates back into your Figma file, please don't edit anything in each "id" property, otherwise the links back to your Figma text won't be possible (or could possibly update other layers incorrectly).

## Viewing design references

If you're editing text in your export, you may want to visually reference where the text is displayed in the original Figma design. If you enabled the  **Design References** option, your exported `.zip` file will include a folder called `_frames`, which includes `.png` images for each frame that you've selected to export. These can be used as a design reference alongside the exported text files.

> **Note:** **Exported text layers are ordered by visual position**. The text layers in the exported files are sorted by their visual position in the design (from the top/left to the bottom/right), this should help make it easier to scan a design image and find where the text is being used.

## Video Tutorials

### Video Tutorial: Import/export Figma text layers with CSV files

This video walks through how to import/export Figma text layers with CSV files using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/16QHfpJ8M7E)

### Video Tutorial: Export & Re-Import Figma text content via Airtable sync

This video walks through how to export & re-import Figma text content via Airtable sync using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/ZoyLiC8riPc)

### Video Tutorial: Import/export Figma text layers with JSON files

This video walks through how to import/export Figma text layers with JSON files using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/Nn01U9o_D9o)

### Video Tutorial: Export and re-import selected text layers in Figma

This video walks through how to export and re-import selected text layers from Figma using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/gCQZiVV7HOM)

### Video Tutorial: Update Figma text layer content with Markdown files

This video walks through how to update Figma text layer content with Markdown files using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/LIeoBRnuchM)

### Video Tutorial: Update Figma text from Microsoft Word with DOCX files

This video walks through how to update Figma text from Microsoft Word with DOCX files using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/eULh-xz99NU)

### Video Tutorial: Update Figma text from Google Docs with DOCX files

This video walks through how to update Figma text from Google Docs with DOCX files using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/QA1mmImf7EI)

### Video Tutorial: Update Figma text from Office 365 with DOCX files

This video walks through how to update Figma text from Office 365 with DOCX files using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/Wj9_H2yhibg)

---

---
url: "/copydoc/update/export.md"
description: "After exporting text layers from your Figma frame(s), you can update their content outside of Figma using any text/spreadsheet editing software, then instantly re-import the updated text back into your Figma designs again later."
---

# Exporting Figma text layer content

> After exporting text layers from your Figma frame(s), you can update their content outside of Figma using any text/spreadsheet editing software, then instantly re-import the updated text back into your Figma designs again later.

[Video](/assets/videos/copydoc/export/exporting-text-layers.mp4)

The **Export Text Layers** feature in CopyDoc works by letting you export all of the text layers for your top level parent frames from the current Figma page to a `.csv`, `.json`, `.md` or `.xliff` file (with optional images for design references) that you can download to your computer.

CopyDoc includes normal text layers and text placed on a path. It can also find supported text inside Figma sections when you use a selection-based export.

## Getting started and selecting your Figma frames to include text layers from

To get started with this feature, click on the **Export Text Layers** button in the main CopyDoc plugin screen.

You'll now be able to select the frames from your current Figma page that you would like to use as the pages in your CSV, JSON, Markdown or XLIFF export.

CopyDoc will load all of your "parent frames" from your current Figma page into the plugin as a list of frames that you can use to choose the frames you should like to add text layers to your export from; you can click on any frame's checkbox or image thumbnail to select it (clicking it again will deselect it).

> **Note:** **Parent level Figma frames required** To export text layers to CSV, JSON, Markdown, or XLIFF, your Figma page must contain at least one "Parent Frame". This means, any "frames" that are located _directly_ underneath your page.

## Selecting your export format and CSV/JSON/Markdown/XLIFF options

### Excluding locked Figma layers from export

Enabling the **Exclude Locked Figma Layers** option will automatically skip over any locked text layers layers or text layers that are contained inside of a locked parent layer (frame, group, component etc) on your Figma page. You can use this to Exclude any text layers that you don't want to be included in your export.

### Maintaining the visual text case from Figma

Enabling the **Use Figma Visual Text Case** option will automatically force your exported text layers to match the "visual" text case (for example, "Uppercase", "Title Case", "Lowercase") option set on your text layer in Figma. You can use this option to visually mirror the text content in your design, instead of exporting the underlying text layer content (for example, as it appears with the default "As typed" case setting selected).

### Including design references

Enabling the **Include Design References** option will include `.png` images for each frame that you've selected to export. These can be used as a design reference alongside the text exported to `.csv`, `.json`, `.md` or `.xliff` files.

### Grouping duplicate text layers

Enabling the **Group Duplicate Text Layers** option will ensure that any text layers with exactly the same content with automatically be grouped into a single entry in your CSV, JSON, Markdown or XLIFF export. This option can make editing and re-importing your content back into Figma a bit easier, as you only need to edit the text in one place and it will be re-imported back to all of the layers with the same text after being changed.

### Splitting Figma frames into separate files

By default, CopyDoc will export all of your selected Figma frames into a single document file (for example, `.csv`, `.xslx`, etc), but if you would prefer each Figma frame to be exported as a different document file, you can enable the **Export File Per Frame** option in the export settings to do that.

> **Note:** Note, this option won't be available if the **Group Duplicate Text Layers** option is also enabled, as the grouped option requires all text layers to be exported as a single file.

## Adding custom text variant placeholders to CSV or JSON exports

One common use case for exporting and re-imported text that has been modified externally in a CSV or JSON file is to quickly swap out your text in Figma to an alternate version of the content. Often, this is localised content, where you're translating content into a different language, or trying out a different set of content for A/B testing etc.

If you need to do this for more than a single language or text variant, you can select the **CSV (Custom)** or **JSON (Custom)** options in the export formats select box. Selecting either of these options will reveal a new text input field where you'll be able to add your own custom text variant placeholders that will be included in your CSV or JSON exports.

For example, if you know you need to translate the text layers in your current Figma design to multiple languages, you might add custom variants called _Japanese_, _Dutch_ and _French_. This will ensure that these are all added as additional CSV columns or JSON properties, and you'll be able to populate them with the translated text after exporting your content from Figma.

If you decided to re-import these text updates back into Figma via the CopyDoc plugin again later, you'll be able to instantly select any variant in your single CSV or JSON file to swap out, making it much easier than maintaining multiple files.

## Exporting and downloading your text content

Once you're happy with all of your export settings, you can click the **Export** button at the top of the export panel to begin exporting text layers from Figma to CSV, JSON, Markdown or XLIFF.

After CopyDoc has finished processing your text layers, you'll be shown a confirmation message; you can download your `.zip` file containing your exported text (and optional image) files by clicking the **Download Text** button.

After you've downloaded your `.zip` file from Figma to your computer, you can open your file explorer to the directory where it was saved. **Double clicking** on the exported `.zip` file will unzip the contents and let you use your text exports however you like.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

## Quick export text layers from any layer selection

[Video](/assets/videos/copydoc/export/quick-export-text-layers.mp4)

If you want to quickly export text layers from any Figma layer selection (instead of only top level Figma frames), you can click the **Quick Export** button in the CopyDoc plugin to do this, and download the file to your computer. Editing this file will allow you to use the **Re-Import** feature to update your text layers, too.

## Video Tutorials

### Video Tutorial: Import/export Figma text layers with CSV files

This video walks through how to import/export Figma text layers with CSV files using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/16QHfpJ8M7E)

### Video Tutorial: Export & Re-Import Figma text content via Airtable sync

This video walks through how to export & re-import Figma text content via Airtable sync using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/ZoyLiC8riPc)

### Video Tutorial: Import/export Figma text layers with JSON files

This video walks through how to import/export Figma text layers with JSON files using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/Nn01U9o_D9o)

### Video Tutorial: Export and re-import selected text layers in Figma

This video walks through how to export and re-import selected text layers from Figma using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/gCQZiVV7HOM)

### Video Tutorial: Update Figma text layer content with Markdown files

This video walks through how to update Figma text layer content with Markdown files using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/LIeoBRnuchM)

### Video Tutorial: Update Figma text from Microsoft Word with DOCX files

This video walks through how to update Figma text from Microsoft Word with DOCX files using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/eULh-xz99NU)

### Video Tutorial: Update Figma text from Google Docs with DOCX files

This video walks through how to update Figma text from Google Docs with DOCX files using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/QA1mmImf7EI)

### Video Tutorial: Update Figma text from Office 365 with DOCX files

This video walks through how to update Figma text from Office 365 with DOCX files using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/Wj9_H2yhibg)

## Related CopyDoc guides

- Use the [CopyDoc localization workflow](/copydoc/localization/export) to export, translate, and re-import text for multiple locales.
- Follow the [CopyDoc quick-start guide](/copydoc/overview/quickstart) for the complete setup workflow.
- Explore the [CopyDoc Figma plugin](https://www.hypermatic.com/copydoc/) for spreadsheet sync, text updates, and document exports.

---

---
url: "/copydoc/update/find-and-replace.md"
description: "The **Find & Replace** feature in CopyDoc works by letting you search all of the text layers on your current Figma page , and replacing any matching with different text. This is useful for a quick find and replace, instead of using a full CSV or JSON export/import."
---

# Finding and replacing text content

> The **Find & Replace** feature in CopyDoc works by letting you search all of the text layers on your current Figma page , and replacing any matching with different text. This is useful for a quick find and replace, instead of using a full CSV or JSON export/import.

### Video Tutorial: Find and replace Figma text content

This video walks through how to find and replace Figma text content in your design's layers using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/E_GDAQdXEGQ)

[Video](/assets/videos/copydoc/update/find-and-replace.mp4)

To get started with this feature, click on the **Find & Replace** button in the main CopyDoc plugin screen.

You'll now be able to search your current Figma page for text using the **Text to Find in Figma Page** input field, and then specify the text you'd like to replace any matches with by using the **Text to Replace Matches With** input field.

Clicking the **Find Matches & Preview Updates** will conduct the search and show a list of any matching text layers where the text you searched for was found. You'll also be able to preview what the text will look like with your replacement text.

You can select/deselect any text layers you would like to perform the replacement on; if you don't know which layer is related to which part of the design, you can click on the **Text** icon button to instantly zoom and scroll to that text layer on your Figma page.

When you're happy with the previewed changes and the text layer selections to replace, you can click on the **Update Figma Text Layers** button to automatically replace any matching text with your new specified text.

> **Warning:** **Figma text layers with missing fonts can't be updated**. If your Figma text layer contains a [missing font](https://help.figma.com/hc/en-us/articles/360039956994-Manage-missing-fonts), the plugin won't be able to update it. Please ensure any text layers you would like to update in any way using the CopyDoc plugin have their missing fonts resolved.

---

---
url: "/copydoc/update/import.md"
description: "The **Import Text Layers** feature in CopyDoc works by letting you add your updated `.csv`, `.json`, `.md`, `.docx` or `.xliff` file that was originally exported from the CopyDoc plugin, and manually approving any text differences compared to the text layers in your Figma file, then applying any selected updates with one click."
---

# Re-importing text updates to Figma

> The **Import Text Layers** feature in CopyDoc works by letting you add your updated `.csv`, `.json`, `.md`, `.docx` or `.xliff` file that was originally exported from the CopyDoc plugin, and manually approving any text differences compared to the text layers in your Figma file, then applying any selected updates with one click.

[Video](/assets/videos/copydoc/export/importing-text-layers.mp4)

To get started, click on the **Import Text Layers** button in the main CopyDoc plugin menu, then drag and drop your updated `.csv`, `.json`, `.md`, `.docx` or `.xliff` file from your computer into the drop zone of the import settings panel. This will read your file and check for any updated text layers compared to your Figma text layers.

After your text update previews have loaded, you can see a list of all the differences of the text layers that contain updates in your file.

If you originally exported a `.csv` or `.json` file with multiple custom text variants, you'll be able to switch between these by clicking the **Select (CSV Column/JSON Property) To Import** drop down menu.

You can approve the changes that will be applied by scrolling through the list and **checking** or **unchecking** the text updates you would like to import, then once you're happy with the selected text layers, click the **Update Figma Text Layers** button to instantly apply all of the selected text updates at once.

> **Warning:** **Figma text layers with missing fonts can't be updated**. If your Figma text layer contains a [missing font](https://help.figma.com/hc/en-us/articles/360039956994-Manage-missing-fonts), the plugin won't be able to update it. Please ensure any text layers you would like to update in any way using the CopyDoc plugin have their missing fonts resolved.

> **Tip:** **Use the normal "undo" command in Figma to undo updates**. If you want to undo your text updates, you can use the standard CMD + Z (on Mac) or CTRL + Z (on Windows) shortcut to undo the changes in your Figma file.

> **Note:** **Zooming in on text layers that contain updates**. To instantly see where each text layer is in your Figma file, you can click on the **Text** icon button next to any of the updated layers to instantly move the focus of your Figma page to show where the text layer is located. You can click on this icon before _or_ after making your text updates.

## Video Tutorials

### Video Tutorial: Import/export Figma text layers with CSV files

This video walks through how to import/export Figma text layers with CSV files using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/16QHfpJ8M7E)

### Video Tutorial: Export & Re-Import Figma text content via Airtable sync

This video walks through how to export & re-import Figma text content via Airtable sync using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/ZoyLiC8riPc)

### Video Tutorial: Import/export Figma text layers with JSON files

This video walks through how to import/export Figma text layers with JSON files using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/Nn01U9o_D9o)

### Video Tutorial: Export and re-import selected text layers in Figma

This video walks through how to export and re-import selected text layers from Figma using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/gCQZiVV7HOM)

### Video Tutorial: Update Figma text layer content with Markdown files

This video walks through how to update Figma text layer content with Markdown files using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/LIeoBRnuchM)

### Video Tutorial: Update Figma text from Microsoft Word with DOCX files

This video walks through how to update Figma text from Microsoft Word with DOCX files using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/eULh-xz99NU)

### Video Tutorial: Update Figma text from Google Docs with DOCX files

This video walks through how to update Figma text from Google Docs with DOCX files using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/QA1mmImf7EI)

### Video Tutorial: Update Figma text from Office 365 with DOCX files

This video walks through how to update Figma text from Office 365 with DOCX files using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/Wj9_H2yhibg)

---

---
url: "/copydoc/update/spellcheck.md"
description: "The **Spell Check Layers** feature in CopyDoc works by checking every text layer on your page for spelling errors, and provides suggestions to correct any misspelled words."
---

# Spell checking Figma text layers

> The **Spell Check Layers** feature in CopyDoc works by checking every text layer on your page for spelling errors, and provides suggestions to correct any misspelled words.

### Video Tutorial: Spell check Figma text layers in your designs

This video walks through how to spell check text in your Figma designs using the CopyDoc plugin.
[Embedded media](https://www.youtube.com/embed/zIlzh6_kicw)

[Video](/assets/videos/copydoc/update/spellcheck.mp4)

## Selecting the spell checking language

To get started with this feature, click on the **Spell Check Layers** button in the main CopyDoc plugin screen. When the settings panel opens, you can select the language of the text you would like to spell check by clicking the **Language** select box and changing the language that matches your Figma text content.

## Finding spelling mistakes in your text layers

Once you've selected your language, you can click the **Find Spelling Mistakes** button to begin searching _every_ text layer on the current Figma page for spelling mistakes.

> **Info:** **More Figma text layers will take longer**.  The more text layers in your Figma file, the longer it will take to find spelling mistakes.

## Zooming in on text layers that contain spelling mistakes

Once the search is complete, you will see a list of words that contain spelling mistakes.

To instantly see where each text layer is in your Figma file, you can click on any word in the results list to expand it and show the frame(s) where the text is located in your page; clicking the **Search** icon next to any of these frames will instantly move the focus of your Figma page to show where the text layer is located.

## Applying spelling corrections to text layers

To apply a correction to a word that contains a spelling mistake, you can click on any of the **suggestion** buttons underneath each word; clicking any of the buttons will instantly change the word to the new suggested word in each of the locations where it exists.

> **Warning:** **Figma text layers with missing fonts can't be updated**. If your Figma text layer contains a [missing font](https://help.figma.com/hc/en-us/articles/360039956994-Manage-missing-fonts), the plugin won't be able to update it. Please ensure any text layers you would like to update in any way using the CopyDoc plugin have their missing fonts resolved.

## Undoing spelling corrections to text layers

To undo a correction you made to a word, you can click the **Undo** button besides the "corrected to" notification after a suggestion was applied; clicking the **Undo** button will instantly change the corrected word back to the original word in each of the locations where it exists.

---

---
url: "/crypto/designs.md"
description: "Upload static Figma frames to password-protected Crypto URLs and manage versions."
---

# Uploading password protected static Figma Designs

> Upload static Figma frames to password-protected Crypto URLs and manage versions.

### Video Tutorial: Password protect static Figma designs

This video walks through how to add password protection to your Figma designs using the Crypto plugin.
[Embedded media](https://www.youtube.com/embed/RXqpOgT0a04)

The "Static Frames" feature in Crypto works by uploading images of your top level parent frames from the current Figma page via the Crypto Figma plugin, and generating a secure URL and password that you can share with others, where they can view your designs via the Crypto web app (without them requiring a Figma account).

To get started with this feature, please ensure you've selected **Figma Designs (Static Frames)** from the Crypto plugin toolbar.

### Selecting and deselecting frames to upload

[Video](/assets/videos/crypto/design/select-deselect-layers.mp4)

To get started, please ensure you've selected **Figma Designs (Static Frames)** from the Crypto plugin toolbar.

You'll now be able to select the frames from your current Figma page that you would like to use as the designs to share in your password protected link.

Crypto will load all of your "parent frames" from your current Figma page into the plugin as a list of frames that you can use to choose the designs you should like to share; you can click on any frame's checkbox or image thumbnail to select it (clicking it again will deselect it).

> **Note:** **Parent level Figma frames required**. To upload your static designs, your Figma page must contain at least one "Parent Frame". This means, any "frames" that are located _directly_ underneath your page.

### Highlighting Figma parent frames to select them

[Video](/assets/videos/crypto/design/filter-selected-layers.mp4)

To make it easier to select the Figma parent frames that you want to compare, clicking or highlighting any frame(s) on your Figma page will automatically filter them down in the available frames list in the Crypto plugin.

### Refreshing Figma parent frames

[Video](/assets/videos/crypto/design/refreshing-deleted-layers.mp4)

If the Crypto plugin is already running and you need to add or remove any parent frames on your current Figma page, you can make those updates as needed and then click on the **Refresh** icon button in the Crypto plugin toolbar.

### Using quick sort to order your frames

[Video](/assets/videos/crypto/design/sort-layers-dropdown.mp4)

There are a number of different ways to sort the order of your frames for your uploaded designs:

#### Sort frames by Figma Layer Order

Selecting the **Sort frames by Figma Layer Order** option will automatically sort your the order of your frames to match their order in your Figma layers.

#### Sort frames visually by Columns

Selecting the **Sort frames visually by Columns** option will automatically sort your the order of your frames to match their visual positioning order by columns in your Figma design.

#### Sort frames visually by Rows

Selecting the **Sort frames visually by Rows** option will automatically sort your the order of your frames to match their visual positioning order by rows in your Figma design.

#### Sort frames visually by Figma Layer Name

Selecting the **Sort frames by Figma Layer Name** option will automatically sort your the order of your frames to match their alphabetical order according to their Figma layer names.

### Manually ordering frames with drag and drop

[Video](/assets/videos/crypto/design/drag-drop-ordering.mp4)

You can manually sort the order of your frames using drag and drop, by **clicking/holding** your mouse on any thumbnail image, and **dragging it up or down** to shift its order in your uploaded frames, then **dropping** it to confirm that order. This custom ordering will be saved if you want to switch between ordering options, so you can get it back by clicking the **Sort frames by Custom Order** option in the sorting select box.

### Uploading your designs

[Video](/assets/videos/crypto/design/upload-first-version.mp4)

Once you're happy with your frame selection and ordering, you can click the **Share Design URL** button in the Crypto plugin toolbar. This will open the share overlay, where you can click the **Securely Upload Designs** button to begin uploading the images.

You will see a confirmation message with your secure URL and a generated password when the upload is complete.

> **Warning:** **Duplicating a Figma file also copies its URL and password.** To generate different details for the duplicate, enter the Konami code (**Up**, **Up**, **Down**, **Down**, **Left**, **Right**, **Left**, **Right**, **B**, **A**) while the plugin is open. Crypto creates a new URL and password without deleting the previous URL.

### Opening your generated URL

[Video](/assets/videos/crypto/design/confirmation-screen.mp4)

Once the upload has completed, you'll be able to copy the secure URL and password to view your selected frames from Figma in the browser, using the Crypto web app.

> **Tip:** **URL and password details can be accessed in the plugin later**. If you need to copy these URL and password details again later, you can do this by clicking the **Share Design URL** button in the Crypto plugin toolbar, then selecting a previously uploaded version using the **version select box**; this will reveal the URL and password details for the URL that you can copy under the **Secure URL Details** section.

### Uploading a new version URL

[Video](/assets/videos/crypto/design/upload-new-version.mp4)

After you've uploaded your designs for the first time, you'll have the option to continue uploading new URLs, which create **versions** of your designs. This can be a good way to keep track of different stages in a design, or To create different URLs that show a different set of frames.

You can create a new version URL using the Crypto plugin by clicking the **Share Design URL** button in the Crypto plugin toolbar, then clicking the **Upload New Version URL** button.

You will see a confirmation message with your new secure URL version and the password when the upload is complete.

> **Tip:** **URL and password details can be accessed in the plugin later**. If you need to copy these URL and password details again later, you can do this by clicking the **Share Design URL** button in the Crypto plugin toolbar, then selecting a previously uploaded version using the **version select box**; this will reveal the URL and password details for the URL that you can copy under the **Secure URL Details** section.

### Updating a previously uploaded Crypto version URL

[Video](/assets/videos/crypto/design/update-previous-version.mp4)

There are times when you will want to update a previous version Crypto URL that you've uploaded and sent to someone; you can update any previously uploaded URL using the Crypto plugin by clicking the **Share Design URL** button in the Crypto plugin toolbar, then selecting a previously uploaded version using the **version select box** and clicking the **Update Version xxxxxxxx URL** button.

This will replace the designs on that previously uploaded URL with the new frames that you've selected in the Crypto plugin. It will not update the URL or password details, so anyone with those details previously will still be able to use them.

You will see a confirmation message with your new secure URL version and the password when the upload is complete.

> **Tip:** **URL and password details can be accessed in the plugin later**. If you need to copy these URL and password details again later, you can do this by clicking the **Share Design URL** button in the Crypto plugin toolbar, then selecting a previously uploaded version using the **version select box**; this will reveal the URL and password details for the URL that you can copy under the **Secure URL Details** section.

> **Warning:** **Updating a URL will replace the previously uploaded designs**. Clicking the **Update Version xxxxxxxx URL** button will replace all the uploaded designs for that selected version. Anyone with the previous URL and password will see the updated designs when they re-visit the URL that was previously sent to them.

### Changing your Crypto URL password

[Video](/assets/videos/crypto/design/change-password.mp4)

By default, the Crypto plugin generates a secure random password for you, but if you want to change this to a custom password of your own, you can do this by enabling the **Change Password** toggle under the **Set Password for Crypto URLs** section of the upload settings panel, then entering your new password in the input field (a minimum 6 characters is required) and clicking the **Set Password** button, which will update the password for your Crypto URL for this Figma page.

> **Note:** **Static designs and prototype URLs share the same password per Figma page**. If you're uploading static designs and a prototype on the same Figma page, please be mindful that each Figma page only has a single password for both URLs. Changing the password for one will also update the other.

> **Warning:** **Updating the password will lock out anyone who had the previous password**. Updating the password will prevent anyone who may have had the previous password from looking at your URL; if you need them to still have access, please re-share the new password with them.

### Deleting a Crypto version URL

[Video](/assets/videos/crypto/design/delete-previous-version.mp4)

You can delete any version of the secure URLs you've generated using the Crypto plugin by clicking the **Share Design URL** button in the Crypto plugin toolbar, then selecting a previously uploaded version using the **version select box** and enabling the toggle: **I would like to delete the xxxxxxxx version URL**; enabling this toggle will allow you to click the **Delete Version xxxxxxxx URL** button.

You will see a confirmation message letting you know that the selected version was deleted.

> **Warning:** **Deleting a version URL cannot be undone** Clicking the **Delete Version xxxxxxxx URL** button will delete all the uploaded designs for that selected version. Anyone with that URL won't be able to view those designs anymore. However, you can always upload a new version and share the new URL with them after deleting the previous URL they were sent.

## Viewing Static Figma Designs

### Logging in to your designs

[Video](/assets/videos/crypto/design/confirmation-screen.mp4)

After opening your URL (from the Crypto Figma plugin) in your web browser, you'll be able to paste in the generated password (from the Crypto Figma plugin). After pasting your password for the URL, clicking the **Login** button will authenticate you to view the uploaded designs.

### Navigating the frames in your design

[Video](/assets/videos/crypto/design/design-arrow-drag.mp4)

You can navigate between your frames in the Crypto web app by **clicking the arrow** icon buttons, **clicking/holding and dragging** the frames left or right, or by pressing the **left arrow** or **right arrow** keys on your keyboard. Pressing the **space** key on your keyboard will also move to the next frame.

### Jumping between frames in your design

[Video](/assets/videos/crypto/design/design-nav-bar.mp4)

If you need to jump directly to a certain frame in your uploaded designs, you can use the navigation bar at the bottom of the page in the Crypto web app. Hovering over the navigation bar will reveal the thumbnails for each frame, and clicking any of the thumbnails will instantly jump to viewing that specific frame.

### Switching between your uploaded design versions

[Video](/assets/videos/crypto/design/design-swap-versions.mp4)

If you have uploaded multiple versions of your designs using the Crypto Figma plugin, you can instantly switch between those versions in the Crypto web app by clicking the **select box heading** in the top left of the page. Selecting a different version will load up the designs for that specific version. You'll also be able to see when each version was **last updated** by looking at the label underneath the selector.

### Toggling dark mode

[Video](/assets/videos/crypto/design/design-dark-mode.mp4)

If your designs work better against a dark background, you can toggle **dark mode** by clicking the **sun** or **moon** icon in the Crypto web app toolbar. Clicking the icon will toggle between dark mode and the default (lighter) mode.

### Toggling the outer contents visibility

[Video](/assets/videos/crypto/design/design-visibility.mp4)

If you don't want the heading, arrow icons, navigation bar or icon toolbar to be visible while looking at your designs, you can click on the **visibility** icon button in the Crypto web app toolbar. Clicking this icon button will toggle the visibility of everything besides the designs themselves.

---

---
url: "/crypto/faq/plans.md"
description: "To get unlimited usage of all of the Crypto Pro features, you will need to purchase a license from the [Hypermatic website](https://hypermatic.com/crypto#pro)."
---

# Crypto Free vs Crypto Pro

> To get unlimited usage of all of the Crypto Pro features, you will need to purchase a license from the [Hypermatic website](https://hypermatic.com/crypto#pro).

Crypto includes 10 free trials of the _Pro_ version. Once these trials have been used up, the Figma plugin will revert to their _Free_ version, which will have limited functionality.

  - **Crypto Free**: ### Protected PDFs Unlimited Usage       ### Protected Designs Try during 10 Pro Trials       ### Protected Prototypes Try during 10 Pro Trials
  - **Crypto Pro**: ### Protected PDFs Unlimited Usage       ### Protected Designs Unlimited Usage       ### Protected Prototypes Unlimited Usage

---

---
url: "/crypto/faq/security.md"
description: "Crypto runs as an official plugin inside of Figma's own app, which are reviewed and approved by the Figma team."
---

# Crypto Security

> Crypto runs as an official plugin inside of Figma's own app, which are reviewed and approved by the Figma team.

The Figma plugin is run directly from Figma's own servers, and runs inside of a your Figma file, which means that it inherits all of the [security](https://www.figma.com/security/) and infrastructure of the Figma platform, which exceed industry standards for data protection and security:

- SOC 2 Type 2
- SOC 3
- Cloud Security Alliance (CSA) STAR: Level 1
- ISO/IEC 27001:2013
- ISO/IEC 27018:2019
- EU Cloud Code of Conduct (COC): Level 2

There's **no additional software** that needs to be installed to use the Figma plugin, as Figma plugins run as a built-in part of Figma's own native functionality, and all Figma plugins Accessibile and can be instantly run from inside any Figma file, or via the official [Figma Community](https://www.figma.com/community) ecosystem inside of the Figma app.

If your organization is already approved to use Figma, then you _already have access_ to Figma plugins.

## How Crypto works

The [Crypto Figma plugin](https://www.figma.com/community/plugin/819688895973707151) helps users password protect their Figma designs and Figma prototypes.

Crypto is designed to be privacy and security focused, so any "Share" URLs that are generated are password protected by default, and encrypt image uploads with AES-256.

Any uploads and cloud storage services used by the Crypto Plugin and Crypto Web App are hosted on [Google Cloud](https://cloud.google.com/) (the same infrastructure that Google hosts all of its own products with), via [Google Firebase](https://firebase.google.com/).

As per the [Privacy and Security in Firebase](https://firebase.google.com/support/privacy), all Firebase services (aside from App Indexing) have successfully completed the **ISO 27001** and **SOC 1**, **SOC 2**, and **SOC 3** evaluation process, and some have also completed the **ISO 27017** and **ISO 27018** certification process.

## What Crypto does and doesn't do

Crypto uses the [Figma Plugins API](https://www.figma.com/plugin-docs/) to export Figma designs and create a password-protected URL that you can share with any stakeholders for reviewing outside of the Figma app.

### Crypto does

- Allow users to generate password protected URLs to share with their stakeholders.
- Create fast, beautiful and easy to use preview pages in the browser.
- Encrypt image uploads with AES-256.
- Allow users to put their Figma prototype embeds on a password protected URL.
- Automatically deletes URL/uploads if not accessed for 180 days.
- Download any exported PDF files _directly_ to the user's computer.

### Crypto does _not_

- Make _any_ password-protected "Uploaded" URLs created via the plugin publicly accessible or indexed by any search engines.
- Collect or store _any_ personal information (Figma plugins *cannot* access any private information about Figma projects, Figma teams or Figma users).

## How Figma plugins work

Figma plugins are written in HTML/CSS/Javascript, and are run in a tightly controlled [sandbox environment](https://www.figma.com/plugin-docs/how-plugins-run/) inside of the main Figma application.

Figma plugins can only do whatever Figma allows them to do inside the permissions of the [Figma Plugins API](https://www.figma.com/plugin-docs/), and importantly, **plugins don't have any access to personal information** about the Figma user running the plugin.

## What Figma plugins can and can't do

As per the article on [Figma plugin security](https://www.figma.com/blog/how-we-built-the-figma-plugin-system/), there are a limited number of things that Figma plugins can do, and many more things that they can't do:

### Figma plugins can

- Only be run by an explicit user action
- Show UI in a single plugin-specific dialog
- Read any data in your Figma document (for example, a “find layer by name” plugin)
- Modify any data in your Figma document (for example, a “rename selected layers” plugin)
- Communicate with any server over the internet (for example, an “import from service X” plugin)

### Figma plugins _cannot_

- Run by themselves
- Get information about the project or team that owns the file
- Access anything when they aren’t running
- Access data from any files other than the file they were run in
- Change Figma’s UI outside of the plugin UI dialog

> **Tip:** Figma account administrators at your company can [configure an allowlist of plugins](https://help.figma.com/hc/en-us/articles/4404228724759-Manage-plugins-and-widgets-in-an-organization) that are allowed inside the organization. This can be used to prevent untrusted Figma plugins from being run in any file in that organization.

---

---
url: "/crypto/faq/troubleshooting.md"
description: "Troubleshooting guide for Crypto links, exports, and common issues."
---

# Troubleshooting Crypto

> Troubleshooting guide for Crypto links, exports, and common issues.

### URL expiration

Your secure links and images will automatically be removed after a 180 day period of inactivity (180 days after the link was last accessed and viewed) to ensure they are not accidentally laying around after they've served their purpose.

### Google Cloud

Your static design images are securely stored as images in Google Cloud, with the same encryption used by many of Google’s production services, including Gmail and Google’s own corporate data. Note, this _doesn't_ apply to the "Figma Prototype" option, which is an embed hosted by Figma.

### Create a brand new URL/password for your Figma file

Due to it being a fairly sensitive feature, instead of adding a button/icon to click, we've made this feature activate only by entering the "Konami Code" on your keyboard while the plugin is running:

`Up, Up, Down, Down, Left, Right, Left, Right, B, A`

Typing that sequence of keys on your keyboard will trigger the Crypto plugin to create a brand new URL/password for your Figma file, so you could enter it in a duplicated Figma file to give it a different brand new URL/password than the original one.

### Blank file extensions using Figma desktop app on Windows

There's a known issue with the Figma desktop app (only on Windows), which also happens for normal file exports from Figma. When you go to save your file, you may see an "all files" label. If you ignore this and continue by clicking "Save", it should still save the file with the correct extension and allow you to open it as expected after it has downloaded to your computer. If it still saves the file with a blank extension, you should be able to rename the file to manually append the correct extension to the file name.

### Pixelated image exports

If you're uploading your images or exporting a PDF while the image assets in Figma are still progressively loading, they may be exported looking pixelated, as the image wasn't fully loaded in the Figma file before it was exported. To resolve this, please ensure that all of the images have loaded 100% and are looking sharp inside the Figma file before uploading your images or exporting PDFs with the Crypto plugin. To help further with solving this issue, you can use the ["Downsizer" feature](/tinyimage/downsize) to shrink down your image fills to match their layer size, which will shrink their file size and ensure they load much faster in your Figma file.

### Thin white line around image exports

Occassionally some images will contain a faint, thin white line around the edges. Figma [does this](https://twitter.com/Skcrub/status/1255544876701270017) if a layer isn't positioned on a rounded pixel value (for example, Y: 156.76 or X: 56.3) will automatically result in this sub-pixel line getting included in the export. To resolve the issue, please ensure that your layer positions are all rounded pixel values.

### Designs not uploading from the plugin, or images not loading in the web app

One reason this might be happening is if your ISP (internet service provider) is blocking the QUIC protocol. You can confirm this by opening up your developer console in the browser or in Figma and see the error message `ERR_QUIC_PROTOCOL_ERROR`. There are a couple of workarounds for this issue:

1. Switching to your mobile phone's Wi-Fi hotspot/tether for your computer's internet connection
2. [Disabling QUIC](https://kinsta.com/knowledgebase/err_quic_protocol_error/) in your browser

### Slow PDF exports

If your PDF exports are going really slow, it's likely due to having high-res/large image fills in some of the content, which causes Figma to take a much longer time generating PDFs. To help with this issue, you can use the ["Downsizer" feature](/tinyimage/downsize) in [TinyImage](https://www.figma.com/community/plugin/789009980664807964/TinyImage-Compressor) to shrink down your image fills to match their layer size, which will shrink their file size and ensure they load much faster in your Figma file. Once you've finished downsizing the image fills in your Figma page, re-running Crypto and exporting your PDF again via the plugin should be much faster.

### Editing PDFs in Adobe Acrobat shows dotted lines

This can be resolved by un-checking the "Show bounding boxes" toggle in the Acrobat Acrobat app sidebar while editing your PDF. Showing the dotted bounding box lines is something that [Adobe enables by default](https://archive.md/Uhdbk) while enter "Edit" mode when you have a PDF open in the app, but turning off the "Show bounding boxes" toggle will turn hide those from being displayed with one click.

### Netskope blocking the Crypto web app from loading

There is a known issue with [Netskope](https://www.netskope.com/) blocking access to Firebase databases; to resolve this, please ensure you allow `firestore.googleapis.com:443` (as per [this thread](https://stackoverflow.com/questions/52441316/firestore-grpc-behind-a-corporate-firewall-proxy)).

### Some elements are missing and turning into purple rectangles when exporting PDF from Figma

This is a known [Figma bug](https://forum.figma.com/t/pdf-export-consistently-missing-elements/3547) that can show purple boxes instead of images. Crypto uses Figma's native PDF export, so the same problem can appear in Crypto exports.

One suggestion that can help is to ensure the problematic layer is actually nested _inside_ of the main Figma frame, as sometimes a Figma layer is "visually" positioned on top of your frame on the canvas, but the layer itself is still sitting outside of the frame; this seems to be related to why the problem occurs sometimes.

### 'An error occurred while loading the plugin environment'

This may happen in the Figma desktop app if [the Use Developer VM](https://www.figma.com/plugin-docs/debugging/#developer-vm) debug setting in Figma is enabled by mistake; you can make sure it's turned off by **right-clicking** anywhere on your Figma canvas, hovering over **Plugins**, then hovering over **Development**, and making sure that the **Use Developer VM** is _unchecked_; after it is unchecked (and does _not_ have a tick icon next to it), re-running the Figma plugin should work as expected.

### 'An error occurred while loading the plugin environment'

This may happen in the Figma desktop app if the "Use Developer VM" setting is enabled by mistake; you can make sure it's turned off by **right-clicking** anywhere on your Figma canvas, hovering over **Plugins**, then hovering over **Development**, and making sure that the **Use Developer VM** is _unchecked_; after it is unchecked (and does _not_ have a tick icon next to it), re-running the Figma plugin should work as expected.

---

---
url: "/crypto/overview/install.md"
description: "Ensure you're logged into your Figma account, then follow the steps below to install and run the [Crypto Figma Plugin](https://www.figma.com/community/plugin/819688895973707151/crypto-password-protection)."
---

# Install and run the Crypto Figma Plugin

> Ensure you're logged into your Figma account, then follow the steps below to install and run the [Crypto Figma Plugin](https://www.figma.com/community/plugin/819688895973707151/crypto-password-protection).

### Video Tutorial: How to install (and remove) Figma plugins

This video tutorial is a complete step-by-step guide showing you the new process of how to install (and remove) Figma plugins after the mid-2024 "UI3" update to the Figma app
[Embedded media](https://www.youtube.com/embed/CzjxF2Jv6PM)

## Installing the Crypto Figma Plugin

1. Open any Figma file.
2. Click on the **Actions** icon in the bottom Figma toolbar.
3. Click the **Plugins & Widgets** tab to filter results to Figma plugins.
4. Search for **Crypto** in the search bar.
5. Click on the **Crypto** search result.
6. Click the **Save** button to install the Crypto plugin.

> **Note:** Figma users in a **Figma Organization** may only be able to install approved plugins. Please contact your Figma Org admin at your company to [approve the Crypto plugin](https://help.figma.com/hc/en-us/articles/4404228724759-Manage-plugins-and-widgets-in-an-organization) if you're unable to install certain Figma plugins.

## Running the Crypto Figma Plugin

Once you've [installed](#installing-the-figma-plugin) the **Crypto** Figma plugin, to run the plugin in your Figma file:

  1. **Right-click** anywhere on your Figma file's page canvas
  2. Hover your mouse over the **Plugins** ▶ menu item
  3. Hover your mouse over the **Saved plugins** ▶ menu item
  4. Click on the **Crypto** plugin menu item

> **Tip:** After you've run the **Crypto** plugin once in a Figma file, you'll be able to quickly re-launch it by clicking the **Crypto** icon in the right-hand side Figma column (under the **Plugin** subheading).

> **Warning:** Only Figma users with **Edit** access to a Figma file can run a Figma plugin in that Figma file; if you only have **View** permissions, you won't be able to run any Figma plugins in that file.

## Uninstalling the Crypto Figma plugin

1. Open any Figma file.
2. Click on the **Actions** icon in the bottom Figma toolbar.
3. Click the **Plugins & Widgets** tab to filter results to Figma plugins.
4. Search for **Crypto** in the search bar.
5. Click on the **Crypto** search result.
6. Click the **Remove** button to uninstall the Crypto plugin.

> **Note:** This will remove the plugin from your **Saved Plugins** list, however, the Figma plugin may still show up under your **Recents** list (if it has been recently run), as Figma saves this list of recent plugins in your browser's/app's local storage. The plugin will vanish from the Recents menu after other plugins are run to take its place.

---

---
url: "/crypto/overview/pro.md"
description: "After trying out all the Pro features of Crypto **10 times**, you can optionally upgrade to continue using all the extra features that are only available in the Pro version; or if you're a casual user, you can continue using the Free version forever."
---

# Activating Crypto Pro

> After trying out all the Pro features of Crypto **10 times**, you can optionally upgrade to continue using all the extra features that are only available in the Pro version; or if you're a casual user, you can continue using the Free version forever.

> **Tip:** Need a Crypto Pro account? You can purchase a Pro account for you or your team by visiting the [Crypto](https://www.hypermatic.com/crypto/#pro) product page on the Hypermatic website.

## Activating the Figma plugin with an Crypto Pro license key

1. **Purchase a Pro license** for you or your team by visiting the [Crypto](https://www.hypermatic.com/crypto/#pro) product page on the Hypermatic website.
2. **Run the Crypto Plugin**, then click on the **Upgrade Now** button at the bottom of the Figma plugin window.
3. **Paste in your Pro key**, then click the **Unlock** button.

This will unlock the Pro version of Crypto and give you unlimited use all of the Figma plugin features.

> **Warning:** Note, if you're in China, the accounts server _may_ be blocked by "The Great Firewall of China". If you're seeing a activation error, despite using a valid key, you will likely need to use a [VPN](https://protonvpn.com/free-vpn/) to resolve the issue.

> **Info:** If you ever need to use a different license key at any time (for example, you were using your own personal Pro license key, but now your employer is buying you a Pro license to use instead), you can press **CTRL + K** while your plugin window is open in Figma, and this will bring up the license key prompt again, where you can enter a different license key.

---

---
url: "/crypto/overview/quickstart.md"
description: "Share Figma designs and prototypes through password-protected URLs or PDF files."
---

# Get started with Crypto

> Share Figma designs and prototypes through password-protected URLs or PDF files.

[![Crypto Figma Plugin](https://www.hypermatic.com/crypto.jpg)](https://www.figma.com/community/plugin/819688895973707151/crypto-password-protection)

## Install and activate Crypto

- [Install & Run the Figma plugin](/crypto/overview/install.md): How to run Crypto inside of Figma
- [Activate Crypto Pro](/crypto/overview/pro.md): How to buy and use a Pro license key

## Using Crypto

  - [Crypto Documentation](/crypto/designs.md): Detailed docs with short screencaps
  - [Crypto Video Tutorials](/crypto/tutorials.md): Full step-by-step video walkthroughs

## Frequently asked questions

- [Troubleshooting Crypto](/crypto/faq/troubleshooting.md): Common issues issues you may run into
- [Crypto Security](/crypto/faq/security.md): Details about how Crypto works
- [Receipts](/faq/receipts.md): Find email receipts and PDF invoices
- [Billing](/faq/billing.md): Manage your Pro subscription
- [License Seat Management](/faq/seats.md): Manage the Figma users on your key
- [Crypto Free vs Pro](/crypto/faq/plans.md): Compare Free vs Pro features

[Video](https://www.hypermatic.com/assets/videos/crypto/CRYPTO_DEMO.mp4)

## Crypto features

- Generates password protected URLs to share with your stakeholders.
- Automatically generates strong, random/mixed character passwords.
- Image uploads encrypted with AES-256.
- View uploaded designs on browser-based preview pages.
- Record your designs and prototypes to a WebM video in the browser.
- Supports multiple versions of your designs on the same preview URL.
- Authenticated sessions automatically end after the tab is closed.
- Put your Figma prototype embeds on a password protected URL.
- Drag frames to change their display order.
- Remembers your frame selections and order between plugin uses.
- Automatically deletes URL/uploads if not accessed for 30 days.

---

---
url: "/crypto/pdf.md"
description: "Export password-protected PDFs from Figma frames with quality and security options."
---

# Exporting password protected PDFs from Figma frames

> Export password-protected PDFs from Figma frames with quality and security options.

Along with uploading your static designs or prototype to a password protected URL, you can also export your Figma frames to a compressed, password protected (optional) PDF file that you can download to your computer. This option doesn't upload anything online, and lets you send the exported file securely via email or any other method.

To get started with this feature, please ensure you've selected **Password Protected PDF File** from the Crypto plugin toolbar.

> **Note:** **PDF Export Browser Support** Due to browser compatibility issues, the **Password Protected PDF File** feature in Crypto _isn't_ supported in **Safari**. Please run the plugin in another browser (like [Chrome](https://www.google.com/intl/en_us/chrome/)) or the [Figma Desktop App](https://www.figma.com/downloads/) instead.

## Setting PDF export options

[Video](/assets/videos/crypto/pdf/pdf-settings.mp4)

Once you're happy with your frame selection and ordering, you can click the **Export PDF File** button in the Crypto plugin toolbar. This will open the PDF export options overlay where you can specify your password and other settings.

There are a few options you can specify when exporting merged PDF files. These are related to the **compression/quality level**, **password protection** and the **color profile** of your exported PDF.

### Choosing PDF quality

You can set the quality level for your PDF export as **72dpi**, **150dpi** or **300dpi** by using the select input to specify your desired quality level. The higher the dpi, the better the quality, but also higher the file size.

### Setting a password for your merged PDF

If you would like your exported merged PDF file to require a password before it can be opened, you can enable the **Password Protect PDF** setting, then set your own password in the **password input** field. Ensure that you give this password to anyone you're sending the exported merged PDF file to, or they won't be able to open the file to view its contents.

### Gradient fills in PDF exports

If you're exporting layers to PDF that contain gradient fills inside any vector paths, you can enable the **Vector Path Gradients** setting to ensure the gradient is rendered as expected. If you don't need this option, there's no need to enable it.

## Exporting and saving the merged PDF

[Video](/assets/videos/crypto/pdf/pdf-export.mp4)

Once you're happy with your PDF settings and frame selection/order, you can click the **Export PDF** button; this will begin the process of merging and compressing your PDF pages one by one. You'll see a progress indicator showing you that the PDF is being merged and compressed.

After all of the frames in your PDF have been merged and compressed, you'll see a confirmation notification letting you know that your PDF has been merged, and your `.pdf` file is ready. You can download it to your computer by clicking the **Download PDF** button.

If you've specified a password, you'll also be able to copy it to your clipboard by clicking the **Copy** icon button next to the password field.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

## Opening your password protected PDF file

[Video](/assets/videos/crypto/pdf/pdf-open.mp4)

If your you enabled the **Password Protect PDF** setting for your PDF export, you can open your saved PDF file by double clicking the exported `.pdf` file on your computer, and pasting the password from the Crypto plugin (which you specified in the settings); this lets you view the PDF document in your PDF viewer application.

---

---
url: "/crypto/prototypes.md"
description: "Create password-protected Figma prototype embeds with Crypto and manage settings."
---

# Uploading password protected Figma Prototypes

> Create password-protected Figma prototype embeds with Crypto and manage settings.

### Video Tutorial: Password protect Figma prototype embeds

This video walks through how to add password protection to your Figma prototype embeds using the Crypto plugin.
[Embedded media](https://www.youtube.com/embed/xJ1IpxQgotU)

The "Live Embed" feature in Crypto works by putting your public Figma prototype embed behind a secure URL and password that you can share with others, where they can view your designs via the Crypto web app (without them requiring a Figma account).

> **Warning:** **The underlying Figma URL will still be public**. Due to [the way sharing links works in Figma](https://help.figma.com/hc/en-us/articles/360040531773-Share-links-to-public-and-private-files), Crypto can only _wrap_ a public Figma URL Embed inside a password protected URL, this means that **anyone with the underlying Figma URL** can still view it. You can delete the password protected URL via the Crypto plugin and/or change the permissions of the Figma file to **only people invited to this file** to revoke access, if needed.

## Switching to prototype mode

[Video](/assets/videos/crypto/proto/proto-switch-mode.mp4)

To get started with this feature, please ensure you've selected **Figma Prototype (Live Embed)** from the Crypto plugin toolbar.

> **Note:** **Parent level Figma frames required**. To upload a Figma prototype, your Figma page must contain at least one "Parent Frame". This means, any "frames" that are located _directly_ underneath your page.

## Copying your Figma URL to use

[Video](/assets/videos/crypto/proto/proto-copying-url.mp4)

## Setting your prototype options

[Video](/assets/videos/crypto/proto/proto-options.mp4)

You can select a few different configuration options when creating password protected links for your Figma Prototypes:

### Scale Options

This dropdown selector will allow you to choose how your prototype is scaled in the browser, based on the following options:

- 100% - Display at full size
- Fit - Scale down to fit
- Fill - Scale up or down to fill
- Scale down to fit width *(Default)*

### Hotspots

Enabling the **Hotspots** toggle will ensure that the prototype reveals clickable hotspots in your designs when a user clicks around the screen; keeping this turned off will ensure that not clickable hotspot hints are shown.

### Sidebar

Enabling the **Side** toggle will ensure that the sidebar navigation panel for your Figma prototype is shown in the browser; keeping this turned off will ensure this isn't shown to the user.

## Creating your password protected prototype URL

[Video](/assets/videos/crypto/proto/proto-create-url.mp4)

> **Warning:** **The underlying Figma URL will still be public**. Due to [the way sharing links works in Figma](https://help.figma.com/hc/en-us/articles/360040531773-Share-links-to-public-and-private-files), Crypto can only _wrap_ a public Figma URL Embed inside a password protected URL, this means that **anyone with the underlying Figma URL** can still view it. You can delete the password protected URL via the Crypto plugin and/or change the permissions of the Figma file to **only people invited to this file** to revoke access, if needed.

To create your password protected Prototype link, click the **Share Prototype URL**, then click the **Create Prototype URL** button.

Once the upload has completed, you'll be able to copy the secure URL and password to view your Figma prototype embed in the browser, using the Crypto web app.

> **Tip:** **URL and password details can be accessed in the plugin later**. If you need to copy these URL and password details again later, you can do this by clicking the **Share Design URL** button in the Crypto plugin toolbar, then selecting a previously uploaded version using the **version select box**; this will reveal the URL and password details for the URL that you can copy under the **Secure URL Details** section.

> **Warning:** **The underlying Figma URL will still be public**. Due to [the way sharing links works in Figma](https://help.figma.com/hc/en-us/articles/360040531773-Share-links-to-public-and-private-files), Crypto can only _wrap_ a public Figma URL Embed inside a password protected URL, this means that **anyone with the underlying Figma URL** can still view it. You can delete the password protected URL via the Crypto plugin and/or change the permissions of the Figma file to **only people invited to this file** to revoke access, if needed.

## Updating the prototype URL settings

[Video](/assets/videos/crypto/proto/proto-updating-url.mp4)

There are times when you will want to update a previous version Crypto URL that you've uploaded and sent to someone; you can update any previously uploaded URL using the Crypto plugin by clicking the **Share Design URL** button in the Crypto plugin toolbar, then selecting a previously uploaded version using the **version select box** and clicking the **Update Version xxxxxxxx URL** button.

## Changing your Crypto URL password

[Video](/assets/videos/crypto/proto/change-password.mp4)

By default, the Crypto plugin generates a secure random password for you, but if you want to change this to a custom password of your own, you can do this by enabling the **Change Password** toggle under the **Set Password for Crypto URLs** section of the upload settings panel, then entering your new password in the input field and clicking the **Set Password** button, which will update the password for your Crypto URL for this Figma page.

> **Note:** **Static designs and prototype URLs share the same password per Figma page**. If you're uploading static designs and a prototype on the same Figma page, please be mindful that each Figma page only has a single password for both URLs. Changing the password for one will also update the other.

> **Warning:** **Updating the password will lock out anyone who had the previous password**. Updating the password will prevent anyone who may have had the previous password from looking at your URL; if you need them to still have access, please re-share the new password with them.

## Deleting the prototype URL

[Video](/assets/videos/crypto/proto/proto-delete-url.mp4)

You can delete the password protected URL via the Crypto plugin and/or change the permissions of the Figma file to **only people invited to this file** to revoke access, if needed.

## Viewing Figma Prototypes

### Logging in and interacting with your password protected Figma prototype

[Video](/assets/videos/crypto/proto/proto-login.mp4)

After opening your URL (from the Crypto Figma plugin) in your web browser, you'll be able to paste in the generated password (from the Crypto Figma plugin). After pasting your password for the URL, clicking the **Login** button will authenticate you to view the uploaded designs.

Due to the Crypto web app embedding the native Figma prototype embed, interacting with your prototype works exactly the same way as it normally would by viewing it in Figma. For a more in-depth overview of this, please visit the official Figma help article to [Preview designs and prototypes in Presentation View](https://help.figma.com/hc/en-us/articles/360040318013-Preview-designs-and-prototypes-in-Presentation-View).

### Using Figma prototype keyboard shortcuts

[Video](/assets/videos/crypto/proto/proto-shortcuts.mp4)

Due to the Crypto web app embedding the native Figma prototype embed, the shortcuts for the Figma prototype are exactly the same as they are when viewing the prototype in Figma. To see these keyboard shortcuts while using the Crypto web app, you can hover your mouse over the **Keyboard** icon in the toolbar.

#### Available keyboard shortcuts while viewing the prototype

- Change View Size (**Z**)
- Toggle Fullscreen (**F**)
- Restart Prototype (**R**)
- Previous Screen (**←**)
- Next Screen (**→**)
- Advance Prototype (**Enter**)

### Toggling the toolbar icons visibility

[Video](/assets/videos/crypto/proto/proto-visibility.mp4)

If you don't want the Crypto web app icon toolbar to be visible while looking at your prototype, you can click on the **Visibility** icon button in the Crypto web app toolbar. Clicking this icon button will toggle the visibility of the icons. You can hover back over the **Visibility** icon button to reveal and and click it again to toggle the toolbar back to being visible.

> **Tip:** **Refocus the Figma embed.** After toggling icon visibility or using another Crypto toolbar control, click the Figma prototype again before using its keyboard shortcuts.

---

---
url: "/crypto/record.md"
description: "Record Crypto web app sessions for designs or prototypes into downloadable videos."
---

# Recording Figma designs or prototypes to videos

> Record Crypto web app sessions for designs or prototypes into downloadable videos.

### Video Tutorial: Record your Figma prototype to a video file

This video walks through how to record your Figma prototype interactions to a video file using the Crypto plugin.
[Embedded media](https://www.youtube.com/embed/9XmuVFkxe28)

## Recording your interactive Figma prototype to a video file

[Video](/assets/videos/crypto/record/proto-record.mp4)

You can record yourself interacting with the prototype in the Crypto web app by clicking the **Record** icon button in the Crypto web app toolbar. This will prompt you to allow the page to access screen sharing and audio. Once you've done this, you'll be able to select the browser tab as the source that you would like to share and record.

To stop the video recording, you can click on the **Stop** button in your browser.

Stopping the recording will automatically download your `.webm` video to your computer's default download folder.

> **Note:** **Video will be auto downloaded if the tab is closed**. Just in case you accidentally close the tab while the screen is being recorded, the Crypto web app will automatically stop the recording and download the video file, recorded up until the time that the tab was closed.

> **Tip:** **Toggling fullscreen mode for your prototype**. If you would prefer to view your prototype in full screen mode (instead of the windowed browser), you can press on the **F** button on your keyboard. You can exit fullscreen mode at any time by pressing the **esc** button on your keyboard.

### Opening and viewing your recorded video file

After the `.webm` file save been downloaded, you'll be able to upload it to your own website, send it to someone via Slack (or another method) or edit/convert it to another video. The easiest way to open the downloaded video file is to drag the downloaded file into your web browser, and using that to play it back.

## Recording your static Figma designs to a video file

[Video](/assets/videos/crypto/record/design-recording.mp4)

You can record yourself viewing the designs in the Crypto web app by clicking the **record** icon button in the Crypto web app toolbar. This will prompt you to allow the page to access screen sharing and audio. Once you've done this, you'll be able to select the browser tab as the source that you would like to share and record.

To stop the video recording, you can click on the **stop** button in your browser or click the **record** icon button again.

Stopping the recording will automatically download your `.webm` video to your computer's default download folder.

> **Note:** **Video will be auto downloaded if the tab is closed**. Just in case you accidentally close the tab while the screen is being recorded, the Crypto web app will automatically stop the recording and download the video file, recorded up until the time that the tab was closed.

> **Tip:** **Toggling fullscreen mode for your designs**. If you would prefer to view your designs in full screen mode (instead of the windowed browser), you can click on the **fullscreen** icon button in the Crypto web app toolbar. You can exit fullscreen mode at any time by pressing the **esc** button on your keyboard, or clicking the **fullscreen** icon button again.

### Opening and viewing your recorded video file

After the `.webm` file save been downloaded, you'll be able to upload it to your own website, send it to someone via Slack (or another method) or edit/convert it to another video. The easiest way to open the downloaded video file is to drag the downloaded file into your web browser, and using that to play it back.

---

---
url: "/crypto/tutorials.md"
description: "The best free Figma tutorial videos for beginners (or power users) to level up."
---

# Crypto Video Tutorials

> The best free Figma tutorial videos for beginners (or power users) to level up.

## Video Tutorials

- [Password protect static designs](/crypto/tutorials/password-protect-static-designs)
- [Password protect Figma prototype embeds](/crypto/tutorials/password-protect-figma-prototype-embeds)
- [Record your Figma prototype to a video file](/crypto/tutorials/record-your-figma-prototype-to-a-video-file)

---

---
url: "/crypto/tutorials/password-protect-figma-prototype-embeds.md"
description: "This tutorial shows how to use the Crypto Password Protection Figma plugin to create a password-protected URL for a Figma prototype embed. It also demonstrates how to view the protected prototype, use the embed controls, and later delete the prototype URL or change Figma sharing permissions."
---

# Password protect Figma prototype embeds

> This tutorial shows how to use the Crypto Password Protection Figma plugin to create a password-protected URL for a Figma prototype embed. It also demonstrates how to view the protected prototype, use the embed controls, and later delete the prototype URL or change Figma sharing permissions.

[← Back to Crypto Video Tutorials](/crypto/tutorials)

[Embedded media](https://www.youtube.com/embed/xJ1IpxQgotU)

**What this video covers**

This tutorial shows how to use the Crypto Password Protection Figma plugin to create a password-protected URL for a Figma prototype embed. It also demonstrates how to view the protected prototype, use the embed controls, and later delete the prototype URL or change Figma sharing permissions.

**Things you'll need**

- A Figma file with prototype interactions already set up
- Access to the Figma Share menu to copy the file link

**Steps**

1. Open Figma Community, search for Crypto, and install the Crypto Password Protection plugin.
2. In your Figma file, make sure the design has prototype interactions, then open Crypto Password Protection from Plugins.
3. Switch the plugin to Figma Prototype (Live Embed), click Share Prototype URL, and paste in the Figma file URL after setting the file to Anyone with the link and copying the link from the Share menu.
4. Choose the prototype options such as scaling and whether to show hotspot hints on click, then click Create Prototype URL.
5. Copy the generated secure prototype URL and password, open the URL in a browser, and log in with the password to view the embedded prototype.
6. Use the embed shortcuts like Z for size, R to reset, Left and Right to navigate, F for full screen, and Esc to exit full screen; use the hide and Eye icons to toggle the toolbar.
7. To remove access, either change Figma sharing back to Only people invited to this file or rerun the plugin and click Delete Prototype URL.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=xJ1IpxQgotU)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-password-protect-figma-prototypes-using-crypto)
- [Browse Crypto tutorial docs](https://docs.hypermatic.com/crypto/tutorials)

---

---
url: "/crypto/tutorials/password-protect-static-designs.md"
description: "This tutorial shows how to use the Crypto Figma plugin to password protect Figma designs and share them as secure links. It also demonstrates how to update an existing upload or create a new version while keeping designs organized and accessible in the browser."
---

# Password protect static designs

> This tutorial shows how to use the Crypto Figma plugin to password protect Figma designs and share them as secure links. It also demonstrates how to update an existing upload or create a new version while keeping designs organized and accessible in the browser.

[← Back to Crypto Video Tutorials](/crypto/tutorials)

[Embedded media](https://www.youtube.com/embed/RXqpOgT0a04)

**What this video covers**

This tutorial shows how to use the Crypto Figma plugin to password protect Figma designs and share them as secure links. It also demonstrates how to update an existing upload or create a new version while keeping designs organized and accessible in the browser.

**Things you'll need**

- Figma
- Crypto Figma plugin

**Steps**

1. Install the Crypto Figma plugin from Figma Community by searching for "Crypto" under Plugins.
2. Open the plugin from your Figma file by right-clicking and choosing Plugins > Crypto Password Protection, or relaunch it from the sidebar after it has been opened once.
3. Select the frames you want to include in the secure preview, then click "Securely Share Designs" to generate and upload the protected link.
4. Copy the secure link and password from the plugin, then open the link in a browser and log in with the password.
5. To change the shared preview without changing the link, reopen Crypto and choose "Update Last Uploaded Version" after selecting the updated frames.
6. To create a separate version, reorder frames if needed and click "Upload New Version" to generate a new secure URL and versioned preview.
7. Use the padlock icon in the plugin or the browser preview to quickly copy the password or URL later.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=RXqpOgT0a04)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-password-protect-figma-designs-using-crypto)
- [Browse Crypto tutorial docs](https://docs.hypermatic.com/crypto/tutorials)

---

---
url: "/crypto/tutorials/record-your-figma-prototype-to-a-video-file.md"
description: "This tutorial shows how to use the Crypto Figma plugin to open a secure Figma prototype, record the prototype interactions in the browser, and download the result as a video file. It also shows how to preview the saved WebM recording and notes that you can convert it to another format if needed."
---

# Record your Figma prototype to a video file

> This tutorial shows how to use the Crypto Figma plugin to open a secure Figma prototype, record the prototype interactions in the browser, and download the result as a video file. It also shows how to preview the saved WebM recording and notes that you can convert it to another format if needed.

[← Back to Crypto Video Tutorials](/crypto/tutorials)

[Embedded media](https://www.youtube.com/embed/9XmuVFkxe28)

**What this video covers**

This tutorial shows how to use the Crypto Figma plugin to open a secure Figma prototype, record the prototype interactions in the browser, and download the result as a video file. It also shows how to preview the saved WebM recording and notes that you can convert it to another format if needed.

**Things you'll need**

- Figma
- Crypto Figma plugin
- A configured Figma Prototype (Live Embed) and secure prototype URL

**Steps**

1. In Figma, open the Community page and search for "crypto" under Plugins, then install "Crypto Password Protection" if needed.
2. Back in your project, open the plugin from right-click > Plugins > Crypto Password Protection.
3. Use the existing Figma Prototype (Live Embed) setup, click "Share Prototype URL", copy the password, and open the secure URL in a web browser.
4. Log in with the password so the Figma prototype loads in the browser under the Figmatic domain.
5. Click the video camera icon in the browser toolbar, allow screen capture, and choose the Chrome tab for the Crypto URL by clicking "Share".
6. Interact with the prototype while recording, then click "Stop" to end the capture and download the video file automatically.
7. To preview the recording, drag the downloaded file into Chrome and play it; the file is saved as a WebM video.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=9XmuVFkxe28)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-record-your-figma-prototype-to-a-video-file-using-crypto)
- [Browse Crypto tutorial docs](https://docs.hypermatic.com/crypto/tutorials)

---

---
url: "/emailify/content/alt-text.md"
description: "You can add `alt` text to any content image or social icon layer by using the Settings panel in the plugin."
---

# Adding alt text to your email content images and social icon layers

> You can add `alt` text to any content image or social icon layer by using the Settings panel in the plugin.

[Video](/assets/videos/emailify/content/image-alt-text.mp4)

To add alt text to any image in your design, click on the Image layer you'd like to add a link to, then click the **Settings** button in the plugin header, and type your alt text into the **Alt Text** input field.

This will set the `alt` attribute of your `` tag in the HTML when it's exported from Emailify.

> **Tip:** You can [apply settings in bulk](/emailify/design/settings#apply-settings-in-bulk) by opening **Settings**, then selecting multiple Emailify layers of the same type in Figma. Any setting you change will be applied to all selected layers.

---

---
url: "/emailify/content/anchor-links.md"
description: "You can add clickable rich text buttons and navbar links into your email designs that can be linked to scroll to another row in your email."
---

# Adding scrollable anchor links to buttons and navbar in your emails

> You can add clickable rich text buttons and navbar links into your email designs that can be linked to scroll to another row in your email.

> **Warning:** **Scrollable anchor links aren't supported everywhere**. Currently, [support for local anchor links in email clients](https://www.caniemail.com/features/html-anchor-links/) is still quite mixed (with _some email clients_ that **won't do anything** when a scrollable link is clicked), so please be aware of this and try to design your emails with the "progressive enhancement" of these scrollable links in mind.

[Video](/assets/videos/emailify/content/scrollable-anchor-link.mp4)

To create a scrollable anchor link for any [Button](/emailify/content/link-buttons) or [Navbar Link](/emailify/content/link-nav-menu) layer in your email design, you can create a "Scroll To" Figma Prototype link that points to a **Row** layer in the same Emailify frame, and the plugin will automatically add an `id` and `name` attribute to the target Row element, and add a `href` to your Button or Navbar Link `` tag that points to it (for example, `#a123`).

---

---
url: "/emailify/content/code.md"
description: "Add custom code layers between Emailify layout elements for platform-specific tags."
---

# Adding custom code to your designs

> Add custom code layers between Emailify layout elements for platform-specific tags.

[Video](/assets/videos/emailify/content/custom-code-elements.mp4)

If you need to add any custom code _in between_ any elements in your ✉️ **Email** frame, such as platform specific template/conditional tags, you can insert a **🧑‍💻 Custom Code** layer to do this. It will be added as a Figma text layer, which you can paste your custom code into, and have that rendered out as plain code when the email gets exported to HTML.

> **Warning:** **🧑‍💻 Custom Code** layers can only be added directly to an ✉️ **Email** frame as a way to inject custom code blocks _between_ 🚣 Content Row, 🦸 Hero and 🎁 Row Wrapper layers in your email design.

---

---
url: "/emailify/content/countdown-timers.md"
description: "Add dynamic countdown timer GIFs by overriding image URLs in Emailify designs."
---

# Adding countdown timer GIF embeds to your email designs

> Add dynamic countdown timer GIFs by overriding image URLs in Emailify designs.

### Add a countdown timer to HTML emails in Figma

This video walks through how to add a
  countdown timer to HTML emails in Figma using the Emailify plugin.
  [Embedded media](https://www.youtube.com/embed/1IOfvsZTTXM)

You can add a dynamic countdown timer GIF by [overriding the image URL](/emailify/content/custom-image-urls) to any image layer in your email designs by adding the dyanmic image URL (for example, generated by a service like [Sentric](https://www.sendtric.com/)) to the **Override Image Src** input field, which will be automatically added to the `src` attribute of the `` tag when the HTML is exported.

> **Note:** To follow along with step by step walkthrough, you can [watch this video tutorial](https://www.youtube.com/watch?v=1IOfvsZTTXM), which will show you how you can add a countdown timer to HTML emails in Figma using the Emailify plugin.

---

---
url: "/emailify/content/custom-image-urls.md"
description: "If you need to override the `src` attribute for any `<img>` tag in your exported HTML (either to mix in your own dynamic image tag syntax, or just point to an image URL online), you can set a URL override for any image in your designs."
---

# Override image source with an external image URLs

> If you need to override the `src` attribute for any `<img>` tag in your exported HTML (either to mix in your own dynamic image tag syntax, or just point to an image URL online), you can set a URL override for any image in your designs.

[Video](/assets/videos/emailify/content/custom-image-url-override.mp4)

You can override the image URL for a certain image layer in your email designs by adding a value to the **Override Image Src** input field. You can either use a URL for an image that's already uploaded somewhere (for example, `https://mycdn/img.jpg`) or a dynamic variable for your email platform's templating language (for example, `{ variable.my_image }`) which will be automatically added to the `src` attribute of the `` tag when the HTML is exported.

---

---
url: "/emailify/content/data-tables.md"
description: "The custom Data Table element layer lets you render simple text/image content into an HTML table with multiple rows and columns."
---

# Adding custom data tables to your emails

> The custom Data Table element layer lets you render simple text/image content into an HTML table with multiple rows and columns.

## Manually adding Data Table layers to your design

[Video](/assets/videos/emailify/content/data-table.mp4)

To add a Data Table layer, click on any **Column** layer in your design, then select the **Data Table** option from the quick add menu at the bottom of the plugin, then click **Add** to insert the layers to your design.

> **Tip:** **Adding additional data table rows or data table columns**. You can quickly add additional rows or columns by copy/pasting the table row and/or table data cell Figma layers that are initially created.

> **Note:** By default, the Data Table will render the same way on desktop and mobile, so please be mindful about the width of your table if you’re adding more than a couple of table columns.

For compact icon/text tables or checklist-style rows, select the main **Data Table** layer, click **Settings**, enable **Mobile Alignment**, and choose **Center**. This centers the exported table itself on mobile while keeping the icon/text spacing intact, which is more reliable than manually adding left/right padding to approximate centering across different mobile clients.

## Importing a Data Table from Google Sheet URL or CSV/Excel file data

[Video](/assets/videos/emailify/content/import-spreadsheet-table.mp4)

If you already have some data in a Google Sheet or a CSV/Excel file, you can automatically create a new Data Table with the spreadsheet data included by clicking any **Column** layer in your design, then selecting the **Spreadsheet** option from the quick add menu at the bottom of the plugin.

Once you've selected the **Spreadsheet** option, you can either paste in a _public_ Google Sheet URL or drag and drop a CSV/Excel file into the plugin, then clicking the **Add** to insert the layers to your design.

> **Tip:** Emailify needs permission to read the spreadsheet. In Google Sheets, select **Share** and change **Restricted** to **Anyone with the link** before copying the URL.

## Looping a Data Table Row with dynamic data

[Video](/assets/videos/emailify/content/looping-data-table-row.mp4)

To iterate over data from your email platform, select a **Data Table Row** and open **Settings**. Add the loop syntax to **Opening Code Wrapper** (for example, `{% for product in collection.products %}`) and **Closing Code Wrapper** (for example, `{% endfor %}`). Emailify inserts the tags around that row's `` element in the exported HTML.

Once you've added your wrapper tags to the **Data Table Row** layer, you can [populate the dynamic content](/emailify/content/dynamic#adding-platform-specific-personalization-content) inside the layers of your row as needed.

> **Tip:** You can [apply settings in bulk](/emailify/design/settings#apply-settings-in-bulk) by opening **Settings**, then selecting multiple Emailify layers of the same type in Figma. Any setting you change will be applied to all selected layers.

---

---
url: "/emailify/content/dynamic.md"
description: "You can add dynamic content to your emails using a combination of merge tags (provided by your email marketing platform) and custom code blocks (in the syntax that your email marketing platform uses)."
---

# Adding dynamic and personalized content using Emailify

> You can add dynamic content to your emails using a combination of merge tags (provided by your email marketing platform) and custom code blocks (in the syntax that your email marketing platform uses).

### Video Tutorial: Add dynamic content to HTML emails in Figma

This video walks through how to add dynamic content to HTML emails in Figma using the Emailify plugin.
[Embedded media](https://www.youtube.com/embed/0512urzUNTk)

### Video Tutorial: Adding a dynamic product feed to your Klaviyo emails in Figma

This video walks through how to add custom Klaviyo product feeds into custom HTML templates with the Emailify Figma Plugin.
[Embedded media](https://www.youtube.com/embed/PaRSIxVLYlo)
### Video Tutorial: Create Klaviyo abandoned cart flow email template in Figma

This video walks through how to add custom Klaviyo abandoned cart flows into custom HTML templates with the Emailify Figma Plugin.
[Embedded media](https://www.youtube.com/embed/MHPCkb1n8XM)

## Adding platform specific personalization content

[Video](/assets/videos/emailify/content/text-merge-tags.mp4)

You can add personalised text for things like people's names by adding the merge tags from your email service provider (for example, MailChimp, Klaviyo etc). You can do this by adding your merge tag into your Emailify text content layers.

As an example, adding `Hello, %FIRSTNAME%` or `Hello, *|FNAME|*` (depending on your platform's syntax and values) to your Figma text layer's content will make merge tag will automatically be swapped out with the real data when the email gets sent out.

> **Note:** As these tags will be different based on the platform you're using to send your emails, please reference your own email service provider's template documentation to find out which tags are available to use.

### Some platform specific template variable documentation

Links to some (but not all) popular platforms are listed below:

- [MailChimp Merge Tags](https://mailchimp.com/en-au/help/all-the-merge-tags-cheat-sheet/)
- [Klaviyo Template Tags](https://help.klaviyo.com/hc/en-us/articles/4408802648731)
- [Campaign Monitor Template Syntax](https://help.campaignmonitor.com/personalize-emails-with-subscriber-custom-fields)
- [Postmark Template Syntax](https://postmarkapp.com/support/article/1077-template-syntax)
- [SendGrid Substitution Tags](https://docs.sendgrid.com/for-developers/sending-email/substitution-tags)
- [HubSpot Personalization Tokens](https://knowledge.hubspot.com/website-pages/personalize-your-content#add-personalization-to-a-coded-template)
- [ActiveCampaign Personalization Tags](https://help.activecampaign.com/hc/en-us/articles/220709307-Personalization-Tags#list-of-standard-personalization-tags-0-5)
- [Mailjet Email Personalization](https://documentation.mailjet.com/hc/en-us/articles/360043225773-Can-we-personalize-emails-)
- [SendPulse Email Personalization](https://sendpulse.com/knowledge-base/email-service/additional/clever-personalization)
- [Braze Personalization Tags](https://www.braze.com/docs/user_guide/personalization_and_dynamic_content/liquid/supported_personalization_tags/)
- [Iterable Template Personalization](https://support.iterable.com/hc/en-us/articles/205480365-Personalizing-Templates-with-Handlebars-)
- [DotDigital Personlization Tags](https://support.dotdigital.com/hc/en-gb/articles/212212798-Add-data-field-personalisation-to-your-email-campaign-or-landing-page)
- [Intercom Personlization Tags](https://www.intercom.com/help/en/articles/247-create-custom-email-templates#2-when-adding-user-or-company-variables-to-your-template)

## Add if/else logic between your Row, Wrapper or Hero Layers

[Video](/assets/videos/emailify/content/custom-code-elements.mp4)

You can use the [🧑‍💻 Custom Code](/emailify/content/code) layer type to insert custom templating logic between the rows in your designs; you need to make sure the syntax is correct for the email marketing platform that you're using; but it would look something like:

`{% if customer_type == 'premium' %}`

_Emailify Row Here_

`{% else %}`

_Another Emailify Row Here_

`{% endif %} `

## Add personalized/dynamic images

[Video](/assets/videos/emailify/content/custom-image-url-override.mp4)

You can override the image URL for a certain image layer in your email designs by adding a value to the **Override Image Src** input field. You can either use a URL for an image that's already uploaded somewhere (for example, `https://mycdn/img.jpg`) or a dynamic variable for your email platform's templating language (for example, `{ variable.my_image }`) which will be automatically added to the `src` attribute of the `` tag when the HTML is exported.

### Optionally setting the height (with an "auto" width) for a dynamic image

For dynamic images where you want to control the height while letting the width adjust naturally (as the dimensions of the dynamic image file URL may not be known ahead of time), you need to do the following in Figma:

1. Enable **Lock aspect ratio** on the image layer in the Figma UI.
2. Set a *"Max height** value for the image layer in the Figma UI.

Once these are set, the image will render with a fixed height (matching your max-height in Figma) and an auto-adjusted width, instead of the default behavior (fixed width, auto height). This ensures that your dynamic images maintain the correct vertical space while preserving their natural aspect ratio.

> **Info:** This behavior only applies to images using dynamic URLs; static Emailify-exported images or images in MJML platforms are not affected.

## Truncate long custom text content

[Video](/assets/videos/emailify/content/truncate-lines.mp4)

Adding long dynamic text content tags to your email designs can sometimes affect the design by artificially increasing the height of certain elements or background images, etc, where the _final content_ (eventually replacing the dynamic placeholder content tags) in your email send may be shorter than the length of the dynamic content tag itself.

To mitigate this effect, you can set your Figma text layer to be truncated onto any maximum number of lines that you specify, which you can do by following the steps below:

1. **Click on your Text layer** in the Figma Emailfiy frame design
2. Set the Text layer's [text sizing setting](https://help.figma.com/hc/en-us/articles/27378154668951-Adjust-text-dimensions-and-resizing) value to **Auto width**
3. Open the **Type settings** panel (by clicking the **...** icon)
4. Set the **Truncate text** option to **Truncate enabled**
5. Set the **Max lines** property (underneath) to the maximum number of lines your text should overflow onto
6. Set the Text layer's **Auto layout** **Horizontal resizing** property value to **Fill container**

> **Note:** This will only apply the truncation in your Figma canvas, to avoid the full dynamic text value taking up more height than it should; the final HTML export won't include any kind of truncation, as the dynamic text will automatically be swapped out for real content when the final email is sent to your audience via the email marketing platform you're using the dynamic content tags for.

## Adding dynamic color and font family variables

[Video](/assets/videos/emailify/content/dynamic-color-name-variables.mp4)

### Dynamic color variables

If you want to make any background color, text color or stroke color in your email designs render as a dynamic code snippet (for example, **&lcub;&lcub; primary_color &rcub;&rcub;**) instead of its normal hex value from the Figma color (for example, `#000000`); you can do this by creating a [Figma color style](https://www.youtube.com/watch?v=d01Ql9ZtVnk) and ensuring the color style **Name** contains double curly brackets (for example, **&lcub;&lcub; my_color_var_name &rcub;&rcub;**), and that **Name** value from your color style will automatically be used as the `color`, `background-color` or `border-color` CSS value when the HTML is generated from the Emailify plugin.

### Dynamic font family variables

Similarly, if you want to make any `font-family` CSS value color render as a dynamic code snippet (for example, **&lcub;&lcub; customer.font_family &rcub;&rcub;**) instead of its normal font value from the Figma color (for example, `Arial, sans-serif`); you can do this by creating a [Figma text style](https://www.youtube.com/watch?v=M0OuDhxaroU) and ensuring the text style **Name** contains double curly brackets (for example, **&lcub;&lcub; my_font_var_name &rcub;&rcub;**), and that **Name** value from your color style will automatically be used as the `font-family`, CSS value when the HTML is generated from the Emailify plugin.

## Looping a Data Table Row with dynamic data

[Video](/assets/videos/emailify/content/looping-data-table-row.mp4)

To iterate over data from your email platform, select a **Data Table Row** and open **Settings**. Add the loop syntax to **Opening Code Wrapper** (for example, `{% for product in collection.products %}`) and **Closing Code Wrapper** (for example, `{% endfor %}`). Emailify inserts the tags around that row's `` element in the exported HTML.

Once you've added your wrapper tags to the **Data Table Row** layer, you can [populate the dynamic content](#adding-platform-specific-personalization-content) inside the layers of your row as needed.

> **Tip:** You can [apply settings in bulk](/emailify/design/settings#apply-settings-in-bulk) by opening **Settings**, then selecting multiple Emailify layers of the same type in Figma. Any setting you change will be applied to all selected layers.

---

---
url: "/emailify/content/gifs.md"
description: "You can add animated .gif files from your computer to your email designs as inline images (inside a Column) or background images (on a Row, Hero or Wrapper)."
---

# Adding animated GIFs to your email designs

> You can add animated .gif files from your computer to your email designs as inline images (inside a Column) or background images (on a Row, Hero or Wrapper).

### Video Tutorial: Add animated GIFs from Figma to HTML email exports

This video walks through how to add animated GIFs to your email designs and export production-ready, responsive HTML emails from Figma using the Emailify plugin.
[Embedded media](https://www.youtube.com/embed/Jmy2Tuzzwjg)

> **Warning:** Uploading animated GIF images requires an Emailify Pro license.

> **Note:** If you're using the free trial version of the plugin, GIFs will be uploaded as static images instead; or you can use the **Export HTML** option with the **Upload** toggle set to **off** to save export and download the animated `.gif` files with your HTML emails locally.

## Add an animated GIF as a content image inside your Column layers

[Video](/assets/videos/emailify/content/inline-animated-gif.mp4)

You can drag and drop a `.gif` file from your computer into any **Column** layer, which will add it as a Figma image content layer.

To keep your GIF quality high, please ensure you resize the layer proportionally (by holding the **Shift** key while resizing your Figma layer) to maintain the original aspect ratio, which will make sure that Emailify can use the original GIF file data in your exports.

If you change the aspect ratio of your Figma layer to be different to the original GIF, Emailify will need to re-create your GIF frames into a brand new `.gif` file to account for the cropped image area (as HTML email clients don't support CSS cropping), which will lead to larger GIF file sizes and slower export times.

## Why is my exported GIF larger than the original GIF?

If you change the GIF layer's aspect ratio in Figma, Emailify has to recreate the GIF frames into a new `.gif` file so the exported email matches the cropped image area. HTML email clients do not support CSS cropping for GIFs in the same way Figma previews them, so recreating the frames can increase the final file size and slow down export.

To keep the exported GIF closer to the original file size, resize the GIF proportionally and keep the original aspect ratio.

> **Tip:** You can set the [alt text](/emailify/content/alt-text) attribute or add a [clickable URL link](/emailify/content/link-images) to your images by using the Settings button in the plugin header.

> **Note:** Emailify will try to automatically detect if your GIF contains a transparent background; if your GIF does require transparency, and the plugin isn't detecting that by itself, Add the word **Transparent** anywhere in your Figma layer's name (for example, `My Layer Name - Transparent`) to force it to be exported with a transparent background enabled.

The GIF file format supports either 0% opacity or 100% opacity, but nothing in between. This means that you can have an animated GIF with a completely transparent background behind elements that are completely opaque and visible. This means that layers either need to be completely transparent or not; any layers with lower than 50% opacity will be transparent, while any layers with opacity greater than 50% will be opaque.

## Add an animated GIF as a background image on a Row, Hero or Wrapper layer

[Video](/assets/videos/emailify/content/gif-background-image.mp4)

If you need to use an animated GIF as a background image behind _real_ rich text content, you can drag a `.gif` file from your computer onto any Row, Hero or Wrapper frame's Figma fill, which will set it as an image fill on the background of the frame. Any additional Figma fills (eg color/gradient overlays) on this frame will also be included in the final `.gif` export.

The advantage of this is that the content layers inside of the frame will still be rendered as individual rich content layers in your HTML email export, on top of the animated GIF background.

> **Note:** Emailify will try to automatically detect if your GIF contains a transparent background; if your GIF does require transparency, and the plugin isn't detecting that by itself, Add the word **Transparent** anywhere in your Figma layer's name (for example, `My Layer Name - Transparent`) to force it to be exported with a transparent background enabled.

The GIF file format supports either 0% opacity or 100% opacity, but nothing in between. This means that you can have an animated GIF with a completely transparent background behind elements that are completely opaque and visible. This means that layers either need to be completely transparent or not; any layers with lower than 50% opacity will be transparent, while any layers with opacity greater than 50% will be opaque.

> **Warning:** **Animated GIFs in Outlook:** While most email clients [support animated GIFs](https://www.caniemail.com/features/image-gif/), Outlook _2019 and earlier_ only display the **first frame** of a GIF instead of playing the animation. Ensure that frame includes key imagery or text so it still works as a static fallback. In **Outlook with Office 365**, GIFs play automatically _three times_ before pausing with a _play button_ to replay.

---

---
url: "/emailify/content/images.md"
description: "You can add inline content images inside of any Column layer in your email designs."
---

# Adding images to your email designs

> You can add inline content images inside of any Column layer in your email designs.

> **Tip:** You can also [add background images to your layout](/emailify/design/background-images) by setting the Figma image fill on a Row, Column, Hero or Wrapper layer in your email design.

## Drag and drop an image from your computer into a Column

[Video](/assets/videos/emailify/content/drag-image-layer.mp4)

The quickest way to add an inline content image to your Column layers is to drag and drop an image file from your computer into Figma, and then drag the image layer inside your Column (and resize it as needed).

If you already have an image in your Figma file that you would like to use as a content image inside of your email design, you can drag and drop that layer into your Column layer, too.

> **Tip:** You can set the [alt text](/emailify/content/alt-text) attribute or add a [clickable URL link](/emailify/content/link-images) to your images by using the Settings button in the plugin header.

## Add an image frame to your Column with other static layers inside of it

[Video](/assets/videos/emailify/content/add-image-element.mp4)

You can also add an image frame to your email design by clicking a Column layer, then selecting the **Image** dropdown option in the Quick Add elements menu, then clicking the **Add +** button to add a new image frame inside your Column layer in Figma.

After you've added the image frame, you can set the image fill by clicking the new layer in Figma, then adding an image fill from the right-hand column in Figma under the **Fills** panel.

You can also add any other layers inside of your image frame, and these will automatically be included in the single static image layer that will be rendered in your final HTML exports.

> **Tip:** You can set the [alt text](/emailify/content/alt-text) attribute or add a [clickable URL link](/emailify/content/link-images) to your images by using the Settings button in the plugin header.

---

---
url: "/emailify/content/link-buttons.md"
description: "You can add clickable rich text buttons into your email designs that can be linked to any URL."
---

# Adding links to buttons in your emails

> You can add clickable rich text buttons into your email designs that can be linked to any URL.

[Video](/assets/videos/emailify/content/linking-buttons.mp4)

To add a new button layer to your email design, you can click on any Column or Hero layer, then select the **Button** option from the Quick Add dropdown menu, then click the **Add +** button to insert the new button layer into your layout.

After styling the button to your liking, you can specify the clickable URL by clicking your Button layer in Figma, then clicking the **Settings** button, and pasting your URL into the **Clickable URL Link** input field; this will ensure that your button opens up that URL in the browser when it's clicked

> **Tip:** You can [apply settings in bulk](/emailify/design/settings#apply-settings-in-bulk) by opening **Settings**, then selecting multiple Emailify layers of the same type in Figma. Any setting you change will be applied to all selected layers.

---

---
url: "/emailify/content/link-icon-buttons.md"
description: "You can add clickable rich text buttons that also include a customizable icon into your email designs that can be linked to any URL."
---

# Adding links to icon buttons in your emails

> You can add clickable rich text buttons that also include a customizable icon into your email designs that can be linked to any URL.

[Video](/assets/videos/emailify/content/add-icon-buttons.mp4)

> **Warning:** Note that **icon buttons _are not_ supported on Outlook**; any icons in your buttons will automatically be hidden just for Outlook clients on Windows, but will still render as expected in all other email clients.

To add a new icon button layer to your email design, you can click on any Column or Hero layer, then select the **Icon Button** option from the Quick Add dropdown menu, then click the **Add +** button to insert the new button layer into your layout.

Alternatively, you can select one of the preset components under the **CTA** tab in the plugin, clicking the **Icon Buttons** sub-category tab, then clicking any of the icon button component preset options to add them as new "Row" layers to your design.

After styling the button to your liking, you can specify the clickable URL by clicking your Button layer in Figma, then clicking the **Settings** button, and pasting your URL into the **Clickable URL Link** input field; this will ensure that your button opens up that URL in the browser when it's clicked.

> **Tip:** To have **full width split text/icon buttons**, you can either add one of the full width presets from the plugin, or you can set one of your existing icon button's **Horizontal** Auto-Layout setting in Figma to **Fill**, and then also set the  **Item Spacing** Figma Auto-layout setting to **Auto**, and this will automatically turn it into a justified/split button.

> **Note:** To **customize the icon layer** in your icon button, you can drag any single Figma icon frame or vector layer into your Icon Button layer, then delete the original icon layer to ensure there's only one icon inside your Button layer (along with the only other text layer inside the button).

> **Tip:** You can [apply settings in bulk](/emailify/design/settings#apply-settings-in-bulk) by opening **Settings**, then selecting multiple Emailify layers of the same type in Figma. Any setting you change will be applied to all selected layers.

---

---
url: "/emailify/content/link-images.md"
description: "You can add a clickable URL link to any content images inside of your emails."
---

# Adding links to images in your emails

> You can add a clickable URL link to any content images inside of your emails.

[Video](/assets/videos/emailify/content/linking-image.mp4)

To add a clickable URL to any image in your design, click on the Image layer you'd like to add a link to, then click the **Settings** button in the plugin header, and paste your URL into the **Clickable URL Link** input field.

This will add a link around your `` and set the `href` attribute of your `` tag (surrounding the image) in the HTML when it's exported from Emailify.

> **Tip:** You can [apply settings in bulk](/emailify/design/settings#apply-settings-in-bulk) by opening **Settings**, then selecting multiple Emailify layers of the same type in Figma. Any setting you change will be applied to all selected layers.

---

---
url: "/emailify/content/link-nav-menu.md"
description: "You can add a clickable URL link to navigation menu bar links inside of your emails."
---

# Adding links to navbar menu items in your emails

> You can add a clickable URL link to navigation menu bar links inside of your emails.

[Video](/assets/videos/emailify/content/linking-nav-menu.mp4)

To add a new navigation menu bar layer to your email design, you can click on any Column or Hero layer, then select the **Navigation Links** option from the Quick Add dropdown menu, then click the **Add +** button to insert the new nav bar layer into your layout, which includes a few placeholder navigation item links, too.

After styling the links to your liking, you can specify the clickable URL by clicking any **Link** layer in Figma (nested inside of your Navigation Links layer), then clicking the **Settings** button, and pasting your URL into the **Clickable URL Link** input field; this will ensure that your nav link opens up that URL in the browser when it's clicked.

You can also add more Link layers to by clicking your new **Navigation Links** Figma layer that the plugin created, then selecting the **Link** option from the Quick Add drop down menu, and then clicking the **Add +** button to automatically add the layer into your Navigation Links element as a new link.

> **Tip:** As a progressive enhancement for Apple Mail on iOS, you can optionally [enable a hamburger menu](/emailify/design/mobile-hamburger-menu) toggle for your Navigation layer links.

> **Tip:** You can [apply settings in bulk](/emailify/design/settings#apply-settings-in-bulk) by opening **Settings**, then selecting multiple Emailify layers of the same type in Figma. Any setting you change will be applied to all selected layers.

---

---
url: "/emailify/content/link-paragraphs.md"
description: "Link inline paragraph text with Figma links and note limitations for dynamic URLs."
---

# Adding inline links to paragraph text content in your emails

> Link inline paragraph text with Figma links and note limitations for dynamic URLs.

[Video](/assets/videos/emailify/content/linking-paragraph-text.mp4)

If you highlight the text you'd like to link in the Figma text layer, and then click on the [native Figma "Link" icon button](https://help.figma.com/hc/en-us/articles/360045942953-Add-links-to-text) in the Figma header toolbar area, that will let you paste a URL in. Emailify will automatically include this as a styled `` tag in your HTML export.

Note that Figma only supports standard link formats (like `https://`, `mailto:`, or `tel:`) for text hyperlinks, and will block or rewrite anything else. This means dynamic values like `{{unsubscribe_url}}` or `{{profile_link}}`, as well as deep links using protocols such as `spotify://`, `slack://`, or `instagram://`, won’t work; Figma will automatically prefix them with https://. In Emailify, links on [buttons](/emailify/content/link-buttons), [images](/emailify/content/images), and [social icons](/emailify/content/social-icons), etc, are managed through the **Settings** panel instead, but paragraph text links rely on Figma’s native system. For dynamic or deep links, we recommend using an Emailify [nav menu link](/emailify/content/link-nav-menu) or [button](/emailify/content/link-buttons) (where possible) to work around this limitation.

> **Warning:** **Only use this native Figma text selection hyperlink method for linking paragraph content text layers (not buttons or nav links)**. Note that this only works for normal content text layers; if you need to set a link on a button, social icon or navigation link layer that Emailify generates, you need to click on that Figma layer, then click the **Settings** button in the Emailify plugin header, then paste your URL into the link field.

> **Tip:** You can [apply settings in bulk](/emailify/design/settings#apply-settings-in-bulk) by opening **Settings**, then selecting multiple Emailify layers of the same type in Figma. Any setting you change will be applied to all selected layers.

---

---
url: "/emailify/content/link-social-icons.md"
description: "You can add a clickable URL link to any social icon layer inside of your emails."
---

# Adding links to social icons in your emails

> You can add a clickable URL link to any social icon layer inside of your emails.

[Video](/assets/videos/emailify/content/linking-social-icons.mp4)

> **Note:** See the page on [adding social icons](/emailify/content/social-icons) to your emails if you haven't yet created any social icons yet.

To add a clickable URL to any social icon layer in your design, click on the Social Icon Link layer you'd like to add a link to, then click the **Settings** button in the plugin header, and pasting your URL into the **Clickable URL Link** input field; this will ensure that your social icon opens up that URL in the browser when it's clicked.

> **Tip:** You can also set the `alt` text attribute by populating the **Image Alt Text** input field in the Settings panel, too.

> **Tip:** You can [apply settings in bulk](/emailify/design/settings#apply-settings-in-bulk) by opening **Settings**, then selecting multiple Emailify layers of the same type in Figma. Any setting you change will be applied to all selected layers.

---

---
url: "/emailify/content/link-unsubscribe.md"
description: "Add required unsubscribe links using Emailify footer components and navigation links."
---

# Adding unsubscribe links to your emails

> Add required unsubscribe links using Emailify footer components and navigation links.

[Video](/assets/videos/emailify/content/unsubscribe-link-footer.mp4)

Email marketing platforms require you to include a special unsubscribe link at the bottom footer section of your emails. If the unsubscribe tag required for their platform isn't detected, this will usually mean the email marketing platform will add their own footer to your email instead.

To make this easier for you to add to your designs, the Emailify plugin includes a number of starter components for different email marketing platforms underneath the **Footers** tab in the plugin.

If you click on the footer thumbnail for your email marketing platform (for example, MailChimp or Klaviyo), this will automatically add a footer component to your email design with Navigation Links pre-populated with the correct unsubscribe tag for that platform.

> **Note:** Note, that you will always need to use the [Navigation Links](/emailify/content/link-nav-menu) element provided by Emailify for adding any unsubscribe tags, as using Figma's native hyperlink feature will always prepend `https://` to anything you use for your link, which will break the unsubscribe tag.

> **Tip:** If your email marketing platform isn't in the **Footer** tab, please [get in touch](https://hypermatic.com/contact), and we can get this added as a new component preset to the plugin for you.

---

---
url: "/emailify/content/localization.md"
description: "Emailify comes with built-in localization features to help you translate any email design created with Emailify into multiple languages."
---

# Localizing your email designs with text translations

> Emailify comes with built-in localization features to help you translate any email design created with Emailify into multiple languages.

## Translating with Excel spreadsheets (.xlsx)

### Video Tutorial: Translate HTML email designs with localization in Figma

This video walks through how to translate HTML email designs with localization in Figma using the Emailify plugin.
[Embedded media](https://www.youtube.com/embed/pZUOi6C7C5E)

Click the **Localize** button in the Emailify header toolbar and choose the **Excel** option to export your design text into an `.xlsx` spreadsheet. You can select one or more target locales first, then click **Export XLSX** to generate the translation file from your selected email frames.

[Video](/assets/videos/emailify/design/localization-import.mp4)

You can fill in the locale columns in Excel, Google Sheets, Numbers, or any spreadsheet app that preserves the original headers. When you are ready, drag the updated `.xlsx` file back into Emailify and import it. Emailify will create translated cloned frames on a new page for each locale you included in the spreadsheet.

## Using Markdown Formatting

### Video Tutorial: Localize HTML email designs (with text formatting) in Figma

This video walks through how to localize HTML email designs with markdown text formatting in Figma using the Emailify plugin.
[Embedded media](https://www.youtube.com/embed/OngJvgE6Aeg)

If your email copy includes rich text formatting, enable the **Use Markdown** toggle before exporting or importing. This lets Emailify preserve bold, italic, and linked text in a format that can safely move through spreadsheet or AI translation workflows.

For AI localization methods in Emailify, the **Use Markdown** option is enabled by default so inline links and formatting are exported with the context needed to round-trip back into Figma correctly. You can still disable it if you intentionally want plain text only.

After editing the exported spreadsheet, keep the **Use Markdown** toggle enabled on import and Emailify will parse supported markdown formatting and re-apply it to the translated Figma text layers.

Emailify currently supports inline markdown formatting for bold, italic, bold italic, hyperlinks, and line breaks. Avoid adding headings, lists, code blocks, tables, or other markdown syntax that is outside of those supported inline text features.

### Supported markdown formatting

- You can specify **Bold** text by using double asterisks around the text, for example, `**Text to bold**`
- You can specify *Italic* text by using single underscores around the text, for example, `_Italic Text_`
- You can specify ***Bold Italic*** text by using double asterisks and one underscore around the text, for example, `**_Italic Text_**`
- You can specify hyperlinks by using the markdown syntax of `This is [my link here](https://example.com) in a text paragraph` (you can also format the link text by adding the bold/italic syntax inside of the link's `[]` text area).

## Other localization workflows

Emailify also supports localization with dedicated translation platforms and AI translation providers:

- [Crowdin API](/emailify/localization/crowdin)
- [Lokalise API](/emailify/localization/lokalise)
- [Locize API](/emailify/localization/locize)
- [ChatGPT](/emailify/localization/chatgpt)
- [Claude](/emailify/localization/claude)
- [Gemini](/emailify/localization/gemini)

> **Tip:** The AI translation providers each support two workflows in Emailify: a direct API translation option and a manual prompt option that generates a CSV translation prompt for you to run in the provider's own app.

---

---
url: "/emailify/content/social-icons.md"
description: "You can add social icons to display a row of customizable icon links inside of any Column layer in your email designs."
---

# Adding social icons to your email designs

> You can add social icons to display a row of customizable icon links inside of any Column layer in your email designs.

## Adding social icons to your Columns layers

[Video](/assets/videos/emailify/content/adding-social-element.mp4)

You can add a social icons component to any Column layer in your emails by clicking your Column layer in Figma, then selecting the **Social** option in the Quick Add drop down menu, then clicking the **Add +** button will automatically create a new social layer in your Column, along with a few social icons.

### Adding additional social icons to your Social layer

You can also add more social icons by clicking your new **Social** Figma layer that the plugin created, then selecting a social icon option from the Quick Add drop down menu, and then clicking the **Add +** button to automatically add that social icon into your social element as a new social icon link.

> **Tip:** You can set the `alt` text attribute or add a clickable `href` URL link to your social icons by [using the Settings button](/emailify/content/link-social-icons) in the plugin header.

## Using custom vector icon layers for your social icons

[Video](/assets/videos/emailify/content/custom-social-vector-icons.mp4)

If the social platform icon isn't available in the presets included with the plugin (using the Quick Add instructions above), you can drag and drop your own SVG vector layer _inside of_ an existing social icon layer created by the plugin, and then delete or hide the original vector icon that was inside of the social icon link layer previously.

> **Tip:** You can set the `alt` text attribute or add a clickable `href` URL link to your social icons by [using the Settings button](/emailify/content/link-social-icons) in the plugin header.

---

---
url: "/emailify/content/text.md"
description: "You can add rich text content layers to your designs and style them using the Figma properties."
---

# Adding rich text content to your email designs

> You can add rich text content layers to your designs and style them using the Figma properties.

[Video](/assets/videos/emailify/content/adding-text-layer.mp4)

The easiest way to add a new text layer to your design is to click on a Column or Hero layer, and then select the **Text** option from from the Quick Add dropdown menu, and then click the **Add +** button to insert a new text layer to your design.

You can also drag and drop (or copy and paste) any existing text Figma text layers on your page into any Column or Hero layer as well, and these will be rendered as rich text in your emails, too.

> **Tip:** If you need to, you can swap the default paragraph tag (`p`) for any heading tag (eg., `h1`, `h2`). You can [wrap your Figma text layer content with a heading tag](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Heading_Elements) you're after, and that will automatically handle changing the tag when the HTML is exported via the Emailify plugin.

---

---
url: "/emailify/content/utm.md"
description: "Append global or per-link UTM query strings to Emailify URLs."
---

# Adding query string or UTM parameters to links

> Append global or per-link UTM query strings to Emailify URLs.

### Video Tutorial: Add UTM tracking code to HTML email links from Figma

This video walks through how to add UTM tracking code to HTML email links from Figma using the Emailify Figma plugin.
[Embedded media](https://www.youtube.com/embed/LrNKatzJo6g)

## Setting one global UTM query string for every link

[Video](/assets/videos/emailify/content/add-global-query-string.mp4)

You can set a global [UTM tag](https://www.campaignmonitor.com/blog/email-marketing/utm-codes-in-email/) query string to automatically be appended to every `` tag's `href` attribute (per email) in the Emailify plugin by selecting your main "Email" container frame, then clicking the **Settings** button, and pasting in the query string that you'd like to be applied to every link in that email into the **Append Global URL Query String** input field.

An example of a _global query string_ (that gets applied to every link in your email) would be: `?utm_campaign=sale&utm_medium=email&utm_source=newsletter1&utm_content=top`

### Setting a specific UTM query string link on individual layers

If needed, you can also manually set a query string to your links by manually adding them to any clickable link URL inputs via the **Settings** panel as URLs with a query string included, too.

An example of a URL with its _own_ query string (that can be applied to a single layer) would be: `https://www.example.com/?utm_campaign=sale&utm_medium=email&utm_source=newsletter1&utm_content=top`

> **Tip:** If you're applying a global query string to all of the links in your email, _and_ also applying some query strings to individual links throughout the email, Emailify will automatically include both sets of query string parameters in the final URLs.

> **Tip:** You can [apply settings in bulk](/emailify/design/settings#apply-settings-in-bulk) by opening **Settings**, then selecting multiple Emailify layers of the same type in Figma. Any setting you change will be applied to all selected layers.

---

---
url: "/emailify/design/ai-designer.md"
description: "Create branded Emailify templates with an agent Skill, a copy-and-paste LLM workflow, or a connected AI provider."
---

# Creating emails with AI Designer

> Create branded Emailify templates with an agent Skill, a copy-and-paste LLM workflow, or a connected AI provider.

The **AI Designer (BETA)** tab connects your Emailify component library to AI tools while keeping Emailify responsible for validating the result and creating the finished Figma template. Choose **Agent (Skill)**, **Copy & Paste Prompt**, or **LLM Provider API** depending on how you want to work.

> **Note:** AI Designer is currently in beta and is being actively improved. Its interface, downloaded Skill, agent instructions, prompts, validation, and workflow steps may change as we refine the experience based on customer feedback.

**Agent (Skill)** is the recommended default for repeat use and large branded libraries. The skill keeps your component catalog, editable slot references, brand profile, copy policy, response schema, and validator together. It uses a compact index and opens detailed component files only when required, so the complete catalog is not bundled into every brief.

> **Warning:** Agent (Skill) and Copy & Paste Prompt do not send your brief or component library to an AI model from inside the plugin. LLM Provider API sends the generated request to the AI provider you select using your own API key.

## How it works

1. Open Emailify in Figma.
2. Click the **+** icon in the plugin header to open the **New Email** modal.
3. Select **AI Designer (BETA)**.
4. Choose one of the three workflow tabs:
   - **Agent (Skill):** download a reusable Skill, load it in Codex or Claude Code, then give the agent your brief.
   - **Copy & Paste Prompt:** add your brief, copy the generated prompt into any supported LLM, then paste its JSON response back into Emailify.
   - **LLM Provider API:** add your brief and generate the JSON directly through ChatGPT, Claude, or Gemini using your own API key.
5. Review or import the generated JSON in the final step.
6. When the response is valid, click **Create Email** or **Create Emails**.

Emailify validates the response before insertion, creates a new Emailify frame in Figma, inserts the selected component instances in the returned order, and applies supported text, link, image, alt text, and hidden-layer overrides. Branded components remain linked instances after their content is updated.

## Choose a workflow

### Agent (Skill)

Use **Agent (Skill)** when you regularly generate emails from the same branded component library, have a large catalog, or want your agent to validate files locally before returning them. This is the most token-efficient mode for repeat work because the catalog is installed once and inspected progressively.

### Copy & Paste Prompt

Use **Copy & Paste Prompt** for a quick manual workflow with ChatGPT, Claude, Gemini, or another capable LLM:

1. Paste your brief into **Add Email Brief**.
2. Click **Copy Prompt**.
3. Paste the prompt into your LLM and ask it to return only the requested JSON.
4. Paste or import the response in **Paste LLM Result**.
5. Click **Create Email** when validation passes.

For multi-email briefs, Emailify focuses the copied prompt on one email at a time. The button shows the current email number so each response stays complete and within the model's output limit.

### LLM Provider API

Use **LLM Provider API** when you want Emailify to handle prompt generation and JSON generation without copying between apps:

1. Paste your brief into **Add Email Brief**.
2. Select ChatGPT, Claude, or Gemini.
3. Add the provider API key if it has not already been configured in AI Designer.
4. Click **Generate Email Draft**.
5. Review the generated JSON, then click **Create Email** when validation passes.

The API key field is shown by default. After you save a key, Emailify displays it as a masked, read-only password field. Click the pencil **Edit** button to replace it. API keys are stored per Figma user on your device and are not written into the Figma file. Multi-email briefs are generated as separate provider requests and merged into one validated result to reduce truncated responses.

Emailify validates each generated result before enabling **Create Email**. If the provider returns valid JSON with incorrect component or editable-slot references, Emailify automatically sends one catalog-aware repair request to the same provider. The New Email modal remains disabled while generation and automatic repair are in progress. When the repaired result passes validation, **Create Email** becomes available without an extra action.

If automatic repair cannot resolve the response, Emailify keeps the generated JSON, displays the remaining validation issue, and shows **Repair** so you can retry. An automatic repair uses an additional provider API request only when the initial result has a blocking validation error.

> **Note:** API usage is billed by your selected provider. Emailify does not add model usage charges.

## Agent (Skill) workflow

### Step 1: Download Skill

AI Designer automatically uses Emailify components found in the current Figma file as the Skill's primary catalog. This includes local components and design-system component instances already used in the file, so there is no separate source-selection step.

If the current file does not contain any Emailify components, AI Designer automatically uses **Default Emailify Presets** instead. When branded Figma components are available, Emailify presets are not included as fallback, keeping the generated email in strict branded mode.

Step 1 intentionally has one action: **Download Skill**. Download it again whenever the current component library changes or **Copy Instructions** becomes disabled, then replace the older installed Skill with the fresh package.

> **Note:** For the most branded result, keep reusable headers, footers, hero rows, CTA rows, disclaimers, product rows, and content blocks in the same Figma file before downloading the skill.

### Protect fixed and legal content

To prevent an agent from changing fixed copy, lock the layer or its parent group in Figma. You can also prefix the layer or group name with `🔒`, such as `🔒 Legal`.

AI Designer exports these layers as protected slots. The downloaded Skill tells the agent not to override or hide them, its validator rejects any attempted change, and Emailify leaves the original component content unchanged during import. Use this for approved legal text, disclaimers, footer details, compliance copy, or other content that must remain fixed.

### Build directly with Figma MCP

When Figma write tools are available, the downloaded Skill can assemble or update an email directly in Figma while keeping its Emailify components linked to their original main components. The agent must follow Emailify's exact frame, instance, and subject/preheader metadata conventions before the plugin can adopt the result.

See [Using Emailify with Figma MCP](/emailify/design/figma-mcp) for the canonical agent instruction, naming contract, editing safeguards, and troubleshooting steps. The validated JSON import workflow remains available when direct Figma writing is unavailable.

### Step 2: Generate With Your Agent

The Emailify Skill downloaded in Step 1 is a versioned ZIP containing one ready-to-install `emailify-ai-designer` folder. Its unique filename includes the Skill version, millisecond UTC export time, catalog fingerprint, and configuration fingerprint, for example `emailify-ai-designer-v11-20260722T130512123Z-a1-5bixn7-k11-abc123.zip`.

- `SKILL.md` with the reusable agent workflow and output rules.
- `INSTALL.md` with Codex and Claude Code setup paths and the combined agent instruction.
- `manifest.json` with the exact package filename, Skill version, export time, catalog fingerprint, configuration fingerprint, source, fallback state, and active profile.
- `profile.json` with copy policy, required roles, approved links, and team instructions.
- `catalog-index.json`, a compact component index for discovery.
- `previews/*.jpg`, a 1x visual reference for each successfully exported component.
- `components/*.json`, grouped role files with exact component and slot references, including protected slots.
- `plan-schema.json` and `scripts/validate-plan.js` for validating the component plan before any copy is mapped.
- `response-schema.json` for schema-constrained generation.
- `scripts/search-components.js` and `scripts/inspect-component.js` for token-efficient catalog discovery without loading the full library into context.
- `scripts/create-response-skeleton.js` for creating the exact JSON envelope and override arrays from a validated plan.
- `scripts/validate-response.js`, a local validator the agent runs before returning a file.
- `scripts/self-test.js` and `integrity.json` for checking package files, catalog references, previews, and SHA-256 hashes.
- `data-inventory.json`, which states what the package contains and confirms that it includes no briefs, generated email copy, API keys, or Figma access tokens.
- `agents/openai.yaml` with current Codex skill metadata.
- `integration-contract.json`, a small operation map that includes the direct-to-Figma MCP frame contract and its canonical documentation URL.

The skill uses deterministic progressive loading. The agent searches the compact index with the bundled script, inspects only shortlisted components and their `previewFile` images, validates a compact component plan, creates a response skeleton, fills exact slot references, and validates the finished response. The full catalog does not need to enter the model context.

### Install the Skill

After downloading the current package, click **Copy Instructions**. The button changes to **Instructions Copied** and Emailify confirms the next action. Paste the copied instruction into a new Codex or Claude Code task. The instruction names the exact ZIP that was downloaded, installs or replaces the project Skill, and verifies its filename, version, export time, catalog fingerprint, and configuration fingerprint. The agent stops and asks for a fresh download if any value does not match. When the agent confirms that `emailify-ai-designer` is ready, send your email brief as the next message:

```text
Find the exact Emailify Skill ZIP named [filename copied by Emailify] in my Downloads folder; if it is not there, ask me where I saved it. Replace any existing project skill named emailify-email-assembler or emailify-ai-designer with the skill from that ZIP. Read its manifest.json and verify the exact package filename, Skill version, export time, catalog fingerprint, and configuration fingerprint supplied in this instruction. If any value does not match exactly, stop and ask me to download the current Skill again. Run the installed skill's scripts/self-test.js and stop if it reports an integrity or catalog error. Confirm the installed project-skill path and complete package identity, and that emailify-ai-designer is ready. Then use the emailify-ai-designer skill to turn my attached or pasted email brief into one validated .emailify-ai.json file per email. Preserve supplied copy, use only components from the installed catalog, and write the files locally instead of pasting JSON into chat. If this message does not include an email brief, ask me to attach or paste it before generating anything.
```

The combined instruction lets the current agent choose its supported project skill location and continue directly into the brief. Project scope keeps the Figma file's branded catalog and profile attached to the relevant workspace instead of replacing a global skill.

> **Note:** Skill version 11 adds subject-line and preheader ingestion to the guarded direct-to-Figma MCP workflow while retaining linked-instance checks, protected-slot enforcement, and exact package identity checks. Packages downloaded during an earlier AI Designer beta are intentionally marked stale after this update, so download and install the current Skill once before generating new emails.

To install it manually, extract the ZIP, then move the included `emailify-ai-designer` folder to one of these locations:

- **Codex personal skill:** `~/.agents/skills/emailify-ai-designer/`
- **Codex project skill:** `.agents/skills/emailify-ai-designer/`
- **Claude Code personal skill:** `~/.claude/skills/emailify-ai-designer/`
- **Claude Code project skill:** `.claude/skills/emailify-ai-designer/`

The folder itself must contain `SKILL.md`, `manifest.json`, `catalog-index.json`, `previews/`, `components/`, and the other downloaded resources. Start a new agent task after installing it if the skill does not appear immediately.

### Give the Agent Your Brief

Include the campaign goal, audience, lifecycle stage, timing, subject line, preheader, approved copy, CTA copy, links, image URLs, alt text, brand guidance, legal requirements, ESP requirements, merge tags, and preferred module order when available.

The skill writes a validated `.emailify-ai.json` file into your working directory. For large campaigns it prefers one complete file per email instead of producing partial or truncated JSON in chat.

You can optionally make component matching more explicit by adding lines such as `AI role: hero`, `AI intent: product launch`, `AI usage: use when an image and CTA are required`, or `AI notes: preserve the secondary legal line` to a Figma component description. These hints are optional; AI Designer also infers component roles and capacity from names, descriptions, editable layers, and Emailify metadata.

### Step 3: Import Agent Result

Paste raw JSON, drop one or more generated `.emailify-ai.json` files onto the response field, or click **Choose File**. Emailify validates the complete result automatically.

When the entire result is valid, **Create Email** becomes available. For a valid multi-email response, the button shows the number of emails that will be created. If any part is invalid, creation remains disabled and **Copy Fix Prompt** copies a compact repair request that you can paste back into the same agent task. The repair request uses the Skill already loaded by your agent instead of repeating the component catalog.

You can also run the bundled validator manually from inside the installed skill folder:

```sh
node scripts/validate-response.js /path/to/email.emailify-ai.json
```

Emailify warns you when the last downloaded skill no longer matches the current component catalog, source, profile, copy policy, fallback setting, or skill package version. Download and replace the installed skill whenever any of these inputs change. Your in-progress AI Designer result remains available if you switch to another tab in the same **New Email** modal.

Catalog freshness includes component names, roles, categories, descriptions, AI notes, capacities, editable-slot and protected-slot metadata, and a lightweight visual signature. Download and reinstall the skill whenever Emailify marks it as out of date. Unchanged preview images are reused during the current plugin session to make repeated package downloads faster.

Emailify Skill responses are catalog-bound rather than brief-bound, so they do not require a `requestFingerprint`. They must declare `workflowMode: "external"`, the active `contentPolicy`, an `unresolved` array for each email, and `source: "provided"` or `source: "generated"` for every text override.

## Example brief

```md
# Product Launch Email - Brief + Draft Copy

Audience: Trial users who created an account but have not exported an email.
Goal: Announce the new AI Designer beta and drive users to create a test template.
Tone: Practical, confident, helpful.

Subject: Build branded emails faster with AI Designer
Preheader: Turn approved Emailify components into ready-to-review templates.

Module order:
- Header: use the standard logo header.
- Hero: introduce AI Designer and the main value proposition.
- Content: explain that the workflow uses approved Emailify components first.
- CTA: button linking to https://www.hypermatic.com/emailify/
- Footer: keep the standard footer unchanged.

Hero copy:
Create on-brand emails from your approved components.

Body copy:
Brief your campaign in Codex or Claude Code, let the Emailify Skill create a validated JSON response, and import it into Figma using your reusable branded components.

CTA:
Try AI Designer

Compliance:
Do not invent claims, discounts, testimonials, or legal copy.
```

## Response validation and formats

The **JSON Response** field accepts raw JSON pasted from an AI tool, dropped files, or one or more imported `.json` or `.emailify-ai.json` files.

AI Designer accepts:

- One email draft as a single JSON object.
- Multiple email drafts in an `emails` array.
- Multiple email drafts in a `templates` array.

Emailify Skill responses are checked against the downloaded catalog fingerprint, so Emailify can block stale JSON if the component library changed after the Skill was downloaded.

Before enabling **Create Email**, Emailify checks component references, editable slots, URLs, approved links, image alt text, placeholder content, required roles, header/footer placement, copy policy, and fallback usage behind the scenes.

If the JSON is not valid, click **Copy Fix Prompt** and paste it back into the same Codex or Claude Code task that generated the result. Replace the response field with the agent's corrected JSON.

## Example JSON response

```json
{
  "schemaVersion": 1,
  "workflowMode": "external",
  "contentPolicy": "preserve",
  "catalogFingerprint": "a1-example",
  "emails": [
    {
      "name": "AI Designer Launch",
      "subject": "Build branded emails faster with AI Designer",
      "preheader": "Turn approved Emailify components into ready-to-review templates.",
      "timing": "",
      "job": "Introduce the feature and drive a test template",
      "unresolved": [],
      "components": [
        {
          "role": "hero",
          "componentRef": "c-example",
          "overrides": {
            "text": [
              {
                "slotRef": "t-example-title",
                "value": "Create on-brand emails from your approved components",
                "source": "provided"
              },
              {
                "slotRef": "t-example-body",
                "value": "Brief your campaign in Codex or Claude Code, let the Emailify Skill create a validated JSON response, and import it into Figma using your reusable branded components.",
                "source": "provided"
              },
              {
                "slotRef": "t-example-button",
                "value": "Try AI Designer",
                "source": "provided"
              }
            ],
            "links": [
              {
                "slotRef": "l-example-button",
                "value": "https://www.hypermatic.com/emailify/"
              }
            ],
            "images": [],
            "hidden": []
          }
        }
      ]
    }
  ]
}
```

The component and slot references above are illustrative. Always use the references exported in the current Emailify Skill.

## JSON fields

The top-level response includes:

- `schemaVersion`: the AI Designer response contract version.
- `workflowMode`: `external` for Emailify Skill responses.
- `contentPolicy`: the active profile policy: `preserve`, `light-edit`, or `draft-missing`.
- `catalogFingerprint`: identifies the detected component library exported in the Skill.
- `emails`: one or more complete email drafts. Focused multi-email prompts contain one email.

Each email draft includes:

- `name`: the Figma frame name for the generated email.
- `subject`: the email subject line.
- `preheader`: the email preheader text.
- `timing`: optional send timing from the brief, or an empty string.
- `job`: optional objective from the brief, or an empty string.
- `unresolved`: missing copy, links, images, claims, or legal content that must be resolved before insertion.
- `components`: the ordered list of Emailify components to insert.

Each component includes:

- `role`: a simple layout role such as `header`, `hero`, `content`, `cta`, `disclaimer`, or `footer`.
- `componentRef`: the compact component reference copied in the prompt. Emailify resolves it to the exact Figma component or built-in preset locally.
- `overrides.text`: an array of `{slotRef, value, source}` text replacements, where `source` is `provided` or `generated`.
- `overrides.links`: an array of `{slotRef, value}` link replacements using plain `http` or `https` URLs.
- `overrides.images`: an array of `{slotRef, url, alt, href}` image replacements.
- `overrides.hidden`: slot references to hide when a component has unused optional or placeholder content.

Older responses using exact `componentId`, `componentName`, `presetKey`, and named override objects remain supported for compatibility.

## Best practices

- Use exact component names from your Emailify component library when you want specific branded modules.
- Keep header components first and footer components last unless your brief says otherwise.
- Use a hero or feature component near the top when the campaign needs a strong opening message.
- Use one clear CTA per email unless the brief specifically asks for multiple CTAs.
- Use plain absolute URLs, not markdown-formatted links.
- Include useful alt text for every image URL.
- Preserve legal, compliance, discount, timing, merge tag, and disclaimer copy exactly where required.
- For multi-email campaigns, use a clear heading for each email. The Skill writes one complete response file per email.
- Review the generated Figma template before exporting it to your ESP.

## Troubleshooting

- If Emailify says **The JSON could not be parsed**, remove markdown fences, comments, trailing commas, or any text before or after the JSON.
- If a component does not match, download and reinstall the current skill, then make sure the agent uses only the exported `componentRef` and `slotRef` values.
- If placeholder content remains visible, add the unused layer or slot name to `overrides.hidden`, or choose a simpler component.
- If the output feels generic, make sure your branded Emailify components are in the current file before downloading the Skill. Preset fallback is automatically disabled when branded components are available.
- If Emailify says the component library changed, download and reinstall the current skill, then regenerate the JSON against its new fingerprint.
- If the agent cannot find the exact ZIP named in the copied instruction, tell it where you saved that file instead of asking it to choose a different or older download.
- If a reusable AI workflow uses too many tokens, confirm it runs `scripts/search-components.js` and `scripts/inspect-component.js` instead of loading `catalog-index.json` or every role file into context.
- If a downloaded package appears incomplete or modified, run `node scripts/self-test.js` from the installed skill folder and download a fresh Skill if any integrity check fails.
- If preflight reports generated copy under the preserve policy, change the text source, provide the missing copy, or use a profile that permits drafting.
- For a large multi-email campaign, ask the agent to write one complete `.emailify-ai.json` file per email and use headings such as `Email 1 - Welcome`, `Email 2 - Follow-up`, and `Email 3 - Offer` in the brief.

---

---
url: "/emailify/design/alignment.md"
description: "You can vertically and horizontally align items in your email designs using Figma's auto-layout alignment properties."
---

# How to align content in your email layouts

> You can vertically and horizontally align items in your email designs using Figma's auto-layout alignment properties.

## Vertically aligning columns inside of a row

[Video](/assets/videos/emailify/design/vertically-align-columns.mp4)

If you have multiple Column layers inside a Row, you can vertically align them by clicking your Row layer(s), then changing the Figma auto-layout **Vertical Align** property to either Top, Center or Bottom.

## Horizontally aligning content elements inside of a column

[Video](/assets/videos/emailify/design/align-content-layers.mp4)

You can horizintally align all of the content layers inside of a Column by clicking your Column layer(s), then changing the Figma auto-layout **Horizontal Align** property to either Top, Center or Bottom.

## Horizontally aligning text layers

[Video](/assets/videos/emailify/design/align-text-layers.mp4)

You can align any text layers in your design by clicking your text layer(s), then changing the Figma **Text Align** property to either Left, Center or Right.

## Related Emailify guides

- Start with the [Emailify design fundamentals](/emailify/design/fundamentals) to understand the required row, column, and content structure.
- Configure [responsive email styles](/emailify/design/responsive) after setting the desktop alignment.
- Explore the [Emailify Figma plugin](https://www.hypermatic.com/emailify/) for production-ready HTML email exports.

---

---
url: "/emailify/design/background-colors.md"
description: "You can customize the backgrounds of your Emailify layout layers by applying Figma fills on them."
---

# Adding background colors to your layout layers

> You can customize the backgrounds of your Emailify layout layers by applying Figma fills on them.

> **Tip:** If you're looking for [how to customise the outer email background color](/emailify/design/background) that appears around the outside of your email body, you can set this by changing your Figma page background, which will be used as your email body background color in any HTML exports from Emailify.

## Setting a solid background color on any of your layout layers

[Video](/assets/videos/emailify/design/layout-background-color.mp4)

To set a solid background color on any layout elements in your email design, you can click on the layer in Figma and then add (by clicking the **+** icon next to the **Fill** panel in the layer's Figma properties) and set the **Solid** fill for that layer, which will be applied as a CSS background color when your email is exported to HTML from the plugin.

## Setting a gradient background on a Row, Column, Hero or Wrapper layer

[Video](/assets/videos/emailify/design/layout-background-gradient.mp4)

To set a gradient background on any Row, Column, Hero or Wrapper layout elements in your email design, you can click on the layer in Figma and then add (by clicking the **+** icon next to the **Fill** panel in the layer's Figma properties) and set the **Gradient** fill for that layer, which will be applied as a background image (not a CSS gradient, which has [limited support](https://www.caniemail.com/features/css-linear-gradient/) across email clients) when your email is exported to HTML from the plugin.

> **Warning:** Note, gradient backgrounds are rendered as [background images](/emailify/design/background-images). These work on Row, Column, Hero and Wrapper layers in Emailify preview and HTML exports, but raw `mjml` and `loops` exports still omit Column background image attributes.

## Setting a solid background color on text layers

[Video](/assets/videos/emailify/design/text-background.mp4)

To set a solid background color on text layers in your email design by selecting a Figma text layer in your email while the **Settings** panel is open, pasting in your hex color value (for example, `#FFFBA8`) into the **Text Background Color** input field. This will automatically add a solid background color behind that text content in your HTML email.

> **Tip:** You can also optionally combine setting a background color on your text layer with [adding inner padding to your text layer](/emailify/design/text-padding), which will provide some additional padding around the text content and give the background area some padding.

---

---
url: "/emailify/design/background-images.md"
description: "You can add background images behind your content layers that work on all email clients (including Outlook) to Row, Column, Wrapper and Hero layers in your email by applying an image fill in Figma."
---

# Adding background images to your email layouts

> You can add background images behind your content layers that work on all email clients (including Outlook) to Row, Column, Wrapper and Hero layers in your email by applying an image fill in Figma.

[Video](/assets/videos/emailify/design/row-background-image.mp4)

You can add a background image to any Row, Column, Wrapper or Hero layer in your email design by clicking the layer in Figma, then clicking the **+** icon next to the **Fill** panel in the layer's Figma properties and setting the fill type to **Image**. The example above shows this on a Column layer, but the same workflow also applies to Row, Wrapper and Hero layers. That image fill will be applied as a background image when your email is exported to HTML from the plugin.

> **Tip:** To increase the contrast between your background image and the content layers, you can add an extra semi-transparent color on top of your layer's background image fill (by clicking the **+** icon next to the **Fill** panel in the layer's Figma properties) and set the new **Gradient** or **Solid** fill to the color of your choice, and then adjust the fill opacity percentage value (for example, `35`).

> **Note:** Background images and gradients are supported on Row, Column, Wrapper and Hero layers in Emailify preview and HTML-rendered exports. If you're exporting raw `mjml` or `loops` output, Column background image attributes are still omitted there.

## Setting a solid fallback color behind your background image

[Video](/assets/videos/emailify/design/add-bg-fallback-color.mp4)

If you want to add a custom fallback color to show up behind your background image (which will be visible either when the image is loading for the user in their email client later, or if their email client initially blocks image content from rendering), you can do this by adding an extra solid color to your background image Row, Column, Wrapper or Hero layer's **Fills** by clicking the **+** icon button, setting the fill color you've chosen to be `100%` opacity, and then dragging it to the bottom of the Fills list (underneath your background image fill).

---

---
url: "/emailify/design/background.md"
description: "Emailify will automatically use your current Figma page background colour as the body background colour for all of your HTML email exports from Emailify."
---

# Setting the body background color for your emails

> Emailify will automatically use your current Figma page background colour as the body background colour for all of your HTML email exports from Emailify.

[Video](/assets/videos/emailify/design/change-outer-background.mp4)

To update the background from Figma's default page background color, you can modify the background colour of your Figma page to any solid color you would like to use as the background color for your emails.

This background color will be used for your email background color in any HTML exports from the Emailify plugin, so the Figma page background color that surrounds all of your Emailify frames on the page will be reflected as the same outer background color around your HTML email content when they're exported.

---

---
url: "/emailify/design/borders.md"
description: "You can apply borders to your layout elements and also insert divider lines between your content layers."
---

# Adding borders and content dividers to your email layouts

> You can apply borders to your layout elements and also insert divider lines between your content layers.

## Adding border strokes to your layout elements

[Video](/assets/videos/emailify/design/adding-borders.mp4)

You can add a solid border to layers (for example, Row, Column, Button etc) in your email designs by clicking the layer, then applying a Figma stroke to it, and this will automatically be included as a CSS border in the final HTML exported from Emailify.

To add some buffer between the border and inner contents of your layer, you may consider [applying padding](/emailify/design/padding) to those layers after applying your border.

> **Warning:** Note that **email clients do not support gradient borders**, so if you use a gradient fill on your Figma stroke, it will fallback to the first solid color of your gradient in the final HTML export.

## Adding divider lines between your content layers

[Video](/assets/videos/emailify/design/add-divider-lines.mp4)

If you need to add a divider line in between any content layers inside of a Column in your email layouts, you can add a special Emailify divider element by clicking your "Column" layer, then selecting the "Divider" item from the Quick Add dropdown menu at the bottom of the plugin, and then clicking the **Add +** button to insert the divider line layer into your Column.

After the divider layer has been added to your Column, you can drag and drop the layer in your layers panel to re-order which layers it sits between, and then you can adjust the size of it by adjusting the **Height** of the layer in its Figma layer properties panel or adjust the background color of it by changing the **Fill** of your layer in Figma to any solid color.

> **Warning:** Note that **email clients do not support gradient borders**, so if you use a gradient fill on your divider, it will fallback to the first solid color of your gradient in the final HTML export.

### Adding inner padding to your divider line layers

[Video](/assets/videos/emailify/design/divider-padding.mp4)

You can optionally add inner padding to your dividers by selecting an Emailify divider layer in your email while the **Settings** panel is open, enabling the **Inner Padding** toggle, then adding any padding values you'd like to apply to the selected divider layer.

This will add extra "inner" padding inside of your divider layer when it's rendered to HTML, allowing you to specify padding values for certain text layers in your Column without affecting other layers.

> **Tip:** You can also optionally override any Emailify divider layer padding on mobile by enabling the **Mobile Padding** toggle, then adding any padding values you'd like to apply to the selected divider layer, which will only be visible when viewing your HTML email on mobile.

## Adding border radius for backgrounds to your layout elements

[Video](/assets/videos/emailify/design/column-border-radius.mp4)

If you have a background fill set on your Row or Column layout element (without a stroke), you can add a rounded corner effect for your background by clicking your layer, then setting a rounded corner value on your layer using the **Corner Radius** property in Figma.

> **Note:** Heads up for image based content. If you apply a mobile border radius that is smaller than the desktop radius, the image is exported as a square JPG to preserve the full image area. This allows the smaller radius to be applied on mobile, but means the radius is not baked into the PNG. As a result, Outlook will render the image with square corners, since it does not support CSS border radius.

> **Warning:** Note that **email clients do not support border radius for border strokes**, so if you use a border radius on a layout element that contains a Figma stroke, it will fallback to non-rounded square borders in the final HTML export.

### Important notes on using border radius with strokes

Border radius will work reliably on any **Column** layers that also have a stroke applied. However, it will not work on **Row** layers, as these are HTML tables (which sadly don't support border radius for strokes).

Unfortunately, [border radius is not supported](https://www.caniemail.com/features/css-border-radius/) in any versions of Outlook, so those clients will always fall back to square corners regardless of the setup.

For best results, please apply the corner radius directly to the Emailify **Column** layer that has the stroke, rather than a Row or Wrapper, just still being mindful that they will _not_ render the rounded corners when viewed in any version of Outlook.

---

---
url: "/emailify/design/builder.md"
description: "Create, edit, and manage custom Emailify components with the component builder."
---

# Creating your own custom components

> Create, edit, and manage custom Emailify components with the component builder.

### Video Tutorial: Create custom components for HTML email exports

This video walks through how to add custom components to your email designs and export production-ready, responsive HTML emails from Figma using the Emailify plugin.
[Embedded media](https://www.youtube.com/embed/vczegDic1Do)

[Video](/assets/videos/emailify/custom-component.mp4)

If the base components that come included with Emailify aren't what you're looking for, you can create your own custom components using the built-in component builder feature.

Clicking the **Custom** tab in the component categories header, then clicking the **Create New Component** button will open up the component builder, which will allow you to customise your own component layout and content elements.

When you're happy with the structure, you can click the **Create & Insert New Component** button, which will add the component to your email design in Figma, and also save it in your **Custom** category for future use.

## Editing and forking your saved custom components

[Video](/assets/videos/emailify/edit-custom-component.mp4)

You can edit your saved custom components by clicking the **Settings** icon button next to any component listed under the **Custom** tab in your component categories.

You can either save the updated component back to the original, by clicking the **Update Saved Component** button, which will update your saved component, but will not affect or modify the component anywhere that it has already been used in your design.

Alternatively, you can _fork_ your original component and "save as" a brand new custom component by clicking the **Create & Insert New Component** button, which will save it as a brand new custom component in your list, without overriding the original saved component.

## Removing a saved custom component

You can also remove a saved custom component by clicking the **Trash** icon button. This will remove the saved component from the **Custom** and **Favourites** categories, but will not delete or modify the component anywhere that it has already been used in your design.

---

---
url: "/emailify/design/button-drop-shadow.md"
description: "CSS box shadows for Emailify Buttons are [only supported in some email clients](https://www.caniemail.com/features/css-box-shadow/), and won't be visible for any email clients (for example, Outlook or Yahoo Mail) that don't support CSS box shadows."
---

# Adding a drop shadow to your buttons

> CSS box shadows for Emailify Buttons are [only supported in some email clients](https://www.caniemail.com/features/css-box-shadow/), and won't be visible for any email clients (for example, Outlook or Yahoo Mail) that don't support CSS box shadows.

[Video](/assets/videos/emailify/design/button-box-shadow.mp4)

You can add a CSS box shadow to your Button layers in Emailify by adding an **Effects** property on your layer in Figma as a **Drop Shadow**. This will automatically add a CSS box shadow to your Button when it's exported to HTML.

> **Tip:** Please treat button box shadows as a **progressive enhancement**. CSS box shadows are [only supported in some email clients](https://www.caniemail.com/features/css-box-shadow/); any email clients that don't support box shadows won't render any shadow effect at all.

---

---
url: "/emailify/design/button-gradient-background.md"
description: "Gradient button backgrounds exported from Emailify work in most email clients (including Outlook), but will fallback to to the first solid color in your Figma gradient for any email clients that don't support gradient backgrounds (for example, Yahoo! Mail)."
---

# Adding a gradient background to your buttons

> Gradient button backgrounds exported from Emailify work in most email clients (including Outlook), but will fallback to to the first solid color in your Figma gradient for any email clients that don't support gradient backgrounds (for example, Yahoo! Mail).

### Video Tutorial: Add Outlook-compatible gradient buttons to HTML emails with Figma

This video walks through how to add Outlook-compatible rounded gradient buttons to HTML emails using the Figma Emailify plugin.
  [Embedded media](https://www.youtube.com/embed/P-faEnzef20)

[Video](/assets/videos/emailify/design/button-gradient-background.mp4)

You can add a gradient background to your Button layers in Emailify by setting the "Fill" property on your layer in Figma to a linear or radial gradient. This will automatically add a gradient background to your Button when it's exported to HTML.

> **Tip:** Gradient button backgrounds exported from Emailify are supported in most email clients (including Outlook), but any email clients that don't support gradient backgrounds will fallback to the first solid color that you've used in your Figma gradient fill, so please ensure it's a suitable solid fallback color (with enough contrast against your button text color) for cases where it's not supported (for example, Yahoo! Mail).

> **Warning:** Note that the gradient button code will not be included in any **MJML** exports, and the additional Outlook code for them won't be included in any **SendGrid** exports; this is due to each not supporting the additional code required for these enhancements.

---

---
url: "/emailify/design/columns.md"
description: "Any **🚣 Row** layer must always contain one or more **🏛️ Column** layers, which provides a way to create layouts for your content layers to sit inside of."
---

# Adding columns to your email designs

> Any **🚣 Row** layer must always contain one or more **🏛️ Column** layers, which provides a way to create layouts for your content layers to sit inside of.

[Video](/assets/videos/emailify/design/adding-new-columns.mp4)

You can add extra columns to any Row layer in your email by clicking the Row layer in Figma, and then adding a new empty Column layer to it via the **Quick Add Element** dropdown selector at the bottom of the plugin window.

This will add a brand new empty Column which you can start populating with content layers (for example, text, images, buttons, etc) and customizing the layer's styles (for example, changing the background color, adjusting [padding and spacing](/emailify/design/item-spacing), etc) in Figma as needed.

> **Note:** Note that each Row can only have a single row of Columns, so you need to create a brand new Row whenever you decide to have a different number of columns as a underneath your existing row of columns.

> **Warning:** **🏛️ Column** elements can only be added directly inside of 🚣 **Row** layers. If you need multiple rows of columns, you need to create brand new 🚣 **Row** for each row of columns you need.

---

---
url: "/emailify/design/dark-mode.md"
description: "Dark mode overrides are only supported on iOS/MacOS Apple Mail apps (Gmail, Outlook, etc _do not support_ dark mode overrides)."
---

# Adding dark mode design overrides (only supported in Apple Mail on iOS/MacOS)

> Dark mode overrides are only supported on iOS/MacOS Apple Mail apps (Gmail, Outlook, etc _do not support_ dark mode overrides).

> **Warning:** The [support for dark mode override styles](https://www.caniemail.com/features/css-at-media-prefers-color-scheme/) in email clients is limited to Apple Mail on iOS/MacOS; which means dark mode overrides _will not work_ on any other clients like Gmail, Outlook etc. Please be aware of this and try to design your emails with the [progressive enhancement](https://www.litmus.com/blog/the-ultimate-guide-to-dark-mode-for-email-marketers/) in mind.

### Video Tutorial: Add dark mode styles to HTML email designs

This video walks through how to add custom dark mode style overrides to your email designs for exporting production-ready, responsive HTML emails from Figma using the Emailify plugin.
[Embedded media](https://www.youtube.com/embed/uAxQ5Psi1m4)

## Important design considerations for dark mode

![Email client support for dark mode CSS](/assets/images/emailify/caniemail-dark-mode.jpg)

> **Warning:** The [support for dark mode override styles](https://www.caniemail.com/features/css-at-media-prefers-color-scheme/) in email clients is limited to Apple Mail on iOS/MacOS; which means dark mode overrides _will not work_ on any other clients like Gmail, Outlook etc. Please be aware of this and try to design your emails with the [progressive enhancement](https://www.litmus.com/blog/the-ultimate-guide-to-dark-mode-for-email-marketers/) in mind.

Due to each email client having their own implementation, dark mode is very tricky to design for, but it's worth trying to work _with_ the (often terrible) changes that each email client automatically applies in dark mode.

It's a good idea to check out some resources (like these articles from [CampaignMonitor](https://www.campaignmonitor.com/blog/email-marketing/designing-an-email-for-dark-mode-dark-and-light-optimization/) and [Litmus](https://www.litmus.com/blog/the-ultimate-guide-to-dark-mode-for-email-marketers/)) that go through exactly what these email clients are changing and how to mitigate some of those changes in the design as good starting points.

## Applying dark mode color overrides

[Video](/assets/videos/emailify/design/dark-mode-color-override.mp4)

Select an element such as a text layer, image, Button, Row, Column, or Wrapper, then click the **Settings** button in the plugin header. You can set dark mode text and background colors in the **Dark Mode Overrides** section at the bottom of the Settings panel.

For Button, Row, Column, and Wrapper layers, you can also set a **Border Color** override. This changes the border color in dark mode without changing the border width or style used in light mode.

These overrides will be shown on [the email clients that support](https://www.caniemail.com/features/css-at-media-prefers-color-scheme/) this feature (iOS/MacOS Apple Mail apps) when the email is being viewed on a device with dark mode enabled.

> **Warning:** The [support for dark mode override styles](https://www.caniemail.com/features/css-at-media-prefers-color-scheme/) in email clients is limited to Apple Mail on iOS/MacOS; which means dark mode overrides _will not work_ on any other clients like Gmail, Outlook etc. Please be aware of this and try to design your emails with the [progressive enhancement](https://www.litmus.com/blog/the-ultimate-guide-to-dark-mode-for-email-marketers/) in mind.

## Swapping between two image layers in dark and light mode

[Video](/assets/videos/emailify/design/swap-dark-mode-content.mp4)

You can also swap certain image layers to swap them out on dark mode by clicking your Figma content layer (inside of a Column layer), then clicking the **Settings** button in the plugin header, and enabling either the **Only Hide in Dark Mode** or **Only Show in Dark Mode** toggle depending on if you want the image layer to be shown or hidden on [the email clients that support](https://www.caniemail.com/features/css-at-media-prefers-color-scheme/) this feature (iOS/MacOS Apple Mail apps) when the email is being viewed on a device with dark mode enabled.

> **Warning:** The [support for dark mode override styles](https://www.caniemail.com/features/css-at-media-prefers-color-scheme/) in email clients is limited to Apple Mail on iOS/MacOS; which means dark mode overrides _will not work_ on any other clients like Gmail, Outlook etc. Please be aware of this and try to design your emails with the [progressive enhancement](https://www.litmus.com/blog/the-ultimate-guide-to-dark-mode-for-email-marketers/) in mind.

## Previewing dark mode in the plugin

[Video](/assets/videos/emailify/design/emulate-dark-mode.mp4)

You can preview your dark mode overrides using the **Dark Mode** toggle in the [preview](/emailify/design/preview) feature in the plugin.

Enabling the **Dark Mode** toggle in the plugin's preview panel will also allow you to see an _approximate_ visual of what your design will look like when it's viewed on a device with dark mode enabled by emulating some of the changes that they apply.

This preview mode will also allow you to see any background color, text color, border color, or dark/light image swaps that you've added in the Emailify [dark mode override](/emailify/design/dark-mode) settings.

> **Tip:** To _accurately_ see what your design looks like in [email clients that support dark mode overrides](https://www.caniemail.com/features/css-at-media-prefers-color-scheme/) (Apple Mail on iOS/MacOS), it's always worth doing a test of your own emails using a service like [Litmus](https://www.litmus.com/) or [Email on Acid](https://www.emailonacid.com/), just to ensure they're looking good before you send them out.

> **Warning:** The [support for dark mode override styles](https://www.caniemail.com/features/css-at-media-prefers-color-scheme/) in email clients is limited to Apple Mail on iOS/MacOS; which means dark mode overrides _will not work_ on any other clients like Gmail, Outlook etc. Please be aware of this and try to design your emails with the [progressive enhancement](https://www.litmus.com/blog/the-ultimate-guide-to-dark-mode-for-email-marketers/) in mind.

_Please note_ that different email clients (that have dark mode support) will apply their own dark mode overrides automatically to invert and update colors to try and maximize readability and contrast, so it's always worth doing a test of your own emails using a service like [Litmus](https://www.litmus.com/) or [Email on Acid](https://www.emailonacid.com/) to accurately see how they're rendered in all email clients in dark mode.

It's also worth using [some other clever design techniques](https://www.campaignmonitor.com/blog/email-marketing/designing-an-email-for-dark-mode-dark-and-light-optimization/) for creating your email with dark mode in mind as a fallback with other email clients, too.

## Testing your emails in dark mode

### Video Tutorial: Test HTML emails in dark mode with exports from Figma

This video walks through how to test HTML emails in dark mode with exports from Figma using the Emailify plugin and Litmus.com.
[Embedded media](https://www.youtube.com/embed/h5Gq9apZrxk)

It's always worth doing a test of your own emails using a service like [Litmus](https://www.litmus.com/) or [Email on Acid](https://www.emailonacid.com/) to ensure they're looking good before you send them out.

> **Warning:** The [support for dark mode override styles](https://www.caniemail.com/features/css-at-media-prefers-color-scheme/) in email clients is limited to Apple Mail on iOS/MacOS; which means dark mode overrides _will not work_ on any other clients like Gmail, Outlook etc. Please be aware of this and try to design your emails with the [progressive enhancement](https://www.litmus.com/blog/the-ultimate-guide-to-dark-mode-for-email-marketers/) in mind.

> **Tip:** You can [apply settings in bulk](/emailify/design/settings#apply-settings-in-bulk) by opening **Settings**, then selecting multiple Emailify layers of the same type in Figma. Any setting you change will be applied to all selected layers.

---

---
url: "/emailify/design/email.md"
description: "Every email design in Emailify starts with a special blank email Figma frame, which you'll be able to fill up with Emailify layouts and content."
---

# Creating your first Emailify email Figma frame

> Every email design in Emailify starts with a special blank email Figma frame, which you'll be able to fill up with Emailify layouts and content.

[Video](/assets/videos/emailify/design/create-new-email.mp4)

The first time you run the Emailify plugin on a Figma page that doesn't contain any existing Emailify container frames, the plugin will automatically open the **New Email** modal so you can choose how you want to start.

The **New Email** modal includes four tabs: **Blank Template**, **Layouts**, **Figma Templates**, and **AI Designer (BETA)**.

Under the **Blank Template** tab, give your email a name (for example, "My Email Template") and then click the **Add New Emailify Container** button to add your empty email frame to your Figma page.

This new special Figma frame created by the plugin will automatically be recognized by the Emailify Figma plugin as an email, and allow you to start adding layouts and components to it using the plugin's design features.

> **Tip:** If you're new to the plugin or want some inspiration, you can use [Layouts](/emailify/design/starter-layouts), try the [Randomize](/emailify/design/random-layouts) subcategory, duplicate [Figma Templates](/emailify/design/templates), or use [AI Designer (BETA)](/emailify/design/ai-designer) from the **New Email** modal.

## Adding additional Emailify containers

Add as many Emailify container frames as you need. The plugin treats each container as a separate email.

If you've already added an Emailify frame to your page, you can add a new blank Emailify frame at any time by clicking the **+** (Plus) icon button in the Emailify plugin header, which will prompt you to name and create a new blank email Figma frame.

> **Info:** You can also **copy + paste** and existing Emailify frame that you've worked on if you don't want to start from scratch. Copying and pasting components from inside one Emailify frame into another also works, too.

## Selecting an Emailify frame

To select an email to start adding components to, you can either select it from the drop down box in the Emailify plugin header, or you can Click on the parent frame itself on the Figma canvas.

Clicking an email option using the select box will also automatically shift the focus on your Figma page onto the selected email.

> **Note:** **Checking which email frame is active** The email name that's currently shown as being selected in the Emailify plugin header drop down box always indicates which email is currently selected.

## Mobile breakpoint for the emails

The HTML emails exported from Emailify have a single "breakpoint" that's automatically set by the width of the desktop frame in Figma. For example, if your Emailify frame is 600px, the mobile styles/overrides will start showing at 599px and below.

### Recommended email width is 600px - 640px

Keeping the width of the email between 600px-640px is typically recommended, as some email client/app's inbox reader panels can be less than 700px wide, which would render the mobile styles at that width instead of the desktop layout. Keeping your Emailify frame width in Figma between 600-640px wide will ensure that the desktop layout always gets rendered across any mail clients or apps, on desktop or tablet.

---

---
url: "/emailify/design/fallback-images.md"
description: "If you add a Figma layer that was designed outside of Emailify to your email frame, it will be rendered as a static fallback image. You can also optionally set an Emailify layout layer to be rendered as a static image, too."
---

# Static fallback images for layout layers in your email designs

> If you add a Figma layer that was designed outside of Emailify to your email frame, it will be rendered as a static fallback image. You can also optionally set an Emailify layout layer to be rendered as a static image, too.

## Using layers not created with Emailify as static fallback images in your email designs

[Video](/assets/videos/emailify/design/static-fallback-images.mp4)

While **the plugin _doesn't_ support rendering Figma layers that were designed outside of Emailify as _rich text HTML content_**, if you do add any layers inside of your main email frame, **these will automatically be rendered as _static fallback images_** instead.

This is an easy way to bring in a Figma layer or frame that you've already designed (without using the Emailify design tools) into your email design as a static image.

> **Tip:** If you do need rich text HTML content rows or real background images behind rich text content, you can add these with the "Quick Add" design tools dropdown or [starter components](/emailify/design/presets) provided by the Emailify plugin, which you can bring your own content into as well.

## Setting an Emailify layout layer to be rendered as a static image instead

[Video](/assets/videos/emailify/design/render-as-image-toggle.mp4)

If you _are_ using an Emailify Row, Hero or Wrapper layer in your email frame, you can optionally render any of these elements as a static image (instead of rich HTML content), if needed, too.

To do this, select the Emailify layout layer in Figma, click on the **Settings** button in the plugin header, and then enable the **Render as an image (instead of HTML)** toggle to force that layer to be rendered as a static image.

You can disable the **Render as an image (instead of HTML)** toggle at any time to revert to rendering that layout element with rich text HTML content again.

> **Tip:** You can [apply settings in bulk](/emailify/design/settings#apply-settings-in-bulk) by opening **Settings**, then selecting multiple Emailify layers of the same type in Figma. Any setting you change will be applied to all selected layers.

---

---
url: "/emailify/design/figma-mcp.md"
description: "The exact frame, component, and metadata contract agents must follow when creating or editing Emailify emails directly in Figma."
---

# Using Emailify with Figma MCP

> The exact frame, component, and metadata contract agents must follow when creating or editing Emailify emails directly in Figma.

This page is the canonical contract for agents that create or edit Emailify emails directly through Figma MCP. Follow the names and structure exactly so Emailify can recognize the result while keeping every component linked to its original main component.

Agents can read the compact [Markdown version of this contract](/emailify/design/figma-mcp.md) without loading the surrounding documentation interface.

> **Note:** This direct-to-Figma workflow is part of AI Designer (BETA). The contract may evolve while the feature is being improved, so agents should read this page before each MCP workflow.

## Agent instruction

Paste this into Codex, Claude Code, or another agent with Figma write access:

```text
Read and follow the current Emailify Figma MCP contract at https://docs.hypermatic.com/emailify/design/figma-mcp.md before writing to Figma. Create or edit the email using only linked Emailify component instances. Preserve protected content, component links, and existing instance overrides. For a new email, create a top-level vertical auto-layout frame named exactly "✉️ Emailify MCP: [email name]" and add only linked Emailify section, wrapper, or hero instances as its direct children. Never detach instances or add raw layers inside the email frame. Create a separate top-level sibling frame named exactly "✉️ Emailify MCP Metadata: [same email name]" with TEXT layers named exactly "Subject Line" and "Preheader Text", containing only their corresponding values. Replace the bracketed placeholders with the actual email name. When finished, tell me to open or refresh Emailify.
```

## Email frame contract

For each new email, create one frame that satisfies every rule below:

| Property | Required value |
| --- | --- |
| Name | `✉️ Emailify MCP: [email name]` |
| Position | Top level on the Figma page, not nested inside another frame or section |
| Layout | Vertical auto layout |
| Direct children | Linked Figma component instances only |
| Allowed Emailify roots | `mj-section`, `mj-wrapper`, or `mj-hero` |
| Content | At least one valid Emailify component instance |

Replace `[email name]` with the actual name. The text after `✉️ Emailify MCP:` becomes the Emailify email name and must not be empty.

Do not detach instances, recreate components as raw layers, or place text, images, groups, or other non-Emailify nodes directly inside the email frame. Make content changes through instance overrides so design-system updates can still flow through every assembled email.

## Subject line and preheader

Create a separate top-level sibling frame for email metadata. Its email name must exactly match the email frame:

| Property | Required value |
| --- | --- |
| Frame name | `✉️ Emailify MCP Metadata: [same email name]` |
| Subject layer | A TEXT layer named `Subject Line` containing only the subject |
| Preheader layer | A TEXT layer named `Preheader Text` containing only the preheader |

Keep this metadata frame outside the email frame. Do not add labels, prefixes, notes, or alternative copy to the text values.

Emailify imports each field independently when the plugin opens or refreshes. Unchanged canvas metadata does not overwrite later manual edits made inside Emailify. If the agent changes a metadata value on the canvas, Emailify imports that changed field on the next refresh.

## Editing an existing email

When updating an email that already follows this contract:

- Modify existing linked instances in place whenever possible.
- Add or reorder only linked Emailify section, wrapper, or hero instances.
- Preserve the email frame name and vertical auto-layout structure.
- Preserve existing component links and instance overrides unless the brief explicitly changes them.
- Never change, hide, or remove a locked layer or a layer whose name begins with `🔒`.
- Preserve existing links unless the brief provides an exact replacement URL.
- Update the matching metadata frame when the subject line or preheader changes.

## Adoption and validation

After the agent finishes, open or refresh Emailify. Emailify validates the candidate frame before applying its normal `mj-body` metadata and importing matching subject and preheader values.

Emailify rejects the frame if it is nested, empty, not vertically arranged, contains detached components, contains raw direct children, or includes component instances that are not valid Emailify section, wrapper, or hero roots. Rejection is intentional: ordinary Figma layouts should never be converted into Emailify emails by accident.

## Troubleshooting

| Problem | Check |
| --- | --- |
| Email is not recognized | Confirm the exact `✉️ Emailify MCP:` name, top-level position, vertical auto layout, and linked direct-child instances. |
| Subject or preheader is missing | Confirm the metadata frame uses the same email name and the text layers are named exactly `Subject Line` and `Preheader Text`. |
| A component is no longer linked | Replace the detached or rebuilt layers with an instance of the original Emailify main component. |
| Legal or fixed content changed | Lock the layer or prefix its name with `🔒`, then restore the approved content in the main component. |
| A manual Emailify value did not change | Edit the corresponding metadata text on the canvas, then refresh Emailify again. |

When Figma write tools are unavailable, use the validated JSON import workflow described in [Creating emails with AI Designer](/emailify/design/ai-designer).

---

---
url: "/emailify/design/fluid-buttons.md"
description: "You can set Button elements in your design to be fluid on mobile and always expand to the full width of the Column it's inside, or turn off this setting to maintain the same width as the Figma/desktop design."
---

# Setting fluid width buttons on mobile

> You can set Button elements in your design to be fluid on mobile and always expand to the full width of the Column it's inside, or turn off this setting to maintain the same width as the Figma/desktop design.

[Video](/assets/videos/emailify/design/full-width-mobile-button.mp4)

By default, any Button layers in your designs will be set to be fluid on mobile and expand to the width of the Column (depending on the size of the mobile device screen viewing the email).

You can change this behavior on mobile by clicking your **Button** layer, then clicking the **Settings** layer in the plugin header, and toggling the **Full Width Button on Mobile** toggle option on or off.

> **Note:** If the width of your Button in the Figma (desktop) design exceeds 300px, the button will automatically be exported as Fluid, otherwise the longer fixed width button would push out the side of the layout on smaller screens.

> **Tip:** If your Button layer itself is set to **Fill container** in your Figma design, Emailify will also preserve the button's horizontal auto-layout alignment in the exported HTML. This means you can left align, center align or right align the button text inside a full-width button by changing the button's auto-layout alignment in Figma.

> **Tip:** You can [apply settings in bulk](/emailify/design/settings#apply-settings-in-bulk) by opening **Settings**, then selecting multiple Emailify layers of the same type in Figma. Any setting you change will be applied to all selected layers.

---

---
url: "/emailify/design/fonts.md"
description: "Custom web fonts are only supported on iOS/MacOS Apple Mail, so you can add font embeds for those, then set web safe fallback fonts to display all other email clients."
---

# Using web fonts and adding web safe fallback fonts in your emails

> Custom web fonts are only supported on iOS/MacOS Apple Mail, so you can add font embeds for those, then set web safe fallback fonts to display all other email clients.

> **Warning:** Currently, [support for custom fonts in email clients](https://www.caniemail.com/features/css-at-font-face/) is limited to **Apple Mail on iOS/MacOS**; so please be aware of this and try to design your emails with the "progressive enhancement" of custom fonts in mind.

### Video Tutorial: Embed custom web fonts in HTML email exports from Figma

This video walks through how to embed custom web fonts (with web-safe fallbacks) in HTML email exports from Figma using the Figma Emailify plugin.
[Embedded media](https://www.youtube.com/embed/dtTNDXeO3FA)

## Adding custom web font URL embeds

[Video](/assets/videos/emailify/design/applying-web-fonts.mp4)

If you're using custom fonts, you need to add a link directly to the `.woff` or `.woff2` font file URL, which you can do by clicking the **Configure Fonts** button in the **Preview** panel of the plugin.

This lets you paste a link to each of the custom fonts used in your email designs (for example, `https://fonts.cdnfonts.com/s/8766/SansThirteenBlack.woff`), which will then be included as `@font-face` CSS rules in your exported HTML.

> **Note:** Please ensure you link directly to the `.woff` or `.woff2` web font file; if you only have a link to a CSS embed, you can open that link in your browser, and you should see a `url` link to the font file in there (for example, `https://fonts.cdnfonts.com/s/8766/SansThirteenBlack.woff`), which you can copy/paste into the plugin.

> **Warning:** **Custom Font Embeds are only supported on iOS/MacOS Apple Mail**. Currently, [support for custom fonts in email clients](https://www.caniemail.com/features/css-at-font-face/) is limited to _Apple Mail on iOS/MacOS_, so please be aware of this and try to design your emails with the "progressive enhancement" of custom fonts in mind.

## Setting and previewing web safe fallback fonts

[Video](/assets/videos/emailify/design/preview-font-fallbacks.mp4)

If your using custom fonts in your emails, you can set a [web safe fallback font](#list-of-web-safe-fallback-fonts) for each custom font, which will be displayed as a fallback if the HTML email is being view in any [email clients that don't support custom fonts](https://www.caniemail.com/features/css-at-font-face/).

You can specify fallback fonts for any Google Fonts and custom fonts under the same **Configure Fonts** settings panel, too.

If you've specified any [web safe fallback fonts](#list-of-web-safe-fallback-fonts) for custom web fonts in your email, you can preview how they will look by toggling the **Show Fallback Fonts** switch at the bottom of the Emailify preview window.

### List of web-safe fallback fonts

Below are the different web-safe fonts you can set for any custom web fonts used in your Figma email designs; as custom font embeds are _only_ supported on iOS/MacOS Apple Mail, specifying the fallback fonts below will determine which font is displays for all other email clients (for example, Outlook, Gmail, etc) which sadly don't support custom fonts.

 #### Sans-Serif Web Safe Fallback Fonts

  - Arial
  - Arial Black
  - Tahoma
  - Trebuchet MS
  - Verdana

  #### Serif Web Safe Fallback Fonts

  - Georgia
  - Times New Roman

  #### Monospace Web Safe Fallback Fonts

  - Courier New

## Using Google Fonts in your emails

Emailify automatically includes Google Font `@import` code in your HTML exports for any Figma layers that are using a font from the [Google Fonts library](https://fonts.google.com/) that Figma includes by default.

Note that Google Fonts will only be visible on any [email clients that support the use of @font-face](https://www.caniemail.com/features/css-at-font-face/) in emails, and a [web safe fallback fonts](#list-of-web-safe-fallback-fonts) (for example, "Arial", "Georgia" or "Courier") will automatically be loaded instead for any email clients that don't support custom fonts.

> **Warning:** **Google Fonts are only supported on iOS/MacOS Apple Mail**. Currently, [support for custom fonts in email clients](https://www.caniemail.com/features/css-at-font-face/) is limited to _Apple Mail on iOS/MacOS_, so please be aware of this and try to design your emails with the "progressive enhancement" of custom fonts in mind.

> **Tip:** **Using custom fonts in your images**. Note that if you need to ensure a custom font is visually consistent across all email clients, it may be worth putting your text layers inside of an "Image" frame. This text content will be exported as part of the image itself, and therefore won't be relying on custom web font support to display correctly.

---

---
url: "/emailify/design/full-width-backgrounds.md"
description: "You can optiionally set a toggle to expand the background width of a section in your Emailify design, if you need to extend it outside the content body width of your design."
---

# Extend any Row or Wrapper background to take up the full width of the email client window.

> You can optiionally set a toggle to expand the background width of a section in your Emailify design, if you need to extend it outside the content body width of your design.

[Video](/assets/videos/emailify/design/full-width-background.mp4)

If you need the background for a certain Row or Wrapper in your email to extend to the full width of the email client's window, and expand beyond the width of the main body content width of your design, you can click on any **Row** or **Wrapper** layer in your Emailify frame, then click the *Settings** button in the plugin header, and enable the **Force 100% width outside email** toggle option.

> **Note:** Note, this toggle will only be available for any "Row" layers when the **Stack Columns in this Row** toggle is also enabled.

> **Tip:** You can [apply settings in bulk](/emailify/design/settings#apply-settings-in-bulk) by opening **Settings**, then selecting multiple Emailify layers of the same type in Figma. Any setting you change will be applied to all selected layers.

---

---
url: "/emailify/design/fundamentals.md"
description: "Before using Emailify to design and export HTML emails, it's very important to understand a few fundamentals about how the plugin works."
---

# Understanding how the Emailify plugin works

> Before using Emailify to design and export HTML emails, it's very important to understand a few fundamentals about how the plugin works.

> **Warning:** Emailify **does not support** any Figma email designs that were created outside of the plugin.

## Emailify Overview

Emailify helps you to design emails in Figma by providing a set of common starter components which you can customize the content, styles and brand of using the normal design tools in Figma, then apply responsive styles and export the emails to production ready HTML.

### Emailify _does_...

- Provide you with starter components and design tools to create email layouts.
- Let you customize any text/image content, visual styles and links using Figma.
- Export your emails (designed with the Emailify plugin) to production-ready HTML.
- Integrate with email marketing platforms to upload HTML templates via API.

###  Emailify does _not_...

- Automatically convert Figma email designs that have been manually designed in Figma without using the Emailify plugin (if you have a design like this, you will need to recreate the design using the Emailify plugin's design tools to export it to HTML).
- Offer any special workarounds to overcome lacking email client support for certain HTML/CSS properties that are only supported in certain clients (for example, [overriding dark mode styles](https://www.caniemail.com/search/?s=dark%20mode) for Gmail or Outlook, or [displaying custom fonts](https://www.caniemail.com/features/css-at-font-face/) in non-Apple Mail clients)

## How is Emailify different from other email Figma plugins?

Unlike other Figma plugins that try to help you to export emails from Figma to HTML, Emailify does _not_ attempt to automatically take any Figma file that has been manually designed in Figma and then _magically_ turn it into HTML code that you can send via email.

### The problem with other "email design to HTML" Figma plugins

The fundamental problem with trying to convert _any_ manually designed Figma file of an email mockup to HTML is that **there is no concept of _intent_**.

The simplest example of this would be imagining what a "Frame" layer in Figma that contains a "Rectangle" layer and a "Text" layer inside of it is intended to be (by the designer):

- a clickable button?
- a single static image (with some text embedded inside of it)?
- a hero block with a background image, and some rich text sitting on top of it?
- a social icon link?

Even if a Figma plugin were able to correctly determine the intent of those 3 layers, this still doesn't also include any intent about how that element should look on mobile, if it should link somewhere when clicked, or if it has other attributes (like `alt` text), etc.

While the example above is tricky enough, this is being generous and providing the simplest example of understanding the intent of 3 Figma layers; the complexity only increases.

Knowing that a _real_ email mockup Figma design may contain thousands of layers, potentially nested inside of dozens (or hundreds) or other "frame" or "group" layers that also offer no information about how they should be rendered as HTML, it quickly becomes almost impossible to get the HTML output that you need based on the design input (hundreds of unstructured rectangles, frames, groups and text layers) you've created in Figma.

Due to HTML emails already being _very_ difficult to visually render consistenly across all email clients, we believe that it's way too risky to try and _infer_ the intent of the designer from an infinite number of possible Figma layer structures of every designer doing things differently.

### How Emailify solves the "intent" problem

**To resolve the intent problem**, Emailify takes a more opinionated "on-rails" approach to designing emails, where it helps you create special layers in Figma that map directly to _real_ HTML elements when you export your code; so the plugin understands exactly what each element of your email is intended to be (for example, a "Button" _is_ a button, a "Column" _is_ a column, etc).

For example, adding a _Button_ layer to your Figma email design using the Emailify plugin will create a brand new layer with some special data attached to it that tells Emailify that this _is_ a button, and not just a rectangle layer that may (or may not) be intended to be a "button".

By providing these design tools, it helps you to quickly create layouts and content elements that Emailify understands, and can then automatically export to HTML for you in a reliable way.

## What kind of designs can you create with Emailify and Figma?

[Video](/assets/videos/emailify/design/template-examples.mp4)

Emailify provides a bunch of tools to help you create layouts, when you can customize the content and styles of using Figma, and also specifify responsive design for as well.

Using a combination of the tools that the plugin provides and using Figma for styling and content, you can create an email design that is totally customized and on-brand.

For some inspiration, please feel free to check out these [free Emailify compatible Figma templates](https://www.figma.com/@adambrock) (that were designed entirely with Emailify in Figma) as some inspration for email customization with your own brand.

Each Figma template also has a link to a full step by step video tutorial walkthrough in its Figma page description for additional context and reference for how it was created. You can also browse through [the full YouTube playlist](https://www.youtube.com/watch?v=_84LY0fL0Ag&list=PLUGeoZ1yrQAr2_hHBW7WXmXkExRQB1nXZ&index=2) for each of the Figma templates.

## Understanding the Figma layer structure in Emailify designs

When creating layouts for your emails using Emailify using the [starter components](/emailify/design/presets) and **Quick Add Element** (the dropdown at the bottom of the plugin) design tools, the plugin will automatically create the required layer structures for you.

**It's very important that you maintain this basic layer structure** and not do things like nesting these generated Figma layers inside of other Figma frames or groups that you've added manually in Figma, otherwise the plugin will get confused and treat those blocks as foreign layers (which are rendered as static images instead of rich text/HTML content).

### Example Emailify layer structure

To show a quick example of what this looks like, in the screenshot below, you can see a set of Figma layers that were automatically created by the Emailify plugin.

You will notice that there is a very consistent Figma layer structure: the parent email frame added by Emailify can contain one or more "Row" layers directly inside of it, which can each have one or more "Column" layers inside of each of those, and then each "Column" layer can contain one or more "Content" layers (for example, text, images, buttons etc).

![Basic Example of Emailify Layer Structure](/assets/images/emailify/example-layer-structure.jpg)

#### Basic Example of Emailify Layer Structure

- ✉️ Email
  - 🦸 Hero
    - ✍️ Text
    - ✍️ Text
    - 🔗 Button
      - ✍️ Button Text
  - 🚣 Row
    - 🏛️ Column
      - 📷 Image
    - 🏛️ Column
      - ✍️ Text
      - ✍️ Text
  - 🚣 Row
    - 🏛️ Column
      - 📷 Image
    - 🏛️ Column
      - 🪑 Data Table
        - 🪑🚣 Data Table Row
          - 🪑🏛️ Data Table Cell (Content)
            - 📷 Vector Icon
          - 🪑🏛️ Data Table Cell (Content)
            - ✍️ Text
        - 🪑🚣 Data Table Row
          - 🪑🏛️ Data Table Cell (Content)
            - 📷 Vector Icon
          - 🪑🏛️ Data Table Cell (Content)
            - ✍️ Text
  - 🚣 Row
    - 🏛️ Column
      - 📷 Image
      - ✍️ Text
      - 🐦 Social
        - 🔗 Social Icon Link
          - 📷 SVG Vector Icon
        - 🔗 Social Icon Link
          - 📷 SVG Vector Icon
        - 🔗 Social Icon Link
          - 📷 SVG Vector Icon
        - 🔗 Social Icon Link
          - 📷 SVG Vector Icon
      - 🍔 Navigation
        - 🔗 Nav Link
          - ✍️ Nav Link Text
        - 🔗 Nav Link
          - ✍️ Nav Link Text
  - 🚣 Row
    - 🏛️ Column
      - 🪑 Data Table
        - 🪑🚣 Data Table Row
          - 🪑🏛️ Data Table Cell (Content)
            - ✍️ Text
          - 🪑🏛️ Data Table Cell (Content)
            - ✍️ Text
        - 🪑🚣 Data Table Row
          - 🪑🏛️ Data Table Cell (Content)
            - ✍️ Text
          - 🪑🏛️ Data Table Cell (Content)
            - ✍️ Text
  - 🎁 Wrapper (For Multiple Rows)
    - 🚣 Row
      - 🏛️ Column
        - 📷 Image
      - 🏛️ Column
        - ✍️ Text
    - 🚣 Row
      - 🏛️ Column
        - 📷 Image
      - 🏛️ Column
        - ✍️ Text

### Emailify layer types you can use

To understand more about each layer type, you can ready about each of the individual [layout elements](/emailify/elements/email) and [design elements](/emailify/elements/text) in the Emailify documentation.

Again, it's very important that this structure is maintained, as moving these layers around out of order will cause the HTML not to render as expected (for example, you cannot put a "Row" inside of another "Row", or put a "Text" layer directly inside of an "Email" frame, or put a "Row" inside of a "Column etc").

The simplest way to make sure you're adding the correct structure is to add starter components from the Emailify plugin, and customise the cotent/styles as needed, without fundamentally changing the structure of your layout layers.

### Customizing your layers in Figma

### Video Tutorial: Design and export Emails from Figma to HTML

This video walks through how to design and export production-ready, responsive HTML email from Figma using the Emailify plugin.
[Embedded media](https://www.youtube.com/embed/OWv4WX3eqvU)

When you a any Emailify component to your email, it's rendered onto your Figma canvas, where you can interact with the layers as you normally would (as if you had added the layers manually yourself).

For example, this means that for a text layer, you can update its content, change its font sizes, line-heights, letter spacings, paragraph spacing, and horizontal alignment using the regular Figma settings panel.

Emailify purposefully renders very basic elements, so you can customise the images, text and layout values to match your own brand and styleguide.

> **Tip:** **Re-using components as Figma instances** Once you've customised a component, you can re-use it multiple times as a Figma instance, or even across other email designs in the future.

> **Note:** **Emailify content components use Figma's Auto-Layout**. The components included with Emailify are using auto-layout, making them really easy to adjust layout values like padding and space between columns or elements.

## Next steps

- Follow the [Emailify quick-start guide](/emailify/overview/quickstart) to build your first email.
- Learn how to [align content in Emailify layouts](/emailify/design/alignment) and then add [responsive email styles](/emailify/design/responsive).
- Explore the [Emailify Figma plugin](https://www.hypermatic.com/emailify/) for production-ready HTML exports and platform integrations.

---

---
url: "/emailify/design/hero.md"
description: "You can add 🦸 Hero elements when you need to display a single column of rich text, buttons or other content elements on top of a background image."
---

# Adding hero background image blocks to your email designs

> You can add 🦸 Hero elements when you need to display a single column of rich text, buttons or other content elements on top of a background image.

[Video](/assets/videos/emailify/design/add-hero-block.mp4)

The quickest way to add a new Hero is either to [add a preset starter component](/emailify/design/presets) (mostly from the "CTA" tab) or to use the **Quick Add Element** dropdown at the bottom of the plugin to insert a new blank Hero layer to your email design, when your Emailify email Figma frame is selected.

This will add a brand new empty Hero layer with a placeholder background image fill set on it.

You can start populating it with content layers and customizing the styles (for example, adding a background, adjusting [padding and spacing](/emailify/design/item-spacing), etc) in Figma as needed.

> **Tip:** If you need to use a background image for more than one column of content, you can also [add background images](/emailify/design/background-images) to any 🚣 Row or 🎁 Wrapper layers, or apply one directly to individual 🏛️ Column layers.

> **Warning:** **🦸 Hero** elements can only be added directly inside of ✉️ **Email** layers. **🦸 Hero** elements cannot contain any **🏛️ Column** layers, as it doesn't support multiple column layouts; instead, content layers are added directly inside of the frame, without needing any **🏛️ Column** layers (unlike a **🚣 Row** element).

---

---
url: "/emailify/design/hover.md"
description: "Add hover states for buttons and links with support notes and previews."
---

# Adding hover states

> Add hover states for buttons and links with support notes and previews.

> **Warning:** **Hover styles aren't supported everywhere**. Currently, [support for hover styles in email clients](https://www.caniemail.com/features/css-pseudo-class-hover/) is still relatively low; so please be aware of this and try to design your emails with the "progressive enhancement" of these hover styles in mind. If an email client doesn't support hover styles, the button's hover state will just fall back to looking the same as its normal state when the user hovers over it.

### Video Tutorial: Add hover effects to buttons in HTML emails from Figma

This video walks through how to add hover effects to buttons in HTML emails from Figma using the Emailify Figma plugin.
[Embedded media](https://www.youtube.com/embed/8pydrphK6bU)

[Video](/assets/videos/emailify/design/button-hover-state.mp4)

You can apply hover states to any Emailify "🔗 Button" layer by selecting the layer while the **Settings** panel is open, then adding the hex color values and/or selecting the animated transition option you'd like to apply to the selected button layer on hover under the **Button Hover State** area.

You can set any/all of the following properties:

- Background Color
- Text Color
- Transition

You can [preview your hover states](/emailify/design/preview) using the preview HTML feature in the plugin.

## Adding hover states to text and navigation links

### Video Tutorial: Add hover colors to text links in HTML emails from Figma

This video walks through how to add hover colors to text links in HTML emails from Figma using the Emailify Figma plugin.
[Embedded media](https://www.youtube.com/embed/T-HSfOhTTTw)

[Video](/assets/videos/emailify/design/link-hover-color.mp4)

You can apply hover states to any Emailify "✍️ Text" or "🍔 Navigation" layer by selecting the layer while the **Settings** panel is open, then adding the hex color value you'd like to apply to any text links in the selected layer on hover under the **Links Hover State** area.

You can also optionally enable the **Fade Transition** toggle, which will add a slight color transition to the link's text color change on hover.

You can [preview your hover states](/emailify/design/preview) using the preview HTML feature in the plugin.

> **Warning:** **Hover styles aren't supported everywhere**. Currently, [support for hover styles in email clients](https://www.caniemail.com/features/css-pseudo-class-hover/) is still relatively low; so please be aware of this and try to design your emails with the "progressive enhancement" of these hover styles in mind. If an email client doesn't support hover styles, the button's hover state will just fall back to looking the same as its normal state when the user hovers over it.

---

---
url: "/emailify/design/item-spacing.md"
description: "You can adjust the spacing between layers by tweaking the Item Spacing auto-layout property, and also use an Emailify spacer element for extra custom vertical spacing."
---

# Adding item spacing and spacer elements to your email designs

> You can adjust the spacing between layers by tweaking the Item Spacing auto-layout property, and also use an Emailify spacer element for extra custom vertical spacing.

## Changing the default auto-layout item spacing for your layers

[Video](/assets/videos/emailify/design/adding-item-spacing.mp4)

By adjusting the **Item Spacing** property for your Row, Column or other Emailify layout layers (like a Wrapper, Hero or Social icons container), you can define the default amount of spacing in-between the child elements inside of that layer.

For example, setting an item spacing value of `16` to a Column layer will distribute an even amount of spacing (16 pixels) in-between any elements (for example, text, images, buttons etc) inside of that Column layer.

## Adding custom vertical spacer elements to your columns

[Video](/assets/videos/emailify/design/adding-spacer-elements.mp4)

If you've already set your default item spacing, but still need an extra bit of vertical spacing between certain layers in your Column, you can add a special Emailify spacer element by clicking your "Column" layer, then selecting the "Spacer" item from the Quick Add dropdown menu at the bottom of the plugin, and then clicking the **Add +** button to insert the spacer layer into your Column.

After the spacer layer has been added to your Column, you can drag and drop the layer in your layers panel to re-order which layers it sits between, and then you can adjust the size of it by adjusting the **Height** of the layer in its Figma layer properties panel.

> **Info:** Custom spacer elements will also have the default Item Spacing of its parent element surrounding it, so you take this into account when specifying the Height value of your spacer.

## Adding automatic vertical item spacing between your column layers

[Video](/assets/videos/emailify/design/vertical-auto-layout-split.mp4)

To keep one layer at the top of a Column and another at the bottom, set the Column's vertical Auto Layout sizing to **Fill container**. Then set **Item spacing** to **Auto**. Figma distributes the available space between the layers as the content length changes.

> **Tip:** **Override the item spacing value for mobile**. If you're using this method to create a split vertical layout for your desktop design, you should also add a mobile override value for the Item Spacing by clicking the same "Column" layer you applied the above steps to, then click the **Settings** button, enable the **Item Spacing** mobile override toggle, and enter a number value of your choice (in pixels) to make the item spacing a static and consistent size on mobile (regardless of the "auto" spacing size on desktop is).

## Adding custom vertical margin spacing between your text layer paragraphs

[Video](/assets/videos/emailify/design/paragraph-spacing.mp4)

You can customize the vertical spacing between paragraphs in your Figma text layers by opening the Figma text properties panel, then adjusting the **Paragraph spacing** value under the **Basics** tab. This will determine how much `margin-bottom` to add to the `` tags inside that text layer's content when your HTML email is generated.

> **Tip:** Note that if you've added any extra paragraph lines (for example, pressing `Enter` or `Return` twice to create a double space), the _empty_ extra paragraph will still be included, and any custom paragraph spacing will also be added as `margin-bottom` underneath that, too. You can optionally remove these extra/blank paragraphs (as per the video above) to have finer control over the paragraph spacing in your text instead.

> **Tip:** You can [apply settings in bulk](/emailify/design/settings#apply-settings-in-bulk) by opening **Settings**, then selecting multiple Emailify layers of the same type in Figma. Any setting you change will be applied to all selected layers.

---

---
url: "/emailify/design/library.md"
description: "Load, organize, and search Emailify components from your Figma library."
---

# Creating a reusable component library

> Load, organize, and search Emailify components from your Figma library.

Any elements that you add to Figma from the Emailify plugin will automatically be added as native Figma components, which you can customize the style and content of; and any Emailify components inside your current Figma file can be accessed directly from the plugin by clicking the **Library** icon button in the header tabs row.

## Does Emailify load components from the current Figma file only?

Yes. The **Library** tab loads Emailify components from the current Figma file you have open in Figma.

If a teammate opens a different file, Emailify will only show the Emailify components that already exist in that file. After adding or updating components in the current file, click **Load all Emailify Components from this Figma file** or use **Refresh** to scan the file again.

## Adding components from your Component Library tab

### Video Tutorial: Create a component library for HTML email designs in Figma

This video walks through how to design a Figma component library for HTML emails using the Emailify Figma plugin.
[Embedded media](https://www.youtube.com/embed/lQb9-_9maxs)

[Video](/assets/videos/emailify/load-component-library.mp4)

Clicking the **Load all Emailify Components from this Figma file** will find and load previews of any Emailify Figma components in your file; clicking any component in the plugin will automatically add it to the selected Emailify frame, just like any other category.

If you've added any new components to your Figma file since loading the initial components, you can click on the **Refresh** icon button in the plugin, which will re-check the Figma file for any Emailify components and include them in the list.

## Organizing your component library with custom categories

### Video Categories: Add custom categories for Figma email components

This video walks through how to add custom categories for Figma email components using the Emailify Figma plugin.
[Embedded media](https://www.youtube.com/embed/M6p5AY2-g54)

[Video](/assets/videos/emailify/create-custom-categories.mp4)

By default, all of your Figma components will be _Uncategorized_, but you can optionally create your own custom categories by clicking the **Pencil** icon button in the component library subheader tabs row.

This lets you create new custom categories, and then move components from any existing categories into any other category that you've added.

You can also remove a custom category at any time, which won't delete any of your Figma components, but will automatically move any components that were in that category back to the _Uncategorized_ category.

### Searching and sorting your Component Library

[Video](/assets/videos/emailify/search-and-sort-components.mp4)

To quickly find a custom Figma component in the component library tab, you can use the **Search** input field to filter down your components list by the layer name of any Figma component.

You can also sort the list of components by any of these options:

**Sort by Figma Layer Age**
- Newest to Oldest ↓
- Oldest to Newest ↑

**Sort by Figma Layer Name**
- Figma Layer Name ↓
- Figma Layer Name ↑

**Sort by Figma Layer Order**
- Figma Layer Order ↓
- Figma Layer Order ↑

**Sort Visually (Rows)**
- Visually Top to Bottom ↓
- Visually Bottom to Top ↑

**Sort Visually (Columns)**
- Visually Left to Right →
- Visually Right to Left ←

### Adding metadata to your Figma components

[Video](/assets/videos/emailify/figma-component-metadata.mp4)

You can add metadata to your Figma components by clicking your component layer in Figma, and then clicking the **Component configuration** icon button in the Figma right-hand side column next to the component name. This lets you enter some text for _How to use this component_ and a URL as a _Link to documentation_.

If these are present on any of your Emailify components, the label for your component in the component library tab will automatically be linked to your documentation URL, and the description of how to use the component will appear in the tooltip of the component when the thumbnail is hovered over.

---

---
url: "/emailify/design/mobile-hamburger-menu.md"
description: "You can optionally enable a togglable hamburger menu icon on any [Navigation](/emailify/content/link-nav-menu) element for mobile devices running Apple Mail on iOS."
---

# Enabling a collapseable hamburger menu toggle for your navbar layers (only supported in Apple Mail on iOS)

> You can optionally enable a togglable hamburger menu icon on any [Navigation](/emailify/content/link-nav-menu) element for mobile devices running Apple Mail on iOS.

[Video](/assets/videos/emailify/design/mobile-hamburger-menu.mp4)

You can enable the toggleable hamburger icon by clicking any Emailify **Navigation** layer, then clicking the **Settings** layer in the plugin header, and toggling the **Enable Hamburger Menu** toggle option on or off.

If you've enabled the hamburger menu toggle, you can also specify the **Alignemnt** (`Left`, `Center` or `Right`), the **Hamburger Icon Size** in pixels (for example, `44`) and the **Hamburger Icon Color** hex code (for example, `#000000`).

> **Warning:** Please treat this as a progressive enhancement, as **the Hamburger Menu feature only work on iOS with the Apple Mail email client**, for other email clients, the nav links will be displayed in a vertical list, and the hamburger icon won't be visible.

> **Tip:** You can [apply settings in bulk](/emailify/design/settings#apply-settings-in-bulk) by opening **Settings**, then selecting multiple Emailify layers of the same type in Figma. Any setting you change will be applied to all selected layers.

---

---
url: "/emailify/design/optimizing-html-file-size.md"
description: "The size of your final HTML will depend on the amount of content you've added to your email design."
---

# Optimizing Figma email layer structure to get smaller HTML export file sizes

> The size of your final HTML will depend on the amount of content you've added to your email design.

[Video](/assets/videos/emailify/design/optimize-layers.mp4)

Emailify automatically applies HTML minification and compression during your code exports from the plugin, so if your email is still over the [Gmail 102kb clipping limit](https://mailchimp.com/help/gmail-is-clipping-my-email/), you will need to either remove some content from your design, or try to consolidate content layers where possible.

For example, if you have multiple **Row** layers on top of each other, which all have the same background color, and all only contain a single **Column** layer in each row, you can shift all of the content layers inside of each **Column** into a single **Row**, with a single **Column** layer, which will allow you to delete all of the other (now empty) **Row** layers previously being used.

> **Tip:** Note that **the file size of any images used do not count** towards the size of your `.html` file, so using smaller images won't have any impact on the size of your HTML code.

### Checking the file size of your HTML email in kilobytes (kb) before exporting your email

In the header of the [Preview](/emailify/design/preview) panel, you'll see a number that represents the total file size of your email's HTML (which is just the `.html` itself, not including any image assets). This can be helpful for knowing if you've gone over the [Gmail 102kb clipping limit](https://mailchimp.com/help/gmail-is-clipping-my-email/).

> **Warning:** **If your HTML size is over 102kb**, the file size in your preview window will be highlighted in yellow as a visual flag to indicate that your email has exceeded that limit.

---

---
url: "/emailify/design/padding.md"
description: "You can adjust the vertical and horizontal padding for your Emailify layout layers by updating the 'Padding' auto-layout property."
---

# Adding padding to your email design layouts

> You can adjust the vertical and horizontal padding for your Emailify layout layers by updating the 'Padding' auto-layout property.

## Adding padding to your layout layers

[Video](/assets/videos/emailify/design/adding-layout-padding.mp4)

To set the height of your layout layers and specify the amount of spacing at the top or bottom of them, you can adjust the **Vertical Padding** auto-layout property in Figma.

To set the width of the inner content inside your layout layers and specify the amount of spacing on the left or right of them, you can adjust the **Horizontal Padding** auto-layout property in Figma.

> **Warning:** You should always use **Padding** to set the height of any Row or Column layer (with the layer's auto-layout height property set to **Hug**). Setting **Fixed** heights in Figma won't be carried over to the final HTML, as the height of elements in HTML are determined by the size of their content (plus any top/bottom padding), so using **Padding** is the most reliable way to visually design your emails for exporting to HTML.

## Adding outer padding around multiple Row layers

[Video](/assets/videos/emailify/design/adding-outer-wrapper-padding.mp4)

If you have multiple rows that you'd like to add padding around, you can add a special [Wrapper](/emailify/design/wrappers) layout layer to your email by clicking your Emailify frame, selecting **Row Wrapper** from the Quick Add dropdown menu options, and then clicking **Add +** to insert it into your email as a new Figma layer.

After you've added the Wrapper to your design, you can move your Row(s) into the new Wrapper layer and adjust you can adjust the **Horizontal Padding** and  **Vertical Padding** auto-layout properties in Figma to create outer padding around the Row layers inside of your Wrapper.

## Adding inner padding to your text layers

[Video](/assets/videos/emailify/design/text-padding.mp4)

You can optionally add inner text padding by selecting a Figma text layer in your email while the **Settings** panel is open, enabling the **Inner Padding** toggle, then adding any padding values you'd like to apply to the selected text layer.

This will add extra "inner" padding inside of your text layer when it's rendered to HTML, allowing you to specify padding values for certain text layers in your Column without affecting other layers.

> **Tip:** You can also optionally override any text layer padding on mobile by enabling the **Mobile Padding** toggle, then adding any padding values you'd like to apply to the selected text layer, which will only be visible when viewing your HTML email on mobile.

## Adding inner padding to your divider line layers

[Video](/assets/videos/emailify/design/divider-padding.mp4)

You can optionally add inner padding to your dividers by selecting an Emailify divider layer in your email while the **Settings** panel is open, enabling the **Inner Padding** toggle, then adding any padding values you'd like to apply to the selected divider layer.

This will add extra "inner" padding inside of your divider layer when it's rendered to HTML, allowing you to specify padding values for certain text layers in your Column without affecting other layers.

> **Tip:** You can also optionally override any Emailify divider layer padding on mobile by enabling the **Mobile Padding** toggle, then adding any padding values you'd like to apply to the selected divider layer, which will only be visible when viewing your HTML email on mobile.

---

---
url: "/emailify/design/paragraph-spacing.md"
description: "You can add custom spacing margins between paragraphs to any text layers in your email designs."
---

# Adding vertical spacing between your text layer paragraphs

> You can add custom spacing margins between paragraphs to any text layers in your email designs.

[Video](/assets/videos/emailify/design/paragraph-spacing.mp4)

You can customize the vertical spacing between paragraphs in your Figma text layers by opening the Figma text properties panel, then adjusting the **Paragraph spacing** value under the **Basics** tab. This will determine how much `margin-bottom` to add to the `` tags inside that text layer's content when your HTML email is generated.

> **Tip:** Note that if you've added any extra paragraph lines (for example, pressing `Enter` or `Return` twice to create a double space), the _empty_ extra paragraph will still be included, and any custom paragraph spacing will also be added as `margin-bottom` underneath that, too. You can optionally remove these extra/blank paragraphs (as per the video above) to have finer control over the paragraph spacing in your text instead.

---

---
url: "/emailify/design/presets.md"
description: "The quickest way to start adding layout components to your email is by adding common design components directly from the Emailify plugin."
---

# Adding Emailify starter components to your email

> The quickest way to start adding layout components to your email is by adding common design components directly from the Emailify plugin.

[Video](/assets/videos/emailify/design/add-preset-components.mp4)

To browse the components available in the Emailify plugin, you can click on any of the category tabs under the plugin header bar. Clicking each tab will reveal the components that the category contains, which you can scroll up and down to visually browse the subcategories inside the selected tab.

> **Note:** To re-order any row added from the presets, you can click and drag the row up/down inside the Emailify container frame (which has auto-layout enabled) to change its position.

## Browsing the External Component Library

### Video Tutorial: Use 500+ free HTML email components in your Figma designs

This video walks through how to use 500+ free HTML email components in your Figma designs with the Emailify Figma plugin.
[Embedded media](https://www.youtube.com/embed/zMUQ3tE76Vo)

[Video](/assets/videos/emailify/design/external-component-library.mp4)

In addition to the built-in components available in the Emailify plugin, you can browse and use components from external component libraries through the Emailify web app. This lets you access a wider range of pre-built email components that can be copied directly into your Figma designs.

To use components from the external library:

1. Visit the [Emailify web app](https://emailify.hypermatic.com) to browse the full catalog of available email components
2. Filter components by category, template usage, or search for specific elements
3. Click the **Copy Figma Component** button on any component to copy its HTML snippet to your clipboard
4. In Figma, select an Emailify frame where you want to paste the component
5. Paste the component directly into the Emailify frame using **Cmd+V** (Mac) or **Ctrl+V** (Windows)

The pasted component will automatically integrate with your email design and can be customized just like any other Emailify component.

> **Note:** External components use Emailify's auto-layout structure. Drag a component up or down inside the Emailify container frame to reorder it.

## Starter Component Categories

Emailify sorts components into a few categories (and subcategories) to make it easier to browse for what you need in your email design.

### Headers

Typically used at the top of your email; these can be components like a brand logo, "view online" links, a navigation menu, social icons etc.

### Images

These are components for displaying image content; these can be components like a full width image, background image (for adding text on top of), logo grid, image cards, grids and captions.

### Content

Includes text-based components such as paragraphs, quotes, testimonials, author avatars, article cards, feature icons, stats, promo codes, and product cards.

### Ecomm (E-Commerce)

Offers some common components that might be used for displaying products or elements related to a post-checkout email, and also includes some Klaviyo-specific components for displaying dynamic product grids for that platform.

### CTAs (Call To Action)

These components are primarily used for asking the user to click something or take an action; these can be components like buttons, links, background image heroes, video thumbnails, feature tiles, app store buttons, social media icons and product heroes.

### Footer

Typically used at the bottom of your email; these can be components for displaying your brand logo and address details, social media links, unsubscribe links or app download buttons.

> **Tip:** Any components you add in another category will automatically be "bookmarked" to the Favourites category to make it easy to access them again later. You also have the option to remove any components from your favourites by clicking the **Trash** icon; this will remove the component from your favourites list, but won't "delete" it from the other categories.

---

---
url: "/emailify/design/preview.md"
description: "The preview window in Emailify will allow you to see and interact with your email in real HTML before you export it."
---

# Previewing your HTML email in Figma

> The preview window in Emailify will allow you to see and interact with your email in real HTML before you export it.

[Video](/assets/videos/emailify/design/preview-email.mp4)

 Clicking the **Preview** button in the Emailify plugin header will automatically generate a real HTML preview of your email directly inside the Figma plugin.

 While the preview window is open, updates you make to your Emailify layers in Figma are reflected in real time in the HTML preview.

> **Info:** **GIFs** are displayed as static images in preview mode to speed up the preview loading (due to GIFs taking longer to render), but they will be animated in your final HTML exports from the plugin.

> **Tip:** You can edit any mobile overrides while in the preview window is open by clicking the **Settings** button in the preview panel header.

### Previewing your email at different device widths

To see how it looks on different device widths, click on the select box in the header of the preview panel, and choose from the options below:

- Desktop (**726px** Wide)
- iPhone 15 Pro Max (**430px** Wide)
- iPhone 15 (**393px** Wide)
- iPhone 13 Mini (**375px** Wide)
- iPhone 12 Mini (**360px** Wide)
- iPhone SE (**320px** Wide)

> **Note:** **Mobile breakpoint for the emails**. The HTML emails exported from Emailify have a single "breakpoint" that's automatically set by the width of the desktop frame in Figma. For example, if your Emailify frame is 600px, the mobile styles/overrides will start showing at 599px and below.

> **Tip:** Keeping the width of the email **between 600px - 640px** is typically recommended, as some email client/app's inbox reader panels can be less than 700px wide, which would render the mobile styles at that width instead of the desktop layout.

## Live preview changes in HTML preview window from Figma

With the HTML preview open, you can keep editing your Figma layers and immediately see those changes update in the preview window, without needing to click **Refresh** each time.

[Video](/assets/videos/emailify/design/live-preview-edits-desktop.mp4)

## Toggling emulated dark mode in the HTML preview window

[Video](/assets/videos/emailify/design/emulate-dark-mode.mp4)

> **Warning:** The [support for dark mode override styles](https://www.caniemail.com/features/css-at-media-prefers-color-scheme/) in email clients is limited to Apple Mail on iOS/MacOS; which means dark mode overrides _will not work_ on any other clients like Gmail, Outlook etc. Please be aware of this and try to design your emails with the [progressive enhancement](https://www.litmus.com/blog/the-ultimate-guide-to-dark-mode-for-email-marketers/) in mind.

Enabling the **Emulated Dark Mode** toggle in the plugin's preview panel will allow you to see an _approximate_ visual of what your design will look like when it's viewed on a device with dark mode enabled by emulating some of the changes that they apply.

This preview mode will also allow you to see any background color, text color, border color, or dark/light image swaps that you've added in the Emailify [dark mode override](/emailify/design/dark-mode) settings.

> **Tip:** To _accurately_ see what your design looks like in [email clients that support dark mode overrides](https://www.caniemail.com/features/css-at-media-prefers-color-scheme/), it's always worth doing a test of your own emails using a service like [Litmus](https://www.litmus.com/) or [Email on Acid](https://www.emailonacid.com/), just to ensure they're looking good before you send them out.

_Please note_ that different email clients (that have dark mode support) will apply their own dark mode overrides automatically to invert and update colors to try and maximize readability and contrast, so it's always worth doing a test of your own emails using a service like [Litmus](https://www.litmus.com/) or [Email on Acid](https://www.emailonacid.com/) to accurately see how they're rendered in all email clients in dark mode.

It's also worth using [some other clever design techniques](https://www.campaignmonitor.com/blog/email-marketing/designing-an-email-for-dark-mode-dark-and-light-optimization/) for creating your email with dark mode in mind as a fallback with other email clients, too.

## Checking the file size of your HTML email in kilobytes (kb)

In the header of the preview panel, you'll see a number that represents the total file size of your email's HTML (which is just the `.html` itself, not including any image assets). This can be helpful for knowing if you've gone over the [Gmail 102kb clipping limit](https://mailchimp.com/help/gmail-is-clipping-my-email/).

> **Warning:** **If your HTML size is over 102kb**, the file size in your preview window will be highlighted in yellow as a visual flag to indicate that your email has exceeded that limit.

> **Tip:** [Reducing or consolidating the number of "Row" layers in your email](/emailify/design/optimizing-html-file-size) is the best way to reduce your HTML file size.

## Previewing web safe font fallbacks in your email

[Video](/assets/videos/emailify/design/preview-font-fallbacks.mp4)

If you've specified any web safe [fallback fonts](/emailify/design/fonts) for custom web fonts in your email, you can preview how they will look by toggling the **Show Fallback Fonts** switch at the bottom of the Emailify preview window.

## Auto-layout linting (and auto-fixing) for Emailify layers

[Video](/assets/videos/emailify/design/linter-auto-fix.mp4)

When previewing your HTML in the **Preview** feature of the plugin, it will automatically detect if any of your layers that were added via the Emailify plugin still have the correct Figma auto-layout properties to ensure a visually consistent export to HTML.

It will show you a list of layers that need to have their auto-layout properties tweaked (for example, changing "Fixed" height to "Hug"); you can optionally automatically apply these changes by clicking the **Apply all Layer Fixes**, which will update the Figma layers flagged with the auto-layout property tweaks that are required.

## Manually moving and resolving Emailify layers that are in the wrong place

[Video](/assets/videos/emailify/design/manual-move-layers.mp4)

When previewing your HTML in the **Preview** feature of the plugin, it will automatically detect if any of your layers that were added via the Emailify plugin are still in the correct structure that they were created with (for example, Row Layer -> Column(s) Layers -> Content Layers) to ensure a visually consistent export to HTML.

It will show you a list of layers that need to to be manually moved, along with instructions for each item (for example, "Move this Row layer back into the main Email frame"), and a button to instantly jump to the layer on your page and in your Figma layer's list, making it easier to find and move as required.

> **Tip:** You can [apply settings in bulk](/emailify/design/settings#apply-settings-in-bulk) by opening **Settings**, then selecting multiple Emailify layers of the same type in Figma. Any setting you change will be applied to all selected layers.

---

---
url: "/emailify/design/random-layouts.md"
description: "Use the Randomize subcategory in the Layouts tab to generate and preview logical Emailify layouts from built-in preset components before inserting one into Figma."
---

# Creating email layouts with Randomize

> Use the Randomize subcategory in the Layouts tab to generate and preview logical Emailify layouts from built-in preset components before inserting one into Figma.

The **Randomize** subcategory in the **Layouts** tab creates a randomized Emailify frame from built-in preset components.

Randomize layouts are useful when you want to quickly explore a complete email structure without choosing every row manually. Emailify keeps the generated layout sensible by placing a header at the top, a footer at the bottom, and mixing hero, content, product, proof, and CTA sections in between.

## Generate a Randomize layout

1. Open Emailify in Figma.
2. Click the **+** icon in the plugin header to open the **New Email** modal.
3. Click the **Layouts** tab, then click the **Randomize** subcategory.
4. Click **Generate Layout** to preview a randomized stack of Emailify preset thumbnails.
5. Keep clicking **Generate Layout** until you find a structure you like.
6. Click **Insert to Figma** to create the Emailify frame in the current Figma page.

After the frame is inserted, you can edit the placeholder copy, images, colors, spacing, and layer settings just like any other Emailify design.

## How Randomize chooses layouts

Randomize layouts are generated client-side from Emailify's built-in preset components. The generator uses simple structure rules so the result feels like a usable email rather than a completely arbitrary stack:

- Header presets stay at the top.
- Footer presets stay at the bottom.
- Hero or intro sections are kept near the top.
- Content, product, checklist, proof, and CTA sections are mixed in the middle.
- Duplicate presets are avoided where possible.

The preview uses the same preset thumbnails shown in the **Layouts** tab, so you can review the rough shape before inserting it into Figma.

> **Note:** Randomize layouts do not use your written brief or call an external AI service. They are generated inside the plugin from built-in Emailify presets.

## When to use Randomize

Use Randomize when you want fast layout inspiration or a quick starting point to customize.

Use [Layouts](/emailify/design/starter-layouts) when you want to choose a specific composed layout. Use [Figma Templates](/emailify/design/templates) when you want to duplicate a complete Figma Community template file.

---

---
url: "/emailify/design/responsive.md"
description: "Emailify lets you have extra control over how each element of your email renders on mobile by using the Settings panel."
---

# Add responsive mobile override settings for your email layers

> Emailify lets you have extra control over how each element of your email renders on mobile by using the Settings panel.

[Video](/assets/videos/emailify/design/live-preview-edits-mobile.mp4)

## How do I make an Emailify email responsive on mobile?

Emailify exports responsive HTML automatically, and you can fine-tune mobile behavior with mobile override settings on individual Emailify layers. Start with the desktop email frame, then use the plugin preview to check the mobile version before exporting.

## Where do I set mobile overrides?

Select the Emailify layer you want to adjust, click the **Settings** button in the plugin header, then use the mobile override controls for that layer. Text layers, Column layers, Row layers, Hero layers, Wrapper layers, image layers, and button layers can expose different mobile controls depending on the selected layer type.

## Why does mobile layout start at a different width?

Emailify uses a single responsive breakpoint based on the width of the desktop Emailify frame in Figma. If your Emailify frame is 600px wide, mobile styles start at 599px and below. If your frame is wider, the mobile breakpoint will be wider too.

To add mobile style overrides, click on any Emailify layer in your design, then click the **Settings** button in the plugin header, and apply any desired mobile style overrides for the selected layer as needed.

For example, clicking a Text layer in your email will allow you to override its font size, line height, letter spacing, paragraph spacing, padding and alignment for mobile; whereas clicking a Row layer in your email will allow you to override its padding, the item spacing between its columns, whether it should stack the columns on mobile (or not), and when multiple columns still share a mobile row, their vertical alignment on mobile.

You can visually preview your mobile overrides using the [preview](/emailify/design/preview) feature in the Emailify plugin.

> **Note:** **Mobile breakpoint for the emails**. The HTML emails exported from Emailify have a single "breakpoint" that's automatically set by the width of the desktop frame in Figma. For example, if your Emailify frame is 600px, the mobile styles/overrides will start showing at 599px and below.

> **Tip:** Keeping the width of the email **between 600px - 640px** is typically recommended, as some email client/app's inbox reader panels can be less than 700px wide, which would render the mobile styles at that width instead of the desktop layout.

> **Tip:** You can [apply settings in bulk](/emailify/design/settings#apply-settings-in-bulk) by opening **Settings**, then selecting multiple Emailify layers of the same type in Figma. Any setting you change will be applied to all selected layers.

---

---
url: "/emailify/design/reverse-columns.md"
description: "You can visually reverse the order of the Columns within a Row inside your email on desktop, while preserving the natural stacking order on mobile."
---

# Reversing the column order for a row on desktop

> You can visually reverse the order of the Columns within a Row inside your email on desktop, while preserving the natural stacking order on mobile.

[Video](/assets/videos/emailify/design/reverse-column-order.mp4)

The order of your Column layers in Figma will always determine how they stack on mobile (for example, any Column layers on the left will always stack on top of any columns to the right), but sometimes you may want to have a different order of these Columns on desktop.

You can achieve this effect by clicking the Row layer you want to reverse the Column layers of on desktop, then clicking the **Settings** button in the plugin header menu, and enabling the **Reverse desktop column order** toggle.

You can visually preview your visual order column overrides using the [preview HTML](/emailify/design/preview) feature in the plugin.

> **Tip:** You can [apply settings in bulk](/emailify/design/settings#apply-settings-in-bulk) by opening **Settings**, then selecting multiple Emailify layers of the same type in Figma. Any setting you change will be applied to all selected layers.

---

---
url: "/emailify/design/rows.md"
description: "Emailify designs are made up of **🚣 Row** layers, which use a horizontal auto-layout to render 🏛️ **Column** layers and create layouts to display your content layers."
---

# Adding rows to your email designs

> Emailify designs are made up of **🚣 Row** layers, which use a horizontal auto-layout to render 🏛️ **Column** layers and create layouts to display your content layers.

[Video](/assets/videos/emailify/design/adding-new-rows.mp4)

The quickest way to add a new Row is either to [add a preset starter component](/emailify/design/presets) or to use the **Quick Add Element** dropdown at the bottom of the plugin to insert a new blank Row layer to your email design, when your Emailify email Figma frame is selected.

This will add a brand new empty Row layer with a single Column layer inside of it, which you can start populating with content layers and customizing the styles (for example, adding a background, adjusting [padding and spacing](/emailify/design/item-spacing), etc) in Figma as needed.

> **Warning:** **🚣 Row** layers can only be added directly to an ✉️ **Email** frame, and can only contain one or more 🏛️ **Column** layers inside of it.

---

---
url: "/emailify/design/settings.md"
description: "Learn how to open the Settings panel for any Emailify layer, apply layer attributes, and apply settings in bulk to multiple same-type layers."
---

# Open and use layer settings in Emailify

> Learn how to open the Settings panel for any Emailify layer, apply layer attributes, and apply settings in bulk to multiple same-type layers.

Emailify lets you apply HTML attributes and responsive overrides from the **Settings** panel for any supported Emailify layer in your design.

## Open layer settings

[Video](/assets/videos/emailify/design/live-preview-edits-mobile.mp4)

1. Select any Emailify layer in your Figma design (for example: Text, Image, Button, Row, Column, Wrapper, Hero, Social Icon Link, Navigation Link).
2. Click the **Settings** button in the Emailify plugin panel (or in the HTML preview window).
3. Update any available attributes for that selected layer.

Depending on the layer type, this includes options like clickable URL links, image alt text, show/hide controls, mobile overrides, dark mode overrides, and other HTML export attributes.

## Apply settings in bulk

[Video](/assets/videos/emailify/design/bulk-apply-email-settings.mp4)

You can also apply settings to multiple layers at once.

1. Multi-select two or more Emailify layers of the same type in Figma (for example, multiple text layers or multiple image layers).
2. Open the **Settings** panel.
3. Confirm **Bulk Edit Mode** is active.
4. Change any setting value in the panel.

When Bulk Edit Mode is active, setting changes are applied to all selected layers of that same type.

If selected layers have different existing values, Emailify will detect and report mixed values. Changing a setting will override that specific setting across all selected layers.

## Next steps

- To preview mobile/desktop results after changing settings, use the HTML preview panel: [Preview HTML emails](/emailify/design/preview)
- To learn about mobile overrides in detail, see: [Mobile style overrides](/emailify/design/responsive)

---

---
url: "/emailify/design/show-hide.md"
description: "Show or hide layers on mobile or desktop, including separate image variants for each viewport."
---

# Showing and hiding elements in your emails on desktop or mobile

> Show or hide layers on mobile or desktop, including separate image variants for each viewport.

## Hiding a layer from displaying on mobile or desktop

[Video](/assets/videos/emailify/design/mobile-desktop-hide.mp4)

If you want to hide a certain element on mobile or desktop for any reason, you can do this by clicking the **Settings** button in the plugin header, then click any layer in your Emailify container frame and enable the **Hide On Mobile** toggle to hide the element on mobile, or enable on the **Hide On Desktop** toggle to hide the element on desktop.

You can [visually preview your visibility overrides](/emailify/design/preview) using the preview HTML feature in the plugin.

## Using separate image layers for mobile and desktop

[Video](/assets/videos/emailify/design/swap-images-mobile-desktop.mp4)

To achieve the effect of showing a variation of a content element on mobile and another on desktop, you can duplicate the Figma layer, open the **Settings** panel with either image selected, and then set one to **Hide on Mobile** and the other to **Hide on Desktop**, which will ensure that each only appears on desktop or mobile.

Note that this should be done sparingly, as it will add some extra code to your HTML export each time because both image layers are exported as normal image elements with their own visibility settings.

> **Tip:** You can [apply settings in bulk](/emailify/design/settings#apply-settings-in-bulk) by opening **Settings**, then selecting multiple Emailify layers of the same type in Figma. Any setting you change will be applied to all selected layers.

---

---
url: "/emailify/design/stack-mobile-columns.md"
description: "By default, any **Column** layers in your email design's Row layers will be stacked on mobile, but you can configure this per Row based on what you prefer them to do."
---

# Stacking (or not stacking) columns layers inside your rows on mobile

> By default, any **Column** layers in your email design's Row layers will be stacked on mobile, but you can configure this per Row based on what you prefer them to do.

[Video](/assets/videos/emailify/design/stack-mobile-columns.mp4)

## How do I stack columns on mobile?

Select the **Row** layer that contains the Column layers, click the **Settings** button in the plugin header, then turn on **Stack Columns in this Row**. By default, this stacks the Row's columns into a single column on mobile.

## Why are columns not stacking on mobile?

Columns will not stack if **Stack Columns in this Row** is turned off for that Row, or if the Row is configured to keep more than one column per row on mobile. Some preset components may also have mobile stacking turned off by default when that matches the preset design.

To fix it, select the Row, open **Settings**, enable **Stack Columns in this Row**, and choose **1 Column Per Row on Mobile** if you want each column to appear one below the other.

By default, any Column layers in your designs will be set to stack on mobile (unless you're using a preset component where this is already turned off prior to match its intent).

You can change this behavior on mobile by clicking any **Row** layer, then clicking the **Settings** layer in the plugin header, and toggling the **Stack Columns in this Row** toggle option on or off.

> **Note:** If you're using a more than 2 **Column** layers in your **Row**, you may want to consider keeping them set as stacked, otherwise the content inside of them can become very narrow and small on smaller mobile device screens.

## Overriding the number of stacked columns on mobile

By default, enabling the **Stack Columns in this Row** toggle option will stack all the Column layers in your Row into a single column, but you can optionally override this by selecting any of the options in the dropdown selector next to the toggle in the plugin:

- 1 Column Per Row on Mobile
- 2 Columns Per Row on Mobile
- 3 Columns Per Row on Mobile
- 4 Columns Per Row on Mobile

For example, if you have a Row in your with with 4 Columns, you could select the _2 Columns Per Row on Mobile_ option and that would ensure your columns are stacked in 2 columns across 2 rows (displaying as a "grid" of 4) when the row is viewed on mobile.

> **Note:** Please ensure you only select a dropdown value that makes sense for your number of columns. For example, setting the dropdown option to _3 Columns Per Row on Mobile_, if your Row only contains 2 columns in the design, would result in those 2 columns having a width of `33%` each, which won't take up the entire screen width on mobile and may look broken or strange.

## Overriding vertical alignment for mobile column rows

If your Row still keeps multiple Column layers side by side on mobile, you can also override how those columns vertically align against each other for that mobile row. To do this, click on your **Row** layer, enable the **Override Column Vertical Align on Mobile** toggle, then choose **Top**, **Middle** or **Bottom** from the dropdown selector next to it.

This mobile vertical alignment override is only enabled when your Row still has multiple columns on mobile, which means either:

- the **Stack Columns In This Row** toggle is turned off, or
- the toggle is turned on and the dropdown is set to more than **1 Column Per Row on Mobile**

> **Tip:** You can [apply settings in bulk](/emailify/design/settings#apply-settings-in-bulk) by opening **Settings**, then selecting multiple Emailify layers of the same type in Figma. Any setting you change will be applied to all selected layers.

---

---
url: "/emailify/design/starter-layouts.md"
description: "Use the Layouts tab to create complete Emailify email frames from built-in preset components."
---

# Creating emails with Layouts

> Use the Layouts tab to create complete Emailify email frames from built-in preset components.

[Video](/assets/videos/emailify/design/emailify-layouts.mp4)

The **Layouts** tab in the **New Email** modal creates a new Emailify frame from built-in Emailify preset components.

Unlike the **Figma Templates** tab, which opens complete Figma Community files, Layouts build a new email directly in your current Figma file using hardcoded placeholder content that you can immediately edit.

## Create a layout

1. Open Emailify in Figma.
2. Click the **+** icon in the plugin header to open the **New Email** modal.
3. Click the **Layouts** tab.
4. Choose a layout category, such as **Randomize**, **Promo**, **E-Com**, **Lifecycle**, **Newsletter**, or **Transactional**.
5. Click a layout thumbnail to create a new Emailify frame in the current Figma page.

After the frame is created, you can edit the copy, images, colors, spacing, and layer settings just like any other Emailify email design.

## Randomize layouts

The **Randomize** subcategory in **Layouts** generates a logical layout by mixing compatible built-in presets. It keeps the email structure sensible by placing header presets at the top, footer presets at the bottom, and mixing hero, content, product, proof, and CTA sections in between.

See [Randomize Layouts](/emailify/design/random-layouts) for the full workflow.

## When to use Layouts

Use Layouts when you want a fast in-file starting point for common email types, including announcements, product launches, abandoned carts, onboarding emails, newsletters, receipts, reminders, and account updates.

If you want a fully designed example file to duplicate and inspect, use [Figma Templates](/emailify/design/templates). If you want Emailify to generate a randomized built-in structure with Randomize, use [Randomize Layouts](/emailify/design/random-layouts).

---

---
url: "/emailify/design/superscript-and-subscript.md"
description: "You can add superscript and subscript HTML tags to any text paragraphs in your email designs by applying those settings to areas of your content using the native Figma text properties."
---

# Adding superscript and subscript text to your paragraphs

> You can add superscript and subscript HTML tags to any text paragraphs in your email designs by applying those settings to areas of your content using the native Figma text properties.

[Video](/assets/videos/emailify/design/sub-sup-scripts.mp4)

You can add [superscript or subscript](https://help.figma.com/hc/en-us/articles/360039956634-Explore-text-properties#h_01G6682GY2AHM7ETNZRPTQD5FY) styles to any characters in a text paragraph by selecting a Figma text layer in your email, then applying a **Superscript** or **Subscript** value in the Figma **Type Settings** panel (under the **Details** tab), and these will automatically be rendered as `` and `` tags when you export (or preview) your email to HTML via the plugin.

---

---
url: "/emailify/design/templates.md"
description: "Browse free Emailify-ready Figma templates from the New Email modal, duplicate them into your Figma account, and use them as a starting point for your own HTML emails."
---

# Duplicating Figma Templates

> Browse free Emailify-ready Figma templates from the New Email modal, duplicate them into your Figma account, and use them as a starting point for your own HTML emails.

### Video Tutorial: Use free Figma email templates to design HTML emails

This video walks through how to use free Figma email templates to design HTML emails with the Emailify Figma Plugin.
  [Embedded media](https://www.youtube.com/embed/lLCTEAAoCWY
)

[Video](/assets/videos/emailify/design/email-templates.mp4)

> **Tip:** The Figma templates included with Emailify are **100% free to use for your own personal and commercial projects**, and are designed to help you become more familiar with what kind of layouts and components the plugin can help you to create.

The **Figma Templates** tab in the **New Email** modal lets you browse free, pre-designed Emailify-ready Figma Community files from inside the plugin.

If you're looking for inspiration or would like to copy, paste, and customize pre-designed Emailify-ready layouts or components with your own brand and content, click the **Figma Templates** tab, then click any template thumbnail to open that Figma Community file.

Once the Figma Community file page loads, duplicate the Figma email template by clicking the **Open in Figma** button, then choose the Figma account you'd like the Figma file to be duplicated into as a new draft.

After you open the duplicated Figma file containing the Emailify frame, re-run the Emailify plugin to preview it as HTML. You can customize the design however you like, or copy and paste specific Row layers or elements into your own Emailify frame to mix and match parts from different Emailify starter templates.

> **Note:** The **Figma Templates** tab opens full Figma Community files. If you want Emailify to create a new frame directly in your current file, use [Layouts](/emailify/design/starter-layouts) instead.

---

---
url: "/emailify/design/text-background-color.md"
description: "You can customize the backgrounds of your Emailify text layers by setting a solid background color on them via the plugin settings panel."
---

# Setting a solid background color on text layers

> You can customize the backgrounds of your Emailify text layers by setting a solid background color on them via the plugin settings panel.

[Video](/assets/videos/emailify/design/text-background.mp4)

To set a solid background color on text layers in your email design by selecting a Figma text layer in your email while the **Settings** panel is open, pasting in your hex color value (for example, `#FFFBA8`) into the **Text Background Color** input field. This will automatically add a solid background color behind that text content in your HTML email.

> **Tip:** You can also optionally combine setting a background color on your text layer with [adding inner padding to your text layer](/emailify/design/text-padding), which will provide some additional padding around the text content and give the background area some padding.

---

---
url: "/emailify/design/text-indents.md"
description: "You can add text indentation or hanging punctuation to any text paragraphs in your email designs"
---

# Adding a text indents or hanging punctuation to your paragraphs

> You can add text indentation or hanging punctuation to any text paragraphs in your email designs

## Adding text indentation to your paragraph

[Video](/assets/videos/emailify/design/text-indentation.mp4)

You can add text indentation to the first line of any paragraph by selecting a Figma text layer in your email, then applying a Paragraph Indent value in the Figma **Type Settings** panel (under the **Details** tab).

## Adding hanging punctuation (negative text indentation) to your paragraph

[Video](/assets/videos/emailify/design/hanging-punctuation.mp4)

Figma doesn't allow negative paragraph indent values; so as a workaround, the plugin will still let you use a _negative_ text indent value by enabling the **Hanging Punctuation** setting on the text layer, which will use the Paragraph Indent value in the Figma **Type Settings** panel (under the **Details** tab) on the text layer as a _negative_ value, to get around Figma not allowing negative values in their UI.

---

---
url: "/emailify/design/text-padding.md"
description: "You can add inner text padding to any text layers in your email designs via the plugin settings panel"
---

# Adding inner padding to your text layers

> You can add inner text padding to any text layers in your email designs via the plugin settings panel

[Video](/assets/videos/emailify/design/text-padding.mp4)

You can optionally add inner text padding by selecting a Figma text layer in your email while the **Settings** panel is open, enabling the **Inner Padding** toggle, then adding any padding values you'd like to apply to the selected text layer.

This will add extra "inner" padding inside of your text layer when it's rendered to HTML, allowing you to specify padding values for certain text layers in your Column without affecting other layers.

> **Tip:** You can also optionally override any text layer padding on mobile by enabling the **Mobile Padding** toggle, then adding any padding values you'd like to apply to the selected text layer, which will only be visible when viewing your HTML email on mobile.

---

---
url: "/emailify/design/wrappers.md"
description: "You can wrap multiple **🚣 Row** inside of the special **🎁 Wrapper** layer type in the cases where you need to have outer padding and background color around certain rows."
---

# Wrapping multiple rows in your email designs

> You can wrap multiple **🚣 Row** inside of the special **🎁 Wrapper** layer type in the cases where you need to have outer padding and background color around certain rows.

[Video](/assets/videos/emailify/design/add-row-wrapper.mp4)

The quickest way to add a new Wrapper is to use the **Quick Add Element** dropdown at the bottom of the plugin to insert a new blank Wrapper layer to your email design, when your Emailify email Figma frame is selected.

This will add a brand new empty Wrapper layer with a single empty Row layer inside of it, which you can start populating with content layers, or drag and drop existing Row layers from your email into.

> **Warning:** **🎁 Wrapper** layers can only be added directly to an ✉️ **Email** frame, and can only contain one or more **🚣 Row** layers inside of it.

---

---
url: "/emailify/elements/button.md"
description: "Add CTA buttons with link settings for Emailify email exports."
---

# Button

> Add CTA buttons with link settings for Emailify email exports.

The 🔗 **Button** element layer lets you include CTA (call to action) links into your emails with the style of a button. These can be styled in Figma to match the size, color, line-height, letter-spacing etc of your designs. You can also

## Add hyperlinks to button layers

You can add hyperlinks to your 🔗 **Button** layers by clicking the **Settings** button in the Emailify plugin header, then clicking your 🔗 **Button** layer; this lets you paste your URL into the link input field.

This URL will automatically be converted into an `` link tag when the email is exported out to exported HTML.

## Using the "Quick Add" feature to add new Emailify layers

[Video](/assets/videos/emailify/element-contexts.mp4)

Emailify lets you build out your designs using special layout blocks and content elements that are added as layers to your Figma designs, and allows them to be exported out to HTML from the plugin.

To add these layout blocks and content elements, ensure that you have created at least one Emailify frame, and then click on that frame to automatically reveal the **Quick Add Element** context menu at the bottom of the plugin, then click the desired element, and click the **Add +** button to add it to the selected layer.

> **Tip:** The options that are available in the context menu will change based on your current Figma layer selection.

> **Tip:** You can [apply settings in bulk](/emailify/design/settings#apply-settings-in-bulk) by opening **Settings**, then selecting multiple Emailify layers of the same type in Figma. Any setting you change will be applied to all selected layers.

---

---
url: "/emailify/elements/carousel.md"
description: "Add interactive image carousels with optional thumbnails and Outlook fallback details."
---

# Image Carousel

> Add interactive image carousels with optional thumbnails and Outlook fallback details.

The 🎠 **Image Carousel** element layer lets you add an interactive image carousel that can be navigated with left/right arrows and (optional) thumbnails.

> **Tip:** **Customise image carousel thumbnails**. You can customise the appearance of your 🎠 **Image Carousel** component's thumbnails by clicking the **Settings** button in the Emailify plugin header, then clicking your 🎠 **Image Carousel** layer; this will allow you modify things like the thumbnail size, if it's shown on desktop/mobile, and other things like active/hover border colors and item spacing.

> **Warning:** **Outlook only displays the first carousel image.** Outlook does not support the features required for an interactive image carousel. Use your most important image as the first slide, and do not place essential information only in later slides.

## 🎠 Image Carousel Elements

These options will be visible when an 🎠 **Image Carousel** Figma layer is selected:

- 🎠 [Carousel Image](#carousel-image)

### Carousel Image

The **🎠📷 Carousel Image** element allow you to add more image slides to your existing 🎠 **Image Carousel** parent elements.

## Using the "Quick Add" feature to add new Emailify layers

[Video](/assets/videos/emailify/element-contexts.mp4)

Emailify lets you build out your designs using special layout blocks and content elements that are added as layers to your Figma designs, and allows them to be exported out to HTML from the plugin.

To add these layout blocks and content elements, ensure that you have created at least one Emailify frame, and then click on that frame to automatically reveal the **Quick Add Element** context menu at the bottom of the plugin, then click the desired element, and click the **Add +** button to add it to the selected layer.

> **Tip:** The options that are available in the context menu will change based on your current Figma layer selection.

> **Tip:** You can [apply settings in bulk](/emailify/design/settings#apply-settings-in-bulk) by opening **Settings**, then selecting multiple Emailify layers of the same type in Figma. Any setting you change will be applied to all selected layers.

---

---
url: "/emailify/elements/code.md"
description: "Insert custom code blocks between Emailify layout elements in the email frame."
---

# Custom Code

> Insert custom code blocks between Emailify layout elements in the email frame.

[Video](/assets/videos/emailify/content/custom-code-elements.mp4)

If you need to add any custom code _in between_ any elements in your ✉️ **Email** frame, such as platform specific template/conditional tags, you can insert a **🧑‍💻 Custom Code** layer to do this. It will be added as a Figma text layer, which you can paste your custom code into, and have that rendered out as plain code when the email gets exported to HTML.

> **Warning:** **Code layers can't be nested**. **🧑‍💻 Custom Code** layers can only be added directly to an ✉️ **Email** frame as a way to inject custom code blocks _between_ 🚣 Content Row, 🦸 Hero and 🎁 Row Wrapper layers in your email design.

## Using the "Quick Add" feature to add new Emailify layers

[Video](/assets/videos/emailify/element-contexts.mp4)

Emailify lets you build out your designs using special layout blocks and content elements that are added as layers to your Figma designs, and allows them to be exported out to HTML from the plugin.

To add these layout blocks and content elements, ensure that you have created at least one Emailify frame, and then click on that frame to automatically reveal the **Quick Add Element** context menu at the bottom of the plugin, then click the desired element, and click the **Add +** button to add it to the selected layer.

> **Tip:** The options that are available in the context menu will change based on your current Figma layer selection.

---

---
url: "/emailify/elements/column.md"
description: "Use content columns inside rows to hold text, images, buttons, and other elements."
---

# Content Column

> Use content columns inside rows to hold text, images, buttons, and other elements.

**🏛️ Content** elements and are used to create a single or multiple column layouts which hold the actual content layers.

> **Warning:** **Column layers can't be nested**. **🏛️ Column** elements can only be added directly inside of 🚣 **Row** layers. If you need multiple rows of columns, you need to create brand new 🚣 **Row** for each row of columns you need.

> **Note:** **🏛️ Column layers can include background images and gradients** in Emailify preview and HTML-rendered exports. You can also add image and/or gradient background fills to top level 🚣 **Row**, 🦸 **Hero** and 🎁 **Wrapper** layers. Raw `mjml` and `loops` exports still omit Column background image attributes.

## Column Content Elements

These options will be visible when a 🏛️ **Column** Figma layer is selected:

- ✍️ [Text](/emailify/elements/text)
- 📷 [Image](/emailify/elements/image)
- 🔗 [Button](/emailify/elements/button)
- 📐 [Spacer](/emailify/elements/spacer)
- ➖ [Divider Line](/emailify/elements/divider)
- 🧾 [Spreadsheet (Import)](/emailify/elements/spreadsheet)
- 🪑 [Data Table](/emailify/elements/table)
- 🍔 [Navigation Links](/emailify/elements/navbar)
- 🐦 [Social](/emailify/elements/social)
- 🎠 [Image Carousel](/emailify/elements/carousel)

## Using the "Quick Add" feature to add new Emailify layers

[Video](/assets/videos/emailify/element-contexts.mp4)

Emailify lets you build out your designs using special layout blocks and content elements that are added as layers to your Figma designs, and allows them to be exported out to HTML from the plugin.

To add these layout blocks and content elements, ensure that you have created at least one Emailify frame, and then click on that frame to automatically reveal the **Quick Add Element** context menu at the bottom of the plugin, then click the desired element, and click the **Add +** button to add it to the selected layer.

> **Tip:** The options that are available in the context menu will change based on your current Figma layer selection.

---

---
url: "/emailify/elements/divider.md"
description: "Add divider lines to separate content inside Emailify layouts."
---

# Divider Line

> Add divider lines to separate content inside Emailify layouts.

The **➖ Divider Line**  element layer lets you create a solid color divider line between your content elements, this can be used as a visual way to break up content inside of a column or hero block.

## Using the "Quick Add" feature to add new Emailify layers

[Video](/assets/videos/emailify/element-contexts.mp4)

Emailify lets you build out your designs using special layout blocks and content elements that are added as layers to your Figma designs, and allows them to be exported out to HTML from the plugin.

To add these layout blocks and content elements, ensure that you have created at least one Emailify frame, and then click on that frame to automatically reveal the **Quick Add Element** context menu at the bottom of the plugin, then click the desired element, and click the **Add +** button to add it to the selected layer.

> **Tip:** The options that are available in the context menu will change based on your current Figma layer selection.

---

---
url: "/emailify/elements/email.md"
description: "Start with the Email frame and add rows, heroes, wrappers, and custom code."
---

# Email Frame

> Start with the Email frame and add rows, heroes, wrappers, and custom code.

Every email design in Emailify starts with a special blank email Figma frame, which you'll be able to fill up with Emailify layout elements.

## Email Frame Elements

These options will be visible when an ✉️ **Email** Figma layer is selected:

- 🚣 [Content Row](/emailify/elements/row)
- 🦸 [Hero](/emailify/elements/hero)
- 🎁 [Row Wrapper](/emailify/elements/wrapper)
- 🧑‍💻 [Custom Code](/emailify/elements/code)

> **Note:** **Applying background colors/images/gradients to ✉️ Email frame layers won't be included.** However, you can add solid color, image and/or gradient background fills to any top level 🚣 **Row**, 🦸 **Hero** or 🎁 **Wrapper**.

## Using the "Quick Add" feature to add new Emailify layers

[Video](/assets/videos/emailify/element-contexts.mp4)

Emailify lets you build out your designs using special layout blocks and content elements that are added as layers to your Figma designs, and allows them to be exported out to HTML from the plugin.

To add these layout blocks and content elements, ensure that you have created at least one Emailify frame, and then click on that frame to automatically reveal the **Quick Add Element** context menu at the bottom of the plugin, then click the desired element, and click the **Add +** button to add it to the selected layer.

> **Tip:** The options that are available in the context menu will change based on your current Figma layer selection.

---

---
url: "/emailify/elements/hero.md"
description: "Use Hero sections for single-column content with background images and content elements."
---

# Hero

> Use Hero sections for single-column content with background images and content elements.

**🦸 Hero** elements are a special type of content container that are able to have a background image added to its own frame element.

> **Warning:** **Hero layers can't be nested or contain columns**. **🦸 Hero** elements can only be added directly inside of ✉️ **Email** layers. **🦸 Hero** elements cannot contain any **🏛️ Column** layers, as it doesn't support multiple column layouts; instead, content layers are added directly inside of the frame, without needing any **🏛️ Column** layers (unlike a **🚣 Row** element).

> **Tip:** **Adding background images and/or gradients**. You can add image and/or gradient background fills to 🚣 **Row**, 🏛️ **Column**, 🦸 **Hero** and 🎁 **Wrapper** layers. Note that raw `mjml` and `loops` exports still omit Column background image attributes.

## Hero Content Elements

These options will be visible when a 🦸 **Hero** Figma layer is selected:

- ✍️ [Text](/emailify/elements/text)
- 📷 [Image](/emailify/elements/image)
- 🔗 [Button](/emailify/elements/button)
- 📐 [Spacer](/emailify/elements/spacer)
- ➖ [Divider Line](/emailify/elements/divider)
- 🧾 [Spreadsheet (Import)](/emailify/elements/spreadsheet)
- 🪑 [Data Table](/emailify/elements/table)
- 🍔 [Navigation Links](/emailify/elements/navbar)
- 🐦 [Social](/emailify/elements/social)
- 🎠 [Image Carousel](/emailify/elements/carousel)

## Using the "Quick Add" feature to add new Emailify layers

[Video](/assets/videos/emailify/element-contexts.mp4)

Emailify lets you build out your designs using special layout blocks and content elements that are added as layers to your Figma designs, and allows them to be exported out to HTML from the plugin.

To add these layout blocks and content elements, ensure that you have created at least one Emailify frame, and then click on that frame to automatically reveal the **Quick Add Element** context menu at the bottom of the plugin, then click the desired element, and click the **Add +** button to add it to the selected layer.

> **Tip:** The options that are available in the context menu will change based on your current Figma layer selection.

---

---
url: "/emailify/elements/image.md"
description: "Add images with styling and hyperlink support in Emailify."
---

# Image

> Add images with styling and hyperlink support in Emailify.

The 📷 **Image** element layer lets you include image content into your emails. These can be styled in Figma to swap out the image content, or add styles like border radiuses or image fill overlays.

## Add hyperlinks to image layers

You can add hyperlinks to your 📷 **Image** layers by clicking the **Settings** button in the Emailify plugin header, then clicking your 📷 **Image** layer; this lets you paste your URL into the link input field.

This URL will automatically be converted into an `` link tag when the email is exported out to exported HTML.

## Using the "Quick Add" feature to add new Emailify layers

[Video](/assets/videos/emailify/element-contexts.mp4)

Emailify lets you build out your designs using special layout blocks and content elements that are added as layers to your Figma designs, and allows them to be exported out to HTML from the plugin.

To add these layout blocks and content elements, ensure that you have created at least one Emailify frame, and then click on that frame to automatically reveal the **Quick Add Element** context menu at the bottom of the plugin, then click the desired element, and click the **Add +** button to add it to the selected layer.

> **Tip:** The options that are available in the context menu will change based on your current Figma layer selection.

> **Tip:** You can [apply settings in bulk](/emailify/design/settings#apply-settings-in-bulk) by opening **Settings**, then selecting multiple Emailify layers of the same type in Figma. Any setting you change will be applied to all selected layers.

---

---
url: "/emailify/elements/navbar.md"
description: "Add navigation link menus with per-link URL settings."
---

# Navigation Links

> Add navigation link menus with per-link URL settings.

The **🍔 Navigation Links** element layer lets you include a menu bar containing navigation links.

## 🔗 Navigation Links Elements

These options will be visible when a 🍔 **Navigation Links** Figma layer is selected:

- 🔗 [Navigation Link](#navigation-link)

### Navigation Link

Navigation links allow you to add more menu items to your existing 🍔 **Navigation Links** elements.

#### Add hyperlinks to navigation link layers

You can add hyperlinks to your 🔗 Navigation Link layers by clicking the **Settings** button in the Emailify plugin header, then clicking your 🔗 Navigation Link layer; this lets you paste your URL into the link input field.

This URL will automatically be converted into an `` link tag when the email is exported out to exported HTML.

## Using the "Quick Add" feature to add new Emailify layers

[Video](/assets/videos/emailify/element-contexts.mp4)

Emailify lets you build out your designs using special layout blocks and content elements that are added as layers to your Figma designs, and allows them to be exported out to HTML from the plugin.

To add these layout blocks and content elements, ensure that you have created at least one Emailify frame, and then click on that frame to automatically reveal the **Quick Add Element** context menu at the bottom of the plugin, then click the desired element, and click the **Add +** button to add it to the selected layer.

> **Tip:** The options that are available in the context menu will change based on your current Figma layer selection.

> **Tip:** You can [apply settings in bulk](/emailify/design/settings#apply-settings-in-bulk) by opening **Settings**, then selecting multiple Emailify layers of the same type in Figma. Any setting you change will be applied to all selected layers.

---

---
url: "/emailify/elements/row.md"
description: "Use rows as primary layout containers and optionally render rows as images."
---

# Content Row

> Use rows as primary layout containers and optionally render rows as images.

**🚣 Row** elements are the main basic building blocks inside of an Emailify ✉️ **Email** frame. These can only be added directly inside of the main email frame, and are just used as containers for 🏛️ **Content** elements.

> **Warning:** **Rows can't be nested**. **🚣 Row** layers can only be added directly to an ✉️ **Email** frame, and can only contain one or more 🏛️ **Column** layers inside of it.

> **Tip:** **Adding background images and/or gradients**. You can add image and/or gradient background fills to 🚣 **Row**, 🏛️ **Column**, 🦸 **Hero** and 🎁 **Wrapper** layers. Note that raw `mjml` and `loops` exports still omit Column background image attributes.

## Content Row Elements

These options will be visible when a 🚣 **Row** Figma layer is selected:

- 🏛️ [Content Column](/emailify/elements/column)

## Using the "Quick Add" feature to add new Emailify layers

[Video](/assets/videos/emailify/element-contexts.mp4)

Emailify lets you build out your designs using special layout blocks and content elements that are added as layers to your Figma designs, and allows them to be exported out to HTML from the plugin.

To add these layout blocks and content elements, ensure that you have created at least one Emailify frame, and then click on that frame to automatically reveal the **Quick Add Element** context menu at the bottom of the plugin, then click the desired element, and click the **Add +** button to add it to the selected layer.

> **Tip:** The options that are available in the context menu will change based on your current Figma layer selection.

## Rendering a row as an image (instead of HTML)

[Video](/assets/videos/emailify/emailify-render-image.mp4)

For whatever reason, if you want to ensure that a certain row is rendered out as a full width image (instead of rich text/HTML content), you can do this by clicking any row in your Emailify container frame with the settings panel open, then clicking the **Render as image (instead of HTML)** toggle.

You can [visually preview your image render](/emailify/design/preview) using the preview HTML feature in the plugin.

---

---
url: "/emailify/elements/social.md"
description: "Add social icon sets with preset or custom icons and link settings."
---

# Social Icons

> Add social icon sets with preset or custom icons and link settings.

The 🐦 **Social** element layer lets you add linkable icons for any social network or platform.

## Social Elements

These options will be visible when a 🐦 **Social** Figma layer is selected:

- 🔗 [Social Icon Link](#social-icon-link)

### Social Icon Link

Social icon links allow you to add more linkable social icons to your existing 🐦 **Social** elements. There are a number of presets for popular social networks you can select from:

> **Tip:** **You can also add your own social icons**. If the platform icon you'd like to use isn't included in the preset options, you can manually swap out the contents of any 🔗 **Social Icon Link** Figma frame layer and replace them with a new social icon vector.

- 🔗 Facebook
- 🔗 Twitter
- 🔗 Instagram
- 🔗 YouTube
- 🔗 TikTok
- 🔗 LinkedIn
- 🔗 Github
- 🔗 Pinterest
- 🔗 Snap
- 🔗 SoundCloud
- 🔗 Twitch
- 🔗 Tumblr
- 🔗 Spotify
- 🔗 Slack
- 🔗 Discord
- 🔗 Medium
- 🔗 PayPal
- 🔗 Flickr
- 🔗 LINE
- 🔗 WeChat
- 🔗 VK
- 🔗 Reddit
- 🔗 Behance

## Add hyperlinks to social icon link layers

You can add hyperlinks to your 🔗 Social Icon Link layers by clicking the **Settings** button in the Emailify plugin header, then clicking your 🔗 Social Icon Link layer; this lets you paste your URL into the link input field.

This URL will automatically be converted into an `` link tag when the email is exported out to exported HTML.

## Using the "Quick Add" feature to add new Emailify layers

[Video](/assets/videos/emailify/element-contexts.mp4)

Emailify lets you build out your designs using special layout blocks and content elements that are added as layers to your Figma designs, and allows them to be exported out to HTML from the plugin.

To add these layout blocks and content elements, ensure that you have created at least one Emailify frame, and then click on that frame to automatically reveal the **Quick Add Element** context menu at the bottom of the plugin, then click the desired element, and click the **Add +** button to add it to the selected layer.

> **Tip:** The options that are available in the context menu will change based on your current Figma layer selection.

> **Tip:** You can [apply settings in bulk](/emailify/design/settings#apply-settings-in-bulk) by opening **Settings**, then selecting multiple Emailify layers of the same type in Figma. Any setting you change will be applied to all selected layers.

---

---
url: "/emailify/elements/spacer.md"
description: "Insert spacer elements to add custom vertical gaps between content."
---

# Spacer

> Insert spacer elements to add custom vertical gaps between content.

The **📐 Spacer** element layer lets you add an extra amount of space between elements inside of your content areas, where the default Figma auto-layout item spacing distribution needs to be modified for a particular part of the content (for example, you would like to add extra space just before a CTA button).

> **Tip:** **Add even spacing using Figma auto-layout**. Where possible, using Figma's [auto-layout item spacing](https://help.figma.com/hc/en-us/articles/360040451373-Explore-auto-layout-properties#spacing-between) to evenly create spacing between your content is preferable to using 📐 **Spacer** elements, as this will reduce the amount of extra code needed to create spacing.

## Using the "Quick Add" feature to add new Emailify layers

[Video](/assets/videos/emailify/element-contexts.mp4)

Emailify lets you build out your designs using special layout blocks and content elements that are added as layers to your Figma designs, and allows them to be exported out to HTML from the plugin.

To add these layout blocks and content elements, ensure that you have created at least one Emailify frame, and then click on that frame to automatically reveal the **Quick Add Element** context menu at the bottom of the plugin, then click the desired element, and click the **Add +** button to add it to the selected layer.

> **Tip:** The options that are available in the context menu will change based on your current Figma layer selection.

---

---
url: "/emailify/elements/spreadsheet.md"
description: "Import spreadsheet data into HTML tables for email layouts."
---

# Spreadsheet (Import)

> Import spreadsheet data into HTML tables for email layouts.

### Video Tutorial: Import spreadsheets to tables for HTML emails in Figma

This video walks through how to automatically generate tables for HTML emails in Figma from XLSX/CSV or Google Sheets using the Emailify plugin.
[Embedded media](https://www.youtube.com/embed/CB3tRj0GtW4)

The **🧾 Spreadsheet** option lets you import data from a CSV/XLSX spreadsheet and automatically turn that content into an HTML table with multiple rows and columns. You can add additional rows or columns by copy/pasting the table row and/or table data cell Figma layers that are initially created.

Note that the **🧾 Spreadsheet** will render the same way on desktop and mobile, so please be mindful about the width of your table if you're adding more than a couple of table columns.

## Using the "Quick Add" feature to add new Emailify layers

[Video](/assets/videos/emailify/element-contexts.mp4)

Emailify lets you build out your designs using special layout blocks and content elements that are added as layers to your Figma designs, and allows them to be exported out to HTML from the plugin.

To add these layout blocks and content elements, ensure that you have created at least one Emailify frame, and then click on that frame to automatically reveal the **Quick Add Element** context menu at the bottom of the plugin, then click the desired element, and click the **Add +** button to add it to the selected layer.

> **Tip:** The options that are available in the context menu will change based on your current Figma layer selection.

---

---
url: "/emailify/elements/table.md"
description: "Build data tables with rows and columns for email content."
---

# Data Table

> Build data tables with rows and columns for email content.

The **🪑 Data Table** element layer lets you render content into an HTML table with multiple rows and columns. You can add additional rows or columns by copy/pasting the table row and/or table data cell Figma layers that are initially created.

By default, the **🪑 Data Table** will render the same way on desktop and mobile, so please be mindful about the width of your table if you're adding more than a couple of table columns.

For compact icon/text tables or checklist-style rows, select the main **🪑 Data Table** layer, open **Settings**, enable **Mobile Alignment**, and choose **Center** to center the actual table structure on mobile instead of relying on left/right padding. This keeps the table's icon/text spacing intact while centering the grouped content.

## Using the "Quick Add" feature to add new Emailify layers

[Video](/assets/videos/emailify/element-contexts.mp4)

Emailify lets you build out your designs using special layout blocks and content elements that are added as layers to your Figma designs, and allows them to be exported out to HTML from the plugin.

To add these layout blocks and content elements, ensure that you have created at least one Emailify frame, and then click on that frame to automatically reveal the **Quick Add Element** context menu at the bottom of the plugin, then click the desired element, and click the **Add +** button to add it to the selected layer.

> **Tip:** The options that are available in the context menu will change based on your current Figma layer selection.

---

---
url: "/emailify/elements/text.md"
description: "Add rich text with inline hyperlinks using Figma link tooling."
---

# Text

> Add rich text with inline hyperlinks using Figma link tooling.

The ✍️ **Text** element layer lets you add rich text content into your emails. These can be styled in Figma to match the size, color, line-height, letter-spacing etc of your designs.

## Add hyperlinks to text layer content

You can add hyperlinks inside of your ✍️ **Text** layers by highlighting the selection of text you would like to link, and then using the [native Figma hyperlink feature](https://help.figma.com/hc/en-us/articles/360045942953-Add-links-to-text) to include your URL.

This URL will automatically be converted into an `` link tag when the email is exported out to exported HTML.

## Using the "Quick Add" feature to add new Emailify layers

[Video](/assets/videos/emailify/element-contexts.mp4)

Emailify lets you build out your designs using special layout blocks and content elements that are added as layers to your Figma designs, and allows them to be exported out to HTML from the plugin.

To add these layout blocks and content elements, ensure that you have created at least one Emailify frame, and then click on that frame to automatically reveal the **Quick Add Element** context menu at the bottom of the plugin, then click the desired element, and click the **Add +** button to add it to the selected layer.

> **Tip:** The options that are available in the context menu will change based on your current Figma layer selection.

---

---
url: "/emailify/elements/wrapper.md"
description: "Wrap multiple rows with padding or backgrounds using Wrapper sections."
---

# Wrapper

> Wrap multiple rows with padding or backgrounds using Wrapper sections.

If you need to wrap multiple **🚣 Row** layers into a padded section with its own background color, you can move them inside of a **🎁 Wrapper** layer to achieve this effect.

> **Warning:** **Wrapper layers can't be nested**. **🎁 Wrapper** layers can only be added directly to an ✉️ **Email** frame, and can only contain one or more **🚣 Row** layers inside of it.

> **Tip:** **Adding background images and/or gradients**. You can add image and/or gradient background fills to 🚣 **Row**, 🏛️ **Column**, 🦸 **Hero** and 🎁 **Wrapper** layers. Note that raw `mjml` and `loops` exports still omit Column background image attributes.

### Wrapper Elements

These options will be visible when a 🎁 **Wrapper** Figma layer is selected:

- 🚣 [Row](/emailify/elements/row)

## Using the "Quick Add" feature to add new Emailify layers

[Video](/assets/videos/emailify/element-contexts.mp4)

Emailify lets you build out your designs using special layout blocks and content elements that are added as layers to your Figma designs, and allows them to be exported out to HTML from the plugin.

To add these layout blocks and content elements, ensure that you have created at least one Emailify frame, and then click on that frame to automatically reveal the **Quick Add Element** context menu at the bottom of the plugin, then click the desired element, and click the **Add +** button to add it to the selected layer.

> **Tip:** The options that are available in the context menu will change based on your current Figma layer selection.

---

---
url: "/emailify/export/amp.md"
description: "Use Emailify's AMP Email export option to download AMP for Email HTML from Figma."
---

# Exporting your emails as AMP Email

> Use Emailify's AMP Email export option to download AMP for Email HTML from Figma.

If you want to export an AMP for Email version of your design, click the **Export HTML** button in Emailify, select the email(s) you'd like to export, choose **AMP Email** from the export dropdown, then click **Export To AMP**.

After Emailify has finished processing your export, click the **Download your .zip file** button to save the AMP email package to your computer.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

Each exported email folder will include an `index.html` file containing the AMP email code, along with a `plain-text-version.txt` file and any exported image assets.

> **Warning:** AMP emails only work when they are sent through a supported email platform or service provider and opened in an email client that supports AMP for Email.

> **Tip:** For best results when sending AMP emails, make sure your exported images are available from hosted HTTPS URLs. You can do this by enabling image uploads in Emailify or by using your own hosted image base URL.

> **Note:** Unlike the MJML Source Code export option, AMP Email exports do not include an `index.mjml` file. Emailify converts the generated email markup directly into AMP email HTML for the exported `index.html` file.

---

---
url: "/emailify/export/global-code.md"
description: "For advanced users who need to inject small snippets of custom HTML or CSS code into your exported emails, you can do this via the Settings panel in the plugin."
---

# Injecting global custom HTML/CSS code into your email

> For advanced users who need to inject small snippets of custom HTML or CSS code into your exported emails, you can do this via the Settings panel in the plugin.

[Video](/assets/videos/emailify/export/global-html-css.mp4)

For any reason, if you needed to add some very specific custom CSS into your email, or some HTML into the `` tag, you can do this via the Emailify plugin by selecting your parent email container Figma frame, then clicking the **Settings** button and adding your code to be injected as needed.

The **Add Mobile CSS Rules** field will add these CSS rules inside of the `@media` tag for mobile styles, where any screen sizes below the width of your Figma frame will have these styles applied (you will need to use `!important` for any CSS rules applied to this area).

The **Add Inline CSS Rules** field will automatically inline any CSS properties onto the HTML selector that you specify (for example, adding `p { color: blue }` would inline `style="color: blue;"` on any `` tags in your exported HTML email code).

The **Add Head Tag HTML** field will automatically inject any HTML you write here into the `` tag of your exported HTML email, which may be useful if your email marketing platform gives you the option of adding special tracking tags or any other HTML tags that need to be added to the `` tag of your HTML.

> **Tip:** Emailify will automatically minify HTML exports to reduce the file size as much as possible, but įf you're adding custom code where it's important for CSS classes not be modified due to interactivity via pseudo-classes, you can skip minification by ensuring that your custom CSS contains at least one `#interactive:checked` style rule (for example, `#interactive:checked ~ .content { display: block; }`), and the plugin will automatically turn off minification for that email.

> **Tip:** You can [apply settings in bulk](/emailify/design/settings#apply-settings-in-bulk) by opening **Settings**, then selecting multiple Emailify layers of the same type in Figma. Any setting you change will be applied to all selected layers.

---

---
url: "/emailify/export/images.md"
description: "You have the option to self-host your exported image files, or have Emailify automatically upload them for you to our own CDN."
---

# Hosting your exported email images

> You have the option to self-host your exported image files, or have Emailify automatically upload them for you to our own CDN.

## Using the Emailify image hosting CDN (default)

[Video](/assets/videos/emailify/export/upload-image-urls.mp4)

For HTML exports, by default, Emailify will export your HTML emails with any images saved alongside the `.html` files, so you can upload them wherever you like.

However, if you want to use the Emailify CDN (content delivery network) to host your images for you, you can enable the **Upload Hosted Image URLs** toggle. This will upload your images and automatically swap out the URLs in your HTML email to point to the uploaded files.

> **Note:** If you're using any of the built-in email marketing platform [integrations](/emailify/integrations), your images will automatically be uploaded to the Emailify CDN.

## Uploading image assets to your own self-hosted Cloud Storage bucket

[Video](/assets/videos/emailify/export/webook-image-bucket-selector.mp4)

By default, Emailify will use the Emailify CDN (content delivery network) to host your images for you, but you can optionally swap this out to use your own cloud storage service bucket (for example, [AWS S3](https://aws.amazon.com/s3/) or [Backblaze B2](https://www.backblaze.com/cloud-storage) instead.

Once you select the image hosting service you'd like to use, you need to enter your bucket credentials and details below, which will automatically upload your image assets to your own bucket (and use your bucket image path in the `src` attributes of your HTML `` tags) during the export process:

- Region (for example, `us-east-1`)
- Access Key  (for example, `003g8...`)
- Secret Access Key (for example, `K454q...`)
- Bucket Name (for example, `my-emailify-bucket`)
- Bucket URL (for example, `https://my-emailify-bucket.s3.us-east-1.amazonaws.com/`)

> **Tip:** Please ensure any buckets you create are set to **Public** access view permissions, otherwise the uploaded image URLs won't be accessible when the HTML email is sent out

> **Note:** If you're using **Cloudflare R2**, paste your R2 S3 endpoint into the URL field using the format `https://accountid.r2.cloudflarestorage.com/` rather than `https://your-bucket.r2.cloudflarestorage.com/`. Emailify will combine that endpoint with your bucket name automatically when it creates the signed upload URLs.

### Supported self-hosted cloud storage service options in Emailify

You can self-host the exported images from Emailify in any of the S3-compatible object storage services below:

- [Amazon AWS S3](https://aws.amazon.com/s3/)
- [Backblaze B2](https://www.backblaze.com/cloud-storage)
- [Cloudflare R2](https://www.cloudflare.com/en-au/developer-platform/products/r2/)
- [Wasabi](https://wasabi.com/)
- [Google Cloud Storage](https://cloud.google.com/storage)
- [DigitalOcean Spaces](https://www.digitalocean.com/products/spaces)
- [Vultr](https://docs.vultr.com/products/cloud-storage/object-storage)
- [Tencent Cloud Object Storage](https://www.tencentcloud.com/product/cos)

## Setting a custom base URL to self-host the exported email images on your own server or CDN

By default, the src for all the images in your HTML exported by Emailify will be a relative img/ path (for example, `img/ceb3f891b78815897e04299f93eef255.jpg`); this lets you Review your email and upload a zip to certain platforms like MailChimp, which will automatically upload the images and update the src URLs for you.

However, if you're using a platform that doesn't support this feature or are just hosting the images on your own custom server, you may want to set your own custom base URL instead.

### Per-Email Custom Base URL

[Video](/assets/videos/emailify/export/set-base-image-url.mp4)

You can set a custom base URL for individual emails by selecting your main email Figma frame, clicking the Settings button in the plugin header, then enabling the **Override "img/" Base Path** toggle and pasting in your own base URL path where the images are going to be hosted; enabling the custom base URL will automatically prefix all of the image src attributes for your images (for example, replacing `img/` with `https://your-custom-server.com/image/path/here/` in the exported HTML file).

This per-email setting is ideal when you need different base URLs for specific campaigns or want to override the global CDN setting for individual emails.

### Global Custom CDN Base URL

If you're consistently hosting images on the same custom CDN or server across all your emails, you can set a global custom base URL instead of configuring it for each email individually:

1. In the export settings panel, locate the CDN dropdown menu
2. Select **Custom Base URL** from the list of CDN options
3. Enter your custom base URL in the input field that appears (e.g., `https://cdn.example.com/images/`)
4. All exported emails will now use this base URL for image paths by default

The global custom CDN setting provides a convenient way to standardize image hosting across your email campaigns. If both global and per-email custom base URLs are configured, the per-email setting takes priority, giving you flexibility to override the global CDN when needed for specific campaigns.

> **Note:** Whether using global or per-email settings, ensure your custom base URL is publicly accessible and properly configured with CORS settings if required. The URL can include or omit a trailing slash, Emailify will handle both formats correctly.

### Why are images not rendering in my exported HTML email?

Email images usually fail to render after sending when the image files are not hosted at public online URLs, the email was sent from a tool that rewrote the HTML, or the recipient email client blocked remote images.

If you export HTML with local `img/` paths, the images are saved next to the `.html` file and must be uploaded with the email template or hosted separately. If you enable **Upload Hosted Image URLs**, Emailify uploads the images and swaps the HTML image URLs to hosted links automatically.

### Why do images work locally but not after sending?

A local HTML preview can load images from the exported `img/` folder on your computer. Once the email is sent, recipients cannot access files on your computer, so the images need to be hosted online or uploaded through your ESP.

Gmail and Outlook are not reliable ways to send exported custom HTML because they can change the markup and do not handle image hosting for a bulk HTML email workflow. Use an ESP or one of Emailify's built-in integrations instead.

### What should I check first if exported images are broken?

- Make sure the images are hosted at public `https://` URLs, or upload the exported `img/` folder through your ESP.
- Enable **Upload Hosted Image URLs** if you want Emailify to upload image assets for you.
- If using a custom bucket or CDN, make sure the bucket allows public read access for the uploaded image URLs.
- If an upload fails, check whether a VPN, firewall, proxy, or company network is blocking the upload request.
- Wait for Figma images to finish loading in the file before exporting.
- Remember that some email clients block remote images until the recipient chooses to display them.

---

---
url: "/emailify/export/make.md"
description: "Emailify includes a built-in integration with Make, which lets you upload HTML emails directly from the Figma plugin into your Make webhook, to create a custom upload flow with other platforms."
---

# Uploading your emails to Make (as a .zip file)

> Emailify includes a built-in integration with Make, which lets you upload HTML emails directly from the Figma plugin into your Make webhook, to create a custom upload flow with other platforms.

In the Emailify export panel, select the **Make** option from the dropdown list, then paste in a valid [Make webhook](https://help.make.com/webhooks) URL.

When you're ready, click the **Upload To Make** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your Make webhook URL.

---

---
url: "/emailify/export/mjml.md"
description: "You have the option to export your emails from Figma to [MJML](http://mjml.io/), which stands for Mailjet Markup Language, and is the source code for the `.html` that gets exported from Emailify."
---

# Exporting your emails to MJML

> You have the option to export your emails from Figma to [MJML](http://mjml.io/), which stands for Mailjet Markup Language, and is the source code for the `.html` that gets exported from Emailify.

### Video Tutorial: Export emails from Figma to MJML code

This video walks through how to export emails from the Figma Emailify plugin to MJML code.
[Embedded media](https://www.youtube.com/embed/_y9-1IvtlH8)

[Video](/assets/videos/emailify/export/export-mjml-code.mp4)

If you selected the **MJML Source Code** option when you exported your emails from the Emailify plugin, your exported email folder(s) will include an additional `index.mjml` alongside the regular HTML file.

## Choose MJML 4 or MJML 5

Use the **MJML Version** dropdown to choose whether the exported `index.mjml` uses **MJML 4** or **MJML 5** syntax. MJML 4 is selected by default for compatibility with existing MJML workflows; choose MJML 5 when your downstream compiler and tooling support MJML 5.

The companion `index.html` is compiled using the same MJML version selected for the source export.

> **Info:** The MJML Version setting only applies to **MJML Source Code** exports. MJML 5 is currently opt-in and does not change your other Emailify export formats.

Having the MJML file makes it really easy for a developer to open up the file in their code editor and make any manual updates or customisations, without needing to deal with the compiled HTML tables that are much harder to work with.

Once the updates have been made, they can be compiled into HTML by using one of a number of methods detailed in the [usage section](https://documentation.mjml.io/#usage) on the MJML documentation site.

> **Tip:** Emailify will automatically minify HTML exports to reduce the file size as much as possible, but if you're exporting emails with the **MJML Source Code** option selected, you can skip minification by turning _off_ the **Minify HTML** toggle, and the plugin will automatically turn off minification for those exported emails.

---

---
url: "/emailify/export/netlify.md"
description: "Emailify includes a built-in integration with Netlify, which lets you upload HTML emails directly from the Figma plugin into your Netlify sites list to use as a shareable preview link to send to stakeholders or anyone else for review/approval."
---

# Uploading your emails to Netlify (as a preview link)

> Emailify includes a built-in integration with Netlify, which lets you upload HTML emails directly from the Figma plugin into your Netlify sites list to use as a shareable preview link to send to stakeholders or anyone else for review/approval.

### Video Tutorial: Upload preview links for HTML emails from Figma to Netlify

This video walks through how to upload preview links for HTML emails from Figma to Netlify using Emailify.
[Embedded media](https://www.youtube.com/embed/YZAILKYkyUM)

In the Emailify export panel, select the **Netlify** option from the dropdown list, then paste in a valid Netlify [personal access token](https://app.netlify.com/user/applications) to connect Emailify and create a new Netlify site for the current Figma page.

You can optionally click on the **Change site name** link to update the auto-generated subdomain name from Netlify to something more personalized, and then click the **Refresh** icon button in Figma after saving it in Netlify to show the updated URL.

When you're ready, click the **Upload To Netlify** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your Netlify URL.

---

---
url: "/emailify/export/pdf.md"
description: "Emailify includes a built-in PDF export option, which lets you export images of your real rendered HTML emails directly from the Figma plugin to PDF files (and JPG images) to use as a shareable preview documents to send to stakeholders or anyone else for review/approval."
---

# Exporting your emails to PDF

> Emailify includes a built-in PDF export option, which lets you export images of your real rendered HTML emails directly from the Figma plugin to PDF files (and JPG images) to use as a shareable preview documents to send to stakeholders or anyone else for review/approval.

## Export emails to PDFs with separate JPG images

### Video Tutorial: Exporting your emails to PDF

This video walks through how to export HTML emails from the Figma Emailify plugin to PDF files.
[Embedded media](https://www.youtube.com/embed/Wmub2cYLHcQ)

[Video](/assets/videos/emailify/export/export-pdf.mp4)

In the Emailify export panel, select the **PDF Previews** option from the dropdown list, then when you're ready, click the **Export To PDF** button to start exporting the emails you've selected from Figma to PDFs, and then download your .zip file from the confirmation screen when it's completed.

### Add Clickable PDF Links

Enable the **Add Clickable PDF Links** toggle to preserve click/tap areas from your email's `` links in the exported PDF.

### Add Alt Text Comments

Enable the **Add Alt Text Comments** toggle to include image alt text as PDF comments for any images that contain `alt` attributes.

The export will also include static JPG images of your emails, too.

### Hide layers from PDF exports

If you want to exclude specific content from PDF previews without affecting your normal HTML exports, you can add `[pdf-hide]` anywhere in the Figma layer name that you want hidden.

For example, naming a layer `Footer Snippets [pdf-hide]` or `Legal Placeholder [pdf-hide]` will hide it from **PDF Previews** only.

Emailify only checks for this tag when generating **PDF Previews**, and if no layers contain `[pdf-hide]` it will skip the temporary export-clone step entirely.

This works well for things like dynamic snippet rows, content block placeholders, or any internal-only layers that shouldn't appear in compliance PDFs.

Emailify will temporarily hide any tagged layers only while the **PDF Previews** export is being generated, then clean up the temporary export copy automatically. Your original Figma layers stay unchanged, and the same layers will still export normally to HTML unless you hide them some other way.

## Export emails to PDFs (as Grayscale Wireframes)

### Video Tutorial: Export PDFs as Grayscale Wireframes

This video walks through how to export emails as grayscale wireframe previews from the Figma Emailify plugin to PDF files.
[Embedded media](https://www.youtube.com/embed/JCYA2oQ4O2U)

[Video](/assets/videos/emailify/export/grayscale-pdf-wireframe.mp4)

If you would prefer to export your PDF previews with "Lorem Ipsum" text, grayscale colors and blank images, you can optionally toggle the **Enable Wireframe Mode** setting, which will automatically convert your email designs into stripped back previews; sometimes this is useful for early client feedback.

The export will also include static JPG images of your emails, too.

---

---
url: "/emailify/export/presets.md"
description: "Emailify lets you save custom presets for API keys and settings for platforms like Mailchimp or Klaviyo, simplifying switching between environments or clients."
---

# Saving Custom Export Presets for Email Platforms

> Emailify lets you save custom presets for API keys and settings for platforms like Mailchimp or Klaviyo, simplifying switching between environments or clients.

[Video](/assets/videos/emailify/export/saved-presets.mp4)

If you're managing multiple environments for any export platform(s), like MailChimp or Klaviyo, etc; you may find it useful to save these different environments (for example, platform API keys and settings) as custom presets that you can Switch between as needed.

To do this, select the platform you would like to upload your HTML email to in the plugin's "Export" panel, enter your API key(s) and specify any other settings or toggles, then click on the **Presets List** icon button, enter a label (for example, `My MailChimp Client 1`) and then click the **Create Saved Preset** button to save your custom settings preset.

You can find this new option in the platforms drop down selector under the **Saved Presets** group, where selecting any of your saved presets will automatically populate the plugin export input fields with your saved settings.

> **Tip:** You can **Update** or **Delete** any saved presets by clicking the **Pencil** icon button when you have the preset option selected (as per the video screencap above).

> **Info:** Saved export presets are mirrored to Figma’s local storage for the current user, so as long as you’re logged into Figma on the same computer, you can reuse them across multiple Figma files.

---

---
url: "/emailify/export/sending.md"
description: "Guidance on sending exported HTML emails via ESPs and built-in Emailify integrations."
---

# Sending your HTML emails

> Guidance on sending exported HTML emails via ESPs and built-in Emailify integrations.

After you've exported the HTML, you need to use an email service provider (ESP) such as [Klaviyo](https://help.klaviyo.com/hc/en-us/articles/115005254068-Import-a-Custom-HTML-Template), [MailChimp](https://mailchimp.com/help/import-a-custom-html-template/) or one of the many other services that allow you to send HTML emails to a list.

If you aren't already using an ESP to deliver emails to your list, you need to sign up for one, which will help you host all of your image assets online and also handle delivering the send of your HTML email in bulk to a your email audience list.

## Can I send exported HTML directly from Gmail or Outlook?

No. Do not send exported Emailify HTML directly from Gmail or Outlook. They are not designed for importing and sending bulk custom HTML email, and they can rewrite or break the HTML. Images may also fail because email images need to be hosted online.

## What should I use instead of Gmail or Outlook?

Use an email service provider that supports custom HTML templates, such as Klaviyo, MailChimp, Campaign Monitor, Customer.io, HubSpot, Braze, SendGrid, Brevo, or another ESP. Emailify also includes built-in upload integrations for many ESPs listed below.

> **Warning:** **Do not use Outlook or Gmail to send your HTML email**. Unfortunately, you can't reliably send out HTML emails using Gmail or Outlook, as the images need to be hosted somewhere online, and the HTML will get messed up in the process using these email services that aren't designed for handling this type of bulk send.  Try signing up for a service like [Klaviyo](https://help.klaviyo.com/hc/en-us/articles/115005254068-Import-a-Custom-HTML-Template) or [MailChimp](https://mailchimp.com/help/import-a-custom-html-template/) to get started if you're new to sending HTML emails.

## Can I use Emailify with an ESP that does not have a built-in integration?

Yes, if that ESP lets you import or paste custom HTML.

1. Export your email from Emailify as HTML.
2. Keep **Upload Hosted Image URLs** enabled, or host the exported `img/` assets yourself.
3. In your ESP, create a custom HTML template or code-based email, then import the exported HTML or ZIP.
4. Add any platform-specific unsubscribe links, merge tags, footer requirements, or layout wrappers required by that ESP before sending.

If the platform does not accept custom HTML templates, Emailify cannot upload to it directly. In that case, use one of Emailify's built-in integrations below or switch to an ESP that supports custom HTML imports.

For image-hosting details, see [Hosting your exported email images](/emailify/export/images). If your platform is already covered in the docs, check the matching guide in [Emailify Video Tutorials](/emailify/tutorials).

## Built-In Emailify Platform Integrations

These are the email service providers/platforms that Emailify has built-in export/upload integrations with:

### Video Tutorial: Export HTML emails from Figma to MailChimp

This video walks through how to upload HTML emails from the Figma Emailify plugin to MailChimp.
[Embedded media](https://www.youtube.com/embed/FgPl-a_z59A)

### Video Tutorial: Export HTML emails from Figma to Campaign Monitor

This video walks through how to upload HTML emails from the Figma Emailify plugin to Campaign Monitor.
[Embedded media](https://www.youtube.com/embed/vyAsh8v8GLE)

### Video Tutorial: Export HTML emails from Figma to Klaviyo

This video walks through how to upload HTML emails from the Figma Emailify plugin to Klaviyo.
[Embedded media](https://www.youtube.com/embed/7OCqmOsrAYk)

### Video Tutorial: Add dynamic Klaviyo product feeds to custom HTML email designs in Figma

This video walks through how to add custom Klaviyo product feeds into custom HTML templates with the Emailify Figma Plugin.
[Embedded media](https://www.youtube.com/embed/PaRSIxVLYlo)

### Video Tutorial: Export HTML emails from Figma to Postmark

This video walks through how to upload HTML emails from the Figma Emailify plugin to Postmark.
[Embedded media](https://www.youtube.com/embed/BD7dghnkeKM)

### Video Tutorial: Export HTML emails from Figma to Salesforce Marketing Cloud

This video walks through how to upload HTML emails from the Figma Emailify plugin to Salesforce Marketing Cloud.
[Embedded media](https://www.youtube.com/embed/Q4QD3GTxD9s)

### Video Tutorial: Export HTML emails from Figma to Pardot (Marketing Cloud Account Engagement)

This video walks through how to upload HTML emails from the Figma Emailify plugin to Pardot.
[Embedded media](https://www.youtube.com/embed/VtVuPmb57cw)

### Video Tutorial: Export HTML emails from Figma to SendGrid

This video walks through how to upload HTML emails from the Figma Emailify plugin to SendGrid.
[Embedded media](https://www.youtube.com/embed/cYYVO_3HT1U)

### Video Tutorial: Export HTML emails from Figma to Mailjet

This video walks through how to upload HTML emails from the Figma Emailify plugin to Mailjet.
[Embedded media](https://www.youtube.com/embed/LwkH-A3pAYE)

### Video Tutorial: Export HTML emails from Figma to SendPulse

This video walks through how to upload HTML emails from the Figma Emailify plugin to SendPulse.
[Embedded media](https://www.youtube.com/embed/lLH2aHdVSN4)

### Video Tutorial: Export HTML emails from Figma to Brevo

This video walks through how to upload HTML emails from the Figma Emailify plugin to Brevo (formerly called "Sendinblue").
[Embedded media](https://www.youtube.com/embed/8BJN16U_IHg)

### Video Tutorial: Export HTML emails from Figma to Mailgun

This video walks through how to upload HTML emails from the Figma Emailify plugin to Mailgun.
[Embedded media](https://www.youtube.com/embed/hrsveAlzzZo)

### Video Tutorial: Export HTML emails from Figma to Customer.io

This video walks through how to upload HTML emails from the Figma Emailify plugin to Customer.io.
[Embedded media](https://www.youtube.com/embed/KQyaQy6gYps)

### Video Tutorial: Export HTML emails from Figma to HubSpot

This video walks through how to upload HTML emails from the Figma Emailify plugin to HubSpot.
[Embedded media](https://www.youtube.com/embed/AOSWquXuhRA)

### Video Tutorial: Export HTML emails from Figma to Braze

This video walks through how to upload HTML emails from the Figma Emailify plugin to Braze.
[Embedded media](https://www.youtube.com/embed/6GnG-rTdQl8)

### Video Tutorial: Export HTML emails from Figma to ActiveCampaign

This video walks through how to upload HTML emails from the Figma Emailify plugin to ActiveCampaign.
[Embedded media](https://www.youtube.com/embed/TgCROp1QHsg)

### Video Tutorial: Export HTML emails from Figma to OneSignal

This video walks through how to upload HTML emails from the Figma Emailify plugin to OneSignal.
[Embedded media](https://www.youtube.com/embed/haQHdEan54Q)

### Video Tutorial: Export HTML emails from Figma to Selzy

This video walks through how to upload HTML emails from the Figma Emailify plugin to Selzy.
[Embedded media](https://www.youtube.com/embed/5w2qyBTYToY)

### Video Tutorial: Export HTML emails from Figma to Omnisend

This video walks through how to upload HTML emails from the Figma Emailify plugin to Omnisend.
[Embedded media](https://www.youtube.com/embed/Zl8DZWbyrt8)

### Export HTML emails from Figma to Zoho Campaigns

This video walks through how to upload HTML emails from the Figma Emailify plugin to Zoho Campaigns.
[Embedded media](https://www.youtube.com/embed/UQ2va7H6RN0)

### Export HTML emails from Figma to Stripo

This video walks through how to upload HTML emails from the Figma Emailify plugin to Stripo.
[Embedded media](https://www.youtube.com/embed/98oeeXB7FNI)

### Export HTML emails from Figma to MailerLite

This video walks through how to upload HTML emails from the Figma Emailify plugin to MailerLite.
[Embedded media](https://www.youtube.com/embed/5eKKe7M2-yo)

### Export HTML emails from Figma to EmailOctopus

This video walks through how to upload HTML emails from the Figma Emailify plugin to EmailOctopus.
[Embedded media](https://www.youtube.com/embed/SxoknO-JXSM)

### Export HTML emails from Figma to Loops.so

This video walks through how to upload HTML emails from the Figma Emailify plugin to Loops.so.
[Embedded media](https://www.youtube.com/embed/tPKd8R7gH1Q)

### Export HTML emails from Figma to GetResponse

This video walks through how to upload HTML emails from the Figma Emailify plugin to GetResponse.
[Embedded media](https://www.youtube.com/embed/_WtsjQmQV-I)

### Export HTML emails from Figma to ConvertKit

This video walks through how to upload HTML emails from the Figma Emailify plugin to ConvertKit.
[Embedded media](https://www.youtube.com/embed/I8kwRdvwf8k)

### Export HTML emails from Figma to Constant Contact

This video walks through how to upload HTML emails from the Figma Emailify plugin to Constant Contact.
[Embedded media](https://www.youtube.com/embed/XDjtuc0XWKI)

### Export HTML emails from Figma to Drip

This video walks through how to upload HTML emails from the Figma Emailify plugin to Drip.
[Embedded media](https://www.youtube.com/embed/T-VmrIW9e7c)

### Export HTML emails from Figma to Aweber

This video walks through how to upload HTML emails from the Figma Emailify plugin to Aweber.
[Embedded media](https://www.youtube.com/embed/WpBJ0B8XrUc)

### Export HTML emails from Figma to SugarCRM (Sugar Market)

This video walks through how to upload HTML emails from the Figma Emailify plugin to SugarCRM (Sugar Market).
[Embedded media](https://www.youtube.com/embed/dudacdc97vQ)

### Export HTML emails from Figma to Benchmark Email

This video walks through how to upload HTML emails from the Figma Emailify plugin to Benchmark Email.
[Embedded media](https://www.youtube.com/embed/KYIdqjManjg)

---

---
url: "/emailify/export/subject-and-preheader.md"
description: "You can set a subject line and preheader for your emails before exporting them to production-ready HTML code."
---

# Set a subject line and preheader text for your HTML emails

> You can set a subject line and preheader for your emails before exporting them to production-ready HTML code.

[Video](/assets/videos/emailify/export/export-html-with-metadata.mp4)

Before you export your HTML emails from Emailify, you can optionally set the subject line and preheader text by populating the **Subject Line** and **Preheader Text** inputs in the export panel, after clicking the **Export HTML** button in the plugin header menu.

## Subject Line

The subject line will be added to the `` tag in your exported HTML's `` tag (which will be used as the browser tab name if the email is "viewed in the browser"); it will also be used to set the subject line in your email marketing platform if you're using a built-in Emailify upload integration (and if the email marketing platform API supports setting the subject line).

## Preheader Text

The preheader text will be used as the text that's seen next to your subject line when the email is viewed inside the inbox of an email client; it will automatically inject your preheader text inside of an invisible `` tag, so it won't be visible when viewing the email, but it will be shown in the inbox preview as the first text content that it reads from the HTML.

If you've already set the preheader text in Emailify, you _don't_ need to set it again in your email marketing platform, or this may double up the preview text when you send out the email.

### Add extra whitespace to the preheader text

You can optionally include the [whitespace preheader trick](https://parcel.io/blog/preheader-spacing) to ensure that the body content of your email doesn't show up in the recipient email client's subject line area. You can turn this on by enabling the **Add Whitespace to Preview Text** toggle in the email export options.

---

---
url: "/emailify/export/testing.md"
description: "How to test Emailify HTML emails across clients using Litmus, Email on Acid, and test sends."
---

# Testing your HTML emails before sending

> How to test Emailify HTML emails across clients using Litmus, Email on Acid, and test sends.

### Video Tutorial: Test HTML emails in different clients with exports from Figma

This video walks through how to test HTML emails in different clients with exports from Figma using the Emailify plugin and Litmus.com.
[Embedded media](https://www.youtube.com/embed/vZkuFfpkh1Q)

### Video Tutorial: Test HTML emails in dark mode with exports from Figma

This video walks through how to test HTML emails in dark mode with exports from Figma using the Emailify plugin and Litmus.com.
[Embedded media](https://www.youtube.com/embed/h5Gq9apZrxk)

### Video Tutorial: Test HTML emails in Gmail with exports from Figma

This video walks through how to test HTML emails in Gmail with exports from Figma using the Emailify plugin and Litmus.com.
[Embedded media](https://www.youtube.com/embed/Jlm1YBOioM0)

### Video Tutorial: Test HTML emails on mobile with exports from Figma

This video walks through how to test HTML emails on mobile with exports from Figma using the Emailify plugin and Litmus.com.
[Embedded media](https://www.youtube.com/embed/yz2KQPFBzA0)

### Video Tutorial: Test HTML emails in Outlook with exports from Figma

This video walks through how to test HTML emails in Microsoft Outlook with exports from Figma using the Emailify plugin and Litmus.com.
[Embedded media](https://www.youtube.com/embed/5MJzh5rbfdY)

### Video Tutorial: Send yourself tests of HTML emails from Figma with PutsMail

This video walks through how to send yourself tests of HTML emails from Figma using the Emailify plugin and PutsMail.com.
[Embedded media](https://www.youtube.com/embed/CxdlzgUaCMM)

The base design components that come included with the Emailify plugin have been pre-tested using [Litmus](https://www.litmus.com/) to ensure they look great across all popular desktop (including Outlook) and mobile email clients.

However, it's always worth doing a test of your own emails using a service like [Litmus](https://www.litmus.com/) or [Email on Acid](https://www.emailonacid.com/), just to ensure they're looking good before you send them out.

You can also send a simple test email of the HTML to yourself using a free service like [htmltest.email](https://htmltest.email), which is also a great way of ruling out any issues that may be caused by an email marketing platform modifying some of the HTML (as htmltest.email doesn't modify the HTML, and sends the email "as-is").

## Using the Email on Acid integration

### Video Tutorial: Export HTML email tests from Figma to Email on Acid

This video walks through how to upload HTML email tests from the Figma Emailify plugin to Email on Acid.
[Embedded media](https://www.youtube.com/embed/ThlA2CpDI9U)

Emailify includes a built-in integration with Email on Acid, which lets you upload HTML email tests directly from the Figma plugin directly into your Email on Acid projects.

In the Emailify export panel, select the **Email on Acid** option from the dropdown list, then paste in a valid Email on Acid API key, which can be generated from your [Email on Acid account](https://app.emailonacid.com/app/cp/account/) page, and then paste in your Email on Acid **account password** (the one you login to the website with) into the second text input field in the Emailify export options.

When you're ready, click the **Upload To Email on Acid** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your [Email on Acid projects](https://app.emailonacid.com/app/site/projects/).

---

---
url: "/emailify/export/webhook.md"
description: "Emailify includes a built-in Webhook export option, which lets you send a `POST` request contain a JSON payload (below) that includes  your email's name, HTML code, subject line and preheader text."
---

# Uploading your emails to a custom Webhook URL

> Emailify includes a built-in Webhook export option, which lets you send a `POST` request contain a JSON payload (below) that includes  your email's name, HTML code, subject line and preheader text.

[Video](/assets/videos/emailify/export/webook-export.mp4)

In the Emailify export panel, select the **Custom Webhook URL** option from the dropdown list, then paste in your own custom URL endpoint that has been created to handle [the JSON payload](#the-json-payload-object-sent-via-post-to-your-url) sent from Emailify.

When you're ready, click the **POST** button to start exporting the emails you've selected from Figma to HTML, and have them automatically sent as a `POST` request to your custom webhook endpoint.

> **Tip:** Your images will automatically be uploaded to our CDN and included as the `src` attribute for any `` tags in the `html` string property sent via the payload.

> **Note:** Your code will be exported as the default HTML option, so if you need the code to be exported for a certain email marketing platform destination (which you'll handle in your own function), you can optionally **select a platform specific option in the Webhook export options** panel.

## The JSON payload object sent via POST to your URL

The JSON payload sent from Emailify contains the object keys/values below; you need to ensure that your custom webhook URL has been created to handle this payload, which you can use however you like.

```
{
  "name": "Name of the Figma frame",
  "subject": "Subject line set in Emailify settings",
  "preheader": "Preheader text set in Emailify settings",
  "html": "Exported email HTML"
}
```

### Adding custom JSON body and headers to your payload

You can optionally add your own [valid JSON string](https://www.w3schools.com/js/js_json_datatypes.asp) to the input fields below, and those will automatically be included in your payload's `header` object and/or `data` body object that's sent to your endpoint URL from the plugin as a `POST` request:

- You can set custom `header` object properties via the **Custom Request Headers (Optional)** field (for example, `{ "Authorization": "Bearer xyz" }`)
- You can set custom body `data` object properties **Custom Extra JSON Data (Optional)** (for example, `{ "category": "emailify" }`)
- Or, you can also set custom body `data` object properties on a "per-email" basis in the **Extra Email-Specific JSON Payload Data (Optional)** (for example, `{ "id": 26, "tag": "email", "edit": true }`) field under any email(s) in your export panel list, which will be merged with any global JSON data you may have already set globally (above).

## POST your JSON payload via a proxy server

As Figma plugins are run inside of a sandboxed `iFrame` element in the Figma app, it doesn't have any `origin`, so your Webhook URL that you `POST` the JSON payload to _may_ reject the request due to cross-origin CORS issues.

To work around this, you can either update your own Webhook function with [Access-Control-Allow-Origin](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin) set to `*` (all), or you can enable the **Use Proxy** toggle (which is turned on by default) in the Emailify plugin settings when you're exporting your email to a custom Webhook.

Enabling the **Use Proxy** toggle with autoamtically route your request through a proxy server before hitting your Webhook URL, to ensure that the incoming POST request has an `origin` and should resolve any CORS issues. This is purely a forwarding request, so the JSON data will flow directly through the proxy, and forwarded on straight to your own Webhook URL.

> **Note:** Enabling the **Use Proxy** setting means that the requests routed through the proxy server will come from a **dynamic IP address** each time a request is sent, so **if you need a static IP address** (for example, you're only allowing incoming requests from certain IPs, like a range of IP addresses in your office network), you should turn this setting off and update your Webhook function to set [Access-Control-Allow-Origin](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin) to `*` to accept POST requests directly from the Figma plugin instead (without being routed via the proxy server).

---

---
url: "/emailify/export/zapier.md"
description: "Emailify includes a built-in integration with Zapier, which lets you upload HTML emails directly from the Figma plugin into your Zapier webhook, to create a custom upload flow with other platforms."
---

# Uploading your emails to Zapier (as a .zip file)

> Emailify includes a built-in integration with Zapier, which lets you upload HTML emails directly from the Figma plugin into your Zapier webhook, to create a custom upload flow with other platforms.

### Video Tutorial: Export HTML emails from Figma to Zapier (Google Drive)

This video walks through how to upload HTML emails from the Figma Emailify plugin to Zapier (Google Drive).
[Embedded media](https://www.youtube.com/embed/cI93RXk9MV0)

In the Emailify export panel, select the **Zapier** option from the dropdown list, then paste in a valid [Zapier webhook](https://zapier.com/apps/webhook/integrations) URL.

When you're ready, click the **Upload To Zapier** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your Zapier webhook URL.

---

---
url: "/emailify/export/zip.md"
description: "After you've finished designing your email in Figma using the Emailify plugin, you can export it to production-ready HTML code, along with your image assets, and download them as a .zip package to your computer."
---

# Export production ready HTML emails from Figma to a local .zip file

> After you've finished designing your email in Figma using the Emailify plugin, you can export it to production-ready HTML code, along with your image assets, and download them as a .zip package to your computer.

[Video](/assets/videos/emailify/export/export-html-with-metadata.mp4)

Once you're happy with your design and the settings that you wanted to configure, you can export your email(s) from Figma to HTML by clicking the **Export HTML** button in the Emailify plugin header, selecting the email(s) you'd like to export and optionally adding [a subject line and preheader text](/emailify/export/subject-and-preheader).

## Export and download your HTML email from Figma as a .zip file

The default option selected is **HTML Email**, which will ensure your emails are exported to compiled production ready emails (with all the CSS pre-inlined and the HTML minified).

When you're ready, click on the **Export To HTML** button to start exporting the emails you've selected from Figma to HTML.

After Emailify has finished processing your email(s), you'll be shown a confirmation message; you can download your `.zip` file by clicking the **Download your .zip file** button.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

> **Info:** Emailify will automatically detect if any text layers in your design require RTL (right-to-left) styling, and will automatically apply the `dir="rtl"` HTML attribute to any text content areas in your exported emails.

## Unzipping and viewing your exported HTML email .zip package

[Video](/assets/videos/emailify/export/review-html-export.mp4)

After you've downloaded your `.zip` file from Figma to your computer, you can open your file explorer to the directory where it was saved. **Double clicking** on the exported `.zip` file will unzip the contents.

The `.zip` file contains each email's `index.html` file and image assets in a separate folder. A generated `index.html` file at the root lets you review every exported email from one preview page. You can also [upload it as a Netlify preview link](/emailify/export/netlify) for clients or teammates.

Double clicking either the _preview_ page `index.html` file, or any `index.html` file inside your individual email folders will open up the file in your web browser and let you preview the exported HTML.

> **Note:** The plain text content version of your HTML email will automatically be included inside the .zip file of any email exports from the plugin. If you unzip your exported .zip file, then open the folder of your email, there will be a `plain-text-version.txt` file alongside your `index.html` file.

---

---
url: "/emailify/faq/plans.md"
description: "To get unlimited usage of all of the Emailify Pro features, you will need to purchase a license from the [Hypermatic website](https://hypermatic.com/emailify#pro)."
---

# Emailify Free vs Emailify Pro

> To get unlimited usage of all of the Emailify Pro features, you will need to purchase a license from the [Hypermatic website](https://hypermatic.com/emailify#pro).

Emailify includes 10 free trials of the _Pro_ version. Once these trials have been used up, the Figma plugin will revert to their _Free_ version, which will have limited functionality.

  - **Emailify Free**: ### Email Designer Features Unlimited Usage       ### HTML Email Exports Try during 10 Pro Trials       ### Image Hosting Try during 10 Pro Trials       ### GIF Uploads Not Available       ### Platform Uploads Try during 10 Pro Trials       ### Text Localization Try during 10 Pro Trials
  - **Emailify Pro**: ### Email Designer Features Unlimited Usage       ### HTML Email Exports Unlimited Usage       ### Image Hosting Unlimited Usage       ### GIF Uploads Unlimited Usage       ### Platform Uploads Unlimited Usage       ### Text Localization Unlimited Usage

---

---
url: "/emailify/faq/security.md"
description: "Emailify runs as an official plugin inside of Figma's own app, which are reviewed and approved by the Figma team."
---

# Emailify Security

> Emailify runs as an official plugin inside of Figma's own app, which are reviewed and approved by the Figma team.

The Figma plugin is run directly from Figma's own servers, and runs inside of a your Figma file, which means that it inherits all of the [security](https://www.figma.com/security/) and infrastructure of the Figma platform, which exceed industry standards for data protection and security:

- SOC 2 Type 2
- SOC 3
- Cloud Security Alliance (CSA) STAR: Level 1
- ISO/IEC 27001:2013
- ISO/IEC 27018:2019
- EU Cloud Code of Conduct (COC): Level 2

There's **no additional software** that needs to be installed to use the Figma plugin, as Figma plugins run as a built-in part of Figma's own native functionality, and all Figma plugins Accessibile and can be instantly run from inside any Figma file, or via the official [Figma Community](https://www.figma.com/community) ecosystem inside of the Figma app.

If your organization is already approved to use Figma, then you _already have access_ to Figma plugins.

## How Emailify works

The [Emailify Figma plugin](https://www.figma.com/community/plugin/910671699871076601) helps users design and export production ready HTML from Figma.

Emailify is designed to be privacy and security focused, so nothing _ever_ leaves your Figma file; unless you _optionally_ decide to use a built-in integration that uses your own email marketing platform's official API (for example, MailChimp, Salesforce, Klaviyo, etc) to automatically upload your email template, or _optionally_ upload your images to be hosted automatically.

If you decide to _optionally_ use any of the [built-in platform integrations](/emailify/integrations/activecampaign) in Emailify, or the feature to upload and host your exported images automatically, the images URLs contained in the email's HTML will be stored and linked as images via the [Backblaze B2](https://www.backblaze.com/b2/cloud-storage.html) storage CDN service.

All functionality and code generation are handled client-side directly in the Figma plugin using the [Figma Plugins API](https://www.figma.com/plugin-docs/), and are _never_ processed in the cloud or outside of Figma.

## What Emailify does and doesn't do

Emailify uses the [Figma Plugins API](https://www.figma.com/plugin-docs/) to help users compress their images, and download them _directly_ to their computer.

Emailify doesn't rely on _any_ external servers to handle compressing image data, which means that nothing in your Figma file ever leaves the Figma plugin or Figma itself.

Any files that are exported via the plugin are done so entirely locally to the user's own computer.

### Emailify does

- Allow users to design emails in Figma via tools in the plugin.
- Allow users to export their Figma designs to HTML, and download them _directly_ to your computer.
- Allow users to _optionally_ upload their exported HTML emails to their _own_ email marketing platform account (for example, MailChimp, Klaviyo, Salesforce, etc) _directly_ via their official APIs.
- Allow users to _optionally_ automatically host the images in their emails.
- Allow users to generate PDF previews from their email designs.
- Download any exported files _directly_ to the user's computer.

### Emailify does _not_

- Upload _any_ data, HTML or images or data from your Figma file (unless you _optionally_ decide to use the built-in email marketing platform integrations or image upload features).
- Store _any_ data, HTML or images from your Figma file (unless you _optionally_ decide to use the built-in email marketing platform integrations or image upload features).
- Use _any_ cloud storage to store your Figma images (unless you _optionally_ decide to use the built-in email marketing platform integrations or image upload features).
- Collect or store _any_ personal information (Figma plugins *cannot* access any private information about Figma projects, Figma teams or Figma users).

## How Figma plugins work

Figma plugins are written in HTML/CSS/Javascript, and are run in a tightly controlled [sandbox environment](https://www.figma.com/plugin-docs/how-plugins-run/) inside of the main Figma application.

Figma plugins can only do whatever Figma allows them to do inside the permissions of the [Figma Plugins API](https://www.figma.com/plugin-docs/), and importantly, **plugins don't have any access to personal information** about the Figma user running the plugin.

## What Figma plugins can and can't do

As per the article on [Figma plugin security](https://www.figma.com/blog/how-we-built-the-figma-plugin-system/), there are a limited number of things that Figma plugins can do, and many more things that they can't do:

### Figma plugins can

- Only be run by an explicit user action
- Show UI in a single plugin-specific dialog
- Read any data in your Figma document (for example, a “find layer by name” plugin)
- Modify any data in your Figma document (for example, a “rename selected layers” plugin)
- Communicate with any server over the internet (for example, an “import from service X” plugin)

### Figma plugins _cannot_

- Run by themselves
- Get information about the project or team that owns the file
- Access anything when they aren’t running
- Access data from any files other than the file they were run in
- Change Figma’s UI outside of the plugin UI dialog

> **Tip:** Figma account administrators at your company can [configure an allowlist of plugins](https://help.figma.com/hc/en-us/articles/4404228724759-Manage-plugins-and-widgets-in-an-organization) that are allowed inside the organization. This can be used to prevent untrusted Figma plugins from being run in any file in that organization.

---

---
url: "/emailify/faq/troubleshooting.md"
description: "Troubleshooting guide for Emailify design, export, and client-specific issues."
---

# Troubleshooting Emailify

> Troubleshooting guide for Emailify design, export, and client-specific issues.

## Figma

### Figma email designs created outside of Emailify are not supported

Create the email layout with Emailify's design tools before exporting production-ready HTML. These tools add the Row, Column, Button, and other structured layers Emailify needs to generate HTML. You can customize their content and styles after adding them.

Adding layers or frames that were previously designed in Figma without the Emailify plugin will be rendered as a static image, instead of rich text/HTML content.

### Setting image format overrides

Emailify will automatically detect if a layer contains areas of full transparency and set **PNG** as the default export format, otherwise it will be set to **JPG**. You can override this to set the export format of any layer to **JPG** or **PNG** by adding your own export setting.

### Freezing issue with Figma 'Scroll Wheel' or 'Drag to Pan' settings enabled

There's a random issue where the plugin or the canvas may have a strange freezing behavior if these settings (as shown in the screenshot below) are enabled.

If this is happening in your Figma file, you can resolve this by disabling these settings in Figma by going to the **Main Figma Menu**, going down to **Preferences**, and then _unchecking_ the **Use scroll wheel zoom** and **Right-click and drag to pan** settings.

![Figma scroll wheel zoom and drag to pan preferences](/assets/images/emailify/scroll-pan.png)

### Adding links to normal Figma text layer paragraph/content

If you highlight the text you'd like to link in the Figma text layer, and then click on the [native Figma "Link" icon button](https://help.figma.com/hc/en-us/articles/360045942953-Add-links-to-text) in the Figma header toolbar area, that will let you paste a URL in, which Emailify will automatically render.

**Only use this for content text layers (not buttons or nav links)**. Note that this only works for normal content text layers; if you need to set a link on a button, social icon or navigation link layer that Emailify generates, you need to click on that Figma layer, then click the **Settings** button in the Emailify plugin header, then paste your URL into the link field.

### Adding superscript or subscript text

You can [add superscript and subscript to your Figma text layers](https://docs.hypermatic.com/emailify/design/superscript-and-subscript), and that will automatically get rendered as superscript (for example, `sup`) or subscript (for example, `sub`) tags in the HTML export from the plugin.

### Using heading tags (for example, h1, h2, h3) in your HTML text

 If you need to, you can swap the default paragraph tag (`p`) for any heading tag (eg., `h1`, `h2`). You can [wrap your Figma text layer content with a heading tag](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Heading_Elements) you're after, and that will automatically handle changing the tag when the HTML is exported via the Emailify plugin.

### Blank file extensions using Figma desktop app on Windows

There's a known issue with the Figma desktop app (only on Windows), which also happens for normal file exports from Figma. When you go to save your file, you may see an "all files" label. If you ignore this and continue by clicking "Save", it should still save the file with the correct extension and allow you to open it as expected after it has downloaded to your computer. If it still saves the file with a blank extension, you should be able to rename the file to manually append the correct extension to the file name.

### Optimizing your designs to reduce the size of the HTML export

The number of Row components has the biggest effect on exported HTML size because each Row creates another set of table elements. Reuse a Row when its content can fit inside the same structure.

For example, a heading, subheading, body, and button can share one Column inside one Row. They do not need four separate Row layers.

### Emailify settings panel options not appearing when clicking an Emailify Figma layer

If you're clicking an Emailify layer in your Figma design and the settings aren't showing up when clicking the **Settings** button in the plugin header, your main Emailify frame may be nested inside of other frames or groups etc; to resolve this, you can move your Emailify frame out of any nested frames/layers and move it back out to the "Page" level, so that it isn't nested inside of any other layers.

### UTM query parameters are stripped when sending an HTML email

There are [a few reasons](https://www.netnatives.com/blog/utm-tracking) that UTM query string parameters may get stripped out when you send your HTML emails, as more browsers/devices have been starting to automatically remove these (for privacy reasons) in the last year or so. If the query strings are working when you open the links from the Emailify preview window, but not after the email is sent from your email marketing platform, then there's likely an additional link forwarder/shortener getting applied when the email is sent that may be stripping those out or breaking them.

### 'Please wait, loading Figma images...' speed

Figma had an update a little while ago that forces all Figma plugins to wait for every single full resolution image in the current Figma page to finish loading before a plugin can export any image data (even if it only needs one layer/image).

The only solution at the moment is to try and limit the number of frames/layers on your current Figma page, which will help make this process much faster when the plugin initially runs. For example, you could create a brand new page in your current Figma file, and only the Emailify frame(s) you want to work on or export to that blank page, and that should load much faster when you re-run the plugin there.

### Pixelated image exports

If you're exporting your email while the image assets in Figma are still progressively loading, they may be exported looking pixelated, as the image wasn't fully loaded in the Figma file before it was exported. To resolve this, please ensure that all of the images have loaded 100% and are looking sharp inside the Figma file before exporting your emails with the Emailify plugin.

To help further with solving this issue, you can use the ["Downsizer" feature](/tinyimage/downsize) in [TinyImage](https://www.figma.com/community/plugin/789009980664807964/TinyImage-Compressor) to shrink down your image fills to match their layer size, which will shrink their file size and ensure they load much faster in your Figma file.

### Editing PDFs in Adobe Acrobat shows dotted lines

This can be resolved by un-checking the "Show bounding boxes" toggle in the Acrobat Acrobat app sidebar while editing your PDF. Showing the dotted bounding box lines is something that [Adobe enables by default](https://archive.md/Uhdbk) while enter "Edit" mode when you have a PDF open in the app, but turning off the "Show bounding boxes" toggle will turn hide those from being displayed with one click.

### VPN may be required in China

Note, if you're in China, the accounts server _may_ be blocked by "The Great Firewall of China". If you're seeing a activation error, despite using a valid key, you will likely need to use a [VPN](https://protonvpn.com/free-vpn/) to resolve the issue.

### 'An error occurred while loading the plugin environment'

This may happen in the Figma desktop app if [the Use Developer VM](https://www.figma.com/plugin-docs/debugging/#developer-vm) debug setting in Figma is enabled by mistake; you can make sure it's turned off by **right-clicking** anywhere on your Figma canvas, hovering over **Plugins**, then hovering over **Development**, and making sure that the **Use Developer VM** is _unchecked_; after it is unchecked (and does _not_ have a tick icon next to it), re-running the Figma plugin should work as expected.

### Image uploads being blocked on your network

If you've enabled the **Upload Hosted Image URLs** feature, or uploaded the HTML email to any email platform using the built-in Emailify export options, the plugin will automatically upload the images online to be hosted automatically.

If you're seeing a warning message in the plugin (**Images uploads _may_ be blocked on your current network**), this means that the plugin isn't able to access the upload service required to host those images online.

This is usually usually due to the network (for example, your company, which may have a firewall blocking certain URLs) or ISP (internet service provider) you're connected to restricting or blocking the URLs; to troubleshoot this:

- Try tethering your mobile phone as a Wi-Fi hotspot to your machine, then re-run the Emailify Figma plugin again to see if this resolves the issue. If so, it means that your other network was blocking the requests.
- You can also try using a [VPN](https://protonvpn.com/), which should tunnel your network requests and get around any network blocking issues.
- If you're already using a VPN, try turning that _off_, then re-run the Emailify Figma plugin again to see if this resolves the issue.

If you're still having issues, please feel free to [get in touch](https://www.hypermatic.com/contact/) via email.

## Email Clients

### New Outlook may rewrite styles after an email loads

New Outlook for Windows has a reported post-processing issue that can cause an email to display correctly at first, then change after it has loaded. Outlook appears to rewrite parts of the email's CSS during this second rendering step, which can cause issues such as desktop columns unexpectedly stacking vertically.

This behaviour is inconsistent: one recipient may be affected while everyone else sees the expected layout, and identical test sends may render differently in the same mailbox. Customer.io has documented these symptoms and the current findings in [New Outlook, same headache](https://customer.io/learn/message-composing/new-outlook-rendering-issues).

If you encounter this issue:

- Open the affected email in a separate window instead of the Outlook reading/preview pane. Reported cases often render correctly in the separate window.
- Send the same exported HTML to another recipient or email client to check whether the issue is isolated to one Outlook user.
- If identical sends render differently, download both received messages as `.eml` files and compare their HTML before changing the Emailify design or export.

> **Note:** There is currently no confirmed template-side fix for this intermittent Outlook behaviour. If an email renders correctly in other clients and its received HTML is unchanged, avoid making major design changes solely to address one inconsistent Outlook preview.

### Forwarding any HTML email templates breaks them

Unfortunately, if someone decides to forward a custom HTML email that they've received to someone else, this often visually breaks the email after it's forwarded on to somebody else.

The reason for this is that different email clients will modify (or remove) part of the HTML code when the email gets forwarded, causing it to break; as this [When Forwarded Emails Break](https://www.litmus.com/blog/when-forwarded-emails-break/) article from Litmus details:

>It’s common knowledge that email clients all render email differently. When a subscriber forwards an email, some email clients make changes to the code of the forwarded message. This can include stripping out certain HTML elements, wrapping your email in a blockquote, or inserting additional classes to your code—all of which can break your design and make the email less functional for the recipient of the forwarded email.

One common option to help mitigate this impact is to have a "Web link" version that can be opened in the browser if it's not rendering correctly, usually added somewhere to the top of the email (like [this one](https://mailchimp.com/help/add-a-campaign-page-link-to-your-email-campaign/) in MailChimp), you could also create this as a shareable type link in the email somewhere as well, if needed.

### My emails are getting sent to spam. What could be causing this?

There are a few common reasons your emails might land in spam:

- **Too many links**: Every link affects deliverability. Remove links that are not essential, including unnecessary social media links, to improve inbox placement.
- **Poor sender reputation**: If your domain or IP has a history of low engagement, bounces, or complaints, mailbox providers may flag your emails.
- **Spammy content**: Overuse of promotional language (for example, “Free!”, “Act now!”, “Limited time offer”) or too many images and too little text can trigger filters.
- **Authentication issues**: Make sure you’ve correctly set up SPF, DKIM, and DMARC for your sending domain.
- **Low engagement**: If subscribers consistently don’t open or click, your future emails are more likely to be marked as spam.
- **List quality**: Sending to old or purchased lists can cause bounces and spam complaints that hurt your sender score.

Start by simplifying your email, checking your domain authentication, and trimming any unnecessary links; those changes alone often improve deliverability.

### Dark mode overrides are only supported on iOS/Mac Apple Mail apps

Currently, [support for dark mode override styles in email clients](https://www.caniemail.com/features/css-at-media-prefers-color-scheme/) is still relatively low; so please be aware of this and try to design your emails with the "progressive enhancement" of these dark mode overrides in mind.

It's also worth using [some other clever design techniques](https://www.campaignmonitor.com/blog/email-marketing/designing-an-email-for-dark-mode-dark-and-light-optimization/) for creating your email with dark mode in mind as a fallback with other email clients, too.

### Thin white sub-pixel lines on stacked mobile images

This sometimes happens if you're using full width inline images, as depending on the device width, when the image gets scaled down on mobile, it can have these "sub-pixels" creep in to the height of the image (which is what's leaving that faint gap between each one and letting the background show through from behind it).

The quickest workaround for this would be to [add a Wrapper layer](https://docs.hypermatic.com/emailify/design/wrappers) around your "Row" layers that contain those images, and then also set the background for that Wrapper as a "Linear Gradient" with your background color (for example, grey) on both sides of the gradient; this will ensure that the background gets rendered as an image, to avoid the CSS background color still getting swapped out or inverted to black on dark mode, and should provide a consistent background behind your image rows to cover up the sub-pixel gaps there.

### Google/Custom Font embeds are only supported on iOS/macOS Apple Mail apps

Currently, support for custom fonts in email clients is [only supported](https://www.caniemail.com/features/css-at-font-face/) in Apple Mail for iOS/macOS, so using [web safe fonts](https://www.cssfontstack.com/) is recommended for your Figma text layers, which you can set via the **Configure Fonts** panel under the "Preview" feature in Emailify.

Also, certain email service providers (like MailChimp) actively strip them out before the email is even sent to ensure that only web safe fonts are used.

However, Emailify still includes Google Font @imports, and also sets a fallback websafe font (for example, "Arial", "Georgia" or "Courier") if a Google Font is being used for rich text. They'll be visible on any [email clients that support the use of @font-face](https://www.caniemail.com/features/css-at-font-face/) in emails.

**Use custom fonts in your images**. Note that if you need to ensure a custom font is visually consistent across all email clients, it may be worth putting your text layers inside of an "Image" frame. This text content will be exported as part of the image itself, and therefore won't be relying on custom web font support to display correctly.

### Form elements in emails are not supported

The support for **form** elements in HTML emails is [still quite low](https://www.campaignmonitor.com/blog/email-marketing/how-forms-perform-in-html-emai/), and can cause the emails to be flagged as spam etc if they're included, so it's best to avoid using native forms inside of HTML emails at the moment.

The best workaround is to create a nice looking call to action (CTA) button in your Emailify design, and then link that off to an external form URL like [Google Forms](https://docs.google.com/forms/) or [Typeform](https://www.typeform.com/), and collecting the information from recipients there via the browser instead.

### Understanding how image blocking works in some clients

Thare a couple of really good articles below describing what image blocking is and which email clients enable it by default (mainly Outlook), whereas other clients like Gmail, Android, Apple/iOS etc all show images by default.

[How Image Blocking Works in Email](https://www.campaignmonitor.com/resources/guides/image-blocking-in-email/)

[Email Image Blocking: Answering the What, Why, Where, Who, and How](https://www.litmus.com/blog/the-ultimate-guide-to-email-image-blocking/)

Unfortunately, it's not related to if the images are secure (SSL) or not, it's always just across the board for any images inside of the email.

The upside is that usually if the recipient is using one of the former email clients, they're fairly used to this happening and clicking the "show images" button, or more likely have already enabled images to show by default for incoming emails.

### Purple text in Gmail (multiple test sends with the same subject line)

If you're sending multiple tests of an email to a Gmail account, you might notice that certain text is a dark purple color.

This isn't a problem with your HTML code; it happens when Gmail decides that multiple emails sent in the same day with the same subject are responses to one another. When this happens, it displays the thread of emails in a "conversation view."

To learn more about Gmail's conversation view, read [Google's documentation](https://support.google.com/mail/thread/5162234?hl=en):

>The purple coloration is a display only feature that only exists in the display where it is being seen. It is not sent in any messages and you can use Gmail's show original feature to verify that - you will need to know a little about HTML coding.

>The color is applied to text that is repeated from a previous message in the current conversation and the reason it is visible to recipients is because they also are using Gmail and they also have copies of previous messages in the current conversation. What gets coloured in their conversation might be quite different from what gets coloured in yours.

### Email clients adding blue links to dates, phone numbers and addresses

This is a long time issue where certain mail clients will [automatically apply links](https://www.litmus.com/blog/how-to-fix-blue-links-in-gmail) to things like dates, phone numbers and addresses, and [apply their own color styles](https://www.litmus.com/blog/update-banning-blue-links-on-ios-devices-2) to them as well (usually blue links).

Emailify automatically applies all the [suggested code fixes](https://email2go.io/blog/all-about-blue-links-in-emails) to help mitigate this in some email clients, but the clients often get updated to workaround/remove these fixes from getting applied.

There are 2 extra/ methods you can try to prevent the email client from adding links automatically (which are both mentioned in those articles above):

**Method #1** is to pre-apply a placeholder link (for example, to your own website) to each of those text layers in Figma, and just remove any underline styles in Figma and set the color to whatever you like (so it won't appear clickable); this will pre-apply a link tag around the date text, so the email client won't try to automatically apply its own unstyled link instead.

**Method #2** is to add a special invisible HTML entity (which is: `&zwnj;`) directly after the first character in each of your dates, phone numbers or addresses (for example, `6&zwnj;75 Massachusetts Ave, Cambridge, MA 02139`), and that should hopefully trick the email client into thinking it's not a date and prevent it from applying a date link automatically.

### Certain VPNs may be blocked from displaying uploaded images

If you've enabled the **Upload Hosted Image URLs** feature, or uploaded the HTML email to any email platform using the built-in Emailify export options, there's a very rare edge case where certain IP addresses assigned by some VPNs are blocked by the image host and will prevent the image from loading.

If you're having any issues with images not loading, this is the likely cause (please temporarily turn off your VPN to verify this yourself).

### Email signatures do not support custom fonts

Unlike full/regular HTML emails, where it's possible to embed custom fonts - but still _only_ for Apple Mail (other clients like Gmail and Outlook do not support any kind of custom font embeds) - email signatures [don't support](https://signature.email/guides/can-i-use-google-fonts-in-email-signatures) having a **style** tag to be able to add any font embed code at all, so you should design your signatures to use web-safe system fonts, instead.

### Gmail iOS app not rendering mobile responsive styles

The main reason for this is if any of the CSS properties or styles in the `@media` query contain a typo (for example, `padding-bottm` instead of `padding-bottom`) or if there's a line-break in the middle of a style property (for example, `padd` _new line_ `ing-top`), the Gmail app will ignore _all_ other styles and won't render any mobile responsive overrides.

This should not happen with code exported natively via the plugin, but may occur if you are manually editing the HTML code after exporting it from Emailify (of if your email marketing platform is modifying the code or adding line length limits).

### 500 characters per line limit in HTML emails

Emailify limits exported HTML to 500 characters per line. Although the formal limit is 998 characters, shorter lines avoid rendering and delivery problems seen in Outlook and some email service providers.

### VPNs may cause some social media links not to open correctly

While this seems to be rare, if you're having any issues with links to some social networks (for example, Facebook, Instagram) not opening correctly, this is the likely cause (please temporarily turn off your VPN to verify this yourself), and not an issue with the HTML email or the links themselves.

## Outlook

### Border radius not showing in Outlook

Unfortunately, the border-radius property isn't supported in Outlook, so it will always fall back to normal square edges instead. Please see the [border-radius support list](https://www.caniemail.com/features/css-border-radius/) for a better idea of which email clients support this CSS property.

### Button height collapsing on Outlook.com (due to not having a real URL)

If you're seeing the height of a button component collapsing to the size of the text layer inside of it, Outlook.com does this if the `href` isn't set to a real URL (for example, `[replaceLinkInHere]` instead of a real URL like `https://google.com`). Setting a real URL on your button component by clicking the button layer in Figma, and using the **Settings** button in the plugin, and paste in your URL there.

### 1px white line on 'reversed order' rows in certain Outlook versions

There's a known bug in some versions of Outlook when using the [reverse column](/emailify/design/reverse-columns) setting where a 1px white line can show up beside one of the columns. This is one of Outlook's rendering quirks caused by the Microsoft Word rendering engine, and it can happen when the reversed Row also has padding applied to it.

The best workaround is to remove the padding from that reversed **Row** layer, wrap the Row inside a [Wrapper](/emailify/design/wrappers), and move the padding to the outer **Wrapper** instead. That keeps the same visual spacing, but avoids the Outlook rendering bug on the reversed Row itself.

This workaround aligns with the approach discussed in the related [MJML GitHub issue](https://github.com/mjmlio/mjml/issues/2828).

### Outlook automatically turning dates/times into blue calendar links

To prevent Outlook parsing the text as a date/time and stop it from automatically rendering it as a link, you can insert a "zero-width space" HTML entity (`&#8203;`) in-between the days, dates and times to break Outlook's pattern matching, like this tested and working example here: `Monday&#8203; — Friday 8&#8203;am to 5&#8203;pm`

### Uppercase text with accents (diacritics) getting cut off

If you have a text layer with "uppercase"/caps, and some characters contain diacritics (for example, Ä, Ö, Ü) where the top accent is not showing in Outlook; the reason this is happening is that the "line height" value on the text layer in Figma is smaller than the "font size" value for the text, and Outlook will basically crop/cut off any content that isn't contained inside the line-height value (unlike other clients, which will just allow it to overflow normally).

To resolve this, all you need to do is increase the line-height value to be a little bit larger than your font size; for example if you have a text layer with a "24px" font size, and your line-height is currently "23px", you need to increase the line-height from "23px" to "28px" in Figma (to provide enough extra height buffer for the accents rising above the 24px uppercase font cap size), and that will then render the accents/diacritics as expected in Outlook without being cut off due to the lower line-height.

### The random '1px line' Outlook bug

There's a very annoying issue known as [the Outlook 1px line bug](https://www.emailonacid.com/blog/article/email-development/how-do-i-get-rid-of-the-lines-in-outlook-emails/) that randomly appears in certain versions of Outlook where:

>Outlook will add extra lines to our emails. These lines will inherit the background set on your **body** tag... to make matters worse, this bug seems to happen at random, although it does appear more regularly on Windows 10 machines, compared to Windows 7.

As mentioned in the article above, while it's quite random and there's no reliable fix for it; it can _usually_ be solved with some trial and error of adjusting the font size for the text content above where the line shows up. For example (from the article):

>For some folks, the fix is as simple as changing font sizes from odd numbers to even numbers. For example, if you have a font size of 13px or 15px, try converting it to 14px.

There's another good overview article called [Fixing White Lines in Outlook](https://www.actionrocket.co/email-design-review/white-lines-in-outlook) that goes into some extra detail and potential fixes, too.

For a deeper dive, this [Outlook 2016 madness and the weird 1px thin horizontal lines](https://mosaico.io/email-client-tricks/outlook-2016-weird-1px-horizontal-lines/) article goes into some more detail about the underlying issue, and this detailed [Litmus forum discussion](https://litmus.com/community/discussions/4990-outlook-2016-1px-horizontal-lines-showing-up-in-the-body) also speculates on possible causes and ways to try troubleshooting it.

## Gmail

### Gmail clipping the email

Gmail [clips emails](https://mailchimp.com/help/gmail-is-clipping-my-email/) that have a message size larger than 102KB, and hides the full content behind a "View entire message" link. To avoid this, use the **Preview** button to see the size of your HTML file before exporting, and remove as much content as possible to try and get the file size down.

If the email is still getting clipped, despite being under the HTML file size limit, it's [most likely](https://www.emailonacid.com/blog/article/email-development/gmail-email-clipping/) due to a UTF-8 character being used in the email content, which also can trigger Gmail to clip the email. The best solution here is to replace the UTF-8 character with its HTML encoded version (for example, by using `&copy` instead of `©`), which the plugin does apply automatically.

One other reason this happens is if you're sending out emails with the same subject line (for example, when sending multiple tests to yourself), where Gmail will consolidate the emails into a single thread, and can clip the contents of the subsequent sends. To get around this, ensure that the subject line is always different (for example, "Test v1", "Test v2", etc).

### Buttons with white text turning black in Gmail mobile app in dark mode

Gmail (and other apps) will automatically apply dark mode styles to your email when the user's system theme is set to dark mode, which includes buttons.

To keep white button text white on dark mode in Gmail mobile apps, Emailify will automatically add some extra code to force this if you ensure the button text layer is set to pure white (for example, `#fff`) in Figma, and _also_ has a dark mode override text color set to pure white (`#fff`) in the **Settings** panel when your `Button` component is selected.

### Columns stacking on desktop in Gmail

Some email service providers (like MailChimp) will try to modify your email's HTML before it gets sent out, which can cause some of the columns in your email to stack on Gmail when viewed on desktop, instead of being in a row.

Usually for the purpose of these platforms modifying your HTML is to ensure they're "inlining" styles onto your HTML elements. However, Emailify automatically pre-inlines all of the CSS styles, so that your emails are production ready. If you can find a setting in your email service provider's HTML/import options to "disable" this inlining or modification, this should resolve the issue.

If you're unsure if it's being caused by your email service provider or the code itself, please use a free service like [htmltest.email](https://htmltest.email/) (which won't modify any of your HTML) to send yourself an email test. If the test works from [htmltest.email](https://htmltest.email/), then your email service provider is modifying your HTML before it's sent out.

### Gmail on iOS forces a minimum line-height

If setting `line-height` to a value less than the current `font-size`, Gmail will automatically change it to `line-height:normal;`; so `line-height:1`, `line-height:1em`, `line-height:100%` all work as expected, however `line-height:0.9`, `line-height:0.9em`, `line-height:99%`, will all get converted to `line-height:normal;`.

Same works for px values, where `font-size:20px; line-height:19px` won't work, but `font-size:19px; line-height:19px` will work.

To resolve the issue, just make sure that the line height on your text layer is equal to or greater than the font size.

### Gmail iOS app not rendering mobile responsive styles

The main reason for this is if any of the CSS properties or styles in the `@media` query contain a typo (for example, `padding-bottm` instead of `padding-bottom`) or if there's a line-break in the middle of a style property (for example, `padd` _new line_ `ing-top`), the Gmail app will ignore _all_ other styles and won't render any mobile responsive overrides.

This should not happen with code exported natively via the plugin, but may occur if you are manually editing the HTML code after exporting it from Emailify (of if your email marketing platform is modifying the code or adding line length limits).

### Gmail mis-translating English-only emails into other languages

If your email contains mostly image blocks, without rich text, or lots of image blocks before any rich text lower in email, Gmail will sometimes think that the email is in a different language and prompt you to translate it into English, this is despite the code automatically getting a `lang="en"` attribute added to the **html** and **body** tags by Emailify.

As per [this article discussing it](https://litmus.com/community/discussions/7028-gmail-mis-translating-our-english-only-emails-into-other-languages) on the Litmus forums:

>We have found (empirically) that mails containing a lot of CSS and HTML before any actual content get classified as English even though the content is in another language.

>Our workaround is to send a multipart text and HTML email, with a text version before the HTML part. Of course the text must be consequent, not just "Bonjour ...", as otherwise the HTML tags/CSS are still dominant.

>The translation algorithm does not seem to make any attempt to strip out html/css from the body of the mail, or if it does, perhaps it truncates the message before stripping and so ends up with very little content to use for detection purposes. (It is easy to end up with >5000 caracters of headers and CSS these days before a single line of content.)

## GIFs

### Converting videos into animated GIFs for your emails

While native **video** tags sadly [aren't supported](https://www.caniemail.com/features/html-video/) for HTML emails, the best way to add animated images or video content into your HTML email designs is to use GIFs instead; either using a GIF file downloaded from the internet, or one you've created yourself.

If you already have a video you'd like to use as a GIF, you can use a free app called [Gifski](https://gif.ski/) to help convert short video files into animated GIF files to use in your email designs.

Then there's also a [good walkthrough video tutorial](/emailify/tutorials/add-animated-gifs-from-figma-to-html-email-exports) that goes through the different ways that you can use GIFs in your Emailify designs and include them in your exports to HTML.

### Colors/gradients in GIFs look a bit grainy

GIFs are a bit different from normal JPG/PNG images, as they can only contain a maximum of 256 colors. If you're using highly detailed images or gradients with lots of color variation, it's expected that it won't look as sharp or have the same color accuracy as the original images used as the source of the GIF due to this limitation of the GIF format.

### Transparency isn't showing in GIFs

The GIF file format supports either 0% opacity or 100% opacity, but nothing in between. This means that you can have an animated GIF with a completely transparent background behind elements that are completely opaque and visible. This means that layers either need to be completely transparent or not; any layers with lower than 50% opacity will be transparent, while any layers with opacity greater than 50% will be opaque.

**Flagging transparent GIFs in Figma**. Emailify will try to automatically detect if your GIF contains a transparent background; if your GIF does require transparency, and the plugin isn't detecting that by itself, Add the word **Transparent** anywhere in your Figma layer's name (for example, `My Layer Name - Transparent`) to force it to be exported with a transparent background enabled.

### Keeping your original GIF file during export (by maintaining the aspect ratio)

If you drop your GIF into Figma and resize the layer proportionally to maintain the original aspect ratio, Emailify will automatically use the original GIF file in your exports.

Conversely, if you change the aspect ratio of your Figma layer to be different to the original GIF, Emailify will need to re-create your GIF to account for the cropped image area, which can lead to larger GIF file sizes and slower export times.

### GIF image not showing in Gmail (file size limit)

If you've used GIFs in your design, but aren't seeing them show up when you do a test send to a Gmail inbox, it's likely that the [Gmail image caching limit](https://stackoverflow.com/questions/49771254/images-in-gmail-not-displaying-due-to-google-image-cache-proxy) is being hit, which causes it to not render.

During export to HTML, Emailify will try to compress any large GIFs to get them underneath the file size limit for Gmail, which should resolve this issue in almost all cases (unless the GIF is exceptionally long, large in size, or contains a very high frame rate to begin with).

## Klaviyo

### Klaviyo template editor (sometimes) crashes when GIFs are used in your email design

There is a random bug with the Klaviyo that causes it to have an Error 500 (internal server error), where it shows a page saying **Something is amiss. We're on it.**; this seems to mainly happen if the template is "Editable".

Klaviyo are aware of this bug, but there doesn't seem to be any plans to fix it in the near-term.

One workaround here is to remove the GIF in your Figma design before exporting the HTML for Klaviyo, and then upload the GIF image separately into Klaviyo after the template editor loads without the error above.

### Extra padding around text blocks in editable Klaviyo templates

Due the Klaviyo [updating their editor](https://help.klaviyo.com/hc/en-us/articles/13160284274459), and forcing all templates to use it as of June 6th 2023; unfortunately, if you're exporting HTML emails with the **Editable Content** toggle enabled in Emailify, Klaviyo will automatically apply ~18px of additional padding around each text element by default, as an inline `style` attribute to a new **td** element that it injects into the HTML if it's an editable template.

Enabling the **Force the padding added by Klaviyo's new editor to be 0px** toggle in Emailify does automatically add some extra CSS to remove this padding for all mobile clients and non-Outlook desktop clients like Gmail etc, however, _Outlook_ will still render the padding unless each of the "Padding" values for any editable text blocks in your template are manually changed to "0" when editing the email for your Campaign in the Klaviyo editor.

## MailChimp

### Enabling editable images will use blurrier @1x images (instead of @2x retina)

You can optionally enable your images in the template to be editable in MailChimp with the **Editable Images** toggle, but unfortunately, [MailChimp doesn't support editable @2x retina images](https://github.com/mailchimp/email-blueprints/issues/37), so these will be @1x instead.

If you'd prefer to have @2x retina images that aren't editable, please leave this option turned off.

### MailChimp removes hyperlink styling when embedding Typekit font <link> tags

MailChimp removes link styles when a custom **Typekit stylesheet** is added to your email. Specifically, if you include a tag like: ``

in the ``, MailChimp will strip all **`style`** attributes from your **``** tags. Removing this tag fixes the issue and restores your link styles.

If you’d still like to use your Typekit fonts, you can do this through the plugin’s built-in **Web Fonts** feature. Instead of linking the stylesheet, you’ll need the direct **`.woff2`** font file URL from your Typekit CSS file (for example:
`https://use.typekit.net/...`). Paste this URL into the **Configure Fonts** panel in the plugin, and it will automatically generate the correct `@font-face` style to match your Figma font names in the HTML. See the [step-by-step video tutorial](https://youtu.be/dtTNDXeO3FA) for more guidance.

Note that custom web fonts only work in **Apple Mail**. Other email clients (such as Outlook or Gmail) don’t support them, so we recommend setting a **web-safe fallback font** in the plugin to control what displays. Many users find it easiest to design with web-safe fonts in Figma, but adding custom web fonts can still be a nice progressive enhancement for Apple Mail users.

---

---
url: "/emailify/integrations/acoustic.md"
description: "Emailify includes a Acoustic export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform."
---

# Uploading your emails to Acoustic

> Emailify includes a Acoustic export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform.

In the Emailify export panel, select the **Acoustic** option from the dropdown list, when you're ready, click the **Export For Acoustic** button to start exporting the emails you've selected from Figma to HTML.

Once the HTML has been exported, you need to manually upload your HTML templates to Acoustic by clicking the **Download your .zip file** button in Emailify, _unzipping_ that file after saving it to your computer, then you'll be able to [upload the email .zip file(s) to Acoustic](https://help.goacoustic.com/hc/en-us/articles/360055843014-Create-an-email) from the **_zips (For upload to Acoustic)** folder inside of your main unzipped folder.

### Acoustic Link Tracking Support

When the export platform is set to **Account** and the **Add xt="SPCLICK" tracking tags to Links** toggle option is enabled, Emailify applies Acoustic's `xt` tracking attributes for you during HTML generation. This removes the need to manually tag every link for your Acoustic emails.

See below for the different automatic link tracking mapping:

| Link type / selector | Applied attribute |
| -------------------- | ----------------- |
| Normal text links | `xt="SPCLICK"` |
| `mailto:` email links | `xt="SPEMAIL"` |
| View in browser link (`#SPCLICKTOVIEW`) | `xt="SPCLICKTOVIEW"` |
| One-click opt-out (unsubscribe) link (`#SPONECLICKOPTOUT`) | `xt="SPONECLICKOPTOUT"` |
| Linked images | `xt="SPIMAGE"` |

---

---
url: "/emailify/integrations/activecampaign.md"
description: "Emailify includes a built-in integration with ActiveCampaign, which lets you upload HTML emails directly from the Figma plugin directly to your ActiveCampaign templates."
---

# Uploading your emails to ActiveCampaign

> Emailify includes a built-in integration with ActiveCampaign, which lets you upload HTML emails directly from the Figma plugin directly to your ActiveCampaign templates.

### Video Tutorial: Uploading your emails to ActiveCampaign

This video walks through how to upload HTML emails from the Figma Emailify plugin to ActiveCampaign.
[Embedded media](https://www.youtube.com/embed/TgCROp1QHsg)

In the Emailify export panel, select the **ActiveCampaign** option from the dropdown list, then paste in a valid ActiveCampaign URL and API key, which can be generated from your [ActiveCampaign account](https://help.activecampaign.com/hc/en-us/articles/207317590-Getting-started-with-the-API#how-to-obtain-your-activecampaign-api-url-and-key) settings integrations page.

When you're ready, click the **Upload To ActiveCampaign** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your [ActiveCampaign templates](https://www.activecampaign.com/login).

---

---
url: "/emailify/integrations/activetrail.md"
description: "Emailify includes a built-in integration with ActiveTrail, which lets you upload HTML emails directly from the Figma plugin directly to your ActiveTrail templates."
---

# Uploading your emails to ActiveTrail

> Emailify includes a built-in integration with ActiveTrail, which lets you upload HTML emails directly from the Figma plugin directly to your ActiveTrail templates.

In the Emailify export panel, select the **ActiveTrail** option from the dropdown list, then paste in a valid ActiveTrail URL and API key, which can be generated from your [ActiveTrail account](https://www.activetrail.com/integrations/learning/guides/a-guide-to-accessing-activetrails-restful-api) settings integrations page.

When you're ready, click the **Upload To ActiveTrail** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your ActiveTrail templates.

---

---
url: "/emailify/integrations/amazon-ses.md"
description: "Emailify includes a built-in integration with Amazon Simple Email Service (SES) on AWS, which lets you upload HTML emails directly from the Figma plugin directly to your SES templates."
---

# Uploading your emails to Amazon SES

> Emailify includes a built-in integration with Amazon Simple Email Service (SES) on AWS, which lets you upload HTML emails directly from the Figma plugin directly to your SES templates.

### Video Tutorial: Export HTML emails from Figma to Amazon Simple Email Service (SES)

This video walks through how to upload HTML emails from the Figma Emailify plugin to Amazon Simple Email Service (SES).
[Embedded media](https://www.youtube.com/embed/6kC4wbapV88)

In the Emailify export panel, select the **SES (AWS)** option from the dropdown list, then paste in a valid AWS API **Access Key** and **Access Secret**, which can be generated from inside your AWS account [IAM](https://aws.amazon.com/iam/) (Identity and Access Management) page.

When you're ready, click the **Upload To SES** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your SES templates list (which you can use the AWS SES [getEmailTemplate](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_GetEmailTemplate.html) API endpoint to consume as needed).

---

---
url: "/emailify/integrations/aweber.md"
description: "Emailify includes a Aweber export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform."
---

# Uploading your emails to Aweber

> Emailify includes a Aweber export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform.

### Video Tutorial: Export HTML emails from Figma to Aweber

This video walks through how to upload HTML emails from the Figma Emailify plugin to Aweber.
[Embedded media](https://www.youtube.com/embed/WpBJ0B8XrUc)

In the Emailify export panel, select the **Aweber** option from the dropdown list, when you're ready, click the **Export For Aweber** button to start exporting the emails you've selected from Figma to HTML.

Once the HTML has been exported, you need to manually upload your HTML templates to Aweber, by following the video tutorial above.

---

---
url: "/emailify/integrations/bazaarvoice.md"
description: "Emailify includes a Bazaarvoice export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform."
---

# Uploading your emails to Bazaarvoice

> Emailify includes a Bazaarvoice export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform.

In the Emailify export panel, select the **Bazaarvoice** option from the dropdown list, when you're ready, click the **Export For Bazaarvoice** button to start exporting the emails you've selected from Figma to HTML.

Once the HTML has been exported, you need to manually upload your HTML templates to Bazaarvoice by reaching out to their support team, as per [their docs here](https://knowledge.bazaarvoice.com/wp-content/conversations-prr/en_US/design_services/email_template_options.html).

> **Note:** Bazaarvoice can add your provided HTML email templates via a support ticket (at no additional cost) for a limited number of email templates.

---

---
url: "/emailify/integrations/benchmark-email.md"
description: "Emailify includes a Benchmark Email export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform."
---

# Uploading your emails to Benchmark Email

> Emailify includes a Benchmark Email export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform.

### Video Tutorial: Export HTML emails from Figma to Benchmark Email

This video walks through how to upload HTML emails from the Figma Emailify plugin to Benchmark Email.
[Embedded media](https://www.youtube.com/embed/KYIdqjManjg)

In the Emailify export panel, select the **Benchmark Email** option from the dropdown list, when you're ready, click the **Export For Benchmark Email** button to start exporting the emails you've selected from Figma to HTML.

Once the HTML has been exported, you need to manually upload your HTML templates to Benchmark Email, by following the video tutorial above.

> **Note:** Note, you will need a paid (Pro or Enterprise) Benchmark Email account to be able to upload custom HTML templates to their platform.

---

---
url: "/emailify/integrations/bento.md"
description: "Emailify includes a Bento export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform."
---

# Uploading your emails to Bento

> Emailify includes a Bento export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform.

### Video Tutorial: Export HTML emails from Figma to Bento

This video walks through how to upload HTML emails from the Figma Emailify plugin to Bento.
[Embedded media](https://www.youtube.com/embed/iv2PWcrxthQ)

In the Emailify export panel, select the **Bento** option from the dropdown list, when you're ready, click the **Export For Bento** button to start exporting the emails you've selected from Figma to HTML.

Once the HTML has been exported, you need to manually upload your HTML templates to Bento, by following the video tutorial above.

---

---
url: "/emailify/integrations/bloomreach.md"
description: "Emailify's Bloomreach export creates complete HTML emails ready to manually import into Bloomreach's HTML Builder."
---

# Uploading your emails to Bloomreach

> Emailify's Bloomreach export creates complete HTML emails ready to manually import into Bloomreach's HTML Builder.

In the Emailify export panel, select the **Bloomreach** option from the dropdown list. When you're ready, click the **Export For Bloomreach** button to export the emails you've selected from Figma to HTML.

## Importing a complete Emailify template

Use Bloomreach's **HTML Builder** when importing a complete Emailify email:

1. Unzip the Emailify export.
2. Open the email's `index.html` file in a text or code editor.
3. Create or open an email in Bloomreach's **HTML Builder**.
4. Switch to **Code** mode and replace the existing code with the complete contents of `index.html`, including its `` and ``.
5. Save the email and send a test before using it in a campaign.

> **Warning:** Use the **HTML Builder**, rather than an **HTML content block** inside Bloomreach's Design Builder, when importing a complete Emailify export.

Emailify includes responsive CSS in the email's `` to apply desktop column widths, along with conditional table markup for versions of Outlook that need a separate fallback. Bloomreach's Design Builder treats its HTML content block as a body fragment, so it may move the responsive styles into the email body and remove the Outlook-specific markup. When that happens, columns can stack on desktop instead of displaying side by side.

See Bloomreach's guide to [using the HTML Builder](https://documentation.bloomreach.com/engagement/docs/email-editors#html-builder) for more details.

## Using an Emailify section in the Design Builder

If you need to place an Emailify section inside a Design Builder email, you can try splitting the exported code:

1. Copy the `` tags from the exported `` into **Settings** -> **Custom Head HTML** in Bloomreach.
2. Copy only the content between the exported `` and `` tags into the Design Builder's HTML content block.

> **Note:** This can restore the responsive CSS for email clients that support it, but the Design Builder may still remove Emailify's Outlook-specific conditional markup. Test the result in Gmail, Apple Mail, and desktop Outlook before sending. For the most reliable compatibility, use the complete export in Bloomreach's HTML Builder.

See Bloomreach's guide to [Custom Head HTML](https://documentation.bloomreach.com/engagement/docs/email-editors#custom-head-html) for more details.

---

---
url: "/emailify/integrations/blueshift.md"
description: "Emailify includes a built-in integration with Blueshift, which lets you upload HTML emails directly from the Figma plugin directly to your Blueshift templates."
---

# Uploading your emails to BlueShift

> Emailify includes a built-in integration with Blueshift, which lets you upload HTML emails directly from the Figma plugin directly to your Blueshift templates.

In the Emailify export panel, select the **Blueshift** option from the dropdown list, then paste in a valid Blueshift API key, which can be generated from your [Blueshift account](https://developer.blueshift.com/reference/authorization-1#obtain-the-api-keys) settings page.

When you're ready, click the **Upload To Blueshift** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your Blueshift templates.

---

---
url: "/emailify/integrations/braze.md"
description: "Emailify includes a built-in integration with Braze, which lets you upload HTML emails directly from the Figma plugin directly to your Braze templates."
---

# Uploading your emails to Braze

> Emailify includes a built-in integration with Braze, which lets you upload HTML emails directly from the Figma plugin directly to your Braze templates.

### Video Tutorial: Uploading your emails to Braze

This video walks through how to upload HTML emails from the Figma Emailify plugin to Braze.
[Embedded media](https://www.youtube.com/embed/6GnG-rTdQl8)

In the Emailify export panel, select the **Braze (API)** option from the dropdown list, then paste in a valid Braze [API key and REST endpoint region](https://www.braze.com/docs/api/basics/), which can be found and generated via your Braze dashboard page.

> **Note:** To _create_ emails to braze, you’ll need a Braze API key with the **templates.email.create** permission enabled.

When you're ready, click the **Upload To Braze** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your Braze marketing templates; which you can view  by logging into your Braze account, clicking the **Templates** sidebar item, clicking **Email Templates**, then clicking the **HTML Editor** option and browsing the **Saved HTML Templates** list below.

## Important: Disable Inline CSS Setting

If the [Braze Inline CSS setting](https://www.braze.com/docs/user_guide/message_building_by_channel/email/html_editor/css_inline) is active in your Braze account, this will re-process your HTML by moving styles from a CSS stylesheet into the body of your HTML email, which has already been handled by Emailify, so if this toggle is enabled, it will strip out other styles and break part of your layout on mobile and desktop.

> **Warning:** Please ensure that the **Enable Inline CSS** in the **Sending Settings** -> **Advanced** section is _disabled_. Emailify automatically inlines and minifies the HTML, and re-processing it in Braze will break the code.

> **Tip:** To turn off Inline CSS for a single email, navigate to the **Edit Sending Info** -> **Advanced** tab of the Drag & Drop Editor in Braze and _disable_ **Inline CSS**. This can also be set globally in Braze via  **Settings** -> **Email Preferences**.

> **Note:** If you are using an older version of Braze, you can find the the Global Inline CSS toggle (to turn off) in **Manage Settings** -> **Email Settings** -> **Inline CSS**

## Updating Braze Templates uploaded from Emailify

If you want to have your Braze templates automatically _update_ instead of being created as new templates each time, you can optionally enable the **Enable Updatable Templates** toggle in the plugin's export settings (when the _Braze (API)_ option is selected).

This will automatically append a `brazeTemplateId` value to the Figma frame's layer name that was uploaded, and then re-use that ID when the same frame is re-uploaded to Braze via the API upon the next export from the plugin.

> **Tip:** Note, you will need to **ensure the _Enable Updatable Templates_ toggle is also enabled _prior_ to uploading your initial template**, as this will append the _Braze Template ID_ of the original template that's uploaded to Braze into your FIgma frame name; this ID will then be used for any future re-uploads to update that same template in your Braze account (instead of creating a new one each time), provided that the _Enable Updatable Templates_ toggle remains enabled, too).

> **Note:** To _update_ emails in Braze, you’ll need a Braze API key with the **templates.email.update** permission enabled.

## Universal links and App Links (SparkPost)

To turn any of [your Emailify links](https://docs.hypermatic.com/emailify/content/link-images) into a [universal link for SparkPost](https://www.braze.com/docs/user_guide/message_building_by_channel/email/universal_links/#sparkpost), you can add `[[data-msys-sublink='open-in-app']]` to the end of your URL (for example, `http://www.example.com[[data-msys-sublink='open-in-app']]`), which will automatically include that `data-msys-sublink` data attribute in your `` link tag (for example, ``).

Then, make sure your app is set up to handle the custom path properly. Refer to SparkPost’s article on [Using SparkPost click tracking on deep links](https://support.sparkpost.com/docs/tech-resources/deep-links-self-serve#preferred-solution-using-sparkpost-click-tracking-on-deep-links). This article contains example code for [iOS](https://support.sparkpost.com/docs/tech-resources/deep-links-self-serve#ios-swift-forwarding-clicks-to-sparkpost) and [Android](https://support.sparkpost.com/docs/tech-resources/deep-links-self-serve#forwarding-clicks-from-android-to-sparkpost).

## Universal links and App Links (SendGrid)

To turn any of [your Emailify links](https://docs.hypermatic.com/emailify/content/link-images) into a [universal link for SendGrid](https://www.braze.com/docs/user_guide/message_building_by_channel/email/universal_links/#sendgrid), you can add `[[universal='true']]` to the end of your URL (for example, `http://www.example.com[[universal='true']]`), which will automatically include that `universal` data attribute in your `` link tag (for example, ``).

Then, make sure your app is set up to handle the custom path properly. Refer to SendGrid’s article on [Using SendGrid click tracking on deep links](https://www.twilio.com/docs/sendgrid/ui/sending-email/universal-links). This article contains example code for [iOS](https://www.twilio.com/docs/sendgrid/ui/sending-email/universal-links#resolving-links-in-ios) and [Android](https://www.twilio.com/docs/sendgrid/ui/sending-email/universal-links#resolving-links-in-android).

---

---
url: "/emailify/integrations/brevo.md"
description: "Emailify includes a built-in integration with Brevo, which lets you upload HTML emails directly from the Figma plugin directly to your Brevo templates."
---

# Uploading your emails to Brevo

> Emailify includes a built-in integration with Brevo, which lets you upload HTML emails directly from the Figma plugin directly to your Brevo templates.

> **Note:** Brevo was [formerly known as Sendinblue](https://www.brevo.com/blog/becoming-brevo/)

### Video Tutorial: Uploading your emails to Brevo

This video walks through how to upload HTML emails from the Figma Emailify plugin to Brevo (formerly called "Sendinblue").
[Embedded media](https://www.youtube.com/embed/8BJN16U_IHg)

In the Emailify export panel, select the **Brevo** option from the dropdown list, then paste in a valid Brevo API key and sender email address, which can be generated from your Brevo account [API settings](https://app.brevo.com/settings/keys/api) page, and from the [Senders](https://app.brevo.com/senders) page.

When you're ready, click the **Upload To Brevo** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your [Brevo marketing templates](https://my.brevo.com/camp/lists/template).

---

---
url: "/emailify/integrations/buttondown.md"
description: "Emailify includes a built-in integration with Buttondown, which lets you upload HTML emails directly from the Figma plugin to Buttondown drafts."
---

# Uploading your emails to Buttondown

> Emailify includes a built-in integration with Buttondown, which lets you upload HTML emails directly from the Figma plugin to Buttondown drafts.

In the Emailify export panel, select the **Buttondown** option from the dropdown list, then paste in a valid Buttondown API key.

When you're ready, click the **Upload To Buttondown** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to Buttondown as draft emails.

---

---
url: "/emailify/integrations/campaign-monitor.md"
description: "Emailify includes a built-in integration with Campaign Monitor, which lets you upload HTML emails directly from the Figma plugin directly to your Campaign Monitor templates."
---

# Uploading your emails to Campaign Monitor

> Emailify includes a built-in integration with Campaign Monitor, which lets you upload HTML emails directly from the Figma plugin directly to your Campaign Monitor templates.

### Video Tutorial: Uploading your emails to Campaign Monitor

This video walks through how to upload HTML emails from the Figma Emailify plugin to Campaign Monitor.
[Embedded media](https://www.youtube.com/embed/vyAsh8v8GLE)

In the Emailify export panel, select the **Campaign Monitor** option from the dropdown list, then paste in a valid Campaign Monitor **API key** and **Client ID**, which can be generated from your [Campaign Monitor account settings](https://help.campaignmonitor.com/api-keys) page.

When you're ready, click the **Upload To Campaign Monitor** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your Campaign Monitor **My templates** page.

---

---
url: "/emailify/integrations/cheetah-digital.md"
description: "Emailify includes a built-in integration with Cheetah Digital by Marigold, which lets you upload HTML emails directly from the Figma plugin directly to your Cheetah Digital content blocks."
---

# Uploading your emails to Cheetah Digital

> Emailify includes a built-in integration with Cheetah Digital by Marigold, which lets you upload HTML emails directly from the Figma plugin directly to your Cheetah Digital content blocks.

1. In the Emailify export panel, select the **Cheetah Digital** option from the dropdown list.
2. Paste in a valid Cheetah Digital **Consumer Key** and **Consumer Secret** (under the **OAuth 2.0** section), which can be found in your Cheetah Digital account's **Data** -> [API Keys](https://login.eccmp.com/ux/Ux/Main#API-Keys) page.
3. After you've authenticated with your Engage+ account, you need to enter your **Customer ID** into the Emailify plugin (which your Marigold representative will provide you; so please email them if you don't have your Customer ID yet).
4. Finally, you can select any **Table** and **Folder** options from the dropdown menus (underneath your Customer ID field) in the Emailfiy plugin.
5. When you're ready, click the **Upload To Cheetah Digital** button to start exporting the emails you've selected from Figma to HTML, and have them automatically uploaded to your Cheetah Digital account as new _content blocks_.

---

---
url: "/emailify/integrations/constant-contact.md"
description: "Emailify includes a Constant Contact export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform."
---

# Uploading your emails to Constant Contact

> Emailify includes a Constant Contact export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform.

### Video Tutorial: Export HTML emails from Figma to Constant Contact

This video walks through how to upload HTML emails from the Figma Emailify plugin to Constant Contact.
[Embedded media](https://www.youtube.com/embed/XDjtuc0XWKI)

In the Emailify export panel, select the **Constant Contact** option from the dropdown list, when you're ready, click the **Export For Constant Contact** button to start exporting the emails you've selected from Figma to HTML.

Once the HTML has been exported, you need to manually upload your HTML templates to Constant Contact, by following the video tutorial above.

---

---
url: "/emailify/integrations/contlo.md"
description: "Emailify includes a Contlo export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform."
---

# Uploading your emails to Contlo

> Emailify includes a Contlo export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform.

In the Emailify export panel, select the **Contlo** option from the dropdown list, when you're ready, click the **Export For Contlo** button to start exporting the emails you've selected from Figma to HTML.

Once the HTML has been exported, you need to manually upload your HTML templates to Contlo via the **Custom HTML** option, by [following the instructions in the Contlo documentation](https://docs.contlo.com/docs/create-and-send-an-email-campaign) site.

---

---
url: "/emailify/integrations/convertkit.md"
description: "Emailify includes a ConvertKit export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform."
---

# Uploading your emails to ConvertKit

> Emailify includes a ConvertKit export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform.

### Video Tutorial: Export HTML emails from Figma to ConvertKit

This video walks through how to upload HTML emails from the Figma Emailify plugin to ConvertKit.
[Embedded media](https://www.youtube.com/embed/I8kwRdvwf8k)

In the Emailify export panel, select the **ConvertKit** option from the dropdown list, when you're ready, click the **Export For ConvertKit** button to start exporting the emails you've selected from Figma to HTML.

Once the HTML has been exported, you need to manually upload your HTML templates to ConvertKit, by following the video tutorial above.

---

---
url: "/emailify/integrations/customer-io.md"
description: "Emailify includes a direct Customer.io API upload option for Design Studio emails or reusable templates, plus a ZIP export option for manually copying HTML into Customer.io."
---

# Uploading your emails to Customer.io

> Emailify includes a direct Customer.io API upload option for Design Studio emails or reusable templates, plus a ZIP export option for manually copying HTML into Customer.io.

### Video Tutorial: Uploading your emails to Customer.io

This video walks through how to manually upload HTML emails from the Figma Emailify plugin to Customer.io.
[Embedded media](https://www.youtube.com/embed/KQyaQy6gYps)

Emailify includes two Customer.io export options:

- **Customer.io (API)** uploads your emails directly to Customer.io Design Studio as emails or reusable email templates.
- **Customer.io (Zip)** exports a ZIP file that you can manually copy into Customer.io.

## Uploading directly to Customer.io Design Studio

In the Emailify export panel, select the **Customer.io (API)** option from the dropdown list, then paste in a valid Customer.io [App API Key](https://docs.customer.io/integrations/api/app/) and choose the matching Customer.io region for your workspace.

> **Note:** If your Customer.io workspace is hosted in the EU, choose the **EU** region in Emailify. Otherwise, keep the default **US** region selected.

Use the **Upload As** setting to choose whether Emailify creates reusable email templates or regular Design Studio emails in Customer.io. This defaults to **Template** for backwards compatibility. When you're ready, click the **Upload To Customer.io** button to start exporting the emails you've selected from Figma to HTML, and have them automatically uploaded to Customer.io Design Studio.

> **Note:** You’ll need a Customer.io App API key that can create Design Studio emails in your Customer.io workspace.

When uploading via the Customer.io API, Emailify uploads supported email images to [Customer.io Assets](https://docs.customer.io/integrations/api/app/#tag/assets/createAsset) by default. It will use an `emailify` folder in Customer.io Assets, creating that folder automatically if it does not already exist. Images that Customer.io Assets cannot accept, including images over Customer.io's 2 MB file limit, are uploaded to Hypermatic as a fallback so the Design Studio email or template can still reference a hosted image URL.

## Updating Customer.io emails and templates uploaded from Emailify

If you want to have your Customer.io emails or templates automatically _update_ instead of being created as new items each time, you can optionally enable the **Enable Updatable Templates** toggle in the plugin's export settings (or **Enable Updatable Emails** when the **Upload As** setting is set to **Email**).

This will automatically append a `customerioEmailId` or `customerioTemplateId` value to the Figma frame's layer name that was uploaded, and then re-use that ID when the same frame is re-uploaded to Customer.io via the API upon the next export from the plugin.

> **Tip:** Note, you will need to **ensure the _Enable Updatable Templates_ or _Enable Updatable Emails_ toggle is also enabled _prior_ to uploading your initial email or template**, as this will append the original Customer.io email or template ID into your Figma frame name; this ID will then be used for any future re-uploads to update that same item in your Customer.io account (instead of creating a new one each time), provided that the updatable toggle remains enabled, too.

> **Note:** To _update_ emails or templates in Customer.io, you’ll need to use an App API key for the same Customer.io workspace and region that originally received the upload.

## Manually uploading a ZIP export to Customer.io

In the Emailify export panel, select the **Customer.io (Zip)** option from the dropdown list, then when you're ready, click the **Export For Customer.io** button to start exporting the emails you've selected from Figma to HTML.

Once the export is finished, download the .zip file to your computer and unzip it, then open the `index.html` file inside the folder with your email name in a code/text editor and copy all the HTML in the file, then:

- [Login](https://fly.customer.io/login) to your Customer.io account
- Expand the **Content** menu item in the admin navigation
- Then click the **Email Layouts** menu item
- Click the **Create Layout** button
- Click the **Start from scratch** option
- Name your layout and click **Create Layout**.
- Paste your copied HTML from the exported index.html file into the **Edit** tab editor.
- Click the **Save changes** button.

## Creating a totally blank layout in Customer.io

> **Warning:** **Make sure you're using a totally blank layout!** By default, Customer.io will automatically add its own extra HTML tags (for example, head, body, etc) to any new layout created; you need to ensure that this code is removed, otherwise your HTML template will look broken when it's sent out.

In Customer.io, when you start creating an email, you need to select a [Layout](https://customer.io/docs/journeys/3-layouts-and-customerio/), and this needs to be totally blank, so that your own custom HTML template is the only thing that gets rendered.

![Selecting a Customer.io email layout](/assets/images/emailify/customer-io-one.jpg)

As you can see in the screenshot below, selecting a **Layout** that looks blank, isn't actually blank (as it has those `` tags automatically included and wrapping around your HTML template content)

![Default HTML in a Customer.io layout](/assets/images/emailify/customer-io-two.jpg)

To fix this, you need to manually remove any HTML that Customer.io adds to your blank Layout, and only leave the `content` tag (below).

![Blank Customer.io layout with only the content tag](/assets/images/emailify/customer-io-three.jpg)

After the **Layout** has been saved and only contains the `content` tag, your custom HTML template should render as expected.

---

---
url: "/emailify/integrations/dotdigital.md"
description: "Emailify includes a built-in integration with DotDitigal, which lets you upload HTML emails directly from the Figma plugin directly to your DotDitigal templates."
---

# Uploading your emails to DotDitigal

> Emailify includes a built-in integration with DotDitigal, which lets you upload HTML emails directly from the Figma plugin directly to your DotDitigal templates.

In the Emailify export panel, select the **DotDitigal** option from the dropdown list, then paste in a valid DotDitigal API user details , which can be generated from your [DotDitigal account](https://developer.dotdigital.com/docs/getting-started-with-the-api#setting-up-your-api-user) settings page. Then you'll also need to select your [region](https://developer.dotdigital.com/docs/api-conventions#region-specific-end-points) from the drop down list in the plugin.

When you're ready, click the **Upload To DotDitigal** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your DotDitigal templates.

---

---
url: "/emailify/integrations/drip.md"
description: "Emailify includes a Drip export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform."
---

# Uploading your emails to Drip

> Emailify includes a Drip export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform.

### Video Tutorial: Export HTML emails from Figma to Drip

This video walks through how to upload HTML emails from the Figma Emailify plugin to Drip.
[Embedded media](https://www.youtube.com/embed/T-VmrIW9e7c)

In the Emailify export panel, select the **Drip** option from the dropdown list, when you're ready, click the **Export For Drip** button to start exporting the emails you've selected from Figma to HTML.

Once the HTML has been exported, you need to manually upload your HTML templates to Drip, by following the video tutorial above.

---

---
url: "/emailify/integrations/emailoctopus.md"
description: "Emailify includes a EmailOctopus export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform."
---

# Uploading your emails to EmailOctopus

> Emailify includes a EmailOctopus export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform.

### Video Tutorial: Export HTML emails from Figma to EmailOctopus

This video walks through how to upload HTML emails from the Figma Emailify plugin to EmailOctopus.
[Embedded media](https://www.youtube.com/embed/SxoknO-JXSM)

In the Emailify export panel, select the **EmailOctopus** option from the dropdown list, when you're ready, click the **Export For EmailOctopus** button to start exporting the emails you've selected from Figma to HTML.

Once the HTML has been exported, you need to manually upload your HTML templates to EmailOctopus, as per [their docs here](https://help.emailoctopus.com/article/50-create-or-import-a-template) (or follow the step by step video tutorial above).

---

---
url: "/emailify/integrations/emarsys.md"
description: "Emailify includes a built-in integration with Emarsys, which lets you upload HTML emails directly from the Figma plugin directly to your Emarsys campaigns."
---

# Uploading your emails to Emarsys

> Emailify includes a built-in integration with Emarsys, which lets you upload HTML emails directly from the Figma plugin directly to your Emarsys campaigns.

## Setting up your your Emarsys API Key

To upload your email campaigns from any Emailify Figma designs, you need to create a WSSE key in Emarsys, set the permissions for it, and then use the generated API key credentials to connect Emailify to your Emarsys account.

### Creating your Emarsys WSSE key

The first step is to [create your WSSE key in Emarsys](https://help.emarsys.com/hc/en-us/articles/22036625729554-Security-settings-API-Credentials#wsse) (Note that you need to be an **account owner** to have permission to do this) and then navigate to **Management** -> **Security Settings** -> **API Credentials** to create your WSSE key.

### Setting your API key permissions

After you've created your key and stored your username and key somewhere safe (to paste into the Emailify Figma plugin in the next step below), you will also need to enable the [API endpoint permissions](https://dev.emarsys.com/docs/emarsys-core-api-guides/ef41493bd7812-endpoint-permission-settings) below for the API integration to work as expected:

- `campaign.create`
- `campaign.update`
- `contactlist.list`

## Uploading your HTML from Emailify

In the Emailify export panel, select the **Emarsys** option from the dropdown list, then paste in a valid Emarsys API credentials (as per the previous step above); once Emarsys is authenticated in the plugin, you need to select the **Contact List** you'd like the campaign to be sent to later, along with the **From Name** and **From Email** address that the campaign will be sent from later, too.

When you're ready, click the **Upload To Emarsys** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your Emarsys campaigns.

## Updating Emarsys Templates uploaded from Emailify

If you want to have your Emarsys templates automatically _update_ instead of being created as new templates each time, you can optionally enable the **Enable Updatable Templates** toggle in the plugin's export settings (when the _Emarsys_ option is selected).

This will automatically append a `emarsysTemplateId` value to the Figma frame's layer name that was uploaded, and then re-use that ID when the same frame is re-uploaded to Emarsys via the API upon the next export from the plugin.

> **Note:** Note, you will _need_ to enable the `campaign.update` permission on your Emarsys WWSE key for this to work.

> **Tip:** Note, you will need to **ensure the _Enable Updatable Templates_ toggle is also enabled _prior_ to uploading your initial template**, as this will append the _Emarsys Template ID_ of the original template that's uploaded to Emarsys into your FIgma frame name; this ID will then be used for any future re-uploads to update that same template in your Emarsys account (instead of creating a new one each time), provided that the _Enable Updatable Templates_ toggle remains enabled, too).

---

---
url: "/emailify/integrations/getresponse.md"
description: "Emailify includes a GetResponse export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform."
---

# Uploading your emails to GetResponse

> Emailify includes a GetResponse export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform.

### Video Tutorial: Export HTML emails from Figma to GetResponse

This video walks through how to upload HTML emails from the Figma Emailify plugin to GetResponse.
[Embedded media](https://www.youtube.com/embed/_WtsjQmQV-I)

In the Emailify export panel, select the **GetResponse** option from the dropdown list, when you're ready, click the **Export For GetResponse** button to start exporting the emails you've selected from Figma to HTML.

Once the HTML has been exported, you need to manually upload your HTML templates to GetResponse, by following the video tutorial above.

---

---
url: "/emailify/integrations/hubspot.md"
description: "Emailify includes a built-in integration with HubSpot, which lets you upload HTML emails directly from the Figma plugin directly to your HubSpot templates."
---

# Uploading your emails to HubSpot

> Emailify includes a built-in integration with HubSpot, which lets you upload HTML emails directly from the Figma plugin directly to your HubSpot templates.

> **Warning:** As per the [HubSpot docs](https://knowledge.hubspot.com/design-manager/build-a-custom-coded-template) for custom HTML emails: a **Marketing Hub Professional** or **Enterprise account** is required to build custom coded email templates.

In the Emailify export panel, select the **HubSpot** option from the dropdown list, then paste in a valid HubSpot Private App API key, which can be generated from your HubSpot account by creating a new [Private App](https://developers.hubspot.com/docs/api/migrate-an-api-key-integration-to-a-private-app#create-a-new-private-app) from the **Integrations** -> **Private Apps** page in your HubSpot account settings by following then steps below:

1. Click the **Create private app** button
2. On the **Basic Info** tab, give the private a name (for example, **Emailify**)
3. Then on the **Scopes** tab, search for `content` and tick the **content** checkbox.
4. Click the **Create app** button, then click **Continue creating**
5. Click the **Show token** button, then click the **Copy** button
6. Store this key somewhere safe (for future re-use/reference)
7. Go back to Emailify and paste it in the **HubSpot API** key input

When you're ready, click the **Upload To HubSpot** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your [HubSpot templates](https://app.hubspot.com/).

## Important note on editing HTML emails in HubSpot

Unfortunately, HubSpot doesn’t offer a visual editor for custom HTML emails in the same way tools like Mailchimp or Klaviyo do. Once an HTML email is uploaded to HubSpot, any changes need to be made directly in their code editor.

HubSpot does support modules (reusable custom code blocks), but these are fairly complex to set up, must be managed manually, and don’t work especially well for one-off or campaign-based emails.

Recommended workaround:
If you’d like to use Emailify with HubSpot, the simplest approach is to invite your team into the same Figma file. Teammates can edit text and images directly in Figma, and once everything is final, you can export and upload the email to HubSpot from the plugin.

It’s not perfect, but this workflow avoids HubSpot’s editor limitations and keeps content edits fast and collaborative.

---

---
url: "/emailify/integrations/insider.md"
description: "Emailify includes a built-in integration with Insider, which lets you upload HTML emails directly from the Figma plugin as Insider campaigns or reusable templates."
---

# Uploading your emails to Insider

> Emailify includes a built-in integration with Insider, which lets you upload HTML emails directly from the Figma plugin as Insider campaigns or reusable templates.

### Video Tutorial: Export HTML emails from Figma to Insider (UseInsider)

This video walks through how to upload HTML emails from the Figma Emailify plugin to Insider (UseInsider).
[Embedded media](https://www.youtube.com/embed/uZAXjEmKhJ0)

> **Note:** The video above shows the original campaign upload flow. Emailify now includes a **Destination** dropdown that lets you upload to either Insider campaign content or the Insider template library.

In the Emailify export panel, select the **Insider** option from the dropdown list, then choose either **Campaign** or **Template** from the **Destination** dropdown and paste in a valid Insider API key, which can be generated from your Insider account by [generating a new API key](https://academy.useinsider.com/docs/api-authentication-tokens#generate-api-key) by following the steps below:

1. Navigate to **Settings** -> **Inone Settings** -> **Integration Settings** while logged into the Insider platform.
2. Click the **Generate API Key** button at the bottom of the _Integration Settings_ page.
3. Select the correct key type in the _API Key Type_ panel for the destination you're using:

   - Choose **Email Content** if you're uploading to **Campaign**.
   - Choose **Email Content and Templates** if you're uploading to **Template**.

4. Click the **Next** button to generate the API key.
5. Click the **Copy** button to copy your API key.
6. Go back to Emailify and paste it in the **Insider API** key input.

When you're ready, click the **Upload To Insider** button to start exporting the emails you've selected from Figma to HTML.

- If you selected **Campaign**, Emailify will upload your HTML to Insider's campaign content area under [**Messages** -> **Email**](https://inone.useinsider.com/login).
- If you selected **Template**, Emailify will upload your HTML to Insider's reusable template library under [**Email** -> **Templates**](https://inone.useinsider.com/login).

---

---
url: "/emailify/integrations/intercom.md"
description: "Emailify includes a Intercom export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform."
---

# Uploading your emails to Intercom

> Emailify includes a Intercom export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform.

### Video Tutorial: Export HTML emails from Figma to Intercom

This video walks through how to upload HTML emails from the Figma Emailify plugin to Intercom.
[Embedded media](https://www.youtube.com/embed/U14GJx6k4mM)

In the Emailify export panel, select the **Intercom** option from the dropdown list, when you're ready, click the **Export For Intercom** button to start exporting the emails you've selected from Figma to HTML.

Once the HTML has been exported, you need to manually upload your HTML templates to Intercom, as per [their docs here](https://www.intercom.com/help/en/articles/245-creating-html-emails) or [here](https://www.intercom.com/help/en/articles/247-create-html-email-templates).

---

---
url: "/emailify/integrations/iterable.md"
description: "Emailify includes a built-in integration with Iterable, which lets you upload HTML emails directly from the Figma plugin directly to your Iterable templates."
---

# Uploading your emails to Iterable

> Emailify includes a built-in integration with Iterable, which lets you upload HTML emails directly from the Figma plugin directly to your Iterable templates.

In the Emailify export panel, select the **Iterable** option from the dropdown list, then paste in a valid Iterable API key, which can be generated from your Iterable account [API Keys](https://support.iterable.com/hc/en-us/articles/360043464871-API-Keys#creating-api-keys) settings page.

When you're ready, click the **Upload To Iterable** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your Iterable templates.

---

---
url: "/emailify/integrations/klaviyo.md"
description: "Emailify includes a built-in integration with Klaviyo, which lets you upload HTML emails directly from the Figma plugin directly to your Klaviyo templates."
---

# Uploading your emails to Klaviyo

> Emailify includes a built-in integration with Klaviyo, which lets you upload HTML emails directly from the Figma plugin directly to your Klaviyo templates.

### Video Tutorial: Uploading your emails to Klaviyo

This video walks through how to upload HTML emails from the Figma Emailify plugin to Klaviyo.
[Embedded media](https://www.youtube.com/embed/7OCqmOsrAYk)

> **Tip:** If you need Klaviyo template links (for example, `{{ event.url }}`) in your [text paragraphs](/emailify/content/link-paragraphs), Figma's native link field will block them as invalid URLs. To get around this, you can use Emailify's special Klaviyo link format instead, `https://klaviyo.invalid/?{{ event.url }}`, and Emailify will output the raw Klaviyo template syntax in your exported HTML.

In the Emailify export panel, select the **Klaviyo** option from the dropdown list, then paste in a valid Klaviyo private API key (via the steps below):

1. Login to Klaviyo and go your [Klaviyo API Keys settings page](https://www.klaviyo.com/settings/account/api-keys).
2. Click the **Create Private API Key** button.
3. Give it a name (for example, "Emailify API Key") and click the **Custom Key** radio button.
4. Set the  **Templates** API Scopes radio button to **Read/Write Access** (all other API scopes can can be left as _No Access_).
5. Click the **Copy** icon button under the **Your Private Key** section on the API creation success screen.
6. Paste your copied API key (which should look something like `pk_b3338b071136f98817d2a0e0a9581137ee`) into the Emailify plugin.

When you're ready, click the **Upload To Klaviyo** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your [Klaviyo templates](https://www.klaviyo.com/email-templates/list) page.

> **Info:** If your HTML email size is under 102kb, but your email is still being clipped in Gmail after being sent from Klaviyo, this is caused by having link tracking turned on in Klaviyo, which automatically swaps your original link URLs into much longer "tracking URLs" and increases the file size of your HTML that's sent out. To prevent this from happening, you can optionally turn off the link tracking/GA setting in your Klaviyo account.

## Updating Klaviyo templates uploaded from Emailify

If you'd like Emailify to automatically update the same Klaviyo template instead of creating a new template each time, you can optionally enable the **Enable Updatable Templates** toggle in the plugin's export settings when the **Klaviyo** option is selected.

This will automatically append a `klaviyoTemplateId` value to the Figma frame name after the first successful upload, and Emailify will re-use that stored template ID the next time the same frame is uploaded to Klaviyo.

> **Tip:** Please make sure the **Enable Updatable Templates** toggle is enabled before you upload the template for the first time. That initial upload is what stores the original Klaviyo Template ID in your Figma frame name for future re-uploads.

> **Warning:** This only updates the saved template in your Klaviyo templates library. If that template has already been used in a Klaviyo campaign or flow, Klaviyo creates a copy for that message, so re-uploading from Emailify will not automatically replace those in-use copies.

## Using your uploaded Klaviyo email template in a campaign

1. Create a new [email campaign](https://www.klaviyo.com/campaigns) in Klaviyo
2. Click on your new template name in the **Email:saved** tab on the **Templates** page list.
3. Click the **Use template** button in the popup preview window.
4. Click the **Save** button on the code editor page (**this step is important**)
5. After "Your changes have been saved.", click the **Back to Content** button.
6. Schedule your email campaign as needed.

## A/B testing custom HTML templates in Klaviyo

Klaviyo supports A/B testing custom HTML emails, but creating the test automatically makes Variation B an identical copy of Variation A. To test two different Emailify designs:

1. In Figma, give the two Emailify frames clear names, for example, **Summer Sale - Test A** and **Summer Sale - Test B**. Emailify uses these frame names for the saved template names in Klaviyo.
2. Upload both frames to Klaviyo as separate saved templates.
3. Use the Test A template to create your Klaviyo campaign, then click **Create A/B test** above the subject line. Klaviyo will create Variation B as a copy of Variation A.
4. In another browser tab, open the saved Test B template under **Content > Templates**, open its code editor, and copy all of the HTML.
5. Return to the campaign, open Variation B, click **Edit**, replace the copied Test A HTML with the Test B HTML, and save your changes.
6. Give both variations descriptive names, then preview or test-send each version and review the plain-text version before scheduling the campaign.

> **Tip:** If you are testing the email design or content, keep the subject line and sender details the same so only one variable changes.

For more information about configuring the test and selecting a winning metric, read Klaviyo's [A/B testing guide](https://help.klaviyo.com/hc/en-us/articles/115005228148).

## Editable text/images in Klaviyo (optional)

> **Warning:** **IMPORTANT: Klaviyo's new editor adds automatic padding to editable text blocks and buttons**. Unfortunately, you will need to manually override each of these back to "0" to get the email looking like your original designs from Figma by following the video under the **Fixing Klaviyo's automatic padding overrides in editable campaigns** section below.

If you want to enable content blocks to be editable after the template has been uploaded to Klaviyo, enable the **Editable Content** toggle in the Emailify export options, and then follow the steps below in Klaviyo:

1. Create a new [email campaign](https://www.klaviyo.com/campaigns) in Klaviyo
2. Click the **Drag and Drop** option in the campaign **Content** step
3. Click the **My Templates** tab, then click on your new template
4. Click the **Save** button, then click **Back to Content**
5. Click the **Edit Email** button

### Fixing Klaviyo's automatic padding overrides in editable campaigns

[Video](/assets/videos/emailify/export/klaviyo-padding-overrides.mp4)

Due the Klaviyo [updating their editor](https://help.klaviyo.com/hc/en-us/articles/13160284274459), and forcing all templates to use it as of June 6th 2023; unfortunately, if you're exporting HTML emails with the **Editable Content** toggle enabled in Emailify, Klaviyo will automatically apply ~18px of additional padding around each text element by default, as an inline `style` attribute to a new `` element that it injects into the HTML if it's an editable template.

Enabling the **Force the padding added by Klaviyo's new editor to be 0px** toggle in Emailify does automatically add some extra CSS to remove this padding for all mobile clients and non-Outlook desktop clients like Gmail etc, however, _Outlook_ **will still render the padding** unless each of the "Padding" values for any editable text blocks in your template are manually changed to "0" when editing the email for your Campaign in the Klaviyo editor.

## Adding a dynamic product feed to your Klaviyo emails

### Video Tutorial: Adding a dynamic product feed to your Klaviyo emails

This video walks through how to add custom Klaviyo product feeds into custom HTML templates with the Emailify Figma Plugin.
[Embedded media](https://www.youtube.com/embed/PaRSIxVLYlo)

To add a dynamic Klaviyo [product feed](https://help.klaviyo.com/hc/en-us/articles/115005082787) to your HTML email template in Emailify, you have the option of using one of the component presets under the **Ecomm** tab in the Emailify plugin category tabs.

After you've added the component to your Emailify frame, you need to swap the `YOUR_KLAVIYO_PRODUCT_FEED_NAME_HERE` name in the component that's added with your own Klaviyo Product Feed name that you've created in your Klaviyo account as a product feed.

To use custom HTML product feeds in Klaviyo, you'll also need to ensure that the **Editable Content** toggle in the Emailify export options, which will allow you to drag and drop a default "Product" block from the Klaviyo editor's "Blocks" sidebar into your email after it's uploaded to your Klaviyo Templates.

It's worth following the video tutorial above to watch how to do this step by step, and ensure that your Klaviyo template is setup correctly, otherwise the data from your product feed may not show up if you haven't followed the steps correctly.

> **Note:** **If you need a hand with this**, please reach out to a developer on your team, or [your Klaviyo support rep](https://www.klaviyo.com/support), as we (Emailify) can't provide any technical expertise or assist with any custom implementations of this more advanced templating feature in Klaviyo.

### Manually adding editable region to drag/drop the Klaviyo Product Feed

Since 2025, it seems like you also need to manually include this editable region to your HTML template via Klaviyo's own HTML template code editor _first_ and re-save the template before using it in a campaign, to ensure the dynamic product feed loads any data:

```

        Drag and Drop your Klaviyo Product Feed Block Here

        NOTE: Remove this text element in Klaviyo's editor when you're done!

        Video Tutorial: https://www.youtube.com/watch?v=PaRSIxVLYlo

```

You can paste it in the line above: ` **Note:** **If you need a hand with this**, please reach out to a developer on your team, or [your Klaviyo support rep](https://www.klaviyo.com/support), as we (Emailify) can't provide any technical expertise or assist with any custom implementations of this more advanced templating feature in Klaviyo.

---

---
url: "/emailify/integrations/loops.md"
description: "Emailify includes a Loops.so export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform."
---

# Uploading your emails to Loops.so

> Emailify includes a Loops.so export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform.

### Video Tutorial: Export HTML emails from Figma to Loops.so

This video walks through how to upload HTML emails from the Figma Emailify plugin to Loops.so.
[Embedded media](https://www.youtube.com/embed/tPKd8R7gH1Q)

1. Click the **Export HTML** button in Emailify.
2. Select the **Loops** option from the dropdown list, then click the **Export For Loops** button.
3. Download and unzip the `.zip` file exported from Emailify.
4. Go to your Loops.so [Templates](https://app.loops.so/templates) page and click **Blank campaign**.
5. Click the **Upload a custom email** icon button in the top right of the Loops compose campaign page.
6. **Drag and drop a .zip file** from the `_zips (For upload to Loops.so)` folder (in your Emailify export) into Loops.
7. Click the **Upload** button after dropping your `.zip` file into the Loops file upload area.

---

---
url: "/emailify/integrations/mailchimp.md"
description: "Emailify includes a built-in integration with MailChimp, which lets you upload HTML emails directly from the Figma plugin directly to your MailChimp templates."
---

# Uploading your emails to MailChimp

> Emailify includes a built-in integration with MailChimp, which lets you upload HTML emails directly from the Figma plugin directly to your MailChimp templates.

### Video Tutorial: Uploading your emails to MailChimp

This video walks through how to upload HTML emails from the Figma Emailify plugin to MailChimp.
[Embedded media](https://www.youtube.com/embed/FgPl-a_z59A)

> **Tip:** If you need Mailchimp merge tag links (for example, `*|UNSUB|*`) in your [text paragraphs](/emailify/content/link-paragraphs), Figma's native link field will block them as invalid URLs. To get around this, you can use Emailify's special Mailchimp link format instead, `https://mailchimp.invalid/?*|UNSUB|*`, and Emailify will output the raw Mailchimp merge tag in your exported HTML.

In the Emailify export panel, select the **MailChimp (API)** option from the dropdown list, then paste in a valid MailChimp API key, which can be generated from your [MailChimp account settings](https://admin.mailchimp.com/account/api/) page.

When you're ready, click the **Upload To MailChimp** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your [MailChimp templates](https://admin.mailchimp.com/templates/) page (which you can also get to from your MailChimp dashboard menu by clicking **Content**, then clicking **Email templates**).

## Making images editable in MailChimp campaign editor

By default, the text content areas and rows in your HTML template will be editable in the MailChimp campaign editor after it's uploaded; you can also optionally allow images to be editable by enabling the **Editable Images** toggle in the Emailify export settings.

> **Warning:** **Enabling editable images will use @1x images (instead of @2x retina)**. You can optionally enable your images in the template to be editable in MailChimp with the **Editable Images** toggle, but unfortunately, [MailChimp doesn't support editable @2x retina images](https://github.com/mailchimp/email-blueprints/issues/37), so these will be @1x instead. If you'd prefer to have @2x retina images that aren't editable, please leave this option turned off.

## Blurry images in the MailChimp editor (when template is editable)

Unfortunately, [MailChimp doesn't support editable @2x retina images](https://github.com/mailchimp/email-blueprints/issues/37), so your images will be exported @1x resolution if you've enabled the **Editable Images** toggle. If you'd prefer to have @2x retina images that aren't editable, please leave the **Editable Images** toggle option turned _off_.

## Manually uploading local .zip exports to MailChimp (without using the MailChimp API)

[Video](/assets/videos/emailify/export/mailchimp-local-zip.mp4)

If you'd prefer to upload your email templates to MailChimp manually via .zip file upload, you can do that by selecting the **MailChimp (Zip)** option from the Export HTML dropdown list, then clicking the **Export for MailChimp** button.

After the export process has finished, click the **Download your .zip file** button and _unzip_ that file after saving it to your computer, then you'll be able to upload the .zip files from the **_zips (For upload to MailChimp)** folder inside of your main unzipped folder (as per the video screencap above).

## MailChimp HTML modifications and Gmail rendering

MailChimp automatically modifies uploaded HTML email templates before sending. These changes are applied forcibly and cannot be disabled.

Some of the known modifications include:

- Splitting combined `@media` query blocks into multiple separate media queries
- Rewriting or restructuring CSS rules
- Stripping `"` quotation characters from certain CSS selectors (for example, `a[href^="tel:"]` becomes `a[href^=tel:]`)

These changes can have unintended side effects, particularly in Gmail. Gmail has a strict CSS parser and will ignore all styles inside a `` tag if it encounters a single invalid selector or property. This can result in issues such as column widths not applying or layouts stacking unexpectedly.

Where possible, Emailify applies MailChimp-specific workarounds to avoid known issues during the export process from the plugin. However, because these modifications happen after the HTML is uploaded, some behaviour is outside of our control (especially if you are adding additional custom CSS, too).

If you encounter Gmail-specific layout issues when sending via MailChimp, it is very likely related to these automatic template transformations rather than the original HTML exported from Figma.

---

---
url: "/emailify/integrations/mailercloud.md"
description: "Emailify includes a Mailercloud export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform."
---

# Uploading your emails to Mailercloud

> Emailify includes a Mailercloud export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform.

### Video Tutorial: Uploading your emails to Mailercloud

This video walks through how to upload HTML emails from the Figma Emailify plugin to Mailercloud.
[Embedded media](https://www.youtube.com/embed/vtVd9ng97w8)

In the Emailify export panel, select the **Mailercloud** option from the dropdown list, when you're ready, click the **Export For Mailercloud** button to start exporting the emails you've selected from Figma to HTML.

Once the HTML has been exported, you need to manually upload your HTML templates to Mailercloud by pasting your HTML code into a campaign via the "HTML Editor" option after clicking **Choose template** from your new campaign screen.

---

---
url: "/emailify/integrations/mailerlite.md"
description: "Emailify includes a MailerLite export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform."
---

# Uploading your emails to MailerLite

> Emailify includes a MailerLite export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform.

### Video Tutorial: Export HTML emails from Figma to MailerLite

This video walks through how to upload HTML emails from the Figma Emailify plugin to MailerLite.
[Embedded media](https://www.youtube.com/embed/5eKKe7M2-yo)

In the Emailify export panel, select the **MailerLite** option from the dropdown list, when you're ready, click the **Export For MailerLite** button to start exporting the emails you've selected from Figma to HTML.

Once the HTML has been exported, you need to manually upload your HTML templates to MailerLite, as per [their docs here](https://www.mailerlite.com/help/how-to-use-the-custom-html-editor) (or follow the step by step video tutorial above).

---

---
url: "/emailify/integrations/mailgun.md"
description: "Emailify includes a built-in integration with Mailgun, which lets you upload HTML emails directly from the Figma plugin directly to your Mailgun templates."
---

# Uploading your emails to Mailgun

> Emailify includes a built-in integration with Mailgun, which lets you upload HTML emails directly from the Figma plugin directly to your Mailgun templates.

### Video Tutorial: Uploading your emails to Mailgun

This video walks through how to upload HTML emails from the Figma Emailify plugin to Mailgun.
[Embedded media](https://www.youtube.com/embed/hrsveAlzzZo)

In the Emailify export panel, select the **Mailgun** option from the dropdown list, then pasting in your Mailgun [domain](https://app.mailgun.com/app/sending/domains) and a valid Mailgun [private API key](https://app.mailgun.com/app/account/security/api_keys) from your Mailgun account.

When you're ready, click the **Upload To Mailgun** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your Mailgun account, which can be viewed by logging into your [Mailgun dashboard](https://app.mailgun.com/mg/dashboard), clicking the **Sending** menu link, then clicking the **Templates** link.

---

---
url: "/emailify/integrations/mailjet.md"
description: "Emailify includes a built-in integration with MailJet, which lets you upload HTML emails directly from the Figma plugin directly to your MailJet templates."
---

# Uploading your emails to MailJet

> Emailify includes a built-in integration with MailJet, which lets you upload HTML emails directly from the Figma plugin directly to your MailJet templates.

### Video Tutorial: Uploading your emails to MailJet

This video walks through how to upload HTML emails from the Figma Emailify plugin to Mailjet.
[Embedded media](https://www.youtube.com/embed/LwkH-A3pAYE)

In the Emailify export panel, select the **Mailjet** option from the dropdown list, then paste in a valid Mailjet API key and secret, which can be generated from your [Mailjet account](https://app.mailjet.com/account/apikeys) API settings page.

When you're ready, click the **Upload To Mailjet** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your [Mailjet marketing templates](https://app.mailjet.com/templates/marketing).

> **Tip:** You can optionally [disable Mailjet link tracking](https://documentation.mailjet.com/hc/en-us/articles/360042751854-How-to-exclude-a-link-from-being-tracked-when-click-tracking-is-enabled
> ) by enabling the **Add rel="notrack" to Links** toggle in the Emailify export settings when exporting your HTML emails to Mailjet.

## Manually uploading local .zip exports to Mailjet (without using the Mailjet API)

If you'd prefer to [upload your email templates to Mailjet manually via .zip file upload](https://documentation.mailjet.com/hc/en-us/articles/360042953273-Template-Management#templates-create-html), you can do that by selecting the **Mailjet (Zip)** option from the Export HTML dropdown list, then clicking the **Export for Mailjet** button.

After the export process has finished, click the **Download your .zip file** button and _unzip_ that file after saving it to your computer, then you'll be able to upload the .zip files from the **_zips (For upload to Mailjet)** folder inside of your main unzipped folder.

---

---
url: "/emailify/integrations/mailmodo.md"
description: "Emailify includes a Mailmodo export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform."
---

# Uploading your emails to Mailmodo

> Emailify includes a Mailmodo export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform.

### Video Tutorial: Export HTML emails from Figma to Mailmodo

This video walks through how to upload HTML emails from the Figma Emailify plugin to Mailmodo.
[Embedded media](https://www.youtube.com/embed/WstlHCpO8L4)

In the Emailify export panel, select the **Mailmodo** option from the dropdown list, when you're ready, click the **Export For Mailmodo** button to start exporting the emails you've selected from Figma to HTML.

Once the HTML has been exported, you need to manually upload your HTML templates to Mailmodo, by following the video tutorial above.

---

---
url: "/emailify/integrations/marketo.md"
description: "Emailify includes a built-in integration with Marketo (Adobe Marketo Engage), which lets you upload HTML emails directly from the Figma plugin directly to your Marketo templates."
---

# Uploading your emails to Marketo

> Emailify includes a built-in integration with Marketo (Adobe Marketo Engage), which lets you upload HTML emails directly from the Figma plugin directly to your Marketo templates.

### Video Tutorial: Uploading your emails to Marketo

This video walks through how to upload HTML emails from the Figma Emailify plugin to Marketo.
[Embedded media](https://www.youtube.com/embed/GBU_cdxPBfA)

## Uploading your Marketo templates from Figma via the API integration

To upload your HTML templates from Emailify to your Marketo account, you need to paste in your **Client ID**, **Client Secret** and **REST API Endpoint URL** for your Marketo account by following the steps below:

### Step 1: Get your Marketo REST API Endpoint URL

This first step will show you how to get your **REST API Endpoint URL** in Marketo.

1. Login to Marketo and navigate to the 'Admin' page

![Marketo Admin page](/assets/images/emailify/marketo/01-marketo-api-admin.jpg)

2. Click the **Web Services** nav item and copy the REST API **Endpoint** URL to your clipboard to use later in Step 3 (below)

![Marketo REST API endpoint](/assets/images/emailify/marketo/04-marketo-api-endpoints.jpg)

### Step 2: Get your Marketo Client ID and Client Secret details

This second step will show you how to get your **Client ID** and **Client Secret** details in Marketo.

> **Tip:** If you've already created a Marketo role that has _Read/Write Assets_ permissions, you don't need to create a new one if you don't want to; feel free to click the **View Details** link (as per _Step 6_ below) to get your existing Client ID and Client Secret

1. Login to Marketo and navigate to the **Admin** page

![Marketo Admin page](/assets/images/emailify/marketo/01-marketo-api-admin.jpg)

2. Go to the **Users & Roles** nav item, click the **Roles** tab at the top, then click **New Role**

![Creating a Marketo API role](/assets/images/emailify/marketo/02-marketo-api-roles.jpg)

3. Add a new role with **Read/Write Assets** permissions enabled (under the **Access API** dropdown item) and click **Create**

![Marketo Read Write Assets role permissions](/assets/images/emailify/marketo/03-marketo-api-new-role.jpg)

4. Go to the **LaunchPoint** nav item, and under **Installed Services**, hover over **New**, then click **New Service**

![Creating a Marketo LaunchPoint service](/assets/images/emailify/marketo/05-marketo-api-services.jpg)

5. Populate the description, select **Custom** from the **Service** dropdown list, then select an **API Only User** who already has the API permissions to upload the templates, then click **Create**.

![Marketo custom API service settings](/assets/images/emailify/marketo/06-marketo-api-new-service.jpg)

6. Under the **Installed Services**, click the **View Details** link for your service

![Marketo service View Details link](/assets/images/emailify/marketo/07-marketo-api-details.jpg)

7. Copy the **Client Id** and **Client Secret** details to your clipboard to use later in Step 3 (below)

![Marketo Client ID and Client Secret](/assets/images/emailify/marketo/08-marketo-api-credentials.jpg)

### Step 3: Uploading your template to Marketo from the Emailify plugin

This third (and final) step will show you how to paste the **REST API Endpoint URL**, **Client ID** and **Client Secret** details you copied from Marketo in the first two steps into the Emailify Figma Plugin, to automatically upload your HTML emails into your Marketo Email Templates.

1. Run the Emailify plugin in Figma and click the **Export HTML** button

![Emailify Export HTML button](/assets/images/emailify/marketo/09-marketo-api-emailify.jpg)

2. Select the **Marketo (API)** option from the export platform options list

![Marketo API export option in Emailify](/assets/images/emailify/marketo/10-marketo-api-platform.jpg)

3. Paste in your Marketo **REST API Endpoint URL**, **Client ID** and **Client Secret** that you copied in Step 1 and Step 2 (above) to authenticate the plugin with Marketo

![Marketo API credentials in Emailify](/assets/images/emailify/marketo/11-marketo-api-credentials.jpg)

4. Click on the **Upload To Marketo** button to upload your template(s)

![Upload to Marketo button in Emailify](/assets/images/emailify/marketo/12-marketo-api-upload.jpg)

> **Tip:** You can optionally enable the **Add Marketo Editable Content Tags** toggle in the Emailify export options, which will automatically include [editable Marketo tags]([Add Marketo Editable Content Tags](https://experienceleague.adobe.com/en/docs/marketo/using/product-docs/email-marketing/general/email-editor-2/email-template-syntax)) to your code, allowing you to edit your email template content after it has been created in Marketo.

5. Click the Template folder link in the Emailify confirmation to view your new template(s) in Marketo

![Marketo template folder link in Emailify](/assets/images/emailify/marketo/13-marketo-api-folder.jpg)

6. View your new email template(s) in your Marketo **Design Studio** and use it however you like

![Uploaded email template in Marketo Design Studio](/assets/images/emailify/marketo/14-marketo-api-templates.jpg)

## Uploading your Marketo templates from Figma by copy/pasting the HTML

If you don't want to use the built-in API integration above, you can also manually upload/create new email templates in your Marketo account by copy/pasting the exported HTML code from Emailify.

To do this, click on the **Export HTML** button in the Emailify plugin header, then select the **Marketo (Zip)** option from the export platform options list and click the **Export for Marketo** button.

After the export has finished, click the **Download your .zip file** button, save it to your computer, then unzip the contents to find your email folder name inside it; which will contain an `index.html` file with your exported email template HTML code.

If you login into your Marketo account, then click on the **Design Studio** menu item, you can create a new email template in a folder of your choice, and then copy/paste the exported HTML code from the `index.html` file into the Marketo code editor to finish creating your new Marketo email template.

> **Tip:** You can optionally enable the **Add Marketo Editable Content Tags** toggle in the Emailify export options, which will automatically include [editable Marketo tags]([Add Marketo Editable Content Tags](https://experienceleague.adobe.com/en/docs/marketo/using/product-docs/email-marketing/general/email-editor-2/email-template-syntax)) to your code, allowing you to edit your email template content after it has been created in Marketo.

---

---
url: "/emailify/integrations/mautic.md"
description: "Emailify includes a built-in integration with Mautic, which lets you upload HTML emails directly from the Figma plugin to Mautic email templates."
---

# Uploading your emails to Mautic

> Emailify includes a built-in integration with Mautic, which lets you upload HTML emails directly from the Figma plugin to Mautic email templates.

In the Emailify export panel, select the **Mautic** option from the dropdown list, then paste in your Mautic URL, username and password.

When you're ready, click the **Upload To Mautic** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to Mautic as unpublished email templates using code mode.

---

---
url: "/emailify/integrations/microsoft-dynamics-365.md"
description: "Emailify includes a built-in integration with Microsoft Dynamics 365, which lets you upload HTML emails directly from the Figma plugin to your Dynamics 365 account."
---

# Uploading your emails to Microsoft Dynamics 365

> Emailify includes a built-in integration with Microsoft Dynamics 365, which lets you upload HTML emails directly from the Figma plugin to your Dynamics 365 account.

In the Emailify export panel, select the **Microsoft Dynamics 365** option from the dropdown list, then paste in your Organization URL, Tenant ID, Client ID and Client Secret.

When you're ready, click the **Upload To Microsoft Dynamics 365** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your Dynamics 365 account.

---

---
url: "/emailify/integrations/moosend.md"
description: "Emailify includes a Moosend export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform."
---

# Uploading your emails to Moosend

> Emailify includes a Moosend export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform.

### Video Tutorial: Uploading your emails to Moosend

This video walks through how to upload HTML emails from the Figma Emailify plugin to Moosend.
[Embedded media](https://www.youtube.com/embed/ByG957iMh6c)

In the Emailify export panel, select the **Moosend** option from the dropdown list, when you're ready, click the **Export For Moosend** button to start exporting the emails you've selected from Figma to HTML.

Once the HTML has been exported, you need to manually upload your HTML templates to Moosend by pasting your HTML code into a campaign via the Custom HTML import feature, as per [their docs here](https://docs.moosend.com/users/moosend/en/import-a-campaign.html).

---

---
url: "/emailify/integrations/omnisend.md"
description: "Emailify includes a Omnisend export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform."
---

# Uploading your emails to Omnisend

> Emailify includes a Omnisend export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform.

### Video Tutorial: Uploading your emails to Omnisend

This video walks through how to upload HTML emails from the Figma Emailify plugin to Omnisend.
[Embedded media](https://www.youtube.com/embed/Zl8DZWbyrt8)

In the Emailify export panel, select the **Omnisend** option from the dropdown list, when you're ready, click the **Export For Omnisend** button to start exporting the emails you've selected from Figma to HTML.

Once the HTML has been exported, you need to manually upload your HTML templates to Omnisend by pasting your HTML code into a campaign via the Custom HTML import feature, as per [their docs here](https://support.omnisend.com/en/articles/2964086-importing-a-custom-html-template).

---

---
url: "/emailify/integrations/onesignal.md"
description: "Emailify includes a built-in integration with OneSignal, which lets you upload HTML emails directly from the Figma plugin directly to your OneSignal templates."
---

# Uploading your emails to OneSignal

> Emailify includes a built-in integration with OneSignal, which lets you upload HTML emails directly from the Figma plugin directly to your OneSignal templates.

### Video Tutorial: Uploading your emails to OneSignal

This video walks through how to upload HTML emails from the Figma Emailify plugin to OneSignal.
[Embedded media](https://www.youtube.com/embed/haQHdEan54Q)

In the Emailify export panel, select the **OneSignal** option from the dropdown list, then paste in a valid App ID and API key, which can be found on your [OneSignal App ID and API key](https://documentation.onesignal.com/docs/keys-and-ids) settings page.

When you're ready, click the **Upload To OneSignal** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your [OneSignal marketing templates](https://dashboard.onesignal.com/).

---

---
url: "/emailify/integrations/ongage.md"
description: "Emailify includes a Ongage export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform."
---

# Uploading your emails to Ongage

> Emailify includes a Ongage export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform.

### Video Tutorial: Uploading your emails to Ongage

This video walks through how to upload HTML emails from the Figma Emailify plugin to Ongage.
[Embedded media](https://www.youtube.com/embed/ApcOT2WG_cc)

In the Emailify export panel, select the **Ongage** option from the dropdown list, when you're ready, click the **Export For Ongage** button to start exporting the emails you've selected from Figma to HTML.

Once the HTML has been exported, you need to manually upload your HTML templates to Ongage by pasting your HTML code into a campaign via the Custom HTML import feature, as per [their docs here](https://www.maildesigner365.com/creating-html-emails-to-send-with-ongage/).

---

---
url: "/emailify/integrations/oracle-eloqua.md"
description: "Emailify includes a built-in integration with Oracle Eloqua, which lets you upload HTML emails directly from the Figma plugin to Eloqua email assets."
---

# Uploading your emails to Oracle Eloqua

> Emailify includes a built-in integration with Oracle Eloqua, which lets you upload HTML emails directly from the Figma plugin to Eloqua email assets.

In the Emailify export panel, select the **Oracle Eloqua** option from the dropdown list, then paste in your Eloqua base URL, username and password.

You can also optionally enter an **Email Group ID** if you want Emailify to create the uploaded email asset inside a specific Eloqua email group.

When you're ready, click the **Upload To Oracle Eloqua** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your Eloqua email assets.

---

---
url: "/emailify/integrations/oracle-responsys.md"
description: "Emailify includes a built-in integration with Oracle Responsys, which lets you upload HTML emails directly from the Figma plugin to Responsys Content Library documents."
---

# Uploading your emails to Oracle Responsys

> Emailify includes a built-in integration with Oracle Responsys, which lets you upload HTML emails directly from the Figma plugin to Responsys Content Library documents.

In the Emailify export panel, select the **Oracle Responsys** option from the dropdown list, then paste in your Responsys endpoint, username, password and Content Library folder path.

The folder path should point to the Content Library folder where Emailify should create the uploaded HTML document, for example `/contentlibrary/name`.

When you're ready, click the **Upload To Oracle Responsys** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to Responsys as HTML documents.

---

---
url: "/emailify/integrations/pardot.md"
description: "Emailify includes a built-in integration with Pardot, which lets you upload HTML emails directly from the Figma plugin directly to your Pardot templates."
---

# Uploading your emails to Pardot

> Emailify includes a built-in integration with Pardot, which lets you upload HTML emails directly from the Figma plugin directly to your Pardot templates.

> **Note:** Pardot is now known as [Account Engagement](https://www.salesforce.com/blog/next-gen-marketing-cloud-vision-product-name-change/) in Salesforce Marketing Cloud.

### Video Tutorial: Uploading your emails to Pardot

This video walks through how to upload HTML emails from the Figma Emailify plugin to Pardot.
[Embedded media](https://www.youtube.com/embed/VtVuPmb57cw)

> **Tip:** If you need AMPscript links (for example, `%%=v(@url)=%%`) in your [text paragraphs](/emailify/content/link-paragraphs), Figma's native link field will block them as invalid URLs. To get around this, you can use Emailify's special AMPscript link format instead, `https://ampscript.invalid/?%%=v(@url)=%%`, and Emailify will output the raw AMPscript tag in your exported HTML.

## 1. Create a Connected App in Pardot

If you don't already have one set up, you need to create a new Connected App in Pardot, which will give you your **Consumer Key** and **Consumer Secret** to paste into the plugin in Step 3 ([Authenticate with Pardot](#3-authenticate-with-pardot)).

1. In the top right corner of your Pardot admin, click the **Settings Icon**, then click **Setup**.
2. In the settings search bar, search for "App Manager" and click the **App Manager** result.
3. Click the **New Connected App** button.
4. Add a name for your connected app (for example, _Emailify Integration_).
5. Add the contact details of the owner of the Connected App.
6. Check the **Enable OAuth Flows** checkbox.
7. Add `https://figma.com/` as the Callback URL.
8. Under **Selected OAuth Scopes**, add the following scopes below, which gives the app a way to access and authenticate to Pardot:
  - `Access content resources (content)`
  - `Access the identity URL service (id, profile, email, address, phone)`
  - `Manage Pardot services (pardot_api)`
  - `Perform requests at any time (refresh _token, offline_access)`
9. Check the **Require Secret for Web Server Flow** checkbox input.
10. If shown, ensure **Require Proof Key for Code Exchange (PKCE) Extension for Supported Authorization Flows** is not checked.
11. Click **Save**.

## 2. Find your Pardot Business Unit ID

Your Business Unit ID is an 18-character long ID that begins with "0Uv"; you can find your Pardot Business Unit ID by following the steps below:

1. Log into Salesforce using the same account you use to log into Pardot.
2. Click on the **Setup** tab.
3. Find the **Pardot** dropdown and click **Pardot Account Setup**.
4. You may have multiple Pardot business units; choose the Business Unit ID of the one you want to use with Emailify.

## 3. Authenticate with Pardot

In the Emailify export panel, select the **Pardot (API)** option, or a [Padot test account option](#different-pardot-api-endpoints), from the dropdown list, then copy/paste the following Pardot credentials and details into the Emailify export settings input fields:

- **Pardot [Business Unit ID](#2-find-your-pardot-business-unit-id)** (for example, `0UvXXXXXXXXXXXXXXX`)
- **Pardot Username** that you use to login (for example, `name@domain.com`)
- **Pardot Password** that you use to login (for example, `*********`)
- **Consumer Key** from [your Connected App](#1-create-a-connected-app-in-pardot) (for example, `y0Zd2jVHJ5Cc1wQg0l5yMJsXpPs...`)
- **Consumer Secret** from [your Connected App](#1-create-a-connected-app-in-pardot)  (for example, `8C8F8D11A3B7B026A90C5C3...`)

Once you've pasted all of these details in, Emailify will authenticate with your Pardot instance.

#### Different Pardot API Endpoint options in Emailify

If you're using a test or sandbox instance, you can select different Pardot API export options from the Emailify export options. Please see below for what endpoints each one calls:

| Emailify Option     | Authorization Domain                                              | Content Domain  |
|-------------------|----------------------------------------------------------------|--------------------|
| Pardot **API**      | **login**.salesforce.com/services/oauth2/token?grant_type=password | **pi**.pardot.com      |
| Pardot **Test API** | **test**.salesforce.com/services/oauth2/token?grant_type=password  | **pi.demo**.pardot.com |
| Pardot **Dev API**  | **login**.salesforce.com/services/oauth2/token?grant_type=password  | **pi.demo**.pardot.com      |

### Troubleshooting Pardot authentication issues

If you're having trouble authenticating with your Pardot username/password, the most common issue is that Salesforce Multi-Factor Authentication (MFA) has been enabled for the Salesforce user that your integration relies on.

The most common reason that authentication with Pardot fails is related to 2FA issues, but this can often be resolved in Pardot by:

- Changing the **IP Relaxation** setting to **Relax IP Restrictions**
- Changing the **Permitted Users** setting to **All users may self-authorize**
- Enabling the **Allow OAuth Username-Password Flows** toggle in **OAuth and OpenID Connect Settings**
- **Passwords _cannot_ contain special characters** (for example, `#` `%` `&`, etc), and can only be letters and numbers (for example, `mypa55word1234`)

#### Ensuring API integration users work with Salesforce MFA

Salesforce MFA is primarily enforced for interactive user interface logins. API-based integrations can usually continue to work without interactive MFA prompts, but your Salesforce admin needs to configure the integration user correctly.

For Emailify's Pardot API upload flow, the best practice is to use a dedicated Salesforce integration user account rather than a shared personal login.

##### Recommended: use a Salesforce Integration user license

If your Salesforce edition includes **Salesforce Integration** user licenses, assign one of those licenses to the dedicated integration user that Emailify uses.

Benefits:

- These users are designed for API-only access.
- They can't log into the Salesforce UI, so they are inherently exempt from UI MFA prompts.
- They help keep your integration separate from normal user accounts.
- Their API-only profile typically has **API Enabled** set by default.

To check whether these licenses are available:

1. In Salesforce, go to **Setup**.
2. Search for **Company Information**.
3. Open **Company Information**.
4. Look for **Salesforce Integration** under the **User Licenses** list.

##### Alternative: waive UI MFA for a standard Salesforce user

If you can't use a Salesforce Integration user license and your integration is using a standard Salesforce user, your Salesforce admin can exempt that dedicated integration user from UI MFA by assigning a Permission Set with the **Waive Multi-Factor Authentication for Exempt Users** system permission.

To set that up:

1. In Salesforce, go to **Setup**.
2. Search for **Permission Sets**.
3. Create a new Permission Set for your integration user.
4. Open **System Permissions** and click **Edit**.
5. Enable **Waive Multi-Factor Authentication for Exempt Users**.
6. Save the Permission Set.
7. Assign that Permission Set to the dedicated integration user.

If you're using a standard Salesforce user license for the integration, also make sure the user's Profile still has **API Enabled** turned on in **System Permissions**.

##### Additional recommendations

- Prefer a dedicated integration user instead of a personal user account.
- If you're using username/password authentication, keep those credentials and any security token stored securely.
- Test your Pardot connection in a sandbox before enabling MFA-related changes in production.
- If authentication starts failing after an MFA rollout, check the Salesforce user's **Login History** for the exact failure reason.

##### Salesforce references

- [Best Practices for Configuring Your Integration User](https://admin.salesforce.com/blog/2023/best-practices-for-configuring-your-integration-user)
- [Exclude Exempt Users from MFA](https://help.salesforce.com/s/articleView?id=sf.security_mfa_exclude_exempt_users.htm&language=en_US&type=5)

## 4. Upload Email Templates to Pardot

Once your Pardot API connection has been successfully authenticated, you'll be able to specify the following required fields using the inputs and dropdowns that will show up:

- **Sender Name**
- **Sender Address**

- **Campaign Name**
- **Folder Name**
- **Domain Tracking Name**

You can optionally add [Pardot content region tags](https://help.salesforce.com/s/articleView?id=mktg.mcae_classic_email_content_regions.htm&type=5) to the exported template:

- **Editable Regions** lets users edit text, images, and buttons.
- **Repeatable Regions** lets users copy or move top-level content blocks.
- **Removable Regions** lets users remove top-level content blocks.

Enable any combination of these options before uploading or exporting the template. When **Repeatable Regions** and **Removable Regions** are both enabled, Emailify nests the tags so Pardot can apply both capabilities to each block.

Once you've selected the desired options above, when you're ready, click the **Upload To Pardot** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your email templates in Pardot.

---

---
url: "/emailify/integrations/postmark.md"
description: "Emailify includes a built-in integration with Postmark, which lets you upload HTML emails directly from the Figma plugin directly to your Postmark templates."
---

# Uploading your emails to Postmark

> Emailify includes a built-in integration with Postmark, which lets you upload HTML emails directly from the Figma plugin directly to your Postmark templates.

### Video Tutorial: Uploading your emails to Postmark

This video walks through how to upload HTML emails from the Figma Emailify plugin to Postmark.
[Embedded media](https://www.youtube.com/embed/BD7dghnkeKM)

In the Emailify export panel, select the **Postmark** option from the dropdown list, then paste in a valid Postmark API key, which can be generated from your [Postmark account Servers](https://account.postmarkapp.com/servers) page.

When you're ready, click the **Upload To Postmark** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your [Postmark Server's templates](https://account.postmarkapp.com/servers) page.

---

---
url: "/emailify/integrations/resend.md"
description: "Emailify includes a built-in integration with Resend, which lets you upload HTML emails directly from the Figma plugin to Resend templates."
---

# Uploading your emails to Resend

> Emailify includes a built-in integration with Resend, which lets you upload HTML emails directly from the Figma plugin to Resend templates.

In the Emailify export panel, select the **Resend** option from the dropdown list, then paste in a valid Resend API key.

If you want Emailify to publish the template immediately after it is uploaded, enable the **Publish Template** toggle before exporting.

When you're ready, click the **Upload To Resend** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your Resend templates.

---

---
url: "/emailify/integrations/sailthru.md"
description: "Emailify includes a built-in integration with Sailthru, which lets you upload HTML emails directly from the Figma plugin to Sailthru templates."
---

# Uploading your emails to Sailthru

> Emailify includes a built-in integration with Sailthru, which lets you upload HTML emails directly from the Figma plugin to Sailthru templates.

In the Emailify export panel, select the **Sailthru** option from the dropdown list, then paste in your Sailthru API key and Sailthru secret.

When you're ready, click the **Upload To Sailthru** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your Sailthru templates.

---

---
url: "/emailify/integrations/salesforce.md"
description: "Emailify includes a built-in integration with Salesforce, which lets you upload HTML emails directly from the Figma plugin to your Salesforce emails or templates."
---

# Uploading your emails to Salesforce Marketing Cloud

> Emailify includes a built-in integration with Salesforce, which lets you upload HTML emails directly from the Figma plugin to your Salesforce emails or templates.

### Video Tutorial: Uploading your emails to Salesforce Marketing Cloud

This video walks through how to upload HTML emails from the Figma Emailify plugin to Salesforce Marketing Cloud.
[Embedded media](https://www.youtube.com/embed/Q4QD3GTxD9s)

> **Tip:** If you need AMPscript links (for example, `%%=v(@url)=%%`) in your [text paragraphs](/emailify/content/link-paragraphs), Figma's native link field will block them as invalid URLs. To get around this, you can use Emailify's special AMPscript link format instead, `https://ampscript.invalid/?%%=v(@url)=%%`, and Emailify will output the raw AMPscript tag in your exported HTML.

In the Emailify export panel, select the **Marketing Cloud (API)** option from the dropdown list, then follow the steps below to get your authentication credentials:

1. [Login](https://mc.login.exacttarget.com/hub-cas/login) to your Salesforce Marketing Cloud account.
2. Go to **Marketing Cloud** -> **Setup** -> **Platform Tools ("Apps")** -> **Installed Packages**.
3. Click **New**.
4. Give the package a name and description.
5. Select to create the package with enhanced functionality.
6. **Save** the package.
7. Under Components, click **Add Component**.
8. Select **API Integration** (_after you add an API integration component, it can’t be removed_).
9. Select the **Server-to-server integration** type.
10. Set the properties for the component, you need to allow **Read** and **Write** persmissions for **Emails** (under _Channels_) and for **Documents and Images** and **Saved Content** (under _Assets_).
11. Click **Save** to save the component.

After that's created, you can copy/paste the following required details from your new integration created above into your Emailify export settings:

- **Client ID** (for example, 3e8poc4erkli6ghjavq8kuio)
- **Client Secret** (for example, EOjPb4HPWwtyUkcb5CnCpo5C)
- **REST Base URL** (for example, https://mcvb5-qrzy845tggex49976pmz38.rest.marketingcloudapis.com/)

When you're ready, choose **Template** or **HTML Email** from the **Upload As** dropdown, then click the **Upload To Marketing Cloud** button to export the selected Figma emails to Marketing Cloud. The default **Template** option keeps the previous template-based email behavior. Choose **HTML Email** if you want the uploaded asset to open as an editable HTML email in Content Builder.

If you'd prefer Emailify to place the uploaded Salesforce email or template into a specific Content Builder folder instead of the default root location, connect your Salesforce account and choose a **Template Folder** in the Emailify export panel before uploading. Leaving it set to **Content Builder (Default)** keeps the previous behavior.

## Uploading images into Salesforce Content Builder

If you also want Salesforce Marketing Cloud to host the images used in your email, you can now use the **Salesforce Content Builder** option from the **CDN** dropdown in Emailify.

1. In the Emailify export panel, select either **Marketing Cloud (API)** or **Marketing Cloud (oAuth)** and connect your Salesforce Marketing Cloud account first.
2. Open the **CDN** dropdown and choose **Salesforce Content Builder**.
3. Choose the **Content Builder** folder you want Emailify to upload the images into.
4. Export your email as normal.

Emailify will automatically upload the images for the email into the selected Salesforce Content Builder folder, then replace the image URLs in the exported HTML with the published Salesforce asset URLs before uploading the email or template.

The **Template Folder** and image **Content Builder** folder can be different, which is useful if your team keeps HTML emails, templates, and image assets in separate folders.

If you export the same email again into the same Content Builder folder, Emailify will reuse matching existing image assets when possible instead of failing if Salesforce reports that the image name is already taken.

## Additional options for Salesforce Marketing Cloud

There are a few other options you can optionally enable for your Salesforce Marketing Cloud exports:

### Add Content Slot

Enabling the **Slot** toggle will automatically add a `` tag into your exported HTML, which will allow you to drag and drop other content into your email from the Marketing Cloud editor. This option is available when uploading as a **Template**; **HTML Email** uploads omit the slot container.

### Add Alias Tags

Enabling the **Aliases** toggle will automatically add an `alias="Your Figma layer name"` attribute to any of your button, image, social icon or navbar links in your Figma design. It will automatically populate this with whatever each Figma layer name is in your layers panel.

This lets you specify aliases for those `` tag links in your exported HTML to help tracking data by naming them something relevant to the design (for example, "Hero CTA Button").

### Add Conversion Tags

Enabling the **Conversions** toggle will automatically add a `conversion="true"` attribute onto any `` link tags your exported HTML.

### Add Impression Tags

Enabling the **Impressions** toggle will automatically wrap any Row, Wrapper or Hero layers with an opening `%%=BeginImpressionRegion("your_figma_layer_name")=%%` and closing `%%=EndImpressionRegion()=%%` Salesforce Marketing Cloud Impression tags in your exported HTML.

### HTML Block Files

Enable **Blocks** to include additional `.html` files in the ZIP. Emailify exports each row as a separate HTML file so you can use it as a reusable module in Salesforce Marketing Cloud.

You'll also need to be mindful that the HTML code for each block will still require the CSS/**style** tags and other elements from the `` tag, so you need to spend some time extracting those if you are taking this approach.

Note, this toggle will only be available when the **Marketing Cloud (Zip)** platform option is selected in the Emailify export settings panel, and won't be visible if the API option is selected.

---

---
url: "/emailify/integrations/sare.md"
description: "Emailify includes a SARE export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform."
---

# Uploading your emails to SARE

> Emailify includes a SARE export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform.

### Video Tutorial: Export HTML emails from Figma to SARE

This video walks through how to upload HTML emails from the Figma Emailify plugin to SARE.
[Embedded media](https://www.youtube.com/embed/_-9AIr6dE0U)

In the Emailify export panel, select the **SARE** option from the dropdown list, when you're ready, click the **Export For SARE** button to start exporting the emails you've selected from Figma to HTML.

Once the HTML has been exported, you need to manually upload your HTML templates to SARE by clicking the **Download your .zip file** button in Emailify, _unzipping_ that file after saving it to your computer, then you'll be able to [upload the email .zip file(s) to SARE](https://sare.pl/baza-wiedzy/en/sare-system/email-campaigns/html-guidelines-proper-preparation-of-html-mailing-creations/#toc-zip-package) from the **_zips (For upload to SARE)** folder inside of your main unzipped folder.

---

---
url: "/emailify/integrations/selzy.md"
description: "Emailify includes a built-in integration with Selzy, which lets you upload HTML emails directly from the Figma plugin directly to your Selzy templates."
---

# Uploading your emails to Selzy

> Emailify includes a built-in integration with Selzy, which lets you upload HTML emails directly from the Figma plugin directly to your Selzy templates.

### Video Tutorial: Uploading your emails to Selzy

This video walks through how to upload HTML emails from the Figma Emailify plugin to Selzy.
[Embedded media](https://www.youtube.com/embed/5w2qyBTYToY)

In the Emailify export panel, select the **Selzy** option from the dropdown list, then paste in a valid API key, which can be found on your [Selzy API key](https://cp.selzy.com/en/v5/user/info/api) settings page.

When you're ready, click the **Upload To Selzy** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your [Selzy templates](https://cp.selzy.com/en/v5/letters/template).

---

---
url: "/emailify/integrations/sendgrid.md"
description: "Emailify includes a built-in integration with SendGrid, which lets you upload HTML emails directly from the Figma plugin directly to your SendGrid templates."
---

# Uploading your emails to SendGrid

> Emailify includes a built-in integration with SendGrid, which lets you upload HTML emails directly from the Figma plugin directly to your SendGrid templates.

### Video Tutorial: Uploading your emails to SendGrid

This video walks through how to upload HTML emails from the Figma Emailify plugin to SendGrid.
[Embedded media](https://www.youtube.com/embed/cYYVO_3HT1U)

In the Emailify export panel, select the **SendGrid** option from the dropdown list, then paste in a valid SendGrid API key, which can be generated from your SendGrid account [API Keys](https://app.sendgrid.com/settings/api_keys) settings page.

When you're ready, click the **Upload To SendGrid** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your [SendGrid Design Library](https://mc.sendgrid.com/design-library/your-designs) templates.

---

---
url: "/emailify/integrations/sendpulse.md"
description: "Emailify includes a built-in integration with SendPulse, which lets you upload HTML emails directly from the Figma plugin directly to your SendPulse templates."
---

# Uploading your emails to SendPulse

> Emailify includes a built-in integration with SendPulse, which lets you upload HTML emails directly from the Figma plugin directly to your SendPulse templates.

### Video Tutorial: Uploading your emails to SendPulse

This video walks through how to upload HTML emails from the Figma Emailify plugin to SendPulse.
[Embedded media](https://www.youtube.com/embed/lLH2aHdVSN4)

In the Emailify export panel, select the **SendPulse** option from the dropdown list, then paste in a valid SendPulse API ID and Secret, which can be generated from your SendPulse account [API Settings](https://login.sendpulse.com/settings/#api) page.

When you're ready, click the **Upload To SendPulse** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your [SendPulse Email Templates](https://login.sendpulse.com/emailservice/templates/) dashboard page.

---

---
url: "/emailify/integrations/sendwithus.md"
description: "Emailify includes a built-in integration with Sendwithus, which lets you upload HTML emails directly from the Figma plugin directly to your Sendwithus templates."
---

# Uploading your emails to Sendwithus

> Emailify includes a built-in integration with Sendwithus, which lets you upload HTML emails directly from the Figma plugin directly to your Sendwithus templates.

### Video Tutorial: Uploading your emails to Sendwithus

This video walks through how to upload HTML emails from the Figma Emailify plugin to Sendwithus.
[Embedded media](https://www.youtube.com/embed/b99i9ZaXL6E)

In the Emailify export panel, select the **Sendwithus** option from the dropdown list, then paste in a valid Sendwithus API key, which can be generated from your [Sendwithus API](https://app.sendwithus.com/#/api_settings) account page.

When you're ready, click the **Upload To Sendwithus** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your [Sendwithus templates](https://app.sendwithus.com/#/templates) page.

---

---
url: "/emailify/integrations/sendx.md"
description: "Emailify includes a SendX export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform."
---

# Uploading your emails to SendX

> Emailify includes a SendX export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform.

### Video Tutorial: Uploading your emails to SendX

This video walks through how to upload HTML emails from the Figma Emailify plugin to SendX.
[Embedded media](https://www.youtube.com/embed/uVTTIoT4Lk4)

In the Emailify export panel, select the **SendX** option from the dropdown list, when you're ready, click the **Export For SendX** button to start exporting the emails you've selected from Figma to HTML.

Once the HTML has been exported, you need to manually upload your HTML templates to SendX by pasting your HTML code into a campaign via the Custom HTML import feature, as per [their docs here](https://www.sendx.io/v2/support/sendx/how-to-create-custom-email-template).

---

---
url: "/emailify/integrations/sendy.md"
description: "Emailify includes a built-in integration with Sendy, which lets you upload HTML emails directly from the Figma plugin to Sendy draft campaigns."
---

# Uploading your emails to Sendy

> Emailify includes a built-in integration with Sendy, which lets you upload HTML emails directly from the Figma plugin to Sendy draft campaigns.

In the Emailify export panel, select the **Sendy** option from the dropdown list, then paste in your Sendy URL, API key, Brand ID, From Name, From Email and Reply-To Email.

When you're ready, click the **Upload To Sendy** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to Sendy as draft campaigns.

---

---
url: "/emailify/integrations/shopify.md"
description: "Emailify includes a Shopify export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform."
---

# Uploading your emails to Shopify

> Emailify includes a Shopify export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform.

In the Emailify export panel, select the **Shopify** option from the dropdown list, when you're ready, click the **Export For Shopify** button to start exporting the emails you've selected from Figma to HTML.

Once the HTML has been exported, you need to manually upload your HTML templates to Shopify by pasting your HTML code into a campaign via the "Code your own" import feature, as per [their docs here](https://help.shopify.com/en/manual/promoting-marketing/create-marketing/shopify-email/create-email/create-campaigns#create-coded-email).

---

---
url: "/emailify/integrations/spotler.md"
description: "Emailify includes a Spotler export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform."
---

# Uploading your emails to Spotler

> Emailify includes a Spotler export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform.

In the Emailify export panel, select the **Spotler** option from the dropdown list, when you're ready, click the **Export For Spotler** button to start exporting the emails you've selected from Figma to HTML.

Once the HTML has been exported, you need to manually upload your HTML templates to Spotler via the **Custom HTML** option, by [following the instructions in the Spotler documentation](https://support.reallysimplesystems.com/designing-emails/) site.

### Add Title Attributes

Enabling the **Add Title Attributes to Links** toggle will automatically add an `title="Your Figma layer name"` attribute to any of your button, image, social icon or navbar links in your Figma design. It will automatically populate this with whatever each Figma layer name is in your layers panel.

This lets you specify aliases for those `` tag links in your exported HTML to help tracking data by naming them something relevant to the design (for example, "Hero CTA Button").

---

---
url: "/emailify/integrations/stripo.md"
description: "Emailify includes Stripo export options for direct MJML API import or manual HTML upload."
---

# Uploading your emails to Stripo

> Emailify includes Stripo export options for direct MJML API import or manual HTML upload.

### Video Tutorial: Export HTML emails from Figma to Stripo

This video walks through how to upload HTML emails from the Figma Emailify plugin to Stripo.
[Embedded media](https://www.youtube.com/embed/98oeeXB7FNI)

In the Emailify export panel, select the **Stripo (API)** option from the dropdown list to import your Emailify MJML into Stripo as an editable email or template. Add your Stripo API token, choose **Email** or **Template** from the **Import As** dropdown, choose a Stripo folder from the loaded folder list if you do not want to use the root folder, then click the **Upload To Stripo** button.

Stripo API tokens can be generated from your Stripo project settings. Per Stripo's [API authentication docs](https://api.stripo.email/docs/authentication), go to your Stripo project settings, scroll down to **Access the REST API**, generate the JWT token, then paste that token into Emailify.

> **Note:** The token required by Emailify is the Stripo REST API JWT from **Access the REST API**. This is different from the Stripo Plugin API authentication token generated via `plugin.stripo.email`.

The API import uses Stripo's [Create an email from MJML](https://api.stripo.email/reference/importemailfrommjml) endpoint when **Email** is selected, and Stripo's [Create a template from MJML](https://api.stripo.email/reference/importtemplatefrommjml) endpoint when **Template** is selected.

If you prefer the existing manual workflow, select **Stripo (Zip)**, then click **Export For Stripo**. Once the HTML has been exported, manually upload your HTML templates to Stripo, as per [their docs here](https://support.stripo.email/en/articles/6420354-how-to-adapt-my-own-html-code-to-stripo) (or follow the step by step video tutorial above).

---

---
url: "/emailify/integrations/sugarcrm.md"
description: "Emailify includes a SugarCRM export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform."
---

# Uploading your emails to SugarCRM (Sugar Market)

> Emailify includes a SugarCRM export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform.

### Video Tutorial: Export HTML emails from Figma to SugarCRM (Sugar Market)

This video walks through how to upload HTML emails from the Figma Emailify plugin to SugarCRM (Sugar Market).
[Embedded media](https://www.youtube.com/embed/dudacdc97vQ)

In the Emailify export panel, select the **SugarCRM** option from the dropdown list, when you're ready, click the **Export For SugarCRM** button to start exporting the emails you've selected from Figma to HTML.

Once the HTML has been exported, you need to manually upload your HTML templates to SugarCRM (Sugar Market), by following the video tutorial above.

---

---
url: "/emailify/integrations/webex.md"
description: "Emailify includes a Webex export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform."
---

# Uploading your emails to Webex

> Emailify includes a Webex export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform.

In the Emailify export panel, select the **Webex** option from the dropdown list, when you're ready, click the **Export For Webex** button to start exporting the emails you've selected from Figma to HTML.

Once the HTML has been exported, you need to manually upload your HTML templates to Webex.

---

---
url: "/emailify/integrations/yotpo.md"
description: "Emailify includes a Yotpo export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform."
---

# Uploading your emails to Yotpo

> Emailify includes a Yotpo export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform.

### Video Tutorial: Export HTML emails from Figma to Yotpo

This video walks through how to upload HTML emails from the Figma Emailify plugin to Yotpo.
[Embedded media](https://www.youtube.com/embed/lRU0Wjw9vHQ)

In the Emailify export panel, select the **Yotpo** option from the dropdown list, when you're ready, click the **Export For Yotpo** button to start exporting the emails you've selected from Figma to HTML.

Once the HTML has been exported, you need to manually upload your HTML templates to Yotpo, by following the video tutorial above.

---

---
url: "/emailify/integrations/zeta.md"
description: "Emailify includes a built-in integration with Zeta, which lets you upload HTML emails directly from the Figma plugin directly to your Zeta templates."
---

# Uploading your emails to Zeta

> Emailify includes a built-in integration with Zeta, which lets you upload HTML emails directly from the Figma plugin directly to your Zeta templates.

In the Emailify export panel, select the **Zeta** option from the dropdown list, then paste in a valid Zeta `Site ID` and `REST API key`, which can be found in your [Zeta account settings](https://app.zetaglobal.net/settings/integrations) integrations page.

When you're ready, click the **Upload To Zeta** button to start exporting the emails you've selected from Figma to HTML, and have them automatically be uploaded to your [Zeta templates](https://app.zetaglobal.net/marketing_templates) page.

---

---
url: "/emailify/integrations/zoho-campaigns.md"
description: "Emailify includes a Zoho Campaigns export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform."
---

# Uploading your emails to Zoho Campaigns

> Emailify includes a Zoho Campaigns export option, which lets you export HTML emails directly from the Figma plugin ready to manually add to their platform.

### Video Tutorial: Export HTML emails from Figma to Zoho Campaigns

This video walks through how to upload HTML emails from the Figma Emailify plugin to Zoho Campaigns.
[Embedded media](https://www.youtube.com/embed/UQ2va7H6RN0)

In the Emailify export panel, select the **Zoho Campaigns** option from the dropdown list, when you're ready, click the **Export For Zoho Campaigns** button to start exporting the emails you've selected from Figma to HTML.

Once the HTML has been exported, you need to manually upload your HTML templates to Zoho Campaigns, as per [their docs here](https://help.zoho.com/portal/en/kb/campaigns/user-guide/email-campaigns/create-campaign/articles/how-to-import-html) (or follow the step by step video tutorial above).

---

---
url: "/emailify/localization/chatgpt.md"
description: "Use ChatGPT inside Emailify with either direct API translation or manual CSV prompts to localize your email frames in Figma."
---

# Translating your email designs with ChatGPT

> Use ChatGPT inside Emailify with either direct API translation or manual CSV prompts to localize your email frames in Figma.

### Video Tutorial: Translate email designs in Figma with ChatGPT

This video walks through how to Translate email designs in Figma with ChatGPT (automatically).
[Embedded media](https://www.youtube.com/embed/6CqRT3FTALA)

Emailify supports ChatGPT in two ways:

- **ChatGPT API** for automated translation and import inside the plugin.
- **ChatGPT Prompt** for a manual copy and paste workflow using the ChatGPT app.

## Use ChatGPT API

[Video](/assets/videos/emailify/content/auto-translate.mp4)

The API workflow is the fastest option if you want Emailify to handle the full translation and import flow for you.

1. Click the **Localize** button in Emailify.
2. Choose **ChatGPT API**.
3. Paste your OpenAI [API key](https://platform.openai.com/api-keys).
4. Pick the model you want Emailify to use.
5. Select the email frames and target locales you want to translate.
6. Leave **Use Markdown** enabled to preserve inline bold, italic, and linked text during translation. This option is enabled by default for ChatGPT methods.
7. Click **Translate & Import**.

Emailify will send the selected frame text to ChatGPT for each locale, then automatically import the translated results back into Figma as cloned localized email frames.

> **Tip:** Your ChatGPT API key is stored per Figma user on your device and is not saved into the Figma file itself.

## Use ChatGPT Prompt

The manual prompt workflow is useful if you prefer to run translation requests yourself inside ChatGPT instead of connecting an API key.

1. Choose **ChatGPT Prompt** in the localization options.
2. Select the email frames and locales you want to translate.
3. Click **Generate Prompt**.
4. Click **Copy Prompt**.
5. Run the prompt in ChatGPT and make sure it returns **raw CSV only**.
6. Paste the CSV response back into Emailify.
7. Click **Translate Figma Frames** to import the translated content into Figma.

In the manual prompt workflow, you choose the ChatGPT model inside the ChatGPT app yourself. Emailify validates the pasted CSV before importing it.

The generated prompt also tells ChatGPT to preserve supported markdown formatting and keep markdown markers, URLs, and placeholders unchanged so the translated content can be mapped back into the original Figma text styling.

> **Tip:** Do not remove or rename the `id`, `frame_id`, `layer_name`, or `figma_text` columns in the CSV response. Emailify uses those columns to match translated rows back to the correct Figma layers.

---

---
url: "/emailify/localization/claude.md"
description: "Use Claude inside Emailify with either direct API translation or manual CSV prompts to localize your email frames in Figma."
---

# Translating your email designs with Claude

> Use Claude inside Emailify with either direct API translation or manual CSV prompts to localize your email frames in Figma.

Emailify supports Claude in two ways:

- **Claude API** for automated translation and import inside the plugin.
- **Claude Prompt** for a manual copy and paste workflow using the Claude app.

[Video](/assets/videos/emailify/content/auto-translate.mp4)

## Use Claude API

1. Click the **Localize** button in Emailify.
2. Choose **Claude API**.
3. Paste your Anthropic [API key](https://console.anthropic.com/settings/keys).
4. Pick the Claude model you want Emailify to use.
5. Select the email frames and target locales you want to translate.
6. Leave **Use Markdown** enabled to preserve inline bold, italic, and linked text during translation. This option is enabled by default for Claude methods.
7. Click **Translate & Import**.

Emailify will translate the selected frames with Claude and automatically import the translated results back into Figma as cloned localized email frames.

> **Tip:** Your Claude API key is stored per Figma user on your device and is not saved into the Figma file itself.

## Use Claude Prompt

1. Choose **Claude Prompt** in the localization options.
2. Select the email frames and locales you want to translate.
3. Click **Generate Prompt**.
4. Click **Copy Prompt**.
5. Run the prompt in Claude and make sure the response contains **raw CSV only**.
6. Paste the CSV response back into Emailify.
7. Click **Translate Figma Frames** to import the translated content into Figma.

In the manual prompt workflow, you choose the Claude model inside Claude yourself. Emailify will validate the CSV structure before importing the translated frames.

The generated prompt also tells Claude to preserve supported markdown formatting and keep markdown markers, URLs, and placeholders unchanged so the translated content can be imported back into Figma with the correct inline styling.

> **Tip:** The manual prompt generated by Emailify includes all selected locales in a single CSV prompt by default, which makes it faster to translate multiple locales in one request.

---

---
url: "/emailify/localization/crowdin.md"
description: "Use Emailify with the Crowdin API to upload source text from Figma and import translated email variants back into your file."
---

# Translating your email designs with Crowdin

> Use Emailify with the Crowdin API to upload source text from Figma and import translated email variants back into your file.

## Use the Crowdin API with Emailify

### Video Tutorial: Translate email designs in Figma with the Crowdin API

This video walks through how to translate HTML email designs with the Crowdin API and Figma by using the Emailify plugin.
[Embedded media](https://www.youtube.com/embed/qcQglNYqtJc)

If you use [Crowdin](https://crowdin.com/), Emailify can upload your source email content to Crowdin and then import translated variants back into Figma.

### Step 1: Connect your Crowdin account

1. Click the **Localize** button in Emailify.
2. Choose **Crowdin API** from the localization options.
3. Paste your Crowdin [API Personal Access Token](https://crowdin.com/settings#api-key).
4. Select your Crowdin project from the dropdown list.

### Step 2: Select target locales

Choose the locales you want to work with from the locales list in Emailify. These come from the target languages configured in your Crowdin project.

### Step 3: Upload source text from Figma

Click **Upload** to export your selected email frames and source text from Figma into Crowdin.

### Step 4: Translate in Crowdin

Open your Crowdin project in the browser and translate or review the strings for each target locale.

### Step 5: Import translated frames back into Figma

Click **Import Translations** in Emailify to pull the translated content back into Figma as cloned localized email frames.

> **Tip:** **If you have a Crowdin Enterprise account** you will need to enable the **Use Crowdin Enterprise Account** toggle and paste in your **Organization Domain** so the API requests are sent to the correct endpoint, for example `https://{your_organization_domain}.api.crowdin.com/api`.

---

---
url: "/emailify/localization/gemini.md"
description: "Use Gemini inside Emailify with either direct API translation or manual CSV prompts to localize your email frames in Figma."
---

# Translating your email designs with Gemini

> Use Gemini inside Emailify with either direct API translation or manual CSV prompts to localize your email frames in Figma.

Emailify supports Gemini in two ways:

- **Gemini API** for automated translation and import inside the plugin.
- **Gemini Prompt** for a manual copy and paste workflow using the Gemini app.

[Video](/assets/videos/emailify/content/auto-translate.mp4)

## Use Gemini API

1. Click the **Localize** button in Emailify.
2. Choose **Gemini API**.
3. Paste your Google AI Studio [API key](https://aistudio.google.com/app/apikey).
4. Pick the Gemini model you want Emailify to use.
5. Select the email frames and target locales you want to translate.
6. Leave **Use Markdown** enabled to preserve inline bold, italic, and linked text during translation. This option is enabled by default for Gemini methods.
7. Click **Translate & Import**.

Emailify will send the selected frame text to Gemini for translation and then automatically import the translated results back into Figma as cloned localized email frames.

> **Tip:** Your Gemini API key is stored per Figma user on your device and is not saved into the Figma file itself.

## Use Gemini Prompt

1. Choose **Gemini Prompt** in the localization options.
2. Select the email frames and locales you want to translate.
3. Click **Generate Prompt**.
4. Click **Copy Prompt**.
5. Run the prompt in Gemini and make sure the response contains **raw CSV only**.
6. Paste the CSV response back into Emailify.
7. Click **Translate Figma Frames** to import the translated content into Figma.

In the manual prompt workflow, you choose the Gemini model inside Gemini yourself. Emailify validates the CSV structure before importing the translated frames into Figma.

The generated prompt also tells Gemini to preserve supported markdown formatting and keep markdown markers, URLs, and placeholders unchanged so the translated content can be imported back into Figma with the correct inline styling.

> **Tip:** If you use placeholders, merge tags, URLs, or markdown in your email content, keep them unchanged in the translated CSV so Emailify can safely map them back into your design.

---

---
url: "/emailify/localization/locize.md"
description: "Use Emailify with the Locize API to upload source text from Figma and import translated email variants from a Locize namespace."
---

# Translating your email designs with Locize

> Use Emailify with the Locize API to upload source text from Figma and import translated email variants from a Locize namespace.

## Use the Locize API with Emailify

If you use [Locize](https://www.locize.com/), Emailify can upload the source copy from your email designs to a Locize namespace and import translated variants back into Figma.

### Before you start

You will need:

- A Locize project with a reference language and at least one target language.
- An existing version and namespace for your email translations.
- A project-scoped [Locize API key](https://www.locize.com/docs/integration/api#authentication).

### Step 1: Connect your Locize project

1. Click the **Localize** button in Emailify.
2. Choose **Locize API** from the localization options.
3. Enter your **Project ID** and **API Key**.
4. Enter the Locize **Version** you want to use, such as `latest` or `production`.
5. Enter the **Namespace** that contains your email translations, such as `emails`.
6. Choose the **Standard CDN** or **Pro CDN** option that matches your Locize project.

After Emailify connects, it displays the reference language and target languages configured in your Locize project.

> **Tip:** Make sure the CDN type matches your Locize project. The Standard CDN is public and uses a fixed one-hour cache, while the Pro CDN supports private publishing and configurable caching. See [Locize's CDN comparison](https://www.locize.com/docs/integration/cdn-types-standard-vs-pro) for more detail.

### Step 2: Select your emails and target locales

Choose the Emailify frames you want to localize, then select the Locize target languages you want to import later.

Keep **Import Markdown Formatting** enabled if your email copy contains bold, italic, linked text, or line breaks that you want to preserve during the translation round trip.

### Step 3: Upload the reference copy to Locize

Click **Upload** to send the selected Emailify text to your namespace using the reference language configured in Locize. If you update the source copy in Figma later, upload it again to update the corresponding Locize keys.

### Step 4: Translate in Locize

Open your Locize project and translate or review the uploaded keys for each target language.

### Step 5: Import translated emails into Figma

Return to Emailify, select the target locales you want, and click **Import Translations**. Emailify matches the translated Locize keys to the selected source emails and creates cloned email frames for each imported locale.

> **Tip:** Emailify stores your Locize API key in Figma's local client storage for your current user instead of saving it in the shared Figma file. Use a project-scoped API key rather than a broader personal access token.

---

---
url: "/emailify/localization/lokalise.md"
description: "Use Emailify with the Lokalise API to push source text from Figma and pull translated email variants back into your file."
---

# Translating your email designs with Lokalise

> Use Emailify with the Lokalise API to push source text from Figma and pull translated email variants back into your file.

## Use the Lokalise API with Emailify

### Video Tutorial: Translate email designs in Figma with the Lokalise API

This video walks through how to translate HTML email designs with the Lokalise API and Figma by using the Emailify plugin.
[Embedded media](https://www.youtube.com/embed/s6-pYRm_B1c)

If you use [Lokalise](https://lokalise.com/), Emailify can send your source email copy directly to your Lokalise project and then import your translated versions back into Figma.

### Step 1: Connect your Lokalise project

1. Click the **Localize** button in Emailify.
2. Choose **Lokalise API** from the localization options.
3. Paste your Lokalise [API Token](https://app.lokalise.com/profile/#apitokens).
4. Paste your Lokalise [Project ID](https://docs.lokalise.com/en/articles/1400460-projects#project-id).

### Step 2: Upload source text from Figma

After your project is connected, choose the email frames you want to localize and click **Upload**. Emailify will export the text content from those frames into your Lokalise project using the base locale configured in Lokalise.

### Step 3: Translate in Lokalise

Open your Lokalise project in the browser and add or review translations for the target locales you need.

### Step 4: Import translated frames back into Figma

Back in Emailify, click **Import Translations** to pull the translated content into Figma. Emailify will create translated cloned frames for each locale you import.

> **Tip:** If your email copy includes bold, italic, or linked text formatting, keep the **Use Markdown** toggle enabled in Emailify so your localization workflow preserves that formatting where possible.

---

---
url: "/emailify/overview/install.md"
description: "Ensure you're logged into your Figma account, then follow the steps below to install and run the [Emailify Figma Plugin](https://www.figma.com/community/plugin/910671699871076601/emailify-html-email-builder)."
---

# Install and run the Emailify Figma Plugin

> Ensure you're logged into your Figma account, then follow the steps below to install and run the [Emailify Figma Plugin](https://www.figma.com/community/plugin/910671699871076601/emailify-html-email-builder).

### Video Tutorial: How to install (and remove) Figma plugins

This video tutorial is a complete step-by-step guide showing you the new process of how to install (and remove) Figma plugins after the mid-2024 "UI3" update to the Figma app
[Embedded media](https://www.youtube.com/embed/CzjxF2Jv6PM)

## Installing the Emailify Figma Plugin

1. Open any Figma file.
2. Click on the **Actions** icon in the bottom Figma toolbar.
3. Click the **Plugins & Widgets** tab to filter results to Figma plugins.
4. Search for **Emailify** in the search bar.
5. Click on the **Emailify** search result.
6. Click the **Save** button to install the Emailify plugin.

> **Note:** Figma users in a **Figma Organization** may only be able to install approved plugins. Please contact your Figma Org admin at your company to [approve the Emailify plugin](https://help.figma.com/hc/en-us/articles/4404228724759-Manage-plugins-and-widgets-in-an-organization) if you're unable to install certain Figma plugins.

## Running the Emailify Figma Plugin

Once you've [installed](#installing-the-figma-plugin) the **Emailify** Figma plugin, to run the plugin in your Figma file:

  1. **Right-click** anywhere on your Figma file's page canvas
  2. Hover your mouse over the **Plugins** ▶ menu item
  3. Hover your mouse over the **Saved plugins** ▶ menu item
  4. Click on the **Emailify** plugin menu item

> **Tip:** After you've run the **Emailify** plugin once in a Figma file, you'll be able to quickly re-launch it by clicking the **Emailify** icon in the right-hand side Figma column (under the **Plugin** subheading).

> **Warning:** Only Figma users with **Edit** access to a Figma file can run a Figma plugin in that Figma file; if you only have **View** permissions, you won't be able to run any Figma plugins in that file.

## Uninstalling the Emailify Figma plugin

1. Open any Figma file.
2. Click on the **Actions** icon in the bottom Figma toolbar.
3. Click the **Plugins & Widgets** tab to filter results to Figma plugins.
4. Search for **Emailify** in the search bar.
5. Click on the **Emailify** search result.
6. Click the **Remove** button to uninstall the Emailify plugin.

> **Note:** This will remove the plugin from your **Saved Plugins** list, however, the Figma plugin may still show up under your **Recents** list (if it has been recently run), as Figma saves this list of recent plugins in your browser's/app's local storage. The plugin will vanish from the Recents menu after other plugins are run to take its place.

---

---
url: "/emailify/overview/pro.md"
description: "After trying out all the Pro features of Emailify **10 times**, you can optionally upgrade to continue using all the extra features that are only available in the Pro version; or if you're a casual user, you can continue using the Free version forever."
---

# Activating Emailify Pro

> After trying out all the Pro features of Emailify **10 times**, you can optionally upgrade to continue using all the extra features that are only available in the Pro version; or if you're a casual user, you can continue using the Free version forever.

> **Tip:** Need a Emailify Pro account? You can purchase a Pro account for you or your team by visiting the [Emailify](https://www.hypermatic.com/emailify/#pro) product page on the Hypermatic website.

## Activating the Figma plugin with an Emailify Pro license key

1. **Purchase a Pro license** for you or your team by visiting the [Emailify](https://www.hypermatic.com/emailify/#pro) product page on the Hypermatic website.
2. **Run the Emailify Plugin**, then click on the **Upgrade Now** button at the bottom of the Figma plugin window.
3. **Paste in your Pro key**, then click the **Unlock** button.

This will unlock the Pro version of Emailify and give you unlimited use all of the Figma plugin features.

> **Warning:** Note, if you're in China, the accounts server _may_ be blocked by "The Great Firewall of China". If you're seeing a activation error, despite using a valid key, you will likely need to use a [VPN](https://protonvpn.com/free-vpn/) to resolve the issue.

> **Info:** If you ever need to use a different license key at any time (for example, you were using your own personal Pro license key, but now your employer is buying you a Pro license to use instead), you can press **CTRL + K** while your plugin window is open in Figma, and this will bring up the license key prompt again, where you can enter a different license key.

---

---
url: "/emailify/overview/quickstart.md"
description: "Design and export responsive, production-ready HTML emails from Figma."
---

# Get started with Emailify

> Design and export responsive, production-ready HTML emails from Figma.

[![Emailify Figma Plugin](https://www.hypermatic.com/emailify.jpg)](https://www.figma.com/community/plugin/910671699871076601/emailify-html-email-builder)

> **Warning:** Emailify **does not support** any Figma email designs that were created outside of the plugin.

## Install and activate Emailify

- [Install & Run the Figma plugin](/emailify/overview/install.md): How to run Emailify inside of Figma
- [Activate Emailify Pro](/emailify/overview/pro.md): How to buy and use a Pro license key

## Using Emailify

  - [Emailify Documentation](/emailify/design/fundamentals.md): Detailed docs with short screencaps
  - [Emailify Video Tutorials](/emailify/tutorials.md): Full step-by-step video walkthroughs

## Frequently asked questions

- [Troubleshooting Emailify](/emailify/faq/troubleshooting.md): Common issues issues you may run into
- [Emailify Security](/emailify/faq/security.md): Details about how Emailify works
- [Receipts](/faq/receipts.md): Find email receipts and PDF invoices
- [Billing](/faq/billing.md): Manage your Pro subscription
- [License Seat Management](/faq/seats.md): Manage the Figma users on your key
- [Emailify Free vs Pro](/emailify/faq/plans.md): Compare Free vs Pro features

[Video](https://www.hypermatic.com/assets/videos/emailify/EMAILIFY_DEMO.mp4)

## Emailify features

- Start new emails from a blank template, layout, Randomize layout, or Emailify Figma template.
- Quickly design emails using dozens of included common components.
- Add your own re-usable components with the custom component builder.
- Customise your text, images, styles and auto-layout settings with Figma.
- Includes 100+ free professionally designed Emailify-ready Figma templates for inspiration.
- Set responsive mobile overrides for individual layers.
- Translate and localize your Figma email designs via OpenAI, Claude, Gemini, Excel (XLSX) file export/import, or using the Lokalise API, Crowdin API, or Locize API, with optional Markdown formatting.
- Dark mode previews with custom color overrides and image swaps (for [supported](https://www.caniemail.com/features/css-at-media-prefers-color-scheme/) clients)
- Supports exporting animated GIFs from Figma layers in email designs.
- Preview your real HTML email at different device sizes directly inside the plugin.
- Supports Google font and custom font embeds (with configureable web safe fallbacks for [unsupported](https://www.caniemail.com/search/?s=font) clients).
- Design and export HTML email signatures.
- Export responsive, production-ready HTML without writing code.
- Integrations for Klaviyo, MailChimp, Campaign Monitor, SendGrid, PostMark, HubSpot, ActiveCampaign, Salesforce Marketing Cloud, Pardot, Braze, Bazaarvoice, Iterable, OneSignal, Omnisend, Ongage, Dotdigital, MailJet, Intercom, Zoho Campaigns, Customer.io, Brevo (Sendinblue), Mailgun, SendPulse, Selzy, Stripo, MailerLite, EmailOctopus, Loops.so, GetResponse, ConvertKit, Constant Contact, Drip, SugarCRM, Shopify, Aweber, Benchmark Email, Insider, Moosend, SendX, Mailercloud, Bloomreach, Amazon SES (AWS), Sendwithus, Emarsys, Contlo, Spotler, Mailmodo, Blueshift, Yotpo, Bento, Buttondown, Resend, Sailthru, Mautic, Sendy, Microsoft Dynamics 365, Oracle Eloqua, Oracle Responsys, Cheetah Digital by Marigold, Zeta, SARE, Netlify, Zapier, Make, PDF, Email on Acid or Custom Webhook URL.
- Automatically generates a preview page with all of your HTML emails.
- Optionally export developer friendly MJML source code or AMP Email HTML.
- Export HTML emails to PDFs for sending to clients for approvals.
- Optionally self-host images on your own Cloud Storage bucket (for example, AWS S3, Backblaze B2, Cloudflare R2, etc).
- Download the exported .zip file to your computer from Figma.

---

---
url: "/emailify/signatures/airmail-mac.md"
description: "Emailify includes an option for exporting HTML signatures, which you can copy/paste and use in Airmail (MacOS)."
---

# Export and install custom HTML email signatures for Airmail (MacOS)

> Emailify includes an option for exporting HTML signatures, which you can copy/paste and use in Airmail (MacOS).

> **Warning:** **Email signatures have a size limit of 10,000 characters in the HTML**. The plugin will warn you after exporting your email signature if its over the size limit. To avoid this you can use some of the **Signature** starter components under the **Footer** tab in the Emailify plugin.

> **Note:** Unfortunately, any **responsive mobile overrides _won't_ be rendered for any "HTML Email Signature" exports**, as any CSS style tags and @media queries are stripped out by email clients (therefore, it's also not included in the code export), so it's worth trying to strike a balance in the original design that looks nice across both desktop and mobile widths.

### Video Tutorial: Design and export HTML Email Signatures from Figma

This video walks through how to design
  and export production-ready, responsive HTML email from Figma using the
  Emailify plugin.
  [Embedded media](https://www.youtube.com/embed/dmjDTWiphWk)

## Export your HTML signature from Emailify

[Video](/assets/videos/emailify/export/export-email-signature.mp4)

In the Emailify plugin, click on the **Export HTML** button to open the export panel, select the **HTML Email Signature** option from the dropdown list, then click the **Export to HTML Signature** button to start exporting the emails you've selected from Figma to HTML.

After Emailify has finished processing your email(s), you'll be shown a confirmation message; you can download your `.zip` file to your computer by clicking the **Download your .zip file** button, then you can unzip the `.zip` to see your exported files.

## Copy your HTML email signature to the clipboard

[Video](/assets/videos/emailify/export/copy-html-signature.mp4)

After you've exported your HTML email signature from Emailify and unzipped the `.zip` file, you can open the `preview-and-install.html` file in your [Google Chrome](https://www.google.com/chrome/) web browser (as other browsers like Safari may have issues) and then click the **Copy HTML Signature** button on the preview page, which will automatically copy the contents of your HTML signature to your clipboard.

> **Tip:** Some email clients may require the "raw" HTML code, so if that's the case, you can click the **Copy HTML Signature (Raw Code)** button in the `preview-and-install.html` file to copy the selection as raw HTML to your clipboard that way instead.

> **Note:** Once you've copied the HTML to your clipboard, you can follow the instructions below (taken from the excellent guides provided by [SignatureHound](https://signaturehound.com/)) to install the signature in your email client.

## How to install your HTML email signature in Airmail (MacOS)

![Airmail (MacOS) Icon](/assets/images/emailify/signatures/airmail-macos.png)

1. With the Airmail application open, click **Airmail** and then **Preferences** in the top left corner of your screen.

2. From the preferences pop-up, click the **Accounts** tab, and then the settings cog on your email account.

3. Click the **Signature** tab, and then the **+** to create a new signature.

4. Click the **HTML** option in the signature editor and copy and paste your signature into the left-hand column.

![Screenshot of Airmail Settings Modal](/assets/images/emailify/signatures/airmail-macos-1.jpg)

> **Note:** By copying and pasting your signature into this HTML editor, you will ensure that your signature's images are not sent as attachments.

5. Click **Save**, close the Settings modal, compose a new email and enjoy your new signature!

![Screenshot of Installed Signature on Airmail](/assets/images/emailify/signatures/airmail-macos-2.jpg)

---

---
url: "/emailify/signatures/apple-mail-mac.md"
description: "Emailify includes an option for exporting HTML signatures, which you can copy/paste and use in Apple Mail (MacOS)."
---

# Export and install custom HTML email signatures for Apple Mail (MacOS)

> Emailify includes an option for exporting HTML signatures, which you can copy/paste and use in Apple Mail (MacOS).

> **Warning:** **Email signatures have a size limit of 10,000 characters in the HTML**. The plugin will warn you after exporting your email signature if its over the size limit. To avoid this you can use some of the **Signature** starter components under the **Footer** tab in the Emailify plugin.

> **Note:** Unfortunately, any **responsive mobile overrides _won't_ be rendered for any "HTML Email Signature" exports**, as any CSS style tags and @media queries are stripped out by email clients (therefore, it's also not included in the code export), so it's worth trying to strike a balance in the original design that looks nice across both desktop and mobile widths.

### Video Tutorial: Design and export HTML Email Signatures from Figma

This video walks through how to design
  and export production-ready, responsive HTML email from Figma using the
  Emailify plugin.
  [Embedded media](https://www.youtube.com/embed/dmjDTWiphWk)

## Export your HTML signature from Emailify

[Video](/assets/videos/emailify/export/export-email-signature.mp4)

In the Emailify plugin, click on the **Export HTML** button to open the export panel, select the **HTML Email Signature** option from the dropdown list, then click the **Export to HTML Signature** button to start exporting the emails you've selected from Figma to HTML.

After Emailify has finished processing your email(s), you'll be shown a confirmation message; you can download your `.zip` file to your computer by clicking the **Download your .zip file** button, then you can unzip the `.zip` to see your exported files.

## Copy your HTML email signature to the clipboard

[Video](/assets/videos/emailify/export/copy-html-signature.mp4)

After you've exported your HTML email signature from Emailify and unzipped the `.zip` file, you can open the `preview-and-install.html` file in your [Google Chrome](https://www.google.com/chrome/) web browser (as other browsers like Safari may have issues) and then click the **Copy HTML Signature** button on the preview page, which will automatically copy the contents of your HTML signature to your clipboard.

> **Tip:** Some email clients may require the "raw" HTML code, so if that's the case, you can click the **Copy HTML Signature (Raw Code)** button in the `preview-and-install.html` file to copy the selection as raw HTML to your clipboard that way instead.

> **Note:** Once you've copied the HTML to your clipboard, you can follow the instructions below (taken from the excellent guides provided by [SignatureHound](https://signaturehound.com/)) to install the signature in your email client.

## How to install your HTML email signature in Apple Mail (MacOS)

![Apple Mail (MacOS) Icon](/assets/images/emailify/signatures/apple-mail-macos.png)

1. With the Mail application open, click **Mail** and then **Preferences** in the top left corner of your screen.

2. From the preferences pop-up, click the **Signatures** tab.

3. Click the **+** button at the bottom of the middle column.

4. Copy and paste your new email signature into the right-hand column and close the pop-up window to save.

Images appear blank in this preview, but they load when you compose an email.

![Screenshot of Apple Mail MacOS Signature Modal](/assets/images/emailify/signatures/apple-mail-macos-1.jpg)

> **Warning:** Ensure that **Always match my default message font** is unchecked, otherwise your signature will appear in plain text.

> **Note:** Still seeing a plain text version? Try toggling the **Place signature above quoted text** checkbox and pasting in your signature again.

5. Select your new signature in the **Choose Signature** field near the bottom of the pop-up.

6. Close the **Preferences** pop-up, compose a new email and enjoy your new signature!

![Screenshot of Installed Signature on Apple Mail MacOS](/assets/images/emailify/signatures/apple-mail-macos-2.jpg)

> **Tip:** Images not appearing when you compose an email? Go to your Privacy settings and ensure that **Block All Remote Content** is unchecked.

> **Info:** When using Apple Mail in dark mode, it has a quirk where it will display a white background behind your signature in the "Inbox" panel (even if both the system and Mail settings are set to dark mode) if any retina images are being used in the signature. If the images are exported at a native 1x (instead of 2x retina) and not resized down etc, then it will remove the white background, but this is at the cost of having blurry/fuzzy images in the signature.

---

---
url: "/emailify/signatures/em-client-windows.md"
description: "Emailify includes an option for exporting HTML signatures, which you can copy/paste and use in eM Client (Windows)."
---

# Export and install custom HTML email signatures for eM Client (Windows)

> Emailify includes an option for exporting HTML signatures, which you can copy/paste and use in eM Client (Windows).

> **Warning:** **Email signatures have a size limit of 10,000 characters in the HTML**. The plugin will warn you after exporting your email signature if its over the size limit. To avoid this you can use some of the **Signature** starter components under the **Footer** tab in the Emailify plugin.

> **Note:** Unfortunately, any **responsive mobile overrides _won't_ be rendered for any "HTML Email Signature" exports**, as any CSS style tags and @media queries are stripped out by email clients (therefore, it's also not included in the code export), so it's worth trying to strike a balance in the original design that looks nice across both desktop and mobile widths.

### Video Tutorial: Design and export HTML Email Signatures from Figma

This video walks through how to design
  and export production-ready, responsive HTML email from Figma using the
  Emailify plugin.
  [Embedded media](https://www.youtube.com/embed/dmjDTWiphWk)

## Export your HTML signature from Emailify

[Video](/assets/videos/emailify/export/export-email-signature.mp4)

In the Emailify plugin, click on the **Export HTML** button to open the export panel, select the **HTML Email Signature** option from the dropdown list, then click the **Export to HTML Signature** button to start exporting the emails you've selected from Figma to HTML.

After Emailify has finished processing your email(s), you'll be shown a confirmation message; you can download your `.zip` file to your computer by clicking the **Download your .zip file** button, then you can unzip the `.zip` to see your exported files.

## Copy your HTML email signature to the clipboard

[Video](/assets/videos/emailify/export/copy-html-signature.mp4)

After you've exported your HTML email signature from Emailify and unzipped the `.zip` file, you can open the `preview-and-install.html` file in your [Google Chrome](https://www.google.com/chrome/) web browser (as other browsers like Safari may have issues) and then click the **Copy HTML Signature** button on the preview page, which will automatically copy the contents of your HTML signature to your clipboard.

> **Tip:** Some email clients may require the "raw" HTML code, so if that's the case, you can click the **Copy HTML Signature (Raw Code)** button in the `preview-and-install.html` file to copy the selection as raw HTML to your clipboard that way instead.

> **Note:** Once you've copied the HTML to your clipboard, you can follow the instructions below (taken from the excellent guides provided by [SignatureHound](https://signaturehound.com/)) to install the signature in your email client.

## How to install your HTML email signature in eM Client (Windows)

![eM Client (Windows) Icon](/assets/images/emailify/signatures/em-client-windows.png)

1. With the Em Client application open, click **Menu** in the top left of the window (next to the logo), then under the **Tools** option click the **Settings** link.

2. From the **Settings** pop-up, click the**Mail** tab, and then click the **Templates and Signatures** sub tab.

![Screenshot of the eM Client**s settings modal](/assets/images/emailify/signatures/em-client-windows-1.jpg)

1. Click the **Signatures...** button

2. From the **Signatures** pop-up click **Add Signature**.

3. Give your signature a name and copy and paste your signature into the editor.

![Screenshot of eM Client**s signature editor modal](/assets/images/emailify/signatures/em-client-windows-2.jpg)

6. Click **OK** to save your signature.

7. Ensure your signature now appears in the **Signature** pop-up and click **OK** again.

![Screenshot of Em Client**s signature editor modal](/assets/images/emailify/signatures/em-client-windows-3.jpg)

8. Select your new signature for the following options.

![Screenshot of eM Client**s vital signature settings](/assets/images/emailify/signatures/em-client-windows-4.jpg)

9. Click **Apply** to save your changes and then **OK** to close to Settings pop-up.

10. Compose a new email and enjoy your new signature!

![Screenshot of eM Client's compose email modal](/assets/images/emailify/signatures/em-client-windows-5.jpg)

---

---
url: "/emailify/signatures/gmail-ios.md"
description: "Emailify includes an option for exporting HTML signatures, which you can copy/paste and use in Gmail (iOS)."
---

# Export and install custom HTML email signatures for Gmail (iOS)

> Emailify includes an option for exporting HTML signatures, which you can copy/paste and use in Gmail (iOS).

> **Warning:** **Email signatures have a size limit of 10,000 characters in the HTML**. The plugin will warn you after exporting your email signature if its over the size limit. To avoid this you can use some of the **Signature** starter components under the **Footer** tab in the Emailify plugin.

> **Note:** Unfortunately, any **responsive mobile overrides _won't_ be rendered for any "HTML Email Signature" exports**, as any CSS style tags and @media queries are stripped out by email clients (therefore, it's also not included in the code export), so it's worth trying to strike a balance in the original design that looks nice across both desktop and mobile widths.

### Video Tutorial: Design and export HTML Email Signatures from Figma

This video walks through how to design
  and export production-ready, responsive HTML email from Figma using the
  Emailify plugin.
  [Embedded media](https://www.youtube.com/embed/dmjDTWiphWk)

## Export your HTML signature from Emailify

[Video](/assets/videos/emailify/export/export-email-signature.mp4)

In the Emailify plugin, click on the **Export HTML** button to open the export panel, select the **HTML Email Signature** option from the dropdown list, then click the **Export to HTML Signature** button to start exporting the emails you've selected from Figma to HTML.

After Emailify has finished processing your email(s), you'll be shown a confirmation message; you can download your `.zip` file to your computer by clicking the **Download your .zip file** button, then you can unzip the `.zip` to see your exported files.

## Copy your HTML email signature to the clipboard

[Video](/assets/videos/emailify/export/copy-html-signature.mp4)

After you've exported your HTML email signature from Emailify and unzipped the `.zip` file, you can open the `preview-and-install.html` file in your [Google Chrome](https://www.google.com/chrome/) web browser (as other browsers like Safari may have issues) and then click the **Copy HTML Signature** button on the preview page, which will automatically copy the contents of your HTML signature to your clipboard.

> **Tip:** Some email clients may require the "raw" HTML code, so if that's the case, you can click the **Copy HTML Signature (Raw Code)** button in the `preview-and-install.html` file to copy the selection as raw HTML to your clipboard that way instead.

> **Note:** Once you've copied the HTML to your clipboard, you can follow the instructions below (taken from the excellent guides provided by [SignatureHound](https://signaturehound.com/)) to install the signature in your email client.

## How to install your HTML email signature in Gmail (iOS)

![Gmail (iOS) Icon](/assets/images/emailify/signatures/gmail-ios.png)

1. To have email sent via the Gmail iOS App use your custom signature you need to first install your signature on your webmail account.

> **Note:** If you haven't set up your custom signature in your Gmail webmail account yet, please [follow the Gmail Webmail instructions](/emailify/signatures/gmail-webmail) first.

2. In the Gmail App you need to ensure that the mobile signature option is turned off. To turn this off, click the **Menu Icon** click **Settings**, select your Gmail Account, **Signature Settings**, and set the **Mobile Signature** toggle to **Off**.

![Screenshot of Mobile Signature Setting in Gmail App](/assets/images/emailify/signatures/gmail-ios-1.jpg)

3. Send an email to yourself to ensure the signature appears.

> **Tip:** The signature will _not be visible_ in the email composer. The only way to test it is working is to **send yourself an email**.

### Troubleshooting signatures not showing up in the Gmail iOS app

> **Warning:** Once you've installed the signature to your webmail account it can take a while until it starts sending via the Gmail app.

We were able to get our signature to show up immediately by switching to another Gmail account and then switching back to our main account through the app.

We also found that removing our account from the app and then re-adding it resulted in our new signature loading instantly.

Still not showing up? Make sure your signature is selected under **For New Emails Use** in Gmail webmail settings. See the [Gmail Webmail instructions](/emailify/signatures/gmail-webmail).

---

---
url: "/emailify/signatures/gmail-webmail.md"
description: "Emailify includes an option for exporting HTML signatures, which you can copy/paste and use in Gmail (Web Mail)."
---

# Export and install custom HTML email signatures for Gmail (Web Mail)

> Emailify includes an option for exporting HTML signatures, which you can copy/paste and use in Gmail (Web Mail).

> **Warning:** **Email signatures have a size limit of 10,000 characters in the HTML**. The plugin will warn you after exporting your email signature if its over the size limit. To avoid this you can use some of the **Signature** starter components under the **Footer** tab in the Emailify plugin.

> **Note:** Unfortunately, any **responsive mobile overrides _won't_ be rendered for any "HTML Email Signature" exports**, as any CSS style tags and @media queries are stripped out by email clients (therefore, it's also not included in the code export), so it's worth trying to strike a balance in the original design that looks nice across both desktop and mobile widths.

### Video Tutorial: Design and export HTML Email Signatures from Figma

This video walks through how to design
  and export production-ready, responsive HTML email from Figma using the
  Emailify plugin.
  [Embedded media](https://www.youtube.com/embed/dmjDTWiphWk)

## Export your HTML signature from Emailify

[Video](/assets/videos/emailify/export/export-email-signature.mp4)

In the Emailify plugin, click on the **Export HTML** button to open the export panel, select the **HTML Email Signature** option from the dropdown list, then click the **Export to HTML Signature** button to start exporting the emails you've selected from Figma to HTML.

After Emailify has finished processing your email(s), you'll be shown a confirmation message; you can download your `.zip` file to your computer by clicking the **Download your .zip file** button, then you can unzip the `.zip` to see your exported files.

## Copy your HTML email signature to the clipboard

[Video](/assets/videos/emailify/export/copy-html-signature.mp4)

After you've exported your HTML email signature from Emailify and unzipped the `.zip` file, you can open the `preview-and-install.html` file in your [Google Chrome](https://www.google.com/chrome/) web browser (as other browsers like Safari may have issues) and then click the **Copy HTML Signature** button on the preview page, which will automatically copy the contents of your HTML signature to your clipboard.

> **Tip:** Some email clients may require the "raw" HTML code, so if that's the case, you can click the **Copy HTML Signature (Raw Code)** button in the `preview-and-install.html` file to copy the selection as raw HTML to your clipboard that way instead.

> **Note:** Once you've copied the HTML to your clipboard, you can follow the instructions below (taken from the excellent guides provided by [SignatureHound](https://signaturehound.com/)) to install the signature in your email client.

## How to install your HTML email signature in Gmail (Web Mail)

![Gmail (Web Mail) Icon](/assets/images/emailify/signatures/gmail-webmail.png)

1. Once logged into your Gmail account, click the **Settings** Cog in the top right corner.

2. Select the **Settings** drop down option.

3. Scroll down to the **Signature** section and click **Create new**.

4. Enter your new signature name into the modal and click **Create**.

5. Copy and paste your signature into the signature editor.

> **Warning:** There is currently a bug with Chrome and the way it performs the copy/paste that causes your signature's links to appear underlined. Please complete the signature install process using a different browser such as [Mozilla Firefox](https://www.mozilla.org/en-US/firefox/new/) to resolve the issue. You can go back to using Chrome once your email signature is setup using another browser.

6. Select your new signature in the **For New Emails Use** drop down.

7. Ensure you scroll the bottom of the page and click **Save Changes**.

8. Compose a new email and enjoy your new signature!

> **Tip:** Looking to also send this signature through the Gmail iOS app? [View the Gmail iOS App instructions](/emailify/signatures/gmail-ios).

![Screenshot of Installed Signature on Gmail](/assets/images/emailify/signatures/gmail-webmail-2.jpg)

---

---
url: "/emailify/signatures/mail-app-ios.md"
description: "Emailify includes an option for exporting HTML signatures, which you can copy/paste and use in Mail App (iOS)."
---

# Export and install custom HTML email signatures for Mail App (iOS)

> Emailify includes an option for exporting HTML signatures, which you can copy/paste and use in Mail App (iOS).

> **Warning:** **Email signatures have a size limit of 10,000 characters in the HTML**. The plugin will warn you after exporting your email signature if its over the size limit. To avoid this you can use some of the **Signature** starter components under the **Footer** tab in the Emailify plugin.

> **Note:** Unfortunately, any **responsive mobile overrides _won't_ be rendered for any "HTML Email Signature" exports**, as any CSS style tags and @media queries are stripped out by email clients (therefore, it's also not included in the code export), so it's worth trying to strike a balance in the original design that looks nice across both desktop and mobile widths.

### Video Tutorial: Design and export HTML Email Signatures from Figma

This video walks through how to design
  and export production-ready, responsive HTML email from Figma using the
  Emailify plugin.
  [Embedded media](https://www.youtube.com/embed/dmjDTWiphWk)

## Export your HTML signature from Emailify

[Video](/assets/videos/emailify/export/export-email-signature.mp4)

In the Emailify plugin, click on the **Export HTML** button to open the export panel, select the **HTML Email Signature** option from the dropdown list, then click the **Export to HTML Signature** button to start exporting the emails you've selected from Figma to HTML.

After Emailify has finished processing your email(s), you'll be shown a confirmation message; you can download your `.zip` file to your computer by clicking the **Download your .zip file** button, then you can unzip the `.zip` to see your exported files.

## Copy your HTML email signature to the clipboard

[Video](/assets/videos/emailify/export/copy-html-signature.mp4)

After you've exported your HTML email signature from Emailify and unzipped the `.zip` file, you can open the `preview-and-install.html` file in your [Google Chrome](https://www.google.com/chrome/) web browser (as other browsers like Safari may have issues) and then click the **Copy HTML Signature** button on the preview page, which will automatically copy the contents of your HTML signature to your clipboard.

> **Tip:** Some email clients may require the "raw" HTML code, so if that's the case, you can click the **Copy HTML Signature (Raw Code)** button in the `preview-and-install.html` file to copy the selection as raw HTML to your clipboard that way instead.

> **Note:** Once you've copied the HTML to your clipboard, you can follow the instructions below (taken from the excellent guides provided by [SignatureHound](https://signaturehound.com/)) to install the signature in your email client.

## How to install your HTML email signature in Mail App (iOS)

![Mail App (iOS) Icon](/assets/images/emailify/signatures/apple-mail-ios.png)

1. Open the **Settings** app on your iOS device, type **Signature** into the search bar, and open the **Signature** setting under **Apps > Mail**. You can also get there manually via **Mail > Signature**.

![Screenshot of Apple Mail MacOS Signature Modal](/assets/images/emailify/signatures/apple-mail-ios-1.jpg)

2. Paste your signature into the signature editor. If you have more than one email account, make sure you're using the signature field for the correct account. Delete any existing text first, then press and hold in the editor and tap **Paste**.

> **Tip:** You can use Apple's [Universal Clipboard](https://support.apple.com/en-au/102430) feature to copy the HTML email signature on your Mac computer (by following [the step above](#copy-your-html-email-signature-to-the-clipboard)), and then paste it into your iPhone's Apple Mail app (ensuring that Wi-Fi and Bluetooth are enabled on both of your devices).

![Screenshot of signature in Mail Settings](/assets/images/emailify/signatures/apple-mail-ios-2.jpg)

> **Tip:** If the pasted signature looks too large or the formatting looks broken, use iOS Undo once to let Mail refresh the formatting. The easiest option is to tap the Undo arrow on the keyboard. If you don't see it, you can gently shake your iPhone until the Undo Change Attributes prompt appears and tap Undo, or swipe left with three fingers to undo. The signature formatting should automatically refresh after that.

![Animated demonstration of shaking an iPhone to undo signature formatting changes in Apple Mail](/assets/images/emailify/ios-shake.gif)

3. Close **Settings**, open the **Mail** app, and compose a new email to confirm your signature is working. If you have multiple email accounts, the signature will appear when you choose the same **From** address you pasted it into in **Settings**.

![Screenshot of signature in Mail Settings](/assets/images/emailify/signatures/apple-mail-ios-3.jpg)

> **Info:** When using Apple Mail in dark mode, it has a quirk where it will display a white background behind your signature in the "Inbox" panel (even if both the system and Mail settings are set to dark mode) if any retina images are being used in the signature. If the images are exported at a native 1x (instead of 2x retina) and not resized down etc, then it will remove the white background, but this is at the cost of having blurry/fuzzy images in the signature.

---

---
url: "/emailify/signatures/mail-app-windows-10.md"
description: "Emailify includes an option for exporting HTML signatures, which you can copy/paste and use in Mail App (Windows 10)."
---

# Export and install custom HTML email signatures for Mail App (Windows 10)

> Emailify includes an option for exporting HTML signatures, which you can copy/paste and use in Mail App (Windows 10).

> **Warning:** **Email signatures have a size limit of 10,000 characters in the HTML**. The plugin will warn you after exporting your email signature if its over the size limit. To avoid this you can use some of the **Signature** starter components under the **Footer** tab in the Emailify plugin.

> **Note:** Unfortunately, any **responsive mobile overrides _won't_ be rendered for any "HTML Email Signature" exports**, as any CSS style tags and @media queries are stripped out by email clients (therefore, it's also not included in the code export), so it's worth trying to strike a balance in the original design that looks nice across both desktop and mobile widths.

### Video Tutorial: Design and export HTML Email Signatures from Figma

This video walks through how to design
  and export production-ready, responsive HTML email from Figma using the
  Emailify plugin.
  [Embedded media](https://www.youtube.com/embed/dmjDTWiphWk)

## Export your HTML signature from Emailify

[Video](/assets/videos/emailify/export/export-email-signature.mp4)

In the Emailify plugin, click on the **Export HTML** button to open the export panel, select the **HTML Email Signature** option from the dropdown list, then click the **Export to HTML Signature** button to start exporting the emails you've selected from Figma to HTML.

After Emailify has finished processing your email(s), you'll be shown a confirmation message; you can download your `.zip` file to your computer by clicking the **Download your .zip file** button, then you can unzip the `.zip` to see your exported files.

## Copy your HTML email signature to the clipboard

[Video](/assets/videos/emailify/export/copy-html-signature.mp4)

After you've exported your HTML email signature from Emailify and unzipped the `.zip` file, you can open the `preview-and-install.html` file in your [Google Chrome](https://www.google.com/chrome/) web browser (as other browsers like Safari may have issues) and then click the **Copy HTML Signature** button on the preview page, which will automatically copy the contents of your HTML signature to your clipboard.

> **Tip:** Some email clients may require the "raw" HTML code, so if that's the case, you can click the **Copy HTML Signature (Raw Code)** button in the `preview-and-install.html` file to copy the selection as raw HTML to your clipboard that way instead.

> **Note:** Once you've copied the HTML to your clipboard, you can follow the instructions below (taken from the excellent guides provided by [SignatureHound](https://signaturehound.com/)) to install the signature in your email client.

## How to install your HTML email signature in Mail App (Windows 10)

![Mail App (Windows 10) Icon](/assets/images/emailify/signatures/mail-app-windows.png)

> **Warning:** **Windows 10 Mail infamously uses the Microsoft Word rendering engine for email which will cause differences to your signature preview**. Spacing and font sizing will appear slightly differently, images are often squished, and underlines will be added to your links. For many of your recipients these links will appear with a blue underline, irrespective of the color you set for them. ![Screenshot of blue underlined links sent from MS Word email client](/assets/images/emailify/signatures/outlook-2019-windows-4.jpg)

> **Note:** If you really care about your email signature being "pixel perfect" then **we recommend using a different email client that uses a HTML rendering engine** such as [Outlook.com](https://outlook.com).

1. With Windows 10 Mail open, click the Settings cog in the bottom of the left sidebar to open the settings drawer.

![Screenshot of Windows 10 Mail Settings Drawer](/assets/images/emailify/signatures/mail-app-windows-1.jpg)

2. Click the **Signature** option in the settings drawer to open the signature modal.

3. Copy and paste your signature into the signature editor.

![Screenshot of Windows 10 Mail Signature Settings Modal](/assets/images/emailify/signatures/mail-app-windows-2.jpg)

4. Click **Save** to close the signature modal.

5. Compose a new email and enjoy your new signature!

![Screenshot of Installed Signature in Windows 10 Mail](/assets/images/emailify/signatures/mail-app-windows-3.jpg)

---

---
url: "/emailify/signatures/mailbird-windows.md"
description: "Emailify includes an option for exporting HTML signatures, which you can copy/paste and use in Mailbird (Windows)."
---

# Export and install custom HTML email signatures for Mailbird (Windows)

> Emailify includes an option for exporting HTML signatures, which you can copy/paste and use in Mailbird (Windows).

> **Warning:** **Email signatures have a size limit of 10,000 characters in the HTML**. The plugin will warn you after exporting your email signature if its over the size limit. To avoid this you can use some of the **Signature** starter components under the **Footer** tab in the Emailify plugin.

> **Note:** Unfortunately, any **responsive mobile overrides _won't_ be rendered for any "HTML Email Signature" exports**, as any CSS style tags and @media queries are stripped out by email clients (therefore, it's also not included in the code export), so it's worth trying to strike a balance in the original design that looks nice across both desktop and mobile widths.

### Video Tutorial: Design and export HTML Email Signatures from Figma

This video walks through how to design
  and export production-ready, responsive HTML email from Figma using the
  Emailify plugin.
  [Embedded media](https://www.youtube.com/embed/dmjDTWiphWk)

## Export your HTML signature from Emailify

[Video](/assets/videos/emailify/export/export-email-signature.mp4)

In the Emailify plugin, click on the **Export HTML** button to open the export panel, select the **HTML Email Signature** option from the dropdown list, then click the **Export to HTML Signature** button to start exporting the emails you've selected from Figma to HTML.

After Emailify has finished processing your email(s), you'll be shown a confirmation message; you can download your `.zip` file to your computer by clicking the **Download your .zip file** button, then you can unzip the `.zip` to see your exported files.

## Copy your HTML email signature to the clipboard

[Video](/assets/videos/emailify/export/copy-html-signature.mp4)

After you've exported your HTML email signature from Emailify and unzipped the `.zip` file, you can open the `preview-and-install.html` file in your [Google Chrome](https://www.google.com/chrome/) web browser (as other browsers like Safari may have issues) and then click the **Copy HTML Signature** button on the preview page, which will automatically copy the contents of your HTML signature to your clipboard.

> **Tip:** Some email clients may require the "raw" HTML code, so if that's the case, you can click the **Copy HTML Signature (Raw Code)** button in the `preview-and-install.html` file to copy the selection as raw HTML to your clipboard that way instead.

> **Note:** Once you've copied the HTML to your clipboard, you can follow the instructions below (taken from the excellent guides provided by [SignatureHound](https://signaturehound.com/)) to install the signature in your email client.

## How to install your HTML email signature in Mailbird (Windows)

![Mailbird (Windows) Icon](/assets/images/emailify/signatures/mailbird-windows.png)

1. With Mailbird open, click the **Menu** in the top left corner and select the **Settings** option.

2. With the **Settings** modal open click the **Identities** tab, select your account and then click the **Edit** button.

![Screenshot of Settings modal in Mailbird](/assets/images/emailify/signatures/mailbird-windows-1.jpg)

3. Copy and paste your signature into the signature editor.

![Screenshot of Identity modal in Mailbird](/assets/images/emailify/signatures/mailbird-windows-2.jpg)

4. Click **OK** to save your signature, and close the Settings modal.

5. Compose a new email and enjoy your new signature!

![Screenshot of composing an email in Mailbird](/assets/images/emailify/signatures/mailbird-windows-3.jpg)

---

---
url: "/emailify/signatures/mozilla-thunderbird-windows.md"
description: "Emailify includes an option for exporting HTML signatures, which you can copy/paste and use in Mozilla Thunderbird (Windows)."
---

# Export and install custom HTML email signatures for Mozilla Thunderbird (Windows)

> Emailify includes an option for exporting HTML signatures, which you can copy/paste and use in Mozilla Thunderbird (Windows).

> **Warning:** **Email signatures have a size limit of 10,000 characters in the HTML**. The plugin will warn you after exporting your email signature if its over the size limit. To avoid this you can use some of the **Signature** starter components under the **Footer** tab in the Emailify plugin.

> **Note:** Unfortunately, any **responsive mobile overrides _won't_ be rendered for any "HTML Email Signature" exports**, as any CSS style tags and @media queries are stripped out by email clients (therefore, it's also not included in the code export), so it's worth trying to strike a balance in the original design that looks nice across both desktop and mobile widths.

### Video Tutorial: Design and export HTML Email Signatures from Figma

This video walks through how to design
  and export production-ready, responsive HTML email from Figma using the
  Emailify plugin.
  [Embedded media](https://www.youtube.com/embed/dmjDTWiphWk)

## Export your HTML signature from Emailify

[Video](/assets/videos/emailify/export/export-email-signature.mp4)

In the Emailify plugin, click on the **Export HTML** button to open the export panel, select the **HTML Email Signature** option from the dropdown list, then click the **Export to HTML Signature** button to start exporting the emails you've selected from Figma to HTML.

After Emailify has finished processing your email(s), you'll be shown a confirmation message; you can download your `.zip` file to your computer by clicking the **Download your .zip file** button, then you can unzip the `.zip` to see your exported files.

## Copy your HTML email signature to the clipboard

[Video](/assets/videos/emailify/export/copy-html-signature.mp4)

After you've exported your HTML email signature from Emailify and unzipped the `.zip` file, you can open the `preview-and-install.html` file in your [Google Chrome](https://www.google.com/chrome/) web browser (as other browsers like Safari may have issues) and then click the **Copy HTML Signature** button on the preview page, which will automatically copy the contents of your HTML signature to your clipboard.

> **Tip:** Some email clients may require the "raw" HTML code, so if that's the case, you can click the **Copy HTML Signature (Raw Code)** button in the `preview-and-install.html` file to copy the selection as raw HTML to your clipboard that way instead.

> **Note:** Once you've copied the HTML to your clipboard, you can follow the instructions below (taken from the excellent guides provided by [SignatureHound](https://signaturehound.com/)) to install the signature in your email client.

## How to install your HTML email signature in Mozilla Thunderbird (Windows)

![Mozilla Thunderbird (Windows) Icon](/assets/images/emailify/signatures/thunderbird-windows.png)

1. Download your signature as a HTML file.

> **Tip:** After exporting your signature from Emailify, you can find your HTML email signature file inside the exported `.zip` file, inside your email signature's folder as the **index.html** file (do _not_ use the the 'preview.html' file)

2. With the Mozilla Thunderbird application open, click the **Menu Icon** in the top right, then under **Options** select **Account Settings**.

3. From the **Account Settings** pop-up, click the **Attach the signature from a file instead (text, HTML, or image) checkbox** and choose the HTML signature you exported from Emailify (`index.html`) for the file input below.

![Screenshot of Spark settings modal with no signature](/assets/images/emailify/signatures/thunderbird-windows-1.jpg)

4. Click **OK** in the bottom right of the popup, compose a new email and enjoy your new signature!

> **Note:** Thunderbird shows red borders around elements in your email signature while editing. Recipients will not see these borders.

![Screenshot of Installed Signature on Spark](/assets/images/emailify/signatures/thunderbird-windows-2.jpg)

---

---
url: "/emailify/signatures/outlook-2019-windows.md"
description: "Emailify includes an option for exporting HTML signatures, which you can copy/paste and use in Outlook 2019 (Windows)."
---

# Export and install custom HTML email signatures for Outlook 2019 (Windows)

> Emailify includes an option for exporting HTML signatures, which you can copy/paste and use in Outlook 2019 (Windows).

> **Warning:** **Email signatures have a size limit of 10,000 characters in the HTML**. The plugin will warn you after exporting your email signature if its over the size limit. To avoid this you can use some of the **Signature** starter components under the **Footer** tab in the Emailify plugin.

> **Note:** Unfortunately, any **responsive mobile overrides _won't_ be rendered for any "HTML Email Signature" exports**, as any CSS style tags and @media queries are stripped out by email clients (therefore, it's also not included in the code export), so it's worth trying to strike a balance in the original design that looks nice across both desktop and mobile widths.

### Video Tutorial: Design and export HTML Email Signatures from Figma

This video walks through how to design
  and export production-ready, responsive HTML email from Figma using the
  Emailify plugin.
  [Embedded media](https://www.youtube.com/embed/dmjDTWiphWk)

## Export your HTML signature from Emailify

[Video](/assets/videos/emailify/export/export-email-signature.mp4)

In the Emailify plugin, click on the **Export HTML** button to open the export panel, select the **HTML Email Signature** option from the dropdown list, then click the **Export to HTML Signature** button to start exporting the emails you've selected from Figma to HTML.

After Emailify has finished processing your email(s), you'll be shown a confirmation message; you can download your `.zip` file to your computer by clicking the **Download your .zip file** button, then you can unzip the `.zip` to see your exported files.

## Copy your HTML email signature to the clipboard

[Video](/assets/videos/emailify/export/copy-html-signature.mp4)

After you've exported your HTML email signature from Emailify and unzipped the `.zip` file, you can open the `preview-and-install.html` file in your [Google Chrome](https://www.google.com/chrome/) web browser (as other browsers like Safari may have issues) and then click the **Copy HTML Signature** button on the preview page, which will automatically copy the contents of your HTML signature to your clipboard.

> **Tip:** Some email clients may require the "raw" HTML code, so if that's the case, you can click the **Copy HTML Signature (Raw Code)** button in the `preview-and-install.html` file to copy the selection as raw HTML to your clipboard that way instead.

> **Note:** Once you've copied the HTML to your clipboard, you can follow the instructions below (taken from the excellent guides provided by [SignatureHound](https://signaturehound.com/)) to install the signature in your email client.

## How to install your HTML email signature in Outlook 2019 (Windows)

![Outlook 2019 (Windows) Icon](/assets/images/emailify/signatures/outlook-2019-windows.png)

> **Warning:** **Outlook infamously uses the Microsoft Word rendering engine for email which will cause differences to your signature preview**. Spacing and font sizing will appear slightly differently, images are often squished, and underlines will be added to your links. For many of your recipients these links will appear with a blue underline, irrespective of the color you set for them. ![Screenshot of blue underlined links sent from MS Word email client](/assets/images/emailify/signatures/outlook-2019-windows-4.jpg)

> **Note:** If you really care about your email signature being "pixel perfect" then **we recommend using a different email client that uses a HTML rendering engine** such as [Outlook.com](https://outlook.com).

1. With Outlook open, click the **New Email** button to bring up the email composer.

2. Click **Signature** in the message toolbar and then the **Signatures** option to open the Signature Settings modal.

![Screenshot of Outlook 2019 Email Composer](/assets/images/emailify/signatures/outlook-2019-windows-1.jpg)

3. Select the existing signature you'd like to edit or click **New** to create one.

4. Copy and paste your signature into the signature editor.

![Screenshot of Outlook 2019 Signature Settings Modal](/assets/images/emailify/signatures/outlook-2019-windows-2.jpg)

5. Click **OK** to exit the Signature Settings modal.

6. Now under the **Signature** option in the message toolbar you should see your signature. From this dropdown click your signature to insert it into the email body.

![Screenshot of Installed Signature in Outlook 2019](/assets/images/emailify/signatures/outlook-2019-windows-3.jpg)

---

---
url: "/emailify/signatures/outlook-ios.md"
description: "Emailify includes an option for exporting HTML signatures, which you can copy/paste and use in Outlook (iOS)."
---

# Export and install custom HTML email signatures for Outlook (iOS)

> Emailify includes an option for exporting HTML signatures, which you can copy/paste and use in Outlook (iOS).

> **Warning:** **Email signatures have a size limit of 10,000 characters in the HTML**. The plugin will warn you after exporting your email signature if its over the size limit. To avoid this you can use some of the **Signature** starter components under the **Footer** tab in the Emailify plugin.

> **Note:** Unfortunately, any **responsive mobile overrides _won't_ be rendered for any "HTML Email Signature" exports**, as any CSS style tags and @media queries are stripped out by email clients (therefore, it's also not included in the code export), so it's worth trying to strike a balance in the original design that looks nice across both desktop and mobile widths.

### Video Tutorial: Design and export HTML Email Signatures from Figma

This video walks through how to design
  and export production-ready, responsive HTML email from Figma using the
  Emailify plugin.
  [Embedded media](https://www.youtube.com/embed/dmjDTWiphWk)

## Export your HTML signature from Emailify

[Video](/assets/videos/emailify/export/export-email-signature.mp4)

In the Emailify plugin, click on the **Export HTML** button to open the export panel, select the **HTML Email Signature** option from the dropdown list, then click the **Export to HTML Signature** button to start exporting the emails you've selected from Figma to HTML.

After Emailify has finished processing your email(s), you'll be shown a confirmation message; you can download your `.zip` file to your computer by clicking the **Download your .zip file** button, then you can unzip the `.zip` to see your exported files.

## Copy your HTML email signature to the clipboard

[Video](/assets/videos/emailify/export/copy-html-signature.mp4)

After you've exported your HTML email signature from Emailify and unzipped the `.zip` file, you can open the `preview-and-install.html` file in your [Google Chrome](https://www.google.com/chrome/) web browser (as other browsers like Safari may have issues) and then click the **Copy HTML Signature** button on the preview page, which will automatically copy the contents of your HTML signature to your clipboard.

> **Tip:** Some email clients may require the "raw" HTML code, so if that's the case, you can click the **Copy HTML Signature (Raw Code)** button in the `preview-and-install.html` file to copy the selection as raw HTML to your clipboard that way instead.

> **Note:** Once you've copied the HTML to your clipboard, you can follow the instructions below (taken from the excellent guides provided by [SignatureHound](https://signaturehound.com/)) to install the signature in your email client.

## How to install your HTML email signature in Outlook (iOS)

![Outlook (iOS) Icon](/assets/images/emailify/signatures/outlook-ios.png)

> **Warning:** **HTML signatures have been poorly supported by the Outlook iOS app in the past**. At one time reliable, our latest assessment of the app shows that your signature's email and phone number links will be removed causing these to appear blue for some of your recipients (depending on what email client they are using).

> **Note:** If you really care about your email signature being "pixel perfect" then we recommend using a different email app on your device such as the iOS Mail app.

1. In the Outlook iOS app, click the profile icon in the top left corner to show the menu drawer.

![Screenshot of the header banner in Outlook iOS](/assets/images/emailify/signatures/outlook-ios-1.jpg)

2. Now click the settings cog in the bottom left corner to open the settings.

![Screenshot of menu drawer in Outlook iOS](/assets/images/emailify/signatures/outlook-ios-2.jpg)

3. Under Email, click the **Signature** option.

![Screenshot of Mail Settings in Outlook iOS](/assets/images/emailify/signatures/outlook-ios-3.jpg)

4. Copy and paste your signature into the signature editor (press and hold on the editor to bring up the paste option).

> **Tip:** You can use Apple's [Universal Clipboard](https://support.apple.com/en-au/102430) feature to copy the HTML email signature on your Mac computer (by following [the step above](#copy-your-html-email-signature-to-the-clipboard)), and then paste it into your iPhone's Outlook app (ensuring that Wi-Fi and Bluetooth are enabled on both of your devices).

![Screenshot of the signature setting in Outlook iOS](/assets/images/emailify/signatures/outlook-ios-4.jpg)

5. Close the settings, compose and new email and enjoy your new signature!

![Screenshot of the signature setting in Outlook iOS](/assets/images/emailify/signatures/outlook-ios-5.jpg)

---

---
url: "/emailify/signatures/outlook-webmail.md"
description: "Emailify includes an option for exporting HTML signatures, which you can copy/paste and use in Outlook.com (Web Mail)."
---

# Export and install custom HTML email signatures for Outlook.com (Web Mail)

> Emailify includes an option for exporting HTML signatures, which you can copy/paste and use in Outlook.com (Web Mail).

> **Warning:** **Email signatures have a size limit of 10,000 characters in the HTML**. The plugin will warn you after exporting your email signature if its over the size limit. To avoid this you can use some of the **Signature** starter components under the **Footer** tab in the Emailify plugin.

> **Note:** Unfortunately, any **responsive mobile overrides _won't_ be rendered for any "HTML Email Signature" exports**, as any CSS style tags and @media queries are stripped out by email clients (therefore, it's also not included in the code export), so it's worth trying to strike a balance in the original design that looks nice across both desktop and mobile widths.

### Video Tutorial: Design and export HTML Email Signatures from Figma

This video walks through how to design
  and export production-ready, responsive HTML email from Figma using the
  Emailify plugin.
  [Embedded media](https://www.youtube.com/embed/dmjDTWiphWk)

## Export your HTML signature from Emailify

[Video](/assets/videos/emailify/export/export-email-signature.mp4)

In the Emailify plugin, click on the **Export HTML** button to open the export panel, select the **HTML Email Signature** option from the dropdown list, then click the **Export to HTML Signature** button to start exporting the emails you've selected from Figma to HTML.

After Emailify has finished processing your email(s), you'll be shown a confirmation message; you can download your `.zip` file to your computer by clicking the **Download your .zip file** button, then you can unzip the `.zip` to see your exported files.

## Copy your HTML email signature to the clipboard

[Video](/assets/videos/emailify/export/copy-html-signature.mp4)

After you've exported your HTML email signature from Emailify and unzipped the `.zip` file, you can open the `preview-and-install.html` file in your [Google Chrome](https://www.google.com/chrome/) web browser (as other browsers like Safari may have issues) and then click the **Copy HTML Signature** button on the preview page, which will automatically copy the contents of your HTML signature to your clipboard.

> **Tip:** Some email clients may require the "raw" HTML code, so if that's the case, you can click the **Copy HTML Signature (Raw Code)** button in the `preview-and-install.html` file to copy the selection as raw HTML to your clipboard that way instead.

> **Note:** Once you've copied the HTML to your clipboard, you can follow the instructions below (taken from the excellent guides provided by [SignatureHound](https://signaturehound.com/)) to install the signature in your email client.

## How to install your HTML email signature in Outlook.com (Web Mail)

![Outlook.com (Web Mail) Icon](/assets/images/emailify/signatures/outlook-webmail.png)

1. Once logged into your Outlook.com account, click the Settings Cog in the top right corner.

2. With the sidebar settings menu open click **View All Outlook Settings** in the bottom right corner.

3. Select the **Mail** tab and then **Compose and Reply** tab in the settings modal.

4. Copy and paste your new email signature into the signature editor.

> **Note:** Please ensure that the **Compose messages in HTML format** setting is correct and that you have checked the appropriate checkboxes around automatically using this signature.

![Screenshot of Outlook.com Web Mail Settings Screen](/assets/images/emailify/signatures/outlook-webmail-1.jpg)

5. Click Save and exit the settings modal.

6. Compose a new email and enjoy your new signature!

![Screenshot of Installed Signature on Outlook.com Webmail](/assets/images/emailify/signatures/outlook-webmail-2.jpg)

## Related Emailify guides

- Review the [Emailify design fundamentals](/emailify/design/fundamentals) before building a reusable signature layout.
- Follow the [design and export HTML emails tutorial](/emailify/tutorials/design-and-export-emails-from-figma-to-html) for the complete workflow.
- Explore the [Emailify Figma plugin](https://www.hypermatic.com/emailify/) for HTML emails and signatures designed in Figma.

---

---
url: "/emailify/signatures/spark-mac.md"
description: "Emailify includes an option for exporting HTML signatures, which you can copy/paste and use in Spark (MacOS)."
---

# Export and install custom HTML email signatures for Spark (MacOS)

> Emailify includes an option for exporting HTML signatures, which you can copy/paste and use in Spark (MacOS).

> **Warning:** **Email signatures have a size limit of 10,000 characters in the HTML**. The plugin will warn you after exporting your email signature if its over the size limit. To avoid this you can use some of the **Signature** starter components under the **Footer** tab in the Emailify plugin.

> **Note:** Unfortunately, any **responsive mobile overrides _won't_ be rendered for any "HTML Email Signature" exports**, as any CSS style tags and @media queries are stripped out by email clients (therefore, it's also not included in the code export), so it's worth trying to strike a balance in the original design that looks nice across both desktop and mobile widths.

### Video Tutorial: Design and export HTML Email Signatures from Figma

This video walks through how to design
  and export production-ready, responsive HTML email from Figma using the
  Emailify plugin.
  [Embedded media](https://www.youtube.com/embed/dmjDTWiphWk)

## Export your HTML signature from Emailify

[Video](/assets/videos/emailify/export/export-email-signature.mp4)

In the Emailify plugin, click on the **Export HTML** button to open the export panel, select the **HTML Email Signature** option from the dropdown list, then click the **Export to HTML Signature** button to start exporting the emails you've selected from Figma to HTML.

After Emailify has finished processing your email(s), you'll be shown a confirmation message; you can download your `.zip` file to your computer by clicking the **Download your .zip file** button, then you can unzip the `.zip` to see your exported files.

## Copy your HTML email signature to the clipboard

[Video](/assets/videos/emailify/export/copy-html-signature.mp4)

After you've exported your HTML email signature from Emailify and unzipped the `.zip` file, you can open the `preview-and-install.html` file in your [Google Chrome](https://www.google.com/chrome/) web browser (as other browsers like Safari may have issues) and then click the **Copy HTML Signature** button on the preview page, which will automatically copy the contents of your HTML signature to your clipboard.

> **Tip:** Some email clients may require the "raw" HTML code, so if that's the case, you can click the **Copy HTML Signature (Raw Code)** button in the `preview-and-install.html` file to copy the selection as raw HTML to your clipboard that way instead.

> **Note:** Once you've copied the HTML to your clipboard, you can follow the instructions below (taken from the excellent guides provided by [SignatureHound](https://signaturehound.com/)) to install the signature in your email client.

## How to install your HTML email signature in Spark (MacOS)

![Spark (MacOS) Icon](/assets/images/emailify/signatures/spark-macos.png)

1. With the Spark application open, click **Mail** and then **Preferences** in the top left corner of your screen.

2. From the preferences pop-up, click the **Signature** tab, and click the **Add Signature** button if you don't have any existing signatures.

![Screenshot of Spark settings modal with no signature](/assets/images/emailify/signatures/spark-macos-1.jpg)

3. Copy and paste your signature into the signature editor.

![Screenshot of Spark settings modal with signature](/assets/images/emailify/signatures/spark-macos-2.jpg)

> **Warning:** Ensure that **Always match my default message font** is unchecked.

4. Close the Settings modal, compose a new email and enjoy your new signature!

![Screenshot of Installed Signature on Spark](/assets/images/emailify/signatures/spark-macos-3.jpg)

---

---
url: "/emailify/signatures/yahoo-webmail.md"
description: "Emailify includes an option for exporting HTML signatures, which you can copy/paste and use in Yahoo! (Web Mail)."
---

# Export and install custom HTML email signatures for Yahoo! (Web Mail)

> Emailify includes an option for exporting HTML signatures, which you can copy/paste and use in Yahoo! (Web Mail).

> **Warning:** **Email signatures have a size limit of 10,000 characters in the HTML**. The plugin will warn you after exporting your email signature if its over the size limit. To avoid this you can use some of the **Signature** starter components under the **Footer** tab in the Emailify plugin.

> **Note:** Unfortunately, any **responsive mobile overrides _won't_ be rendered for any "HTML Email Signature" exports**, as any CSS style tags and @media queries are stripped out by email clients (therefore, it's also not included in the code export), so it's worth trying to strike a balance in the original design that looks nice across both desktop and mobile widths.

### Video Tutorial: Design and export HTML Email Signatures from Figma

This video walks through how to design
  and export production-ready, responsive HTML email from Figma using the
  Emailify plugin.
  [Embedded media](https://www.youtube.com/embed/dmjDTWiphWk)

## Export your HTML signature from Emailify

[Video](/assets/videos/emailify/export/export-email-signature.mp4)

In the Emailify plugin, click on the **Export HTML** button to open the export panel, select the **HTML Email Signature** option from the dropdown list, then click the **Export to HTML Signature** button to start exporting the emails you've selected from Figma to HTML.

After Emailify has finished processing your email(s), you'll be shown a confirmation message; you can download your `.zip` file to your computer by clicking the **Download your .zip file** button, then you can unzip the `.zip` to see your exported files.

## Copy your HTML email signature to the clipboard

[Video](/assets/videos/emailify/export/copy-html-signature.mp4)

After you've exported your HTML email signature from Emailify and unzipped the `.zip` file, you can open the `preview-and-install.html` file in your [Google Chrome](https://www.google.com/chrome/) web browser (as other browsers like Safari may have issues) and then click the **Copy HTML Signature** button on the preview page, which will automatically copy the contents of your HTML signature to your clipboard.

> **Tip:** Some email clients may require the "raw" HTML code, so if that's the case, you can click the **Copy HTML Signature (Raw Code)** button in the `preview-and-install.html` file to copy the selection as raw HTML to your clipboard that way instead.

> **Note:** Once you've copied the HTML to your clipboard, you can follow the instructions below (taken from the excellent guides provided by [SignatureHound](https://signaturehound.com/)) to install the signature in your email client.

## How to install your HTML email signature in Yahoo! (Web Mail)

> **Warning:** Unfortunately, **Yahoo! Mail makes on the fly adjustments to the images in your signature which is out of our control**. Please [read all of the details about these rendering issues](#important-information-about-yahoo-mail-image-scale-rendering-issues) below.

![Yahoo! (Web Mail) Icon](/assets/images/emailify/signatures/yahoo-webmail.png)

1. Once logged into your Yahoo account, click the Settings Cog in the top right corner.

2. With the dropdown open click **More Settings**.

3. Click **Writing Email** from the settings options.

4. Click the **+** button at the bottom of the middle column.

5. Copy and paste your new email signature into the signature editor.

> **Warning:** There is currently a bug with Chrome and the way it performs the copy/paste that causes your signature's links to appear underlined. Please complete the signature install process using a different browser such as [Mozilla Firefox](https://www.mozilla.org/en-US/firefox/new/) to resolve the issue. You can go back to using Chrome once your email signature is setup using another browser.

> **Note:** If your signature does not appear in the preview on the right then move the text cursor in signature editor to the top of the pane and hit the **Enter** key.

![Screenshot of Yahoo Web Mail Settings Screen](/assets/images/emailify/signatures/yahoo-webmail-1.jpg)

6. Your signature should then save automatically. Close the settings page, compose a new email and enjoy your new signature!

![Screenshot of Installed Signature on Yahoo Webmail](/assets/images/emailify/signatures/yahoo-webmail-2.jpg)

### Important information about Yahoo! Mail image scale rendering issues

Unfortunately Yahoo Mail makes on the fly adjustments to the images in your signature which is out of our control. This can cause rendering issues in certain email clients if your images are being scaled down from their natural size.

We've noticed that the following images are being scaled down:

- Profile Image (400px → 100px)
- Logo (600px → 150px)

While the signature may look fine in the Yahoo Mail preview, it is likely that recipeints using Microsoft email clients such as Outlook 2019 will see any images at their full size (example below).

![Screenshot of Yahoo Web Mail sent email in MS Outlook](/assets/images/emailify/signatures/yahoo-webmail-warning.jpg)

Please test your signature by sending it to a recipient who is using a Windows mail client. If the issue is occuring you can resolve it by uploading your images at the exact size that they should appear in the signature (and not scale them down). You can use a [free online service](https://www.iloveimg.com/resize-image) (or Figma) to resize your images appropriately.

> **Warning:** Once resized your images will render correctly in Windows email clients however they will appear slightly blurry on tablets, phones and other high resolution screens. If you are not willing to compromise on this we recommend using a different email client.

---

---
url: "/emailify/tutorials.md"
description: "The best free Figma tutorial videos for beginners (or power users) to level up."
---

# Emailify Video Tutorials

> The best free Figma tutorial videos for beginners (or power users) to level up.

## Designing Emails

- [Design and export Emails from Figma to HTML](/emailify/tutorials/design-and-export-emails-from-figma-to-html)
- [Create a component library for HTML email designs in Figma](/emailify/tutorials/create-a-component-library-for-html-email-designs-in-figma)
- [Use 500+ free HTML email components in your Figma designs](/emailify/tutorials/use-500-free-html-email-components-in-your-figma-designs)
- [Add elements to HTML email designs in Figma](/emailify/tutorials/easily-add-elements-to-html-email-designs-in-figma)
- [Create custom components for HTML email exports](/emailify/tutorials/create-custom-components-for-html-email-exports)
- [Add custom categories for Figma email components](/emailify/tutorials/add-custom-categories-for-figma-email-components)
- [Use free Figma email templates to design HTML emails](/emailify/tutorials/use-free-figma-email-templates-to-design-html-emails)
- [Add UTM tracking code to HTML email links from Figma](/emailify/tutorials/add-utm-tracking-code-to-html-email-links-from-figma)
- [Add Outlook-compatible gradient buttons to HTML emails with Figma](/emailify/tutorials/add-outlook-compatible-gradient-buttons-to-html-emails-with-figma)
- [Add hover effects to buttons in HTML emails from Figma](/emailify/tutorials/add-hover-effects-to-buttons-in-html-emails-from-figma)
- [Add hover colors to text links in HTML emails from Figma](/emailify/tutorials/add-hover-colors-to-text-links-in-html-emails-from-figma)
- [Add animated GIFs from Figma to HTML email exports](/emailify/tutorials/add-animated-gifs-from-figma-to-html-email-exports)
- [Embed custom web fonts in HTML email exports from Figma](/emailify/tutorials/embed-custom-web-fonts-in-html-email-exports-from-figma)
- [Add dark mode styles to HTML email designs](/emailify/tutorials/add-dark-mode-styles-to-html-email-designs)
- [Design and export HTML Email Signatures from Figma](/emailify/tutorials/design-and-export-html-email-signatures-from-figma)
- [Add a countdown timer to HTML emails in Figma](/emailify/tutorials/add-a-countdown-timer-to-html-emails-in-figma)

## Email Content

- [Add dynamic content to HTML emails in Figma](/emailify/tutorials/add-dynamic-content-to-html-emails-in-figma)
- [Create Klaviyo abandoned cart flow email template in Figma](/emailify/tutorials/create-klaviyo-abandoned-cart-flow-email-template-in-figma)
- [Adding a dynamic product feed to your Klaviyo emails](/emailify/tutorials/adding-a-dynamic-product-feed-to-your-klaviyo-emails)
- [Translate HTML email designs with localization in Figma](/emailify/tutorials/translate-html-email-designs-with-localization-in-figma)
- [Localize HTML email designs (with text formatting) in Figma](/emailify/tutorials/localize-html-email-designs-with-text-formatting-in-figma)
- [Translate email designs in Figma with ChatGPT](/emailify/tutorials/translate-email-designs-in-figma-with-chatgpt)
- [Translate email designs in Figma with the Lokalise API](/emailify/tutorials/translate-email-designs-in-figma-with-the-lokalise-api)
- [Translate email designs in Figma with the Crowdin API](/emailify/tutorials/translate-email-designs-in-figma-with-the-crowdin-api)
- [Import spreadsheets to tables for HTML emails in Figma](/emailify/tutorials/import-spreadsheets-to-tables-for-html-emails-in-figma)

## Platform Integrations

- [Export HTML emails from Figma to MailChimp](/emailify/tutorials/export-html-emails-from-figma-to-mailchimp)
- [Export HTML emails from Figma to Campaign Monitor](/emailify/tutorials/export-html-emails-from-figma-to-campaign-monitor)
- [Export HTML emails from Figma to Klaviyo](/emailify/tutorials/export-html-emails-from-figma-to-klaviyo)
- [Export HTML emails from Figma to Zapier (Google Drive)](/emailify/tutorials/export-html-emails-from-figma-to-zapier-google-drive)
- [Export HTML emails from Figma to Postmark](/emailify/tutorials/export-html-emails-from-figma-to-postmark)
- [Export HTML emails from Figma to Salesforce Marketing Cloud](/emailify/tutorials/export-html-emails-from-figma-to-salesforce-marketing-cloud)
- [Export HTML emails from Figma to Pardot (Marketing Cloud Account Engagement)](/emailify/tutorials/export-html-emails-from-figma-to-pardot-marketing-cloud-account-engagement)
- [Export HTML emails from Figma to SendGrid](/emailify/tutorials/export-html-emails-from-figma-to-sendgrid)
- [Export HTML emails from Figma to Mailjet](/emailify/tutorials/export-html-emails-from-figma-to-mailjet)
- [Export HTML emails from Figma to SendPulse](/emailify/tutorials/export-html-emails-from-figma-to-sendpulse)
- [Uploading your emails to Sendwithus](/emailify/tutorials/uploading-your-emails-to-sendwithus)
- [Export HTML emails from Figma to Brevo](/emailify/tutorials/export-html-emails-from-figma-to-brevo)
- [Export HTML emails from Figma to Mailmodo](/emailify/tutorials/export-html-emails-from-figma-to-mailmodo)
- [Export HTML emails from Figma to Yotpo](/emailify/tutorials/export-html-emails-from-figma-to-yotpo)
- [Export HTML emails from Figma to Bento](/emailify/tutorials/export-html-emails-from-figma-to-bento)
- [Export HTML emails from Figma to Intercom](/emailify/tutorials/export-html-emails-from-figma-to-intercom)
- [Export HTML emails from Figma to SARE](/emailify/tutorials/export-html-emails-from-figma-to-sare)
- [Export HTML emails from Figma to Mailgun](/emailify/tutorials/export-html-emails-from-figma-to-mailgun)
- [Export HTML emails from Figma to Customer.io](/emailify/tutorials/export-html-emails-from-figma-to-customer-io)
- [Export HTML emails from Figma to HubSpot](/emailify/tutorials/export-html-emails-from-figma-to-hubspot)
- [Export HTML emails from Figma to Braze](/emailify/tutorials/export-html-emails-from-figma-to-braze)
- [Export HTML emails from Figma to ActiveCampaign](/emailify/tutorials/export-html-emails-from-figma-to-activecampaign)
- [Export HTML emails from Figma to OneSignal](/emailify/tutorials/export-html-emails-from-figma-to-onesignal)
- [Export HTML emails from Figma to Selzy](/emailify/tutorials/export-html-emails-from-figma-to-selzy)
- [Export HTML emails from Figma to Omnisend](/emailify/tutorials/export-html-emails-from-figma-to-omnisend)
- [Export HTML emails from Figma to Zoho Campaigns](/emailify/tutorials/export-html-emails-from-figma-to-zoho-campaigns)
- [Export HTML emails from Figma to Stripo](/emailify/tutorials/export-html-emails-from-figma-to-stripo)
- [Export HTML emails from Figma to MailerLite](/emailify/tutorials/export-html-emails-from-figma-to-mailerlite)
- [Export HTML emails from Figma to EmailOctopus](/emailify/tutorials/export-html-emails-from-figma-to-emailoctopus)
- [Export HTML emails from Figma to Loops.so](/emailify/tutorials/export-html-emails-from-figma-to-loops-so)
- [Export HTML emails from Figma to GetResponse](/emailify/tutorials/export-html-emails-from-figma-to-getresponse)
- [Export HTML emails from Figma to ConvertKit](/emailify/tutorials/export-html-emails-from-figma-to-convertkit)
- [Export HTML emails from Figma to Constant Contact](/emailify/tutorials/export-html-emails-from-figma-to-constant-contact)
- [Export HTML emails from Figma to Drip](/emailify/tutorials/export-html-emails-from-figma-to-drip)
- [Export HTML emails from Figma to Aweber](/emailify/tutorials/export-html-emails-from-figma-to-aweber)
- [Export HTML emails from Figma to SugarCRM (Sugar Market)](/emailify/tutorials/export-html-emails-from-figma-to-sugarcrm-sugar-market)
- [Export HTML emails from Figma to Benchmark Email](/emailify/tutorials/export-html-emails-from-figma-to-benchmark-email)
- [Export HTML emails from Figma to Insider (UseInsider)](/emailify/tutorials/export-html-emails-from-figma-to-insider-useinsider)
- [Export HTML emails from Figma to Moosend](/emailify/tutorials/export-html-emails-from-figma-to-moosend)
- [Export HTML emails from Figma to SendX](/emailify/tutorials/export-html-emails-from-figma-to-sendx)
- [Export HTML emails from Figma to Ongage](/emailify/tutorials/export-html-emails-from-figma-to-ongage)
- [Export HTML emails from Figma to Mailercloud](/emailify/tutorials/export-html-emails-from-figma-to-mailercloud)
- [Export HTML emails from Figma to Marketo](/emailify/tutorials/export-html-emails-from-figma-to-marketo)
- [Export HTML emails from Figma to Amazon Simple Email Service (SES)](/emailify/tutorials/export-html-emails-from-figma-to-amazon-simple-email-service-ses)
- [Export emails from Figma to MJML code](/emailify/tutorials/export-emails-from-figma-to-mjml-code)
- [Export HTML emails from Figma to Plain Text format](/emailify/tutorials/export-html-emails-from-figma-to-plain-text-format)

## Preview Links/PDFs

- [Upload preview links for HTML emails from Figma to Netlify](/emailify/tutorials/upload-preview-links-for-html-emails-from-figma-to-netlify)
- [Export HTML emails from Figma to PDF previews](/emailify/tutorials/export-html-emails-from-figma-to-pdf-previews)
- [Export emails from Figma to grayscale wireframe previews](/emailify/tutorials/export-emails-from-figma-to-grayscale-wireframe-previews)

## Testing Emails

- [Export HTML email tests from Figma to Email on Acid](/emailify/tutorials/export-html-email-tests-from-figma-to-email-on-acid)
- [Test HTML emails in different clients with exports from Figma](/emailify/tutorials/test-html-emails-in-different-clients-with-exports-from-figma)
- [Test HTML emails in dark mode with exports from Figma](/emailify/tutorials/test-html-emails-in-dark-mode-with-exports-from-figma)
- [Test HTML emails in Gmail with exports from Figma](/emailify/tutorials/test-html-emails-in-gmail-with-exports-from-figma)
- [Test HTML emails on mobile with exports from Figma](/emailify/tutorials/test-html-emails-on-mobile-with-exports-from-figma)
- [Test HTML emails in Outlook with exports from Figma](/emailify/tutorials/test-html-emails-in-outlook-with-exports-from-figma)
- [Send yourself tests of HTML emails from Figma with PutsMail](/emailify/tutorials/send-yourself-tests-of-html-emails-from-figma-with-putsmail)

## More video tutorials

- [How to export HTML emails from Figma to Sendinblue using Emailify](/emailify/tutorials/how-to-export-html-emails-from-figma-to-sendinblue-using-emailify)
- [How to export HTML emails with RTL (right-to-left) text from Figma using Emailify](/emailify/tutorials/how-to-export-html-emails-with-rtl-right-to-left-text-from-figma-using-emailify)

---

---
url: "/emailify/tutorials/add-a-countdown-timer-to-html-emails-in-figma.md"
description: "This tutorial shows how to add a dynamic countdown timer to an HTML email in Figma using the Emailify plugin. It uses a countdown image URL from a timer service, overrides the image source in Emailify, previews the result, and exports the email to HTML."
---

# Add a countdown timer to HTML emails in Figma

> This tutorial shows how to add a dynamic countdown timer to an HTML email in Figma using the Emailify plugin. It uses a countdown image URL from a timer service, overrides the image source in Emailify, previews the result, and exports the email to HTML.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/1IOfvsZTTXM)

**What this video covers**

This tutorial shows how to add a dynamic countdown timer to an HTML email in Figma using the Emailify plugin. It uses a countdown image URL from a timer service, overrides the image source in Emailify, previews the result, and exports the email to HTML.

**Things you'll need**

- Figma
- Emailify plugin

**Steps**

1. Open a new Figma file and run the Emailify plugin from the Resources icon or Saved plugins.
2. Create an Emailify email frame and add a simple content layout with a Column layer.
3. Generate a countdown timer on sendtric.com, copy the timer image URL from the src attribute, and paste or place the timer image into Figma.
4. Select the image layer, open Emailify "HTML & Mobile Settings," and use "Override image source" to paste in the dynamic countdown URL.
5. Preview the email to confirm the countdown timer loads dynamically in the HTML preview.
6. Export using "Export HTML" and the "HTML Email" option, then open the exported files to verify the countdown timer appears in the HTML output.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=1IOfvsZTTXM)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-a-countdown-timer-to-html-emails-in-figma-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/add-animated-gifs-from-figma-to-html-email-exports.md"
description: "The video shows how to install the Emailify Figma plugin and use it to add animated GIFs to HTML email designs from Figma. It demonstrates GIFs as hero backgrounds, inline images, and standalone content layers, then exports the email to HTML to confirm the GIFs render in the output."
---

# Add animated GIFs from Figma to HTML email exports

> The video shows how to install the Emailify Figma plugin and use it to add animated GIFs to HTML email designs from Figma. It demonstrates GIFs as hero backgrounds, inline images, and standalone content layers, then exports the email to HTML to confirm the GIFs render in the output.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/Jmy2Tuzzwjg)

**What this video covers**

The video shows how to install the Emailify Figma plugin and use it to add animated GIFs to HTML email designs from Figma. It demonstrates GIFs as hero backgrounds, inline images, and standalone content layers, then exports the email to HTML to confirm the GIFs render in the output.

**Things you'll need**

- Figma
- Emailify
- A GIF file to place into the design

**Steps**

1. Install Emailify from the Figma Community under the Plugins tab.
2. Open a Figma file, run the Emailify plugin, create a new frame, and click Add New Emailify Container.
3. Add a GIF as a hero background by selecting a Hero Background-style module such as Full Width Background Image or Hero CTAs, then replace the image fill with a GIF.
4. Add GIFs as inline images by drilling into an image component or image layer and replacing the image fill with a GIF.
5. Drag a GIF directly into a content frame to add it as its own inline layer, and optionally add text or other layers inside a frame-based module.
6. Use additional fills such as opacity or gradients on top of GIFs, and adjust image sizing in the settings icon if needed.
7. Click Export to Code, download the .zip file, and open the exported HTML preview to verify the GIFs rendered correctly.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=Jmy2Tuzzwjg)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-animated-gi-fs-from-figma-to-html-email-exports-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/add-custom-categories-for-figma-email-components.md"
description: "The video shows how to use the Emailify Figma plugin to organize email components into custom categories like Footers, Headers, Hero, and Content. It also demonstrates how to remove categories without deleting components and how to add descriptions and documentation links to components."
---

# Add custom categories for Figma email components

> The video shows how to use the Emailify Figma plugin to organize email components into custom categories like Footers, Headers, Hero, and Content. It also demonstrates how to remove categories without deleting components and how to add descriptions and documentation links to components.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/M6p5AY2-g54)

**What this video covers**

The video shows how to use the Emailify Figma plugin to organize email components into custom categories like Footers, Headers, Hero, and Content. It also demonstrates how to remove categories without deleting components and how to add descriptions and documentation links to components.

**Things you'll need**

- Emailify must be installed as a Figma plugin.
- The Figma file should already contain Emailify components to organize.

**Steps**

1. Open Emailify from Figma’s Resources icon or from Saved Plugins and run the plugin.
2. Click the Library icon in Emailify and load all Emailify components from the current Figma file.
3. Click the edit/pencil icon to create new custom categories such as Footers, Headers, and Hero.
4. Select components in Uncategorized and use Move components to place them into the appropriate category.
5. Repeat the process until all components are organized and the Uncategorized tab is removed.
6. Use Remove category to delete a category without deleting the components, which sends those components back to Uncategorized.
7. Select a component layer in Figma, open the component configuration icon, add a description and documentation link, then click Refresh in Emailify to show the updated label and tooltip.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=M6p5AY2-g54)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-custom-categories-for-figma-email-components-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/add-dark-mode-styles-to-html-email-designs.md"
description: "This video shows how to add dark mode style overrides to HTML email designs in Figma using the Emailify Figma plugin. It covers applying overrides to sections, columns, text, buttons, and images, then testing the result in Emailify’s Preview with dark mode enabled."
---

# Add dark mode styles to HTML email designs

> This video shows how to add dark mode style overrides to HTML email designs in Figma using the Emailify Figma plugin. It covers applying overrides to sections, columns, text, buttons, and images, then testing the result in Emailify’s Preview with dark mode enabled.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/uAxQ5Psi1m4)

**What this video covers**

This video shows how to add dark mode style overrides to HTML email designs in Figma using the Emailify Figma plugin. It covers applying overrides to sections, columns, text, buttons, and images, then testing the result in Emailify’s Preview with dark mode enabled.

**Things you'll need**

- Emailify must be installed from the Figma Community.
- An HTML email design must already exist in the Figma file.

**Steps**

1. Install Emailify from the Figma Community if it is not already installed.
2. Open your Figma file, right-click, go to Plugins, and launch Emailify.
3. Select a layer such as a section, column, text layer, button layer, or image layer, then use the Settings panel to find Dark Mode Overrides.
4. Set dark mode-specific text and background colors for the selected layer. Button, Row, Column, and Wrapper layers also include a Border Color override that keeps the light mode border width and style.
5. Open Preview in the header, then turn on Show Dark Mode Overrides to see the dark mode version.
6. For text, apply more granular overrides on individual text layers to fine-tune contrast.
7. For images, use Only Hide on Dark Mode or Only Show in Dark Mode to swap image versions between regular and dark mode.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=uAxQ5Psi1m4)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-dark-mode-styles-to-html-email-designs-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/add-dynamic-content-to-html-emails-in-figma.md"
description: "The video shows how to use the Emailify Figma plugin to add dynamic personalized content to HTML emails, then export the design to an email platform such as Klaviyo. It demonstrates adding platform-specific personalization tags, dynamic image and link content, and conditional blocks or text using custom code."
---

# Add dynamic content to HTML emails in Figma

> The video shows how to use the Emailify Figma plugin to add dynamic personalized content to HTML emails, then export the design to an email platform such as Klaviyo. It demonstrates adding platform-specific personalization tags, dynamic image and link content, and conditional blocks or text using custom code.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/0512urzUNTk)

**What this video covers**

The video shows how to use the Emailify Figma plugin to add dynamic personalized content to HTML emails, then export the design to an email platform such as Klaviyo. It demonstrates adding platform-specific personalization tags, dynamic image and link content, and conditional blocks or text using custom code.

**Things you'll need**

- Figma
- Emailify Figma plugin
- An email marketing platform that supports personalization tags, such as Klaviyo or MailChimp

**Steps**

1. Open Figma Resources, search for Emailify under the Plugins tab, and run the plugin.
2. Create a new email in Emailify and add basic content such as text, an image, and a footer.
3. Look up the personalization tags for your email platform in the Emailify documentation, such as Klaviyo variables or MailChimp merge tags.
4. Paste a platform-specific variable into a Figma text layer to personalize content like a first name.
5. Use Export HTML to upload the email to the selected platform, such as Klaviyo, with the API key set up.
6. In the platform, create or open a campaign, choose the uploaded template, and preview it to confirm the variable is replaced with real customer data.
7. Optionally add dynamic image sources, links, alt text, or conditional content using HTML & Mobile Settings, Quick add > Custom Code, and platform-specific template syntax.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=0512urzUNTk)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-dynamic-personalized-content-to-html-emails-in-figma-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/add-hover-colors-to-text-links-in-html-emails-from-figma.md"
description: "This tutorial shows how to add hover states to text links and navigation link rows in HTML email designs made in Figma using the Emailify Figma plugin. It also covers applying a hover color, optional Fade Transition, and checking email client support before relying on the effect."
---

# Add hover colors to text links in HTML emails from Figma

> This tutorial shows how to add hover states to text links and navigation link rows in HTML email designs made in Figma using the Emailify Figma plugin. It also covers applying a hover color, optional Fade Transition, and checking email client support before relying on the effect.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/T-HSfOhTTTw)

**What this video covers**

This tutorial shows how to add hover states to text links and navigation link rows in HTML email designs made in Figma using the Emailify Figma plugin. It also covers applying a hover color, optional Fade Transition, and checking email client support before relying on the effect.

**Things you'll need**

- A finished Emailify email design in Figma
- Emailify installed in Figma

**Steps**

1. Open the Emailify Figma plugin from Resources or from saved plugins.
2. Select an Emailify text layer, highlight the text, and use the create link icon to add a URL.
3. Open the HTML and mobile settings panel and enter a hex value in the Links Hover State field for the selected text layer.
4. Optionally enable Fade Transition, then preview the HTML to confirm the hover color appears.
5. For navigation components, select the parent navigation layer and set the same Links Hover State value so all link items inherit the hover color.
6. Preview the result and check the supported email clients list to see where hover states are supported.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=T-HSfOhTTTw)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-hover-colors-to-text-links-in-html-emails-from-figma-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/add-hover-effects-to-buttons-in-html-emails-from-figma.md"
description: "This tutorial shows how to add hover effects to Emailify button components in Figma for HTML emails. It covers setting hover background and text colors, adding transitions like fade or grow, and exporting the result to HTML for previewing in supported email clients."
---

# Add hover effects to buttons in HTML emails from Figma

> This tutorial shows how to add hover effects to Emailify button components in Figma for HTML emails. It covers setting hover background and text colors, adding transitions like fade or grow, and exporting the result to HTML for previewing in supported email clients.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/8pydrphK6bU)

**What this video covers**

This tutorial shows how to add hover effects to Emailify button components in Figma for HTML emails. It covers setting hover background and text colors, adding transitions like fade or grow, and exporting the result to HTML for previewing in supported email clients.

**Things you'll need**

- Figma
- Emailify Figma plugin
- An Emailify button component already added to the email

**Steps**

1. Open the Emailify Figma plugin from Resources, then run it from Saved Plugins.
2. Create or open an email layout and make sure the button is an Emailify button component.
3. Select the button layer and open HTML and mobile settings to reveal the button hover state options.
4. Set the hover background color and hover text color using hex values.
5. Optionally choose a transition such as fade, grow, or bounce to animate the hover effect.
6. If desired, add a stroke to the button in Figma to create an outlined or ghost-button hover look.
7. Export the email to HTML, download the zip file, and check the generated hover effects in the preview or browser.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=8pydrphK6bU)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-hover-effects-to-buttons-in-html-emails-from-figma-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/add-outlook-compatible-gradient-buttons-to-html-emails-with-figma.md"
description: "This tutorial shows how to turn a solid Emailify button in Figma into an Outlook-compatible gradient button for HTML emails. It also demonstrates exporting the design to HTML and testing the result in Litmus to confirm the gradient and corner radius render in Outlook and other email clients."
---

# Add Outlook-compatible gradient buttons to HTML emails with Figma

> This tutorial shows how to turn a solid Emailify button in Figma into an Outlook-compatible gradient button for HTML emails. It also demonstrates exporting the design to HTML and testing the result in Litmus to confirm the gradient and corner radius render in Outlook and other email clients.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/P-faEnzef20)

**What this video covers**

This tutorial shows how to turn a solid Emailify button in Figma into an Outlook-compatible gradient button for HTML emails. It also demonstrates exporting the design to HTML and testing the result in Litmus to confirm the gradient and corner radius render in Outlook and other email clients.

**Things you'll need**

- A Figma file with an Emailify email design already set up
- An Emailify button layer that currently uses a solid fill
- Litmus for email client testing

**Steps**

1. Open Figma, find Emailify in Resources under the Plugins tab, and run it from Saved plugins.
2. Select the Emailify button layer in your email design and open the fills panel.
3. Change the button fill from solid to gradient, then adjust the gradient colors and angle as needed.
4. Adjust the Border radius to the desired value, then use Emailify preview to check the HTML button appearance.
5. Export the design with Export HTML, enable automatic image upload if needed, and download the ZIP file.
6. Open the exported index.html in a browser or test it in Litmus to verify the button renders correctly in Outlook and other email clients.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=P-faEnzef20)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-outlook-compatible-gradient-buttons-to-html-emails-with-figma-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/add-utm-tracking-code-to-html-email-links-from-figma.md"
description: "The video shows how to add UTM tracking code to links in HTML emails built in Figma with the Emailify Figma plugin. It covers adding UTM parameters directly to individual links, setting a global URL query string for all links, overriding UTM values per button or text link, and exporting the email to HTML."
---

# Add UTM tracking code to HTML email links from Figma

> The video shows how to add UTM tracking code to links in HTML emails built in Figma with the Emailify Figma plugin. It covers adding UTM parameters directly to individual links, setting a global URL query string for all links, overriding UTM values per button or text link, and exporting the email to HTML.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/LrNKatzJo6g)

**What this video covers**

The video shows how to add UTM tracking code to links in HTML emails built in Figma with the Emailify Figma plugin. It covers adding UTM parameters directly to individual links, setting a global URL query string for all links, overriding UTM values per button or text link, and exporting the email to HTML.

**Things you'll need**

- Emailify must be available as a Figma plugin
- An email design should already be built in Figma
- A UTM query string or tracked URL should be ready to paste

**Steps**

1. Open Figma, find Emailify from the Resources icon under the Plugins tab, and run or save the Emailify Figma plugin.
2. Select a button or link layer, open HTML and mobile settings, and paste the UTM query string into the clickable link URL field for a single link.
3. To apply tracking across the whole email, select the Emailify frame and use the Append global URL query string setting to add a shared UTM string.
4. If needed, override the global parameters on specific buttons by adding a custom query string directly to that button's clickable link URL.
5. Add a link to text by selecting text, clicking the link icon, choosing create link, and pasting in the tracked URL.
6. Use export HTML to export the email as an HTML zip file and verify the links and UTM tags in the output.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=LrNKatzJo6g)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-utm-tracking-code-to-html-email-links-from-figma-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/adding-a-dynamic-product-feed-to-your-klaviyo-emails.md"
description: "This tutorial shows how to build a custom HTML email in Figma with Emailify, add a Klaviyo dynamic product grid, and upload the template to Klaviyo. It also explains the extra Klaviyo setup needed to make the feed data render in the template preview and in campaigns."
---

# Adding a dynamic product feed to your Klaviyo emails

> This tutorial shows how to build a custom HTML email in Figma with Emailify, add a Klaviyo dynamic product grid, and upload the template to Klaviyo. It also explains the extra Klaviyo setup needed to make the feed data render in the template preview and in campaigns.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/PaRSIxVLYlo)

**What this video covers**

This tutorial shows how to build a custom HTML email in Figma with Emailify, add a Klaviyo dynamic product grid, and upload the template to Klaviyo. It also explains the extra Klaviyo setup needed to make the feed data render in the template preview and in campaigns.

**Things you'll need**

- A Figma file with the Emailify plugin installed.
- A Klaviyo account with access to Products and API keys.

**Steps**

1. Open your Figma file, run the Emailify plugin, and create a new Emailify container.
2. Add a Klaviyo footer from the Footers tab, then switch to the Ecom tab and insert a Klaviyo product grid component.
3. Create a product feed in Klaviyo under Products and Manage product feeds, then copy the feed name into the Emailify component fields where it says feeds.YOUR_KLAVIYO_PRODUCT_FEED_NAME_HERE.
4. In Emailify’s HTML and mobile settings, confirm the product links, alt text, and image source are set to the dynamic item fields, then export HTML with the Klaviyo integration selected and paste in your API key.
5. Enable editable content and, if needed, force Klaviyo editor padding to zero, then upload the template to Klaviyo.
6. In Klaviyo, open the uploaded template from Saved templates, click Use template, save it, then return to the campaign editor.
7. To make the dynamic feed render, add a Klaviyo product block in an editable region, set it to the same product feed, and set its show/hide logic to false before previewing again.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=PaRSIxVLYlo)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-dynamic-klaviyo-product-feeds-to-custom-html-email-designs-in-figma-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/create-a-component-library-for-html-email-designs-in-figma.md"
description: "The video shows how to use the Emailify Figma plugin to build a reusable component library for HTML emails inside Figma. It covers creating an Emailify frame, turning customized layouts into library components, reusing them across new email designs, and exporting the final emails to production-ready HTML."
---

# Create a component library for HTML email designs in Figma

> The video shows how to use the Emailify Figma plugin to build a reusable component library for HTML emails inside Figma. It covers creating an Emailify frame, turning customized layouts into library components, reusing them across new email designs, and exporting the final emails to production-ready HTML.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/lQb9-_9maxs)

**What this video covers**

The video shows how to use the Emailify Figma plugin to build a reusable component library for HTML emails inside Figma. It covers creating an Emailify frame, turning customized layouts into library components, reusing them across new email designs, and exporting the final emails to production-ready HTML.

**Things you'll need**

- A Figma file
- The Emailify Figma plugin

Emailify loads the component library from the current Figma file. If teammates need the same reusable Emailify components, make sure those components already exist in the file they open before loading the library in the plugin.

**Steps**

1. Open Emailify from Figma plugins and create a new Emailify container with a name.
2. Use the starter components and replace the default content with your own images, text, button labels, and styling.
3. Break customized layouts out into separate components, then click the component library icon and load all Emailify components into the plugin.
4. Reuse those saved components in new Emailify frames, and override instance content such as images and text when needed.
5. Adjust spacing and sizing with Auto layout padding and item spacing, and keep rows and columns set to hug contents.
6. Use HTML and mobile settings to add links, alt text, visibility options, and other layer-specific settings.
7. When ready, click export HTML, choose the emails to export, and download the zip file with the HTML and preview files.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=lQb9-_9maxs)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-design-a-figma-component-library-for-html-emails-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/create-custom-components-for-html-email-exports.md"
description: "This tutorial shows how to use the Emailify HTML Builder Figma plugin to create custom HTML email components, including reusable native Figma components, custom HTML blocks, and code wrappers. It also demonstrates previewing the generated HTML in Figma and exporting the final email as HTML."
---

# Create custom components for HTML email exports

> This tutorial shows how to use the Emailify HTML Builder Figma plugin to create custom HTML email components, including reusable native Figma components, custom HTML blocks, and code wrappers. It also demonstrates previewing the generated HTML in Figma and exporting the final email as HTML.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/vczegDic1Do)

**What this video covers**

This tutorial shows how to use the Emailify HTML Builder Figma plugin to create custom HTML email components, including reusable native Figma components, custom HTML blocks, and code wrappers. It also demonstrates previewing the generated HTML in Figma and exporting the final email as HTML.

**Things you'll need**

- Figma
- Emailify installed from the Figma Community

**Steps**

1. Install Emailify from the Figma Community, then open a new Figma file and run Emailify HTML Builder from Plugins.
2. Name the email and click Add new Emailify Container to create a blank email frame.
3. Open the Custom tab, click Create New Component, and build a custom component by adding elements like titles, body copy, buttons, images, and column layouts.
4. Choose whether to update the saved component or create a new component from an existing one, then insert the component into the email design.
5. Use the settings button on components, rows, columns, text layers, and the email frame to edit alignment, mobile overrides, links, CSS rules, merge tags, templating tags, and custom HTML.
6. Add custom HTML blocks or code wrappers for raw code, then use Preview to check the real HTML output and mobile/desktop behavior.
7. Click Export, choose HTML if needed, enter subject line and pre-header text, and use Export to Code to download the zip file with the HTML and images.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=vczegDic1Do)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-create-custom-components-for-html-email-exports-in-figma-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/create-klaviyo-abandoned-cart-flow-email-template-in-figma.md"
description: "This tutorial shows how to build a custom HTML abandoned cart email template in Figma with the Emailify plugin, upload it to Klaviyo, and use it in a Klaviyo flow. It also demonstrates previewing the template with real checkout data and turning the flow live."
---

# Create Klaviyo abandoned cart flow email template in Figma

> This tutorial shows how to build a custom HTML abandoned cart email template in Figma with the Emailify plugin, upload it to Klaviyo, and use it in a Klaviyo flow. It also demonstrates previewing the template with real checkout data and turning the flow live.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/MHPCkb1n8XM)

**What this video covers**

This tutorial shows how to build a custom HTML abandoned cart email template in Figma with the Emailify plugin, upload it to Klaviyo, and use it in a Klaviyo flow. It also demonstrates previewing the template with real checkout data and turning the flow live.

**Things you'll need**

- A Figma file with the Emailify plugin available
- A Klaviyo account with access to create a Private API Key
- A Shopify store for the Shopify abandoned cart template shown in the tutorial

**Steps**

1. Open a new Figma file, run the Emailify plugin, name the email, and add a new Emailify container.
2. In the Ecom tab, choose the Klaviyo Abandoned Cart Items Shopify template and then add the Klaviyo footer from the Footer tab.
3. Preview the template in mobile and desktop, then export HTML and select the Klaviyo export option.
4. In Klaviyo, create a Private API Key with Custom Key access and give Templates read-write access, then paste the key into Emailify and upload the template.
5. In Klaviyo Flows, create a new flow with the Checkout Started trigger, add a 4-hour time delay, and add an email step.
6. Open the email step, select the saved template, preview it with a recent checkout event, and verify the dynamic product data and links.
7. Review the flow settings and turn the flow from draft to live when ready.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=MHPCkb1n8XM)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-create-a-klaviyo-abandoned-cart-flow-custom-html-email-template-in-figma-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/design-and-export-emails-from-figma-to-html.md"
description: "This tutorial shows how to install and use the Emailify Figma plugin to build HTML emails directly in Figma. It also demonstrates customizing modules, applying responsive overrides and links, and exporting the finished email as HTML or HTML and MJML."
---

# Design and export Emails from Figma to HTML

> This tutorial shows how to install and use the Emailify Figma plugin to build HTML emails directly in Figma. It also demonstrates customizing modules, applying responsive overrides and links, and exporting the finished email as HTML or HTML and MJML.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/OWv4WX3eqvU)

**What this video covers**

This tutorial shows how to install and use the Emailify Figma plugin to build HTML emails directly in Figma. It also demonstrates customizing modules, applying responsive overrides and links, and exporting the finished email as HTML or HTML and MJML.

**Things you'll need**

- A Figma file
- The Emailify Figma plugin installed from Figma Community

**Steps**

1. Install the Emailify HTML Email Builder plugin from Figma Community and run it from Plugins in a blank Figma file.
2. Create a new Emailify container, name it, and add modules from categories like Header, Images, Content, CTAs, Footer, and Favorites.
3. Customize the email by editing text, buttons, images, spacing, padding, alignment, and component order directly in Figma.
4. Use the Settings icon to set mobile overrides, hide elements on mobile, reverse column display order on desktop, or render a block as an image.
5. Add clickable URLs to link layers, button elements, and image layers, and set alt text and image width or height overrides where needed.
6. Click Export, choose HTML or HTML and MJML, select one or more email containers, enter subject line and preheader text, then export to code.
7. Download the zip file, open the generated index.html preview and index.mjml source file, and review the exported assets and responsive output.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=OWv4WX3eqvU)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-design-and-export-emails-from-figma-to-html-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/design-and-export-html-email-signatures-from-figma.md"
description: "The video shows how to use the Emailify Figma plugin to design an HTML email signature in Figma, customize its text, logo, styling, and social links, and then export it as an HTML signature package. It also explains how to copy the generated HTML and follow the Emailify documentation to paste it into a supported email client."
---

# Design and export HTML Email Signatures from Figma

> The video shows how to use the Emailify Figma plugin to design an HTML email signature in Figma, customize its text, logo, styling, and social links, and then export it as an HTML signature package. It also explains how to copy the generated HTML and follow the Emailify documentation to paste it into a supported email client.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/dmjDTWiphWk)

**What this video covers**

The video shows how to use the Emailify Figma plugin to design an HTML email signature in Figma, customize its text, logo, styling, and social links, and then export it as an HTML signature package. It also explains how to copy the generated HTML and follow the Emailify documentation to paste it into a supported email client.

**Things you'll need**

- A Figma file
- The Emailify Figma plugin
- An email client supported in the Emailify documentation

**Steps**

1. Open Figma, find Emailify from Resources or Saved plugins, and run the Emailify plugin.
2. Create a new Emailify frame, name it, and click add new Emailify container.
3. Go to the footage tab, open signatures, and insert a preset email signature starter.
4. Customize the signature by replacing the logo, editing text, changing typography or color, and adjusting spacing.
5. Add elements such as social icons from the column layer settings, then apply clickable URLs to images or icons through the icon layer settings.
6. Preview the signature in the plugin, then export it by choosing HTML email signature and clicking export to HTML signature.
7. Download and unzip the generated package, use the copy HTML signature button in the preview page, and follow the Emailify documentation for your email client to paste the HTML signature.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=dmjDTWiphWk)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-design-and-export-email-signatures-from-figma-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/easily-add-elements-to-html-email-designs-in-figma.md"
description: "This video shows how to install and use the Emailify Figma plugin to build and customize HTML email designs in Figma. It focuses on adding elements contextually to selected layers, previewing the email, and exporting the finished design to HTML."
---

# Add elements to HTML email designs in Figma

> This video shows how to install and use the Emailify Figma plugin to build and customize HTML email designs in Figma. It focuses on adding elements contextually to selected layers, previewing the email, and exporting the finished design to HTML.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/un_EgOdAdUQ)

**What this video covers**

This video shows how to install and use the Emailify Figma plugin to build and customize HTML email designs in Figma. It focuses on adding elements contextually to selected layers, previewing the email, and exporting the finished design to HTML.

**Things you'll need**

- Figma
- Emailify Figma plugin

**Steps**

1. Install Emailify from the Figma Community by searching for "Emailify" under the Plugins tab and clicking Install.
2. Open your Figma file, right-click, go to Plugins, and launch Emailify.
3. Create a new email frame with the plus icon, then add preset elements or modules to the email.
4. Select an existing layer such as a row, social layer, or email frame, then use "Quick add element to selected layer" to add content columns, social networks, hero backgrounds, content rows, row wrappers, or navigation links.
5. Customize added elements in Figma, including text, buttons, images, spacing, alignment, colors, borders, overlays, and mobile-specific settings through "HTML and Mobile Settings".
6. Use the "Preview" button to view the rendered HTML in desktop and mobile layouts, and override mobile text settings if needed.
7. Click "Export HTML", then download the .zip file containing the HTML, images, and preview page.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=un_EgOdAdUQ)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-easily-add-elements-to-html-email-designs-in-figma-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/embed-custom-web-fonts-in-html-email-exports-from-figma.md"
description: "This tutorial shows how to use the Emailify Figma plugin to add custom web fonts to HTML email designs and assign web-safe fallback fonts for unsupported email clients. It also shows how to preview those fallbacks in Emailify and export the finished email as HTML."
---

# Embed custom web fonts in HTML email exports from Figma

> This tutorial shows how to use the Emailify Figma plugin to add custom web fonts to HTML email designs and assign web-safe fallback fonts for unsupported email clients. It also shows how to preview those fallbacks in Emailify and export the finished email as HTML.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/dtTNDXeO3FA)

**What this video covers**

This tutorial shows how to use the Emailify Figma plugin to add custom web fonts to HTML email designs and assign web-safe fallback fonts for unsupported email clients. It also shows how to preview those fallbacks in Emailify and export the finished email as HTML.

**Things you'll need**

- The Emailify Figma plugin
- Custom fonts installed locally in Figma for design work
- A hosted WOFF or WOFF2 font file URL for any custom font you want to embed

**Steps**

1. Open Figma, find Emailify in Resources, and run or save the plugin from the Plugins menu.
2. Add a new Emailify template and place a few text components to use different font examples.
3. Apply fonts in Figma, including custom fonts like Echelon and Spline Sans Mono, plus a web-safe font such as Arial.
4. Open the preview tab, then click Configure Fonts to see the list of fonts used in the email.
5. Set fallback fonts for the custom fonts, and paste the direct WOFF font file URL for each custom font; Google Fonts are embedded automatically.
6. Toggle Show Fallback Fonts to preview how the email will look in clients that do not support custom web fonts.
7. When finished, click Export HTML to download the HTML .zip file and inspect the exported index.html and preview files.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=dtTNDXeO3FA)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-embed-custom-web-fonts-in-html-email-exports-from-figma-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-emails-from-figma-to-grayscale-wireframe-previews.md"
description: "This tutorial shows how to use the Emailify Figma plugin to export HTML email designs as grayscale wireframe PDF previews. It explains how to enable Wireframe Mode, export the previews, and use the generated PDF and JPG files for early client review."
---

# Export emails from Figma to grayscale wireframe previews

> This tutorial shows how to use the Emailify Figma plugin to export HTML email designs as grayscale wireframe PDF previews. It explains how to enable Wireframe Mode, export the previews, and use the generated PDF and JPG files for early client review.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/JCYA2oQ4O2U)

**What this video covers**

This tutorial shows how to use the Emailify Figma plugin to export HTML email designs as grayscale wireframe PDF previews. It explains how to enable Wireframe Mode, export the previews, and use the generated PDF and JPG files for early client review.

**Things you'll need**

- An Emailify email design already prepared in Figma

**Steps**

1. Open the Figma Resources icon, search for Emailify under the Plugins tab, and run or save the plugin.
2. In your Figma canvas, open Emailify from Plugins > Saved plugins.
3. Click Export HTML in Emailify and change the export setting from HTML Email to PDF Previews.
4. Turn on Enable Wireframe Mode to export a grayscale wireframe version.
5. Click Export to PDF, then download the zip file when the export finishes.
6. Open the zip file to access the main PDF, individual email PDFs, and JPG folders.
7. Use the exported grayscale PDFs or JPGs for client previews or other mockups.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=JCYA2oQ4O2U)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-emails-from-figma-to-grayscale-wireframe-previews-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-emails-from-figma-to-mjml-code.md"
description: "The video shows how to use the Emailify Figma plugin to build an email layout in Figma and export it as MJML source code. It also demonstrates previewing the design in the plugin and checking the exported MJML file in the MJML online editor."
---

# Export emails from Figma to MJML code

> The video shows how to use the Emailify Figma plugin to build an email layout in Figma and export it as MJML source code. It also demonstrates previewing the design in the plugin and checking the exported MJML file in the MJML online editor.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/_y9-1IvtlH8)

**What this video covers**

The video shows how to use the Emailify Figma plugin to build an email layout in Figma and export it as MJML source code. It also demonstrates previewing the design in the plugin and checking the exported MJML file in the MJML online editor.

**Things you'll need**

- Figma
- The Emailify Figma plugin
- An existing email design built with Emailify layout tools

**Steps**

1. Open a Figma file, search for Emailify in the Resources icon, and run or save the Emailify plugin.
2. Create a new email container by naming it and clicking Add New Emailify Container.
3. Build the email using Emailify components, rows, columns, and layers that map to MJML structure, then preview desktop and mobile in the plugin.
4. Click Export HTML, change the export type to MJML source code under Download To Your Computer, and choose the template to export.
5. Enable Upload image URLs, optionally turn off HTML minification for readability, and click Export to MJML.
6. Download the .zip file, then open the MJML file and inspect the generated MJML, index.html, and images folder.
7. Paste the MJML into the MJML Try it live editor to confirm it compiles to HTML correctly.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=_y9-1IvtlH8)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-emails-from-figma-to-mjml-code-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-email-tests-from-figma-to-email-on-acid.md"
description: "This video shows how to use the Emailify Figma plugin to upload an HTML email from Figma directly to Email on Acid for testing across mobile, desktop, and web email clients. It walks through installing the plugin, entering your Email on Acid API key and password, and sending the design for testing."
---

# Export HTML email tests from Figma to Email on Acid

> This video shows how to use the Emailify Figma plugin to upload an HTML email from Figma directly to Email on Acid for testing across mobile, desktop, and web email clients. It walks through installing the plugin, entering your Email on Acid API key and password, and sending the design for testing.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/ThlA2CpDI9U)

**What this video covers**

This video shows how to use the Emailify Figma plugin to upload an HTML email from Figma directly to Email on Acid for testing across mobile, desktop, and web email clients. It walks through installing the plugin, entering your Email on Acid API key and password, and sending the design for testing.

**Things you'll need**

- Emailify installed in Figma
- An Email on Acid account with an API key
- Your Email on Acid account password

**Steps**

1. Install the Emailify Figma plugin from the Figma Community by searching for Emailify under the Plugins tab and clicking Install.
2. Open Emailify in Figma by right-clicking the canvas, choosing Plugins, and selecting Emailify.
3. Click Export and change the export option from HTML to Upload For Testing, then choose Email on Acid.
4. Enter your Email on Acid password and paste in your Email on Acid API key from your account page.
5. Click Send To Email on Acid to generate the HTML, export the images, and upload the test.
6. Open the uploaded test from the Email on Acid Projects page to review how the email renders on different devices and email clients.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=ThlA2CpDI9U)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-email-tests-from-figma-to-email-on-acid-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-activecampaign.md"
description: "This tutorial shows how to use the Emailify Figma plugin to export an HTML email from Figma directly into an ActiveCampaign account. It covers installing the plugin, entering the ActiveCampaign URL and API key, uploading the template, and confirming it appears in ActiveCampaign under Campaigns and Manage Templates."
---

# Export HTML emails from Figma to ActiveCampaign

> This tutorial shows how to use the Emailify Figma plugin to export an HTML email from Figma directly into an ActiveCampaign account. It covers installing the plugin, entering the ActiveCampaign URL and API key, uploading the template, and confirming it appears in ActiveCampaign under Campaigns and Manage Templates.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/TgCROp1QHsg)

**What this video covers**

This tutorial shows how to use the Emailify Figma plugin to export an HTML email from Figma directly into an ActiveCampaign account. It covers installing the plugin, entering the ActiveCampaign URL and API key, uploading the template, and confirming it appears in ActiveCampaign under Campaigns and Manage Templates.

**Things you'll need**

- A Figma file with an email design created using Emailify
- An ActiveCampaign account

**Steps**

1. Install Emailify from the Figma Community, then run it from Plugins in your Figma file.
2. Open the email design in Emailify and click Export.
3. Change the export option to Upload To Platform and select ActiveCampaign.
4. In ActiveCampaign, go to Settings, open Developer, and copy the URL and API key from API Access.
5. Paste the ActiveCampaign URL and API key into the Emailify plugin fields.
6. Click Upload to ActiveCampaign to export the HTML and images into ActiveCampaign.
7. In ActiveCampaign, go to Campaigns, then Manage Templates, and open the uploaded template to review it.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=TgCROp1QHsg)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-active-campaign-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-amazon-simple-email-service-ses.md"
description: "This tutorial shows how to use the Emailify Figma plugin to export an HTML email design from Figma directly into Amazon SES (Simple Email Service). It covers previewing the email, entering AWS credentials and region, then uploading the template so it appears in your SES templates list."
---

# Export HTML emails from Figma to Amazon Simple Email Service (SES)

> This tutorial shows how to use the Emailify Figma plugin to export an HTML email design from Figma directly into Amazon SES (Simple Email Service). It covers previewing the email, entering AWS credentials and region, then uploading the template so it appears in your SES templates list.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/6kC4wbapV88)

**What this video covers**

This tutorial shows how to use the Emailify Figma plugin to export an HTML email design from Figma directly into Amazon SES (Simple Email Service). It covers previewing the email, entering AWS credentials and region, then uploading the template so it appears in your SES templates list.

**Things you'll need**

- A Figma file with an Emailify frame or Emailify template.
- An AWS account with SES access and IAM access key and secret key.
- The correct AWS region for your SES instance.

**Steps**

1. Open your Figma file, find Emailify in Resources, save or run the plugin, and launch it from Plugins.
2. Preview the email in Emailify to check the HTML layout and mobile behavior before exporting.
3. Click export HTML, then choose SES (Simple Email Service) under platform integrations.
4. Enter your AWS region, access key, and secret key from your AWS account and IAM settings.
5. Set the template name from the Emailify frame name, add a subject line, and optionally add preheader text.
6. Click upload to SES (Simple Email Service) to generate the HTML, upload images, and create the template in Amazon SES.
7. Open the SES templates page in AWS to confirm the new template appears in your list.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=6kC4wbapV88)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-amazon-simple-email-service-ses-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-aweber.md"
description: "The video shows how to use the Emailify Figma plugin to design an HTML email in Figma and export it for use in Aweber. It covers adding an Aweber footer, exporting the design as HTML, and importing the generated index.html file into Aweber as either a message or a reusable template."
---

# Export HTML emails from Figma to Aweber

> The video shows how to use the Emailify Figma plugin to design an HTML email in Figma and export it for use in Aweber. It covers adding an Aweber footer, exporting the design as HTML, and importing the generated index.html file into Aweber as either a message or a reusable template.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/WpBJ0B8XrUc)

**What this video covers**

The video shows how to use the Emailify Figma plugin to design an HTML email in Figma and export it for use in Aweber. It covers adding an Aweber footer, exporting the design as HTML, and importing the generated index.html file into Aweber as either a message or a reusable template.

**Things you'll need**

- A Figma file with an Emailify email design
- An Aweber account

**Steps**

1. Open Emailify from Figma using Resources or Saved plugins, then create a new Emailify container and build the email design.
2. In the Footer tab, add the Aweber footer so the unsubscribe link and viewing browser link are included.
3. Preview the email in Emailify, then click export HTML, choose Aweber, add the subject line and preheader text, and download the zip file.
4. Unzip the export and locate the index.html file for the frame.
5. In Aweber, go to Messages, click Create a message, choose raw HTML editor, click Source, delete the default content, and drag in index.html.
6. Save, preview and test, add the subject line in Aweber, then save and exit before scheduling the message.
7. To save the design as a reusable template, go to Email template manager, choose Design my own template, select Import a template, paste or drag in index.html, then click Template Builder and Save and exit.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=WpBJ0B8XrUc)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-aweber-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-benchmark-email.md"
description: "The video shows how to use the Emailify Figma plugin to export an HTML email from Figma and import it into Benchmark Email as a custom HTML email. It also covers adding the Benchmark email footer preset, previewing the design, and adjusting Benchmark footer settings before scheduling the email."
---

# Export HTML emails from Figma to Benchmark Email

> The video shows how to use the Emailify Figma plugin to export an HTML email from Figma and import it into Benchmark Email as a custom HTML email. It also covers adding the Benchmark email footer preset, previewing the design, and adjusting Benchmark footer settings before scheduling the email.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/KYIdqjManjg)

**What this video covers**

The video shows how to use the Emailify Figma plugin to export an HTML email from Figma and import it into Benchmark Email as a custom HTML email. It also covers adding the Benchmark email footer preset, previewing the design, and adjusting Benchmark footer settings before scheduling the email.

**Things you'll need**

- A Figma file with the Emailify plugin available
- A paid Benchmark Email account with access to the code editor

**Steps**

1. Open Figma, find Emailify from Resources under the Plugins tab, and run or save the plugin.
2. Create a new Emailify container for your email template and add the Benchmark email footer preset from the Footer tab.
3. Preview the email in Emailify, then click export HTML, choose Benchmark email, enter the subject line and optional preheader text, and download the zip file.
4. Unzip the export and locate the index.html file inside the exported folder.
5. In Benchmark Email, go to Emails, create a new Regular email, choose the code editor, and open the editor page.
6. Clear the default source code, then drag and drop the exported index.html file into the Benchmark source code window.
7. Use Benchmark settings to remove or adjust footer items as needed, then save and continue to add the subject line again before scheduling the email.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=KYIdqjManjg)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-benchmark-email-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-bento.md"
description: "This tutorial shows how to use the Emailify Figma plugin to design an HTML email, preview it in Figma, and export it for the Bento email marketing platform. It then walks through copying the exported HTML into Bento Code Mode and preparing the email as a custom HTML broadcast."
---

# Export HTML emails from Figma to Bento

> This tutorial shows how to use the Emailify Figma plugin to design an HTML email, preview it in Figma, and export it for the Bento email marketing platform. It then walks through copying the exported HTML into Bento Code Mode and preparing the email as a custom HTML broadcast.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/iv2PWcrxthQ)

**What this video covers**

This tutorial shows how to use the Emailify Figma plugin to design an HTML email, preview it in Figma, and export it for the Bento email marketing platform. It then walks through copying the exported HTML into Bento Code Mode and preparing the email as a custom HTML broadcast.

**Things you'll need**

- Figma
- Emailify
- Bento

**Steps**

1. Open Figma, find Emailify from the Resources icon, and run or save the plugin from the Plugins menu.
2. Create or clone an Emailify template, then preview the email in Figma to check desktop and mobile versions.
3. Add a Bento footer from the Footers tab so the unsubscribe and view-in-browser links are pre-populated.
4. Click Export HTML, choose Bento under Platform Integrations, enter the subject line and preheader text, and click Export for Bento.
5. Download the zip file, open the exported folder, and open the index.html file in a browser.
6. In Bento, go to Emails > Broadcasts, create a broadcast, choose Code Mode, and paste the HTML source from the exported file.
7. Save changes, preview the email in Bento, and add the subject line and any preview text as needed before sending.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=iv2PWcrxthQ)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-bento-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-braze.md"
description: "This video shows how to export an HTML email designed in Figma to Braze using the Emailify Figma plugin. It covers saving and running the plugin, selecting the Braze integration, entering the Braze API key and endpoint, and uploading the email template into Braze."
---

# Export HTML emails from Figma to Braze

> This video shows how to export an HTML email designed in Figma to Braze using the Emailify Figma plugin. It covers saving and running the plugin, selecting the Braze integration, entering the Braze API key and endpoint, and uploading the email template into Braze.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/6GnG-rTdQl8)

**What this video covers**

This video shows how to export an HTML email designed in Figma to Braze using the Emailify Figma plugin. It covers saving and running the plugin, selecting the Braze integration, entering the Braze API key and endpoint, and uploading the email template into Braze.

**Things you'll need**

- A Figma file with an Emailify email template ready to export.
- A Braze account with access to API keys and email templates.

**Steps**

1. Open your Figma file, find Emailify from the Resources icon, and save or run the plugin from the Plugins tab.
2. Run Emailify from Saved plugins and prepare your email template in Figma, including the Braze footer so the unsubscribe link is included.
3. Click export HTML, switch from standard HTML email export to Platform Integrations, and choose Braze.
4. In Braze, find your API endpoint region and set the matching endpoint in Emailify, then create a new API key with the templates.email.create permission.
5. Copy the Braze API key, paste it into the Emailify REST API key field, add a subject line, and click upload to Braze.
6. In Braze, open Templates > Email templates and select the HTML editor tab to refresh and view the uploaded template.
7. Open the uploaded template to confirm the subject line and email body, then use preview and test or the mobile HTML view if needed.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=6GnG-rTdQl8)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-braze-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-brevo.md"
description: "This video shows how to use the Emailify Figma plugin to export a designed HTML email from Figma directly to Brevo. It covers generating a Brevo API key, entering sender details, uploading the template, and then using that uploaded template in a Brevo marketing campaign."
---

# Export HTML emails from Figma to Brevo

> This video shows how to use the Emailify Figma plugin to export a designed HTML email from Figma directly to Brevo. It covers generating a Brevo API key, entering sender details, uploading the template, and then using that uploaded template in a Brevo marketing campaign.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/8BJN16U_IHg)

**What this video covers**

This video shows how to use the Emailify Figma plugin to export a designed HTML email from Figma directly to Brevo. It covers generating a Brevo API key, entering sender details, uploading the template, and then using that uploaded template in a Brevo marketing campaign.

**Things you'll need**

- A Figma file with an email already designed in Emailify
- A Brevo account with access to API Keys and approved sender email addresses

**Steps**

1. Open your Figma file, find Emailify from Resources, and save or run the plugin from your saved plugins list.
2. Finish your email design in Emailify, then click export HTML and choose the Brevo integration from Integrations.
3. In Brevo, generate a new API key from the API Keys page and copy it into the Emailify API key field.
4. Open the senders page in Brevo, choose an approved sender email, and enter it into Emailify.
5. Select the email, add a subject line and optional preheader text, then click upload to Brevo.
6. After the upload completes, open the Brevo templates page to confirm the template appears and preview it.
7. In a Brevo campaign, go to the design step, reset the design if needed, choose start designing, and select the uploaded template from My templates.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=8BJN16U_IHg)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-brevo-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-campaign-monitor.md"
description: "This video shows how to use the Emailify Figma plugin to export an HTML email from Figma directly to Campaign Monitor. It covers adding the required Campaign Monitor footer, entering your Campaign Monitor API key and client ID, uploading the template, and then using that template in a Campaign Monitor campaign."
---

# Export HTML emails from Figma to Campaign Monitor

> This video shows how to use the Emailify Figma plugin to export an HTML email from Figma directly to Campaign Monitor. It covers adding the required Campaign Monitor footer, entering your Campaign Monitor API key and client ID, uploading the template, and then using that template in a Campaign Monitor campaign.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/vyAsh8v8GLE)

**What this video covers**

This video shows how to use the Emailify Figma plugin to export an HTML email from Figma directly to Campaign Monitor. It covers adding the required Campaign Monitor footer, entering your Campaign Monitor API key and client ID, uploading the template, and then using that template in a Campaign Monitor campaign.

**Things you'll need**

- A Figma file with an email design created in Emailify
- A Campaign Monitor account with access to API keys

**Steps**

1. Open your Figma file, find Emailify under Resources > Plugins, and run or save the plugin.
2. Build or open your email design in Emailify and make sure the Campaign Monitor footer is added under the Footer tab.
3. Preview the email in the plugin, then go to Export HTML and change the HTML Email option to Campaign Monitor under Platform Integrations.
4. In Campaign Monitor, open Account Settings > API keys, copy your client ID and API key, and paste them into Emailify.
5. Optionally add a subject line, confirm the Figma file name you want for the template, and click Upload to Campaign Monitor.
6. In Campaign Monitor, go to My templates to verify the uploaded template, then create a campaign, choose Design email > Use a template, and select the uploaded template.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=vyAsh8v8GLE)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-campaign-monitor-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-constant-contact.md"
description: "This tutorial shows how to use the Emailify Figma plugin to design an HTML email in Figma, export it as responsive HTML for Constant Contact, and paste that code into a Constant Contact email campaign. It also shows how to preview the email, include the Constant Contact unsubscribe footer, and finish the campaign setup in Constant Contact."
---

# Export HTML emails from Figma to Constant Contact

> This tutorial shows how to use the Emailify Figma plugin to design an HTML email in Figma, export it as responsive HTML for Constant Contact, and paste that code into a Constant Contact email campaign. It also shows how to preview the email, include the Constant Contact unsubscribe footer, and finish the campaign setup in Constant Contact.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/XDjtuc0XWKI)

**What this video covers**

This tutorial shows how to use the Emailify Figma plugin to design an HTML email in Figma, export it as responsive HTML for Constant Contact, and paste that code into a Constant Contact email campaign. It also shows how to preview the email, include the Constant Contact unsubscribe footer, and finish the campaign setup in Constant Contact.

**Things you'll need**

- A Figma file with the Emailify Figma plugin available
- A Constant Contact account with access to email campaigns

**Steps**

1. Open the Figma file, find Emailify in Resources or Saved plugins, and run the Emailify Figma plugin.
2. Create a new Emailify frame and build the email design in Figma.
3. In the footer tab, add the Constant Contact footer so the unsubscribe tag is included.
4. Preview the email in the Emailify plugin, including the mobile view if needed.
5. Click export HTML, choose the Constant Contact platform option, add the subject line and preheader text, and export the zip file.
6. Open the downloaded zip file, find index.html, and copy the HTML from the browser page source.
7. In Constant Contact, create a new email with Use your own HTML, replace the placeholder content with the copied HTML, save, preview, and continue to the campaign steps.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=XDjtuc0XWKI)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-constant-contact-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-convertkit.md"
description: "This tutorial shows how to design an HTML email in Figma with the Emailify plugin, export it as production-ready code, and import it into ConvertKit as a custom email template. It also explains the required ConvertKit footer tags and how to use the exported .zip file and index.html content inside ConvertKit."
---

# Export HTML emails from Figma to ConvertKit

> This tutorial shows how to design an HTML email in Figma with the Emailify plugin, export it as production-ready code, and import it into ConvertKit as a custom email template. It also explains the required ConvertKit footer tags and how to use the exported .zip file and index.html content inside ConvertKit.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/I8kwRdvwf8k)

**What this video covers**

This tutorial shows how to design an HTML email in Figma with the Emailify plugin, export it as production-ready code, and import it into ConvertKit as a custom email template. It also explains the required ConvertKit footer tags and how to use the exported .zip file and index.html content inside ConvertKit.

**Steps**

1. Open Figma, find Emailify under the Plugins tab in Resources, and run it from Saved plugins.
2. Create an Emailify container for your email and, before exporting, add the ConvertKit footer from the Footers tab.
3. Use the preview button to check the HTML email on mobile and desktop, then close the preview.
4. Click export HTML, choose ConvertKit under platform options, add a subject line and preheader text, and export the .zip file.
5. Unzip the file, open the folder for your email, and locate the index.html file.
6. In ConvertKit, create a new email template using the import code flow, name the template, and paste in the source from index.html.
7. Save the template, then use it in a new broadcast under the send menu.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=I8kwRdvwf8k)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-convertkit-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-customer-io.md"
description: "The video shows how to use the Emailify Figma plugin to export an HTML email and manually paste it into Customer.io as a new email layout. It also explains the Customer.io-specific footer and content tag requirements that need to be included in the template."
---

# Export HTML emails from Figma to Customer.io

> The video shows how to use the Emailify Figma plugin to export an HTML email and manually paste it into Customer.io as a new email layout. It also explains the Customer.io-specific footer and content tag requirements that need to be included in the template.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/KQyaQy6gYps)

**What this video covers**

The video shows how to use the Emailify Figma plugin to export an HTML email and manually paste it into Customer.io as a new email layout. It also explains the Customer.io-specific footer and content tag requirements that need to be included in the template.

**Things you'll need**

- A Figma file with the Emailify plugin available
- A Customer.io account

**Steps**

1. Find and run the Emailify Figma plugin from Resources, or save it for later from Saved Plugins.
2. Design or open an Emailify email frame in Figma and add the Customer.io footer from the Footer tab.
3. Make sure the template includes a {{content}} tag in the email, or let Emailify add one automatically if it is missing.
4. Click Export HTML, choose Customer.io under platform integration, then click Export for Customer.io and download the zip file.
5. Unzip the file and copy the HTML from the index.html file.
6. In Customer.io, go to Content, then Email Layouts, create a layout from scratch, paste in the HTML, and save changes.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=KQyaQy6gYps)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-customer-io-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-drip.md"
description: "This tutorial shows how to export an HTML email made in Figma with the Emailify Figma plugin and upload it into Drip as a custom HTML campaign. It also covers adding the required Drip footer preset, exporting the HTML ZIP, and pasting the generated code into Drip's custom HTML editor."
---

# Export HTML emails from Figma to Drip

> This tutorial shows how to export an HTML email made in Figma with the Emailify Figma plugin and upload it into Drip as a custom HTML campaign. It also covers adding the required Drip footer preset, exporting the HTML ZIP, and pasting the generated code into Drip's custom HTML editor.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/T-VmrIW9e7c)

**What this video covers**

This tutorial shows how to export an HTML email made in Figma with the Emailify Figma plugin and upload it into Drip as a custom HTML campaign. It also covers adding the required Drip footer preset, exporting the HTML ZIP, and pasting the generated code into Drip's custom HTML editor.

**Things you'll need**

- A Figma file with an email designed using the Emailify Figma plugin
- A Drip account

**Steps**

1. Open Emailify from Figma by searching it in Resources, then run or save the plugin and add a template frame.
2. Before exporting, go to the footer tab and select the Drip footer preset so the required unsubscribe link, viewing browser URL, and HTML postal address tag are included.
3. Preview the email in Emailify, then open export HTML, choose the Drip platform, and enter the subject line and preheader text.
4. Click export for Drip, download the ZIP file, unzip it, and use the index.html file inside the exported folder.
5. In Drip, create a new text/html campaign, switch to custom HTML, and open the code editor.
6. Open the exported index.html in a browser, view page source, copy all the code, delete the existing code in Drip, and paste in the copied HTML.
7. Save the campaign, review the preview and plain text options if needed, then click done editing when finished.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=T-VmrIW9e7c)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-drip-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-emailoctopus.md"
description: "This tutorial shows how to use the Emailify Figma plugin to design an HTML email, export it as production-ready code, and import it into EmailOctopus as a custom template. It also covers adding the EmailOctopus footer, previewing the email, and saving the finished template in EmailOctopus."
---

# Export HTML emails from Figma to EmailOctopus

> This tutorial shows how to use the Emailify Figma plugin to design an HTML email, export it as production-ready code, and import it into EmailOctopus as a custom template. It also covers adding the EmailOctopus footer, previewing the email, and saving the finished template in EmailOctopus.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/SxoknO-JXSM)

**What this video covers**

This tutorial shows how to use the Emailify Figma plugin to design an HTML email, export it as production-ready code, and import it into EmailOctopus as a custom template. It also covers adding the EmailOctopus footer, previewing the email, and saving the finished template in EmailOctopus.

**Things you'll need**

- A Figma file with the Emailify Figma plugin available
- An EmailOctopus account

**Steps**

1. Open Figma, find Emailify in Resources, save the plugin, and run it from Plugins > Saved plugins.
2. Create a new Emailify container, then choose the EmailOctopus footer option from the footer tab so unsubscribe, viewing browser, and address tags are added automatically.
3. Preview the design in the plugin, including mobile view if needed, and then close the preview.
4. Click Export HTML, choose the EmailOctopus platform option, enter the subject line and preheader text, and export the template.
5. Download the zip file, open it, and use the index.html file for the email template.
6. In EmailOctopus, go to Templates, create a new template, choose code your own, remove the default code, and drag and drop the exported index.html into the editor.
7. Preview or send a test, then click Save to store the custom HTML template in EmailOctopus.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=SxoknO-JXSM)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-emailoctopus-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-getresponse.md"
description: "This tutorial shows how to use the Emailify Figma plugin to export an HTML email design and upload it into GetResponse as a custom template. It covers adding a GetResponse footer in Emailify, exporting the design as a zip file, and importing that zip into GetResponse's HTML editor."
---

# Export HTML emails from Figma to GetResponse

> This tutorial shows how to use the Emailify Figma plugin to export an HTML email design and upload it into GetResponse as a custom template. It covers adding a GetResponse footer in Emailify, exporting the design as a zip file, and importing that zip into GetResponse's HTML editor.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/_WtsjQmQV-I)

**What this video covers**

This tutorial shows how to use the Emailify Figma plugin to export an HTML email design and upload it into GetResponse as a custom template. It covers adding a GetResponse footer in Emailify, exporting the design as a zip file, and importing that zip into GetResponse's HTML editor.

**Things you'll need**

- A Figma file with the Emailify plugin available.
- A logged-in GetResponse account.

**Steps**

1. Open the Emailify Figma plugin from Resources or from Saved plugins in Figma.
2. Create a new email and add a GetResponse footer preset so the unsubscribe and viewing browser links are included automatically.
3. Preview the email in Emailify on mobile or desktop, then open Export HTML and select the GetResponse platform.
4. Enter the subject line and preheader text, then export for GetResponse and download the zip file.
5. In GetResponse, go to Create template, enter a title, and choose the HTML editor tab.
6. Select Upload from zip, then drag and drop the exported zip from the Emailify folder into the upload window.
7. Upload the file, then save and exit once the custom HTML template appears in My templates.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=_WtsjQmQV-I)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-getresponse-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-hubspot.md"
description: "This video shows how to use the Emailify Figma plugin to export an HTML email from Figma directly into HubSpot. It also explains how to add the HubSpot footer template, find the HubSpot API key, and verify the uploaded template inside HubSpot."
---

# Export HTML emails from Figma to HubSpot

> This video shows how to use the Emailify Figma plugin to export an HTML email from Figma directly into HubSpot. It also explains how to add the HubSpot footer template, find the HubSpot API key, and verify the uploaded template inside HubSpot.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/AOSWquXuhRA)

**What this video covers**

This video shows how to use the Emailify Figma plugin to export an HTML email from Figma directly into HubSpot. It also explains how to add the HubSpot footer template, find the HubSpot API key, and verify the uploaded template inside HubSpot.

**Things you'll need**

- A Figma file with an email already designed in Emailify
- A HubSpot account with an API key
- The HubSpot platform-specific footer template added to the email

**Steps**

1. Install Emailify from the Figma Community and run it from Plugins in your Figma file.
2. Open the Emailify export panel, change the export destination from downloading locally to HubSpot Marketing Hub, and paste in your HubSpot API key.
3. In your email design, add the HubSpot platform-specific footer template from the Footer category so the required unsubscribe, web, and company details are included.
4. Click Upload to HubSpot to generate the HTML, upload the images, and send the template to HubSpot.
5. In HubSpot, go to Marketing > Email > Create email > Regular, then open the Custom tab to find the uploaded template and preview it.
6. To inspect the uploaded file, go to Marketing > Files and templates > Design Tools and look for the automatically created emailify folder and HTML file.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=AOSWquXuhRA)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-hub-spot-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-insider-useinsider.md"
description: "This tutorial shows how to use the Emailify Figma plugin to export an HTML email from Figma directly into the Insider email marketing platform. It covers adding an Insider footer, previewing the email, generating an Insider API key, and uploading the template with subject line and preview text."
---

# Export HTML emails from Figma to Insider (UseInsider)

> This tutorial shows how to use the Emailify Figma plugin to export an HTML email from Figma directly into the Insider email marketing platform. It covers adding an Insider footer, previewing the email, generating an Insider API key, and uploading the template with subject line and preview text.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/uZAXjEmKhJ0)

**What this video covers**

This tutorial shows how to use the Emailify Figma plugin to export an HTML email from Figma directly into the Insider email marketing platform. It covers adding an Insider footer, previewing the email, generating an Insider API key, and uploading the template with subject line and preview text.

**Things you'll need**

- A Figma file with an email designed in Emailify
- An Insider account with access to generate an Email Content API key

**Steps**

1. Open your Figma file, search for Emailify in Resources, and run the plugin from the saved plugins list.
2. Create an email by clicking Add Emailify Container and name the frame or template.
3. Add the Insider footer from the footer tab so the unsubscribe link is pre-populated.
4. Preview the email in the plugin to check the HTML on mobile and desktop.
5. Click Export HTML, choose Insider under Platform Integrations, and paste in your Insider API key.
6. In Insider, go to Settings, open Inone Settings, find Integration Settings, and generate an Email Content API key.
7. Enter the subject line and optional preheader text in Emailify, then click Upload to Insider to send the template, images, and HTML to Insider.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=uZAXjEmKhJ0)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-insider-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-intercom.md"
description: "This tutorial shows how to use the Emailify Figma plugin to export an HTML email and import it into Intercom as an outbound email template. It covers adding the required Intercom unsubscribe URL and content tag, exporting the HTML zip, and pasting the generated index.html source into Intercom’s Create from HTML workflow."
---

# Export HTML emails from Figma to Intercom

> This tutorial shows how to use the Emailify Figma plugin to export an HTML email and import it into Intercom as an outbound email template. It covers adding the required Intercom unsubscribe URL and content tag, exporting the HTML zip, and pasting the generated index.html source into Intercom’s Create from HTML workflow.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/U14GJx6k4mM)

**What this video covers**

This tutorial shows how to use the Emailify Figma plugin to export an HTML email and import it into Intercom as an outbound email template. It covers adding the required Intercom unsubscribe URL and content tag, exporting the HTML zip, and pasting the generated index.html source into Intercom’s Create from HTML workflow.

**Things you'll need**

- A Figma email template already designed in Emailify
- An Intercom account with access to Email settings and templates

**Steps**

1. Open Emailify from Figma by searching for it in Actions or from Saved Plugins.
2. Prepare the email template in Figma and add the Intercom footer so the unsubscribe URL is included; leave or rely on the hidden content tag if needed.
3. In Emailify, choose Export HTML, switch the export option to Intercom under Platform Integrations, enter the subject line and pre-header text, then click Export for Intercom.
4. Download the zip file, open the exported folder, and use the index.html file to view or copy the generated HTML source.
5. In Intercom, go to Settings, Channels, Email, then Email Settings, and open Create or Manage Templates under Email Templates for Outbound Email.
6. Create a New Template from HTML, replace the placeholder HTML with the copied source from index.html, name the template, and save it.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=U14GJx6k4mM)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-intercom-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-klaviyo.md"
description: "The video shows how to use the Emailify Figma plugin to export a designed HTML email directly into Klaviyo as a template. It walks through installing Emailify, connecting a Klaviyo private API key, and uploading one or more emails into the Klaviyo templates list."
---

# Export HTML emails from Figma to Klaviyo

> The video shows how to use the Emailify Figma plugin to export a designed HTML email directly into Klaviyo as a template. It walks through installing Emailify, connecting a Klaviyo private API key, and uploading one or more emails into the Klaviyo templates list.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/7OCqmOsrAYk)

**What this video covers**

The video shows how to use the Emailify Figma plugin to export a designed HTML email directly into Klaviyo as a template. It walks through installing Emailify, connecting a Klaviyo private API key, and uploading one or more emails into the Klaviyo templates list.

**Things you'll need**

- A Figma file with an email already designed using Emailify
- A Klaviyo account with a private API key

**Steps**

1. Install the Emailify plugin from the Figma Community and run it from Plugins in your Figma file.
2. Open an email already designed in Emailify and click the Export button in the plugin header.
3. Change the export option from HTML download to the Klaviyo upload option.
4. Open the Klaviyo private API key page, create a private API key, label it, and copy the key.
5. Paste the private API key into the Emailify plugin, then fill in the subject line and pre-header text if needed.
6. Click Upload to Klaviyo to generate the HTML, upload the assets, and create the template in Klaviyo.
7. Open the Klaviyo templates list and refresh it to confirm the new template was created and preview it.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=7OCqmOsrAYk)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-klaviyo-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-loops-so.md"
description: "This tutorial shows how to use the Emailify Figma plugin to export an HTML email from Figma to the Loops email marketing and transactional email platform. It covers setting the Loops footer, previewing the email, exporting a zip package, and uploading that zip into Loops as a custom email."
---

# Export HTML emails from Figma to Loops.so

> This tutorial shows how to use the Emailify Figma plugin to export an HTML email from Figma to the Loops email marketing and transactional email platform. It covers setting the Loops footer, previewing the email, exporting a zip package, and uploading that zip into Loops as a custom email.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/tPKd8R7gH1Q)

**What this video covers**

This tutorial shows how to use the Emailify Figma plugin to export an HTML email from Figma to the Loops email marketing and transactional email platform. It covers setting the Loops footer, previewing the email, exporting a zip package, and uploading that zip into Loops as a custom email.

**Things you'll need**

- Figma
- Emailify Figma plugin
- A Loops account

**Steps**

1. Open Figma, find Emailify in Resources, and run the Emailify Figma plugin from your saved plugins.
2. Create a new Emailify container and, if building for Loops, choose the Loops footer in the Footer tab so the unsubscribe link is included.
3. Preview the email in the plugin and check the desktop and mobile output.
4. Click export HTML, choose the Loops platform, and enter the subject line and preheader text.
5. Export for Loops, download the zip file, and keep the generated _zips (For upload to Loops) folder.
6. In Loops, go to Templates, create a blank campaign, click upload a custom email, and drag and drop the zip file into the upload field.
7. Upload the template, then add the subject line and campaign name in Loops.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=tPKd8R7gH1Q)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-loops-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-mailchimp.md"
description: "This video shows how to use the Emailify Figma plugin to export an HTML email directly from Figma into MailChimp as a MailChimp template. It also explains how to create a MailChimp API key, upload the template, and view the result in MailChimp."
---

# Export HTML emails from Figma to MailChimp

> This video shows how to use the Emailify Figma plugin to export an HTML email directly from Figma into MailChimp as a MailChimp template. It also explains how to create a MailChimp API key, upload the template, and view the result in MailChimp.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/FgPl-a_z59A)

**What this video covers**

This video shows how to use the Emailify Figma plugin to export an HTML email directly from Figma into MailChimp as a MailChimp template. It also explains how to create a MailChimp API key, upload the template, and view the result in MailChimp.

**Things you'll need**

- A Figma file with an email already designed in Emailify.
- A MailChimp account with access to create an API key.

**Steps**

1. Install Emailify from the Figma Community under the Plugins tab.
2. Open your Figma file, right-click, and launch Emailify from Plugins.
3. Click Export, change the export destination from the default HTML package to MailChimp, and open the MailChimp API Key link.
4. In MailChimp, create a new API key, label it if desired, and copy the generated key.
5. Paste the API key into the Emailify plugin, select the email you want to upload, and make sure it has a subject line and pre-header.
6. Click Upload to MailChimp to generate the HTML, upload the images, and create the template in MailChimp.
7. Open the MailChimp templates page to confirm the uploaded template, preview it, and switch between desktop and mobile views if needed.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=FgPl-a_z59A)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-mail-chimp-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-mailercloud.md"
description: "This tutorial shows how to use the Emailify Figma plugin to design an HTML email, add the Mailercloud footer, export the template as HTML, and upload it into Mailercloud. It also covers matching the subject line and preheader text between Emailify and Mailercloud before saving the template."
---

# Export HTML emails from Figma to Mailercloud

> This tutorial shows how to use the Emailify Figma plugin to design an HTML email, add the Mailercloud footer, export the template as HTML, and upload it into Mailercloud. It also covers matching the subject line and preheader text between Emailify and Mailercloud before saving the template.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/vtVd9ng97w8)

**What this video covers**

This tutorial shows how to use the Emailify Figma plugin to design an HTML email, add the Mailercloud footer, export the template as HTML, and upload it into Mailercloud. It also covers matching the subject line and preheader text between Emailify and Mailercloud before saving the template.

**Things you'll need**

- A Figma file with the Emailify plugin available
- A Mailercloud account with a sender ID already set up

**Steps**

1. Open Figma, search for Emailify in Resources, save or run the plugin, and add a new Emailify container to the canvas.
2. In the Footer tab, scroll to Mailercloud and add the Mailercloud footer component with the prepopulated unsubscribe and view in browser links.
3. Preview the email in Emailify and switch between mobile and desktop to check the layout.
4. Click Export HTML, choose the HTML email option, then select Mailercloud under platform integrations.
5. Enter the subject line and preheader text, then export for Mailercloud and download the zip file.
6. Unzip the export, open the nested index.html file, and confirm the HTML preview looks correct.
7. In Mailercloud, create a new campaign, select the HTML editor option, drag and drop the index.html file into the editor, then continue and save the template.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=vtVd9ng97w8)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-mailercloud-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-mailerlite.md"
description: "This tutorial shows how to use the Emailify Figma plugin to export a designed HTML email, then import that HTML into MailerLite as a Regular Campaign. It also covers adding the MailerLite footer, copying the exported index.html code, and optionally adding a plain text version."
---

# Export HTML emails from Figma to MailerLite

> This tutorial shows how to use the Emailify Figma plugin to export a designed HTML email, then import that HTML into MailerLite as a Regular Campaign. It also covers adding the MailerLite footer, copying the exported index.html code, and optionally adding a plain text version.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/5eKKe7M2-yo)

**What this video covers**

This tutorial shows how to use the Emailify Figma plugin to export a designed HTML email, then import that HTML into MailerLite as a Regular Campaign. It also covers adding the MailerLite footer, copying the exported index.html code, and optionally adding a plain text version.

**Things you'll need**

- A Figma file with Emailify components already designed
- A MailerLite account

**Steps**

1. Open your Figma file, find Emailify in Resources under the Plugins tab, and run or save the plugin from Saved plugins.
2. Add your email components in Figma and check that you include a MailerLite footer from the footer tab so the unsubscribe and view-in-browser tags are pre-populated.
3. Preview the email in Emailify, then click export HTML and choose MailerLite as the export option.
4. Set the email name, optional subject line, and preheader text, then click export for MailerLite and download the zip file.
5. Open the zip, copy the contents of the exported index.html file, and log into MailerLite.
6. In MailerLite, create a new Regular Campaign, choose Custom HTML editor, import HTML, and paste the copied code into the editor.
7. Optionally add the plain text version from plain text version.txt, then save it and continue with review and scheduling.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=5eKKe7M2-yo)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-mailerlite-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-mailgun.md"
description: "This video shows how to use the Emailify Figma plugin to export an HTML email from Figma directly into a Mailgun account. It covers saving and opening the plugin, selecting the Mailgun integration, entering the Mailgun domain and private API key, and uploading the template so it appears in Mailgun."
---

# Export HTML emails from Figma to Mailgun

> This video shows how to use the Emailify Figma plugin to export an HTML email from Figma directly into a Mailgun account. It covers saving and opening the plugin, selecting the Mailgun integration, entering the Mailgun domain and private API key, and uploading the template so it appears in Mailgun.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/hrsveAlzzZo)

**What this video covers**

This video shows how to use the Emailify Figma plugin to export an HTML email from Figma directly into a Mailgun account. It covers saving and opening the plugin, selecting the Mailgun integration, entering the Mailgun domain and private API key, and uploading the template so it appears in Mailgun.

**Things you'll need**

- A Figma file with an email designed in Emailify
- A Mailgun account with a domain and private API key

**Steps**

1. Open Figma, use the Resources icon to search for Emailify, and save it to Figma plugins or run it from the Plugins menu.
2. In Emailify, make sure your email design is already created, then click Export HTML.
3. Change the export target from HTML Email to Mailgun under Platform Integrations.
4. Copy your Mailgun domain name and private API key from Mailgun and paste them into the Emailify fields.
5. Click Upload to Mailgun to generate the HTML, upload images, and send the template to Mailgun.
6. In Mailgun, open Sending and then Templates to find the uploaded template and view the available code snippets.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=hrsveAlzzZo)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-mailgun-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-mailjet.md"
description: "This video shows how to use the Emailify Figma plugin to export an HTML email design directly into Mailjet. It covers installing Emailify, previewing the HTML, entering Mailjet API credentials, uploading the template, and confirming it appears in Mailjet Marketing templates."
---

# Export HTML emails from Figma to Mailjet

> This video shows how to use the Emailify Figma plugin to export an HTML email design directly into Mailjet. It covers installing Emailify, previewing the HTML, entering Mailjet API credentials, uploading the template, and confirming it appears in Mailjet Marketing templates.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/LwkH-A3pAYE)

**What this video covers**

This video shows how to use the Emailify Figma plugin to export an HTML email design directly into Mailjet. It covers installing Emailify, previewing the HTML, entering Mailjet API credentials, uploading the template, and confirming it appears in Mailjet Marketing templates.

**Things you'll need**

- A Figma email design created in Emailify
- A Mailjet account with an API key and secret key

**Steps**

1. Open Figma, use the Resources icon to search for Emailify, and install or run the plugin.
2. Open an existing email design in Emailify and click Preview to check the HTML output.
3. Click Export HTML and select the Mailjet export option instead of the default HTML Email download.
4. Open Mailjet API Key Management from the plugin link, then copy the Primary API Key and secret key.
5. Paste the API key and secret into Emailify, select the email to upload, and click Upload to Mailjet.
6. Open Mailjet and go to Marketing templates to confirm the uploaded template appears, then Preview or Edit it if needed.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=LwkH-A3pAYE)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-mailjet-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-mailmodo.md"
description: "This tutorial shows how to use the Emailify Figma plugin to design an HTML email, export it as a Mailmodo-ready ZIP, and upload the index.html file into Mailmodo as a custom template. It also shows how to reuse the uploaded template in a campaign and notes that Mailmodo currently strips custom unsubscribe links from custom HTML templates."
---

# Export HTML emails from Figma to Mailmodo

> This tutorial shows how to use the Emailify Figma plugin to design an HTML email, export it as a Mailmodo-ready ZIP, and upload the index.html file into Mailmodo as a custom template. It also shows how to reuse the uploaded template in a campaign and notes that Mailmodo currently strips custom unsubscribe links from custom HTML templates.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/WstlHCpO8L4)

**What this video covers**

This tutorial shows how to use the Emailify Figma plugin to design an HTML email, export it as a Mailmodo-ready ZIP, and upload the index.html file into Mailmodo as a custom template. It also shows how to reuse the uploaded template in a campaign and notes that Mailmodo currently strips custom unsubscribe links from custom HTML templates.

**Things you'll need**

- A Figma file with the Emailify plugin installed or saved
- A Mailmodo account

**Steps**

1. In Figma, search for Emailify under the plugins tab, save it, and run it from Plugins > Saved Plugins.
2. Create a new email template, add a new Emailify container, and use the plugin’s design tools and preview button to check desktop and mobile HTML previews.
3. Open Export HTML, choose the Mailmodo platform integration, enter the subject line and preview text, then click Export for Mailmodo and download the ZIP file.
4. Unzip the downloaded file and locate the index.html file inside the exported folder.
5. In Mailmodo, go to Templates, choose Create New Email Template > Upload Template, and drag and drop the index.html file into the upload area.
6. Add a template name and select an email type, then save and upload the template.
7. Optionally use the uploaded template in a campaign, fill in the subject line and sender details, and send a test campaign before sending to your list.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=WstlHCpO8L4)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-mailmodo-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-marketo.md"
description: "The video shows how to use the Emailify Figma plugin to export a designed HTML email from Figma to Adobe Marketo. It covers two export methods: downloading a Marketo zip file for manual import, or connecting Emailify to the Marketo API to upload the template directly."
---

# Export HTML emails from Figma to Marketo

> The video shows how to use the Emailify Figma plugin to export a designed HTML email from Figma to Adobe Marketo. It covers two export methods: downloading a Marketo zip file for manual import, or connecting Emailify to the Marketo API to upload the template directly.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/GBU_cdxPBfA)

**What this video covers**

The video shows how to use the Emailify Figma plugin to export a designed HTML email from Figma to Adobe Marketo. It covers two export methods: downloading a Marketo zip file for manual import, or connecting Emailify to the Marketo API to upload the template directly.

**Things you'll need**

- An Emailify-designed email in Figma
- A Marketo account
- For the API method, Marketo admin access to create roles and LaunchPoint services

**Steps**

1. Open Figma, find Emailify from Resources or Saved plugins, and run the plugin.
2. Create a new Emailify container and design the email, then add the Marketo footer under the Footers tab so the unsubscribe link is included.
3. Preview the email in Emailify to check the HTML layout on mobile and desktop.
4. In export HTML, choose either the Marketo zip option or the Marketo API option under platform Integrations.
5. For the zip method, enable add Marketo editable content tags, export the template, download the zip file, then in Marketo create a new email template in Design Studio and paste the exported HTML into the code editor.
6. For the API method, get the Marketo REST API endpoint from Admin > Web Services, then create a role and LaunchPoint service to obtain the client ID and client secret, enter them in Emailify, and upload to Marketo.
7. In Marketo, open the uploaded template, preview or approve the draft, and create a new email from that template.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=GBU_cdxPBfA)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-marketo-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-moosend.md"
description: "The tutorial shows how to use the Emailify Figma plugin to create an HTML email, add the Moosend footer, export the template as HTML, and import it into a Moosend campaign. It also demonstrates previewing the email, copying the exported index.html code, and loading it into Moosend as an imported campaign template."
---

# Export HTML emails from Figma to Moosend

> The tutorial shows how to use the Emailify Figma plugin to create an HTML email, add the Moosend footer, export the template as HTML, and import it into a Moosend campaign. It also demonstrates previewing the email, copying the exported index.html code, and loading it into Moosend as an imported campaign template.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/ByG957iMh6c)

**What this video covers**

The tutorial shows how to use the Emailify Figma plugin to create an HTML email, add the Moosend footer, export the template as HTML, and import it into a Moosend campaign. It also demonstrates previewing the email, copying the exported index.html code, and loading it into Moosend as an imported campaign template.

**Things you'll need**

- A Figma file with the Emailify plugin available
- A Moosend account

**Steps**

1. Open Emailify in Figma from Resources or Saved Plugins and create a new email frame.
2. Add the Moosend footer from the Footer tab so the unsubscribe and view in browser links use the correct Moosend tags.
3. Preview the HTML in Emailify to check the desktop and mobile layout, then open Export HTML and choose the Moosend platform integration.
4. Enter the subject line and optional preheader text, then click Export for Moosend and download the zip file.
5. Unzip the export, open the email template folder, and locate the index.html file.
6. In Moosend, create a new regular campaign, enter the campaign name and subject line, choose your list, and open the design step.
7. Turn on Imported campaign template, paste the full HTML from the exported index.html source into the HTML code field, and click Import.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=ByG957iMh6c)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-moosend-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-omnisend.md"
description: "The video shows how to use the Emailify Figma plugin to export an HTML email, then import it into Omnisend as a custom template. It also covers adding the required Omnisend unsubscribe link, previewing the template, and using it in a campaign."
---

# Export HTML emails from Figma to Omnisend

> The video shows how to use the Emailify Figma plugin to export an HTML email, then import it into Omnisend as a custom template. It also covers adding the required Omnisend unsubscribe link, previewing the template, and using it in a campaign.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/Zl8DZWbyrt8)

**What this video covers**

The video shows how to use the Emailify Figma plugin to export an HTML email, then import it into Omnisend as a custom template. It also covers adding the required Omnisend unsubscribe link, previewing the template, and using it in a campaign.

**Things you'll need**

- A designed email built with Emailify in Figma.
- An Omnisend account with access to Store settings and Saved templates.

**Steps**

1. Open your Figma file, find Emailify in Resources under Plugins, save it if needed, and run it from Saved plugins.
2. Make sure the email includes the Omnisend footer preset so the required unsubscribe tag is added, then check it in HTML and mobile settings.
3. Click export HTML, enable upload hosted image URLs, and export the email as a zip file.
4. Unzip the download and use the folder’s index.html file, not the previews page, for the import.
5. In Omnisend, go to Store settings, open Saved templates, choose Import template, name it, and upload the index.html file.
6. After importing, preview the saved template, then create a campaign, choose the saved template, and adjust the default padding if needed before sending.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=Zl8DZWbyrt8)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-omnisend-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-onesignal.md"
description: "The video shows how to use the Emailify Figma plugin to export an HTML email from Figma and upload it directly to OneSignal. It covers selecting the OneSignal integration, entering the app ID and REST API key, and confirming the uploaded template in OneSignal."
---

# Export HTML emails from Figma to OneSignal

> The video shows how to use the Emailify Figma plugin to export an HTML email from Figma and upload it directly to OneSignal. It covers selecting the OneSignal integration, entering the app ID and REST API key, and confirming the uploaded template in OneSignal.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/haQHdEan54Q)

**What this video covers**

The video shows how to use the Emailify Figma plugin to export an HTML email from Figma and upload it directly to OneSignal. It covers selecting the OneSignal integration, entering the app ID and REST API key, and confirming the uploaded template in OneSignal.

**Things you'll need**

- An Emailify Figma plugin saved in Figma
- A OneSignal app with access to the app ID and REST API key
- An existing HTML email design in Figma

**Steps**

1. Open the Figma file, find Emailify in Resources, and run the plugin from Plugins.
2. Click Export HTML, switch to HTML Email, and choose OneSignal under Platform Integrations.
3. In OneSignal, open the app dashboard, go to Keys and IDs, and copy the app ID and REST API key.
4. Paste the app ID and API key into Emailify, then make sure the subject line is set and optionally add pre-header text.
5. Click Upload to OneSignal in Emailify to export the HTML email and upload the images and template.
6. In OneSignal, open Messages, then Templates, and select the uploaded template to view the HTML and subject line.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=haQHdEan54Q)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-one-signal-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-ongage.md"
description: "This tutorial shows how to use the Emailify Figma plugin to design an HTML email, export it as production-ready code for Ongage, and paste the generated HTML into a new Ongage campaign. It also covers adding the Ongage footer, previewing the email, and using the WYSIWYG editor only for small text changes."
---

# Export HTML emails from Figma to Ongage

> This tutorial shows how to use the Emailify Figma plugin to design an HTML email, export it as production-ready code for Ongage, and paste the generated HTML into a new Ongage campaign. It also covers adding the Ongage footer, previewing the email, and using the WYSIWYG editor only for small text changes.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/ApcOT2WG_cc)

**What this video covers**

This tutorial shows how to use the Emailify Figma plugin to design an HTML email, export it as production-ready code for Ongage, and paste the generated HTML into a new Ongage campaign. It also covers adding the Ongage footer, previewing the email, and using the WYSIWYG editor only for small text changes.

**Things you'll need**

- A Figma file with the Emailify plugin available
- An Ongage account
- A finished or mostly finished email design to export

**Steps**

1. Open the Emailify Figma plugin from Resources or saved Figma plugins, then create a new Emailify container for your email design.
2. Add your email content, then insert the Ongage footer component so the unsubscribe link and address tag are populated automatically.
3. Use the Preview button to check the responsive HTML preview on mobile and desktop, and adjust mobile overrides if needed.
4. Click Export HTML, choose the Ongage platform integration, enter the subject line and preheader, then export and download the zip file.
5. Unzip the download and open the index.html file from the email template folder to copy the full HTML source.
6. In Ongage, create a new email campaign, paste the same subject line, switch to the HTML tab, replace the existing HTML with the copied index.html code, and keep Auto beautify HTML unchecked.
7. Save or continue the campaign, add your lists and other campaign fields, optionally send a test, and schedule the campaign when ready.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=ApcOT2WG_cc)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-ongage-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-pardot-marketing-cloud-account-engagement.md"
description: "This tutorial shows how to use the Emailify Figma plugin to export an HTML email from Figma and upload it directly to Salesforce Pardot, also labeled Marketing Cloud Account Engagement. It walks through finding the required Pardot credentials, selecting the campaign, folder, and tracking domain, and then uploading the template from Figma."
---

# Export HTML emails from Figma to Pardot (Marketing Cloud Account Engagement)

> This tutorial shows how to use the Emailify Figma plugin to export an HTML email from Figma and upload it directly to Salesforce Pardot, also labeled Marketing Cloud Account Engagement. It walks through finding the required Pardot credentials, selecting the campaign, folder, and tracking domain, and then uploading the template from Figma.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/VtVuPmb57cw)

**What this video covers**

This tutorial shows how to use the Emailify Figma plugin to export an HTML email from Figma and upload it directly to Salesforce Pardot, also labeled Marketing Cloud Account Engagement. It walks through finding the required Pardot credentials, selecting the campaign, folder, and tracking domain, and then uploading the template from Figma.

**Things you'll need**

- A Figma file with the Emailify plugin available
- A Pardot or Marketing Cloud Account Engagement account with a connected app that can provide a Consumer Key and Consumer Secret

**Steps**

1. Open the Figma file, find Emailify in Resources under the Plugins tab, and run or save the plugin.
2. Create an Emailify container in a frame, optionally add the Pardot footer, and preview the email before exporting.
3. Click Export HTML, choose Pardot API upload, and enter the Business Unit ID, Pardot email, password, Consumer Key, and Consumer Secret.
4. In Pardot, find the Business Unit ID in Marketing setup > Business Unit Setup, and find the Consumer Key and Consumer Secret in Setup > App Manager > your connected app > Manage Consumer Details.
5. Back in Emailify, select the campaign, folder, and tracker domain, then enter the sender name and sender email.
6. Optionally set the subject line and pre-header, enable **Editable Regions**, **Repeatable Regions**, or **Removable Regions** as needed, and click Upload to Pardot.
7. In Pardot, open Account Engagement Email and confirm the uploaded template appears in the published templates list.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=VtVuPmb57cw)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-pardot-marketing-cloud-account-engagement-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-pdf-previews.md"
description: "The video shows how to use the Emailify Figma plugin to export HTML email designs as PDF previews. It explains where to find the plugin in Figma, how to choose the new \"PDF Previews\" export option, and what files are generated after export."
---

# Export HTML emails from Figma to PDF previews

> The video shows how to use the Emailify Figma plugin to export HTML email designs as PDF previews. It explains where to find the plugin in Figma, how to choose the new "PDF Previews" export option, and what files are generated after export.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/Wmub2cYLHcQ)

**What this video covers**

The video shows how to use the Emailify Figma plugin to export HTML email designs as PDF previews. It explains where to find the plugin in Figma, how to choose the new "PDF Previews" export option, and what files are generated after export.

**Things you'll need**

- Emailify must be installed in Figma.
- Email designs must already be set up and rendering as desired.

**Steps**

1. Open Figma, click the "Resources" icon, search for "Emailify" under the "Plugins" tab, and save or run the plugin.
2. Open Emailify from "Plugins" > "Saved Plugins" if it is already saved.
3. Close the preview and click the "Export HTML" button.
4. Change the export type from "HTML Email" to "PDF Previews" under the "Download To Ccmputer" group.
5. Select the emails on the page that you want to include in the export.
6. Click "Export to PDF" to generate the PDF previews and related files.
7. Download the .zip file, unzip it, and use the combined PDF, per-email PDFs, individual mobile or desktop PDFs, or JPEGs as needed.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=Wmub2cYLHcQ)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-pdf-previews-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-plain-text-format.md"
description: "This tutorial shows how to use the Emailify Figma plugin to export an HTML email design and automatically include a plain text version. It also shows where to find the exported .txt file and notes that supported platform integrations can upload the plain text version automatically."
---

# Export HTML emails from Figma to Plain Text format

> This tutorial shows how to use the Emailify Figma plugin to export an HTML email design and automatically include a plain text version. It also shows where to find the exported .txt file and notes that supported platform integrations can upload the plain text version automatically.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/jUca0A7A7_8)

**What this video covers**

This tutorial shows how to use the Emailify Figma plugin to export an HTML email design and automatically include a plain text version. It also shows where to find the exported .txt file and notes that supported platform integrations can upload the plain text version automatically.

**Things you'll need**

- A Figma file with an Emailify email template ready to export
- The Emailify Figma plugin saved in Figma

**Steps**

1. Open your Figma file and find Emailify through the Resources icon, then save or run the plugin from the Plugins tab.
2. Run Emailify from right-click > Plugins > Saved plugins > Emailify.
3. Prepare an email template in Figma, such as one from the template Gallery, with links and content ready to export.
4. Click export HTML, choose the HTML option or another platform integration, then export the design to a zip file.
5. Open the exported folder and locate the index.html file for the HTML email and the plain text version.txt file for the plain text version.
6. Open the plain text version.txt file in a text editor to review the converted content and links in plain text.
7. If using a supported integration such as Salesforce, Pardot, or Klaviyo, let the plugin upload the HTML and plain text version automatically.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=jUca0A7A7_8)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-plain-text-emails-from-figma-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-postmark.md"
description: "This video shows how to use the Emailify Figma plugin to export an HTML email from Figma directly into Postmark. It covers installing the plugin, adding a Postmark API key, uploading the template, and viewing the result in Postmark."
---

# Export HTML emails from Figma to Postmark

> This video shows how to use the Emailify Figma plugin to export an HTML email from Figma directly into Postmark. It covers installing the plugin, adding a Postmark API key, uploading the template, and viewing the result in Postmark.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/BD7dghnkeKM)

**What this video covers**

This video shows how to use the Emailify Figma plugin to export an HTML email from Figma directly into Postmark. It covers installing the plugin, adding a Postmark API key, uploading the template, and viewing the result in Postmark.

**Things you'll need**

- Figma
- Emailify Figma plugin
- A Postmark account with access to a server and API Tokens

**Steps**

1. Install the Emailify Figma plugin from the Figma Community and run it from Plugins in your Figma file.
2. Open the Export menu in Emailify, change the export option from HTML to Postmark, and reveal the API key field.
3. In Postmark, go to Servers, open your server, click API Tokens, and copy your API token.
4. Paste the Postmark API key into the Emailify plugin using Command + V or Control + V.
5. Click Upload to Postmark to generate the HTML, export the image assets, and send the template to Postmark.
6. In Postmark, open Servers, choose the same server, and go to Templates to find the uploaded template.
7. Open the template to review the subject line, HTML, and Preview, or upload again to create a new version if needed.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=BD7dghnkeKM)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-postmark-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-salesforce-marketing-cloud.md"
description: "The video shows how to use the Emailify Figma plugin to export an HTML email from Figma and automatically upload it to Salesforce Marketing Cloud (SFMC). It also explains how to create the required SFMC Installed Package credentials and then reuse them in Emailify for future uploads."
---

# Export HTML emails from Figma to Salesforce Marketing Cloud

> The video shows how to use the Emailify Figma plugin to export an HTML email from Figma and automatically upload it to Salesforce Marketing Cloud (SFMC). It also explains how to create the required SFMC Installed Package credentials and then reuse them in Emailify for future uploads.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/Q4QD3GTxD9s)

**What this video covers**

The video shows how to use the Emailify Figma plugin to export an HTML email from Figma and automatically upload it to Salesforce Marketing Cloud (SFMC). It also explains how to create the required SFMC Installed Package credentials and then reuse them in Emailify for future uploads.

**Things you'll need**

- A Figma file with an email design ready in Emailify
- A Salesforce Marketing Cloud (SFMC) account with access to Setup and Installed Packages

**Steps**

1. Open the Resources icon in Figma, search for Emailify under Plugins, and run or save the plugin.
2. Create or finish your email design in Emailify, optionally adding the Salesforce Marketing Cloud footer from the Footers tab.
3. Click Export HTML, choose the HTML email option, and select Marketing Cloud under platform integrations.
4. In Salesforce Marketing Cloud (SFMC), go to Setup, then Platform Tools > Apps > Installed Packages, and create a new package.
5. Add an API Integration component, set it to Server to Server, and grant the required Read and Write permissions for Email and Assets.
6. Copy the REST Base URL, Client ID, and Client Secret from SFMC into Emailify, then enter a subject line and pre-header if needed.
7. Click Upload to Marketing Cloud and then verify the uploaded template in Content Builder.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=Q4QD3GTxD9s)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-salesforce-marketing-cloud-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-sare.md"
description: "This tutorial shows how to export an HTML email from Figma with the Emailify Figma plugin and import it into the SARE email marketing platform. It also demonstrates previewing the email in Emailify, downloading the export zip, and uploading the template into SARE."
---

# Export HTML emails from Figma to SARE

> This tutorial shows how to export an HTML email from Figma with the Emailify Figma plugin and import it into the SARE email marketing platform. It also demonstrates previewing the email in Emailify, downloading the export zip, and uploading the template into SARE.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/_-9AIr6dE0U)

**What this video covers**

This tutorial shows how to export an HTML email from Figma with the Emailify Figma plugin and import it into the SARE email marketing platform. It also demonstrates previewing the email in Emailify, downloading the export zip, and uploading the template into SARE.

**Things you'll need**

- A Figma file with Emailify available as a plugin
- A SARE account

**Steps**

1. Open your Figma file, find Emailify from the Actions menu or Saved plugins, and run the plugin.
2. Use a template from Emailify’s new email templates, then preview the email with the Preview button.
3. Click Export HTML, change the export type to the SARE platform integration, and select Export for SARE.
4. Download the generated zip file, unzip it on your computer, and locate the folder marked for upload to SARE.
5. Log into SARE, go to Mailing, click New, and choose Import mailing template.
6. Enter a template name, upload the zip file from the _zips for upload to SARE folder, and click Import.
7. Open the new template under My templates to verify the HTML email and mobile preview.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=_-9AIr6dE0U)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-sare-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-selzy.md"
description: "This video shows how to export an HTML email from Figma to Selzy using the Emailify Figma plugin. It walks through saving Emailify in Figma, setting the Selzy unsubscribe link, entering a Selzy API key, and uploading the template to Selzy."
---

# Export HTML emails from Figma to Selzy

> This video shows how to export an HTML email from Figma to Selzy using the Emailify Figma plugin. It walks through saving Emailify in Figma, setting the Selzy unsubscribe link, entering a Selzy API key, and uploading the template to Selzy.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/5w2qyBTYToY)

**What this video covers**

This video shows how to export an HTML email from Figma to Selzy using the Emailify Figma plugin. It walks through saving Emailify in Figma, setting the Selzy unsubscribe link, entering a Selzy API key, and uploading the template to Selzy.

**Things you'll need**

- An existing email design made with Emailify in Figma
- A Selzy account with access to the API key page

**Steps**

1. Open the Figma file, find Emailify in Resources under the Plugins tab, and run or save the plugin.
2. Open Emailify from the Figma plugins list and make sure the email design is ready to export.
3. In the footer tab, select the Selzy item to ensure the unsubscribe link is set correctly.
4. Click export HTML, change the export target from HTML email to the Selzy platform integration, and open the API key page from the Selzy link.
5. In Selzy, show the full API key, copy it, and paste it into the Emailify plugin.
6. Add a subject line, then click upload to Selzy to export the HTML, upload the images, and create the template.
7. Open My templates in Selzy to confirm the uploaded template and preview the result.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=5w2qyBTYToY)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-selzy-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-sendgrid.md"
description: "This video shows how to use the Emailify Figma plugin to export an email design from Figma as an HTML template and upload it directly to SendGrid. It also shows how to create a SendGrid API key, add the Emailify SendGrid footer, and verify the uploaded template in SendGrid’s Design Library."
---

# Export HTML emails from Figma to SendGrid

> This video shows how to use the Emailify Figma plugin to export an email design from Figma as an HTML template and upload it directly to SendGrid. It also shows how to create a SendGrid API key, add the Emailify SendGrid footer, and verify the uploaded template in SendGrid’s Design Library.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/cYYVO_3HT1U)

**What this video covers**

This video shows how to use the Emailify Figma plugin to export an email design from Figma as an HTML template and upload it directly to SendGrid. It also shows how to create a SendGrid API key, add the Emailify SendGrid footer, and verify the uploaded template in SendGrid’s Design Library.

**Things you'll need**

- A Figma file with an email design already created.
- A SendGrid account with an API key created.

**Steps**

1. Install Emailify from the Figma Community under the Plugins tab.
2. Open your Figma file, right-click, and run Plugins > Emailify.
3. Add the SendGrid footer from the Footer category so the unsubscribe link is pre-filled.
4. Click Export HTML, change the upload target from HTML to SendGrid, and enter your SendGrid API key.
5. In SendGrid, go to Settings > API Keys, create a key named Emailify with Full Access, and copy it.
6. Paste the API key into Emailify and click Upload to SendGrid.
7. Open SendGrid Design Library to view, edit, and preview the uploaded template; optionally download the zip file.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=cYYVO_3HT1U)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-send-grid-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-sendpulse.md"
description: "The video shows how to use the Emailify Figma plugin to export an HTML email from Figma into SendPulse. It covers adding the SendPulse footer, previewing the email, entering the SendPulse API ID and secret, and uploading the finished template into SendPulse templates."
---

# Export HTML emails from Figma to SendPulse

> The video shows how to use the Emailify Figma plugin to export an HTML email from Figma into SendPulse. It covers adding the SendPulse footer, previewing the email, entering the SendPulse API ID and secret, and uploading the finished template into SendPulse templates.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/lLH2aHdVSN4)

**What this video covers**

The video shows how to use the Emailify Figma plugin to export an HTML email from Figma into SendPulse. It covers adding the SendPulse footer, previewing the email, entering the SendPulse API ID and secret, and uploading the finished template into SendPulse templates.

**Things you'll need**

- A Figma file with an email design ready to upload
- An Emailify plugin installed or saved in Figma
- A SendPulse account with access to the API ID and secret

**Steps**

1. Open your Figma file and run the Emailify plugin from Resources or from Saved plugins.
2. Create or open your email design, then add the SendPulse item from the Footage tab to include the unsubscribe link footer.
3. Use the preview button to check the HTML email layout.
4. Click Export HTML, choose the SendPulse integration, and enter the SendPulse API ID and secret from your SendPulse account settings API tab.
5. Add a subject line for the upload.
6. Click Upload to SendPulse to generate the HTML, upload images, and send the template into your SendPulse templates.
7. Open the email templates page in SendPulse to confirm the uploaded template and use it for a campaign or further editing.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=lLH2aHdVSN4)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-send-pulse-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-sendx.md"
description: "This tutorial shows how to use the Emailify Figma plugin to design an HTML email, export it as a zip file, and import the resulting custom HTML template into SendX. It also shows how to apply the template to a SendX newsletter campaign and send a test email."
---

# Export HTML emails from Figma to SendX

> This tutorial shows how to use the Emailify Figma plugin to design an HTML email, export it as a zip file, and import the resulting custom HTML template into SendX. It also shows how to apply the template to a SendX newsletter campaign and send a test email.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/uVTTIoT4Lk4)

**What this video covers**

This tutorial shows how to use the Emailify Figma plugin to design an HTML email, export it as a zip file, and import the resulting custom HTML template into SendX. It also shows how to apply the template to a SendX newsletter campaign and send a test email.

**Things you'll need**

- A Figma file with the Emailify plugin available
- A SendX account

**Steps**

1. Open your Figma file, find Emailify in Resources, save or run the plugin, and click Add New Emailify Container.
2. Build the email design, then add the SendX footer from the Footer tab so the unsubscribe and viewing browser links are pre-populated.
3. Use Preview to check the email, then click Export HTML, choose the SendX platform integration, enter the subject line and preheader text, and click Export for SendX.
4. Download the zip file, unzip it, and locate the index.html file inside the folder named after your Figma frame.
5. In SendX, go to Settings > Templates, create a New Email Template, remove the default rows, set the content area width to 600 pixels, and drag in the HTML block.
6. Open the exported index.html in a browser, use View Page Source to copy the HTML, paste it into the SendX HTML block, and submit the template.
7. Create a Newsletter Campaign in SendX, apply the custom template, add the email subject line, and send a test before finishing the campaign.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=uVTTIoT4Lk4)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-sendx-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-stripo.md"
description: "This tutorial shows how to export HTML email templates from Figma with the Emailify Figma plugin and import them into Stripo. It covers generating the export, copying the HTML from the index.html file, and pasting it into Stripo’s My HTML template for further editing."
---

# Export HTML emails from Figma to Stripo

> This tutorial shows how to export HTML email templates from Figma with the Emailify Figma plugin and import them into Stripo. It covers generating the export, copying the HTML from the index.html file, and pasting it into Stripo’s My HTML template for further editing.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/98oeeXB7FNI)

**What this video covers**

This tutorial shows how to export HTML email templates from Figma with the Emailify Figma plugin and import them into Stripo. It covers generating the export, copying the HTML from the index.html file, and pasting it into Stripo’s My HTML template for further editing.

**Things you'll need**

- A Figma file with the Emailify plugin available
- A Stripo account

**Steps**

1. Open Figma, find Emailify in Resources under the Plugins tab, and run it from Saved plugins.
2. Create a new Emailify container and, when ready, click Export HTML and choose Stripo as the platform.
3. Add a subject line and preheader text if needed, then export for Stripo and download the zip file.
4. Unzip the file, open the index.html file, and view page source in the browser to copy all the HTML.
5. In Stripo, go to Email messages, choose Basic templates, and open My HTML.
6. Click the code icon, select the default code, and paste in the copied HTML.
7. Review the imported email in Stripo and make any small text, link, or image changes as needed.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=98oeeXB7FNI)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-stripo-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-sugarcrm-sugar-market.md"
description: "The video shows how to design a simple HTML email in the Emailify Figma plugin, export it as a SugarCRM-ready ZIP, and then import the generated index.html into Sugar Market using the custom code editor. It also demonstrates adding the SugarCRM footer, previewing the email, and setting the subject line and preheader text before export."
---

# Export HTML emails from Figma to SugarCRM (Sugar Market)

> The video shows how to design a simple HTML email in the Emailify Figma plugin, export it as a SugarCRM-ready ZIP, and then import the generated index.html into Sugar Market using the custom code editor. It also demonstrates adding the SugarCRM footer, previewing the email, and setting the subject line and preheader text before export.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/dudacdc97vQ)

**What this video covers**

The video shows how to design a simple HTML email in the Emailify Figma plugin, export it as a SugarCRM-ready ZIP, and then import the generated index.html into Sugar Market using the custom code editor. It also demonstrates adding the SugarCRM footer, previewing the email, and setting the subject line and preheader text before export.

**Things you'll need**

- Access to Figma with the Emailify Figma plugin
- Access to SugarCRM Sugar Market

**Steps**

1. Open your Figma file, run the Emailify plugin from Resources or Saved plugins, and add a new Emailify frame for your email design.
2. Add the SugarCRM footer from the footer tab under Platforms so the unsubscribe link and viewing browser link are pre-populated.
3. Preview the email in Emailify if needed, then click export HTML, choose SugarCRM, enter the subject line and preheader text, and export for SugarCRM.
4. Download the ZIP file, unzip it, and locate the index.html file inside the folder named after the email.
5. In Sugar Market, use Quick Create to create a new Email, fill in the campaign details, and continue to the design step.
6. Switch from the Themes tab to the Code tab, choose Blank, delete the default code, and drag and drop index.html into the editor.
7. Review the rendered email, optionally send a test, save the template, and continue through the normal SugarCRM email flow.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=dudacdc97vQ)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-sugarcrm-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-yotpo.md"
description: "This tutorial shows how to use the Emailify Figma plugin to design an HTML email, export it as a ZIP, and import the exported code into Yotpo as a custom HTML template. It also shows how to add the Yotpo footer requirements, preview the email, and reuse the saved template for campaigns."
---

# Export HTML emails from Figma to Yotpo

> This tutorial shows how to use the Emailify Figma plugin to design an HTML email, export it as a ZIP, and import the exported code into Yotpo as a custom HTML template. It also shows how to add the Yotpo footer requirements, preview the email, and reuse the saved template for campaigns.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/lRU0Wjw9vHQ)

**What this video covers**

This tutorial shows how to use the Emailify Figma plugin to design an HTML email, export it as a ZIP, and import the exported code into Yotpo as a custom HTML template. It also shows how to add the Yotpo footer requirements, preview the email, and reuse the saved template for campaigns.

**Things you'll need**

- A Figma file with the Emailify plugin available.
- Access to the Yotpo platform.

**Steps**

1. Open a Figma file, find Emailify in the Resources icon, and run or save the plugin from the Plugins tab.
2. Create a new template, click Add New Emailify Container, and build your email design in the Emailify frame.
3. In the Footer tab under Platforms, choose the Yotpo footer option so the required unsubscribe link, View in Browser link, and full address are added.
4. Use the Preview icon to check the rendered HTML on desktop and mobile, then click Export HTML and choose the Yotpo Platform Integration option.
5. Enter the subject line and preheader text, then click Export for Yotpo and download the ZIP file.
6. Unzip the file, open index.html, copy the page source, and paste it into Yotpo under Campaigns > Email Templates > My Templates > Start From Scratch > HTML Editor.
7. Save and close the template in Yotpo, then use it to create a campaign and add the subject line; only enter the preheader in one place to avoid duplication.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=lRU0Wjw9vHQ)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-yotpo-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-zapier-google-drive.md"
description: "This tutorial shows how to export HTML emails from the Emailify Figma plugin to Zapier, then automatically upload the exported zip file to a Google Drive folder. It walks through creating a Zapier webhook trigger, connecting it to Emailify, and finishing the workflow with a Google Drive Upload File action."
---

# Export HTML emails from Figma to Zapier (Google Drive)

> This tutorial shows how to export HTML emails from the Emailify Figma plugin to Zapier, then automatically upload the exported zip file to a Google Drive folder. It walks through creating a Zapier webhook trigger, connecting it to Emailify, and finishing the workflow with a Google Drive Upload File action.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/cI93RXk9MV0)

**What this video covers**

This tutorial shows how to export HTML emails from the Emailify Figma plugin to Zapier, then automatically upload the exported zip file to a Google Drive folder. It walks through creating a Zapier webhook trigger, connecting it to Emailify, and finishing the workflow with a Google Drive Upload File action.

**Things you'll need**

- A Figma file with the Emailify Figma plugin installed
- A Zapier account
- A connected Google Drive account

**Steps**

1. Open Figma, run the Emailify plugin from Plugins > Saved plugins, and use an Emailify-ready template or design to preview the email.
2. In Emailify, click Export HTML, change the export option from the default HTML email zip download to Webhooks > Zapier, and paste in a Zapier webhook URL.
3. In Zapier, create a new Zap, add Webhooks as the Trigger, choose Catch Hook, and copy the generated webhook URL.
4. Paste the webhook URL into Emailify, then click Upload to Zapier to send a test export and confirm Zapier receives the file and file name.
5. Add a Google Drive action in Zapier, connect Google Drive, choose Upload File, and select a folder such as Emailify template uploads.
6. Map the webhook File and File name fields to Google Drive, leave Convert to document set to false, and test the step to upload the zip file to the folder.
7. Publish the Zap and rename it if needed so future Emailify exports are automatically sent to the connected Google Drive folder.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=cI93RXk9MV0)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-zapier-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/export-html-emails-from-figma-to-zoho-campaigns.md"
description: "This tutorial shows how to export an HTML email template from Figma with the Emailify Figma plugin and import it into Zoho Campaigns. It also covers adding the Zoho Campaigns footer, downloading the ZIP export, and uploading the index.html file into a regular email campaign."
---

# Export HTML emails from Figma to Zoho Campaigns

> This tutorial shows how to export an HTML email template from Figma with the Emailify Figma plugin and import it into Zoho Campaigns. It also covers adding the Zoho Campaigns footer, downloading the ZIP export, and uploading the index.html file into a regular email campaign.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/UQ2va7H6RN0)

**What this video covers**

This tutorial shows how to export an HTML email template from Figma with the Emailify Figma plugin and import it into Zoho Campaigns. It also covers adding the Zoho Campaigns footer, downloading the ZIP export, and uploading the index.html file into a regular email campaign.

**Things you'll need**

- A Figma file with the Emailify Figma plugin available
- A Zoho Campaigns account

**Steps**

1. Open the Figma file, find Emailify in Resources under the Plugins tab, and run or save the plugin from Saved plugins.
2. Create a new Emailify container or use a template, then design the email and choose the Zoho Campaigns footer in the footer tab so the unsubscribe, view in browser, and company address tags are added.
3. Click Export HTML, choose HTML email, select Zoho Campaigns under platform integration, optionally add preheader text and subject line, then export for Zoho Campaigns and download the ZIP file.
4. Unzip the file, open the preview page if needed, and locate the named folder containing the index.html file.
5. In Zoho Campaigns, go to Campaigns, then Email Campaigns, create a new regular email campaign, name it, and save and proceed.
6. In Create content, choose Import Upload HTML, upload the index.html file from your computer, and click upload.
7. Review the imported email, optionally add a plain text version, and save the campaign.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=UQ2va7H6RN0)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-zoho-campaigns-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/how-to-export-html-emails-from-figma-to-sendinblue-using-emailify.md"
description: "The video shows how to use the Emailify Figma plugin to export an HTML email from Figma directly into the Sendinblue platform. It covers setting up the plugin, entering a Sendinblue API key and verified sender email, adding an optional subject line, and uploading the template to Sendinblue."
---

# How to export HTML emails from Figma to Sendinblue using Emailify

> The video shows how to use the Emailify Figma plugin to export an HTML email from Figma directly into the Sendinblue platform. It covers setting up the plugin, entering a Sendinblue API key and verified sender email, adding an optional subject line, and uploading the template to Sendinblue.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/R_86CGNsyH4)

**What this video covers**

The video shows how to use the Emailify Figma plugin to export an HTML email from Figma directly into the Sendinblue platform. It covers setting up the plugin, entering a Sendinblue API key and verified sender email, adding an optional subject line, and uploading the template to Sendinblue.

**Things you'll need**

- A Figma account with the Emailify plugin available
- A Sendinblue account with a verified sender email
- A Sendinblue API key

**Steps**

1. Open a new Figma file and find the Emailify plugin from the Resources icon, then run or save it as a Figma plugin.
2. Create a new blank email in Emailify and preview the design if needed.
3. Click Export HTML, then change the export destination to Sendinblue under Platform Integration.
4. Copy or generate a Sendinblue API key and paste it into the Sendinblue API key field in Figma.
5. Select a verified sender email from the Senders page in Sendinblue and paste it into the sender email field.
6. Optionally add a subject line, then click Upload to Sendinblue.
7. Open the Sendinblue marketing templates page to confirm the uploaded template appears with the sender, subject line, and HTML content.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=R_86CGNsyH4)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-sendinblue-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/how-to-export-html-emails-with-rtl-right-to-left-text-from-figma-using-emailify.md"
description: "This video shows how to use the Emailify Figma plugin to export HTML emails with RTL right-to-left text formatting. It covers enabling the RTL Text option, previewing the result, and downloading the generated HTML zip file."
---

# How to export HTML emails with RTL (right-to-left) text from Figma using Emailify

> This video shows how to use the Emailify Figma plugin to export HTML emails with RTL right-to-left text formatting. It covers enabling the RTL Text option, previewing the result, and downloading the generated HTML zip file.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/q0CDGHzx2zg)

**What this video covers**

This video shows how to use the Emailify Figma plugin to export HTML emails with RTL right-to-left text formatting. It covers enabling the RTL Text option, previewing the result, and downloading the generated HTML zip file.

**Things you'll need**

- Figma
- Emailify Figma plugin
- An email already designed in Figma

**Steps**

1. Install or run the Emailify Figma plugin from the Resources icon, or open it from Saved plugins.
2. Set any text layers that need RTL by going to the Figma icon, then Text, then Text Direction, and choosing Right to Left.
3. In the Emailify plugin, open Export HTML and turn on the RTL Text toggle.
4. Click Preview to confirm the email renders with the correct right-to-left text order.
5. Select the email you want to export and click Export to HTML.
6. Download the zip file, then open the exported HTML or preview file to view the email.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=q0CDGHzx2zg)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-with-rtl-right-to-left-text-from-figma-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/import-spreadsheets-to-tables-for-html-emails-in-figma.md"
description: "This tutorial shows how to use the Emailify Figma plugin to import spreadsheet data into a table component for HTML email designs. It covers importing from an Excel (XLSX) or CSV file, or from a public Google Sheet URL, then customizing the table and exporting the email to HTML."
---

# Import spreadsheets to tables for HTML emails in Figma

> This tutorial shows how to use the Emailify Figma plugin to import spreadsheet data into a table component for HTML email designs. It covers importing from an Excel (XLSX) or CSV file, or from a public Google Sheet URL, then customizing the table and exporting the email to HTML.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/CB3tRj0GtW4)

**What this video covers**

This tutorial shows how to use the Emailify Figma plugin to import spreadsheet data into a table component for HTML email designs. It covers importing from an Excel (XLSX) or CSV file, or from a public Google Sheet URL, then customizing the table and exporting the email to HTML.

**Things you'll need**

- A Figma file with the Emailify plugin installed
- A spreadsheet file in Excel (XLSX) or CSV format, or a public Google Sheet

**Steps**

1. Open Figma, go to Resources, search for Emailify in the Plugins tab, and install it.
2. Run Emailify from Plugins > Installed Figma Plugins, create a new email frame, and click Add new Emailify container.
3. Select the email frame or column, choose Add spreadsheet from Quick add element to selected layer, and import either a spreadsheet file or a public Google Sheet URL.
4. For a Google Sheet, set General Access to Anyone with the link and copy the share link before pasting it into the plugin.
5. Click Add to generate the table, including any image links from the spreadsheet, and open the table component page to adjust column widths, image sizing, vertical alignment, borders, or hidden columns.
6. Use Preview to view the HTML version in Figma, then click Export HTML, choose HTML, and download the zip file.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=CB3tRj0GtW4)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-import-spreadsheets-to-tables-for-html-emails-in-figma-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/localize-html-email-designs-with-text-formatting-in-figma.md"
description: "This tutorial shows how to localize HTML email designs in Figma using the Emailify plugin and Markdown formatting. It demonstrates exporting email content to Excel, editing translations and formatting per locale, then importing the localized content back into Figma and exporting the finished emails to HTML."
---

# Localize HTML email designs (with text formatting) in Figma

> This tutorial shows how to localize HTML email designs in Figma using the Emailify plugin and Markdown formatting. It demonstrates exporting email content to Excel, editing translations and formatting per locale, then importing the localized content back into Figma and exporting the finished emails to HTML.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/OngJvgE6Aeg)

**What this video covers**

This tutorial shows how to localize HTML email designs in Figma using the Emailify plugin and Markdown formatting. It demonstrates exporting email content to Excel, editing translations and formatting per locale, then importing the localized content back into Figma and exporting the finished emails to HTML.

**Things you'll need**

- Figma
- Emailify Figma plugin
- Microsoft Excel or another spreadsheet tool

**Steps**

1. Open the Emailify Figma plugin from Resources or Saved plugins.
2. Create or open an email design and add example formatting such as bold, italics, and links.
3. In Emailify, click Localize, choose the Excel export option, enter the locales you want, and enable Add Markdown.
4. Export the content as XLSX, then open the spreadsheet and edit each locale’s text, links, and Markdown formatting as needed.
5. Return to Emailify, open Localize again, enable Import Markdown Formatting, and drag in the edited Excel file.
6. Click Localize Selected Frames to generate translated email frames on a new Email Translations page.
7. Use Export HTML to export the localized emails and preview the generated HTML files in a browser.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=OngJvgE6Aeg)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-localize-html-email-designs-with-markdown-text-formatting-in-figma-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/send-yourself-tests-of-html-emails-from-figma-with-putsmail.md"
description: "The video shows how to export an HTML email from the Emailify Figma plugin and use PutsMail.com to send that unmodified HTML to your own email address for testing. It also shows how to review the message in an inbox like Gmail to check the rendered email before broader client testing."
---

# Send yourself tests of HTML emails from Figma with PutsMail

> The video shows how to export an HTML email from the Emailify Figma plugin and use PutsMail.com to send that unmodified HTML to your own email address for testing. It also shows how to review the message in an inbox like Gmail to check the rendered email before broader client testing.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/CxdlzgUaCMM)

**What this video covers**

The video shows how to export an HTML email from the Emailify Figma plugin and use PutsMail.com to send that unmodified HTML to your own email address for testing. It also shows how to review the message in an inbox like Gmail to check the rendered email before broader client testing.

**Things you'll need**

- A Figma file with an email already designed in Emailify
- A free PutsMail account
- An email inbox to receive the test message

**Steps**

1. Open your Figma file, run the Emailify plugin from Plugins > Saved plugins, and make sure your email design is ready.
2. Click export HTML, keep upload hosted images URL selected, and export to HTML.
3. Download the zip file, unzip it, and open the generated folder to find the index.html file.
4. Open index.html in a code editor and copy the full HTML to your clipboard.
5. Go to PutsMail.com, create a free account if needed, and click create a new test email.
6. Paste the HTML into the body, add a subject line, enter your email address, leave move my CSS inline unchecked, complete the I’m not a robot check, and click send email.
7. Open your inbox, find the test email from Litmus PutsMail, and inspect the rendered HTML email.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=CxdlzgUaCMM)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-send-yourself-tests-of-html-emails-from-figma-with-puts-mail-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/test-html-emails-in-dark-mode-with-exports-from-figma.md"
description: "This tutorial shows how to export an HTML email from Figma with Emailify and test how it renders in dark mode using Litmus.com. It demonstrates copying the exported index.html into Litmus, selecting email clients, and running previews to compare dark mode behavior across clients like Gmail, Apple Mail, and Outlook."
---

# Test HTML emails in dark mode with exports from Figma

> This tutorial shows how to export an HTML email from Figma with Emailify and test how it renders in dark mode using Litmus.com. It demonstrates copying the exported index.html into Litmus, selecting email clients, and running previews to compare dark mode behavior across clients like Gmail, Apple Mail, and Outlook.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/h5Gq9apZrxk)

**What this video covers**

This tutorial shows how to export an HTML email from Figma with Emailify and test how it renders in dark mode using Litmus.com. It demonstrates copying the exported index.html into Litmus, selecting email clients, and running previews to compare dark mode behavior across clients like Gmail, Apple Mail, and Outlook.

**Things you'll need**

- A Figma file with an email design set up in Emailify
- An exported HTML email from the Emailify Figma plugin
- A Litmus.com account

**Steps**

1. Open the Figma file, find Emailify from Resources, and save it to your Figma plugins list if needed.
2. Run the Emailify plugin from Saved plugins and prepare the email design in Figma.
3. Click export HTML, keep upload hosted image URLs enabled, and export the HTML.
4. Download the zip file, open the exported folder, and copy the contents of the index.html file in a code editor.
5. Go to Litmus.com, create a new test under the test tab, choose test, and use bring in your email.
6. Click view more ways to create an email, paste the copied HTML, add a subject line, and click done.
7. Use choose email clients to select dark mode previews such as Apple Mail, Outlook, Gmail, and iOS mail, then click run previews.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=h5Gq9apZrxk)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-test-html-emails-in-dark-mode-with-exports-from-figma-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/test-html-emails-in-different-clients-with-exports-from-figma.md"
description: "This video shows how to export an HTML email from the Emailify Figma plugin and test it in Litmus across different email clients. It demonstrates how to paste the exported HTML into a Litmus test and review real client previews such as Outlook, Gmail, and mobile apps."
---

# Test HTML emails in different clients with exports from Figma

> This video shows how to export an HTML email from the Emailify Figma plugin and test it in Litmus across different email clients. It demonstrates how to paste the exported HTML into a Litmus test and review real client previews such as Outlook, Gmail, and mobile apps.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/vZkuFfpkh1Q)

**What this video covers**

This video shows how to export an HTML email from the Emailify Figma plugin and test it in Litmus across different email clients. It demonstrates how to paste the exported HTML into a Litmus test and review real client previews such as Outlook, Gmail, and mobile apps.

**Things you'll need**

- Emailify should already be installed or saved as a Figma plugin.
- The email should already be designed in Figma using Emailify.
- A Litmus account or access to Litmus is needed to run the email tests.

**Steps**

1. Open Figma, find Emailify under Resources > Plugins, and save or run the plugin from Saved plugins.
2. Use Emailify to design the email, then click Export HTML and make sure Upload hosted image URLs is enabled.
3. Click Export to HTML, then download and save the zip file containing the HTML email.
4. Open the HTML file from the exported folder, select all of the code, and copy it to the clipboard.
5. In Litmus, click Create New, name the test, choose Tests, and click Bring in your email.
6. Choose More ways to create an email, paste the HTML into the code block, add a subject line, and click Done.
7. Review the Previews and QA tab, open different client previews, and rerun previews with other email client selections if needed.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=vZkuFfpkh1Q)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-test-html-emails-in-different-clients-with-exports-from-figma-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/test-html-emails-in-gmail-with-exports-from-figma.md"
description: "The video shows how to export an email design from Figma with Emailify and test the resulting HTML in Gmail using Litmus.com. It then narrows the Litmus preview set to Gmail clients on desktop and mobile, including web, Android, iOS, and dark mode views."
---

# Test HTML emails in Gmail with exports from Figma

> The video shows how to export an email design from Figma with Emailify and test the resulting HTML in Gmail using Litmus.com. It then narrows the Litmus preview set to Gmail clients on desktop and mobile, including web, Android, iOS, and dark mode views.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/Jlm1YBOioM0)

**What this video covers**

The video shows how to export an email design from Figma with Emailify and test the resulting HTML in Gmail using Litmus.com. It then narrows the Litmus preview set to Gmail clients on desktop and mobile, including web, Android, iOS, and dark mode views.

**Things you'll need**

- A Figma file with an email design ready to export.
- An Emailify Figma plugin setup.
- A Litmus.com account or access to Litmus.com.

**Steps**

1. Open your Figma file, find Emailify under Resources > Plugins, and run or save the plugin from Saved plugins.
2. With your email design ready, click Export HTML in Emailify, keep upload hosted images selected, and export the HTML.
3. Download the JavaScript file, open the exported folder, and copy the HTML from the generated email file.
4. In Litmus.com, go to the test tab, create a new test, choose test, and use bring in your email to paste the HTML and add a subject line.
5. Click done to upload the HTML, then open choose email clients and clear the default client selections.
6. Select the Gmail clients you want to test, including Gmail app, Gmail on Android, Gmail on iOS, and Gmail in web browsers like Chrome, Edge, and Firefox.
7. Click run previews and review the rendered Gmail previews for desktop and mobile, including light and dark mode.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=Jlm1YBOioM0)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-test-html-emails-in-gmail-with-exports-from-figma-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/test-html-emails-in-outlook-with-exports-from-figma.md"
description: "This tutorial shows how to export an HTML email from Figma with the Emailify plugin and test it in different versions of Microsoft Outlook using Litmus.com. It covers exporting the HTML, uploading it into Litmus, selecting Outlook clients, and running previews to check how the email renders."
---

# Test HTML emails in Outlook with exports from Figma

> This tutorial shows how to export an HTML email from Figma with the Emailify plugin and test it in different versions of Microsoft Outlook using Litmus.com. It covers exporting the HTML, uploading it into Litmus, selecting Outlook clients, and running previews to check how the email renders.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/5MJzh5rbfdY)

**What this video covers**

This tutorial shows how to export an HTML email from Figma with the Emailify plugin and test it in different versions of Microsoft Outlook using Litmus.com. It covers exporting the HTML, uploading it into Litmus, selecting Outlook clients, and running previews to check how the email renders.

**Things you'll need**

- Figma with the Emailify plugin available
- An exported HTML email from Emailify
- A Litmus.com account

**Steps**

1. Open your Figma file, find Emailify in the Resources icon under the Plugins tab, and save or run the plugin from Saved plugins.
2. Assume the email design is ready, then click export HTML in Emailify and make sure upload host image URLs is selected before exporting.
3. Download the zip file, unzip it, and open the HTML email file in a code editor so you can copy the HTML.
4. In Litmus.com, go to the test tab, click Create new, choose Test, and click Bring in your email.
5. Use View more ways to create an email, paste in the HTML, add a subject line, and click Done to upload it.
6. Use Choose email clients to select the Outlook versions you want to test, then click Run previews.
7. Review the rendered Outlook previews, including desktop, web, mobile, and dark mode results.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=5MJzh5rbfdY)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-test-html-emails-in-outlook-with-exports-from-figma-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/test-html-emails-on-mobile-with-exports-from-figma.md"
description: "The video shows how to export an HTML email from Figma with the Emailify Figma plugin and then test that HTML in Litmus.com on mobile devices and mobile email clients. It walks through uploading the exported code, choosing mobile previews, and checking how the email renders on iOS and Android clients like Apple Mail, Outlook iOS, and Gmail for Android."
---

# Test HTML emails on mobile with exports from Figma

> The video shows how to export an HTML email from Figma with the Emailify Figma plugin and then test that HTML in Litmus.com on mobile devices and mobile email clients. It walks through uploading the exported code, choosing mobile previews, and checking how the email renders on iOS and Android clients like Apple Mail, Outlook iOS, and Gmail for Android.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/yz2KQPFBzA0)

**What this video covers**

The video shows how to export an HTML email from Figma with the Emailify Figma plugin and then test that HTML in Litmus.com on mobile devices and mobile email clients. It walks through uploading the exported code, choosing mobile previews, and checking how the email renders on iOS and Android clients like Apple Mail, Outlook iOS, and Gmail for Android.

**Things you'll need**

- Emailify Figma plugin
- A Litmus.com account

**Steps**

1. Open your Figma file, find Emailify in Resources or Saved plugins, and run the Emailify Figma plugin.
2. Click export HTML, keep upload hosted image URLs selected, and export the design to HTML.
3. Download the ZIP file, unzip it, and open the index.html file in a code editor to copy the HTML.
4. Go to Litmus.com, create a new email under the test tab, choose test, and bring in your email by pasting the raw HTML.
5. Open choose email clients, clear desktop and web-based clients, and expand the mobile and tablet section.
6. Select the mobile devices and clients you want, such as iOS 16 on iPhone 14 and iPhone 14 Pro Max, plus Gmail app on Android 11.
7. Click run previews, then open individual previews like Outlook iOS, Apple Mail, or Gmail for Android to inspect the rendered email.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=yz2KQPFBzA0)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-test-html-emails-on-mobile-with-exports-from-figma-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/translate-email-designs-in-figma-with-chatgpt.md"
description: "This tutorial shows how to use the Emailify Figma plugin to automatically translate an email design into multiple languages with either the ChatGPT API or a manual ChatGPT prompt. It also shows how to import the translated frames back into Figma and export the localized emails as HTML."
---

# Translate email designs in Figma with ChatGPT

> This tutorial shows how to use the Emailify Figma plugin to automatically translate an email design into multiple languages with either the ChatGPT API or a manual ChatGPT prompt. It also shows how to import the translated frames back into Figma and export the localized emails as HTML.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/6CqRT3FTALA)

**What this video covers**

This tutorial shows how to use the Emailify Figma plugin to automatically translate an email design into multiple languages with either the ChatGPT API or a manual ChatGPT prompt. It also shows how to import the translated frames back into Figma and export the localized emails as HTML.

**Things you'll need**

- An existing email design already set up in Emailify
- For the ChatGPT API method, an OpenAI account with billing and an API key

**Steps**

1. Open a Figma file, run the Emailify plugin, and click Localize in the header.
2. Choose either ChatGPT API or ChatGPT prompt under the AI translation options.
3. For ChatGPT API, enter an OpenAI API key, choose a model, select the target languages, and click Translate and Import.
4. For ChatGPT prompt, click Generate prompt, then Copy prompt to clipboard, paste it into chatgpt.com, and copy the ChatGPT response.
5. Paste the ChatGPT reply into the Emailify field labeled paste the ChatGPT reply below, then click Translate Figma frame.
6. Review the newly created translated frames in Figma, such as French, Korean, and German versions.
7. If needed, preview the result as HTML and use Export HTML to generate the HTML, images, code, and ZIP file.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=6CqRT3FTALA)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-translate-email-designs-in-figma-with-chatgpt-automatically-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/translate-email-designs-in-figma-with-the-crowdin-api.md"
description: "This tutorial shows how to localize HTML email designs in Figma with the Emailify plugin by connecting it to Crowdin API, uploading email text strings, translating them in Crowdin, and importing the translated versions back into Figma. It also shows how to re-upload updated source text and export the finished translated emails to HTML."
---

# Translate email designs in Figma with the Crowdin API

> This tutorial shows how to localize HTML email designs in Figma with the Emailify plugin by connecting it to Crowdin API, uploading email text strings, translating them in Crowdin, and importing the translated versions back into Figma. It also shows how to re-upload updated source text and export the finished translated emails to HTML.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/qcQglNYqtJc)

**What this video covers**

This tutorial shows how to localize HTML email designs in Figma with the Emailify plugin by connecting it to Crowdin API, uploading email text strings, translating them in Crowdin, and importing the translated versions back into Figma. It also shows how to re-upload updated source text and export the finished translated emails to HTML.

**Things you'll need**

- A Figma file with an Emailify-ready email design
- A Crowdin account
- A Crowdin personal access token

**Steps**

1. Open the Emailify Figma plugin from Resources or Saved plugins and load an existing Emailify-ready email design.
2. Create a private Crowdin project with String-based project enabled, then choose the source language and target languages.
3. In Emailify, open Localize, switch from Excel to Crowdin API, and paste a Crowdin personal access token with the required permissions.
4. Select the email frame and click Upload to send the text strings and screenshot from Figma to Crowdin.
5. Translate the uploaded strings in Crowdin and save the changes.
6. Back in Emailify, click Import Translations on the original page to create translated frames in Figma.
7. If the source copy changes in Figma, upload again to update the Crowdin source strings, then export the translated emails with Export HTML.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=qcQglNYqtJc)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-translate-email-designs-in-figma-with-the-crowdin-api-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/translate-email-designs-in-figma-with-the-lokalise-api.md"
description: "The video shows how to translate an Emailify email design in Figma by connecting the Emailify plugin to a Lokalise project through the Lokalise API. It demonstrates uploading the design from Figma, entering translations in Lokalise, and importing the translated versions back into Figma as separate language frames."
---

# Translate email designs in Figma with the Lokalise API

> The video shows how to translate an Emailify email design in Figma by connecting the Emailify plugin to a Lokalise project through the Lokalise API. It demonstrates uploading the design from Figma, entering translations in Lokalise, and importing the translated versions back into Figma as separate language frames.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/s6-pYRm_B1c)

**What this video covers**

The video shows how to translate an Emailify email design in Figma by connecting the Emailify plugin to a Lokalise project through the Lokalise API. It demonstrates uploading the design from Figma, entering translations in Lokalise, and importing the translated versions back into Figma as separate language frames.

**Things you'll need**

- An Emailify Figma plugin installation
- A Lokalise account
- A Lokalise project with target languages set up

**Steps**

1. Open a new Figma file, find the Emailify plugin in Resources, and run it or save it for later use.
2. Create an Emailify container for the email design, then click the Localize button in the Emailify plugin header.
3. Choose the Lokalise API option, create a Lokalise project, and copy the Project ID from the project URL.
4. Generate a Lokalise API Token with read and write access, then paste the Project ID and API Token into the Emailify Lokalise fields.
5. Select the email frame in Figma and click Upload to send the text content and screenshots to Lokalise.
6. Translate the text in Lokalise by editing the language fields, then return to Emailify and click Import Translations.
7. Review the newly created translated page in Figma and use Preview or Export HTML to export the localized emails.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=s6-pYRm_B1c)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-translate-email-designs-in-figma-with-the-lokalise-api-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/translate-html-email-designs-with-localization-in-figma.md"
description: "The video shows how to localize an Emailify email design in Figma by exporting text to an Excel spreadsheet, translating the locale columns, and importing the file back into Figma. It also shows how the localized frames can then be exported as HTML emails, including platform options like HTML, Klaviyo, and MailChimp."
---

# Translate HTML email designs with localization in Figma

> The video shows how to localize an Emailify email design in Figma by exporting text to an Excel spreadsheet, translating the locale columns, and importing the file back into Figma. It also shows how the localized frames can then be exported as HTML emails, including platform options like HTML, Klaviyo, and MailChimp.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/pZUOi6C7C5E)

**What this video covers**

The video shows how to localize an Emailify email design in Figma by exporting text to an Excel spreadsheet, translating the locale columns, and importing the file back into Figma. It also shows how the localized frames can then be exported as HTML emails, including platform options like HTML, Klaviyo, and MailChimp.

**Things you'll need**

- An email design already created in Emailify
- A spreadsheet editor such as Excel or Google Sheets

**Steps**

1. Install Emailify from the Figma Community and open it from Plugins in your Figma file.
2. Select the email frame, click Localize, choose the locales you want, and export the text content to an Excel spreadsheet.
3. Translate the locale columns in the spreadsheet, leaving any text you want unchanged blank so it falls back to the original Figma text.
4. Drag and drop the updated spreadsheet back into the Localize section and click Localize Selected Frames to create translated copies on a new page.
5. Review the localized frames in Figma and, if needed, update the original component styles so the changes carry through to the translated instances.
6. Use Export HTML, choose the emails to export, select HTML or another platform option, and download the .zip file containing the translated emails and images.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=pZUOi6C7C5E)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-translate-html-email-designs-with-localization-in-figma-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/upload-preview-links-for-html-emails-from-figma-to-netlify.md"
description: "This video shows how to use the Emailify Figma plugin to export an HTML email to Netlify and generate a shareable preview link. It also covers creating a Netlify personal access token, changing the generated site name, and opening or downloading the uploaded preview files."
---

# Upload preview links for HTML emails from Figma to Netlify

> This video shows how to use the Emailify Figma plugin to export an HTML email to Netlify and generate a shareable preview link. It also covers creating a Netlify personal access token, changing the generated site name, and opening or downloading the uploaded preview files.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/YZAILKYkyUM)

**What this video covers**

This video shows how to use the Emailify Figma plugin to export an HTML email to Netlify and generate a shareable preview link. It also covers creating a Netlify personal access token, changing the generated site name, and opening or downloading the uploaded preview files.

**Things you'll need**

- A Figma file with an email already designed using Emailify components.
- A Netlify account, or a way to create one for free.

**Steps**

1. Open the Resources icon in Figma, search for Emailify under the Plugins tab, and run or save the plugin.
2. In Emailify, click Export HTML and choose Netlify under the Upload Preview Link section.
3. In Netlify, create a Personal access token from the applications page, then copy the token.
4. Paste the token into the Emailify field with the key icon to connect to Netlify and generate a new site.
5. If needed, change the Netlify site name, then refresh Emailify to load the updated site name and domain.
6. Fill in the email details and click Upload to Netlify to generate the HTML, upload the images, and publish the preview.
7. Open the Netlify Preview URL or download the zip file if you want a copy of the uploaded files.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=YZAILKYkyUM)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-upload-preview-links-for-html-emails-from-figma-to-netlify-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/uploading-your-emails-to-sendwithus.md"
description: "This tutorial shows how to use the Emailify Figma plugin to design an HTML email in Figma and export it directly to Sendwithus. It also explains how to set the correct unsubscribe footer, generate a Sendwithus API key, and upload the finished template with subject line and preheader text."
---

# Uploading your emails to Sendwithus

> This tutorial shows how to use the Emailify Figma plugin to design an HTML email in Figma and export it directly to Sendwithus. It also explains how to set the correct unsubscribe footer, generate a Sendwithus API key, and upload the finished template with subject line and preheader text.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/b99i9ZaXL6E)

**What this video covers**

This tutorial shows how to use the Emailify Figma plugin to design an HTML email in Figma and export it directly to Sendwithus. It also explains how to set the correct unsubscribe footer, generate a Sendwithus API key, and upload the finished template with subject line and preheader text.

**Steps**

1. Open Figma, find Emailify under Resources > Plugins, and run it from Saved Plugins.
2. Create a new Emailify container for your email template and design the HTML email.
3. In the Footer Tab, choose the email service provider you use, such as SendGrid, so the correct unsubscribe tag is inserted.
4. Preview the HTML in the plugin to check the desktop and mobile versions.
5. Click Export HTML, choose Sendwithus under the Platforms group, and create a Sendwithus API key in your Sendwithus dashboard if needed.
6. Paste the API key into Emailify, optionally add a subject line and preheader text, then click Upload Export.
7. Open the Templates page in Sendwithus to confirm the uploaded template and verify the content, unsubscribe link, images, subject line, and preheader text.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=b99i9ZaXL6E)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-html-emails-from-figma-to-sendwithus-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)
- [Learn how Emailify turns Figma designs into production-ready HTML](/emailify/design/fundamentals)
- [Explore the Emailify Figma plugin](https://www.hypermatic.com/emailify/)

---

---
url: "/emailify/tutorials/use-500-free-html-email-components-in-your-figma-designs.md"
description: "This tutorial shows how to open the Emailify Figma plugin, add a new Emailify container, and use the online component library to copy and paste premium email components into a Figma email design. It also shows that edits made in Figma carry through to the exported HTML, and that links can be added through the settings panel before previewing the result."
---

# Use 500+ free HTML email components in your Figma designs

> This tutorial shows how to open the Emailify Figma plugin, add a new Emailify container, and use the online component library to copy and paste premium email components into a Figma email design. It also shows that edits made in Figma carry through to the exported HTML, and that links can be added through the settings panel before previewing the result.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/zMUQ3tE76Vo)

**What this video covers**

This tutorial shows how to open the Emailify Figma plugin, add a new Emailify container, and use the online component library to copy and paste premium email components into a Figma email design. It also shows that edits made in Figma carry through to the exported HTML, and that links can be added through the settings panel before previewing the result.

**Things you'll need**

- Figma
- Emailify Figma plugin

**Steps**

1. Open your Figma file, search for Emailify from the actions icon, and run it from Saved Plugins.
2. Create a new email frame by entering a name and clicking Add New Emailify Container.
3. Browse the starter tabs or click the component icon to open the View Online Component Library.
4. Use the component library at emailify.hypermatic.com to filter and find a component, then click Copy Figma Component.
5. Paste the copied component into your Emailify frame with Command V or Control V.
6. Edit the layout, content, colors, and images in Figma; use the settings panel to add links to buttons if needed.
7. Click Preview to check the layout and confirm the design is ready for HTML export.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=zMUQ3tE76Vo)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-use-500-free-html-email-components-in-your-figma-designs-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/emailify/tutorials/use-free-figma-email-templates-to-design-html-emails.md"
description: "This tutorial shows how to use the Emailify Figma plugin to start with free included email templates, customize them in Figma, and export the finished design as production-ready HTML. It also demonstrates how to mix and match components from different templates and preview the result before downloading."
---

# Use free Figma email templates to design HTML emails

> This tutorial shows how to use the Emailify Figma plugin to start with free included email templates, customize them in Figma, and export the finished design as production-ready HTML. It also demonstrates how to mix and match components from different templates and preview the result before downloading.

[← Back to Emailify Video Tutorials](/emailify/tutorials)

[Embedded media](https://www.youtube.com/embed/lLCTEAAoCWY
)

**What this video covers**

This tutorial shows how to use the Emailify Figma plugin to start with free included email templates, customize them in Figma, and export the finished design as production-ready HTML. It also demonstrates how to mix and match components from different templates and preview the result before downloading.

**Things you'll need**

- A Figma file
- The Emailify Figma plugin

**Steps**

1. Open Figma, use the Resources icon to search for Emailify, and run or save the plugin for later.
2. In the plugin, add a new blank Emailify frame, or click the plus icon and browse Emailify Figma templates to start from a free template.
3. Open a template from the Figma Community page with Open in Figma, which duplicates it into your drafts.
4. Edit the template in Figma by changing text, images, colors, fonts, and by moving or copying rows, columns, buttons, and other components into a new Emailify frame.
5. Use Preview to check the real HTML layout and, if needed, open layer settings to adjust options like font sizes, padding, and mobile or desktop visibility.
6. When the design is ready, click Export HTML, choose the emails and any subject line or preview text, then export to HTML or send to a platform such as Klaviyo or MailChimp if configured.
7. Download the zip file, open the exported folders, and use the index.html and previews file to review the finished email in a browser.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=lLCTEAAoCWY)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-use-free-figma-email-templates-to-design-html-emails-using-emailify)
- [Browse Emailify tutorial docs](https://docs.hypermatic.com/emailify/tutorials)

---

---
url: "/faq.md"
description: "Find the right Hypermatic help for purchases, licenses, Figma plugins, troubleshooting, security reviews, and private account questions."
---

# Hypermatic support and FAQs

> Find the right Hypermatic help for purchases, licenses, Figma plugins, troubleshooting, security reviews, and private account questions.

Use this page to find support information that applies across all Hypermatic Figma plugins.

Choose a topic below for self-serve guidance. For a private purchase, subscription, refund, license key, billing email, or file-specific plugin issue, email [adam@hypermatic.com](mailto:adam@hypermatic.com).

## Billing, pricing, and purchases

  - [Pricing and PDF quotes](/faq/pricing.md): Current pricing, seat examples, checkout guidance, and PDF quote links.
  - [Billing and cancellations](/faq/billing.md): Manage subscriptions, update payment details, cancel plans, and understand VAT.
  - [Receipts and PDF invoices](/faq/receipts.md): Find Gumroad receipts, generate PDF invoices, and get help with missing receipts.
  - [Refund policy](/faq/refunds.md): Understand the initial purchase refund policy and the renewal review process.
  - [Procurement and vendor forms](/faq/procurement.md): Information for purchase orders, vendor setup, quote approvals, and procurement reviews.

## Licenses, seats, and trials

  - [How licenses work](/faq/licenses.md): Learn how Hypermatic licenses are delivered, activated, and used with Figma plugins.
  - [Managing license seats](/faq/seats.md): Understand seat counts, team access, license-user changes, and multi-seat plans.
  - [Free Pro trials](/faq/trials.md): How free Pro trial runs work and what to do when a trial has already been used.

## Setup and troubleshooting

  - [Install, run, and uninstall plugins](/figma/install-run-uninstall.md): Basic Figma plugin installation, launch, update, and uninstall steps.
  - [Figma plugin basics](/figma/plugin-basics.md): General plugin behavior, Figma account boundaries, file access, and common concepts.
  - [Plugin tutorials and walkthroughs](/figma/plugin-basics#find-plugin-tutorials-and-walkthroughs): Start from the right plugin tutorials page and find guided workflow examples faster.
  - [Common issues](/troubleshooting/common-issues.md): Quick fixes for activation, browser, download, Figma, and plugin workflow issues.
  - [Network, VPN, and firewall](/troubleshooting/network-vpn-firewall.md): Help for company networks, blocked downloads, proxy settings, and firewall allowlists.

## Security and account help

  - [Contact and account help](/faq/contact-and-account-help.md): Where to go for receipt recovery, Gumroad account issues, license access, and private support.
  - [Security overview](/security.md): Start here for plugin-specific security pages and general security review links.
  - [Privacy and data access](/security/privacy-and-data-access.md): How Hypermatic handles support logs, plugin data boundaries, and privacy or deletion questions.
  - [Vendor review](/security/vendor-review.md): Company, product, security, privacy, and procurement information for review teams.

## Get private account help

Email [adam@hypermatic.com](mailto:adam@hypermatic.com) for private purchase, subscription, refund, license-key, billing-email, or plugin-file questions.

For Gumroad checkout, receipt-account, or payment-account issues, contact [support@gumroad.com](mailto:support@gumroad.com).

---

---
url: "/faq/billing.md"
description: "Cancel a subscription, update payment details, change paid seats, troubleshoot checkout, and generate Gumroad invoices."
---

# Manage Hypermatic billing and subscriptions

> Cancel a subscription, update payment details, change paid seats, troubleshoot checkout, and generate Gumroad invoices.

Hypermatic Pro subscriptions are sold through Gumroad. Use the **Manage membership** or subscription settings link in a Gumroad receipt to manage the subscription.

| What you need to do | Where to do it |
| --- | --- |
| Cancel, update a card, or change paid seats | The management link in your Gumroad receipt |
| Find a missing purchase | [Gumroad charge lookup](https://app.gumroad.com/charge) |
| Manage which Figma users occupy seats | [Hypermatic License Manager](https://license.hypermatic.com/) |
| Get private Hypermatic account help | [adam@hypermatic.com](mailto:adam@hypermatic.com) |
| Resolve a Gumroad account or payment-platform issue | [support@gumroad.com](mailto:support@gumroad.com) |

## How do I see my subscription information?

Open a Gumroad receipt for the Hypermatic product, then use **Manage membership** or the subscription settings link. That page shows the subscription status, billing cycle, seat count, renewal timing, and payment-management options.

If you do not have the receipt, try [Gumroad charge lookup](https://app.gumroad.com/charge) or see [Contact and account help](/faq/contact-and-account-help).

## Cancel a subscription

1. Open the Gumroad receipt for the Hypermatic product.
2. Select **Manage membership** or the subscription settings link.
3. Select **Cancel membership**.
4. Keep the confirmation email for your records.

Cancellation does not always disable the license immediately. Access may remain active until the paid-through date. For account-specific status, email [adam@hypermatic.com](mailto:adam@hypermatic.com).

## Update payment details

Open a Gumroad receipt, click Manage membership or subscription settings, then choose the option to use a different card or update membership payment details.

If the payment update fails, try turning off your VPN, changing Wi-Fi network, checking that the ZIP code and billing address match the card, or using another card.

## Fix a declined card or blocked checkout

Try these steps:

1. Turn off any VPN and retry checkout.
2. Switch to another Wi-Fi or mobile hotspot.
3. Check that the ZIP code and billing area match your credit card.
4. Try a different card.
5. Contact [support@gumroad.com](mailto:support@gumroad.com) if Gumroad needs to review the checkout.

Gumroad handles the payment processing, so card-block or payment-platform issues often need Gumroad support.

## Change the number of paid seats

Open a Gumroad receipt, click Manage membership or subscription settings, then use the plus or minus buttons under Seats to update the total number of seats.

Use the [Hypermatic License Manager](https://license.hypermatic.com/) if you only need to change which Figma users are linked to the existing seats.

## What happens when I add seats?

When you add seats, Gumroad normally charges a prorated amount immediately. This aligns the new seats with the subscription's current renewal date.

For example, if you add extra yearly seats partway through the year, the immediate charge reflects the remaining portion of the current billing cycle.

## What happens when I remove seats?

Removing seats usually updates the subscription price at the end of the current billing cycle. If you also need to free a seat for another user, remove the old user in the [Hypermatic License Manager](https://license.hypermatic.com/).

## Generate an invoice or VAT invoice

Open the Gumroad receipt and click Generate invoice. You can enter invoice details and download a PDF invoice.

If you need to add a VAT ID, use the invoice flow from the Gumroad receipt. If you entered a valid VAT ID during checkout, VAT should not be charged during checkout.

## Get billing help

For general billing questions, the support chat can explain the workflow, link to Gumroad charge lookup, link to the quote generator, and explain how seats and pricing work.

Private billing changes need Gumroad or email support. Use those channels for purchase lookups, subscription checks, cancellations, refunds, card updates, receipt email changes, or license-key changes.

---

---
url: "/faq/contact-and-account-help.md"
description: "Use chat, email, Gumroad support, charge lookup, or the license manager for the right kind of Hypermatic support request."
---

# Choose the right Hypermatic support channel

> Use chat, email, Gumroad support, charge lookup, or the license manager for the right kind of Hypermatic support request.

Choose a support channel based on whether your question is general, private, or controlled by Gumroad.

| Request | Best channel |
| --- | --- |
| General product, pricing, licensing, security, or troubleshooting question | [Hypermatic support chat](https://www.hypermatic.com/contact/#support) |
| Private purchase, subscription, refund, license, or file-specific question | [adam@hypermatic.com](mailto:adam@hypermatic.com) |
| Gumroad checkout, receipt-account, or payment-platform issue | [support@gumroad.com](mailto:support@gumroad.com) |
| Missing purchase or receipt | [Gumroad charge lookup](https://app.gumroad.com/charge) |
| Users linked to a license key | [Hypermatic License Manager](https://license.hypermatic.com/) |
| Pre-purchase approval document | [PDF Quote Generator](https://quote.hypermatic.com/) |

## Where do I log in or manage my account?

There is not one general Hypermatic customer login for plugin purchases, receipts, and license help.

Use the path that matches what you are trying to recover:

- Receipt or purchase lookup: search for your Gumroad receipt, then try [https://app.gumroad.com/charge](https://app.gumroad.com/charge)
- License seat management: use the [Hypermatic License Manager](https://license.hypermatic.com/) with your license key
- Receipt email address or Gumroad account issue: contact [support@gumroad.com](mailto:support@gumroad.com)
- Hypermatic account-specific help: email [adam@hypermatic.com](mailto:adam@hypermatic.com) with the product name and likely purchase email

If you are not sure which email was used at checkout, start with Gumroad charge lookup or email Adam privately so the request can be checked without posting private details in chat.

For billing actions such as subscription status, seat-count changes, payment updates, or cancellations, see [Manage Hypermatic billing and subscriptions](/faq/billing).

## Use the support chat for general questions

Use the [Hypermatic support chat](https://www.hypermatic.com/contact/#support) for public, general support questions from the Hypermatic docs, including:

- Pricing and seat calculations
- Direct Gumroad checkout links
- PDF quote generator links
- Free Pro trial runs
- General license and seat concepts
- Receipts and invoice workflow
- Cancellation workflow
- Security and privacy docs
- Figma plugin installation basics
- Common troubleshooting steps

## Email Adam for private account help

Email [adam@hypermatic.com](mailto:adam@hypermatic.com) when you need account-specific help, such as:

- A refund request
- A license key that is not working
- Help matching a purchase to an email address
- A plugin bug that needs a file or screenshot reviewed
- A subscription status question that needs private account verification
- A pricing or quote question that does not match the self-serve quote generator

## Include useful diagnostic details

Include enough context to investigate quickly:

- Product name
- Purchase email address, if relevant
- License key only if it is necessary and you are emailing privately
- Screenshot or short video for plugin issues
- Exported file or ZIP if the issue involves exported output
- Figma page/frame name if a plugin issue happens in a specific location
- The exact error message, if one appears

Do not send card numbers, passwords, or private credentials.

## Contact Gumroad for platform-account issues

Contact [support@gumroad.com](mailto:support@gumroad.com) for Gumroad account or checkout-platform issues, such as:

- Card checkout review or payment-platform blocking
- Changing the email address attached to Gumroad receipts
- Gumroad receipt-account access
- Problems with Gumroad's charge lookup page

If you need Hypermatic-specific refund, license, or plugin help, email Adam.

---

---
url: "/faq/licenses.md"
description: "Find your Hypermatic license key, activate Pro, understand seats, and manage the Figma users linked to a license."
---

# Understand and activate Hypermatic Pro licenses

> Find your Hypermatic license key, activate Pro, understand seats, and manage the Figma users linked to a license.

Hypermatic Pro licenses unlock paid features in Hypermatic Figma plugins. Gumroad sends the license key to the email address used at checkout.

The license model has three parts:

- **License key:** unlocks a specific plugin or the Pro Bundle.
- **Paid seat count:** controls how many Figma users may use the key.
- **Linked Figma users:** managed through the [Hypermatic License Manager](https://license.hypermatic.com/).

## What is a license key?

A license key is the code that unlocks Pro access for a Hypermatic plugin or the Pro Bundle. You receive the key in your Gumroad receipt after purchase.

Use the license key itself when activating a plugin. Do not use the order ID, receipt number, email address, or invoice number as the license key.

## What is a seat?

A seat is one paid user on a license. If a license has 7 seats, up to 7 Figma users can be linked to that key.

The license seat count controls how many Figma users can use the Pro features. It does not create separate Figma accounts and it does not change your Figma team membership.

## Activate Pro in a plugin

1. Purchase the Pro license from the Hypermatic product page or Gumroad checkout.
2. Open the Gumroad receipt and copy the license key.
3. Run the Figma plugin.
4. Click the upgrade or unlock option in the plugin.
5. Paste the license key and unlock Pro access.

If the plugin says the key is invalid, make sure you copied the license key itself and not a receipt number or order ID.

## Manage linked Figma users

Use the [Hypermatic License Manager](https://license.hypermatic.com/) to view and manage which Figma users are linked to a license key.

The license manager is useful when someone leaves your team, a contractor finishes a project, or you need to move a seat from one Figma user to another.

## Reassign a seat

Open the [Hypermatic License Manager](https://license.hypermatic.com/), enter your license key, remove the old Figma user from the license, then share the same key with the new user.

This is the usual workflow when a team member changes, a freelancer finishes a project, or someone new needs to start using the plugin.

## Can multiple people share one seat?

No. One seat is intended for one Figma user. If multiple people need to use Pro features, buy enough seats for those Figma users.

## Can I use one license on multiple computers?

A license is tied to the Figma user using the plugin, not to a specific computer. If the same Figma user is signed in on another computer, the seat is still for that same Figma user.

## Change the paid seat count

You can update seats from the Manage membership link in your Gumroad receipt. You can also use the [PDF Quote Generator](https://quote.hypermatic.com/) to generate a quote for the exact product and seat count before purchase.

See [Hypermatic pricing and PDF quotes](/faq/pricing) for current prices, seat calculations, checkout links, and quote examples.

## Find a missing license key

License key lookups are private account support requests, so they need to be handled by email. The support chat can explain where license keys are usually found; email Adam when the request needs a purchase lookup, license-key retrieval, key change, or Gumroad account check.

If you need account-specific license help, email [adam@hypermatic.com](mailto:adam@hypermatic.com) with the product name and the purchase email address. Do not paste private license keys into public chat tools.

---

---
url: "/faq/plans.md"
description: "Compare Free-version access, 10 free Pro trial runs, paid plugin licenses, and the Hypermatic Pro Bundle."
---

# Compare Hypermatic Free, Pro, and Bundle access

> Compare Free-version access, 10 free Pro trial runs, paid plugin licenses, and the Hypermatic Pro Bundle.

Hypermatic plugins can be installed and tested before purchase. Each plugin includes 10 free Pro trial runs, then continues with its Free-version access unless you activate a paid license.

| Access | What it provides |
| --- | --- |
| Free Pro trial runs | 10 uses of the plugin's Pro workflow without a card |
| Free version | Ongoing access to features that are not locked behind Pro |
| Individual Pro license | Paid features for one specific plugin |
| Pro Bundle | Paid access to every plugin included in the bundle |

## Free-version access

Hypermatic plugins continue to offer Free-version access, but there is not a separate always-free Pro plan.

The usual path is:

1. Install the plugin from Figma Community.
2. Use the included 10 free Pro trial runs to test the paid workflow.
3. Keep using the plugin's Free version, or buy Pro if you need the paid features.

See [Hypermatic free Pro trial runs](/faq/trials) for the exact trial details.

## What is included in the Free version?

The Free version lets you install the plugin, test the general workflow, and continue using any features that are not locked behind Pro access.

Free access varies by plugin because each Hypermatic plugin solves a different workflow.

## Paid Pro access

Pro unlocks the paid features for the plugin. These are the features intended for production workflows, repeated use, and professional team usage.

Examples include unlimited exports, advanced options, production workflow features, platform integrations, or other plugin-specific Pro capabilities depending on the product.

## How many free Pro trial runs are included?

Each Hypermatic plugin includes 10 free Pro trial runs.

See [Hypermatic free Pro trial runs](/faq/trials) for details.

## Pro Bundle access

The Pro Bundle gives access to every Hypermatic plugin in the bundle for each paid bundle seat.

If one person needs every plugin, choose 1 bundle seat. If 7 people need every plugin, choose 7 bundle seats.

The Pro Bundle is priced at $99/user/month or $999/user/year.

## Where can I compare plugin-specific Free and Pro features?

Each plugin has its own Free vs Pro page:

- [Bannerify Free vs Pro](/bannerify/faq/plans)
- [Commentful Free vs Pro](/commentful/faq/plans)
- [Convertify Free vs Pro](/convertify/faq/plans)
- [CopyDoc Free vs Pro](/copydoc/faq/plans)
- [Crypto Free vs Pro](/crypto/faq/plans)
- [Emailify Free vs Pro](/emailify/faq/plans)
- [Favvy Free vs Pro](/favvy/faq/plans)
- [HyperCrop Free vs Pro](/hypercrop/faq/plans)
- [Pitchdeck Free vs Pro](/pitchdeck/faq/plans)
- [Pixelay Free vs Pro](/pixelay/faq/plans)
- [TinyImage Free vs Pro](/tinyimage/faq/plans)
- [Weblify Free vs Pro](/weblify/faq/plans)

## Where can I buy Pro?

Use the product pricing page, Gumroad checkout, or the examples in [Hypermatic pricing and PDF quotes](/faq/pricing).

For a pre-purchase approval PDF, use the [PDF Quote Generator](https://quote.hypermatic.com/).

---

---
url: "/faq/pricing.md"
description: "Compare current Hypermatic Pro prices, calculate seat totals, open Gumroad checkout, and generate a PDF quote."
---

# Calculate Hypermatic pricing and generate a PDF quote

> Compare current Hypermatic Pro prices, calculate seat totals, open Gumroad checkout, and generate a PDF quote.

Hypermatic Pro licenses are priced per Figma user. Choose one seat for each person who needs the plugin's Pro features.

Prices are in USD and exclude sales tax or VAT. Gumroad may add tax at checkout depending on your location. You can choose monthly or yearly billing, and yearly plans are billed once per year.

To calculate a total:

1. Choose the product and billing cycle.
2. Multiply its per-user price by the number of Figma users.
3. Use Gumroad checkout for the final tax-inclusive amount, or create an approval document with the [PDF Quote Generator](https://quote.hypermatic.com/).

## Current Pro prices

| Product | Monthly price | Yearly price |
| --- | ---: | ---: |
| Bannerify Pro | $49/user/month | $499/user/year |
| Commentful Pro | $29/user/month | $299/user/year |
| Convertify Pro | $49/user/month | $499/user/year |
| CopyDoc Pro | $29/user/month | $299/user/year |
| Crypto Pro | $19/user/month | $199/user/year |
| Emailify Pro | $49/user/month | $499/user/year |
| Favvy Pro | $10/user/month | $99/user/year |
| HyperCrop Pro | $16/user/month | $159/user/year |
| Pitchdeck Pro | $29/user/month | $299/user/year |
| Pixelay Pro | $20/user/month | $199/user/year |
| TinyImage Pro | $20/user/month | $199/user/year |
| Weblify Pro | $20/user/month | $199/user/year |
| Pro Bundle | $99/user/month | $999/user/year |

## Calculate the required seats

One seat is for one Figma user. If 7 people need to use Emailify Pro, choose 7 Emailify seats. If 7 people need access to the Pro Bundle, choose 7 bundle seats.

After purchase, you can use the [Hypermatic License Manager](https://license.hypermatic.com/) to manage which Figma users are linked to the seats on your license key.

If you need to change the paid number of seats on an active subscription, use the Manage membership link in your Gumroad receipt. Adding seats is usually charged immediately on a prorated basis. Removing seats changes the price at the end of the current billing cycle.

## Buy through Gumroad

Hypermatic Pro licenses are purchased through Gumroad checkout. The product pricing page lets you choose the billing cycle and number of seats before buying.

For account-specific billing help, email [adam@hypermatic.com](mailto:adam@hypermatic.com).

## Generate a PDF quote before purchase

Use the [PDF Quote Generator](https://quote.hypermatic.com/) to enter your company details, choose the product and number of seats, and download a PDF quote before buying.

The smoothest procurement path is a PDF quote plus online card checkout through Gumroad. Hypermatic does not support purchase orders, bank transfers, custom procurement terms, vendor onboarding forms, or custom security questionnaires for self-serve Pro licenses.

For more detail, see [Procurement](/faq/procurement).

## Emailify pricing examples

Emailify Pro is $49/user/month or $499/user/year.

| Seats | Monthly total | Yearly total |
| ---: | ---: | ---: |
| 1 seat | $49/month | $499/year |
| 7 seats | $343/month | $3,493/year |

Direct links for the common Emailify examples:

- 1 seat monthly: [checkout](https://hypermatic.gumroad.com/l/emailify?quantity=1) · [PDF quote](https://quote.hypermatic.com/?emailify=1)
- 1 seat yearly: [checkout](https://hypermatic.gumroad.com/l/emailify?quantity=1&yearly=true) · [PDF quote](https://quote.hypermatic.com/?emailify=1&yearly=true)
- 7 seats monthly: [checkout](https://hypermatic.gumroad.com/l/emailify?quantity=7) · [PDF quote](https://quote.hypermatic.com/?emailify=7)
- 7 seats yearly: [checkout](https://hypermatic.gumroad.com/l/emailify?quantity=7&yearly=true) · [PDF quote](https://quote.hypermatic.com/?emailify=7&yearly=true)

Yearly Emailify pricing is shown on the pricing page as about $42/user/month when billed yearly, because $499/year divided across 12 months is approximately $42/month.

## Estimate another product or seat count

Multiply the per-user price by the number of Figma users who need access.

For example:

- 3 seats of TinyImage monthly: $20 x 3 = $60/month
- 5 seats of Pitchdeck yearly: $299 x 5 = $1,495/year
- 2 seats of the Pro Bundle yearly: $999 x 2 = $1,998/year

Use the checkout page or PDF Quote Generator for the final seat count, billing cycle, and tax calculation before purchase.

---

---
url: "/faq/procurement.md"
description: "Use PDF quotes, Gumroad checkout, receipts, invoices, and public review documents in a self-serve procurement workflow."
---

# Purchase Hypermatic through your procurement process

> Use PDF quotes, Gumroad checkout, receipts, invoices, and public review documents in a self-serve procurement workflow.

Hypermatic supports a self-serve procurement workflow with a PDF quote before purchase and Gumroad documents after purchase.

## Supported procurement workflow

1. Generate a PDF quote with company details.
2. Share the PDF quote internally for approval.
3. Complete the purchase through Gumroad checkout by card.
4. Use the Gumroad receipt to generate a PDF invoice after purchase.

| Supported | Not supported |
| --- | --- |
| PDF quotes for internal approval | Purchase-order payment terms |
| Online card checkout through Gumroad | Bank transfers |
| Gumroad receipts and PDF invoices | Supplier onboarding portals |
| Public security and privacy documentation | Custom vendor forms or security questionnaires |

## How do I generate a PDF quote?

Use the [Hypermatic PDF Quote Generator](https://quote.hypermatic.com/). Enter your company details, choose the product and number of seats, then download the PDF quote directly.

You can also generate prefilled quote links. For example:

- Emailify, 7 seats, monthly quote: [https://quote.hypermatic.com/?emailify=7](https://quote.hypermatic.com/?emailify=7)
- Emailify, 7 seats, yearly quote: [https://quote.hypermatic.com/?emailify=7&yearly=true](https://quote.hypermatic.com/?emailify=7&yearly=true)

For pricing examples and PDF quote guidance, see [Hypermatic pricing and PDF quotes](/faq/pricing).

## Purchase orders, invoice terms, and bank transfers

Hypermatic does not support purchase orders, invoice payment terms, or bank transfers as separate payment processes. Pro licenses are purchased online through Gumroad checkout by card.

You can use a PDF quote before purchase for internal approval, and the Gumroad receipt after purchase to generate a PDF invoice.

## Vendor onboarding forms and questionnaires

Hypermatic does not complete custom supplier onboarding forms, procurement portals, vendor registration forms, or company-specific purchasing paperwork.

Use the public security and privacy docs plus the PDF quote generator for internal review. If procurement needs a simple clarification that is not covered by public docs, email Adam.

For security and privacy information, use the public docs:

- [Security overview](/security)
- [Privacy and data access](/security/privacy-and-data-access)
- [Vendor review information](/security/vendor-review)

## Generate a PDF invoice after purchase

Open the Gumroad receipt and click **Generate invoice** to create a PDF invoice.

See [Receipts and PDF invoices](/faq/receipts).

## Get an exact standard quote

For standard products, seat counts, and billing cycles, use the [PDF Quote Generator](https://quote.hypermatic.com/) or the examples on the pricing page.

Hypermatic does not create custom procurement terms, complete vendor forms, or negotiate custom pricing. If your procurement question is account-specific and is not covered by the self-serve quote flow, email [adam@hypermatic.com](mailto:adam@hypermatic.com).

---

---
url: "/faq/receipts.md"
description: "Recover a Hypermatic purchase receipt, view purchase history, generate a PDF invoice, or request account-specific help."
---

# Find a Gumroad receipt and generate a PDF invoice

> Recover a Hypermatic purchase receipt, view purchase history, generate a PDF invoice, or request account-specific help.

Hypermatic purchases are processed by Gumroad. Gumroad sends receipts by email after checkout.

To recover a receipt:

1. Search every relevant inbox for `noreply@customers.gumroad.com`.
2. Check spam, junk, promotions, and archived mail.
3. Try [Gumroad charge lookup](https://app.gumroad.com/charge).
4. If you have the license key, check purchase history in the [Hypermatic License Manager](https://license.hypermatic.com/).
5. Email [adam@hypermatic.com](mailto:adam@hypermatic.com) if the purchase still cannot be identified.

## Where are my receipts sent from?

Receipts are sent by Gumroad from `noreply@customers.gumroad.com` to the email address used at checkout.

If you used a work email, check that inbox. If someone else bought the license for your team, the receipt may be in their inbox.

## Search for a missing receipt

Try these steps:

1. Search your email for `noreply@customers.gumroad.com`.
2. Search for the product name, such as Emailify, Bannerify, Convertify, or TinyImage.
3. Check spam, junk, promotions, and archived mail.
4. Try Gumroad's charge lookup page: [https://app.gumroad.com/charge](https://app.gumroad.com/charge).
5. If you have the license key, enter it into the [Hypermatic License Manager](https://license.hypermatic.com/) to view purchase history.

## Generate a PDF invoice

Open your Gumroad receipt and click the Generate invoice link. Gumroad lets you enter invoice details and download the PDF invoice from the receipt.

If you cannot find the receipt, use [Gumroad charge lookup](https://app.gumroad.com/charge) first.

## Add VAT or tax invoice details

Use the Generate invoice link in the Gumroad receipt. If VAT was charged and you need to enter a VAT ID, Gumroad's invoice flow can handle that from the receipt.

If you entered a valid VAT ID during checkout, VAT should not be charged at checkout.

## Change the receipt email address

For the email address attached to Gumroad receipts, contact Gumroad support at [support@gumroad.com](mailto:support@gumroad.com) and ask them to update it.

If you need help identifying which subscription or product is involved before contacting Gumroad, email [adam@hypermatic.com](mailto:adam@hypermatic.com).

## Request account-specific receipt help

Start with [Gumroad charge lookup](https://app.gumroad.com/charge), your email inbox, or the [Hypermatic License Manager](https://license.hypermatic.com/) if you still have the license key.

If you still cannot find the receipt, or if you need help with a receipt tied to a different email address, email [adam@hypermatic.com](mailto:adam@hypermatic.com) with the product name, purchase email address, and any details that may help identify the purchase. That is the best route for receipt resend requests or purchase history questions that need a human check.

---

---
url: "/faq/refunds.md"
description: "Understand the initial 30-day refund policy, request a renewal review, and provide the information needed to assess a refund."
---

# Request a Hypermatic refund

> Understand the initial 30-day refund policy, request a renewal review, and provide the information needed to assess a refund.

If you do not see value within the first 30 days after your initial subscription purchase, email [adam@hypermatic.com](mailto:adam@hypermatic.com) to request a refund.

| Charge | How it is handled |
| --- | --- |
| Initial subscription purchase | Covered by the 30-day refund policy |
| Subscription renewal | Reviewed separately from an initial-purchase refund |

## Request an initial-purchase refund

If you do not see value within the first 30 days after the initial purchase of a subscription, email [adam@hypermatic.com](mailto:adam@hypermatic.com) and explain what happened.

Include:

- Product name
- Purchase email address
- A short note about why the plugin did not work for your workflow
- Any relevant screenshots, exported files, or error messages if there was a technical issue

## Request a renewal review

Renewals after an existing subscription period are handled differently. Make a note of renewal dates and cancel before renewal if you no longer need the plugin.

If you believe a renewal needs special review, email [adam@hypermatic.com](mailto:adam@hypermatic.com) with the product name and purchase email address.

## Prevent another renewal

Cancel the subscription from the **Manage membership** link in your Gumroad receipt so it does not renew again, then email Adam if you want the renewal reviewed. Renewal status and refund reviews need to be handled by email.

## Include the required information

Refund requests need to be reviewed by email. The support chat can explain the refund policy; purchase checks, payment-record verification, and refund processing are handled through email.

Send refund requests to [adam@hypermatic.com](mailto:adam@hypermatic.com) with the product name, purchase email address, and a short explanation of what happened.

## Choose the correct support contact

For Hypermatic refund decisions, email Adam. Gumroad may be needed for checkout or receipt-account issues, but refund requests for Hypermatic products should start with [adam@hypermatic.com](mailto:adam@hypermatic.com).

## Report a technical problem with the refund request

Email Adam with the product name, a screenshot or video, the exported file if relevant, and the specific Figma page/frame where the issue happens.

A small reproducible example helps the issue get investigated quickly.

---

---
url: "/faq/seats.md"
description: "Reassign existing seats, change the paid seat count, understand prorated charges, and manage linked Figma users."
---

# Manage and reassign Hypermatic license seats

> Reassign existing seats, change the paid seat count, understand prorated charges, and manage linked Figma users.

Hypermatic Pro licenses are seat-based. One seat is for one Figma user. If your team has 7 people who need to use a plugin, choose 7 seats.

Two different tools control seats:

| Change | Tool |
| --- | --- |
| Replace one linked Figma user with another | [Hypermatic License Manager](https://license.hypermatic.com/) |
| Increase or reduce the number of paid seats | **Manage membership** in the Gumroad receipt |

## Reassign an existing seat

1. Open the [Hypermatic License Manager](https://license.hypermatic.com/).
2. Enter your license key.
3. Review which Figma users are linked to the key.
4. Remove users who no longer need access.
5. Share the same key with the new Figma user who should use the seat.

## Free a seat for another person

Open the license manager, remove the old Figma user from the key, then ask the new user to unlock the plugin with the same license key.

This is useful when someone leaves a team, a contractor finishes, or a different designer needs to use the plugin.

## Replace an employee or contractor

For a multi-seat license, open the Hypermatic License Manager, remove the old Figma user from the license key, then share the same license key with the new Figma user. The new user can unlock the plugin with that key.

This changes which Figma users are linked to the key. It does not change the number of paid seats on the subscription.

## Reassigning users versus changing paid seats

Reassigning a user means removing one Figma user from the license key and allowing another Figma user to use that existing seat. Use the Hypermatic License Manager for this.

Changing the number of paid seats means increasing or reducing how many seats the subscription includes. Use the **Manage membership** link in the Gumroad receipt for this.

## Do we get one license key or multiple license keys for a multi-seat purchase?

A multi-seat purchase uses one license key with multiple allowed Figma users. Share the same license key with the team members who should use the paid seats, then manage the linked Figma users in the Hypermatic License Manager.

## Add paid seats

Open a Gumroad receipt for the subscription, select the **Manage membership** or subscription settings link, then use the plus button under **Seats** to increase the number of seats.

When you add seats, Gumroad normally charges a prorated amount immediately so the additional seats align with the current renewal date.

## Remove paid seats

Open a Gumroad receipt for the subscription, select the **Manage membership** or subscription settings link, then use the minus button under **Seats** to reduce the number of seats.

Removing seats usually updates the renewal price at the end of the current billing cycle.

## Understand prorated seat charges

Prorated pricing means Gumroad charges only for the remaining time in the current billing period when you add seats mid-cycle.

For example, if you add seats halfway through a yearly subscription, Gumroad calculates the unused part of the existing billing period and charges the appropriate remaining amount for the extra seats.

## Does changing seats change who can use the license?

Changing the seat count changes how many Figma users can be linked to the key. The license manager controls which specific Figma users are using those seats.

If you add seats, the license can support more Figma users. If you remove seats, make sure only the remaining allowed number of users are linked.

## Get help with seat changes

Use the [Hypermatic License Manager](https://license.hypermatic.com/) to change which Figma users are linked to an existing license key. Use the **Manage membership** link in your Gumroad receipt to change the paid seat count on a subscription.

The support chat can explain those workflows. Private license or subscription changes need the self-serve tools or email support. Use the license manager for linked Figma users, Gumroad for paid seat counts, and email [adam@hypermatic.com](mailto:adam@hypermatic.com) for account-specific help.

---

---
url: "/faq/trials.md"
description: "Try a Hypermatic plugin's Pro workflow 10 times without a card, then continue with Free access or activate a paid license."
---

# Use Hypermatic free Pro trial runs

> Try a Hypermatic plugin's Pro workflow 10 times without a card, then continue with Free access or activate a paid license.

Each Hypermatic Figma plugin includes 10 free Pro trial runs so you can test the workflow before buying a Pro license.

The trial lifecycle is:

1. Install the plugin from Figma Community.
2. Use up to 10 Pro trial runs without entering a card.
3. Continue with the plugin's Free version after the trial runs are used.
4. Enter a paid license key if you want ongoing Pro access.

## Free access after the trial

Hypermatic does not use a separate permanent free-plan checkout tier for these plugins.

Instead, each plugin includes 10 free Pro trial runs, and the plugin continues with its Free version after those trial runs are used. If you want to keep using Pro-only features after that, you need a paid Pro license key.

See [Free vs Pro plans](/faq/plans) for the general Free-version and Pro-version overview.

## Understand the remaining-use message

If a plugin says you have free Pro uses left, it means the plugin is still in its free Pro trial state for that Figma user and plugin. This is expected before a paid license key has been used to unlock Pro.

The wording may appear as free Pro uses, free Pro trials, or free Pro trial runs. They refer to the same 10 free Pro trial runs.

## Activate a license after buying

If you already bought a Pro license but still see free Pro uses left, the plugin may not be unlocked for the current Figma user yet. Open the plugin and enter your Pro license key when prompted, or press **CTRL + K** while the plugin window is open to bring up the license key prompt again.

If your team uses a multi-seat license, make sure the current Figma user is linked to one of the paid seats in the Hypermatic License Manager.

## No cancellation is required

Free Pro trial runs are not a subscription and do not need to be cancelled. They Run out after the included free Pro uses for that Figma user and plugin have been used.

## No credit card is required

You can install and run the Hypermatic Figma plugins from Figma Community and test the free Pro trial runs without entering a credit card.

Start here: [Hypermatic on Figma Community](https://www.figma.com/@hypermatic)

## How many free Pro trial runs do I get?

Each plugin includes 10 free Pro trial runs. The product pages and pricing pages describe this as 10 free Pro trials or 10 free Pro trial runs.

## After all trial runs are used

After the free Pro trial runs are used, the plugin continues to offer the Free version, but Pro-only features require a paid Pro license key.

## Trial runs are not a subscription trial

The free Pro trial runs are a way to test the Pro workflow inside the plugin. They are not a card-backed monthly subscription trial.

You do not need to cancel the free Pro trial runs. If you do not buy a Pro license, the plugin Continues with the Free version after the trial runs are used.

## Test before requesting approval

Try the plugin first, then use the pricing page or [PDF Quote Generator](https://quote.hypermatic.com/) to prepare an approval request.

For pricing examples and quote links, see [Hypermatic pricing and PDF quotes](/faq/pricing).

## Get help with trial runs

Trial reset requests and private account checks need email support. The chat can explain how trials work and where to find the right license or pricing information.

If you need help with a trial or license issue, email [adam@hypermatic.com](mailto:adam@hypermatic.com) with the plugin name and a short description of what happened.

---

---
url: "/favvy/code.md"
description: "Copy the generated favicon HTML snippet and reuse it later from the exported zip."
---

# Copying the generated HTML code

> Copy the generated favicon HTML snippet and reuse it later from the exported zip.

[Video](/assets/videos/favvy/create/copy-favicon-code.mp4)

On the confirmation screen, you will also be presented with HTML code that you can use in your website's `` tag. This easiest way to copy this block of code is to click the **Copy HTML to clipboard** button in the Favvy plugin.

Once you've copied the HTML, you'll be able to open up a code editor and paste the HTML into your `` tag. Please sure that the paths to your icons are updated as needed, depending on where they're located in your directory structure and/or on your server.

> **Tip:** **Finding this code after closing the Favvy plugin**. Don't worry if you forgot to copy this code from Favvy; if you need to refer back to it later, there is a file in the exported `.zip` file called `head.html`, which includes the same code that is shown in the Favvy confirmation screen.

---

---
url: "/favvy/design.md"
description: "The Favvy Figma plugin works by letting you select a single square Figma layer and automatically converting it into a favicon package to use on your website."
---

# Designing your favicon frame in Figma

> The Favvy Figma plugin works by letting you select a single square Figma layer and automatically converting it into a favicon package to use on your website.

[Video](/assets/videos/favvy/create/design-favicon.mp4)

To prepare your Figma frame for exporting to a favicon package using Favvy, your Figma layer _must be a square aspect ratio_, where the width and height are identical (for example, **512x512** pixels).

The quickest way to do this is to create a new blank Figma frame on your page, set both the width and height for your new favicon frame Figma to `512` pixels, and then drag and drop the icon you'd like to use for your favicon into the new Figma frame you've just created, and resize it as needed to fit the 512x512 frame.

For the best results, you should use SVG vector layers inside your Figma frame to ensure that the exported favicons are as sharp as possible.

> **Tip:** **If you'd like your favicons to have a transparent background**, ensure you remove the _fill_ from your new Figma frame that you created above. If not, you can set this to have any fill you like.

---

---
url: "/favvy/export.md"
description: "After you've selected your Figma layer, click the **Export Favicons** button in the Favvy plugin to generate production ready code and a favicon .zip file from your layer."
---

# Exporting your Figma frame to favicons

> After you've selected your Figma layer, click the **Export Favicons** button in the Favvy plugin to generate production ready code and a favicon .zip file from your layer.

[Video](/assets/videos/favvy/create/export-favicons.mp4)

> **Note:** **Your selected layer must be a square aspect ratio** where the width and height are identical (for example, **512x512** pixels). Favvy will let you know if you've selected a layer that isn't square.

After clicking the **Export Favicons** button, you'll see a confirmation screen letting you know that your favicons are ready to download. To download the `.zip` file from Figma to your computer, you can click the **Download favicons .zip file** button in the Favvy plugin.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

## What's in the exported Favvy .zip file?

Depending on the export formats you select, the full list of possible files included in the exported `.zip` file from Favvy are listed below:

- `android-chrome-192x192.png`
- `android-chrome-512x512.png`
- `apple-touch-icon.png`
- `favicon.ico`
- `favicon.svg`
- `head.html`
- `site.webmanifest`

## Other Favvy export options

Before exporting your favicons, you can optionally specify your website name and a theme colour.

### Website Name

Populating the **Website Name** input field with your website name will automatically add it to the `name` and `short_name` fields in the exported `site.webmanifest` file.

The `site.webmanifest` file is used in progressive web apps (PWA), and if you're interested, you can [read more about the web app manifest](https://developer.mozilla.org/en-US/docs/Web/Manifest) on the MDN web docs.

### Theme Colour

Populating the **Theme Colour** input field with a HEX colour code (or using the color picker) will automatically add it to the **browserconfig.xml** file exported by Favvy, the `theme-color` fields, and also use it for any iOS splash screen backgrounds, in the generated code for your `` tag.

### Sizes & Platforms

By default, Favvy exports a favicon package that covers all browser and devices, however, you can optionally turn off support for iOS (icons and/or splash screen support) and/or Android if you don't need them by toggling the switches in the Favvy plugin.

---

---
url: "/favvy/faq/plans.md"
description: "To get unlimited usage of all of the Favvy Pro features, you will need to purchase a license from the [Hypermatic website](https://hypermatic.com/favvy#pro)."
---

# Favvy Free vs Favvy Pro

> To get unlimited usage of all of the Favvy Pro features, you will need to purchase a license from the [Hypermatic website](https://hypermatic.com/favvy#pro).

Favvy includes 10 free trials of the _Pro_ version. Once these trials have been used up, the Figma plugin will revert to their _Free_ version, which will have limited functionality.

  - **Favvy Free**: ### 16px Icon Exports Unlimited Usage       ### Full Icon Set Exports Try during 10 Pro Trials       ### PWA Support Try during 10 Pro Trials
  - **Favvy Pro**: ### 16px Icon Exports Unlimited Usage       ### Full Icon Set Exports Unlimited Usage       ### PWA Support Unlimited Usage

---

---
url: "/favvy/faq/security.md"
description: "Favvy runs as an official plugin inside of Figma's own app, which are reviewed and approved by the Figma team."
---

# Favvy Security

> Favvy runs as an official plugin inside of Figma's own app, which are reviewed and approved by the Figma team.

The Figma plugin is run directly from Figma's own servers, and runs inside of a your Figma file, which means that it inherits all of the [security](https://www.figma.com/security/) and infrastructure of the Figma platform, which exceed industry standards for data protection and security:

- SOC 2 Type 2
- SOC 3
- Cloud Security Alliance (CSA) STAR: Level 1
- ISO/IEC 27001:2013
- ISO/IEC 27018:2019
- EU Cloud Code of Conduct (COC): Level 2

There's **no additional software** that needs to be installed to use the Figma plugin, as Figma plugins run as a built-in part of Figma's own native functionality, and all Figma plugins Accessibile and can be instantly run from inside any Figma file, or via the official [Figma Community](https://www.figma.com/community) ecosystem inside of the Figma app.

If your organization is already approved to use Figma, then you _already have access_ to Figma plugins.

## How Favvy works

The [Favvy Figma plugin](https://www.figma.com/community/plugin/789010114208495133) helps users Export favicons from their Figma layers.

Favvy is designed to be privacy and security focused, so nothing _ever_ leaves your Figma file.

All functionality and file exports are handled client-side directly in the Figma plugin using the [Figma Plugins API](https://www.figma.com/plugin-docs/), and are _never_ uploaded, processed or stored anywhere in the cloud or outside of Figma.

## What Favvy does and doesn't do

Favvy uses the [Figma Plugins API](https://www.figma.com/plugin-docs/) to help users inspect their Figma layers as code, and download them as code components _directly_ to their computer.

Favvy doesn't rely on _any_ external servers to handle compressing image data, which means that nothing in your Figma file ever leaves the Figma plugin or Figma itself.

Any files that are exported via the plugin are done so entirely locally to the user's own computer.

### Favvy does

- Allow users to export their Figma layers to favicon images and code.
- Download any exported files _directly_ to the user's computer.

### Favvy does _not_

- Upload _any_ data from your Figma file.
- Store _any_ data from your Figma file.
- Use _any_ servers or cloud storage to process or store your Figma data.
- Collect or store _any_ personal information (Figma plugins *cannot* access any private information about Figma projects, Figma teams or Figma users).

## How Figma plugins work

Figma plugins are written in HTML/CSS/Javascript, and are run in a tightly controlled [sandbox environment](https://www.figma.com/plugin-docs/how-plugins-run/) inside of the main Figma application.

Figma plugins can only do whatever Figma allows them to do inside the permissions of the [Figma Plugins API](https://www.figma.com/plugin-docs/), and importantly, **plugins don't have any access to personal information** about the Figma user running the plugin.

## What Figma plugins can and can't do

As per the article on [Figma plugin security](https://www.figma.com/blog/how-we-built-the-figma-plugin-system/), there are a limited number of things that Figma plugins can do, and many more things that they can't do:

### Figma plugins can

- Only be run by an explicit user action
- Show UI in a single plugin-specific dialog
- Read any data in your Figma document (for example, a “find layer by name” plugin)
- Modify any data in your Figma document (for example, a “rename selected layers” plugin)
- Communicate with any server over the internet (for example, an “import from service X” plugin)

### Figma plugins _cannot_

- Run by themselves
- Get information about the project or team that owns the file
- Access anything when they aren’t running
- Access data from any files other than the file they were run in
- Change Figma’s UI outside of the plugin UI dialog

> **Tip:** Figma account administrators at your company can [configure an allowlist of plugins](https://help.figma.com/hc/en-us/articles/4404228724759-Manage-plugins-and-widgets-in-an-organization) that are allowed inside the organization. This can be used to prevent untrusted Figma plugins from being run in any file in that organization.

---

---
url: "/favvy/faq/troubleshooting.md"
description: "Troubleshooting guide for Favvy with common setup and export issues."
---

# Troubleshooting Favvy

> Troubleshooting guide for Favvy with common setup and export issues.

### Your selected layer must be a square

Favvy will let you know if you've selected a layer that isn't square; this can be resolved by resizing your frame
until the width and height are identical (for example, **512x512**).

### Blank file extensions using Figma desktop app on Windows

There's a known issue with the Figma desktop app (only on Windows), which also happens for normal file exports from
Figma. When you go to save your file, you may see an "all files" label. If you ignore this and continue by clicking
"Save", it should still save the file with the correct extension and allow you to open it as expected after it has
downloaded to your computer. If it still saves the file with a blank extension, you should be able to rename the
file to manually append the correct extension to the file name.

### VPN may be required in China

Note, if you're in China, the accounts server _may_ be blocked by "The Great Firewall of China". If you're
seeing an activation error, despite using a valid key, you will likely need to use a
[VPN](https://protonvpn.com/free-vpn/) to resolve the issue.

### 'An error occurred while loading the plugin environment'

This may happen in the Figma desktop app if [the Use Developer VM](https://www.figma.com/plugin-docs/debugging/#developer-vm) debug setting in Figma is enabled by mistake; you can make sure it's turned off by **right-clicking** anywhere on your Figma canvas, hovering over **Plugins**, then hovering over **Development**, and making sure that the **Use Developer VM** is _unchecked_; after it is unchecked (and does _not_ have a tick icon next to it), re-running the Figma plugin should work as expected.

---

---
url: "/favvy/overview/install.md"
description: "Ensure you're logged into your Figma account, then follow the steps below to install and run the [Favvy Figma Plugin](https://www.figma.com/community/plugin/789010114208495133/favvy-favicon-exporter)."
---

# Install and run the Favvy Figma Plugin

> Ensure you're logged into your Figma account, then follow the steps below to install and run the [Favvy Figma Plugin](https://www.figma.com/community/plugin/789010114208495133/favvy-favicon-exporter).

### Video Tutorial: How to install (and remove) Figma plugins

This video tutorial is a complete step-by-step guide showing you the new process of how to install (and remove) Figma plugins after the mid-2024 "UI3" update to the Figma app
[Embedded media](https://www.youtube.com/embed/CzjxF2Jv6PM)

## Installing the Favvy Figma Plugin

1. Open any Figma file.
2. Click on the **Actions** icon in the bottom Figma toolbar.
3. Click the **Plugins & Widgets** tab to filter results to Figma plugins.
4. Search for **Favvy** in the search bar.
5. Click on the **Favvy** search result.
6. Click the **Save** button to install the Favvy plugin.

> **Note:** Figma users in a **Figma Organization** may only be able to install approved plugins. Please contact your Figma Org admin at your company to [approve the Favvy plugin](https://help.figma.com/hc/en-us/articles/4404228724759-Manage-plugins-and-widgets-in-an-organization) if you're unable to install certain Figma plugins.

## Running the Favvy Figma Plugin

Once you've [installed](#installing-the-figma-plugin) the **Favvy** Figma plugin, to run the plugin in your Figma file:

  1. **Right-click** anywhere on your Figma file's page canvas
  2. Hover your mouse over the **Plugins** ▶ menu item
  3. Hover your mouse over the **Saved plugins** ▶ menu item
  4. Click on the **Favvy** plugin menu item

> **Tip:** After you've run the **Favvy** plugin once in a Figma file, you'll be able to quickly re-launch it by clicking the **Favvy** icon in the right-hand side Figma column (under the **Plugin** subheading).

> **Warning:** Only Figma users with **Edit** access to a Figma file can run a Figma plugin in that Figma file; if you only have **View** permissions, you won't be able to run any Figma plugins in that file.

## Uninstalling the Favvy Figma plugin

1. Open any Figma file.
2. Click on the **Actions** icon in the bottom Figma toolbar.
3. Click the **Plugins & Widgets** tab to filter results to Figma plugins.
4. Search for **Favvy** in the search bar.
5. Click on the **Favvy** search result.
6. Click the **Remove** button to uninstall the Favvy plugin.

> **Note:** This will remove the plugin from your **Saved Plugins** list, however, the Figma plugin may still show up under your **Recents** list (if it has been recently run), as Figma saves this list of recent plugins in your browser's/app's local storage. The plugin will vanish from the Recents menu after other plugins are run to take its place.

---

---
url: "/favvy/overview/pro.md"
description: "After trying out all the Pro features of Favvy **10 times**, you can optionally upgrade to continue using all the extra features that are only available in the Pro version; or if you're a casual user, you can continue using the Free version forever."
---

# Activating Favvy Pro

> After trying out all the Pro features of Favvy **10 times**, you can optionally upgrade to continue using all the extra features that are only available in the Pro version; or if you're a casual user, you can continue using the Free version forever.

> **Tip:** Need a Favvy Pro account? You can purchase a Pro account for you or your team by visiting the [Favvy](https://www.hypermatic.com/favvy/#pro) product page on the Hypermatic website.

## Activating the Figma plugin with an Favvy Pro license key

1. **Purchase a Pro license** for you or your team by visiting the [Favvy](https://www.hypermatic.com/favvy/#pro) product page on the Hypermatic website.
2. **Run the Favvy Plugin**, then click on the **Upgrade Now** button at the bottom of the Figma plugin window.
3. **Paste in your Pro key**, then click the **Unlock** button.

This will unlock the Pro version of Favvy and give you unlimited use all of the Figma plugin features.

> **Warning:** Note, if you're in China, the accounts server _may_ be blocked by "The Great Firewall of China". If you're seeing a activation error, despite using a valid key, you will likely need to use a [VPN](https://protonvpn.com/free-vpn/) to resolve the issue.

> **Info:** If you ever need to use a different license key at any time (for example, you were using your own personal Pro license key, but now your employer is buying you a Pro license to use instead), you can press **CTRL + K** while your plugin window is open in Figma, and this will bring up the license key prompt again, where you can enter a different license key.

---

---
url: "/favvy/overview/quickstart.md"
description: "Export production-ready favicon images, HTML, and PWA files from Figma."
---

# Get started with Favvy

> Export production-ready favicon images, HTML, and PWA files from Figma.

[![Favvy Figma Plugin](https://www.hypermatic.com/favvy.jpg)](https://www.figma.com/community/plugin/789010114208495133/favvy-favicon-exporter)

## Install and activate Favvy

- [Install & Run the Figma plugin](/favvy/overview/install.md): How to run Favvy inside of Figma
- [Activate Favvy Pro](/favvy/overview/pro.md): How to buy and use a Pro license key

## Using Favvy

  - [Favvy Documentation](/favvy/design.md): Detailed docs with short screencaps
  - [Favvy Video Tutorials](/favvy/tutorials.md): Full step-by-step video walkthroughs

## Frequently asked questions

- [Troubleshooting Favvy](/favvy/faq/troubleshooting.md): Common issues issues you may run into
- [Favvy Security](/favvy/faq/security.md): Details about how Favvy works
- [Receipts](/faq/receipts.md): Find email receipts and PDF invoices
- [Billing](/faq/billing.md): Manage your Pro subscription
- [License Seat Management](/faq/seats.md): Manage the Figma users on your key
- [Favvy Free vs Pro](/favvy/faq/plans.md): Compare Free vs Pro features

[Video](https://www.hypermatic.com/assets/videos/favvy/FAVVY_DEMO.mp4)

## Favvy features

- Preview and customize favicon assets before export.
- Generates all of the code and image files required.
- Copy/pasteable HTML snippet for your tag.
- Includes default .ico Favicon file.
- Includes Favicon for Apple iOS devices.
- Includes Splash Screens for Apple iOS devices.
- Includes SVG vector based Favicon.
- Includes a PWA (progressive web app) manifest file.
- Download the production-ready favicon package as a ZIP file.

---

---
url: "/favvy/tutorials.md"
description: "The best free Figma tutorial videos for beginners (or power users) to level up."
---

# Favvy Video Tutorials

> The best free Figma tutorial videos for beginners (or power users) to level up.

## Video Tutorials

- [Export favicons from Figma](/favvy/tutorials/export-favicons-from-figma)

---

---
url: "/favvy/tutorials/export-favicons-from-figma.md"
description: "This video shows how to use the Favvy Figma plugin to export favicons directly from a Figma selection. It demonstrates installing the plugin, previewing multiple favicon sizes, exporting a zip with generated icon files and HTML, and adding those files to a website so the favicon updates in the browser."
---

# Export favicons from Figma

> This video shows how to use the Favvy Figma plugin to export favicons directly from a Figma selection. It demonstrates installing the plugin, previewing multiple favicon sizes, exporting a zip with generated icon files and HTML, and adding those files to a website so the favicon updates in the browser.

[← Back to Favvy Video Tutorials](/favvy/tutorials)

[Embedded media](https://www.youtube.com/embed/RqPEqjgVGcw)

**What this video covers**

This video shows how to use the Favvy Figma plugin to export favicons directly from a Figma selection. It demonstrates installing the plugin, previewing multiple favicon sizes, exporting a zip with generated icon files and HTML, and adding those files to a website so the favicon updates in the browser.

**Things you'll need**

- Figma
- The Favvy Figma plugin installed

**Steps**

1. Install Favvy from Figma by opening the Figma logo menu, going to Plugins, then Browse all plugins, searching for "Favvy", and clicking Install.
2. Open the plugin from a Figma layer by right-clicking, choosing Plugins, and selecting "Favvy Favicon Exporter".
3. Select a single square layer or frame, then optionally enter a website name and theme color to preview how the favicon will look at sizes like 16 by 16, 32 by 32, 64 by 64, and 150 by 150.
4. Click "Export Favicons" to generate a zip file of favicon assets, and use "Copy HTML" to copy the generated head HTML to the clipboard.
5. Unzip the exported files and place them in the root of your website project, then paste the copied HTML into the head tag of your index.html or use the included head.html file.
6. Reload the website to confirm the favicon appears, and repeat the export with a new frame, background, or color when you want to update the icon.
7. Replace the existing favicon files with the newly exported ones when iterating on the design, since the filenames stay the same.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=RqPEqjgVGcw)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-favicons-from-figma-using-favvy)
- [Browse Favvy tutorial docs](https://docs.hypermatic.com/favvy/tutorials)

---

---
url: "/figma/install-run-uninstall.md"
description: "Find an official Hypermatic plugin on Figma Community, run or save it, open it again, and remove it from your saved plugins."
---

# Install, run, and remove a Hypermatic Figma plugin

> Find an official Hypermatic plugin on Figma Community, run or save it, open it again, and remove it from your saved plugins.

Hypermatic plugins run inside Figma and do not normally require a separate desktop application. Start from the official [Hypermatic Figma Community profile](https://www.figma.com/@hypermatic).

## Run a plugin for the first time

1. Open [Hypermatic on Figma Community](https://www.figma.com/@hypermatic).
2. Choose the plugin you want to use.
3. Select **Run in Figma**.
4. Open or create a Figma file if Figma asks where to run the plugin.
5. Complete the workflow in the plugin window.

If you use a plugin often, save it from the Figma Community plugin page so it is easier to find later.

## Run a saved plugin again

In a Figma file, open the main Figma menu, choose Plugins, then find the plugin in your saved or recent plugins.

You can also right-click on the Figma canvas, open Plugins, and choose the plugin from the menu.

## Understand what is installed

For most Hypermatic plugin workflows, no separate desktop app is required. The plugins run inside Figma.

Some exported files or downstream workflows may be opened in other tools after export, such as PowerPoint, an email marketing platform, a browser, or an image viewer. That depends on the plugin and export format.

## Remove or uninstall a saved plugin

Open the plugin page on Figma Community and use Figma's plugin management options to remove or uninstall the plugin from your saved plugins.

You can also manage saved plugins from inside Figma's plugin menu.

## Fix a plugin that does not appear

Try these steps:

1. Make sure you are logged into the correct Figma account.
2. Open the plugin directly from [Hypermatic on Figma Community](https://www.figma.com/@hypermatic).
3. Try running it from a normal Figma design file.
4. Restart the Figma desktop app or refresh Figma in the browser.
5. Check whether your company network blocks Figma plugin resources.

For network issues, see [Network, VPN, firewall, and regional troubleshooting](/troubleshooting/network-vpn-firewall).

## Get installation help

Figma plugins need to be run or saved from your own Figma account. Support can walk you through the steps, but plugin installation happens inside your Figma account.

Use the [Hypermatic Figma Community profile](https://www.figma.com/@hypermatic) to open the plugin page, then click **Run in Figma**. The support chat can link you to the right plugin and help you troubleshoot if the plugin does not appear.

---

---
url: "/figma/plugin-basics.md"
description: "Learn what a Hypermatic plugin can access, why file complexity affects performance, how Pro activation works, and how to report a reproducible issue."
---

# Understand how Hypermatic Figma plugins work

> Learn what a Hypermatic plugin can access, why file complexity affects performance, how Pro activation works, and how to report a reproducible issue.

Hypermatic plugins run inside Figma and work with the parts of the current file needed for the workflow you choose.

| System | What it does |
| --- | --- |
| Hypermatic Figma plugin | Works with relevant content in the current Figma file while running |
| Hypermatic support chat | Answers general questions from public support content |
| Gumroad | Handles checkout, receipts, and subscription-management links |
| Hypermatic License Manager | Manages Figma users linked to a license key |

## Plugin access to the current Figma file

A Figma plugin can work with the current Figma file while it is running. The exact data used depends on the plugin and the workflow you choose.

Running a Hypermatic plugin does not give support chat access to your Figma files, Gumroad purchases, or private account details.

## Support does not access your Figma file

The support chat answers from public support content. It does not access your Figma file, inspect private designs, look up Gumroad purchases, or perform account actions.

## Find plugin tutorials and walkthroughs

If you know which plugin you are using, start with that plugin's `Tutorials` page. These pages collect the main workflow guides for the plugin, and many tutorial pages also link to the matching video and transcript.

- [Bannerify tutorials](/bannerify/tutorials)
- [CopyDoc tutorials](/copydoc/tutorials)
- [Convertify tutorials](/convertify/tutorials)
- [Emailify tutorials](/emailify/tutorials)
- [Pitchdeck tutorials](/pitchdeck/tutorials)
- [TinyImage tutorials](/tinyimage/tutorials)

If you are not sure which workflow you need yet, search this docs site with the plugin name plus the result you want, such as `Emailify Klaviyo`, `Pitchdeck PowerPoint`, or `CopyDoc XLIFF`.

## Image loading during export

Some workflows export images, compress images, compare images, generate previews, or render a design into another format. For those workflows, Figma may need to make image data available to the plugin before export.

If Figma is still loading large images in the file, an export can be slower or image quality can look incomplete until the source images finish loading.

## Performance in large or complex files

Large Figma files, many pages, many frames, large images, embedded media, or complex nested layers can all make plugin workflows slower.

If a plugin is slow or stuck, try copying only the relevant frames to a new blank Figma page or file, then run the plugin there.

## Pro activation

After purchase, Gumroad sends a receipt containing your license key. Run the plugin, click the upgrade or unlock option, and paste the license key.

If the key does not work, make sure you pasted the license key itself, not the order ID or receipt number.

See [How Hypermatic Pro licenses work](/faq/licenses).

## Prepare a reproducible bug report

Try to collect a small reproducible example:

- Product name
- Screenshot or short video
- Exported file or ZIP if relevant
- Figma page/frame where it happens
- Exact error message
- Whether it happens in the Figma desktop app, browser, or both

Then email [adam@hypermatic.com](mailto:adam@hypermatic.com).

---

---
url: "/hypercrop/batch-cropping.md"
description: "Batch crop and resize images with presets, custom sizes, smart focal points, and export options."
---

# Batch crop and resize images into multiple sizes

> Batch crop and resize images with presets, custom sizes, smart focal points, and export options.

### Video Tutorial: Crop and resize images

This video walks through how to batch crop and resize images from Figma using the HyperCrop plugin.
[Embedded media](https://www.youtube.com/embed/ysRuuEJvvYE)

## Selecting popular size presets

[Video](/assets/videos/hypercrop/crop/selecting-presets.mp4)

HyperCrop comes with dozens of size presets to make it easy for you to batch crop and export your images for popular platforms and devices without having to manually research and enter the dimensions for each one yourself.

You can add (and remove) any of these sizes by scrolling through the list and clicking the **checkbox** next to each item. Checking a size will add it to your **selected sizes** list, and unchecking a size will remove it.

### Popular platforms and device sizes included

You can select from dozens of presets from the categories below:

- Facebook
- Google Ads
- Instagram
- LinkedIn
- Paper
- Phones
- Pinterest
- Screens
- Snapchat
- Tablets
- Twitch
- Twitter (X)
- YouTube.

## Adding custom crop sizes presets

[Video](/assets/videos/hypercrop/crop/custom-sizes.mp4)

You can add (and remove) any of these sizes by scrolling through the list and clicking the **checkbox** next to each item. Checking a size will add it to your **sizes** list, and unchecking a size will remove it.

### Using "Auto" width or height

If you want to specify _either_ a width _or_ height and let HyperCrop automatically figure out what the height or width should be, you can populate either the **Crop Width** _or_ **Crop Height** input and leave the other one blank. The placeholder of the empty input will change to say **Auto** to indicate this. Once you're happy with the fixed width or height, you can click the **Add Custom Crop Size +** button to add it to your available custom crop sizes.

### Deleting a custom crop preset

To remove a custom preset from your available crops list, you can click the **Trash** icon next to a custom crop size to remove it from your **selected sizes** list _and_ delete it entirely from the available crops list.

## Selecting images for batch crop

[Video](/assets/videos/hypercrop/crop/selecting-layers.mp4)

All of the available images to batch crop will appear in the right hand side of the HyperCrop plugin. By clicking the **checkbox** next to any image in the list, you can tell HyperCrop whether to include or exclude the image from the batch cropping process.

The number of images you select will be multiplied with the number of image sizes you select, giving you the total number of images that will be exported from HyperCrop.

> **Note:** **Images must have export settings to appear in HyperCrop**. To make your images/layers from Figma show up in the HyperCrop plugin, please ensure that you've added at least one export setting to the layer you want to crop, by clicking the **+** icon in the right-hand side column of Figma, under the **Export** heading.

> **Tip:** **Quick selection/de-selection**. To Deselect (or re-select) all images at once, you can click on the checkbox at the very top of the list next to the **X of XX Images Selected** label.

### Specifying crop focal points

By default, HyperCrop will crop and resize batch images using **Center/Center** image anchoring; this means that the image focal point will always be the direct center of the image.

Sometimes you will want to change this so the focal point is located in a different part of the image, for example **Top/Left** or **Center/Right**.

You can Do this by moving your mouse over to the image you would like to toggle the focal point for, and clicking the vertical (↕) and horizintal (↔) **select boxes**, and selecting your desired option for each.

### Enabling smart cropping features

If you don't want to manually specify a focal point using the vertical (↕) and horizintal (↔) select boxes, you can use the **Content Aware** and **Detect Faces** toggles.

You can enable either (or both) of these features by moving your mouse over to the image you would like to enable (or disable) them for, and clicking the **toggle switch** for each.

#### Content Aware

Enabling the **Content Aware** option tells HyperCrop to use smart cropping models to determine where the important/interesting focal parts are in your image. If your image doesn't have a tricky batch of sizes to crop faces for, then this setting _doesn't_ need to be enabled, as it will take longer to crop your images with it turned on.

#### Detect Faces

Enabling the **Detect Faces** option tells HyperCrop to use facial recognition models to determine where the face(s) are in your image. If your image doesn't contain any faces or doesn't have a tricky batch of sizes to crop faces for, then this setting _doesn't_ need to be enabled, as it will take longer to crop your images with it turned on.

> **Note:** **Browser Support**. Due to browser compatibility issues, the **Detect Faces** feature in HyperCrop _isn't_ supported in **Safari**. Please run the plugin in another browser (like [Chrome](https://www.google.com/intl/en_us/chrome/)) or the [Figma Desktop App](https://www.figma.com/downloads/) instead.

## Configuring batch cropping export settings

[Video](/assets/videos/hypercrop/crop/open-settings.mp4)

Once you've selected your crop sizes, your images and you're happy with their individually configured crop settings, you can get ready to batch crop and export your images.

To open the settings panel, you can click the **Batch Crop** button in the HyperCrop header.

After opening the batch crop settings panel, you can select things like **Image Format** (JPG or PNG), **Image Compression** (to specify the image quality/size) and **Image Fill** (which only applies to non-smart crops).

### Adding a custom filename format

For batch crops, HyperCrop lets you specify a custom filename format that will be applied to all of your exported images. This can be really useful for giving a consistent naming convention or grouping your images into sensible **subfolder** structures.

This field is optional, and if you leave this field empty/blank, it will default to **#&lcub;collection&rcub;/#&lcub;name&rcub;/#&lcub;width&rcub;x#&lcub;height&rcub;\_#&lcub;name&rcub;**.

#### Available variables for your filenames

You can **mix and match** _any_ of the variables below into your custom subfolder/filename pattern, including regular text and characters (like underscores or letters/numbers).

- **#&lcub;name&rcub;** The name of the Figma layer (for example, "My Figma Layer Name")
- **#&lcub;collection&rcub;** The size preset collection name (for example, "facebook")
- **#&lcub;label&rcub;** The size preset collection label (for example, "profile")
- **#&lcub;width&rcub;** The resized image width (for example, "1024")
- **#&lcub;height&rcub;** The resized image height (for example, "768")

> **Tip:** **Creating Sub Folders**. To create a subfolder, you can add a "**/**" anywhere in your custom filename format. For example **#&lcub;collection&rcub;-crops/#&lcub;width&rcub;x#&lcub;height&rcub;/#&lcub;name&rcub;** would create a dynamic folder structure like **facebook-crops/1024x768/my_figma_layer_name.jpg** (where the variables get swapped out for each collection, and width/height combo).

## Downloading your batch crop images to your computer

[Video](/assets/videos/hypercrop/crop/batch-crop-download.mp4)

After you configured all of the options and your filename format the way you want them, you can click on the **Crop & Export Images** button to begin the "HyperCrop" batch image cropping/resize process.

Note, this will go process _all_ of your selected sizes for _every_ image that you've selected, so the more images and sizes you have, the longer this will take.

Once the batch crop process has completed, you'll see a confirmation screen letting you know that your images are ready to download. To download the `.zip` file from Figma to your computer, you can click the **Download your .zip file** button in the HyperCrop plugin.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

### Opening your exported .zip file

After you've downloaded your `.zip` file from Figma to your computer, you can open your file explorer to the directory where it was saved. **Double clicking** on the exported `.zip` file will unzip the images to a folder containing all of the images and subfolders (as per your specified subfolder/filename pattern from the HyperCrop export settings).

## Inserting your batch crop images into your current Figma file

[Video](/assets/videos/hypercrop/crop/batch-crop-insert.mp4)

Alternatively, after you configured all of the options and your filename format the way you want them, you can insert your cropped images directly into Figma by clicking the **Crop & Insert to Figma** button, which will create a brand new page in your current Figma file and insert all of the cropped image layers onto the page.

---

---
url: "/hypercrop/faq/plans.md"
description: "To get unlimited usage of all of the HyperCrop Pro features, you will need to purchase a license from the [Hypermatic website](https://hypermatic.com/hypercrop#pro)."
---

# HyperCrop Free vs HyperCrop Pro

> To get unlimited usage of all of the HyperCrop Pro features, you will need to purchase a license from the [Hypermatic website](https://hypermatic.com/hypercrop#pro).

HyperCrop includes 10 free trials of the _Pro_ version. Once these trials have been used up, the Figma plugin will revert to their _Free_ version, which will have limited functionality.

  - **HyperCrop Free**: ### Manual Cropping Unlimited Usage       ### Batch Cropping Try during 10 Pro Trials       ### Image Exports Try during 10 Pro Trials
  - **HyperCrop Pro**: ### Manual Cropping Unlimited Usage       ### Batch Cropping Unlimited Usage       ### Image Exports Unlimited Usage

---

---
url: "/hypercrop/faq/security.md"
description: "HyperCrop runs as an official plugin inside of Figma's own app, which are reviewed and approved by the Figma team."
---

# HyperCrop Security

> HyperCrop runs as an official plugin inside of Figma's own app, which are reviewed and approved by the Figma team.

The Figma plugin is run directly from Figma's own servers, and runs inside of a your Figma file, which means that it inherits all of the [security](https://www.figma.com/security/) and infrastructure of the Figma platform, which exceed industry standards for data protection and security:

- SOC 2 Type 2
- SOC 3
- Cloud Security Alliance (CSA) STAR: Level 1
- ISO/IEC 27001:2013
- ISO/IEC 27018:2019
- EU Cloud Code of Conduct (COC): Level 2

There's **no additional software** that needs to be installed to use the Figma plugin, as Figma plugins run as a built-in part of Figma's own native functionality, and all Figma plugins Accessibile and can be instantly run from inside any Figma file, or via the official [Figma Community](https://www.figma.com/community) ecosystem inside of the Figma app.

If your organization is already approved to use Figma, then you _already have access_ to Figma plugins.

## How HyperCrop works

The [HyperCrop Figma plugin](https://www.figma.com/community/plugin/818960915730257192) helps users Export cropped images from their Figma layers.

HyperCrop is designed to be privacy and security focused, so nothing _ever_ leaves your Figma file.

All functionality, cropping and file exports are handled client-side directly in the Figma plugin using the [Figma Plugins API](https://www.figma.com/plugin-docs/), and are _never_ uploaded, processed or stored anywhere in the cloud or outside of Figma.

## What HyperCrop does and doesn't do

HyperCrop uses the [Figma Plugins API](https://www.figma.com/plugin-docs/) to help users crop their images, and download them _directly_ to their computer.

HyperCrop doesn't rely on _any_ external servers to handle cropping and processing image data, which means that nothing in your Figma file ever leaves the Figma plugin or Figma itself.

Any files that are exported via the plugin are done so entirely locally to the user's own computer.

### HyperCrop does

- Allow users to crop their image layers from Figma.
- Render any cropped images _directly_ to the Figma canvas in the current file.
- Download any exported cropped image files _directly_ to the user's computer.

### HyperCrop does _not_

- Upload _any_ data from your Figma file.
- Store _any_ data from your Figma file.
- Use _any_ servers or cloud storage to process or store your Figma data.
- Collect or store _any_ personal information (Figma plugins *cannot* access any private information about Figma projects, Figma teams or Figma users).

## How Figma plugins work

Figma plugins are written in HTML/CSS/Javascript, and are run in a tightly controlled [sandbox environment](https://www.figma.com/plugin-docs/how-plugins-run/) inside of the main Figma application.

Figma plugins can only do whatever Figma allows them to do inside the permissions of the [Figma Plugins API](https://www.figma.com/plugin-docs/), and importantly, **plugins don't have any access to personal information** about the Figma user running the plugin.

## What Figma plugins can and can't do

As per the article on [Figma plugin security](https://www.figma.com/blog/how-we-built-the-figma-plugin-system/), there are a limited number of things that Figma plugins can do, and many more things that they can't do:

### Figma plugins can

- Only be run by an explicit user action
- Show UI in a single plugin-specific dialog
- Read any data in your Figma document (for example, a “find layer by name” plugin)
- Modify any data in your Figma document (for example, a “rename selected layers” plugin)
- Communicate with any server over the internet (for example, an “import from service X” plugin)

### Figma plugins _cannot_

- Run by themselves
- Get information about the project or team that owns the file
- Access anything when they aren’t running
- Access data from any files other than the file they were run in
- Change Figma’s UI outside of the plugin UI dialog

> **Tip:** Figma account administrators at your company can [configure an allowlist of plugins](https://help.figma.com/hc/en-us/articles/4404228724759-Manage-plugins-and-widgets-in-an-organization) that are allowed inside the organization. This can be used to prevent untrusted Figma plugins from being run in any file in that organization.

---

---
url: "/hypercrop/faq/troubleshooting.md"
description: "Troubleshooting guide for HyperCrop covering export settings, image issues, and common errors."
---

# Troubleshooting HyperCrop

> Troubleshooting guide for HyperCrop covering export settings, image issues, and common errors.

### You can't add duplicate custom crop sizes

If you try to add a custom size to your available crop sizes list that you've already added before, HyperCrop will pop-up a notification to let you know that you've already added that size before.

### Images must have export settings to appear in HyperCrop

To make your images/layers from Figma show up in HyperCrop, please ensure that you've added at least one export setting to the layer by clicking the **+** icon in the right-hand side column of Figma, under the **Export** heading.

### Blank file extensions using Figma desktop app on Windows

There's a known issue with the Figma desktop app (only on Windows), which also happens for normal file exports from Figma. When you go to save your file, you may see an "all files" label. If you ignore this and continue by clicking "Save", it should still save the file with the correct extension and allow you to open it as expected after it has downloaded to your computer. If it still saves the file with a blank extension, you should be able to rename the file to manually append the correct extension to the file name.

### Thin white line around image exports

Occassionally some images will contain a faint, thin white line around the edges. Figma [does this](https://twitter.com/Skcrub/status/1255544876701270017) if a layer isn't positioned on a rounded pixel value (for example, Y: 156.76 or X: 56.3) will automatically result in this sub-pixel line getting included in the export. To resolve the issue, please ensure that your layer positions are all rounded pixel values.

### Pixelated image exports

If you're exporting images while the image assets in Figma are still progressively loading, they may be exported looking pixelated, as the image wasn't fully loaded in the Figma file before it was exported. To resolve this, please ensure that all of the images have loaded 100% and are looking sharp inside the Figma file before exporting your images with the HyperCrop plugin.

To help further with solving this issue, you can use the ["Downsizer" feature](/tinyimage/downsize) in our [TinyImage Figma plugin](https://www.figma.com/community/plugin/789009980664807964/TinyImage-Compressor) to shrink down your image fills to match their layer size, which will shrink their file size and ensure they load much faster in your Figma file.

### VPN may be required in China

Note, if you're in China, the accounts server _may_ be blocked by "The Great Firewall of China". If you're seeing an activation error, despite using a valid key, you will likely need to use a [VPN](https://protonvpn.com/free-vpn/) to resolve the issue.

### 'An error occurred while loading the plugin environment'

This may happen in the Figma desktop app if [the Use Developer VM](https://www.figma.com/plugin-docs/debugging/#developer-vm) debug setting in Figma is enabled by mistake; you can make sure it's turned off by **right-clicking** anywhere on your Figma canvas, hovering over **Plugins**, then hovering over **Development**, and making sure that the **Use Developer VM** is _unchecked_; after it is unchecked (and does _not_ have a tick icon next to it), re-running the Figma plugin should work as expected.

---

---
url: "/hypercrop/manual-cropping.md"
description: "Use the HyperCrop manual crop tool to crop a single image and download the result."
---

# Manually cropping single images

> Use the HyperCrop manual crop tool to crop a single image and download the result.

[Video](/assets/videos/hypercrop/crop/manual-crop.mp4)

If you don't need to batch crop multiple images to one or more different sizes, you can use the manual crop tool built-in to the HyperCrop plugin. To use this tool, move your mouse over to the image you would like to crop in the image selection panel of HyperCrop, and click the **Manual Crop** button. This will open the manual crop tool overlay.

When you've finished tweaking your image crop and resize settings, you can click on the **Crop & Download** button to download the cropped image to your computer from Figma.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

> **Note:** **Browser Support**. Due to browser compatibility issues, the **Manual Crop** feature in HyperCrop _isn't_ supported in **Safari**. Please run the plugin in another browser (like [Chrome](https://www.google.com/intl/en_us/chrome/)) or the [Figma Desktop App](https://www.figma.com/downloads/) instead.

---

---
url: "/hypercrop/overview/install.md"
description: "Ensure you're logged into your Figma account, then follow the steps below to install and run the [HyperCrop Figma Plugin](https://www.figma.com/community/plugin/818960915730257192/hypercrop-batch-image-resizer)."
---

# Install and run the HyperCrop Figma Plugin

> Ensure you're logged into your Figma account, then follow the steps below to install and run the [HyperCrop Figma Plugin](https://www.figma.com/community/plugin/818960915730257192/hypercrop-batch-image-resizer).

### Video Tutorial: How to install (and remove) Figma plugins

This video tutorial is a complete step-by-step guide showing you the new process of how to install (and remove) Figma plugins after the mid-2024 "UI3" update to the Figma app
[Embedded media](https://www.youtube.com/embed/CzjxF2Jv6PM)

## Installing the HyperCrop Figma Plugin

1. Open any Figma file.
2. Click on the **Actions** icon in the bottom Figma toolbar.
3. Click the **Plugins & Widgets** tab to filter results to Figma plugins.
4. Search for **HyperCrop** in the search bar.
5. Click on the **HyperCrop** search result.
6. Click the **Save** button to install the HyperCrop plugin.

> **Note:** Figma users in a **Figma Organization** may only be able to install approved plugins. Please contact your Figma Org admin at your company to [approve the HyperCrop plugin](https://help.figma.com/hc/en-us/articles/4404228724759-Manage-plugins-and-widgets-in-an-organization) if you're unable to install certain Figma plugins.

## Running the HyperCrop Figma Plugin

Once you've [installed](#installing-the-figma-plugin) the **HyperCrop** Figma plugin, to run the plugin in your Figma file:

  1. **Right-click** anywhere on your Figma file's page canvas
  2. Hover your mouse over the **Plugins** ▶ menu item
  3. Hover your mouse over the **Saved plugins** ▶ menu item
  4. Click on the **HyperCrop** plugin menu item

> **Tip:** After you've run the **HyperCrop** plugin once in a Figma file, you'll be able to quickly re-launch it by clicking the **HyperCrop** icon in the right-hand side Figma column (under the **Plugin** subheading).

> **Warning:** Only Figma users with **Edit** access to a Figma file can run a Figma plugin in that Figma file; if you only have **View** permissions, you won't be able to run any Figma plugins in that file.

## Uninstalling the HyperCrop Figma plugin

1. Open any Figma file.
2. Click on the **Actions** icon in the bottom Figma toolbar.
3. Click the **Plugins & Widgets** tab to filter results to Figma plugins.
4. Search for **HyperCrop** in the search bar.
5. Click on the **HyperCrop** search result.
6. Click the **Remove** button to uninstall the HyperCrop plugin.

> **Note:** This will remove the plugin from your **Saved Plugins** list, however, the Figma plugin may still show up under your **Recents** list (if it has been recently run), as Figma saves this list of recent plugins in your browser's/app's local storage. The plugin will vanish from the Recents menu after other plugins are run to take its place.

---

---
url: "/hypercrop/overview/pro.md"
description: "After trying out all the Pro features of HyperCrop **10 times**, you can optionally upgrade to continue using all the extra features that are only available in the Pro version; or if you're a casual user, you can continue using the Free version forever."
---

# Activating HyperCrop Pro

> After trying out all the Pro features of HyperCrop **10 times**, you can optionally upgrade to continue using all the extra features that are only available in the Pro version; or if you're a casual user, you can continue using the Free version forever.

> **Tip:** Need a HyperCrop Pro account? You can purchase a Pro account for you or your team by visiting the [HyperCrop](https://www.hypermatic.com/hypercrop/#pro) product page on the Hypermatic website.

## Activating the Figma plugin with an HyperCrop Pro license key

1. **Purchase a Pro license** for you or your team by visiting the [HyperCrop](https://www.hypermatic.com/hypercrop/#pro) product page on the Hypermatic website.
2. **Run the HyperCrop Plugin**, then click on the **Upgrade Now** button at the bottom of the Figma plugin window.
3. **Paste in your Pro key**, then click the **Unlock** button.

This will unlock the Pro version of HyperCrop and give you unlimited use all of the Figma plugin features.

> **Warning:** Note, if you're in China, the accounts server _may_ be blocked by "The Great Firewall of China". If you're seeing a activation error, despite using a valid key, you will likely need to use a [VPN](https://protonvpn.com/free-vpn/) to resolve the issue.

> **Info:** If you ever need to use a different license key at any time (for example, you were using your own personal Pro license key, but now your employer is buying you a Pro license to use instead), you can press **CTRL + K** while your plugin window is open in Figma, and this will bring up the license key prompt again, where you can enter a different license key.

---

---
url: "/hypercrop/overview/quickstart.md"
description: "Batch crop/resize multiple images into multiple sizes with presets, smart cropping and face detection."
---

# Get started with HyperCrop

> Batch crop/resize multiple images into multiple sizes with presets, smart cropping and face detection.

[![HyperCrop Figma Plugin](https://www.hypermatic.com/hypercrop.jpg)](https://www.figma.com/community/plugin/818960915730257192/hypercrop-batch-image-resizer)

## Install and activate HyperCrop

- [Install & Run the Figma plugin](/hypercrop/overview/install.md): How to run HyperCrop inside of Figma
- [Activate HyperCrop Pro](/hypercrop/overview/pro.md): How to buy and use a Pro license key

## Using HyperCrop

  - [HyperCrop Documentation](/hypercrop/batch-cropping.md): Detailed docs with short screencaps
  - [HyperCrop Video Tutorials](/hypercrop/tutorials.md): Full step-by-step video walkthroughs

## Frequently asked questions

- [Troubleshooting HyperCrop](/hypercrop/faq/troubleshooting.md): Common issues issues you may run into
- [HyperCrop Security](/hypercrop/faq/security.md): Details about how HyperCrop works
- [Receipts](/faq/receipts.md): Find email receipts and PDF invoices
- [Billing](/faq/billing.md): Manage your Pro subscription
- [License Seat Management](/faq/seats.md): Manage the Figma users on your key
- [HyperCrop Free vs Pro](/hypercrop/faq/plans.md): Compare Free vs Pro features

[Video](https://www.hypermatic.com/assets/videos/hypercrop/HYPERCROP_DEMO.mp4)

## HyperCrop features

- Batch crop multiple images into multiple sizes.
- High precision manual crop tool for individual image cropping.
- Automatic content aware and face detection smart crop features.
- Specify the anchor focal point per image (for example, "Bottom/Center")
- Includes quick size presets for social networks, platforms and devices.
- Add your own custom crop sizes to the crop presets library, per Figma page.
- Crop sizes, selections and options automatically saved in between uses.
- Export to JPG/PNG with optional image compression for smaller file sizes.
- Custom, dynamic filenames and subfolders (for example, "#name/#width_x_#height).

---

---
url: "/hypercrop/tutorials.md"
description: "The best free Figma tutorial videos for beginners (or power users) to level up."
---

# HyperCrop Video Tutorials

> The best free Figma tutorial videos for beginners (or power users) to level up.

## Video Tutorials

- [Crop and resize images](/hypercrop/tutorials/crop-and-resize-images)

---

---
url: "/hypercrop/tutorials/crop-and-resize-images.md"
description: "This tutorial shows how to use the HyperCrop Figma plugin to batch crop and resize selected images into multiple output sizes, then export them as a zip file. It also demonstrates manual cropping, content aware cropping, face detection, and customizable file naming for exports."
---

# Crop and resize images

> This tutorial shows how to use the HyperCrop Figma plugin to batch crop and resize selected images into multiple output sizes, then export them as a zip file. It also demonstrates manual cropping, content aware cropping, face detection, and customizable file naming for exports.

[← Back to HyperCrop Video Tutorials](/hypercrop/tutorials)

[Embedded media](https://www.youtube.com/embed/ysRuuEJvvYE)

**What this video covers**

This tutorial shows how to use the HyperCrop Figma plugin to batch crop and resize selected images into multiple output sizes, then export them as a zip file. It also demonstrates manual cropping, content aware cropping, face detection, and customizable file naming for exports.

**Things you'll need**

- Figma
- The HyperCrop plugin installed from Figma Community
- Images in the file with export settings applied

**Steps**

1. Install HyperCrop from Figma Community, then open it from Plugins > HyperCrop Batch Image Resizer.
2. Make sure the images you want to export have at least one export setting, then refresh the plugin to load them.
3. Select the images to crop on the right and choose output sizes on the left using presets or by entering a custom Crop Width and Crop Height.
4. Optionally add auto sizes, remove sizes with the Trashcan icon, and choose crop anchors, Content Aware, and Detect Faces for individual images.
5. Open Batch Crop, choose JPGs or PNGs, set image quality and image fill behavior, and adjust the File Name Format if needed.
6. Click Crop and Export Images to generate the resized files and save the zip export.
7. Use Crop Manually for a single image if you want direct control over aspect ratio, rotation, flipping, resizing, and downloading a JPG.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=ysRuuEJvvYE)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-batch-crop-and-resize-images-from-figma-using-hyper-crop)
- [Browse Hypercrop tutorial docs](https://docs.hypermatic.com/hypercrop/tutorials)

---

---
url: "/index.md"
description: "Hypermatic documentation landing page with links to all plugin guides, billing, and security."
---

# Hypermatic Figma Plugin Docs

> Hypermatic documentation landing page with links to all plugin guides, billing, and security.

## Documentation Sections

- [TinyImage Docs](/tinyimage/overview/quickstart.md): Export compressed JPG, PNG, SVG, WebP, AVIF, GIF and PDF files from Figma, reducing sizes by up to 95%.
- [Pitchdeck Docs](/pitchdeck/overview/quickstart.md): Create animated slide decks in Figma or export presentations to PowerPoint.
- [Convertify Docs](/convertify/overview/quickstart.md): Export Figma to Sketch, XD, After Effects or import XD, Illustrator, PowerPoint, Word Docs, Google Docs, and PDF to Figma.
- [Emailify Docs](/emailify/overview/quickstart.md): Design and export responsive, production-ready HTML emails from Figma.
- [CopyDoc Docs](/copydoc/overview/quickstart.md): Export, import, localize, and update text in Figma designs.
- [Bannerify Docs](/bannerify/overview/quickstart.md): Animate and export production ready banners from Figma to HTML, GIFs and Videos.
- [Crypto Docs](/crypto/overview/quickstart.md): Securely share your Figma designs and prototypes as password protected URLs or PDF files.
- [Favvy Docs](/favvy/overview/quickstart.md): Export production ready favicons (with code) for your website or PWA from Figma in seconds.
- [Pixelay Docs](/pixelay/overview/quickstart.md): Compare your Figma designs with live or local website URLs using smart browser overlays.
- [HyperCrop Docs](/hypercrop/overview/quickstart.md): Batch crop/resize multiple images into multiple sizes with presets, smart cropping and face detection.
- [Commentful Docs](/commentful/overview/quickstart.md): Supercharge your Figma comments and gather external feedback from stakeholders.
- [Weblify Docs](/weblify/overview/quickstart.md): Inspect Figma layers as HTML, React, or Vue code.

---

---
url: "/pitchdeck/design/animations.md"
description: "You can animate any direct child layer in the parent Figma Frame, Figma Component or Figma Instance in your slides by applying keyframe presets, speeds and timing offets to them. "
---

# Animating your slides

> You can animate any direct child layer in the parent Figma Frame, Figma Component or Figma Instance in your slides by applying keyframe presets, speeds and timing offets to them. 

> **Note:** **Animations are only used for web presentations**. Note that any animations you add will only be used in a presentation uploaded to the Pitchdeck web app; this means that **animations will not be included** in your PowerPoint/Keynote/Google Slides exports or PDF file exports.

[Video](/assets/videos/pitchdeck/design/adding-layer-animations.mp4)

## Choosing a preset animation style

Pitchdeck comes with dozens of pre-defined keyframe based animations, which are grouped into 3 categories:

- Entrances
- Transforms
- Advanced

To set an animation, ensure that the **Animations** tab is selected, then hover over the layer you would like to animate in the Pitchdeck layers list and click on the **select box**. Scroll through the list of animations and **click** on an animation name to apply it to your layer. You'll see the slide preview update instantly with the new animation applied.

## Changing the animation speed

You can adjust the speed and delay of your animations by **clicking down** on the left/right **edges** of the timeline bar for your layer, then **holding and dragging** with your mouse to adjust the length of your animation and it's start/end point.

You can shift the location of your animation on the timeline by **clicking down** on the **middle** of the timeline bar for your layer, then **holding and dragging** with your mouse; moving it either left or right to change where it is placed in your timeline.

## Copy/pasting animations between layers

If you already have an animation and timings that you like, you can click the **Copy** button on that layer in the plugin, then click **Paste** on any other layer to apply the same animation and timings there automatically.

> **Tip:** **Animations are carried over when copy/pasting Figma layers**. Any animations that you apply to a layer in a slide via the plugin will be attached to that Figma layer, so you can also copy/paste the Figma layer into other slide(s), and the animation will still be there when you refresh the slides in your plugin.

---

---
url: "/pitchdeck/design/charts.md"
description: "If you want to automatically generate Figma slide charts using data from your CSV files, you can click the **Add Slides/Charts** button at the bottom of your slides list, make sure the **Chart Builder** tab is selected, then follow the three steps below."
---

# Importing charts from spreadsheet data

> If you want to automatically generate Figma slide charts using data from your CSV files, you can click the **Add Slides/Charts** button at the bottom of your slides list, make sure the **Chart Builder** tab is selected, then follow the three steps below.

[Video](/assets/videos/pitchdeck/design/create-chart-from-csv.mp4)

## 1. Select Chart Type

You can select one of the chart options below:

- Bar Chart
- Column Chart
- Line Chart
- Area Chart
- Combo Chart
- Donut Chart
- Pie Chart
- Scatter Chart
- Stepped Area Chart

## 2. Add Chart Data from CSV

After you've selected your chart type, the data will be pre-populated with "sample data"; to use your own data, you can drag and drop your own `.csv` file into the dropzone area, which will automatically populate the chart preview with data. You can also make small edits to the data that was loaded into the plugin from your CSV file by clicking any of the input fields in your rows/columns under the `.csv` upload dropzone area.

> **Tip:** **Download sample CSV files for each chart type**. You can download a `.csv` file containing sample data for any chart type by clicking your chart type, then clicking the **chart-type-name-sample-data.csv** link (right next to the _2. Add Chart Data_ heading in the Chart Builder window), which will download the CSV file to your computer. Then you can edit/update the CSV file and drop it into the plugin's dropzone to apply the data to your chart.

## 3. Add Chart Slide to Figma

Once you've chosen your chart type and dropped your CSV file into the dropzone, click the **Add Chart Slide to Figma** button to instantly add your chart to Figma as a new editable slide in your presentation.

You can optionally customize the colors, text content or any other elements of the chart design by editing the vector/text layers that are automatically added to your page when the chart is inserted from the plugin.

---

---
url: "/pitchdeck/design/import-markdown.md"
description: "Import .md and .markdown presentation files into Figma using Pitchdeck, including Deckset-style syntax, editable text, images, tables, presenter notes, footers, local slide links, and supported Markdown presentation commands."
---

# Importing Markdown presentation files into Figma as editable slides

> Import .md and .markdown presentation files into Figma using Pitchdeck, including Deckset-style syntax, editable text, images, tables, presenter notes, footers, local slide links, and supported Markdown presentation commands.

> **Note:** **Markdown Import is in BETA**. This importer supports Deckset syntax for common Markdown presentation files and works best when your deck uses standard Markdown plus presentation-style commands for slide dividers, backgrounds, images, notes, and footers.

## Importing a Markdown file

To import a Markdown presentation file into Figma, open the Pitchdeck plugin and drag a `.md`, `.markdown`, or `.zip` file from your computer into the import dropzone underneath the slide list. You can also click the import dropzone and browse for the file.

If your deck was written for Deckset, you can import the same Markdown file directly. Pitchdeck supports Deckset-style syntax for slide dividers, presenter notes, images, footers, slide numbers, and other supported presentation commands.

Pitchdeck will create a new page in your current Figma file, then add each Markdown slide as an editable Figma slide frame. Most imported content is created as regular Figma text, image, vector, and layout layers, so you can keep editing the deck after import.

> **Tip:** **Zip local media together with your Markdown file**. If your Markdown file references local images, SVGs, videos, or audio files, create a `.zip` file that contains one `.md` or `.markdown` file plus all of the local media files it references. If you do not want to bundle local files, use direct external image or media URLs instead.

## Supported Markdown content

Markdown Import supports common presentation content and imports it into editable Figma layers where possible:

- Headings, paragraphs, quotes, inline code, code blocks, and formulas as editable text.
- Bold, italic, strikethrough, superscript, subscript, inline links, and simple `` text styling.
- Unordered, ordered, nested, and source-numbered lists.
- Tables with basic alignment.
- Footnotes, including named footnotes and multiline footnotes.
- Presenter notes from `^ note` lines.
- Local slide anchors and links, including `[Jump](#slide-anchor)` links.
- Inline images, background images, split left/right images, image rows, remote SVGs, and missing-media placeholders.
- Video and audio references as media metadata or placeholders.
- Mermaid flowchart, graph, and pie diagrams as vector diagrams.
- Pikchr box/arrow diagrams as vector diagrams.

## Presentation commands

You can add commands at the top of the Markdown file to control the whole import:

```markdown
autoscale: true
background-image: hero.png
build-lists: notFirst
fit-header: #, ##
footer: Confidential
image-corner-radius: 18
paragraphs-as-presenter-notes: false
slide-dividers: ####
slidecount: true
slidenumbers: true
time-budget: 12
```

You can also add per-slide commands using bracket syntax:

```markdown
[.background-color: #111827]
[.footer: Local footer override]
[.slidenumbers: false]

# Slide title
```

Some commands are preserved as metadata so the original Markdown intent is not lost, even when Figma does not have a direct editable equivalent.

```markdown
build-lists: notFirst
slide-transition: fade(0.4)
time-budget: 12
```

## Slide dividers and anchors

Use `---` to separate slides. If you prefer heading-based slide breaks, add a `slide-dividers` command at the top of the file.

```markdown
slide-dividers: ####

# First slide

---

#### Second slide
```

You can add anchors to headings or with HTML anchor tags:

```markdown
# Closing Summary {#closing-summary}

```

External links are imported as Figma text hyperlinks. Local links that point to an imported slide anchor are converted into Figma prototype navigation links after all slides have been created.

```markdown
[Visit Hypermatic](https://hypermatic.com)
[Jump to closing](#closing-summary)
```

## Images and media

Use regular Markdown image syntax for images:

```markdown
![inline 50%](diagram.png)
![left fit](product-shot.png)
![right alpha(0.6)](panel.png)
```

For local images, keep the referenced file paths inside the same `.zip` as the Markdown file:

```text
presentation.zip
  deck.md
  images/hero.png
  diagrams/flow.svg
```

Then reference those files from the Markdown:

```markdown
![inline](images/hero.png)
![inline](diagrams/flow.svg)
```

If an image is not included in the zipped import, use a direct external URL instead:

```markdown
![inline](https://example.com/images/hero.png)
```

Common image modifiers include:

- `inline` for inline slide content.
- `left` or `right` for split-image slide layouts.
- `fit` or `fill` for image scaling.
- `alpha(0.6)` for image opacity.
- `corner-radius(16)` for rounded image corners.
- `bn`, `bw`, `vivid`, `noir`, `chrome`, `fade`, `saturation()`, `blur()`, `contrast()`, `brightness()`, `exposure()`, `sepia()`, `vignette()`, and `sharpen()` for static image filter approximations.

Leading image-only lines at the start of a slide are treated as background images. SVG background images are imported as regular vector content instead of Figma image fills.

Video and audio references are preserved as Markdown media metadata. If the media file can be resolved, Pitchdeck creates a placeholder using the file metadata; otherwise it creates a clear missing-media placeholder so the import can continue.

## Diagrams

Mermaid and Pikchr fenced code blocks are imported as vector diagrams for the supported diagram types.

````markdown
```mermaid
flowchart LR
  A[Markdown] --> B[Pitchdeck]
  B --> C[Figma]
```
````

````markdown
```pikchr
box "Markdown"
arrow right
box "Figma"
```
````

More complex Mermaid or Pikchr diagrams may be imported as a vector source-card fallback so the original diagram source remains visible and editable after import.

## Tables and footnotes

Markdown tables are imported as editable text-based table layouts:

```markdown
| Left | Center | Right |
| --- | :---: | ---: |
| Plain | _Emphasis_ | **Strong** |
```

Footnotes are collected on the slides that reference them:

```markdown
Here is a claim with a footnote.[^source]

[^source]: First footnote line.
  Continuation line for the same footnote.
```

## Presenter notes

Use lines that begin with `^` to add presenter notes to a slide:

```markdown
# Slide title

Visible slide content.

^ This note is saved with the imported slide.
```

Presenter notes are saved on the imported slide as Pitchdeck slide data and Markdown-specific plugin data, so they can be used by Pitchdeck after import.

## Current limitations

- Formula syntax is kept visible as editable text; it is not converted into a rendered math diagram.
- Build-list commands are preserved as Markdown metadata, but they are not converted into native Figma layer build steps.
- Slide-transition commands are metadata-only for normal Figma design-file imports. When importing into a Figma Slides file, Pitchdeck attempts to apply the closest native Figma slide transition if the Figma API supports it.
- Audio files do not play directly from imported Figma frames; audio references are preserved as metadata/placeholders.
- Remote media imports depend on the URL being directly accessible from the plugin.
- Some diagram and image filter commands are approximated to match the closest available Figma behavior.

## Troubleshooting

If the import appears slow, please wait for the importer to finish preparing the Markdown slides. Larger Markdown files with many remote images can take longer because the plugin needs to resolve those assets before it can render the deck.

If an image, video, or audio file is missing after import, try importing the Markdown file again and include the referenced local media files in the same drag-and-drop action.

If a local slide link does not navigate to another slide, check that the target slide has a unique anchor and that the link uses the same anchor ID.

## Creating Markdown decks with AI

> **Tip:** **Use AI to draft a compatible `.md` deck**. You can ask AI tools like OpenAI, Claude, or Gemini to turn slide ideas, rough outlines, meeting notes, transcripts, or existing documents into Pitchdeck-compatible Markdown. For best results, ask for plain Markdown only, use `---` between slides, use `#` and `##` headings, add presenter notes with `^`, and avoid unsupported HTML or custom CSS.

Here are a few example prompts you can copy and adapt:

```text
Turn the notes below into a Pitchdeck-compatible Markdown presentation.

Use Deckset-style syntax with:
- `---` between slides
- `#` for slide titles
- concise bullets
- Markdown tables where useful
- `^` lines for presenter notes

Add these commands at the top of the file:
autoscale: true
fit-header: #, ##
slide-dividers: ---
slidenumbers: true

Output only the final .md file content, with no explanation.

Notes:
[paste your notes here]
```

```text
Create a 10-slide product demo deck as a Pitchdeck Markdown import file.

Use a strong title slide, problem slide, workflow slide, feature slides, a comparison table slide, and a closing slide.
Use `---` to separate slides, `#` and `##` for headings, and `^` lines for presenter notes.
Add simple per-slide commands like `[.background-color: #f8fafc]` only where they help the design.

Do not use unsupported HTML layouts or custom CSS.
Output only Markdown.
```

```text
Convert this meeting transcript into an executive summary deck for Pitchdeck.

Keep each slide focused on one idea.
Include slide titles, 3-5 bullets per slide, and presenter notes that summarize what to say.
Use Deckset-style Markdown syntax compatible with Pitchdeck import:
- `---` between slides
- `#` and `##` headings
- Markdown tables where comparison is useful
- `^` lines for presenter notes

Output only the .md file.

Transcript:
[paste your transcript here]
```

## Starter Markdown example

If you want a quick way to try Markdown Import, you can copy and paste the example below into a new `.md` file, or download a more complete demo deck:

Download the Pitchdeck Markdown import demo `.md` file

```markdown
autoscale: true
background-color: #f8fafc
fit-header: #, ##
footer: Pitchdeck Markdown Import Demo
slide-dividers: ---
slidecount: true
slidenumbers: true

[.background-color: #0f172a]
[.header: #ffffff, alignment(center), text-scale(92)]
[.text: #cbd5e1, alignment(center), text-scale(34)]

# [fit] Markdown to Figma Slides

Turn a plain `.md` deck into editable Pitchdeck slides.

^ This note is saved as a presenter note on the imported slide.

---

# Why Markdown Import?

[.column]
## Write fast

- Draft in any editor
- Keep slides in Git
- Reuse existing Markdown notes

[.column]
## Design later

- Import as editable Figma layers
- Adjust type, layout, and colors
- Export to PPTX when ready

[.end-columns]

---

# One file, many layer types

| Markdown source | Imported result |
| --- | :---: |
| Headings and paragraphs | Editable text |
| Lists and quotes | Structured text |
| Tables | Text-based table layout |
| Presenter notes | Slide notes |

---

[.background-color: #ecfdf5]
[.header: #065f46, alignment(center), text-scale(76)]

# Try it yourself

1. Save this as `pitchdeck-demo.md`.
2. Open Pitchdeck in Figma.
3. Drag the `.md` file into the import dropzone.
4. Edit the imported slides in Figma.
```

---

---
url: "/pitchdeck/design/import-pptx.md"
description: "If you already have a presentation designed in PowerPoint, Google Slides or Keynote, you can automatically import the slides from your .pptx file as editable Figma layers with one click."
---

# Importing slides from a PPTX file into your Figma file as editable layers

> If you already have a presentation designed in PowerPoint, Google Slides or Keynote, you can automatically import the slides from your .pptx file as editable Figma layers with one click.

### Video Tutorial: Import slides from PowerPoint to Figma in one click

This video walks through how to import slides from PowerPoint (.pptx files) into Figma using the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/CpMNE8U_kJ8)
### Video Tutorial: Import Google Slides to Figma in one click

This video walks through how to import slides from Google Slides (downloaded as .pptx files) into Figma using the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/phr2bzBcrO4)

> **Note:** **The PPTX Import feature is in BETA**. Note that this feature is still in BETA, so it works best for presentations that contain simpler designs (for example, mostly consisting of text, images and shapes). See below for a list of [supported](#supported-in-pptx-to-figma-imports) and [unsupported](#not-supported-in-pptx-figma-imports) content.

[Video](/assets/videos/pitchdeck/design/import-pptx.mp4)

To import a PPTX file that you've exported from the PowerPoint app, Kenote app, or Google Slides, you can drag and drop (or click and browse) a `.pptx` file from your computer into the **Import .pptx** dropzone area underneath the slide list in the Pitchdeck plugin; then please wait for the editable slides to be imported into a new page in your current Figma file.

> **Tip:** **If your .pptx file won't open in the plugin**. If you've dropped in a `.pptx` file and the plugin says it can't read it, please try opening the file in your PowerPoint desktop app again, then re-saving the presentation as a brand new `.pptx` file and then try using this new `.pptx` file to drag into the Pitchdeck plugin.

### Supported in PPTX to Figma Imports

- Slides
- Images
- Text
- Shapes
- Tables (Supports text content, but not any other styles)
- Speaker Notes

### _Unsupported_ in PPTX to Figma Imports

- Charts
- SmartArt
- Headers and Footers
- Embedded Videos
- Vertical Text
- Preset Layouts/Themes
- Some custom fonts may not carry over

## Importing your PPTX slides into a Figma Slides file

### Video Tutorial: Import PowerPoint (.pptx) to Figma Slides

This video walks through how to import PowerPoint (.pptx) to Figma Slides using the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/h2cAnTxI1yM)
### Video Tutorial: Import Google Slides to Figma Slides

This video walks through how to import Google Slides to Figma Slides using the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/twFlJ81u4qE)

[Video](/assets/videos/pitchdeck/design/figma-slides-import.mp4)

If you want to use your imported PPTX slides in [Figma Slides](https://www.figma.com/slides/) (instead of a regular Figma file), you can drag and drop (or click and browse) a `.pptx` file from your computer into the **Import .pptx** dropzone area underneath the slide list in the Pitchdeck plugin; then after the slides have finished importing, you can select the slide(s) on your Figma canvas, then right-click and click **Copy**, then open a new Figma Slides file and right-click anywhere in the slides list (on the left hand side) and click **Paste** to insert your slides into your Figma Slides file.

> **Note:** **The PPTX Import feature is in BETA**. Note that this feature is still in BETA, so it works best for presentations that contain simpler designs (for example, mostly consisting of text, images and shapes). See above for a list of [supported](#supported-in-pptx-to-figma-imports) and [unsupported](#not-supported-in-pptx-figma-imports) content.

---

---
url: "/pitchdeck/design/keyframes.md"
description: "If you need a specific animation that isn't available in the animation presets included in Pitchdeck by default, you can create your own custom timeline animation by adding custom keyframes with your own *x*, *y*, *scale*, *rotation* and *opacity* properties."
---

# Creating custom keyframe animations

> If you need a specific animation that isn't available in the animation presets included in Pitchdeck by default, you can create your own custom timeline animation by adding custom keyframes with your own *x*, *y*, *scale*, *rotation* and *opacity* properties.

## Creating a new custom animation

[Video](/assets/videos/pitchdeck/design/custom-animation-create.mp4)

To open the custom animations panel, click on the **Animations** button in the main Pitchdeck header. This will open up the custom animation panel, where you'll be able to start adding your own keyframe animation.

When you open the animations panel, you'll see 2 keyframes; the first keyframe (0%) and the final keyframe (100%). These are added by default and can't be removed, as a keyframe animation needs at least one frame to start the animation from and a keyframe to show where it ends.

### Selecting a keyframe to edit

You can instantly swap between any keyframes by clicking a keyframe under the **Animation Timeline** near the top of the custom animations panel. Clicking a keyframe will allow you to edit the properties for that specific keyframe.

### Inserting new keyframes

To add a keyframe between the default start and end points, enter its percentage (for example, **50**) and select **Insert New Keyframe**.

Any new keyframe that you add will automatically be created with the same properties that your currently selected keyframe contains; this lets you Adjust properties based on other keyframes you've already added. Your newly added keyframe will also be automatically selected after you click the **Insert New Keyframe** button.

### Editing keyframe properties

You can edit 5 different properties for any of your animation keyframes. Any differences in properties between your keyframes will automatically be animated. For example, setting scale to 2x on the 0% keyframe, and setting scale to 1x on the 100% keyframe will automatically create a "shrinking" animation.

- The **X** property will animate your element's left/right pixel position.
- The **Y** property will animate your element's top/bottom pixel position.
- The **Opacity** property will animate your element's transparency percentage.
- The **Rotate** property will animate your element's rotation degrees.
- The **Scale** property will animate your element's size.

### Copying and pasting keyframe properties

You can copy/paste properties from one keyframe to another by first selecting the keyframe you would like to copy the properties from, clicking the **Copy Properties** button, then selecting the keyframe you would like to paste the copied properties to, then clicking the **Paste Properties** button to paste the copied properties onto the selected keyframe.

> **Note:** **Copied properties are only available until the panel is closed** You can copy and paste properties from/to any keyframes in your animations while the custom animations panel is open, any copied properties will be not be available to paste after you close the custom animations panel.

### Deleting keyframes

To delete an keyframe, click any keyframe under the **Animation Timeline** to select it, then click on the **Delete Keyframe** button to delete your keyframe from the timeline. Note, that you _can't_ delete the **0%** or **100%** keyframes, as these are default keyframes required for your animation timeline.

After you delete any keyframe, the **0%** keyframe will automatically be re-selected as the active keyframe to edit.

> **Warning:** **Deleting a keyframe animation will permanently delete it**. When you delete any of your keyframes, it will be permanently removed from your timeline and you won't be able to undo the deletion. However, you are able to **Copy Properties** of a keyframe, delete it, then paste your deleted properties in a different keyframe while you're still editing your animation timeline.

### Using the live preview to see your animation

To See how your animation is looking based on the keyframes and their properties that you've updated, you can look at the **Live Preview** area, which sits right next to your keyframe properties, and directly underneath the animation timeline. Any changes you make to your keyframes, properties or easing will automatically be shown in the live preview.

> **Note:** **You can adjust the playback speed of the live preview**. If you want to see how your custom animation looks at different speeds, you can change the playback speed in the live preview by dragging the **Preview Speed** slider left and right to increase and decrease the playback speed.

### Setting the animation easing

You can choose what kind of easing you need your animation to have by choosing an option from the **Easing** select box. Easing is automatically applied to your entire timeline, and will update the **Live Preview** area so you can see how your selected easing changes how your keyframe animation moves.

You can choose from the following easing options:

- Ease (Default)
- Linear
- Ease In
- Ease Out
- Ease In Out

### Saving your new custom animation

To save your new animation, give your animation a name by filling in the **New Custom Animation Name** input text field, then click the **Add New Animation**

> **Note:** **Custom animations will only be saved/available to the _current Figma file_** Saving an animation makes it available to any _page_ inside your _current_ Figma file. However, your saved animations _won't_ show up if you run Pitchdeck inside a completely different/new Figma file, as the animations are saved directly to the Figma file and can't be transferred to another file. You will need to re-create any new animations in any new Figma files. Alternatively, you could setup a new _page_ in the _current_ Figma file, where your saved custom animations from this Figma file will still be available to use.

### Using your saved custom animations

Once you've saved at least one custom animation, you can use them in your slides by clicking the **entry animations** and **exit animations** select boxes in your layers timelines; you will see a new group in the select box options called **Custom Animations**, where you'll be able to see all of the custom animations that you've saved.

As with other preset animations, you can also apply your custom animation in bulk by using the [bulk apply](/bannerify/animation/animating-banners#applying-bulk-animations) feature.

## Updating your saved animations

[Video](/assets/videos/pitchdeck/design/custom-animation-update.mp4)

To update a custom animation that you've previously saved, choose the animation you'd like to update from the **Your Saved Animations** select box; this will load up your saved animation and its keyframes into the custom animation panel.

Once you've chosen the saved animation, you can edit your keyframes and properties as needed. Once you're happy with the updates, click the **Update Saved Animations** button to save the changes and _override_ the previous animation keyframes.

Note, updating a saved animation will automatically apply the updated keyframes to any layers in your slides that was already using the custom animation you've just updated.

> **Tip:** **Create a new animation based on a saved animation**. If you want to load in a saved animation and modify it, but not "override" the saved version, you can create a new animation from it by entering in a **New Custom Animation Name** and clicking the **Add New Animation** button.

## Deleting your saved animations

[Video](/assets/videos/pitchdeck/design/custom-animation-delete.mp4)

To delete an animation, select any option under **Your Saved Animations** to load in the animation, then click on the **Delete Saved Animation** button to delete your saved animation.

> **Warning:** **Deleting a saved animation will permanently delete it and remove it from your layers**. When you delete any of your saved animations, it will be permanently removed from **Your Saved Animations** list. Any layers in your slides that were using the deleted custom animation will be changed back to having **no animation** applied.

---

---
url: "/pitchdeck/design/links.md"
description: "You can add clickable links to other slides or external URLs to layers inside of your slides, which will be included in any export options from the plugin."
---

# Adding links to your slide layers

> You can add clickable links to other slides or external URLs to layers inside of your slides, which will be included in any export options from the plugin.

## Adding clickable links via the Pitchdeck plugin interface

[Video](/assets/videos/pitchdeck/design/adding-links-via-plugin.mp4)

### Adding links to other slides

To add a link to another slide on any child layer in a slide, you can click the **URL/Slide Links** tab, then hover over the child layer where you would like to attach a clickable link; then select the slide you would like to link to from the drop down menu.

To **remove** a slide link from any layer, ensure the dropdown option selected is set back to **Link to an external website URL**, and then ensure the URL text input field for that layer is also empty.

### Adding links to external URLs

To add external clickable URL to any child layer in a slide, you can click the **URL/Slide Links** tab, then hover over the child layer where you would like to attach a clickable link; ensure the dropdown option selected is **Link to an external website URL**, then paste any valid URL into the text input field.

To **remove** a URL link from any layer, you can delete the URL from the text input field for that layer.

> **Note:** **Email mailto: links are supported**. If you need to link to an email address (instead of a website URL), you can enter the format of **mailto:your@email.com** in the text input field, which will open an email link instead of a website.

## Adding clickable links for Interactive PDFs via native Figma Prototype links

[Video](/assets/videos/pitchdeck/design/adding-links-via-prototype.mp4)

As an alternative to using the built-in "Links" tab in Pitchdeck, you can also add links to elements in your slides via Figma's "Protoype" tab, where "On Click" links to another slide or a URL are supported in PDF exports from the Pitchdeck plugin.

---

---
url: "/pitchdeck/design/media.md"
description: "You can embed media to any direct child layer in the parent frames in your slides by pasting a URL (linking to to a **.gif** file, **.mp4** file or a YouTube/Vimeo video) or using the built-in search options (powered by [GIPHY](https://giphy.com/) and [Pixabay](https://pixabay.com/))."
---

# Embedding GIFs/video to your slides

> You can embed media to any direct child layer in the parent frames in your slides by pasting a URL (linking to to a **.gif** file, **.mp4** file or a YouTube/Vimeo video) or using the built-in search options (powered by [GIPHY](https://giphy.com/) and [Pixabay](https://pixabay.com/)).

### Video Tutorial: Embed videos and GIFs

This video walks through how to embed GIF and videos from YouTube/Vimeo into your Figma slide deck designs, that you can use in real presentations using the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/sT8Rt1DLnCM)

[Video](/assets/videos/pitchdeck/design/embed-videos-gifs.mp4)

## Searching/inserting GIFs to your slides

To add GIFs using the built-in GIPHY search integration, you can click the **GIFs/Videos** tab, then hover over the child layer where you would like to embed the GIF; then click on the **GIPHY** button to open the search panel. Type a keyword in the search field, then click the **Search** button to load the list of GIF results for your keyword search.

To **insert** a GIF result into your selected layer, you can click on any of the GIF thumbnails in the GIPHY search results list.

To **remove** a GIF from any layer, you can delete the URL from the text input field for that layer.

> **Tip:** **You can embed your own .gif URLs**. If you have a GIF hosted on your own website or another website that you would like to embed, you can manually paste the valid direct link to the `.gif` file into the embed text input.

> **Note:** **Native GIF layer fills inside the Figma document are supported**. Any GIFs added "directly" inside your Figma designs will be included automatically during export.

## Searching/inserting stock videos to your slides

To add stock videos using the built-in Pixabay search integration, you can click the **GIFs/Videos** tab, then hover over the child layer where you would like to embed the video; then click on the **Pixabay** button to open the search panel. Type a keyword in the search field, then click the **Search** button to load the list of stock video results for your keyword search.

To **insert** a video result into your selected layer, you can click on any of the video thumbnails in the Pixabay search results list.

To **remove** a stock video URL embed from any layer, you can delete the URL from the text input field for that layer.

You can also add your own .mp4 video, by hosting it on something like [Backblaze B2/Dropbox](/pitchdeck/faq/troubleshooting#where-to-host-mp4-video-files) and copy/pasting the URL into Pitchdeck.

> **Warning:** **Videos are only used for web presentations**. Note that any video embeds that you add will only be used in a presentation uploaded to the Pitchdeck web app; this means that no videos will be included in your Keynote or Google Slides exports.

> **Info:** If you have MP4 Video URL (linking directly to an `.mp4`) embeds in your layers, you can optionally enable the **Include MP4 Video URL Embeds** toggle in your PowerPoint export settings, which will ensure your MP4 video is embedded as a playable video layer that's supported in the PowerPoint app.

## Embedding external video URLs to your slides

To add external video URLs from [YouTube](https://youtube.com) and [Vimeo](https://vimeo.com), you can click the **GIFs/Videos** tab, then hover over the child layer where you would like to embed the video; then paste any valid video URL from **YouTube** or **Vimeo** into the text field to embed it.

You can also add your own .mp4 video, by hosting it on something like [Backblaze B2/Dropbox](/pitchdeck/faq/troubleshooting#where-to-host-mp4-video-files) and copy/pasting the URL into Pitchdeck.

To **remove** an external video URL embed from any layer, you can delete the URL from the text input field for that layer.

> **Warning:** **Videos are only used for web presentations**. Note that any external video embeds that you add will only be used in a presentation uploaded to the Pitchdeck web app; this means that no videos will be included in your PowerPoint/Keynote/Google Slides exports.

> **Info:** If you have MP4 Video URL (linking directly to an `.mp4`) embeds in your layers, you can optionally enable the **Include MP4 Video URL Embeds** toggle in your PowerPoint export settings, which will ensure your MP4 video is embedded as a playable video layer that's supported in the PowerPoint app.

> **Note:** **Toggle autoplay for YouTube/Vimeo embeds**. By default, YouTube and Vimeo video embeds will be set to autoplay when the slide it's on loads; you can toggle this by clicking the **Autoplay (YouTube/Vimeo)** toggle switch under the embed URL. Note, that this setting will be ignored if you're presenting a web presentation via the remote control; in this case, videos will always autoplay, as you're likely away from the computer/mouse.

## Scaling your GIF and MP4 video embeds

You can select the way your GIF embed is scaled by using the **Scale** select box located directly underneath the URL input.

- Selecting the **Fill GIF/MP4** option will ensure the GIF covers your entire layer, with some possible outer cropping.
- Selecting the **Fit GIF/MP4** option will ensure the entire GIF is included inside your layer, with some possible blank space either on the left/right or top/bottom.

## Embedding MP4 video URLs into your PPTX exports for PowerPoint (Optional)

### Video Tutorial: Export PowerPoint files with MP4 video embeds from Figma

This video walks through how to export PowerPoint (.pptx) files with MP4 video embeds from Figma using the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/z8dUH4tDdFg)

[Video](/assets/videos/pitchdeck/design/export-pptx-video.mp4)

If you have MP4 Video URL (linking directly to an `.mp4`) embeds in your layers, you can optionally enable the **Include MP4 Video URL Embeds** toggle in your PowerPoint export settings, which will ensure your MP4 video is embedded as a playable video layer that's supported in the PowerPoint app.

You can also customize the video thumbnails from the plugin dropdown options below:

- **Automatic Video Thumbnails from MP4**: Automatically use a frame from your video embeds for thumbnails (from the start, middle or end of your videos)
- **Use Figma Layer for Video Thumbnails**: Use the content of your Figma layer (that the .mp4 file embed is on) as a totally custom thumbnail
- **No Custom Video Thumbnails**: Don't set any thumbnail (which is what it was previously doing, where PowerPoint sets its own default play button thumbnail)

> **Note:** Note that the "Fill" sizing property isn't supported in PowerPoint, so the video will "Fit" into your Figma layer size, regardless of aspect ratio.

---

---
url: "/pitchdeck/design/notes.md"
description: "Your slide notes will be included in any PowerPoint, Keynote or Google Slides export, and will also be viewable from the presenter mode in the Pitchdeck web app."
---

# Adding speaker notes to your slides

> Your slide notes will be included in any PowerPoint, Keynote or Google Slides export, and will also be viewable from the presenter mode in the Pitchdeck web app.

[Video](/assets/videos/pitchdeck/design/add-speaker-notes-to-slide.mp4)

You can add speaker notes to each slide by clicking the **Speaker Notes** text area and typing or pasting your notes for that slide in the field.

## Exporting your speaker notes to a text file

[Video](/assets/videos/pitchdeck/design/saving-speaker-notes-to-text-file.mp4)

You can instantly export all of the speaker notes you've added to your slides in the Pitchdeck plugin by clicking the **export** icon button in the **Speaker Notes** area at the bottom of the plugin window. This will let you save a `.txt` file containing all of your notes to your computer.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

---

---
url: "/pitchdeck/design/presets.md"
description: "Create reusable Figma component-based slide layouts in Pitchdeck, then style and populate them with your own content."
---

# Adding preset layout slides to your deck

> Create reusable Figma component-based slide layouts in Pitchdeck, then style and populate them with your own content.

[Video](/assets/videos/pitchdeck/design/adding-slide-layouts.mp4)

If you want to quickly add slide layouts without needing to design them, you can click the **Add Slides/Charts** button at the bottom of your slides list, make sure the **Slide Layouts** tab is selected, and then click on any slide layout thumbnail to add it to your Figma page as a Figma Component automatically.

## Setting global text and color styles for your layout components

[Video](/assets/videos/pitchdeck/design/styling-slide-layouts.mp4)

When you use the slide layout feature, the plugin will automatically create a _Pitchdeck_ folder under your Figma _Text styles_ and _Color styles_ menus, where you can tweak the typography and color styles for the slides and text layers added via the slide layouts feature in one go.

## Adding new Instances of your Master Slide components

[Video](/assets/videos/pitchdeck/design/adding-layout-instances.mp4)

Under the same **Add Slides/Charts** panel, clicking the **Master Slides** tab will allow you quickly see all of the Master Slides (Figma _Component_ Layers) on your page as thumbnails, and click on any to add it as a new Figma _Instance_ slide layer on your page.

## Convert existing Figma slide frames into reusable components

[Video](/assets/videos/pitchdeck/design/convert-slides-into-components.mp4)

The **Master Slides** tab also supports any slide Figma Components that you've added to the page yourself; to convert any existing Figma Frames into Figma Components that can be re-used as instances from the plugin, right-click on your Figma Frame, then click **Create Component** in the context menu.

If you then click the **Refresh Component Slides** in the plugin under the **Master Slides** tab, you'll be able to quickly add new instances of your slide components to the page.

---

---
url: "/pitchdeck/design/slides.md"
description: "Pitchdeck works by loading the top level parent Figma Frames, Figma Components or Figma Instances from the current Figma page via the Pitchdeck Figma plugin, and treating each frame as a 'slide' for your presentation."
---

# Designing your presentation slides

> Pitchdeck works by loading the top level parent Figma Frames, Figma Components or Figma Instances from the current Figma page via the Pitchdeck Figma plugin, and treating each frame as a 'slide' for your presentation.

## Adding slides to your deck

[Video](/assets/videos/pitchdeck/design/pitchdeck-create-frame.mp4)

Any top level Figma Frames, Figma Components or Figma Instances that you add to your Figma page will be treated as slides in the Pitchdeck plugin.

For the best results, please ensure that all of the Figma Frames, Figma Components or Figma Instances you want to use for slides are all the same size.

Using a consistent frame size at a 16:9 ratio (for example, **1280x720** or **1920x1080**) tends to work best for presenting on most screens.

> **Tip:** **Adding longer scrollable frames** Including any Figma Frames, Figma Components or Figma Instances that are taller than they are wide (for example, 1920x2600) will automatically be turned into "scrollable" slides when presenting in the Pitchdeck Web App; this can be helpful for presenting things like website mockups or other longform "pages" in your deck.

> **Note:** If you want to use portrait orientation frames (for example, 1080x1920) and not have them scrollable (which is the default behavior), you can add `&contain=true` to your passwordless Pitchdeck presenatation URL, or `?contain=true` to your Pitchdeck URL that doesn't have a token, and this will ensure the slide is contained within your screen size and doesn't scroll.

> **Warning:** **Rotated parent frames will affect element positioning**. Note that using a parent frame that has rotation (any non-zero value), will affect the x/y positions of its children. This can sometimes happen by accident if you initially created a portrait frame, then rotated it to landscape. To ensure that everything is positioned correctly, please ensure that your parent Figma Frames, Figma Components or Figma Instances don't have any rotation on them.

## Loading slides from Figma

[Video](/assets/videos/pitchdeck/design/pitchdeck-select-slides.mp4)

If you select a subset of your top level Figma Frames, Figma Components or Figma Instances on the canvas before opening Pitchdeck, or before refreshing the slide loader, Pitchdeck will focus on those selected items so you can load just that subset.

This temporary canvas selection does not change the include or exclude checkboxes for your other slides. You can refresh again later to load additional slides without losing the saved checkbox state for slides that were not part of the current Figma selection.

## Selecting a slide to edit

[Video](/assets/videos/pitchdeck/design/selecting-slides.mp4)

You can switch between your slides in the plugin by clicking the image thumbnail for each frame in the left hand side of the Pitchdeck plugin.

> **Note:** **Parent level Figma frames required**. To load any slides into Pitchdeck, your Figma page must contain at least one parent Figma Frame, Figma Component or Figma Instance. This means, any Figma Frames, Figma Components or Figma Instances that are located _directly_ underneath your page.

## Inlcuding or excluding slides to include

[Video](/assets/videos/pitchdeck/design/excluding-slides-from-exports.mp4)

You can include (or exclude) any Figma Frames, Figma Components or Figma Instances from being used in your presentation by clicking the checkbox next to the frames in the left hand side of the Pitchdeck plugin.

## Refreshing your slides from Figma frames

[Video](/assets/videos/pitchdeck/design/refresh-slides-list.mp4)

If the Pitchdeck plugin is already running and you need to add or remove any parent Figma Frames, Figma Components or Figma Instances on your current Figma page, you can make those updates as needed and then click on the **Refresh** icon button in the Pitchdeck plugin toolbar.

## Auto-scrolling slides into view

[Video](/assets/videos/pitchdeck/design/selecting-slides.mp4)

To Switch between editing slides, Pitchdeck automatically scrolls a slide into view in the preview window when it's corresponding layer (or child layer) is clicked on the Figma page.

This also works the other way around, where if you click on the **frame**, **component** or **instance** icon button (depending on the slide layer type) next to the title of your slide in the preview window, the corresponding Figma Frame, Figma Component or Figma Instance will be automatically scrolled and zoomed into view on your Figma page.

## Resizing the plugin window

[Video](/assets/videos/pitchdeck/overview/resize-plugin-window.mp4)

If you're using a bigger (or smaller) computer monitor, Pitchdeck lets you resize the plugin window to make it easier to use and view the timeline depending on the size of your screen. You can resize the window from smaller to larger (4K) sizes by clicking the size dropdown in the main plugin header menu.

---

---
url: "/pitchdeck/embeds/audio.md"
description: "Embed MP3 or OGG audio in Pitchdeck using direct file URLs."
---

# Embedding MP3/OGG audio files

> Embed MP3 or OGG audio in Pitchdeck using direct file URLs.

You can embed a MP3 or OGG audio file by finding an `.mp3` or `.ogg` audio file URL online, or uploading your own audio file to a [storage bucket](https://www.backblaze.com/b2/cloud-storage.html) online, then pasting the URL into a Pitchdeck layer's _Embed_ input field.

## Example MP3/OGG URL

`https://cdn.pixabay.com/download/audio/2024/10/18/audio_883a8b2ed8.mp3`

---

---
url: "/pitchdeck/embeds/canva.md"
description: "Embed Canva designs in Pitchdeck by pasting the Canva share URL."
---

# Embedding Canva

> Embed Canva designs in Pitchdeck by pasting the Canva share URL.

### Video Tutorial: Embed Canva designs in Figma presentations

This video walks through how to embed Canva designs into Figma presentations created with the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/W1_Xagat5mI)

You can embed a [Canva](https://www.canva.com) design by copying your Canva "Share" URL, then pasting the URL into a Pitchdeck layer's _Embed_ input field.

## Example Canva URL
`https://www.canva.com/design/DACHZTlgWkU/view`

---

---
url: "/pitchdeck/embeds/figma-design.md"
description: "Embed live Figma design files in Pitchdeck by sharing a viewable Figma URL."
---

# Embedding Figma Design

> Embed live Figma design files in Pitchdeck by sharing a viewable Figma URL.

### Video Tutorial: Embed live Figma designs in Figma presentations

This video walks through how to embed live Figma designs into Figma presentations created with the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/g-XCydF9cWg)

You can embed a [Figma](https://www.figma.com/) design by clicking the **Share** button in Figma, with **Anyone with the link** set to **can view**, and then click the **Copy link** button to get your Figma URL, then pasting the URL into a Pitchdeck layer's _Embed_ input field.

## Example Figma Design URL

`https://www.figma.com/file/g4gs9PlrdqPsHzX3n1cTg5/Dieter-Rams-Deck`

---

---
url: "/pitchdeck/embeds/figma-prototype.md"
description: "Embed Figma prototypes in Pitchdeck using share URLs and recommended scaling."
---

# Embedding Figma Prototype

> Embed Figma prototypes in Pitchdeck using share URLs and recommended scaling.

You can embed a [Figma](https://www.figma.com/) prototype by clicking the **Play** icon button in your Figma file, then clicking the **Share prototype** button, with **Anyone with the link** set to **can view**, and then click the **Copy link** button to get your Figma Prototype URL, then pasting the URL into a Pitchdeck layer's _Embed_ input field.

## Example Figma Prototype URL

`https://www.figma.com/proto/g4gs9PlrdqPsHzX3n1cTg5/Dieter-Rams-Deck`

## Scaling your Figma Prototype

For the best results, please ensure that the aspect ratio of the Figma layer you're embedding the prototype into matches the aspect ratio of your Figma Prototype, and ensure that the scaling mode is set to: **scaling=scale-down-width**

for example, `https://www.figma.com/proto/g4gs9PlrdqPsHzX3n1cTg5/Dieter-Rams-Deck?type=design&scaling=scale-down-width`

---

---
url: "/pitchdeck/embeds/gif.md"
description: "Embed GIF files in Pitchdeck by pasting a direct .gif URL."
---

# Embedding GIFs

> Embed GIF files in Pitchdeck by pasting a direct .gif URL.

### Video Tutorial: Embed GIFs

This video walks through how to embed GIF and videos from YouTube/Vimeo into your Figma slide deck designs, that you can use in real presentations using the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/sT8Rt1DLnCM)

You can embed a GIF image file by finding a `.gif` URL online, or uploading your own video to a [storage bucket](https://www.backblaze.com/b2/cloud-storage.html) online, then pasting the URL into a Pitchdeck layer's _Embed_ input field.

## Example GIF URL

`https://i.giphy.com/media/bF3y2QS0U0sdgtz8sZ/giphy.gif`

---

---
url: "/pitchdeck/embeds/google-docs.md"
description: "Embed Google Docs in Pitchdeck by publishing to web and using the public URL."
---

# Embedding Google Docs

> Embed Google Docs in Pitchdeck by publishing to web and using the public URL.

### Video Tutorial: Embed Google Docs in Figma presentations

This video walks through how to embed Google Docs into Figma presentations created with the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/ubAKEKWojEM)

You can embed a Google [Docs](https://www.google.com.au/docs/about/) file by logging into your Google account, finding the Google Doc file you want to embed, and [follow the instructions to **pubish to web**](https://support.google.com/docs/answer/183965?hl=en&co=GENIE.Platform%3DDesktop#embed_files), then pasting the public share URL into a Pitchdeck layer's _Embed_ input field.

## Example Google Docs URL

`https://docs.google.com/document/d/e/2PIXC-1vS1GlcB45xzzQdQ1UFlTwypmyhjalTTYOXTkz4GFsD73C-9iezt61hKsbFzB16HDy4o_DOUIJHimKyy/pub`

---

---
url: "/pitchdeck/embeds/google-forms.md"
description: "Embed Google Forms in Pitchdeck by publishing to web and pasting the public URL."
---

# Embedding Google Forms

> Embed Google Forms in Pitchdeck by publishing to web and pasting the public URL.

### Video Tutorial: Embed Google Forms in Figma presentations

This video walks through how to embed Google Forms into Figma presentations created with the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/au1QyrdhMbI)

You can embed a Google [Forms](https://www.google.com/forms/about/) file by logging into your Google account, finding the Google Doc file you want to embed, and [follow the instructions to **pubish to web**](https://support.google.com/docs/answer/183965?hl=en&co=GENIE.Platform%3DDesktop#embed_files), then pasting the public share URL into a Pitchdeck layer's _Embed_ input field.

## Example Google Forms URL

`https://docs.google.com/forms/d/e/1FAIpQLSf9Ip2ADUsubqrXsoguy9UG8jBqzSpY7_kkChuK4uR-TVxFug/viewform?usp=sf_link`

---

---
url: "/pitchdeck/embeds/google-sheets.md"
description: "Embed Google Sheets in Pitchdeck by publishing to web and using the share URL."
---

# Embedding Google Sheets

> Embed Google Sheets in Pitchdeck by publishing to web and using the share URL.

### Video Tutorail: Embed Google Sheets in Figma presentations

This video walks through how to embed Google Sheets into Figma presentations created with the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/LiA711c8pcs)

You can embed a Google [Sheets](https://www.google.com.au/sheets/about/) file by logging into your Google account, finding the Google Doc file you want to embed, and [follow the instructions to **pubish to web**](https://support.google.com/docs/answer/183965?hl=en&co=GENIE.Platform%3DDesktop#embed_files), then pasting the public share URL into a Pitchdeck layer's _Embed_ input field.

## Example Google Sheets URL

`https://docs.google.com/spreadsheets/d/e/2PACX-1vR13sGdAtE2t-j7YZ4b395HphwimwR4enNJMxGHxEy_cH_ZYaaF4Vk-eXe_FbyBBqJqkv-tRY9pRQoU/pubhtml`

---

---
url: "/pitchdeck/embeds/google-slides.md"
description: "Embed published Google Slides in Pitchdeck using a public share URL."
---

# Embedding Google Slides

> Embed published Google Slides in Pitchdeck using a public share URL.

### Video Tutorial: Embed Google Slides in Figma presentations

This video walks through how to embed Google Slides into Figma presentations created with the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/U2mklU0Dcpo)

You can embed a Google [Slides](https://www.google.com/slides/about/) file by logging into your Google account, finding the Google Doc file you want to embed, and [follow the instructions to **pubish to web**](https://support.google.com/docs/answer/183965?hl=en&co=GENIE.Platform%3DDesktop#embed_files), then pasting the public share URL into a Pitchdeck layer's _Embed_ input field.

## Example Google Slides URL

`https://docs.google.com/presentation/d/e/2PACX-1vTxJhs1SMd4q3t78e-n8-cwAYEVgOrEHMDl-xCkTUCJJbObv6syRsuYjjIWYPGmiTTk8944Uz_6RzB8/pub?start=false&loop=false&delayms=3000`

---

---
url: "/pitchdeck/embeds/loom.md"
description: "Embed Loom videos in Pitchdeck by pasting the share URL."
---

# Embedding Loom

> Embed Loom videos in Pitchdeck by pasting the share URL.

### Video Tutorial: Embed Loom videos in Figma presentations

This video walks through how to embed Loom videos into Figma presentations created with the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/3Bn1N_f0XhA)

You can embed a [Loom](https://www.loom.com) video by copying your Loom video share URL, then pasting the URL into a Pitchdeck layer's _Embed_ input field.

## Example Loom URL

`https://www.loom.com/share/e5b8c04bca094dd8a5507925ab887002`

---

---
url: "/pitchdeck/embeds/lottie.md"
description: "Embed Lottie animations in Pitchdeck by pasting the Lottie JSON URL."
---

# Embedding Lottie

> Embed Lottie animations in Pitchdeck by pasting the Lottie JSON URL.

### Video Tutorial: Embed Lottie animations in Figma presentations

This video walks through how to embed Lottie animations into Figma presentations created with the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/h1ZjJpFkd2M)

You can embed a [Lottie](https://lottiefiles.com/featured) file animation by logging into LottieFiles, finding a Lottie animation you like and copying the **Lottie Animation URL**, then pasting the URL into a Pitchdeck layer's _Embed_ input field.

## Example Lottie URL

`https://assets8.lottiefiles.com/packages/lf20_uUiMgkSnl3.json`

---

---
url: "/pitchdeck/embeds/soundcloud.md"
description: "Embed SoundCloud tracks in Pitchdeck by pasting the track URL."
---

# Embedding SoundCloud

> Embed SoundCloud tracks in Pitchdeck by pasting the track URL.

### Video Tutorial: Embed SoundCloud audio in Figma presentations

This video walks through how to embed SoundCloud audio into Figma presentations created with the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/2pg7esHsnEI)

You can embed a [SoundCloud](https://www.soundcloud.com) audio track by copying a SoundCloud track's URL, then pasting the URL into a Pitchdeck layer's _Embed_ input field.

## Example SoundCloud URL

`https://soundcloud.com/drunkenkongjp/sets/drunken-kong-sense-ep-tronic`

---

---
url: "/pitchdeck/embeds/spotify.md"
description: "Embed Spotify tracks, playlists, or podcasts in Pitchdeck with share URLs."
---

# Embedding Spotify

> Embed Spotify tracks, playlists, or podcasts in Pitchdeck with share URLs.

### Video Tutorial: Embed Spotify audio in Figma presentations

This video walks through how to embed Spotify audio into Figma presentations created with the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/J7c2fXboTOE)

You can embed a [Spotify](https://www.spotify.com) audio track, playlist or podcast by copying a Spotify track/playlist URL, then pasting the URL into a Pitchdeck layer's _Embed_ input field.

## Example Spotify Track URL

`https://open.spotify.com/track/7nYvUtkQMx1v80S2FH2s9J`

## Example Spotify Playlist URL

`https://open.spotify.com/playlist/37i9dQZF1EQnqst5TRi17F`

## Example Spotify Podcast Episode URL

`https://open.spotify.com/episode/51NknhV063ZtV87mOIoPjB`

---

---
url: "/pitchdeck/embeds/video.md"
description: "Embed MP4 or WebM videos in Pitchdeck using direct file URLs and export options."
---

# Embedding MP4/WebM videos

> Embed MP4 or WebM videos in Pitchdeck using direct file URLs and export options.

### Video Tutorial: Embed videos

This video walks through how to embed GIF and videos from YouTube/Vimeo into your Figma slide deck designs, that you can use in real presentations using the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/sT8Rt1DLnCM)
### Video Tutorial: Export PowerPoint files with MP4 video embeds from Figma

This video walks through how to export PowerPoint (.pptx) files with MP4 video embeds from Figma using the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/z8dUH4tDdFg)

While the Figma Plugin API doesn't support reading video files directly from your Figma file layers, you can embed a MP4 or WebM video file by finding an `.mp4` or `.webm` video URL online, or uploading your own video to a [storage bucket](https://www.backblaze.com/b2/cloud-storage.html) online, then pasting the URL into a Pitchdeck layer's _Embed_ input field.

> **Info:** If you have MP4 Video URL (linking directly to an `.mp4`) embeds in your layers, you can optionally enable the **Include MP4 Video URL Embeds** toggle in your PowerPoint export settings, which will ensure your MP4 video is embedded as a playable video layer that's supported in the PowerPoint app.

## Example MP4/WebM URL

`http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4`

---

---
url: "/pitchdeck/embeds/vimeo.md"
description: "Embed Vimeo videos in Pitchdeck by pasting a Vimeo video URL."
---

# Embedding Vimeo

> Embed Vimeo videos in Pitchdeck by pasting a Vimeo video URL.

### Video Tutorial: Embed Vimeo videos in Figma presentations

This video walks through how to embed Vimeo videos into Figma presentations created with the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/C3F4HunFlY8)

You can embed a [Vimeo](https://www.vimeo.com) video by copying a Vimeo video URL, then pasting the URL into a Pitchdeck layer's _Embed_ input field.

## Example Vimeo URL

`https://vimeo.com/304626830`

---

---
url: "/pitchdeck/embeds/websites.md"
description: "Embed websites as iframes in Pitchdeck using a URL that allows cross-origin embedding."
---

# Embedding other Websites as iFrames

> Embed websites as iframes in Pitchdeck using a URL that allows cross-origin embedding.

### Video Tutorial: Embed website iFrames in Figma presentations

This video walks through how to embed website iFrames into Figma presentations created with the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/78AmQvoXwwM)

You can embed a normal website as an `` by copying the website's URL, then pasting the URL into a Pitchdeck layer's _Embed_ input field.

## Example Website URL

`https://www.newyorker.com/culture/cultural-comment/what-weve-learned-from-dieter-rams-and-what-weve-ignored`

> **Warning:** **Websites that don't allow cross-origin embeds won't load**. Note that the website you're embedding will need to allow other websites to embed it (via a [Access-Control-Allow-Origin](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors/CORSMissingAllowOrigin) CORS policy), otherwise the iFrame won't load and a blank screen will appear instead.

---

---
url: "/pitchdeck/embeds/youtube.md"
description: "Embed YouTube videos or Shorts in Pitchdeck by pasting the YouTube URL."
---

# Embedding YouTube

> Embed YouTube videos or Shorts in Pitchdeck by pasting the YouTube URL.

### Video Tutorial: Embed YouTube videos in Figma presentations

This video walks through how to embed YouTube videos into Figma presentations created with the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/u-3keAn4bTQ)

You can embed a [YouTube](https://www.youtube.com) video by copying a Vimeo video URL, then pasting the URL into a Pitchdeck layer's _Embed_ input field.

## Example YouTube URL

`https://www.youtube.com/watch?v=dQw4w9WgXcQ`

## Example YouTube Shorts URL

`https://www.youtube.com/shorts/R29NcLluuJY`

---

---
url: "/pitchdeck/export/canva.md"
description: "Export your Pitchdeck slides from Figma to PSD files that can be imported into Canva."
---

# Exporting your slides to Canva

> Export your Pitchdeck slides from Figma to PSD files that can be imported into Canva.

### Video Tutorial: Export Figma slides to Canva with one click

This video walks through how to export Figma slides to Canva via PSD files with one click using the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/BylcDyFXnAc)

[Video](/assets/videos/pitchdeck/export/export-canva.mp4)

To export your presentation for Canva, click the **Export Presentation** button in the Pitchdeck toolbar, then select the **Canva (.psd files)** export format.

Pitchdeck will export your selected slides into a single `.psd` file when the deck fits Canva's import limit. Once the export has completed, download the `.psd` file, then import it into Canva.

> **Info:** Canva supports importing PSD files up to 300 MB per file. If the generated PSD is close to this limit, or if the deck would exceed PSD document or safe build limits, Pitchdeck will automatically split the export into separate PSD files and package them in a `.zip`.

## File size and automatic splitting

Pitchdeck first tries to create one PSD file for the whole deck. If the generated PSD is close to Canva's 300 MB import limit, or if the packed PSD document would be larger than the PSD format allows or too large to build safely in Figma, Pitchdeck automatically creates as few PSD files as possible and packages them in a `.zip`. Each split PSD can contain multiple slides.

Slides are packed into the PSD in an ordered grid based on the export order in Pitchdeck. The grid uses the available PSD canvas space to keep more slides together, so scattered frame positions on the Figma canvas will not make the generated PSD unexpectedly huge.

If the **2x Retina Images** setting would force a deck to split only because the generated PSD is too large to build safely, Pitchdeck will retry the Canva export at 1x first so the slides can stay together where possible.

If Pitchdeck exports a `.zip`, unzip it first, then import the separate `.psd` files into Canva.

## Image settings

The Canva export includes the same **Image Settings** controls used by other image-based exports:

- **Compress Images** reduces the generated PSD file size where possible.
- **2x Retina Images** exports a higher-resolution PSD.
- **Downsize Large Figma Image Fills** optimizes oversized Figma image fills before exporting.

## Importing the PSD files into Canva

Open Canva and import the exported `.psd` file from your computer. If Pitchdeck exported a `.zip` file, unzip it first, then import the separate `.psd` files into Canva. Canva will convert each PSD file into an editable Canva design where supported.

You can follow Canva's official import guide here: [Import designs into Canva](https://www.canva.com/en_au/help/ai-import/).

> **Warning:** Animations, videos, embeds and Pitchdeck web presentation features won't be included in the exported PSD files. These are only used for presentations uploaded to the Pitchdeck web app.

---

---
url: "/pitchdeck/export/google-slides.md"
description: "This export option will export your slides from Figma to a `.pptx` file that you can open with [Google Slides](https://docs.google.com/presentation/)."
---

# Exporting your slides to Google Slides

> This export option will export your slides from Figma to a `.pptx` file that you can open with [Google Slides](https://docs.google.com/presentation/).

### Video Tutorial: Export presentations to Google Slides

This video walks through how to export your slide deck presentation designs from Figma to Google Slides using the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/BkMRUL5SvmE)
### Video Tutorial: Add Master Slides to PowerPoint exports from Figma

This video walks through how to export a PowerPoint file from Figma (with Master Slides) using the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/vR7ocT4YO6s)
### Video Tutorial: Export Figma Slides to Google Slides

This video walks through how to export your deck from Figma Slides to Google Slides using the Pitchdeck plugin
[Embedded media](https://www.youtube.com/embed/2pQAiL7mlDQ)

[Video](/assets/videos/pitchdeck/export/export-google-slides.mp4)

To use this option, click the **Export Presentation** button in the Pitchdeck toolbar, then ensure that either the  **Gooogle Slides (.pptx file)** option is selected as the presentation export format. Once you've configured your export settings, you can click the **Export** button to begin exporting your slides.

> **Warning:** **Animations and videos won't be included in the exported Google Slides .pptx file**. Note that any animations or video embeds included in the Pitchdeck plugin won't be included in your PowerPoint export. These are only used for a presentation uploaded to the Pitchdeck web app.

### Using Retina @2x Images

Enabling the **2x Retina Images** toggle option will automatically export any **JPG** and **PNG** images at retina (@2x) resolution. This will give you sharper looking images in your presentation, but will also increase the file sizes of any **JPG** and **PNG** images.

### Compressing images

Enabling the **Compress Images** toggle option will compress any **JPG** and **PNG** images used in your presentation.

### Downsizing your Figma layer fills

Enabling the **Downsize Large Figma Image Fills** toggle will automatically resize (and lightly compress) any Figma image fills on your layers to their actual layer size. This is useful if you've originally imported high resolution images to your Figma file, but then shrunk the layer dimensions down to be much smaller (with the original large image file still being used).

One common case of this would be adding a large image from Unsplash (or another stock photo site/plugin), the resizing that layer to be used as a much smaller "card" or "avatar" image. This can cause the performance of your Figma file to slow down and potentially crash when exporting these layers via the Pitchdeck export options; so using this feature will help save file size and improve page performance in your Figma file.

### Using editable text

Enabling the **Use Editable Text** option will export your `.pptx` file with text that can be edited in PowerPoint/Keynote/Google Slides. When this option is not enabled, text is included in the exported layer images instead. Note that there may be some minor visual differences between editable text in PowerPoint/Keynote/Google Slides and Figma.

> **Warning:** **Ensure that any custom fonts are installed/replaced**. Note that opening the exported `.pptx` file on a computer which doesn't have the fonts used in Figma installed will cause the text to look different than it does in the Figma design. Please ensure you install any required fonts or replace/substitute any missing fonts in PowerPoint/Keynote/Google Slides where needed.

> **Tip:** If you want to _exclude_ any layers from being rendered as rich text in your `.pptx` file exports, you can include **[PNG]** anywhere in the layer name of a parent layer (for example, Frame, Group, Component, Instance) that contains your text layers; this will automatically skip over any nested text layers inside that parent layer from being exported as rich text in your PowerPoint exports, and will render that entire layer as a static image instead.

> **Warning:** Text used as a Master Slide placeholder supports one transparency value per text layer. If a single Figma text layer mixes different opacity values, split it into separate text layers before export when that difference needs to remain editable in a master layout.

### Keeping Auto Layout and nested layers editable (Beta)

Enable **Smart Auto Layout & Nested Layers (Beta)** to export the children of safe layout-style frames, groups, components, and instances, including Auto Layout containers, as separate objects while keeping their Figma positions and stacking order. If a safe container has its own fill, Pitchdeck exports that background separately below its supported children. Pair this with **Use Editable Text** when you also want supported nested text layers to remain editable. The beta controls nested-layer decomposition only; the text, transparency, and native-shape improvements below apply to all PPTX exports.

Pitchdeck keeps supported solid rectangles, ellipses, flat-cap lines, transparency, and individual borders (for example, a bottom border) as native presentation shapes. With the beta enabled, supported text, bullets, icons, images, and lines nested inside safe containers can also remain separate from the container background. Vector-only icon and logo compositions stay together as one selectable object instead of being split into individual paths.

> **Warning:** PowerPoint and Keynote retain editable text transparency stored in the `.pptx`. Google Slides keeps native shape and line transparency during conversion, but may make editable text colours opaque because its native text colour model does not expose transparency. If exact translucent text is more important than editability in Google Slides, add **[PNG]** to that text layer or a parent layer name so Pitchdeck keeps its appearance in an image.

When a styled frame or instance needs raster fallback, Pitchdeck can keep its normal non-text artwork in ordered image bands around eligible text. A common result is **raster underlay → editable text → raster foreground overlay**, so the text appears once while artwork above and below it keeps its paint order.

Some Figma compositing cannot be reproduced safely as separate presentation objects. Containers or text whose appearance depends on a mask, material clipping, effects, non-default blend modes, partial container opacity, rotation, or layer/background blur retain the fidelity-first raster fallback. Text fully inside an otherwise inert clip may still be editable. Add **[PNG]** to a container name to flatten its entire subtree, including text. Gradient and image-filled shapes also use the existing image fallback. The beta is disabled by default and does not remove Auto Layout or otherwise change your Figma layers.

### Rendering bullet/number lists

Enabling the **Render Bullet/Number Lists** option will export your `.pptx` file with lists created in Figma text layers carried over.

Each hard return in a Figma list becomes a new bullet or numbered item in the PowerPoint-compatible export. Soft line breaks remain inside the current item, numbered lists continue in sequence, and normal paragraphs can remain unlisted alongside list paragraphs in the same text layer.

> **Warning:** Google Slides uses a separate conversion path. For the most predictable Google Slides results, keep each list in its own Figma text layer and move normal text into another layer.

### Including slide numbers

Enabling the **Include Slide Number** option will export your `.pptx` file with page numbering included. This will automatically add a page number to each of your slides in the position you've specified. To change the position of your slide numbers, you can click on the select boxes for **horizontal** (to select from _Left_, _Center_ or _Right_) and **vertical** (to select from _Top_, _Center_ or _Bottom_) positioning.

## Using Figma Components as Master Slides

### Video Tutorial: Add Master Slides to PowerPoint exports from Figma

This video walks through how to export a PowerPoint file from Figma (with Master Slides) using the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/vR7ocT4YO6s)

Enabling the **Create Master Slides from Components** option will export your `.pptx` file with any slides created as a Figma Component automatically used as "Master Slides" that can be re-used as templates to create new slides from in PowerPoint, Keynote or Google Slides.

> **Warning:** **Image placeholders are only supported in PowerPoint** Note that images (that aren't locked; see the tip below) will be turned into placeholders for master slides when the **PowerPoint** export option is selected. Unfortunately, the **Google Slides** and **Keynote** export options _don't support image placeholders_, so any image content will be static in your master slide templates.

> **Tip:** **Preventing certain image layers from becoming placeholder boxes**. By default, any images (besides the slide background) will be turned into placeholder slots in your master slides. If you want to keep any of these image elements static, you can **Lock** any of those Figma layers (in the main Figma layers panel), and this will ensure that any locked image layers are kept "as-is" in your master slide.

> **Tip:** **Refreshing slides after editing a master slide in PowerPoint**. If you update a master slide in PowerPoint and those changes don't immediately show up on slides already using that layout, select the affected slides and click **Home > Reset** (next to **New Slide**) to reapply the layout and refresh the inherited formatting. Here's a short [video walkthrough](https://www.youtube.com/watch?v=1wivFDz2Nko).

## Downloading your .pptx file

After clicking the **Export** button, you'll see a confirmation screen letting you know that your `.pptx` file is ready to download. To download the `.pptx` file from Figma to your computer, you can click the **Download your .pptx file** button in the Pitchdeck plugin.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

## Opening your .pptx file with Google Slides

You can open your `.pptx` file in [Google Slides](https://docs.google.com/presentation/) by going to File, Open, then Upload and drag and drop the `.pptx` file.

Click All to select all your slides, then ensure you uncheck the Keep original theme checkbox, and then click Import slides.

## Replacing custom fonts in your Google Slides PPTX file

[Video](/assets/videos/pitchdeck/export/replace-google-fonts.mp4)

If you're exporting your Figma frames to a PPTX file for Google Slides that contains some custom fonts (which aren't supported in Google Slides), you can substitute these fonts by using native Figma text styles and using the **Description** input field to define the font you'd like to replace the font with when the designs are exported to PPTX.

You need to set the **Description** field of your text style (that your target Figma text layers are using) to this specific JSON string format below:

`{ "family": "Inter", "style": "Bold Italic" }`

You can replace the `family` value (for example, `Inter`) with your desired font family, and set the `style` value to the desired font style of your font family (for example, `Regular`, `Bold`, etc); Note that you need to ensure the font style you use is supported by the font family you've specified; also ensure that the font is a Google Font (which are automatically supported/loaded in Google Slides).

You can also _optionally_ add an extra `size` (pixels) number property to the JSON string if you want to override the font size as well, like in the example below (which would set the font size to `64px` in your PPTX file export):

`{ "family": "Inter", "style": "Bold", "size": 64 }`

## Related Pitchdeck guides

- Follow the [step-by-step Figma to Google Slides tutorial](/pitchdeck/tutorials/export-figma-slides-to-google-slides).
- Compare the [PowerPoint export workflow](/pitchdeck/export/powerpoint) when you need a local `.pptx` file.
- Explore the [Pitchdeck Figma plugin](https://www.hypermatic.com/pitchdeck/) for presentation design, export, and sharing.

---

---
url: "/pitchdeck/export/jpg.md"
description: "Export slides from Figma design files or Figma Slides files to static JPG or PNG images in one click using Pitchdeck."
---

# Exporting your slides to JPG/PNG images

> Export slides from Figma design files or Figma Slides files to static JPG or PNG images in one click using Pitchdeck.

### Video Tutorial: Export Figma slides to JPG/PNG images

This video walks through how to export Figma slides to JPG/PNG images using the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/Dy2LWEZwXTI)

To export your slides as static images, click the **Export** button in the top-right corner of the Pitchdeck plugin and set the presentation export format to either **JPG images** or **PNG images**.

After choosing a format, click **Export to JPG** or **Export to PNG**. Pitchdeck will process all slides in order, then generate a `.zip` file that you can download by clicking **Download Your Zip File**.

## Exporting from a Figma design file

In standard Figma design files, Pitchdeck treats your top-level frames as slides.
The exported image order follows your slide order in the plugin, so you can quickly re-order slides before exporting if needed.

## Exporting from a Figma Slides file

You can use the same export flow inside Figma Slides files:

1. Run the Pitchdeck plugin in your Figma Slides file.
2. Click **Export** in the top-right corner.
3. Choose **JPG images** or **PNG images**.
4. Click the matching export button and download the generated `.zip`.

In Figma Slides files, Pitchdeck mirrors the slide order from the native Figma Slides interface.

## Output quality and file details

- Exports are generated at **2x retina resolution** for sharp full-screen viewing.
- PNG exports include **light compression** for a strong quality-to-file-size balance.
- Files are automatically named and ordered so they are easy to review or present.

> **Tip:** JPG/PNG exports are useful for sharing presentation slides quickly over email, Slack, or review tools when you need static images instead of a deck file.

---

---
url: "/pitchdeck/export/keynote.md"
description: "This export option will export your slides from Figma to a `.pptx` file that you can open with [Apple Keynote](https://www.apple.com/keynote/)."
---

# Exporting your slides to Keynote

> This export option will export your slides from Figma to a `.pptx` file that you can open with [Apple Keynote](https://www.apple.com/keynote/).

### Video Tutorial: Export presentations to Keynote

This video walks through how to export your slide deck presentation designs from Figma to Keynote using the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/yJ3W1pjS0LI)
### Video Tutorial: Add Master Slides to PowerPoint exports from Figma

This video walks through how to export a PowerPoint file from Figma (with Master Slides) using the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/vR7ocT4YO6s)
### Video Tutorial: Export Figma Slides to Keynote

This video walks through how to export your deck from Figma Slides to Apple Keynote using the Pitchdeck plugin
[Embedded media](https://www.youtube.com/embed/irxm3p-mZ6o)

[Video](/assets/videos/pitchdeck/export/export-keynote-file.mp4)

To use this option, click the **Export Presentation** button in the Pitchdeck toolbar, then ensure that the **Keynote (.pptx file)** option is selected as the presentation export format. Once you've configured your export settings, you can click the **Export** button to begin exporting your slides.

> **Warning:** **Animations and videos won't be included in the exported Keynote .pptx file**. Note that any animations or video embeds included in the Pitchdeck plugin won't be included in your PowerPoint export. These are only used for a presentation uploaded to the Pitchdeck web app.

### Using Retina @2x Images

Enabling the **2x Retina Images** toggle option will automatically export any **JPG** and **PNG** images at retina (@2x) resolution. This will give you sharper looking images in your presentation, but will also increase the file sizes of any **JPG** and **PNG** images.

### Compressing images

Enabling the **Compress Images** toggle option will compress any **JPG** and **PNG** images used in your presentation.

### Downsizing your Figma layer fills

Enabling the **Downsize Large Figma Image Fills** toggle will automatically resize (and lightly compress) any Figma image fills on your layers to their actual layer size. This is useful if you've originally imported high resolution images to your Figma file, but then shrunk the layer dimensions down to be much smaller (with the original large image file still being used).

One common case of this would be adding a large image from Unsplash (or another stock photo site/plugin), the resizing that layer to be used as a much smaller "card" or "avatar" image. This can cause the performance of your Figma file to slow down and potentially crash when exporting these layers via the Pitchdeck export options; so using this feature will help save file size and improve page performance in your Figma file.

### Using editable text

Enabling the **Use Editable Text** option will export your `.pptx` file with text that can be edited in PowerPoint/Keynote/Google Slides. When this option is not enabled, text is included in the exported layer images instead. Note that there may be some minor visual differences between editable text in PowerPoint/Keynote/Google Slides and Figma.

> **Warning:** **Ensure that any custom fonts are installed/replaced**. Note that opening the exported `.pptx` file on a computer which doesn't have the fonts used in Figma installed will cause the text to look different than it does in the Figma design. Please ensure you install any required fonts or replace/substitute any missing fonts in PowerPoint/Keynote/Google Slides where needed.

> **Tip:** If you want to _exclude_ any layers from being rendered as rich text in your `.pptx` file exports, you can include **[PNG]** anywhere in the layer name of a parent layer (for example, Frame, Group, Component, Instance) that contains your text layers; this will automatically skip over any nested text layers inside that parent layer from being exported as rich text in your PowerPoint exports, and will render that entire layer as a static image instead.

> **Warning:** Text used as a Master Slide placeholder supports one transparency value per text layer. If a single Figma text layer mixes different opacity values, split it into separate text layers before export when that difference needs to remain editable in a master layout.

### Keeping Auto Layout and nested layers editable (Beta)

Enable **Smart Auto Layout & Nested Layers (Beta)** to export the children of safe layout-style frames, groups, components, and instances, including Auto Layout containers, as separate objects while keeping their Figma positions and stacking order. If a safe container has its own fill, Pitchdeck exports that background separately below its supported children. Pair this with **Use Editable Text** when you also want supported nested text layers to remain editable. The beta controls nested-layer decomposition only; the text, transparency, and native-shape improvements below apply to all PPTX exports.

Pitchdeck keeps supported solid rectangles, ellipses, flat-cap lines, transparency, and individual borders (for example, a bottom border) as native presentation shapes. With the beta enabled, supported text, bullets, icons, images, and lines nested inside safe containers can also remain separate from the container background. Vector-only icon and logo compositions stay together as one selectable object instead of being split into individual paths.

> **Warning:** PowerPoint and Keynote retain editable text transparency stored in the `.pptx`. Google Slides keeps native shape and line transparency during conversion, but may make editable text colours opaque because its native text colour model does not expose transparency. If exact translucent text is more important than editability in Google Slides, add **[PNG]** to that text layer or a parent layer name so Pitchdeck keeps its appearance in an image.

When a styled frame or instance needs raster fallback, Pitchdeck can keep its normal non-text artwork in ordered image bands around eligible text. A common result is **raster underlay → editable text → raster foreground overlay**, so the text appears once while artwork above and below it keeps its paint order.

Some Figma compositing cannot be reproduced safely as separate presentation objects. Containers or text whose appearance depends on a mask, material clipping, effects, non-default blend modes, partial container opacity, rotation, or layer/background blur retain the fidelity-first raster fallback. Text fully inside an otherwise inert clip may still be editable. Add **[PNG]** to a container name to flatten its entire subtree, including text. Gradient and image-filled shapes also use the existing image fallback. The beta is disabled by default and does not remove Auto Layout or otherwise change your Figma layers.

### Rendering bullet/number lists

Enabling the **Render Bullet/Number Lists** option will export your `.pptx` file with lists created in Figma text layers carried over.

Each hard return in a Figma list becomes a new bullet or numbered item in the PowerPoint-compatible export. Soft line breaks remain inside the current item, numbered lists continue in sequence, and normal paragraphs can remain unlisted alongside list paragraphs in the same text layer.

> **Warning:** Google Slides uses a separate conversion path. For the most predictable Google Slides results, keep each list in its own Figma text layer and move normal text into another layer.

### Including slide numbers

Enabling the **Include Slide Number** option will export your `.pptx` file with page numbering included. This will automatically add a page number to each of your slides in the position you've specified. To change the position of your slide numbers, you can click on the select boxes for **horizontal** (to select from _Left_, _Center_ or _Right_) and **vertical** (to select from _Top_, _Center_ or _Bottom_) positioning.

## Using Figma Components as Master Slides

### Video Tutorial: Add Master Slides to PowerPoint exports from Figma

This video walks through how to export a PowerPoint file from Figma (with Master Slides) using the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/vR7ocT4YO6s)

Enabling the **Create Master Slides from Components** option will export your `.pptx` file with any slides created as a Figma Component automatically used as "Master Slides" that can be re-used as templates to create new slides from in PowerPoint, Keynote or Google Slides.

> **Warning:** **Image placeholders are only supported in PowerPoint** Note that images (that aren't locked; see the tip below) will be turned into placeholders for master slides when the **PowerPoint** export option is selected. Unfortunately, the **Google Slides** and **Keynote** export options _don't support image placeholders_, so any image content will be static in your master slide templates.

> **Tip:** **Preventing certain image layers from becoming placeholder boxes**. By default, any images (besides the slide background) will be turned into placeholder slots in your master slides. If you want to keep any of these image elements static, you can **Lock** any of those Figma layers (in the main Figma layers panel), and this will ensure that any locked image layers are kept "as-is" in your master slide.

> **Tip:** **Refreshing slides after editing a master slide in PowerPoint**. If you update a master slide in PowerPoint and those changes don't immediately show up on slides already using that layout, select the affected slides and click **Home > Reset** (next to **New Slide**) to reapply the layout and refresh the inherited formatting. Here's a short [video walkthrough](https://www.youtube.com/watch?v=1wivFDz2Nko).

## Downloading your .pptx file

After clicking the **Export** button, you'll see a confirmation screen letting you know that your `.pptx` file is ready to download. To download the `.pptx` file from Figma to your computer, you can click the **Download your .pptx file** button in the Pitchdeck plugin.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

## Opening your .pptx file with Keynote

Once you've downloaded your `.pptx` file, you can open it using your Keynote app installed on your Mac computer by **right-clicking the file**, going to **Open With** and clicking the **Keynote** app.

---

---
url: "/pitchdeck/export/pdf.md"
description: "This export option will export your slides from Figma to a PDF file, which can also include any links between slides or to external URLs that you've specified in the plugin, or in the native Figma Prototype links."
---

# Exporting your slides to a PDF file

> This export option will export your slides from Figma to a PDF file, which can also include any links between slides or to external URLs that you've specified in the plugin, or in the native Figma Prototype links.

### Video Tutorial: Export presentations to PDF

This video walks through how to export your slide deck presentation designs from Figma to PDF using the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/W_W8aYQvg28)

### Video Tutorial: Export presentation to clickable interactive PDF

This video walks through how to export clickable interactive PDFs from Figma using the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/jKFlguRXiAA)

### Video Tutorial: Compress large PDF presentation exports from Figma

This video walks through how to compress large PDF presentation exports from Figma using the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/5E4glTwnnZw)

[Video](/assets/videos/pitchdeck/export/export-pdf-file.mp4)

You can export your presentation to a static PDF file by clicking the **Export Presentation** button in the Pitchdeck plugin toolbar, and ensuring the **PDF Deck (.pdf file)** option is selected, then clicking the **Export to PDF** button. Once the PDF export has completed and the confirmation message appears, click the **Download your .pdf file** button to save the file to your computer.

If you've specified a password, you'll also be able to copy it to your clipboard by clicking the **Copy** icon button next to the password field.

> **Note:** **Gradient fills in PDF exports**. If you're exporting slides to PDF that contain gradient fills inside any vector paths, you can enable the **Vector Path Gradients** setting to ensure the gradient is rendered as expected. If you don't need this option, there's no need to enable it.

> **Warning:** **Browser Support**. Due to browser compatibility issues, the **Export to PDF** feature in Pitchdeck _isn't_ supported in **Safari**. Please run the plugin in another browser (like [Chrome](https://www.google.com/intl/en_us/chrome/)) or the [Figma Desktop App](https://www.figma.com/downloads/) instead.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

## Adding interactive links to your PDF file exports

To make your PDFs interactive with clickable links to other pages or external URLs, please see the [Adding links to your slide layers](/pitchdeck/design/links) page in the Pitchdeck documentation.

## Adding optional metadata to PDF files

When exporting PDF files from Figma using Pitchdeck, you can also optoinally add metadata to your exported PDF file under the **PDF File Metadata** section, by filling out the _Title_, _Description_, _Author_, _Keywords_ input fields.

## Downsizing your Figma layer fills

Enabling the **Downsize Large Figma Image Fills** toggle will automatically resize (and lightly compress) any Figma image fills on your layers to their actual layer size. This is useful if you've originally imported high resolution images to your Figma file, but then shrunk the layer dimensions down to be much smaller (with the original large image file still being used).

One common case of this would be adding a large image from Unsplash (or another stock photo site/plugin), the resizing that layer to be used as a much smaller "card" or "avatar" image. This can cause the performance of your Figma file to slow down and potentially crash when exporting these layers via the Pitchdeck export options; so using this feature will help save file size and improve page performance in your Figma file.

## Adding password protection to your PDF

If you would like your exported PDF file to require a password before it can be opened, you can enable the **Require a password to open the PDF file** setting, then set your own password in the **password input** field. Ensure that you give this password to anyone you're sending the exported merged PDF file to, or they won't be able to open the file to view its contents.

---

---
url: "/pitchdeck/export/powerpoint.md"
description: "This export option will export your slides from Figma to a `.pptx` file that you can open with [Microsoft PowerPoint](https://www.microsoft.com/en-au/microsoft-365/powerpoint)."
---

# Exporting your slides to PowerPoint

> This export option will export your slides from Figma to a `.pptx` file that you can open with [Microsoft PowerPoint](https://www.microsoft.com/en-au/microsoft-365/powerpoint).

## Right-to-left text

Pitchdeck detects right-to-left text in supported Figma text layers and marks it as right-to-left content in the PowerPoint export. This preserves the reading direction for languages such as Arabic and Hebrew when the text remains editable.

### Video Tutorial: Export .pptx files with editable text

This video walks through how to export a presentation file for PowerPoint, Keynote or Google Slides, containing editable text layers, from your Figma slide deck designs using the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/lBP5nxrWlWk)
### Video Tutorial: Add Master Slides to PowerPoint exports from Figma

This video walks through how to export a PowerPoint file from Figma (with Master Slides) using the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/vR7ocT4YO6s)
### Video Tutorial: Export Figma Slides to PowerPoint (.pptx)

This video walks through how to export your deck from Figma Slides to PowerPoint using the Pitchdeck plugin
[Embedded media](https://www.youtube.com/embed/jpXYIvHFwp8)
### Video Tutorial: Export PowerPoint files with MP4 video embeds from Figma

This video walks through how to export PowerPoint (.pptx) files with MP4 video embeds from Figma using the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/z8dUH4tDdFg)

[Video](/assets/videos/pitchdeck/export/export-powerpoint-file.mp4)

To use this option, click the **Export Presentation** button in the Pitchdeck toolbar, then ensure that the **PowerPoint (.pptx file)** option is selected as the presentation export format. Once you've configured your export settings, you can click the **Export** button to begin exporting your slides.

> **Warning:** **Animations and iFrame embeds won't be included in the exported PowerPoint .pptx file**. Note that any animations or iFrame embeds included in the Pitchdeck plugin won't be included in your PowerPoint export. These are only used for a presentation uploaded to the Pitchdeck web app.

### Embedding MP4 video URLs into your PPTX exports for PowerPoint (Optional)

### Video Tutorial: Export PowerPoint files with MP4 video embeds from Figma

This video walks through how to export PowerPoint (.pptx) files with MP4 video embeds from Figma using the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/z8dUH4tDdFg)

[Video](/assets/videos/pitchdeck/design/export-pptx-video.mp4)

If you have MP4 Video URL (linking directly to an `.mp4`) embeds in your layers, you can optionally enable the **Include MP4 Video URL Embeds** toggle in your PowerPoint export settings, which will ensure your MP4 video is embedded as a playable video layer that's supported in the PowerPoint app.

You can also customize the video thumbnails from the plugin dropdown options below:

- **Automatic Video Thumbnails from MP4**: Automatically use a frame from your video embeds for thumbnails (from the start, middle or end of your videos)
- **Use Figma Layer for Video Thumbnails**: Use the content of your Figma layer (that the .mp4 file embed is on) as a totally custom thumbnail
- **No Custom Video Thumbnails**: Don't set any thumbnail (which is what it was previously doing, where PowerPoint sets its own default play button thumbnail)

> **Note:** Note that the "Fill" sizing property isn't supported in PowerPoint, so the video will "Fit" into your Figma layer size, regardless of aspect ratio.

### Using Retina @2x Images

Enabling the **2x Retina Images** toggle option will automatically export any **JPG** and **PNG** images at retina (@2x) resolution. This will give you sharper looking images in your presentation, but will also increase the file sizes of any **JPG** and **PNG** images.

### Compressing images

Enabling the **Compress Images** toggle option will compress any **JPG** and **PNG** images used in your presentation.

### Downsizing your Figma layer fills

Enabling the **Downsize Large Figma Image Fills** toggle will automatically resize (and lightly compress) any Figma image fills on your layers to their actual layer size. This is useful if you've originally imported high resolution images to your Figma file, but then shrunk the layer dimensions down to be much smaller (with the original large image file still being used).

One common case of this would be adding a large image from Unsplash (or another stock photo site/plugin), the resizing that layer to be used as a much smaller "card" or "avatar" image. This can cause the performance of your Figma file to slow down and potentially crash when exporting these layers via the Pitchdeck export options; so using this feature will help save file size and improve page performance in your Figma file.

### Using editable text

Enabling the **Use Editable Text** option will export your `.pptx` file with text that can be edited in PowerPoint/Keynote/Google Slides. When this option is not enabled, text is included in the exported layer images instead. Note that there may be some minor visual differences between editable text in PowerPoint/Keynote/Google Slides and Figma.

> **Warning:** **Ensure that any custom fonts are installed/replaced**. Note that opening the exported `.pptx` file on a computer which doesn't have the fonts used in Figma installed will cause the text to look different than it does in the Figma design. Please ensure you install any required fonts or replace/substitute any missing fonts in PowerPoint/Keynote/Google Slides where needed.

> **Tip:** If you want to _exclude_ any layers from being rendered as rich text in your `.pptx` file exports, you can include **[PNG]** anywhere in the layer name of a parent layer (for example, Frame, Group, Component, Instance) that contains your text layers; this will automatically skip over any nested text layers inside that parent layer from being exported as rich text in your PowerPoint exports, and will render that entire layer as a static image instead.

> **Warning:** Text used as a Master Slide placeholder supports one transparency value per text layer. If a single Figma text layer mixes different opacity values, split it into separate text layers before export when that difference needs to remain editable in a master layout.

### Keeping Auto Layout and nested layers editable (Beta)

Enable **Smart Auto Layout & Nested Layers (Beta)** to export the children of safe layout-style frames, groups, components, and instances, including Auto Layout containers, as separate objects while keeping their Figma positions and stacking order. If a safe container has its own fill, Pitchdeck exports that background separately below its supported children. Pair this with **Use Editable Text** when you also want supported nested text layers to remain editable. The beta controls nested-layer decomposition only; the text, transparency, and native-shape improvements below apply to all PPTX exports.

Pitchdeck keeps supported solid rectangles, ellipses, flat-cap lines, transparency, and individual borders (for example, a bottom border) as native presentation shapes. With the beta enabled, supported text, bullets, icons, images, and lines nested inside safe containers can also remain separate from the container background. Vector-only icon and logo compositions stay together as one selectable object instead of being split into individual paths.

> **Warning:** PowerPoint and Keynote retain editable text transparency stored in the `.pptx`. Google Slides keeps native shape and line transparency during conversion, but may make editable text colours opaque because its native text colour model does not expose transparency. If exact translucent text is more important than editability in Google Slides, add **[PNG]** to that text layer or a parent layer name so Pitchdeck keeps its appearance in an image.

When a styled frame or instance needs raster fallback, Pitchdeck can keep its normal non-text artwork in ordered image bands around eligible text. A common result is **raster underlay → editable text → raster foreground overlay**, so the text appears once while artwork above and below it keeps its paint order.

Some Figma compositing cannot be reproduced safely as separate presentation objects. Containers or text whose appearance depends on a mask, material clipping, effects, non-default blend modes, partial container opacity, rotation, or layer/background blur retain the fidelity-first raster fallback. Text fully inside an otherwise inert clip may still be editable. Add **[PNG]** to a container name to flatten its entire subtree, including text. Gradient and image-filled shapes also use the existing image fallback. The beta is disabled by default and does not remove Auto Layout or otherwise change your Figma layers.

### Rendering bullet/number lists

Enabling the **Render Bullet/Number Lists** option will export your `.pptx` file with lists created in Figma text layers carried over.

Each hard return in a Figma list becomes a new bullet or numbered item in the PowerPoint-compatible export. Soft line breaks remain inside the current item, numbered lists continue in sequence, and normal paragraphs can remain unlisted alongside list paragraphs in the same text layer.

> **Warning:** Google Slides uses a separate conversion path. For the most predictable Google Slides results, keep each list in its own Figma text layer and move normal text into another layer.

### Including slide numbers

Enabling the **Include Slide Number** option will export your `.pptx` file with page numbering included. This will automatically add a page number to each of your slides in the position you've specified. To change the position of your slide numbers, you can click on the select boxes for **horizontal** (to select from _Left_, _Center_ or _Right_) and **vertical** (to select from _Top_, _Center_ or _Bottom_) positioning.

## Using Figma Components as Master Slides

### Video Tutorial: Add Master Slides to PowerPoint exports from Figma

This video walks through how to export a PowerPoint file from Figma (with Master Slides) using the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/vR7ocT4YO6s)

Enabling the **Create Master Slides from Components** option will export your `.pptx` file with any slides created as a Figma Component automatically used as "Master Slides" that can be re-used as templates to create new slides from in PowerPoint, Keynote or Google Slides.

> **Warning:** **Image placeholders are only supported in PowerPoint** Note that images (that aren't locked; see the tip below) will be turned into placeholders for master slides when the **PowerPoint** export option is selected. Unfortunately, the **Google Slides** and **Keynote** export options _don't support image placeholders_, so any image content will be static in your master slide templates.

> **Tip:** **Preventing certain image layers from becoming placeholder boxes**. By default, any images (besides the slide background) will be turned into placeholder slots in your master slides. If you want to keep any of these image elements static, you can **Lock** any of those Figma layers (in the main Figma layers panel), and this will ensure that any locked image layers are kept "as-is" in your master slide.

> **Tip:** **Refreshing slides after editing a master slide in PowerPoint**. If you update a master slide in PowerPoint and those changes don't immediately show up on slides already using that layout, select the affected slides and click **Home > Reset** (next to **New Slide**) to reapply the layout and refresh the inherited formatting. Here's a short [video walkthrough](https://www.youtube.com/watch?v=1wivFDz2Nko).

## Downloading your .pptx file

After clicking the **Export** button, you'll see a confirmation screen letting you know that your `.pptx` file is ready to download. To download the `.pptx` file from Figma to your computer, you can click the **Download your .pptx file** button in the Pitchdeck plugin.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

## Opening your .pptx file with PowerPoint

Once you've downloaded your `.pptx` file, you can open it using your Microsoft PowerPoint app installed on your computer.

---

---
url: "/pitchdeck/faq/plans.md"
description: "To get unlimited usage of all of the Pitchdeck Pro features, you will need to purchase a license from the [Hypermatic website](https://hypermatic.com/pitchdeck#pro)."
---

# Pitchdeck Free vs Pitchdeck Pro

> To get unlimited usage of all of the Pitchdeck Pro features, you will need to purchase a license from the [Hypermatic website](https://hypermatic.com/pitchdeck#pro).

Pitchdeck includes 10 free trials of the _Pro_ version. Once these trials have been used up, the Figma plugin will revert to their _Free_ version, which will have limited functionality.

  - **Pitchdeck Free**: ### PDF Exports Unlimited Usage       ### Web Presentations Try during 10 Pro Trials       ### Web Analytics Try during 10 Pro Trials       ### PPTX Exports Try during 10 Pro Trials       ### PPTX Imports Try during 10 Pro Trials       ### CSV Chart Imports Try during 10 Pro Trials       ### Spell Checking Try during 10 Pro Trials       ### Interactive PDFs Try during 10 Pro Trials
  - **Pitchdeck Pro**: ### PDF Exports Unlimited Usage       ### Web Presentations Unlimited Usage       ### Web Analytics Unlimited Usage       ### PPTX Exports Unlimited Usage       ### PPTX Imports Unlimited Usage       ### CSV Chart Imports Unlimited Usage       ### Spell Checking Unlimited Usage       ### Interactive PDFs Unlimited Usage

---

---
url: "/pitchdeck/faq/security.md"
description: "Pitchdeck runs as an official plugin inside of Figma's own app, which are reviewed and approved by the Figma team."
---

# Pitchdeck Security

> Pitchdeck runs as an official plugin inside of Figma's own app, which are reviewed and approved by the Figma team.

The Figma plugin is run directly from Figma's own servers, and runs inside of a your Figma file, which means that it inherits all of the [security](https://www.figma.com/security/) and infrastructure of the Figma platform, which exceed industry standards for data protection and security:

- SOC 2 Type 2
- SOC 3
- Cloud Security Alliance (CSA) STAR: Level 1
- ISO/IEC 27001:2013
- ISO/IEC 27018:2019
- EU Cloud Code of Conduct (COC): Level 2

There's **no additional software** that needs to be installed to use the Figma plugin, as Figma plugins run as a built-in part of Figma's own native functionality, and all Figma plugins Accessibile and can be instantly run from inside any Figma file, or via the official [Figma Community](https://www.figma.com/community) ecosystem inside of the Figma app.

If your organization is already approved to use Figma, then you _already have access_ to Figma plugins.

## How Pitchdeck works

The [Pitchdeck Figma plugin](https://www.figma.com/community/plugin/838925615018625519) helps users turn their Figma frames into a slide deck.

Pitchdeck is designed to be privacy and security focused, so any "Share" URLs that are generated are password protected by default, and encrypt image uploads with AES-256.

Any uploads and cloud storage services used by the Pitchdeck Plugin and Pitchdeck Web App are hosted on [Google Cloud](https://cloud.google.com/) (the same infrastructure that Google hosts all of its own products with), via [Google Firebase](https://firebase.google.com/).

As per the [Privacy and Security in Firebase](https://firebase.google.com/support/privacy), all Firebase services (aside from App Indexing) have successfully completed the **ISO 27001** and **SOC 1**, **SOC 2**, and **SOC 3** evaluation process, and some have also completed the **ISO 27017** and **ISO 27018** certification process.

## What Pitchdeck does and doesn't do

Pitchdeck uses the [Figma Plugins API](https://www.figma.com/plugin-docs/) to export Figma design to presentations and create a password-protected URL that you can share with any stakeholders for viewing outside of the Figma app, or you can also download the presentation _directly_ to your computer as PPTX or PDF file.

### Pitchdeck does

- Allow users to optionally generate password protected URLs to share presentations with their stakeholders (without needing a Figma account).
- Encrypt image uploads with AES-256.
- Log anonymous visit analytics (for your own use) for presentations uploaded to the Pitchdeck Web App, and analytics can optionally be turned off per custom share link if needed.
- Allow users to export their presentation designs from Figma to a PDF file.
- Allow users to export their presentation designs from Figma to a PPTX file.
- Automatically deletes URL/uploads if not accessed for 180 days.
- Download any exported PDF and PPTX files _directly_ to the user's computer.

### Pitchdeck does _not_

- Make _any_ password-protected "Uploaded" URLs created via the plugin publicly accessible or indexed by any search engines.
- Collect or store _any_ personal information (Figma plugins *cannot* access any private information about Figma projects, Figma teams or Figma users).

## How Figma plugins work

Figma plugins are written in HTML/CSS/Javascript, and are run in a tightly controlled [sandbox environment](https://www.figma.com/plugin-docs/how-plugins-run/) inside of the main Figma application.

Figma plugins can only do whatever Figma allows them to do inside the permissions of the [Figma Plugins API](https://www.figma.com/plugin-docs/), and importantly, **plugins don't have any access to personal information** about the Figma user running the plugin.

## What Figma plugins can and can't do

As per the article on [Figma plugin security](https://www.figma.com/blog/how-we-built-the-figma-plugin-system/), there are a limited number of things that Figma plugins can do, and many more things that they can't do:

### Figma plugins can

- Only be run by an explicit user action
- Show UI in a single plugin-specific dialog
- Read any data in your Figma document (for example, a “find layer by name” plugin)
- Modify any data in your Figma document (for example, a “rename selected layers” plugin)
- Communicate with any server over the internet (for example, an “import from service X” plugin)

### Figma plugins _cannot_

- Run by themselves
- Get information about the project or team that owns the file
- Access anything when they aren’t running
- Access data from any files other than the file they were run in
- Change Figma’s UI outside of the plugin UI dialog

> **Tip:** Figma account administrators at your company can [configure an allowlist of plugins](https://help.figma.com/hc/en-us/articles/4404228724759-Manage-plugins-and-widgets-in-an-organization) that are allowed inside the organization. This can be used to prevent untrusted Figma plugins from being run in any file in that organization.

---

---
url: "/pitchdeck/faq/troubleshooting.md"
description: "Troubleshooting guide for Pitchdeck exports, embeds, and common presentation issues."
---

# Troubleshooting Pitchdeck

> Troubleshooting guide for Pitchdeck exports, embeds, and common presentation issues.

### Layers missing and turning into Purple Rectangles when exporting PDF from Figma

This is a known [Figma bug](https://forum.figma.com/t/pdf-export-consistently-missing-elements/3547) that can show purple boxes instead of images. Pitchdeck uses Figma's native PDF export, so the same problem can appear in Pitchdeck exports.

One suggestion that can help is to ensure the problematic layer is actually nested _inside_ of the main Figma frame, as sometimes a Figma layer is "visually" positioned on top of your frame on the canvas, but the layer itself is still sitting outside of the frame; this seems to be related to why the problem occurs sometimes.

### Frames used as slides should all be the same size

Please ensure all your frames are the same size; 16:9 ratio frames are recommended (for example, **1280x720** or **1920x1080**) for the best presentation results across most monitors and TV screens.

### Duplicating a Figma file or Figma page will duplicate its URL/password

Note that "duplicating" a Figma file (or "page" inside a Figma file) will also carry over its URL/password from the original once, so it's always best to create a blank one if you need a new URL.

This lets you maintain a separate presentation deck per page within a Figma file (or just use entirely separate Figma files to do this). You can have an unlimited amount of presentation URLs this way.

### Google Slides only supports 'custom' Google Fonts

If you're using third party fonts to design your slides in Figma, and exporting your presentation for Google Slides, Note that Google Slides won't be able to render the font (even if it's installed on your computer), as it only supports any font that is available via [Google Fonts](https://fonts.google.com/).

### Clicking the download button for an exported PDF or PPTX file not working

If you're clicking the **Download** button in the plugin confirmation export screen, but the file isn't downloading; restarting the Figma app (or closing/re-opening your Figma tab if you're using the browser version) should resolve the issue when you re-run the plugin and export your file again.

### Misaligned editable text in PPTX file exports

This is often caused by text layers having a fixed width/height in Figma on the text layer's bounding box which is smaller than the size of the text content itself, which causes an incorrect position offset. Setting the text layer resize option in Figma to "Auto Height" should resolve this.

The other cause of this is usually a text layer in Figma that contains multiple line-height or font size values in the same block of text. Unlike Figma, unfortunately PPTX files only support a single/overriding line-height value per text layer, and having multiple font sizes per text block will also throw out the vertical flow in your PPTX file.

To resolve this issue, you can split out the text content inside of your Figma text layer with a different line-height or font size into its own layer, and position that where you need it to be in relation to the other text layer(s); this way each text block will have its own single line-height and font size value.

### Pixelated image exports

If you're exporting a presentation while the image assets in Figma are still progressively loading, they may be exported looking pixelated, as the image wasn't fully loaded in the Figma file before it was exported. To resolve this, please ensure that all of the images have loaded 100% and are looking sharp inside the Figma file before exporting your presentation with the Pitchdeck plugin.

To help further with solving this issue, you can use the ["Downsizer" feature](/tinyimage/downsize) in our [TinyImage Figma plugin](https://www.figma.com/community/plugin/789009980664807964/TinyImage-Compressor) to shrink down your image fills to match their layer size, which will shrink their file size and ensure they load much faster in your Figma file.

### Google Slides will downscale any image over 1600x1600 pixels

If you're exporting your designs to use in Google Slides, Note that Google Slides will automatically "downscale" any images in your deck that are bigger than 1600 pixels; this can cause them to lose some visual quality if you're exporting them to a .pptx file with larger images than the upper limit.

To help avoid this, if you select the **Google Slides** option in the export settings, Pitchdeck will automatically ensure your images sizes are capped at 1600px to avoid them getting compressed when imported into Google Slides.

### Scaling your Figma Prototype embeds to fill the layer

Depending on the aspect ratio of your Figma layer/embed in Pitchdeck, you may need to change the Figma Prototype scaling option before copying the Prototype URL to paste into the Pitchdeck plugin to embed it into your layer.

When you open your Figma Prototype, if you click on the **Options** dropdown (in the top right of the header), then select the **Fit Width** scaling option before copying your Prototype URL to use in Pitchdeck as a layer embed, that should ensure the Figma Prototype embed scales up/down to the size of your Figma layer (as long as the aspect ratio of the Figma layer matches the aspect ratio of your Figma Prototype).

If you can't see the **Fit Width** option, you can also try manually updating your Figma Prototype embed's `scaling=` parameter in the URL to be `scaling=scale-down-width`, and this should ensure the **Fit Width** scale option is used to display your Figma Prototype.

### Slides not uploading from the plugin, or images not loading in the web app

One reason this might be happening is if your ISP (internet service provider) is blocking the QUIC protocol. You can confirm this by opening up your developer console in the browser or in Figma and see the error message `ERR_QUIC_PROTOCOL_ERROR`.

There are a couple of workarounds for this issue:

1. Switching to your mobile phone's Wi-Fi hotspot/tether for your computer's internet connection
2. [Disabling QUIC](https://kinsta.com/knowledgebase/err_quic_protocol_error/) in your browser

### The '100% of memory used' Figma memory leak issue

There's a rare/known bug where Figma will run out of memory while trying to extract SVG image data from certain complex layers; these usually include groups that contain multiple text layers or single complex text layers (often using a custom font, which requires more memory in Figma).

If you run into this error, the Pitchdeck plugin will display a notification at the bottom of the screen telling you which frame, and which layer specifically is causing the memory issue.

It will also tell you to click the "reload page" in the Figma warning dialog, and then once the page reloads, to add `[PNG]` to the start of the problematic layer name (for example, "[PNG] My original layer name"). This will let the Pitchdeck plugin know to fetch PNG image data for that specific layer instead of SVG image data, which resolves the memory issue.

### Thin white line around image exports

Occasionally some images will contain a faint, thin white line around the edges. Figma [does this](https://twitter.com/Skcrub/status/1255544876701270017) if a layer isn't positioned on a rounded pixel value (for example, Y: 156.76 or X: 56.3) will automatically result in this sub-pixel line getting included in the export. To resolve the issue, please ensure that your layer positions are all rounded pixel values.

### Gradients not supported for editable text in .pptx exports

If you're using a gradient fill(s) for a text layer in your Figma design, Pitchdeck will automatically take the first gradient fill and use the first color of that gradient as the "solid" color in your `.pttx` export.

### Where to host .mp4 video files

One good option for hosting videos is [Backblaze B2](https://www.backblaze.com/b2/cloud-storage.html); you can sign up for a free account that gives you 10gb of free storage, and if you create a public storage bucket, you should be able to copy/paste the links for any video files you upload to it and drop that link to the `.mp4` into Pitchdeck.

Another popular file hosting option is [Dropbox](https://www.dropbox.com/), which will let you upload your `.mp4` file, and use that link in the Pitchdeck plugin; Pitchdeck will automatically handle changing the `?dl=0` to `?raw=1` to ensure the link points directly to the video file (rather than the Dropbox website player).

### GIFs embedded in Figma documents

Due to GIF export not being natively supported in Figma, any GIFs added "directly" inside your Figma designs won't be animated; to use animated GIFs, Add them as URLs inside the Pitchdeck plugin.

### Blank file extensions using Figma desktop app on Windows

There's a known issue with the Figma desktop app (only on Windows), which also happens for normal file exports from Figma. When you go to save your file, you may see an "all files" label. If you ignore this and continue by clicking "Save", it should still save the file with the correct extension and allow you to open it as expected after it has downloaded to your computer. If it still saves the file with a blank extension, you should be able to rename the file to manually append the correct extension to the file name.

### Google Slides 100mb file size limit

Google Slides has a 100mb limit per PPTX file getting imported; one workaround for this is to split up the PPTX file you'd like to import into smaller files (using [a tool like this](https://products.aspose.app/slides/splitter)) and then upload them into your Google Slides file one at a time (which gets around the upload size limit issue, and still lets you have all the slides in one file).

### Slow (or frozen) PDF exports

If your PDF exports are going really slow, it's likely due to having high-res/large image fills in some of the content _and/or_ it can be related to having lots of large "Layer Blur" effects on your layers, which can both cause Figma to take a much longer time generating PDFs.

To help with the image fills issue, you can use the ["Downsizer" feature](/tinyimage/downsize) in [TinyImage](https://www.figma.com/community/plugin/789009980664807964/TinyImage-Compressor) to shrink down your image fills to match their layer size, which will shrink their file size and ensure they load much faster in your Figma file.

To help with the "Layer Blur" issue, you can convert these into flat image layers instead by right-clicking your layer in Figma -> **Copy/Paste As** -> **Copy as PNG** -> paste the layer onto the Figma canvas (**CTRL + V** on Mac, or **CMD + V** on Windows); then you can position the layer inside of your Figma frame/slide in the same spot, before hiding or deleting the original layer that you copied/pasted as a flat PNG.

Once you've finished downsizing the image fills in your Figma page and/or swapping out your Figma layers with "Blur" effects for flat images instead, re-running Pitchdeck and exporting your PDF again via the plugin should be much faster.

### Editing PDFs in Adobe Acrobat shows dotted lines

This can be resolved by un-checking the "Show bounding boxes" toggle in the Acrobat Acrobat app sidebar while editing your PDF. Showing the dotted bounding box lines is something that [Adobe enables by default](https://archive.md/Uhdbk) while enter "Edit" mode when you have a PDF open in the app, but turning off the "Show bounding boxes" toggle will turn hide those from being displayed with one click.

### PNG images and forcing background transparency

Pitchdeck will try to automatically detect if a layer contains areas of full transparency and set PNG as the default export format, otherwise it will be set to JPG. You can override this by adding **[PNG]** to the Figma layer name, or by setting the export setting format of any layer to JPG or PNG in Figma's right-hand column.

### Install custom fonts that are missing in .pptx exports

Note that opening the exported `.pptx` file on a computer which doesn't have the fonts used in Figma installed will cause the text to look different than it does in the Figma design. Please ensure you install any required fonts or replace/substitute any missing fonts where needed.

### Presentation URL expiry after 180 days

Presentation URLs will automatically expire after a 180 day period of inactivity (180 days after the link was last accessed and viewed); if you want to re-activate the URL after it has expired, Run Pitchdeck in the Figma file and click Upload Web Presentation.

### Netskope blocking the Pitchdeck web app from loading

There is a known issue with [Netskope](https://www.netskope.com/) blocking access to Firebase databases; to resolve this, please ensure you allow `firestore.googleapis.com:443` (as per [this thread](https://stackoverflow.com/questions/52441316/firestore-grpc-behind-a-corporate-firewall-proxy)).

### VPN may be required in China

Note, if you're in China, the accounts server _may_ be blocked by "The Great Firewall of China". If you're seeing an activation error, despite using a valid key, you will likely need to use a [VPN](https://protonvpn.com/free-vpn/) to resolve the issue.

### 'An error occurred while loading the plugin environment'

This may happen in the Figma desktop app if [the Use Developer VM](https://www.figma.com/plugin-docs/debugging/#developer-vm) debug setting in Figma is enabled by mistake; you can make sure it's turned off by **right-clicking** anywhere on your Figma canvas, hovering over **Plugins**, then hovering over **Development**, and making sure that the **Use Developer VM** is _unchecked_; after it is unchecked (and does _not_ have a tick icon next to it), re-running the Figma plugin should work as expected.

---

---
url: "/pitchdeck/overview/install.md"
description: "Ensure you're logged into your Figma account, then follow the steps below to install and run the [Pitchdeck Figma Plugin](https://www.figma.com/community/plugin/838925615018625519/pitchdeck-presentation-studio)."
---

# Install and run the Pitchdeck Figma Plugin

> Ensure you're logged into your Figma account, then follow the steps below to install and run the [Pitchdeck Figma Plugin](https://www.figma.com/community/plugin/838925615018625519/pitchdeck-presentation-studio).

### Video Tutorial: How to install (and remove) Figma plugins

This video tutorial is a complete step-by-step guide showing you the new process of how to install (and remove) Figma plugins after the mid-2024 "UI3" update to the Figma app
[Embedded media](https://www.youtube.com/embed/CzjxF2Jv6PM)

## Installing the Pitchdeck Figma Plugin

1. Open any Figma file.
2. Click on the **Actions** icon in the bottom Figma toolbar.
3. Click the **Plugins & Widgets** tab to filter results to Figma plugins.
4. Search for **Pitchdeck** in the search bar.
5. Click on the **Pitchdeck** search result.
6. Click the **Save** button to install the Pitchdeck plugin.

> **Note:** Figma users in a **Figma Organization** may only be able to install approved plugins. Please contact your Figma Org admin at your company to [approve the Pitchdeck plugin](https://help.figma.com/hc/en-us/articles/4404228724759-Manage-plugins-and-widgets-in-an-organization) if you're unable to install certain Figma plugins.

## Running the Pitchdeck Figma Plugin

Once you've [installed](#installing-the-figma-plugin) the **Pitchdeck** Figma plugin, to run the plugin in your Figma file:

  1. **Right-click** anywhere on your Figma file's page canvas
  2. Hover your mouse over the **Plugins** ▶ menu item
  3. Hover your mouse over the **Saved plugins** ▶ menu item
  4. Click on the **Pitchdeck** plugin menu item

> **Tip:** After you've run the **Pitchdeck** plugin once in a Figma file, you'll be able to quickly re-launch it by clicking the **Pitchdeck** icon in the right-hand side Figma column (under the **Plugin** subheading).

> **Warning:** Only Figma users with **Edit** access to a Figma file can run a Figma plugin in that Figma file; if you only have **View** permissions, you won't be able to run any Figma plugins in that file.

## Uninstalling the Pitchdeck Figma plugin

1. Open any Figma file.
2. Click on the **Actions** icon in the bottom Figma toolbar.
3. Click the **Plugins & Widgets** tab to filter results to Figma plugins.
4. Search for **Pitchdeck** in the search bar.
5. Click on the **Pitchdeck** search result.
6. Click the **Remove** button to uninstall the Pitchdeck plugin.

> **Note:** This will remove the plugin from your **Saved Plugins** list, however, the Figma plugin may still show up under your **Recents** list (if it has been recently run), as Figma saves this list of recent plugins in your browser's/app's local storage. The plugin will vanish from the Recents menu after other plugins are run to take its place.

---

---
url: "/pitchdeck/overview/pro.md"
description: "After trying out all the Pro features of Pitchdeck **10 times**, you can optionally upgrade to continue using all the extra features that are only available in the Pro version; or if you're a casual user, you can continue using the Free version forever."
---

# Activating Pitchdeck Pro

> After trying out all the Pro features of Pitchdeck **10 times**, you can optionally upgrade to continue using all the extra features that are only available in the Pro version; or if you're a casual user, you can continue using the Free version forever.

> **Tip:** Need a Pitchdeck Pro account? You can purchase a Pro account for you or your team by visiting the [Pitchdeck](https://www.hypermatic.com/pitchdeck/#pro) product page on the Hypermatic website.

## Activating the Figma plugin with an Pitchdeck Pro license key

1. **Purchase a Pro license** for you or your team by visiting the [Pitchdeck](https://www.hypermatic.com/pitchdeck/#pro) product page on the Hypermatic website.
2. **Run the Pitchdeck Plugin**, then click on the **Upgrade Now** button at the bottom of the Figma plugin window.
3. **Paste in your Pro key**, then click the **Unlock** button.

This will unlock the Pro version of Pitchdeck and give you unlimited use all of the Figma plugin features.

> **Warning:** Note, if you're in China, the accounts server _may_ be blocked by "The Great Firewall of China". If you're seeing a activation error, despite using a valid key, you will likely need to use a [VPN](https://protonvpn.com/free-vpn/) to resolve the issue.

> **Info:** If you ever need to use a different license key at any time (for example, you were using your own personal Pro license key, but now your employer is buying you a Pro license to use instead), you can press **CTRL + K** while your plugin window is open in Figma, and this will bring up the license key prompt again, where you can enter a different license key.

---

---
url: "/pitchdeck/overview/quickstart.md"
description: "Create animated presentations from Figma designs or export editable slides to PowerPoint and other formats."
---

# Get started with Pitchdeck

> Create animated presentations from Figma designs or export editable slides to PowerPoint and other formats.

[![Pitchdeck Figma Plugin](https://www.hypermatic.com/pitchdeck.jpg)](https://www.figma.com/community/plugin/838925615018625519/pitchdeck-presentation-studio)

## Install and activate Pitchdeck

- [Install & Run the Figma plugin](/pitchdeck/overview/install.md): How to run Pitchdeck inside of Figma
- [Activate Pitchdeck Pro](/pitchdeck/overview/pro.md): How to buy and use a Pro license key

## Using Pitchdeck

  - [Pitchdeck Documentation](/pitchdeck/design/slides.md): Detailed docs with short screencaps
  - [Pitchdeck Video Tutorials](/pitchdeck/tutorials.md): Full step-by-step video walkthroughs

## Using Pitchdeck in Figma Buzz

You can use Pitchdeck with frames in a Figma Buzz file:

1. Run Pitchdeck from the **Plugins** panel in your Buzz file.
2. Check the frames you want to use, then click **Load Checked Slides**. You can also click **Load All Slides** to include every frame listed in the sidebar.
3. Click Figma's **pop-out** icon in the top-right corner of the plugin header when prompted.
4. Use the full Pitchdeck window to edit your presentation, add animations, and access the export features.

> **Tip:** The initial frame selector is designed for Buzz's narrow plugin sidebar. The full Pitchdeck editor and export options open in the wider pop-out window.

## Frequently asked questions

- [Troubleshooting Pitchdeck](/pitchdeck/faq/troubleshooting.md): Common issues issues you may run into
- [Pitchdeck Security](/pitchdeck/faq/security.md): Details about how Pitchdeck works
- [Receipts](/faq/receipts.md): Find email receipts and PDF invoices
- [Billing](/faq/billing.md): Manage your Pro subscription
- [License Seat Management](/faq/seats.md): Manage the Figma users on your key
- [Pitchdeck Free vs Pro](/pitchdeck/faq/plans.md): Compare Free vs Pro features

[Video](https://www.hypermatic.com/assets/videos/pitchdeck/PITCHDECK_DEMO.mp4)

## Pitchdeck features

- Add animations and preview them inside Figma.
- Export slides to an interactive shareable URL to present in the browser.
- Export files for PowerPoint/Keynote/Google Slides, with editable text.
- Export to a PDF file (with optional password protection).
- Export to Canva (via PSD).
- Import slides from PowerPoint, Google Slides or Keynote (as exported .pptx files) into Figma automatically
- Add GIFs and YouTube/Vimeo/MP4 video embeds to layers in your slides.
- Built-in presentation analytics data and custom share link URLs.
- Embed content from Figma, Loom, Canva, Lottie, Google Docs/Sheets/Slides, SoundCloud or Spotify.
- Add slide links or website URL links to layers in your slides.
- Built-in GIPHY and Pixabay search integrations.
- Quickly re-order slides by visual position, Figma layer order or drag and drop.
- Automatically generate Charts by adding your own CSV data.
- Optional automatic page numbering Figma component for your slides.
- Set approval workflow statuses to keep track of which slides are ready.
- Automatically generates password protected presentation URLs.
- Present and share slides through a browser-based presentation page.
- Includes speaker notes, timer, laser pointer, and slide controls.
- Control your presentation from your phone/tablet by scanning a QR code.
- Present in fullscreen with notes and controls on a second screen.
- Spell check your Figma slides in dozens of languages.
- The Pitchdeck plugin can be run in both Figma and Figma Slides.

---

---
url: "/pitchdeck/tutorials.md"
description: "The best free Figma tutorial videos for beginners (or power users) to level up."
---

# Pitchdeck Video Tutorials

> The best free Figma tutorial videos for beginners (or power users) to level up.

## Creating Presentations

- [Create and present a Pitchdeck](/pitchdeck/tutorials/create-and-present-a-pitchdeck)
- [Embed videos and GIFs](/pitchdeck/tutorials/embed-videos-and-gifs)
- [Add links to presentations](/pitchdeck/tutorials/add-links-to-presentations)
- [Import slides from PowerPoint to Figma in one click](/pitchdeck/tutorials/import-slides-from-powerpoint-to-figma-in-one-click)
- [Import Google Slides to Figma in one click](/pitchdeck/tutorials/import-google-slides-to-figma-in-one-click)
- [Import PowerPoint (.pptx) to Figma Slides](/pitchdeck/tutorials/import-powerpoint-pptx-to-figma-slides)
- [Import Google Slides to Figma Slides](/pitchdeck/tutorials/import-google-slides-to-figma-slides)
- [Add slide layouts to Figma presentations with one click](/pitchdeck/tutorials/add-slide-layouts-to-figma-presentations-with-one-click)
- [Automatically create Charts in Figma from CSV file data](/pitchdeck/tutorials/automatically-create-charts-in-figma-from-csv-file-data)
- [Add custom animations to your Figma presentations](/pitchdeck/tutorials/add-custom-animations-to-your-figma-presentations)
- [Spell check Figma presentation slides](/pitchdeck/tutorials/spell-check-figma-presentation-slides)
- [Add scrollable mockup slides to Figma presentations](/pitchdeck/tutorials/add-scrollable-mockup-slides-to-figma-presentations)
- [Add page numbers to Figma slides automatically](/pitchdeck/tutorials/add-page-numbers-to-figma-slides-automatically)
- [Re-order and tidy Figma slides into a grid with one click](/pitchdeck/tutorials/re-order-and-tidy-figma-slides-into-a-grid-with-one-click)
- [Analytics dashboard and link tracking for Figma presentations](/pitchdeck/tutorials/analytics-dashboard-and-link-tracking-for-figma-presentations)

## Exporting Presentations

- [Export presentations to PowerPoint](/pitchdeck/tutorials/export-presentations-to-powerpoint)
- [Export presentations to Keynote](/pitchdeck/tutorials/export-presentations-to-keynote)
- [Export presentations to Google Slides](/pitchdeck/tutorials/export-presentations-to-google-slides)
- [Export .pptx files with editable text](/pitchdeck/tutorials/export-pptx-files-with-editable-text)
- [Add Master Slides to PowerPoint exports from Figma](/pitchdeck/tutorials/add-master-slides-to-powerpoint-exports-from-figma)
- [Export compressed .pptx files](/pitchdeck/tutorials/export-compressed-pptx-files)
- [Export presentations to PDF](/pitchdeck/tutorials/export-presentations-to-pdf)
- [Export presentation to clickable interactive PDF](/pitchdeck/tutorials/export-presentation-to-clickable-interactive-pdf)
- [Export Figma slides to JPG/PNG images](/pitchdeck/tutorials/export-figma-slides-to-jpg-png-images)
- [Export Figma slides to Canva with one click](/pitchdeck/tutorials/export-figma-slides-to-canva-with-one-click)
- [Compress large PDF presentation exports from Figma](/pitchdeck/tutorials/compress-large-pdf-presentation-exports-from-figma)
- [Export Figma Slides to PowerPoint (.pptx)](/pitchdeck/tutorials/export-figma-slides-to-powerpoint-pptx)
- [Export Figma Slides to Google Slides](/pitchdeck/tutorials/export-figma-slides-to-google-slides)
- [Export Figma Slides to Keynote](/pitchdeck/tutorials/export-figma-slides-to-keynote)
- [Self-hosting your Figma presentation on a custom domain](/pitchdeck/tutorials/self-hosting-your-figma-presentation-on-a-custom-domain)

## Slide Layer Embeds

- [Embed YouTube videos in Figma presentations](/pitchdeck/tutorials/embed-youtube-videos-in-figma-presentations)
- [Embed live Figma designs in Figma presentations](/pitchdeck/tutorials/embed-live-figma-designs-in-figma-presentations)
- [Embed live Figma prototypes in Figma presentations](/pitchdeck/tutorials/embed-live-figma-prototypes-in-figma-presentations)
- [Embed Google Docs in Figma presentations](/pitchdeck/tutorials/embed-google-docs-in-figma-presentations)
- [Embed Google Forms in Figma presentations](/pitchdeck/tutorials/embed-google-forms-in-figma-presentations)
- [Embed Google Sheets in Figma presentations](/pitchdeck/tutorials/embed-google-sheets-in-figma-presentations)
- [Embed Google Slides in Figma presentations](/pitchdeck/tutorials/embed-google-slides-in-figma-presentations)
- [Embed Loom videos in Figma presentations](/pitchdeck/tutorials/embed-loom-videos-in-figma-presentations)
- [Embed Lottie animations in Figma presentations](/pitchdeck/tutorials/embed-lottie-animations-in-figma-presentations)
- [Embed SoundCloud audio in Figma presentations](/pitchdeck/tutorials/embed-soundcloud-audio-in-figma-presentations)
- [Embed Spotify audio in Figma presentations](/pitchdeck/tutorials/embed-spotify-audio-in-figma-presentations)
- [Embed Vimeo videos in Figma presentations](/pitchdeck/tutorials/embed-vimeo-videos-in-figma-presentations)
- [Embed website iFrames in Figma presentations](/pitchdeck/tutorials/embed-website-iframes-in-figma-presentations)
- [Embed Canva designs in Figma presentations](/pitchdeck/tutorials/embed-canva-designs-in-figma-presentations)

## More video tutorials

- [Export PowerPoint files with MP4 video embeds from Figma using Pitchdeck](/pitchdeck/tutorials/export-powerpoint-files-with-mp4-video-embeds-from-figma-using-pitchdeck)
- [How to export a compressed PowerPoint file from Figma using Pitchdeck](/pitchdeck/tutorials/how-to-export-a-compressed-powerpoint-file-from-figma-using-pitchdeck)

---

---
url: "/pitchdeck/tutorials/add-custom-animations-to-your-figma-presentations.md"
description: "This video shows how to install and open the Pitchdeck Presentation Studio Figma plugin, then use its Custom Animations feature to build keyframe-based animations for presentation elements. It also demonstrates how to save, update, fork, delete, and preview custom animations, and notes that these animations only appear in the Pitchdeck Web URL export."
---

# Add custom animations to your Figma presentations

> This video shows how to install and open the Pitchdeck Presentation Studio Figma plugin, then use its Custom Animations feature to build keyframe-based animations for presentation elements. It also demonstrates how to save, update, fork, delete, and preview custom animations, and notes that these animations only appear in the Pitchdeck Web URL export.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/Gm2i5ZLYOIQ)

**What this video covers**

This video shows how to install and open the Pitchdeck Presentation Studio Figma plugin, then use its Custom Animations feature to build keyframe-based animations for presentation elements. It also demonstrates how to save, update, fork, delete, and preview custom animations, and notes that these animations only appear in the Pitchdeck Web URL export.

**Things you'll need**

- Figma
- Pitchdeck Presentation Studio

**Steps**

1. Install Pitchdeck Presentation Studio from the Figma Community and open it from Plugins.
2. Click Custom Animations to open the custom keyframe animation editor.
3. Set keyframes on the timeline, insert new keyframes such as at 50%, and edit properties like position, opacity, scale, and rotation.
4. Adjust easing and preview speed to check how the animation will look.
5. Name the animation and click Add New Animation, then apply it to a layer from the custom animations list.
6. Reopen a saved animation from the Saved Animations menu to update it, or create a fork by saving it under a new name.
7. Delete a saved animation with Delete Saved Animation if you no longer want it, then use Export Presentation with the Pitchdeck Web URL option to see the animations in the web presentation.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=Gm2i5ZLYOIQ)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-custom-animations-to-your-figma-presentations-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/add-links-to-presentations.md"
description: "The video shows how to use the Pitchdeck Figma plugin to turn a Figma slide deck into a presentation with clickable URL links. It demonstrates adding URLs to individual frame elements, uploading the presentation, and opening the generated Pitchdeck URL to test the links in the browser."
---

# Add links to presentations

> The video shows how to use the Pitchdeck Figma plugin to turn a Figma slide deck into a presentation with clickable URL links. It demonstrates adding URLs to individual frame elements, uploading the presentation, and opening the generated Pitchdeck URL to test the links in the browser.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/vyqGdJy8Hdw)

**What this video covers**

The video shows how to use the Pitchdeck Figma plugin to turn a Figma slide deck into a presentation with clickable URL links. It demonstrates adding URLs to individual frame elements, uploading the presentation, and opening the generated Pitchdeck URL to test the links in the browser.

**Things you'll need**

- A collaborative presentation slide deck designed in Figma
- The Pitchdeck plugin installed in Figma
- A URL or website link to attach to a slide element

**Steps**

1. Install the Pitchdeck plugin from Figma Community by searching for Pitchdeck Presentation Studio.
2. Open your Figma file, then launch Pitchdeck from Plugins.
3. In the plugin, switch the top option from animations to Clickable URL links.
4. Select a frame element, paste a URL into the attached text field, and repeat for any other elements you want linked.
5. Choose Pitchdeck URL as the export format, then click Upload Presentation or Update Presentation.
6. Copy the generated presentation URL and password, open the URL in a browser, and log in with the password.
7. Hover over linked elements in the presentation and click them to open the attached web pages.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=vyqGdJy8Hdw)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-clickable-url-links-to-figma-presentations-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/add-master-slides-to-powerpoint-exports-from-figma.md"
description: "This tutorial shows how to use the Pitchdeck Figma plugin to export a Figma presentation to PowerPoint with master slide layouts created from Figma components. It also shows how locking a layer in Figma makes that element export as a static image instead of an editable placeholder."
---

# Add Master Slides to PowerPoint exports from Figma

> This tutorial shows how to use the Pitchdeck Figma plugin to export a Figma presentation to PowerPoint with master slide layouts created from Figma components. It also shows how locking a layer in Figma makes that element export as a static image instead of an editable placeholder.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/vR7ocT4YO6s)

**What this video covers**

This tutorial shows how to use the Pitchdeck Figma plugin to export a Figma presentation to PowerPoint with master slide layouts created from Figma components. It also shows how locking a layer in Figma makes that element export as a static image instead of an editable placeholder.

**Things you'll need**

- A Figma file with the slides, frames, components, or instances you want to export
- The Pitchdeck Figma plugin installed or saved in Figma plugins

**Steps**

1. Open the Figma Resources panel, search for Pitchdeck under Plugins, and run or save the plugin.
2. Right-click the slide frames you want to use, choose Create component, and refresh the slides in Pitchdeck so the components appear in the deck.
3. Open the export panel, select PowerPoint, and enable Create PowerPoint master slides from components in the PowerPoint settings.
4. Click Export for PowerPoint, then download the .pptx file and open it in PowerPoint.
5. Use Insert new slide in PowerPoint to add the master slides created from the Figma components.
6. If you want an image or logo to stay static, lock that layer in Figma before exporting again.
7. Re-export the deck and confirm the locked layer appears as a static image while text remains as placeholders.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=vR7ocT4YO6s)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-master-slides-to-power-point-exports-from-figma-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/add-page-numbers-to-figma-slides-automatically.md"
description: "This tutorial shows how to use the Pitchdeck Figma plugin to automatically add and manage page numbers on Figma slides. It also covers styling the slide number component, changing its position and color behavior, and keeping numbers in sync as slides are reordered, added, or removed."
---

# Add page numbers to Figma slides automatically

> This tutorial shows how to use the Pitchdeck Figma plugin to automatically add and manage page numbers on Figma slides. It also covers styling the slide number component, changing its position and color behavior, and keeping numbers in sync as slides are reordered, added, or removed.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/Z7DpTBaudLw)

**What this video covers**

This tutorial shows how to use the Pitchdeck Figma plugin to automatically add and manage page numbers on Figma slides. It also covers styling the slide number component, changing its position and color behavior, and keeping numbers in sync as slides are reordered, added, or removed.

**Things you'll need**

- A Figma file with frames already set up as slides
- The Pitchdeck Figma plugin

**Steps**

1. Open Figma, go to the Resources icon, search for Pitchdeck under Plugins, and run or save the plugin.
2. Run Pitchdeck from Saved Plugins in the Figma canvas.
3. Click the Page icon in the plugin to open the page number settings.
4. Turn on Enable Auto Slide Numbers to create the slide number component and add numbers to frames.
5. Adjust the number position, leading zeros, text color mode, and the Dark Text Color, Light Text Color, or Custom Text Color from the master component.
6. Change the slide order or remove slides and let Pitchdeck automatically update the numbering.
7. Export the deck to PDF, PowerPoint, Google Slides, Keynote, or the Pitchdeck web application to keep the page numbers in the output.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=Z7DpTBaudLw)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-page-numbers-to-figma-slides-automatically-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/add-scrollable-mockup-slides-to-figma-presentations.md"
description: "The video shows how to use the Pitchdeck Figma plugin to turn longer Figma frames into scrollable slides in a web presentation. It explains how to install the plugin, export a Pitchdeck Presentation, and view the uploaded slides in the browser with scrollable website mockups."
---

# Add scrollable mockup slides to Figma presentations

> The video shows how to use the Pitchdeck Figma plugin to turn longer Figma frames into scrollable slides in a web presentation. It explains how to install the plugin, export a Pitchdeck Presentation, and view the uploaded slides in the browser with scrollable website mockups.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/L9hEM-qLgFk)

**What this video covers**

The video shows how to use the Pitchdeck Figma plugin to turn longer Figma frames into scrollable slides in a web presentation. It explains how to install the plugin, export a Pitchdeck Presentation, and view the uploaded slides in the browser with scrollable website mockups.

**Steps**

1. Open Figma, click the Resources icon, search for Pitchdeck, and install or save the plugin.
2. Run Pitchdeck from your saved plugins in the Figma canvas.
3. Create or select frames for your presentation, including taller website mockup frames that need scrolling.
4. Click Export and make sure Pitchdeck Presentation is selected.
5. Upload or update the presentation, then copy the generated URL or passwordless URL.
6. Open the URL in a browser and scroll through any slide that is taller than it is wide.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=L9hEM-qLgFk)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-scrollable-slides-to-figma-presentations-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/add-slide-layouts-to-figma-presentations-with-one-click.md"
description: "This video shows how to use the Pitchdeck Figma plugin to add preset slide layouts to a Figma presentation with one click, then manage them with auto-layout, global text styles, and color styles. It also covers loading master slides and exporting the finished deck to formats like PowerPoint or PDF."
---

# Add slide layouts to Figma presentations with one click

> This video shows how to use the Pitchdeck Figma plugin to add preset slide layouts to a Figma presentation with one click, then manage them with auto-layout, global text styles, and color styles. It also covers loading master slides and exporting the finished deck to formats like PowerPoint or PDF.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/POTDGUtsC-s)

**What this video covers**

This video shows how to use the Pitchdeck Figma plugin to add preset slide layouts to a Figma presentation with one click, then manage them with auto-layout, global text styles, and color styles. It also covers loading master slides and exporting the finished deck to formats like PowerPoint or PDF.

**Things you'll need**

- A Figma file with the Pitchdeck plugin available

**Steps**

1. Open your Figma file, use the Resources icon to search for Pitchdeck, and run the plugin from Plugins or save it for later.
2. Create or select slides as frames, components, or instances, then refresh layers so Pitchdeck loads them into the plugin.
3. Click Add slides at the bottom of the slides list to open preset layout options and insert the slide layouts you want.
4. Adjust the generated slides, noting that they use auto-layout and can inherit global text styles and global color styles.
5. Use the Master Slides tab and refresh it to load slide components, then add them as instances that inherit changes from the master component.
6. Click Export, choose an export format, export the slides, and download the file to open it in PowerPoint or another supported format.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=POTDGUtsC-s)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-slide-layouts-to-figma-presentations-with-one-click-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/analytics-dashboard-and-link-tracking-for-figma-presentations.md"
description: "This video shows how to upload a Figma presentation with the Pitchdeck Presentation Studio Figma plugin, open it in the Pitchdeck web app, and use the analytics dashboard to review viewing activity. It also demonstrates creating custom share URLs, filtering analytics by link and time range, excluding your own views, and downloading the data as a CSV."
---

# Analytics dashboard and link tracking for Figma presentations

> This video shows how to upload a Figma presentation with the Pitchdeck Presentation Studio Figma plugin, open it in the Pitchdeck web app, and use the analytics dashboard to review viewing activity. It also demonstrates creating custom share URLs, filtering analytics by link and time range, excluding your own views, and downloading the data as a CSV.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/3IWyzOZorjs)

**What this video covers**

This video shows how to upload a Figma presentation with the Pitchdeck Presentation Studio Figma plugin, open it in the Pitchdeck web app, and use the analytics dashboard to review viewing activity. It also demonstrates creating custom share URLs, filtering analytics by link and time range, excluding your own views, and downloading the data as a CSV.

**Things you'll need**

- A Figma file with presentation frames already created
- Pitchdeck Presentation Studio Figma plugin installed or available in Figma

**Steps**

1. Open the Pitchdeck Figma plugin from Resources, search for Pitchdeck under Plugins, and run or save the plugin.
2. Open the saved plugin from Plugins > Saved plugins and make sure your presentation frames are ready to upload.
3. In the export panel, select Pitchdeck presentation as the format and click Upload web presentation to create a browser link.
4. Copy the uploaded link, open it in the browser, and view the presentation in the Pitchdeck web app.
5. Return to the Pitchdeck plugin and open Analytics to view activity, slide views, open and close times, and slide-by-slide duration data.
6. Create a custom share URL for a person or group, then use the settings to enable or disable toolbar buttons, activity tracking, or the link itself.
7. Use the analytics filters to switch between all presentation data, a specific custom link, non-custom links, time ranges, and Exclude your views, or download the results as a CSV.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=3IWyzOZorjs)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-use-the-analytics-dashboard-and-link-tracking-for-figma-presentations-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/automatically-create-charts-in-figma-from-csv-file-data.md"
description: "The video shows how to use the Pitchdeck Figma plugin to automatically create charts in Figma from CSV file data. It covers opening the plugin, choosing a chart type in Chart Builder, importing a CSV file, and adding the generated chart slide to Figma for further editing."
---

# Automatically create Charts in Figma from CSV file data

> The video shows how to use the Pitchdeck Figma plugin to automatically create charts in Figma from CSV file data. It covers opening the plugin, choosing a chart type in Chart Builder, importing a CSV file, and adding the generated chart slide to Figma for further editing.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/iMg2ACBolPI)

**What this video covers**

The video shows how to use the Pitchdeck Figma plugin to automatically create charts in Figma from CSV file data. It covers opening the plugin, choosing a chart type in Chart Builder, importing a CSV file, and adding the generated chart slide to Figma for further editing.

**Things you'll need**

- Figma
- The Pitchdeck Figma plugin
- A CSV file with chart data

**Steps**

1. Open Figma, find Pitchdeck in Resources, and run or save the plugin.
2. Open Pitchdeck from Plugins > Saved plugins, then click Add Slides/Charts.
3. Switch from the slides panel to the Chart Builder tab and select a chart type.
4. Download the sample CSV file link for the chosen chart type and structure your own CSV data to match it.
5. Drag and drop your CSV file into the Drop Zone to load the data and preview the chart.
6. Adjust chart labels or sizes if needed, then click Add chart slide to Figma.
7. Edit the inserted chart in Figma as vector and text layers, including colors, font sizes, and the title.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=iMg2ACBolPI)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-automatically-create-charts-in-figma-from-csv-file-data-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/compress-large-pdf-presentation-exports-from-figma.md"
description: "This tutorial shows how to use the Pitchdeck Figma plugin to export slides to PDF and reduce file size for large presentations with high-resolution image fills. It compares a native Figma PDF export with Pitchdeck’s optimized export and the Downsize large Figma image fills option."
---

# Compress large PDF presentation exports from Figma

> This tutorial shows how to use the Pitchdeck Figma plugin to export slides to PDF and reduce file size for large presentations with high-resolution image fills. It compares a native Figma PDF export with Pitchdeck’s optimized export and the Downsize large Figma image fills option.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/5E4glTwnnZw)

**What this video covers**

This tutorial shows how to use the Pitchdeck Figma plugin to export slides to PDF and reduce file size for large presentations with high-resolution image fills. It compares a native Figma PDF export with Pitchdeck’s optimized export and the Downsize large Figma image fills option.

**Things you'll need**

- A Figma file with frames or slides to export
- The Pitchdeck Figma plugin

**Steps**

1. Open the Figma file, use the Resources icon to find Pitchdeck under the Plugins tab, then run it or save it to Saved plugins for later access.
2. Prepare the slides with frames or image-filled layers, then export a baseline PDF from Figma to compare file size.
3. In Pitchdeck, click the export button in the top right, choose PDF, and leave PDF quality at 300 DPI for best quality.
4. Export the PDF once without downsizing to see the optimized Pitchdeck file size.
5. Open export settings again, enable Downsize large Figma image fills, and export the PDF a second time.
6. Download the PDF and compare the file info to confirm the reduced size.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=5E4glTwnnZw)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-compress-large-pdf-presentation-exports-from-figma-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/create-and-present-a-pitchdeck.md"
description: "This video shows how to use the Pitchdeck Figma plugin to turn a Figma slide deck into an animated presentation with slide order, speaker notes, and per-layer animations. It also demonstrates how to upload the deck to a secure Pitchdeck URL and present it in browser-based windowed or fullscreen mode with controls, pointer, notes, and remote access."
---

# Create and present a Pitchdeck

> This video shows how to use the Pitchdeck Figma plugin to turn a Figma slide deck into an animated presentation with slide order, speaker notes, and per-layer animations. It also demonstrates how to upload the deck to a secure Pitchdeck URL and present it in browser-based windowed or fullscreen mode with controls, pointer, notes, and remote access.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/CgHfcrm3oXw)

**What this video covers**

This video shows how to use the Pitchdeck Figma plugin to turn a Figma slide deck into an animated presentation with slide order, speaker notes, and per-layer animations. It also demonstrates how to upload the deck to a secure Pitchdeck URL and present it in browser-based windowed or fullscreen mode with controls, pointer, notes, and remote access.

**Things you'll need**

- A Figma design file with frames arranged as presentation slides.
- The Pitchdeck plugin installed in Figma.

**Steps**

1. Install the Pitchdeck plugin from Figma Community by searching for "Pitchdeck" and clicking install on "Pitchdeck Presentation Studio".
2. Open your Figma file, then run the plugin from right-click > plugins > Pitchdeck Presentation Studio.
3. Review the imported frames as slides, reorder them in the plugin if needed, and use the Refresh icon to reload slides after making changes in Figma.
4. Add Speaker Notes for each slide and assign animations to individual layers using the animation select box and timing controls.
5. Copy and paste animations between layers, or set a layer to "no animation" to disable it.
6. Choose the "Pitchdeck URL" export option, then click "Upload Presentation" or "Update Presentation" to generate a secure presentation link and password.
7. Open the secure link, log in with the password, and present using next/previous buttons, keyboard arrows, spacebar, fullscreen, pointer, notes, or the QR-code-based remote.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=CgHfcrm3oXw)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-create-and-present-animated-presentations-from-figma-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/embed-canva-designs-in-figma-presentations.md"
description: "This video shows how to embed a live Canva design into a Figma presentation using the Pitchdeck Figma plugin. It covers enabling Canva embeds, copying the Smart Embed Link, pasting it into a Pitchdeck slide, and exporting the presentation as a Pitchdeck Presentation Web URL."
---

# Embed Canva designs in Figma presentations

> This video shows how to embed a live Canva design into a Figma presentation using the Pitchdeck Figma plugin. It covers enabling Canva embeds, copying the Smart Embed Link, pasting it into a Pitchdeck slide, and exporting the presentation as a Pitchdeck Presentation Web URL.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/W1_Xagat5mI)

**What this video covers**

This video shows how to embed a live Canva design into a Figma presentation using the Pitchdeck Figma plugin. It covers enabling Canva embeds, copying the Smart Embed Link, pasting it into a Pitchdeck slide, and exporting the presentation as a Pitchdeck Presentation Web URL.

**Things you'll need**

- A Figma file with Pitchdeck installed
- A Canva design with embeds enabled

**Steps**

1. Open your Figma file, find Pitchdeck in Resources, and save or run the plugin from Saved Plugins.
2. Create slides as frames on the Figma page, then select the slide where you want the Canva embed.
3. In Canva, click Share, open More, choose Embed, and enable embeds for the design.
4. Copy the Smart Embed Link from Canva.
5. Go back to Pitchdeck in Figma, open the Embeds tab for the selected slide, and paste the Smart Embed Link into the embed field.
6. Adjust the embed layer size or aspect ratio in Figma if needed.
7. Export the deck using Pitchdeck Presentation Web URL, then open the Passwordless URL or share the generated presentation link.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=W1_Xagat5mI)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-embed-canva-designs-in-figma-presentations-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/embed-google-docs-in-figma-presentations.md"
description: "This tutorial shows how to use the Pitchdeck presentation Figma plugin to embed a Google Doc inside a Figma slide and then export the presentation to Pitchdeck web presentation. It also shows how to make the Google Doc public, paste the embed link into a layer in Figma, and verify the embed in the exported presentation."
---

# Embed Google Docs in Figma presentations

> This tutorial shows how to use the Pitchdeck presentation Figma plugin to embed a Google Doc inside a Figma slide and then export the presentation to Pitchdeck web presentation. It also shows how to make the Google Doc public, paste the embed link into a layer in Figma, and verify the embed in the exported presentation.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/ubAKEKWojEM)

**What this video covers**

This tutorial shows how to use the Pitchdeck presentation Figma plugin to embed a Google Doc inside a Figma slide and then export the presentation to Pitchdeck web presentation. It also shows how to make the Google Doc public, paste the embed link into a layer in Figma, and verify the embed in the exported presentation.

**Things you'll need**

- A Figma file with slides built as frames.
- A Google Doc that can be published to the web.

**Steps**

1. Open your Figma file, find Pitchdeck in Resources, and run the plugin from Saved plugins.
2. Create or select the Figma frame you want to use as a slide, then choose a rectangle, image, or other shape layer to hold the embed.
3. In the Pitchdeck plugin, open the GIFs/Videos/Embeds tab and select the target layer.
4. In Google Docs, set sharing to Anyone with the link, then use File > Share > Publish to Web and copy the embed link.
5. Paste the Google Docs embed link into the Pitchdeck embed field, adjust the layer size if needed, and reload the frame preview.
6. Click Export Presentation, then Upload Web Presentation or Update Web Presentation to send the slides to Pitchdeck.
7. Open the generated link in a browser to confirm the Google Doc appears in the presentation and remains selectable.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=ubAKEKWojEM)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-embed-google-docs-in-figma-presentations-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/embed-google-forms-in-figma-presentations.md"
description: "This video shows how to use the Pitchdeck presentation Figma plugin to embed a Google Form inside a Figma presentation. It also demonstrates exporting the presentation to the Pitchdeck web app and submitting a form response directly from the shared presentation link."
---

# Embed Google Forms in Figma presentations

> This video shows how to use the Pitchdeck presentation Figma plugin to embed a Google Form inside a Figma presentation. It also demonstrates exporting the presentation to the Pitchdeck web app and submitting a form response directly from the shared presentation link.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/au1QyrdhMbI)

**What this video covers**

This video shows how to use the Pitchdeck presentation Figma plugin to embed a Google Form inside a Figma presentation. It also demonstrates exporting the presentation to the Pitchdeck web app and submitting a form response directly from the shared presentation link.

**Things you'll need**

- A Figma file with frames set up for the presentation
- The Pitchdeck presentation Figma plugin
- A Google Form with responses configured to be accessible by viewers

**Steps**

1. Open your Figma file, find Pitchdeck from the Resources icon, and run or save the plugin.
2. Select the frame or slide where you want the form, then add a layer and open the GIFs/Videos/Embeds tab.
3. Use the Supported Embeds documentation to confirm the Google Forms embed format.
4. In Google Forms, turn off required sign-in settings under Responses, then copy the form link from Send.
5. Paste the Google Forms link into the Pitchdeck embed field and resize the embed if you want it to fit the frame.
6. Export the presentation with Export Presentation, then use Update Web Presentation to upload it to the Pitchdeck web app.
7. Open the presentation link in a browser and test the embedded Google Form by filling it out and submitting it.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=au1QyrdhMbI)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-embed-google-forms-in-figma-presentations-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/embed-google-sheets-in-figma-presentations.md"
description: "This video shows how to embed a Google Sheet directly into a Figma presentation using the Pitchdeck presentation Figma plugin. It demonstrates publishing a Google Sheet to the web, pasting the published link into Pitchdeck’s GIFs/Videos/Embeds tab, and exporting the presentation to the Pitchdeck web app."
---

# Embed Google Sheets in Figma presentations

> This video shows how to embed a Google Sheet directly into a Figma presentation using the Pitchdeck presentation Figma plugin. It demonstrates publishing a Google Sheet to the web, pasting the published link into Pitchdeck’s GIFs/Videos/Embeds tab, and exporting the presentation to the Pitchdeck web app.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/LiA711c8pcs)

**What this video covers**

This video shows how to embed a Google Sheet directly into a Figma presentation using the Pitchdeck presentation Figma plugin. It demonstrates publishing a Google Sheet to the web, pasting the published link into Pitchdeck’s GIFs/Videos/Embeds tab, and exporting the presentation to the Pitchdeck web app.

**Things you'll need**

- A Figma file with frames ready for presentation.
- A Google Sheet that can be published to the web.

**Steps**

1. Open a Figma file, find Pitchdeck from the Resources icon under the Plugins tab, and run or save the plugin.
2. In Pitchdeck, choose the Figma frame where the Google Sheet embed should appear and open the GIFs/Videos/Embeds tab.
3. In Google Sheets, go to File > Share > Publish to Web, publish the sheet, then copy the published link from the Link tab.
4. Paste the Google Sheets link into the embed input box in Pitchdeck to load it into the selected slide.
5. Click Export Presentation, then choose Upload Web Presentation or Update Web Presentation to upload the slides.
6. Open the generated presentation link in the browser and use the embedded Google Sheet inside the slide.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=LiA711c8pcs)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-embed-google-sheets-in-figma-presentations-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/embed-google-slides-in-figma-presentations.md"
description: "This video shows how to use the Pitchdeck Figma plugin to embed a Google Slides presentation inside a Figma slide deck. It covers publishing the Google Slides file to the web, pasting the embed link into Pitchdeck, and exporting the finished presentation to the Pitchdeck web application."
---

# Embed Google Slides in Figma presentations

> This video shows how to use the Pitchdeck Figma plugin to embed a Google Slides presentation inside a Figma slide deck. It covers publishing the Google Slides file to the web, pasting the embed link into Pitchdeck, and exporting the finished presentation to the Pitchdeck web application.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/U2mklU0Dcpo)

**What this video covers**

This video shows how to use the Pitchdeck Figma plugin to embed a Google Slides presentation inside a Figma slide deck. It covers publishing the Google Slides file to the web, pasting the embed link into Pitchdeck, and exporting the finished presentation to the Pitchdeck web application.

**Things you'll need**

- A Figma file with the Pitchdeck plugin available
- A Google Slides presentation that can be published to the web

**Steps**

1. Open your Figma file, find Pitchdeck from Resources, and run or save the plugin.
2. Create Figma frames for your slides and place content layers inside each frame.
3. Select the frame or rectangle where you want the embed, then open the GIFs/Videos/Embeds tab in Pitchdeck.
4. In Google Slides, go to File, then Share, then Publish to Web, and click Publish.
5. Copy the published Google Slides link and paste it into the Pitchdeck embed input field.
6. Click Export Presentation, then Update Web Presentation or Upload Web Presentation to send the deck to the Pitchdeck web application.
7. Open the generated passwordless URL to view the Figma slides with the embedded Google Slides presentation.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=U2mklU0Dcpo)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-embed-google-slides-in-figma-presentations-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/embed-live-figma-designs-in-figma-presentations.md"
description: "This tutorial shows how to use the Pitchdeck Figma plugin to embed a live Figma design into a Figma presentation. It also demonstrates exporting the presentation to the web and viewing the embedded design with live updates."
---

# Embed live Figma designs in Figma presentations

> This tutorial shows how to use the Pitchdeck Figma plugin to embed a live Figma design into a Figma presentation. It also demonstrates exporting the presentation to the web and viewing the embedded design with live updates.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/g-XCydF9cWg)

**What this video covers**

This tutorial shows how to use the Pitchdeck Figma plugin to embed a live Figma design into a Figma presentation. It also demonstrates exporting the presentation to the web and viewing the embedded design with live updates.

**Things you'll need**

- A Figma file with slides set up as frames.
- A Figma share link with Anyone with the link set to Can view.

**Steps**

1. Open your Figma file, search for Pitchdeck in the Resources icon, and run or save the Pitchdeck Figma plugin.
2. Right-click the page, go to Plugins, open Saved plugins, and launch Pitchdeck.
3. Use a Figma frame as a slide, then select the slide layer where you want the embed.
4. Open the GIFs/Videos/Embeds tab in Pitchdeck and paste a Figma share link into the embed field.
5. In Figma, click Share, set Anyone with the link to Can view, and copy the file link.
6. Click Export Presentation in Pitchdeck, then Update Presentation, and open the generated web presentation link.
7. View the embedded Figma design in the browser, where you can zoom, move around, and see live updates when the source design changes.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=g-XCydF9cWg)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-embed-figma-designs-in-figma-presentations-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/embed-live-figma-prototypes-in-figma-presentations.md"
description: "This video shows how to embed a live Figma prototype into a Pitchdeck Figma presentation. It walks through saving and running the Pitchdeck plugin, copying a Figma prototype link, pasting it into an Embed layer, and exporting the presentation to the Pitchdeck web app where the prototype stays live and updates in real time."
---

# Embed live Figma prototypes in Figma presentations

> This video shows how to embed a live Figma prototype into a Pitchdeck Figma presentation. It walks through saving and running the Pitchdeck plugin, copying a Figma prototype link, pasting it into an Embed layer, and exporting the presentation to the Pitchdeck web app where the prototype stays live and updates in real time.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/UxOvqHjcLMY)

**What this video covers**

This video shows how to embed a live Figma prototype into a Pitchdeck Figma presentation. It walks through saving and running the Pitchdeck plugin, copying a Figma prototype link, pasting it into an Embed layer, and exporting the presentation to the Pitchdeck web app where the prototype stays live and updates in real time.

**Things you'll need**

- A Figma file with the Pitchdeck plugin available
- A Figma prototype link with Anyone with the link access set to Can view
- A Pitchdeck presentation frame with a layer prepared for the embed

**Steps**

1. Open a Figma file, find Pitchdeck in Resources, and run or save the Pitchdeck plugin.
2. Create a slide frame and add a placeholder layer, such as a rectangle, where the prototype will be embedded.
3. In the Figma prototype file, set the Prototype background to match the presentation background, then open Present mode.
4. Use Share Prototype, set access to Anyone with the link and Can view, and copy the prototype link.
5. In the Pitchdeck slide, open the Embeds tab and paste the copied Figma prototype link into the target layer.
6. Export the presentation as Pitchdeck Presentation (Web URL) and choose Update Web Presentation or Upload Web Presentation.
7. Open the Passwordless URL in the browser and view the live embedded prototype in the presentation.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=UxOvqHjcLMY)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-embed-figma-prototypes-in-figma-presentations-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/embed-loom-videos-in-figma-presentations.md"
description: "This tutorial shows how to use the Pitchdeck Presentation Studio Figma plugin to embed a Loom video into a Figma frame and then export the presentation for viewing in the browser. It demonstrates copying a Loom share link into the plugin’s GIFs/Videos/Embeds field, previewing the embed, and using Export Presentation to generate a presentation URL."
---

# Embed Loom videos in Figma presentations

> This tutorial shows how to use the Pitchdeck Presentation Studio Figma plugin to embed a Loom video into a Figma frame and then export the presentation for viewing in the browser. It demonstrates copying a Loom share link into the plugin’s GIFs/Videos/Embeds field, previewing the embed, and using Export Presentation to generate a presentation URL.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/3Bn1N_f0XhA)

**What this video covers**

This tutorial shows how to use the Pitchdeck Presentation Studio Figma plugin to embed a Loom video into a Figma frame and then export the presentation for viewing in the browser. It demonstrates copying a Loom share link into the plugin’s GIFs/Videos/Embeds field, previewing the embed, and using Export Presentation to generate a presentation URL.

**Things you'll need**

- A Figma file with frames set up as slides
- A Loom share link

**Steps**

1. Open Figma, find Pitchdeck in Resources, and run the Pitchdeck Presentation Studio plugin or save it to Saved plugins.
2. Select the Figma frame and layer where you want the Loom video to appear.
3. In the plugin, open the GIFs/Videos/Embeds tab and paste a Loom share link into the input field.
4. Confirm that the Loom embed player loads in the plugin preview.
5. Click Export Presentation, then Upload or Update to generate the presentation URL.
6. Open the passwordless URL in the browser to view the Figma slides with the Loom embed.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=3Bn1N_f0XhA)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-embed-loom-videos-in-figma-presentations-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/embed-lottie-animations-in-figma-presentations.md"
description: "This tutorial shows how to use the Pitchdeck Figma plugin to embed Lottie animations into Figma presentation slides. It covers installing the plugin, pasting a LottieFiles animation URL into a slide embed field, and exporting the presentation to a web link for presenting."
---

# Embed Lottie animations in Figma presentations

> This tutorial shows how to use the Pitchdeck Figma plugin to embed Lottie animations into Figma presentation slides. It covers installing the plugin, pasting a LottieFiles animation URL into a slide embed field, and exporting the presentation to a web link for presenting.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/h1ZjJpFkd2M)

**What this video covers**

This tutorial shows how to use the Pitchdeck Figma plugin to embed Lottie animations into Figma presentation slides. It covers installing the plugin, pasting a LottieFiles animation URL into a slide embed field, and exporting the presentation to a web link for presenting.

**Things you'll need**

- Figma
- Pitchdeck presentation plugin
- A LottieFiles account

**Steps**

1. Open the Figma file, find Pitchdeck in Resources, and run or save the Pitchdeck plugin.
2. Use Figma frames as slides, then open the GIFs/Videos/Embedds tab in the plugin.
3. Go to LottieFiles, choose an animation, and copy its Lottie animation URL.
4. Paste the Lottie animation URL into the embed field for the Figma layer or frame you want to animate.
5. Repeat the copy-and-paste process for any other slides that need Lottie animations.
6. Click Export Presentation, then Update Web Presentation to generate the presentation link.
7. Open the link in a browser and move through the slides to see the embedded Lottie animations.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=h1ZjJpFkd2M)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-embed-lottie-animations-in-figma-presentations-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/embed-soundcloud-audio-in-figma-presentations.md"
description: "This tutorial shows how to use the Pitchdeck Figma plugin to embed a SoundCloud track directly into a Figma presentation slide. It also shows how to export the presentation to the web and play the embedded audio in the browser."
---

# Embed SoundCloud audio in Figma presentations

> This tutorial shows how to use the Pitchdeck Figma plugin to embed a SoundCloud track directly into a Figma presentation slide. It also shows how to export the presentation to the web and play the embedded audio in the browser.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/2pg7esHsnEI)

**What this video covers**

This tutorial shows how to use the Pitchdeck Figma plugin to embed a SoundCloud track directly into a Figma presentation slide. It also shows how to export the presentation to the web and play the embedded audio in the browser.

**Things you'll need**

- A Figma file with frames set up as presentation slides
- A SoundCloud track URL

**Steps**

1. Open Figma, find Pitchdeck in Resources, and run the Pitchdeck plugin or save it to your Figma plugins.
2. Select the Figma frame you want to use as a slide and switch to the GIFs/Videos/Embeds tab in the plugin.
3. On SoundCloud, open a single track page, copy the track URL, and make sure it is not a playlist page.
4. Paste the SoundCloud link into the embed input field for the selected Figma layer to load the audio player.
5. Click Export Presentation in the top right of Pitchdeck, then choose Upload Web Presentation or Update Web Presentation.
6. Open the generated passwordless URL in a web browser and go to the slide with the SoundCloud embed to play it.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=2pg7esHsnEI)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-embed-sound-cloud-audio-in-figma-presentations-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/embed-spotify-audio-in-figma-presentations.md"
description: "The video shows how to use the Pitchdeck presentation Figma plugin to embed Spotify audio in Figma presentations. It covers adding Spotify playlist, track, or podcast episode links to a frame, then exporting the presentation to the Pitchdeck Presentation Studio web app for browser playback."
---

# Embed Spotify audio in Figma presentations

> The video shows how to use the Pitchdeck presentation Figma plugin to embed Spotify audio in Figma presentations. It covers adding Spotify playlist, track, or podcast episode links to a frame, then exporting the presentation to the Pitchdeck Presentation Studio web app for browser playback.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/J7c2fXboTOE)

**What this video covers**

The video shows how to use the Pitchdeck presentation Figma plugin to embed Spotify audio in Figma presentations. It covers adding Spotify playlist, track, or podcast episode links to a frame, then exporting the presentation to the Pitchdeck Presentation Studio web app for browser playback.

**Things you'll need**

- Figma
- The Pitchdeck presentation Figma plugin
- A Spotify link for a track, playlist, or podcast episode

**Steps**

1. Open Figma, find Pitchdeck in Resources under the Plugins tab, and run or save the plugin.
2. Create placeholder layers in your Figma slide, such as a rectangle or image layer, where the embed will go.
3. In Pitchdeck, open the GIFs/Videos/Embeds tab and use Supported Embeds to check the Spotify URL format.
4. Copy a Spotify playlist, track, or podcast episode link from Spotify and paste it into the embed field for the selected Figma layer.
5. Adjust the size or position of the layer if needed, then click Refresh to update how the Spotify player fits the slide.
6. Click Export Presentation, then Upload Web Presentation or Update Web Presentation to publish the deck to the Pitchdeck Presentation Studio web app.
7. Open the generated presentation link in the browser and use the embedded Spotify player during playback.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=J7c2fXboTOE)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-embed-spotify-audio-in-figma-presentations-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/embed-videos-and-gifs.md"
description: "This tutorial shows how to use the Pitchdeck Figma plugin to turn Figma frames into a presentation deck and embed GIFs, YouTube videos, and Vimeo videos directly inside slides. It also demonstrates reordering slides, adding speaker notes, and exporting the deck as a secure Pitchdeck URL for presenting."
---

# Embed videos and GIFs

> This tutorial shows how to use the Pitchdeck Figma plugin to turn Figma frames into a presentation deck and embed GIFs, YouTube videos, and Vimeo videos directly inside slides. It also demonstrates reordering slides, adding speaker notes, and exporting the deck as a secure Pitchdeck URL for presenting.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/sT8Rt1DLnCM)

**What this video covers**

This tutorial shows how to use the Pitchdeck Figma plugin to turn Figma frames into a presentation deck and embed GIFs, YouTube videos, and Vimeo videos directly inside slides. It also demonstrates reordering slides, adding speaker notes, and exporting the deck as a secure Pitchdeck URL for presenting.

**Things you'll need**

- Figma
- Pitchdeck Presentation Studio plugin

**Steps**

1. Install the Pitchdeck Presentation Studio plugin from Figma community or plugins.
2. Run the plugin from your Figma file and let it load each parent frame as a slide.
3. Reorder slides by dragging the handles next to each slide in Pitchdeck if needed.
4. Switch the select box from animations to "Embed GIFs and YouTube or Vimeo URLs".
5. Paste a direct GIF URL, a YouTube URL, or a Vimeo URL into the input for the chosen layer.
6. Set the export setting to "Pitchdeck URL" and click "Update Presentation" or "Upload Presentation".
7. Open the secure presentation link in the browser, enter the password, and present the deck with embedded media playing inside the slides.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=sT8Rt1DLnCM)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-embed-videos-and-gi-fs-in-figma-presentations-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/embed-vimeo-videos-in-figma-presentations.md"
description: "This video shows how to use the Pitchdeck Figma plugin to embed a Vimeo video into a Figma presentation slide and publish it to the Pitchdeck presentation web app. It also demonstrates how to paste a Vimeo link into the embed field, toggle video controls, and update the web presentation for viewing in a browser."
---

# Embed Vimeo videos in Figma presentations

> This video shows how to use the Pitchdeck Figma plugin to embed a Vimeo video into a Figma presentation slide and publish it to the Pitchdeck presentation web app. It also demonstrates how to paste a Vimeo link into the embed field, toggle video controls, and update the web presentation for viewing in a browser.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/C3F4HunFlY8)

**What this video covers**

This video shows how to use the Pitchdeck Figma plugin to embed a Vimeo video into a Figma presentation slide and publish it to the Pitchdeck presentation web app. It also demonstrates how to paste a Vimeo link into the embed field, toggle video controls, and update the web presentation for viewing in a browser.

**Things you'll need**

- A Figma file with slides or frames set up for the presentation.
- The Pitchdeck Figma plugin.
- A Vimeo video link to embed.

**Steps**

1. Open your Figma file, find the Pitchdeck plugin from Resources or Saved plugins, and run it.
2. Choose the slide you want to edit, then open the GIFs/Videos/Embeds tab in the plugin.
3. Copy the Vimeo video link from the browser and paste it into the embed input field.
4. Adjust the video controls setting if needed, then confirm the video is embedded on the slide.
5. Click Export Presentation and choose Upload Web Presentation or Update Web Presentation.
6. Copy the generated password or passwordless URL and open it in a browser to view the presentation.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=C3F4HunFlY8)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-embed-vimeo-videos-in-figma-presentations-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/embed-website-iframes-in-figma-presentations.md"
description: "This tutorial shows how to use the Pitchdeck Figma plugin to embed website URLs as iFrames in Figma presentations. It also explains how to export the presentation to the Pitchdeck web app, refresh updates, and notes that some sites may block embedding because of cross-origin policy."
---

# Embed website iFrames in Figma presentations

> This tutorial shows how to use the Pitchdeck Figma plugin to embed website URLs as iFrames in Figma presentations. It also explains how to export the presentation to the Pitchdeck web app, refresh updates, and notes that some sites may block embedding because of cross-origin policy.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/78AmQvoXwwM)

**What this video covers**

This tutorial shows how to use the Pitchdeck Figma plugin to embed website URLs as iFrames in Figma presentations. It also explains how to export the presentation to the Pitchdeck web app, refresh updates, and notes that some sites may block embedding because of cross-origin policy.

**Things you'll need**

- A Figma file with the Pitchdeck plugin available
- A website URL that allows iframe embedding

**Steps**

1. Open the Figma file, search for Pitchdeck in the Resources icon under the Plugins tab, and save or run the plugin.
2. Right-click on the canvas, go to Plugins, and launch Pitchdeck from your saved plugins.
3. Create or select a slide with placeholder layers for the embed area, then open the embeds tab in the plugin.
4. Copy a website URL, such as a Wikipedia page, and paste it into the placeholder layers to embed it as an iframe.
5. Use the export button, select the Pitchdeck presentation web URL format, and click Upload Web Presentation or Update Web Presentation.
6. Open the passwordless presentation URL in the browser and click the slide to view and interact with the embedded website.
7. Resize the Figma frame if needed, then re-upload and refresh the presentation to update the embed size or full-screen layout.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=78AmQvoXwwM)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-embed-website-i-frames-in-figma-presentations-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/embed-youtube-videos-in-figma-presentations.md"
description: "This tutorial shows how to use the Pitchdeck Figma plugin to embed a YouTube video into a Figma presentation slide and publish it through Pitchdeck. It also demonstrates how to control the video embed and open the uploaded web presentation with or without a password."
---

# Embed YouTube videos in Figma presentations

> This tutorial shows how to use the Pitchdeck Figma plugin to embed a YouTube video into a Figma presentation slide and publish it through Pitchdeck. It also demonstrates how to control the video embed and open the uploaded web presentation with or without a password.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/u-3keAn4bTQ)

**What this video covers**

This tutorial shows how to use the Pitchdeck Figma plugin to embed a YouTube video into a Figma presentation slide and publish it through Pitchdeck. It also demonstrates how to control the video embed and open the uploaded web presentation with or without a password.

**Things you'll need**

- A Figma file with frames already set up for the presentation
- The Pitchdeck Figma plugin
- A YouTube video URL

**Steps**

1. Open a Figma file, go to Resources, search for Pitchdeck under the Plugins tab, and run or save the plugin.
2. Create presentation frames in Figma, with each frame acting as a slide.
3. Open Pitchdeck, go to the GIFs/Videos/Embeds tab, and select the layer you want to replace with a video embed.
4. Copy a YouTube video URL or YouTube short URL, paste it into the embed input field, and confirm the video starts playing.
5. Adjust playback options such as controls, autoplay, and loop if needed.
6. Click Export Presentation, then choose Upload Web Presentation or Update Web Presentation to send the slides to Pitchdeck.
7. Copy the web presentation URL, then open it in a browser to view the embedded YouTube video in the presentation.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=u-3keAn4bTQ)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-embed-you-tube-videos-in-figma-presentations-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/export-compressed-pptx-files.md"
description: "This video shows how to use the Pitchdeck Figma plugin to export a Figma presentation deck to Google Slides. It covers installing the plugin, arranging slides and speaker notes in Pitchdeck, exporting as a PowerPoint file, and opening that file in Google Slides."
---

# Export compressed .pptx files

> This video shows how to use the Pitchdeck Figma plugin to export a Figma presentation deck to Google Slides. It covers installing the plugin, arranging slides and speaker notes in Pitchdeck, exporting as a PowerPoint file, and opening that file in Google Slides.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/BkMRUL5SvmE)

**What this video covers**

This video shows how to use the Pitchdeck Figma plugin to export a Figma presentation deck to Google Slides. It covers installing the plugin, arranging slides and speaker notes in Pitchdeck, exporting as a PowerPoint file, and opening that file in Google Slides.

**Things you'll need**

- A Figma file with top-level frames for the presentation
- The Pitchdeck Presentation Studio plugin installed in Figma
- A Google account with Google Slides access

**Steps**

1. Install the Pitchdeck Presentation Studio plugin from Figma Community if it is not already installed.
2. In Figma, right-click the presentation file, go to plugins, and open Pitchdeck Presentation Studio.
3. Review the imported top-level frames as slides, reorder them if needed, and add speaker notes to each slide.
4. Select the export format drop-down, choose PowerPoint file, and click Export PowerPoint.
5. Save the exported file to your computer.
6. Open Google Slides, create or open a blank presentation, then go to File, Open, and upload the exported PowerPoint file.
7. After the file opens in Google Slides, edit slide elements and add animations there if needed.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=BkMRUL5SvmE)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-presentations-from-figma-to-google-slides-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/export-figma-slides-to-canva-with-one-click.md"
description: "This tutorial shows how to use the Pitchdeck Figma plugin to export a slide deck from Figma into Canva. It covers saving the plugin, choosing the Canva export format, downloading the PSD file, and uploading it into Canva for further editing."
---

# Export Figma slides to Canva with one click

> This tutorial shows how to use the Pitchdeck Figma plugin to export a slide deck from Figma into Canva. It covers saving the plugin, choosing the Canva export format, downloading the PSD file, and uploading it into Canva for further editing.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/BylcDyFXnAc)

**What this video covers**

This tutorial shows how to use the Pitchdeck Figma plugin to export a slide deck from Figma into Canva. It covers saving the plugin, choosing the Canva export format, downloading the PSD file, and uploading it into Canva for further editing.

**Things you'll need**

- A Figma file with slide deck frames or components already designed
- A Canva account

**Steps**

1. Open the Figma file, find Pitchdeck in the resources icon, and save or run the plugin from the plugins list.
2. Load the parent-level Figma frames or components that you want to use as slides.
3. Open the export menu in Pitchdeck, switch the presentation format from Pitchdeck to Canva, and select the Canva export option under static deck options.
4. Choose the export settings you want, such as retina images and image compression, then click export for Canva.
5. Download the PSD file when the export finishes and save it locally.
6. Go to canva.com, log in, and drag the PSD file into Canva to upload it.
7. Open the uploaded project in Canva and edit the imported layers, text, and images as needed.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=BylcDyFXnAc)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-figma-slides-to-canva-with-one-click-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/export-figma-slides-to-google-slides.md"
description: "This tutorial shows how to use the Pitchdeck Figma plugin to move slides from Figma Slides into Google Slides. It demonstrates copying slide frames into a regular Figma design file, exporting them as a .pptx file, and importing that file into Google Slides as editable slides."
---

# Export Figma Slides to Google Slides

> This tutorial shows how to use the Pitchdeck Figma plugin to move slides from Figma Slides into Google Slides. It demonstrates copying slide frames into a regular Figma design file, exporting them as a .pptx file, and importing that file into Google Slides as editable slides.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/2pQAiL7mlDQ)

**What this video covers**

This tutorial shows how to use the Pitchdeck Figma plugin to move slides from Figma Slides into Google Slides. It demonstrates copying slide frames into a regular Figma design file, exporting them as a .pptx file, and importing that file into Google Slides as editable slides.

**Things you'll need**

- A Figma Slides file
- A regular Figma design file
- A Google Slides presentation

**Steps**

1. Open Pitchdeck from Figma's Resources icon and save it to your plugins list if needed.
2. In Figma Slides, switch to grid view, select the slides you want, and copy them.
3. Paste the selected slides into a regular Figma design file so Pitchdeck can detect the frames.
4. In Pitchdeck, click Refresh layers if needed, then choose Export and set the presentation export format to Google Slides.
5. Click Export for Google Slides, download the generated .pptx file, and save it to your computer.
6. In Google Slides, go to File > Import slides > Upload, then drag and drop the .pptx file.
7. Select all slides, uncheck Keep original theme if desired, and click Import slides.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=2pQAiL7mlDQ)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-figma-slides-to-google-slides-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/export-figma-slides-to-jpg-png-images.md"
description: "This tutorial shows how to use the Pitchdeck Figma plugin to export slides from both Figma design files and Figma Slides files as static JPG or PNG images. It also shows how to download the exported files as a ZIP and confirms the slides are exported in order at 2x retina resolution."
---

# Export Figma slides to JPG/PNG images

> This tutorial shows how to use the Pitchdeck Figma plugin to export slides from both Figma design files and Figma Slides files as static JPG or PNG images. It also shows how to download the exported files as a ZIP and confirms the slides are exported in order at 2x retina resolution.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/Dy2LWEZwXTI)

**What this video covers**

This tutorial shows how to use the Pitchdeck Figma plugin to export slides from both Figma design files and Figma Slides files as static JPG or PNG images. It also shows how to download the exported files as a ZIP and confirms the slides are exported in order at 2x retina resolution.

**Things you'll need**

- A Figma design file or a Figma Slides file
- The Pitchdeck Figma plugin saved or available in Plugins

**Steps**

1. Open a Figma file and run the Pitchdeck plugin from the actions icon, or from Plugins > Saved Plugins if it has already been saved.
2. In the Pitchdeck interface, click the export button and change the presentation export format to JPG images or PNG images.
3. Click Export to JPG or Export to PNG to generate the slide images.
4. Click Download Your Zip File, save the ZIP to your computer, and unzip it to access the exported images.
5. Check the exported folder to see the slides named and ordered correctly, with 2x retina resolution.
6. Repeat the same export process in a Figma Slides file by opening Pitchdeck from Plugins > Recents or Plugins > Saved Figma Plugins.
7. Use the exported JPG or PNG files for presentation, review, email, or Slack sharing.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=Dy2LWEZwXTI)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-figma-slides-to-jpg-png-images-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/export-figma-slides-to-keynote.md"
description: "The video shows how to use the Pitchdeck Figma plugin to export slides from Figma Slides into a Keynote-compatible PPTX file. It also demonstrates opening the exported file in the Apple Keynote app and editing the slides natively there."
---

# Export Figma Slides to Keynote

> The video shows how to use the Pitchdeck Figma plugin to export slides from Figma Slides into a Keynote-compatible PPTX file. It also demonstrates opening the exported file in the Apple Keynote app and editing the slides natively there.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/irxm3p-mZ6o)

**What this video covers**

The video shows how to use the Pitchdeck Figma plugin to export slides from Figma Slides into a Keynote-compatible PPTX file. It also demonstrates opening the exported file in the Apple Keynote app and editing the slides natively there.

**Things you'll need**

- A normal Figma design file
- A Figma Slides file
- The Pitchdeck Figma plugin

**Steps**

1. Open a new normal Figma design file and locate the Pitchdeck plugin from the Resources icon, then save or run it.
2. Return to your Figma Slides file, open a template with View template, and add the slides to the deck.
3. Switch Figma Slides to grid view, select the slides you want, and copy them.
4. Go back to the normal Figma design file and paste the copied slides onto the canvas so the frames are available to Pitchdeck.
5. Refresh frames in the Pitchdeck plugin, then open the export menu and choose the presentation apps group with Keynote (pptx) selected.
6. Click export for Keynote, download the PPTX file, and open it with Keynote on Mac.
7. Review and edit the imported slides in Keynote as needed.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=irxm3p-mZ6o)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-figma-slides-to-keynote-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/export-figma-slides-to-powerpoint-pptx.md"
description: "This tutorial shows how to use the Pitchdeck Figma plugin to export slides from Figma Slides into an editable PowerPoint (.pptx) file. It demonstrates copying slides into a normal Figma design file, loading them into Pitchdeck, and exporting them with PowerPoint settings."
---

# Export Figma Slides to PowerPoint (.pptx)

> This tutorial shows how to use the Pitchdeck Figma plugin to export slides from Figma Slides into an editable PowerPoint (.pptx) file. It demonstrates copying slides into a normal Figma design file, loading them into Pitchdeck, and exporting them with PowerPoint settings.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/jpXYIvHFwp8)

**What this video covers**

This tutorial shows how to use the Pitchdeck Figma plugin to export slides from Figma Slides into an editable PowerPoint (.pptx) file. It demonstrates copying slides into a normal Figma design file, loading them into Pitchdeck, and exporting them with PowerPoint settings.

**Things you'll need**

- Figma Slides
- Pitchdeck Figma plugin
- A normal Figma design file

**Steps**

1. Open a normal Figma design file, find Pitchdeck in Resources, and save or run the plugin from Plugins > Saved plugins.
2. In Figma Slides, create or open a slide deck, switch to Grid View, select the slides you want, and copy them.
3. Paste the copied slides into the normal Figma design file, then refresh layers or rerun Pitchdeck so the frames load into the plugin.
4. In Pitchdeck, click Export, choose PowerPoint (.pptx) under the presentation apps group, and adjust export settings if needed.
5. Click Export for PowerPoint, then download the ready .pptx file when prompted.
6. Open the downloaded PowerPoint file to verify the editable slides and make sure the required fonts are installed locally if needed.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=jpXYIvHFwp8)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-figma-slides-to-power-point-pptx-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/export-powerpoint-files-with-mp4-video-embeds-from-figma-using-pitchdeck.md"
description: "The video shows how to use the Pitchdeck Presentation Studio Figma plugin to export a Figma presentation as a PowerPoint PPTX with an MP4 video embed. It explains how to set up a thumbnail and video placeholder, paste a Dropbox MP4 URL into Pitchdeck, enable the PowerPoint embed option, and download a PPTX that plays the video in Microsoft PowerPoint."
---

# Export PowerPoint files with MP4 video embeds from Figma using Pitchdeck

> The video shows how to use the Pitchdeck Presentation Studio Figma plugin to export a Figma presentation as a PowerPoint PPTX with an MP4 video embed. It explains how to set up a thumbnail and video placeholder, paste a Dropbox MP4 URL into Pitchdeck, enable the PowerPoint embed option, and download a PPTX that plays the video in Microsoft PowerPoint.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/z8dUH4tDdFg)

**What this video covers**

The video shows how to use the Pitchdeck Presentation Studio Figma plugin to export a Figma presentation as a PowerPoint PPTX with an MP4 video embed. It explains how to set up a thumbnail and video placeholder, paste a Dropbox MP4 URL into Pitchdeck, enable the PowerPoint embed option, and download a PPTX that plays the video in Microsoft PowerPoint.

**Things you'll need**

- A Figma file with frames to export
- An MP4 video hosted on Dropbox or another file hosting service
- Microsoft PowerPoint desktop app to play the embedded video

**Steps**

1. Open the Figma file, search for Pitchdeck from the actions menu, and run or save the Pitchdeck plugin.
2. Create a thumbnail image layer for the video and duplicate it to make a separate placeholder layer named for the video embed.
3. Upload the MP4 file to Dropbox, copy the file link, and paste that URL into the video layer in Pitchdeck.
4. Refresh the layers so the thumbnail and video layers appear correctly in the plugin.
5. Open the export menu, change the export format from web URL to PowerPoint, and turn on Include MP4 video URL embeds.
6. Click Export for PowerPoint, then download the PPTX file.
7. Open the PPTX in Microsoft PowerPoint and play the embedded video from the slide.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=z8dUH4tDdFg)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/export-powerpoint-pptx-files-with-mp4-video-embeds-from-figma-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/export-pptx-files-with-editable-text.md"
description: "The video shows how to use the Pitchdeck Figma plugin to export a slide deck from Figma to PowerPoint, Keynote, or Google Slides. It demonstrates the difference between exporting text as images and enabling the beta Editable Text option so the exported file keeps text layers editable."
---

# Export .pptx files with editable text

> The video shows how to use the Pitchdeck Figma plugin to export a slide deck from Figma to PowerPoint, Keynote, or Google Slides. It demonstrates the difference between exporting text as images and enabling the beta Editable Text option so the exported file keeps text layers editable.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/lBP5nxrWlWk)

**What this video covers**

The video shows how to use the Pitchdeck Figma plugin to export a slide deck from Figma to PowerPoint, Keynote, or Google Slides. It demonstrates the difference between exporting text as images and enabling the beta Editable Text option so the exported file keeps text layers editable.

**Things you'll need**

- Figma
- Pitchdeck Figma plugin
- A slide deck design already created in Figma

**Steps**

1. Install the Figma plugin called Pitchdeck by searching for "pitchdeck" in Community or Plugins and clicking Install on "Pitchdeck Presentation Studio".
2. Open your slide deck in Figma, then right click the page, go to Plugins, and launch Pitchdeck Presentation Studio.
3. Click Export Presentation in the top right of the plugin to open the export settings.
4. Choose a presentation format such as PowerPoint, Keynote, or Google Slides, then export once with editable text disabled to see the default image-based result.
5. Reopen Pitchdeck, return to Export Presentation, and enable "Editable Text in Keynote" with "Use Editable Text (instead of images)" turned on.
6. Export again for Keynote, save the file, and open it in the presentation app to edit the text layers directly.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=lBP5nxrWlWk)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-a-power-point-file-with-editable-text-from-figma-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/export-presentation-to-clickable-interactive-pdf.md"
description: "This tutorial shows how to use the Pitchdeck Presentation Studio Figma plugin to add slide links and external URL links to elements in a presentation deck, then export the deck as a clickable interactive PDF. It also demonstrates how the exported PDF behaves in Preview, how to edit or remove links, and how link targets are preserved even if slide order changes."
---

# Export presentation to clickable interactive PDF

> This tutorial shows how to use the Pitchdeck Presentation Studio Figma plugin to add slide links and external URL links to elements in a presentation deck, then export the deck as a clickable interactive PDF. It also demonstrates how the exported PDF behaves in Preview, how to edit or remove links, and how link targets are preserved even if slide order changes.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/jKFlguRXiAA)

**What this video covers**

This tutorial shows how to use the Pitchdeck Presentation Studio Figma plugin to add slide links and external URL links to elements in a presentation deck, then export the deck as a clickable interactive PDF. It also demonstrates how the exported PDF behaves in Preview, how to edit or remove links, and how link targets are preserved even if slide order changes.

**Things you'll need**

- Figma
- Pitchdeck Presentation Studio installed from the Figma Community
- A presentation deck or Figma file with frames to link

**Steps**

1. Install Pitchdeck Presentation Studio from the Figma Community if it is not already installed.
2. Open your presentation file in Figma, then launch the plugin by right-clicking and choosing Plugins > Pitchdeck Presentation Studio.
3. In the URL/Slide Links tab, select any child element inside a frame and assign either a link to another slide or a link to an external URL.
4. When your links are set, click Export Presentation, choose PDF deck, keep the desired quality setting, and export to PDF.
5. Download the .pdf file, open it in Preview, and test the clickable slide links and external URLs.
6. Reopen the plugin to edit links, clear a link by removing its URL, or exclude a slide to remove its linked target from the export.
7. If needed, reorder slides and note that links continue pointing to the same linked frame content rather than the slide number.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=jKFlguRXiAA)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-clickable-interactive-pd-fs-from-figma-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/export-presentations-to-google-slides.md"
description: "This video shows how to use the Pitchdeck Figma plugin to export a Figma presentation deck to Google Slides. It covers installing the plugin, arranging slides and speaker notes in Pitchdeck, exporting as a PowerPoint file, and opening that file in Google Slides."
---

# Export presentations to Google Slides

> This video shows how to use the Pitchdeck Figma plugin to export a Figma presentation deck to Google Slides. It covers installing the plugin, arranging slides and speaker notes in Pitchdeck, exporting as a PowerPoint file, and opening that file in Google Slides.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/BkMRUL5SvmE)

**What this video covers**

This video shows how to use the Pitchdeck Figma plugin to export a Figma presentation deck to Google Slides. It covers installing the plugin, arranging slides and speaker notes in Pitchdeck, exporting as a PowerPoint file, and opening that file in Google Slides.

**Things you'll need**

- A Figma file with top-level frames for the presentation
- The Pitchdeck Presentation Studio plugin installed in Figma
- A Google account with Google Slides access

**Steps**

1. Install the Pitchdeck Presentation Studio plugin from Figma Community if it is not already installed.
2. In Figma, right-click the presentation file, go to plugins, and open Pitchdeck Presentation Studio.
3. Review the imported top-level frames as slides, reorder them if needed, and add speaker notes to each slide.
4. Select the export format drop-down, choose PowerPoint file, and click Export PowerPoint.
5. Save the exported file to your computer.
6. Open Google Slides, create or open a blank presentation, then go to File, Open, and upload the exported PowerPoint file.
7. After the file opens in Google Slides, edit slide elements and add animations there if needed.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=BkMRUL5SvmE)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-presentations-from-figma-to-google-slides-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/export-presentations-to-keynote.md"
description: "The video shows how to use the Pitchdeck Figma plugin to export a slide deck from Figma as a native Keynote file. It also explains how slide order, speaker notes, and animations behave during the export process."
---

# Export presentations to Keynote

> The video shows how to use the Pitchdeck Figma plugin to export a slide deck from Figma as a native Keynote file. It also explains how slide order, speaker notes, and animations behave during the export process.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/yJ3W1pjS0LI)

**What this video covers**

The video shows how to use the Pitchdeck Figma plugin to export a slide deck from Figma as a native Keynote file. It also explains how slide order, speaker notes, and animations behave during the export process.

**Things you'll need**

- A Figma file containing the presentation frames
- The Pitchdeck Figma plugin installed
- Keynote installed to open the exported file

**Steps**

1. Install Pitchdeck Presentation Studio from the Figma Community or Plugins area if it is not already installed.
2. Open a Figma file that contains only the frames you want in the presentation, then run Pitchdeck Presentation Studio from the Plugins menu.
3. Review the detected frames as slides, reorder them in the Pitchdeck plugin if needed, and add speaker notes per slide.
4. Choose the export format dropdown and select Keynote file, then click Export Keynote.
5. Save the generated file to your computer and open it in Keynote by double-clicking it or using File > Open.
6. In Keynote, confirm the slides and presenter notes carried across, then add any Keynote animations manually if desired.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=yJ3W1pjS0LI)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-presentations-from-figma-to-keynote-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/export-presentations-to-pdf.md"
description: "This video shows how to install the Pitchdeck Figma plugin and export a collaborative presentation in Figma as a PDF file. It also shows how Pitchdeck treats each top-level frame as a slide, lets you reorder slides in the plugin, and produces a compressed PDF export."
---

# Export presentations to PDF

> This video shows how to install the Pitchdeck Figma plugin and export a collaborative presentation in Figma as a PDF file. It also shows how Pitchdeck treats each top-level frame as a slide, lets you reorder slides in the plugin, and produces a compressed PDF export.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/W_W8aYQvg28)

**What this video covers**

This video shows how to install the Pitchdeck Figma plugin and export a collaborative presentation in Figma as a PDF file. It also shows how Pitchdeck treats each top-level frame as a slide, lets you reorder slides in the plugin, and produces a compressed PDF export.

**Things you'll need**

- Figma
- Pitchdeck plugin installed

**Steps**

1. Install the Pitchdeck plugin from Figma Community by searching for Pitchdeck Presentation Studio and clicking Install.
2. Open your presentation file in Figma, where each top-level frame will be treated as a slide by Pitchdeck.
3. Run Pitchdeck Presentation Studio from the right-click Plugins menu or from the Plugin panel in Figma.
4. Review the loaded slides and drag the handles on the left to reorder them if needed.
5. Change the export format from Pitchdeck URL to PDF file.
6. Click Export PDF, then save the generated PDF file when the save dialog appears.
7. Open the saved PDF in Preview to confirm the slides exported in the chosen order.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=W_W8aYQvg28)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-presentations-from-figma-to-pdf-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/export-presentations-to-powerpoint.md"
description: "The video shows how to use the Pitchdeck Figma plugin to export a collaborative presentation from Figma to a PowerPoint file. It also shows that speaker notes carry over, while animations are not included in PowerPoint, PDF file, or Keynote exports."
---

# Export presentations to PowerPoint

> The video shows how to use the Pitchdeck Figma plugin to export a collaborative presentation from Figma to a PowerPoint file. It also shows that speaker notes carry over, while animations are not included in PowerPoint, PDF file, or Keynote exports.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/IkiG4PWJZEM)

**What this video covers**

The video shows how to use the Pitchdeck Figma plugin to export a collaborative presentation from Figma to a PowerPoint file. It also shows that speaker notes carry over, while animations are not included in PowerPoint, PDF file, or Keynote exports.

**Things you'll need**

- A Figma file with presentation slide designs
- The Pitchdeck plugin installed in Figma

**Steps**

1. Install the Figma plugin called Pitchdeck by searching for Pitchdeck Presentation Studio in the Figma Community/plugins area.
2. Open your Figma file, then run Pitchdeck Presentation Studio from the Plugins menu.
3. Review the mirrored slides in Pitchdeck, adjust the slide order if needed by dragging the handles, and add speaker notes per slide.
4. Open the export format menu and choose PowerPoint file instead of the animated Pitchdeck URL option.
5. Click Export PowerPoint and save the generated PowerPoint file when prompted.
6. Open the saved file in PowerPoint, Google Slides, or Apple Keynote to review the imported slides and speaker notes.
7. If you make changes later, update the Figma file and rerun the Pitchdeck plugin to export again.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=IkiG4PWJZEM)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-presentations-from-figma-to-power-point-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/how-to-export-a-compressed-powerpoint-file-from-figma-using-pitchdeck.md"
description: "The video shows how to install the Pitchdeck Presentation Studio Figma plugin and export a Figma presentation as a PowerPoint file. It focuses on the new Compress Images option, demonstrating how different compression settings reduce file size while keeping the presentation usable in PowerPoint, Keynote, or Google Slides."
---

# How to export a compressed PowerPoint file from Figma using Pitchdeck

> The video shows how to install the Pitchdeck Presentation Studio Figma plugin and export a Figma presentation as a PowerPoint file. It focuses on the new Compress Images option, demonstrating how different compression settings reduce file size while keeping the presentation usable in PowerPoint, Keynote, or Google Slides.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/5pfU84adjiM)

**What this video covers**

The video shows how to install the Pitchdeck Presentation Studio Figma plugin and export a Figma presentation as a PowerPoint file. It focuses on the new Compress Images option, demonstrating how different compression settings reduce file size while keeping the presentation usable in PowerPoint, Keynote, or Google Slides.

**Things you'll need**

- Figma
- The Pitchdeck Presentation Studio plugin installed in Figma

**Steps**

1. Open Figma Community, search for Pitchdeck, and install the Pitchdeck Presentation Studio plugin if needed.
2. Open your Figma project, right-click the canvas, then go to Plugins and launch Pitchdeck Presentation Studio.
3. Click Export Presentation to open the export panel, then choose PowerPoint from Select Presentation Format.
4. Leave Retina Images off if you want a smaller file, then enable Compress Images to compress images before export.
5. Adjust the compression slider to a desired quality level, such as a middle setting around 70.
6. Click Export for PowerPoint, save the file, and compare the resulting PowerPoint file size with and without compression.
7. Optionally repeat the export at a lower quality setting to see how further compression changes file size.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=5pfU84adjiM)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-a-compressed-powerpoint-file-from-figma-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/import-google-slides-to-figma-in-one-click.md"
description: "This tutorial shows how to use the Pitchdeck Figma plugin to import Google Slides into Figma by exporting a Google Slides deck as a .pptx file and dropping it into the plugin. It also shows that the imported content comes in as editable Figma layers and can be exported back out as PowerPoint, Keynote, or Google Slides."
---

# Import Google Slides to Figma in one click

> This tutorial shows how to use the Pitchdeck Figma plugin to import Google Slides into Figma by exporting a Google Slides deck as a .pptx file and dropping it into the plugin. It also shows that the imported content comes in as editable Figma layers and can be exported back out as PowerPoint, Keynote, or Google Slides.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/phr2bzBcrO4)

**What this video covers**

This tutorial shows how to use the Pitchdeck Figma plugin to import Google Slides into Figma by exporting a Google Slides deck as a .pptx file and dropping it into the plugin. It also shows that the imported content comes in as editable Figma layers and can be exported back out as PowerPoint, Keynote, or Google Slides.

**Things you'll need**

- A Figma file
- The Pitchdeck Figma plugin
- A Google Slides deck that can be downloaded as a .pptx file

**Steps**

1. In Figma, open the Resources icon, search for Pitchdeck, and save or run the plugin from the Plugins tab.
2. From the canvas, right-click, go to Plugins > Saved plugins, and launch Pitchdeck.
3. In Google Slides, open the File tab, go to Download, and choose Microsoft PowerPoint (.pptx) to save the deck as a .pptx file.
4. In Pitchdeck, drag and drop the .pptx file into the Import .pptx dropzone or use the Import .pptx button.
5. Wait for the import to finish; the slides are added to a new page in the Figma file as editable layers.
6. Edit the imported text and image layers in Figma as needed, and repeat the process for additional decks.
7. Use the Export button if you want to re-export the Figma file as PowerPoint, Keynote, or Google Slides.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=phr2bzBcrO4)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-import-google-slides-to-figma-with-one-click-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/import-google-slides-to-figma-slides.md"
description: "This tutorial shows how to use the Pitchdeck Figma plugin to export Google Slides as a .pptx file, import that file into Figma, and then paste the imported slides into a Figma Slides deck. It also shows that the imported slides remain editable in Figma Slides, while noting the import is currently in BETA and may need minor manual fixes."
---

# Import Google Slides to Figma Slides

> This tutorial shows how to use the Pitchdeck Figma plugin to export Google Slides as a .pptx file, import that file into Figma, and then paste the imported slides into a Figma Slides deck. It also shows that the imported slides remain editable in Figma Slides, while noting the import is currently in BETA and may need minor manual fixes.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/twFlJ81u4qE)

**What this video covers**

This tutorial shows how to use the Pitchdeck Figma plugin to export Google Slides as a .pptx file, import that file into Figma, and then paste the imported slides into a Figma Slides deck. It also shows that the imported slides remain editable in Figma Slides, while noting the import is currently in BETA and may need minor manual fixes.

**Things you'll need**

- A Figma design file
- The Pitchdeck Figma plugin
- A Google Slides presentation exported as a .pptx file

**Steps**

1. Open a new Figma design file and run the Pitchdeck plugin from Resources or Saved plugins.
2. In Google Slides, go to File > Download and choose Microsoft PowerPoint .pptx.
3. Drag and drop the downloaded .pptx file into the import .pptx drop zone in Pitchdeck to import the slides into Figma.
4. Select all imported frames with Command A or Control A, then right-click and choose copy.
5. Open a Figma Slides file by going to File > New slide deck, then click Start from scratch.
6. Make sure you are in list view, right-click in the left sidebar, and paste the copied slides.
7. Switch to grid view if you want an overview of the imported slides and edit the layers as needed.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=twFlJ81u4qE)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-import-google-slides-to-figma-slides-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/import-powerpoint-pptx-to-figma-slides.md"
description: "This tutorial shows how to use the Pitchdeck Figma plugin to import a PowerPoint .pptx into Figma, then copy the imported frames into a new Figma Slides file. It also demonstrates that the imported slides remain editable in Figma Slides and can be rearranged or updated there."
---

# Import PowerPoint (.pptx) to Figma Slides

> This tutorial shows how to use the Pitchdeck Figma plugin to import a PowerPoint .pptx into Figma, then copy the imported frames into a new Figma Slides file. It also demonstrates that the imported slides remain editable in Figma Slides and can be rearranged or updated there.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/h2cAnTxI1yM)

**What this video covers**

This tutorial shows how to use the Pitchdeck Figma plugin to import a PowerPoint .pptx into Figma, then copy the imported frames into a new Figma Slides file. It also demonstrates that the imported slides remain editable in Figma Slides and can be rearranged or updated there.

**Things you'll need**

- A Figma app account with access to a regular Figma design file and Figma Slides
- The Pitchdeck Figma plugin
- An existing PowerPoint .pptx file

**Steps**

1. Open a regular Figma design file and find the Pitchdeck plugin from Resources or Saved plugins.
2. Run the plugin and use the Import .pptx button or drag and drop a PowerPoint .pptx file into the drop zone.
3. Wait for the PowerPoint slides to import into Figma as editable frames.
4. Select all imported frames, then copy them.
5. Open a new Figma Slides file and click start from scratch.
6. Make sure list view is selected, then right-click in the sidebar list and paste the copied frames.
7. Edit, move, replace images, or rearrange the imported slides in Figma Slides as needed.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=h2cAnTxI1yM)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-import-power-point-pptx-to-figma-slides-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/import-slides-from-powerpoint-to-figma-in-one-click.md"
description: "The video shows how to use the Pitchdeck Figma plugin to import slides from a PPTX PowerPoint file into a Figma file in one click. It also explains what content imports well, how speaker notes are carried over, and how to fix files that fail to open by resaving them from Microsoft PowerPoint."
---

# Import slides from PowerPoint to Figma in one click

> The video shows how to use the Pitchdeck Figma plugin to import slides from a PPTX PowerPoint file into a Figma file in one click. It also explains what content imports well, how speaker notes are carried over, and how to fix files that fail to open by resaving them from Microsoft PowerPoint.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/CpMNE8U_kJ8)

**What this video covers**

The video shows how to use the Pitchdeck Figma plugin to import slides from a PPTX PowerPoint file into a Figma file in one click. It also explains what content imports well, how speaker notes are carried over, and how to fix files that fail to open by resaving them from Microsoft PowerPoint.

**Things you'll need**

- Figma
- Pitchdeck
- Microsoft PowerPoint

**Steps**

1. Open a Figma file, find Pitchdeck from Resources or Saved plugins, and run the plugin.
2. In the Pitchdeck plugin, use the Import PPTX drop zone or drag and drop a PPTX file into it.
3. Wait for the import to finish; Pitchdeck creates a new page in Figma and loads the slides as editable content.
4. Check the imported slides, text, images, shapes, tables, and speaker notes, and edit them directly in Figma as needed.
5. If a PPTX file will not open, open it in Microsoft PowerPoint, use File > Save As, and save a new PPTX version before trying again in Pitchdeck.
6. Review fonts and simple layouts, since some complex elements such as charts, SmartArt, headers and footers, embedded videos, and animations are not supported.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=CpMNE8U_kJ8)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-import-slides-from-power-point-to-figma-in-one-click-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/re-order-and-tidy-figma-slides-into-a-grid-with-one-click.md"
description: "This tutorial shows how to use the Pitchdeck Figma plugin to automatically reorder and tidy slides into a grid based on the slide order in the plugin. It also shows how to manually drag and drop slides, uncheck slides to exclude them from exports, and optionally fade unchecked slides."
---

# Re-order and tidy Figma slides into a grid with one click

> This tutorial shows how to use the Pitchdeck Figma plugin to automatically reorder and tidy slides into a grid based on the slide order in the plugin. It also shows how to manually drag and drop slides, uncheck slides to exclude them from exports, and optionally fade unchecked slides.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/9ED4z7rE70k)

**What this video covers**

This tutorial shows how to use the Pitchdeck Figma plugin to automatically reorder and tidy slides into a grid based on the slide order in the plugin. It also shows how to manually drag and drop slides, uncheck slides to exclude them from exports, and optionally fade unchecked slides.

**Things you'll need**

- A Figma file
- The Pitchdeck Figma plugin

**Steps**

1. Open Figma, search for Pitchdeck in Resources under the Plugins tab, and save or run the plugin from Saved plugins.
2. Load your slides in Pitchdeck and set the slide order you want in the plugin, since that order is the source of truth for tidying.
3. Open the page icon panel in the top left of the Pitchdeck plugin.
4. Choose how many slides you want per row, such as 12, and optionally enable the fade effect for unchecked slides.
5. Click the reorder and tidy Figma slides button to arrange the slides into a grid on the canvas.
6. If needed, drag and drop slides in Pitchdeck or uncheck slides to remove them from exports like PDF, PowerPoint, or the web presentation.
7. Repeat reorder and tidy after changing the plugin order, and turn off the fade toggle to reset unchecked slides back to 100% opacity.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=9ED4z7rE70k)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-re-order-and-tidy-figma-slides-into-a-grid-with-one-click-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/self-hosting-your-figma-presentation-on-a-custom-domain.md"
description: "This tutorial shows how to export a Pitchdeck Figma presentation as a web presentation, download the HTML file, and host it on a custom domain or server. It also demonstrates optional self-hosted embed code, auto login, and re-uploading updated files after changing presentation settings."
---

# Self-hosting your Figma presentation on a custom domain

> This tutorial shows how to export a Pitchdeck Figma presentation as a web presentation, download the HTML file, and host it on a custom domain or server. It also demonstrates optional self-hosted embed code, auto login, and re-uploading updated files after changing presentation settings.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/Dx07nBslRz8)

**What this video covers**

This tutorial shows how to export a Pitchdeck Figma presentation as a web presentation, download the HTML file, and host it on a custom domain or server. It also demonstrates optional self-hosted embed code, auto login, and re-uploading updated files after changing presentation settings.

**Things you'll need**

- A Figma file with frames to use as slides
- A hosting service or server for the downloaded HTML file
- A custom domain only if you want to use one

**Steps**

1. Open your Figma file, find Pitchdeck in the Plugins tab, and run or save the plugin.
2. Let Pitchdeck treat Figma frames as slides, then choose the blue export button in the plugin.
3. Set the export format to Pitchdeck presentation web URL and use Upload Web Presentation.
4. After export, open Get Embed Code (Self-Hosted) and download the HTML file.
5. Upload the downloaded HTML file to a hosting service such as TinyHost or Netlify, then publish it.
6. If needed, set up a custom domain on your hosting service and re-upload the file after changing login theme or other settings.
7. Optionally enable Enable Auto Login before downloading the HTML file, then re-upload the updated file to your host.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=Dx07nBslRz8)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/self-host-figma-presentation-embed-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/tutorials/spell-check-figma-presentation-slides.md"
description: "This video shows how to use the Pitchdeck Presentation Studio Figma plugin to spell check presentation slides inside Figma. It demonstrates selecting a language, finding spelling mistakes, jumping to each flagged word, and correcting or undoing changes one by one or across multiple instances."
---

# Spell check Figma presentation slides

> This video shows how to use the Pitchdeck Presentation Studio Figma plugin to spell check presentation slides inside Figma. It demonstrates selecting a language, finding spelling mistakes, jumping to each flagged word, and correcting or undoing changes one by one or across multiple instances.

[← Back to Pitchdeck Video Tutorials](/pitchdeck/tutorials)

[Embedded media](https://www.youtube.com/embed/HAgOx4bharc)

**What this video covers**

This video shows how to use the Pitchdeck Presentation Studio Figma plugin to spell check presentation slides inside Figma. It demonstrates selecting a language, finding spelling mistakes, jumping to each flagged word, and correcting or undoing changes one by one or across multiple instances.

**Things you'll need**

- Pitchdeck Presentation Studio must be installed in Figma.
- A Figma presentation file with slides to check.

**Steps**

1. Install Pitchdeck Presentation Studio from the Figma Community if it is not already installed.
2. Open your Figma file, then launch the plugin by right-clicking and choosing Plugins > Pitchdeck Presentation Studio.
3. Click the check icon in the plugin header to open the spell-check panel.
4. Choose the correct language from the dropdown, then click Find Spelling Mistakes.
5. Review each flagged word, use the search icon to jump to its location, and select the correct spelling suggestion.
6. Use Undo if a correction was wrong, and verify the context before choosing between similar suggestions.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=HAgOx4bharc)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-spell-check-figma-presentation-slides-using-pitchdeck)
- [Browse Pitchdeck tutorial docs](https://docs.hypermatic.com/pitchdeck/tutorials)

---

---
url: "/pitchdeck/web/analytics.md"
description: "If you've uploaded your slides to the Pitchdeck Web App, you'll be able to view analytics for your slides, and also create custom share URLs to send to different viewers of the presentation to see what interactions they have with your slides."
---

# Using analytics for your presentation

> If you've uploaded your slides to the Pitchdeck Web App, you'll be able to view analytics for your slides, and also create custom share URLs to send to different viewers of the presentation to see what interactions they have with your slides.

[Video](/assets/videos/pitchdeck/web/analytics-view.mp4)

## Viewing your presentation analytics

You can view stats for your presentation by clicking the **Analytics** button in the main header menu of the Pitchdeck plugin, which will open up the analytics panel for the presentation uploaded to the Pitchdeck Web App from the current Figma page.

> **Note:** **Refreshing your presentation data**. Clicking the **Refresh** icon button in the top left of the Analytics panel will refresh all of your analytics data for the current presentation.

There are a few tabs you can click through to manage and view your analytics; _Overview_, _Activity_, _Views_ and _Duration_:

### "Overview" Tab

The _Overview_ tab contains a quick summary and key metrics from your presentation analytics:

- Last Presentation Activity
- Total Presentation Opens
- Unique Presentation Visitors
- Average Presentation Completion Rate %
- Total Slide Views
- Total Time Viewed
- Average Slides Viewed Per Visit
- Average Total Duration Per Visit

This tab also also lets you create and view [custom share links](/pitchdeck/web/share) for your presentation.

### "Activity" Tab

The _Activity_ tab provides a complete overview of all link views and slide interactions with your presentation. You'll be able to see a list (from newest to oldest) of every time someone has opened your presentation, what slides they interacted with, and for how long.

- Share Link
- Opened
- Location
- Device/OS/Browser
- Total Slide Views
- Total Time Spent
- Completion Rate %

Clicking any session row will expand it with more details to reveal exactly which slides were viewed, in the order they were viewed in, and for how long. Clicking the thumbnail for any slide will also zoom and scroll to that slide on your Figma canvas.

> **Tip:** **Downloading your sessions to a CSV**. You can instantly download the sessions you're viewing on the _Activity_ tab to a .csv file by clicking the **Download CSV** button in the top/right of the tab.

### "Views" Tab

The _Views_ tab displays a bar chart of the total views per slide number, which gives a quick high-level overview of which slides have been viewed the most.

> **Tip:** **Downloading your views chart to a JPG**. You can instantly download the chart as it currently appears on the _Views_ tab to a .jpg file by clicking the **Download Chart** button in the top/right of the tab.

### "Durations" Tab

The _Durations_ tab displays a line chart of the total time spent per slide number, which gives a quick high-level overview of which slides have been viewed for the longest and shorest amounts of time.

> **Tip:** **Downloading your views chart to a JPG**. You can instantly download the chart as it currently appears on the _Durations_ tab to a .jpg file by clicking the **Download Chart** button in the top/right of the tab.

## Filtering your analytics data

You can Filter the data showing in across all tabs in the Analyics panel by adjusting the options and toggles in the top menu bar of the Analyics panel.

### Filter by share link

Filtering by share link lets you only show data from a certain link at once; this lets you quickly isolate statistics for a certain viewer or link. To change the share link filter option, click on the dropdown select menu at the top of the Analyics panel.

### Filter by time period

Filtering by time period allows you restrict the data to certain windows of time:

- All Time (since the first view your presentation received)
- Last 24 Hours
- Last 7 Days
- Last 14 Days
- Last 30 Days
- Last 90 Days

To change the time period filter option, click on the dropdown select menu at the top of the Analyics panel.

### Excluding your own views

By default, any views from yourself (for example, you've opened a Pitchdeck link to the current presentation in the browser on your own computer) will be included in the analytics data; you can optionally enable the *Exclude Your Views** toggle, which will exclude any link views that you've made on this computer.

---

---
url: "/pitchdeck/web/app.md"
description: "The Pitchdeck web app lets you present your uploaded slides in the browser, using the URL and password generated in the Figma plugin."
---

# Using the Pitchdeck web app to present your slides

> The Pitchdeck web app lets you present your uploaded slides in the browser, using the URL and password generated in the Figma plugin.

## Sharing/opening your presentation URL

[Video](/assets/videos/pitchdeck/web/open-presentation.mp4)

Once the upload has completed, you'll be able to copy the secure URL and password to view your presentation in the browser, using the Pitchdeck web app.

> **Tip:** **URL and password details can be accessed in the plugin later**. If you need to copy these URL and password details again later, you can do this by clicking the **Export Presentation** button in the Pitchdeck plugin toolbar, and ensuring the **Pitchdeck Presentation (Web URL)** option is selected. You can copy/paste your URL and password details under the **Active Pitchdeck Presentation** section.

### Using a passwordless URL (auto login)

If you don't want to use a URL/password combo for your presentation, you can copy the **Passwordless URL (Auto Login)** link, which will automatically log you in upon visiting the page in your browser.

> **Note:** **QR code version can be found on the upload confirmation screen**. If you want to Open up the presentation link on your phone/tablet, you can scan the **Passwordless URL (Auto Login)** QR code on the upload confirmation screen, which will automatically log you in upon visiting the page in your browser.

### Showing and hiding the bottom toolbar/menu

The Pitchdeck web app toolbar will automatically be shown for **10 seconds** before fading away; you can access it again at any time by hovering over the bottom of the screen, which will reveal the toolbar, and then automatically fade away instantly by hovering the mouse outside it again.

## Navigating the slides in your presentation

[Video](/assets/videos/pitchdeck/web/navigating-slides.mp4)

You can navigate between your slides in the Pitchdeck web app by clicking the **Prev** and **Next** buttons in the Pitchdeck web app toolbar at the bottom of the page, or by pressing the **Left Arrow** or **Right Arrow** keys on your keyboard. Pressing the **Space** key on your keyboard will also move to the next slide.

### Jumping between slides in your presentation

If you need to jump directly to a certain slide in your uploaded presentation, you can use the slide selector in the Pitchdeck web app toolbar at the bottom of the page. Clicking any of the slides in the select box options will instantly jump to viewing that specific slide.

## Toggling slide numbers

[Video](/assets/videos/pitchdeck/web/toggle-numbers.mp4)

You can show visible slide numbers in your presentation by clicking the **Numbers** button in the Pitchdeck web app toolbar at the bottom of the page.

> **Tip:** **Automatically enable page numbers via the share URL**. To automatically enable numbers when sharing a link, you can add a "numbers=1" query string parameter to the end of your Pitchdeck URL (for example, "slides/xxxxxx?numbers=1" or "slides/xxxxxx?token=xxxxxx&numbers=1", if you're using an auto-login URL).

## Using the pointer overlay

[Video](/assets/videos/pitchdeck/web/pointer-cursor.mp4)

You can enable a pointer overlay by clicking the **Pointer** button in the Pitchdeck web app toolbar at the bottom of the page. This will show a pointer overlay on your presentation. You can change the default pointer (the red laser) to something else by clicking another pointer in the list of pointer options available above the Pitchdeck web app toolbar while the pointer is active.

When the pointer is active, you can move your mouse around the screen normally to act as the pointer, displaying the pointer cursor you've selected.

Clicking the **Pointer** button again, while the pointer is active, will hide the pointer and the cursor options from your presentation.

## Downloading your speaker notes

[Video](/assets/videos/pitchdeck/web/download-notes.mp4)

You can download all of the speaker notes from your presentation to a `.txt` file by clicking the **Download Notes** button in the Pitchdeck web app toolbar at the bottom of the page.

> **Tip:** **Notes also viewable in Speaker Mode in the Pitchdeck Web App**. Besides using the **Downdload Notes** option, you can also view your speaker notes by using the **Speaker Mode** (or **Remote**) option.

## Toggling fullscreen mode

[Video](/assets/videos/pitchdeck/web/toggle-full-screen.mp4)

If you would prefer to view your presentation in full screen mode (instead of the windowed browser), you can click on the **Fullscreen** button in the Pitchdeck web app toolbar at the bottom of the page. You can exit fullscreen mode at any time by pressing the **esc** button on your keyboard, or clicking the **Fullscreen** icon button again.

## Minimize or expand the navigation toolbar

[Video](/assets/videos/pitchdeck/web/toggle-toolbar.mp4)

If the toolbar at the bottom of the screen is getting in the way of interacting with something in your slides, you can quickly toggle its visibility on and off by clicking the **Minimize Toolbar** and **Expand** icon buttons in the Pitchdeck web app the bottom of the page.

## Recording your designs to a video file

[Video](/assets/videos/pitchdeck/web/record-screen.mp4)

You can record your presentation in the Pitchdeck web app by clicking the **Record** button in the Pitchdeck web app toolbar at the bottom of the page. This will prompt you to allow the page to access screen sharing and audio. Once you've done this, you'll be able to select the browser tab as the source that you would like to share and record.

To stop the video recording, you can click on the **Stop** button in your browser or click the **Record** icon button again.

Stopping the recording will automatically download your `.webm` video to your computer's default download folder.

> **Note:** **Video will be auto downloaded if the tab is closed**. Just in case you accidentally close the tab while the screen is being recorded, the Pitchdeck web app will automatically stop the recording and download the video file, recorded up until the time that the tab was closed.

### Opening and viewing your recorded video file

After the `.webm` file save been downloaded, you'll be able to upload it to your own website, send it to someone via Slack (or another method) or edit/convert it to another video. The easiest way to open the downloaded video file is to drag the downloaded file into your web browser, and using that to play it back.

## Activating the webcam overlay

[Video](/assets/videos/pitchdeck/web/webcam-overlay.mp4)

You can use your webcam as a draggable/resizable overlay to sit over your presentation in the Pitchdeck web app by clicking the **Webcam** button in the Pitchdeck web app toolbar at the bottom of the page. This will prompt you to allow the page to access your webcam. Once you've done this, you'll be able to see your webcam sitting over the presentation area.

To change the position of the webcam overlay, you can click and drag your mouse on the overlay and move it to a new position anywhere on the screen. To resize the overlay, click on the overlay, then click and drag your mouse on the square anchor points around the square.

---

---
url: "/pitchdeck/web/embed.md"
description: "You can optionally self-host your Pitchdeck web presentation as an iFrame embed on your own server/domain by deploying the downloadable `index.html` file from the plugin to your platform of your choice."
---

# Self-hosting a Pitchdeck web presentation on your own domain as an iFrame embed

> You can optionally self-host your Pitchdeck web presentation as an iFrame embed on your own server/domain by deploying the downloadable `index.html` file from the plugin to your platform of your choice.

### Video Tutorial: Self-hosting your Figma presentation on a custom domain

This video walks through how to self-host your Figma presentation on a custom domain with the Pitchdeck plugin.
[Embedded media](https://www.youtube.com/embed/Dx07nBslRz8)

[Video](/assets/videos/pitchdeck/web/iframe-embed.mp4)

To download the HTML file, click the **Export Presentation** button in the Pitchdeck toolbar, then ensure the **Pitchdeck Presentation (Web URL)** option is selected as the presentation export format. Once you've configured your export settings, you can click the **Upload Web Presentation** button to begin [uploading your slides](/pitchdeck/web/upload).

Once the upload has completed, click on the **Get Embed Code (Self-Hosted)** accordion option at the bottom of the upload the confirmation window, then click the **Download HTML File** button to download an `index.html` file directly to your computer.

The single `index.html` file that's downloaded from the Pitchdeck plugin is pre-configured with your Pitchdeck presentation URL, and will automatically load a responsive `` embed onto the page when it's deployed (please see below for [some simple hosting platform options](#platforms-where-you-can-self-host-your-pitchdeck-html-file) to upload your HTML file) and opened in the browser.

> **Tip:** By default, the embed is password protected, but you can optionally _enable_ the **Auto Login** toggle to automatically login when the page (hosted on your own custom URL) is loaded.

## Platforms where you can self-host your Pitchdeck HTML file

The `index.html` file that's downloaded from the Pitchdeck plugin can be hosted anywhere you like (for example, an [Amazon S3](https://aws.amazon.com/s3/) bucket or any web server you already have access to).

If you're looking for an easy way to host the file and also add a custom domain name (usually included as an optional plan upgrade), you can find some easy to use platforms and services below:

- [Tiiny Host](https://tiiny.host/)
- [Static.app](https://static.app/)
- [Pages Drop](https://edgeone.ai/pages/drop)
- [StaticHost](https://statichost.host/)
- [Cloudflare Pages](https://pages.cloudflare.com/)
- [Static.run](https://static.run/)
- [Netlify Drop](https://app.netlify.com/drop)

---

---
url: "/pitchdeck/web/login.md"
description: "You can optionally customize the look of your login page for any Pitchdeck Web URL by by changing colors and background settings."
---

# Customize your Pitchdeck web app login page

> You can optionally customize the look of your login page for any Pitchdeck Web URL by by changing colors and background settings.

[Video](/assets/videos/pitchdeck/web/login-customizer.mp4)

You can optionally customize the look of your Pitchdeck web presentation login page by changing colors and backgrounds when the **Pitchdeck Presentation (Web URL)** option is selected in the **Export** panel.

> **Tip:** Note that **you will need to re-copy your customized login page URL** when you make a change to any colors or backgrounds, as the URL parameters will change and be used to set the customizations when the URL is pasted into the browser.

---

---
url: "/pitchdeck/web/multiple-presentation-urls.md"
description: "You can create new Pitchdeck web URLs at any time by creating a brand new Page in your Figma file (or create a brand new Figma file) and re-run the Pitchdeck plugin on the new page to get a fresh web URL."
---

# Creating multiple/new Pitchdeck presentation URLs in the same Figma file

> You can create new Pitchdeck web URLs at any time by creating a brand new Page in your Figma file (or create a brand new Figma file) and re-run the Pitchdeck plugin on the new page to get a fresh web URL.

[Video](/assets/videos/pitchdeck/export/create-new-page-and-web-presentation-url.mp4)

Each "Page" in a Figma file is assigned a unique presentation URL by the Pitchdeck plugin, so updates made to the deck and re-uploaded within that page will update the presentation on that page's URL.

To have multiple URLs, creating a new "page" via the left hand column in Figma inside your file (or just creating a new Figma file) will create a brand new URL/password specific to that page once it's uploaded for the first time via the plugin.

> **Warning:** **Duplicating a Figma file will duplicate its URL/password**. Note that "duplicating" a Figma file will also carry over its URL/password from the original once, so it's always best to create a blank one if you need a new URL. This lets you maintain a separate presentation deck per page within a Figma file (or just use entirely separate Figma files to do this). You can have an unlimited amount of presentation URLs this way.

---

---
url: "/pitchdeck/web/observer.md"
description: "Observer mode lets you share a link with your audience that lets them view your presentation on their own screen while staying in sync with your slides."
---

# Sharing an observer mode URL

> Observer mode lets you share a link with your audience that lets them view your presentation on their own screen while staying in sync with your slides.

[Video](/assets/videos/pitchdeck/web/copy-observer-link.mp4)

If you're presenting your deck to a remote audience and would like each of them to follow along with you while you present (_without_ having to share your entire screen via video conferencing software), you can use the "Observer Mode" feature in the web app.

You can copy the shareable observer mode URL for your presentation by clicking the **Observer Mode** button in the speaker mode toolbar at the bottom of the window, then clicking the **Copy URL to Share** button to copy the URL to your clipboard. If you're viewing a Pitchdeck password-less URL, you'll have the option of copying a password-less observer mode URL; otherwise you can copy the URL that requires your presentation password to access it.

---

---
url: "/pitchdeck/web/remote.md"
description: "Speaker mode lets you control your presentation from a different screen with a pop-out browser window, or by scanning a QR code with your phone/tablet."
---

# Using speaker mode remote to present from another screen

> Speaker mode lets you control your presentation from a different screen with a pop-out browser window, or by scanning a QR code with your phone/tablet.

## Opening your speaker mode window

[Video](/assets/videos/pitchdeck/web/open-speaker-window.mp4)

To open speaker mode in a new window from your main presentation window, you can click the **Speaker Mode** button in the Pitchdeck web app toolbar at the bottom of the page. This will pop-out a new window that you can drag onto a second screen, allowing you to control your presentation from one screen, while having the main presentation on a different screen.

## Navigating between slides

[Video](/assets/videos/pitchdeck/web/speaker-mode-navigation.mp4)

You can navigate between your slides in speaker mode by clicking the **Prev** and **Next** buttons in the speaker mode toolbar at the bottom of the page, or by pressing the **Left Arrow** or **Right Arrow** keys on your keyboard. Pressing the **Space** key on your keyboard will also move to the next slide in the main presentation window.

If you need to jump directly to a certain slide in your presentation, you can use the slide selector left hand side of the page. Scrolling through your slides and clicking any of them will instantly jump to viewing that specific slide in the main presentation window.

## Changing the font size of your speaker notes

[Video](/assets/videos/pitchdeck/web/speaker-font-size.mp4)

To toggle between different font sizes for your speaker notes, you can click the **Font Size** button in the speaker mode window; clicking the button will cycle through **18px**, **22px**, **26px** and **30px** font sizes. This can be useful if you're standing further away or closer to the screen while presenting.

## Using the presentation timer

[Video](/assets/videos/pitchdeck/web/speaker-timer.mp4)

To keep track of how long you've been speaking, you can use the presentation timer built-in to the speaker mode window. The timer will start automatically upon opening the speaker window, but you can click **Pause** at anytime to pause the timer; clicking **Reset** will restart the timer back to **00:00:00**; clicking **Start** will resume the presentation timer.

## Toggling slide numbers

[Video](/assets/videos/pitchdeck/web/speaker-slide-numbers.mp4)

You can show visible slide numbers in your presentation by clicking the **Numbers** button in the speaker mode toolbar at the bottom of the window.

## Controlling the pointer

[Video](/assets/videos/pitchdeck/web/speaker-pointer-cursors.mp4)

You can enable a pointer overlay by clicking the **Pointer** button in the speaker mode toolbar at the bottom of the window. This will show a pointer overlay on your main presentation window. You can change the default pointer (the red laser) to something else by clicking another pointer in the list of pointer options available above the speaker mode toolbar while the pointer is active.

When the pointer is active, you can click/hold and drag your mouse around the pointer pop-up area in the speaker mode window to act as the pointer, which will control the position of the pointer on the main presentation window.

Clicking the **Pointer** button again, while the pointer is active, will hide the pointer and the cursor options in your main presentation window.

## Using your phone or tablet as the speaker mode remote control

[Video](/assets/videos/pitchdeck/web/speaker-qr-code.mp4)

To use your phone or tablet as a remote control for your presentation, you can click the **Remote** button in the Pitchdeck web app toolbar at the bottom of the page. This will open an overlay showing a QR code; scanning the QR code with the camera on your phone/tablet will open a new page in the web browser on your phone/tablet, allowing you to control your main presentation window wirelessly.

> **Note:** **Controls in the phone/tablet are the same as the speaker mode window**. Using the **Remote** option will load up the same remote control as the **Speaker Mode** option on your computer, with an optimized interface for smaller screens. For help using these controls, please see the documentation above.

---

---
url: "/pitchdeck/web/share.md"
description: "You can create unique share links for your web presentations, which lets you view analytics for links you've shared with different people."
---

# Creating and managing custom share link URLs

> You can create unique share links for your web presentations, which lets you view analytics for links you've shared with different people.

[Video](/assets/videos/pitchdeck/web/create-custom-urls.mp4)

When you export your presentation to the Pitchdeck Web App, it will automatically generate a default share link URL that you can use to present your slides or share with another person to view.

However, in the **Analytics** _Overview_ tab, you can also create custom share URLs for specific people or groups, which then lets you [filter by share link](/pitchdeck/web/analytics#filter-by-share-link) when viewing your presentation data, so you can reliably see analytics just for certain links.

## Creating a custom link

To create a new custom share link, go to the _Overview_ tab in your **Analytics** panel, and under the _Create Custom Shareable URL_ section, input a label for the share link (for example, the viewer's name or company) and then click the **Create New Custom Share URL** button; this will create a brand new share URL and you'll see it added under the _Custom Share Link URLs_ list.

Note, that label you give your custom link will _never_ be shown outside of the plugin, so the person or group that you're sharing the custom link with will never see it; it's just to help you identify which data is for which link in your analytics stats later.

## Sharing a custom link

Clicking the **Custom Share URL & Settings** accordion item in _Custom Share Link URLs_ list will expand it to reveal the URL and password for that custom link; clicking the **Copy** icon button will copy the link/password to your clipboard, which you can share with the person or group that the custom link was created for.

## Managing a custom link

You can rename any share link by clicking **Edit Label** next to your share link name in the _Custom Share Link URLs_ list.

You also have a few other options that you can toggle, per custom link:

- **Enable All Toolbar Buttons** - By default, only the thumbnails for each slide will be shown for custom links; optionally enabling this toggle will include all of the Pitchdeck web app's toolbar buttons and options.
- **Turn Off Activity Tracking** - By default, custom links will have their activity tracked (for you to see in your **Analytics** panel); you can optionally enable this toggle to _prevent_ any activity being logged for a certain custom share link.
- **Disable This Link** - You can optionally disable a custom link at any time by enabling this toggle; this will ensure that the presentation cannot be viewed by anyone with that custom link. You can re-enable the link at any time, if needed, by turning off this toggle again, which will allow the presentation to be viewed with this link.

---

---
url: "/pitchdeck/web/upload.md"
description: "This export option will upload your slides from Figma to the Pitchdeck web app, automatically generating a URL and password that will allow you to present your slides online using your web browser."
---

# Uploading your slides to the Pitchdeck web app

> This export option will upload your slides from Figma to the Pitchdeck web app, automatically generating a URL and password that will allow you to present your slides online using your web browser.

[Video](/assets/videos/pitchdeck/export/export-web-presentation-url.mp4)

To use this option, click the **Export Presentation** button in the Pitchdeck toolbar, then ensure the **Pitchdeck Presentation (Web URL)** option is selected as the presentation export format. Once you've configured your export settings, you can click the **Upload Web Presentation** button to begin uploading your slides.

> **Info:** **URLs will expire after 180 days of not being viewed**. Presentation URLs will automatically expire after a 180 day period of inactivity (180 days after the link was last accessed and viewed); if you want to re-activate the URL after it has expired, Run Pitchdeck in the Figma file and use the **Upload Web Presentation** button again.

### Using Retina @2x Images

Enabling the **2x Retina Images** toggle option will automatically export any **JPG** and **PNG** images at retina (@2x) resolution. This will give you sharper looking images in your presentation, but will also increase the file sizes of any **JPG** and **PNG** images.

### Compressing images

Enabling the **Compress Images** toggle option will compress any **JPG** and **PNG** images used in your presentation.

### Downsizing your Figma layer fills

Enabling the **Downsize Large Figma Image Fills** toggle will automatically resize (and lightly compress) any Figma image fills on your layers to their actual layer size. This is useful if you've originally imported high resolution images to your Figma file, but then shrunk the layer dimensions down to be much smaller (with the original large image file still being used).

One common case of this would be adding a large image from Unsplash (or another stock photo site/plugin), the resizing that layer to be used as a much smaller "card" or "avatar" image. This can cause the performance of your Figma file to slow down and potentially crash when exporting these layers via the Pitchdeck export options; so using this feature will help save file size and improve page performance in your Figma file.

### Copying your presentation URL and password

Once the upload has completed, you'll be able to copy the secure URL and password to view your presentation in the browser, using the Pitchdeck web app.

> **Tip:** **URL and password details can be accessed in the plugin later**. If you need to copy these URL and password details again later, you can do this by clicking the **Export Presentation** button in the Pitchdeck plugin toolbar, and ensuring the **Pitchdeck Presentation (Web URL)** option is selected. You can copy/paste your URL and password details under the **Active Pitchdeck Presentation** section.

### Using a passwordless URL (auto login)

If you don't want to use a URL/password combo for your presentation, you can copy the **Passwordless URL (Auto Login)** link, which will automatically log you in upon visiting the page in your browser.

> **Note:** **QR code version can be found on the upload confirmation screen**. If you want to Open up the presentation link on your phone/tablet, you can scan the **Passwordless URL (Auto Login)** QR code on the upload confirmation screen, which will automatically log you in upon visiting the page in your browser.

### Changing your Pitchdeck URL password

By default, the Pitchdeck plugin generates a secure random password for you, but if you want to change this to a custom password of your own, you can do this by enabling the **I want to change the URL password** toggle in the upload settings panel, then entering your new password in the input field (a minimum 6 characters is required) and clicking the **Set Password** button, which will update the password for your Pitchdeck URL for this Figma page.

> **Warning:** **Updating the password will lock out anyone who had the previous password**. Updating the password will prevent anyone who may have had the previous password from looking at your URL; if you need them to still have access, please re-share the new password with them.

### Deleting your uploaded presentation URL

You can delete your uploaded presentation URL that you've generated using the Pitchdeck plugin by clicking the **Export Presentation** button in the Pitchdeck plugin toolbar, then enabling the toggle option: **I would like to delete the active URL**; enabling this toggle will allow you to click the **Delete Presentation URL** button.

You will see a confirmation message letting you know that the presentation URL was deleted.

> **Warning:** **Deleting the URL means anyone with the link won't be able to see it anymore**. Clicking the **Delete Presentation URL** button will delete the uploaded presentation URL. Anyone with that URL won't be able to view the presentation anymore. However, you can always re-upload the presentation at anytime by clicking the **Upload Web Presentation** button again, if needed.

### Self-hosting your presentation as a custom iFrame embed (optional)

If you'd prefer to [self-host the web presentation on your own server/domain](/pitchdeck/web/embed), you can optionally download and deploy an `index.html` file that will automatically display an iFrame with your presentation embedded.

---

---
url: "/pitchdeck/workflow/numbers.md"
description: "You can optionally have Pitchdeck automatically add and sync your page numbers whenever the slides are added/removed or re-ordered using the Pitchdeck sorting options."
---

# Automatically adding page numbers to slides

> You can optionally have Pitchdeck automatically add and sync your page numbers whenever the slides are added/removed or re-ordered using the Pitchdeck sorting options.

[Video](/assets/videos/pitchdeck/design/add-auto-page-numbers.mp4)

To enable this feature, click on the **Page** icon button in the top left header of the plugin, then click the **Enable Auto Slide Numbers** to add the Figma component, which you can customize, and the instances of the component will be added to your slides automatically.

You can also change the color scheme; by default, the **Auto Text Layer** option is selected, where the text color will automatically be determined based on each frame's solid background fill in Figma.

Changing the position of the page numbers can be updated by changing the Vertical (**Top/Center/Bottom**) and Horizontal (**Left/Center/Right**) select box options.

---

---
url: "/pitchdeck/workflow/sort.md"
description: "The order of the slides in your exports is determined by the order of the slides you set in the plugin by using the ordering options below."
---

# Ordering your slides inside of the plugin

> The order of the slides in your exports is determined by the order of the slides you set in the plugin by using the ordering options below.

## Automatically ordering your slides using the Quick Sort options

[Video](/assets/videos/pitchdeck/design/reorder-automatic-dropdown.mp4)

There are a number of different ways to autoamtically sort the order of your frames for your presentation slides:

### Sort frames by Figma Layer Order

Selecting the **Sort frames by Figma Layer Order** option will automatically sort your the order of your frames to match their order in your Figma layers.

### Sort frames by Figma Layer Name

Selecting the **Sort frames by Figma Layer Name** option will automatically sort your the order of your frames to match their alphabetical order in your Figma layers.

### Sort frames visually by Columns

Selecting the **Sort frames visually by Columns** option will automatically sort your the order of your frames to match their visual positioning order by columns in your Figma design.

### Sort frames visually by Rows

Selecting the **Sort frames visually by Rows** option will automatically sort your the order of your frames to match their visual positioning order by rows in your Figma design.

## Manually ordering your slides using drag and drop

[Video](/assets/videos/pitchdeck/design/reorder-manually-drag-and-drop.mp4)

You can manually sort the order of your slides using drag and drop, by **clicking/holding** your mouse on the drag icon (next to any of your slides), and **dragging it up or down** to shift its order in your uploaded frames, then **dropping** it to confirm that order. This custom ordering will be saved if you want to switch between ordering options, so you can get it back by clicking the **Sort frames by Custom Order** option in the sorting select box.

---

---
url: "/pitchdeck/workflow/spellcheck.md"
description: "You can use the built-in spellcheck feature to automatically find any typos (for dozens of languages) in your slides and then quickly apply fixes with one click."
---

# Spell checking your slides

> You can use the built-in spellcheck feature to automatically find any typos (for dozens of languages) in your slides and then quickly apply fixes with one click.

[Video](/assets/videos/pitchdeck/design/spellcheck-slide-text.mp4)

To get started with this feature, click on the **Spell Check** icon button in the plugin subheader. When the settings panel opens, you can select the language of the text you would like to spell check by clicking the **Language** select box and changing the language that matches your Figma text content.

## Finding spelling mistakes in your text layers

Once you've selected your language, you can click the **Find Spelling Mistakes** button to begin searching _every_ text layer on the current Figma page for spelling mistakes.

> **Info:** **More Figma text layers will take longer**. The more text layers in your Figma file, the longer it will take to find spelling mistakes.

## Zooming in on text layers that contain spelling mistakes

Once the search is complete, you will see a list of words that contain spelling mistakes.

To instantly see where each text layer is in your Figma file, you can click on any word in the results list to expand it and show the frame(s) where the text is located in your page; clicking the **Search** icon next to any of these frames will instantly move the focus of your Figma page to show where the text layer is located.

## Applying spelling corrections to text layers

To apply a correction to a word that contains a spelling mistake, you can click on any of the **suggestion** buttons underneath each word; clicking any of the buttons will instantly change the word to the new suggested word in each of the locations where it exists.

## Undoing spelling corrections to text layers

To undo a correction you made to a word, you can click the **Undo** button besides the "corrected to" notification after a suggestion was applied; clicking the **Undo** button will instantly change the corrected word back to the original word in each of the locations where it exists.

---

---
url: "/pitchdeck/workflow/statuses.md"
description: "To make it easier to track which slides are approved, in progress or still need attention, you can optionally set statuses to any of your slides."
---

# Adding workflow statuses to your slides

> To make it easier to track which slides are approved, in progress or still need attention, you can optionally set statuses to any of your slides.

[Video](/assets/videos/pitchdeck/design/set-workflow-statuses.mp4)

You can use this feature by clicking the **status dropdown selector** next to the name of your slide, and select a status from:

- No Status
- Todo
- In Progress
- Ready For Review
- Approved

This will show a status indicator icon in your list of slides inside of the plugin; statuses don't do anything else that will affect your slides other than showing this small visual indicator.

---

---
url: "/pitchdeck/workflow/tidy.md"
description: "You can optionally automatically sort the slides on your Figma canvas into a grid, based on the order of your slides in the Pitchdeck plugin."
---

# Automatically tidying your slides into an ordered grid

> You can optionally automatically sort the slides on your Figma canvas into a grid, based on the order of your slides in the Pitchdeck plugin.

[Video](/assets/videos/pitchdeck/design/auto-tidy-arrange-slide-canvas.mp4)

To use this feature, click on the **Page** icon button in the top left header of the plugin, then click the **Re-Order & Tidy Figma Slide Layers** button to instantly tidy up the slides on your Figma page into an ordered grid.

You can also tweak the number of **Slides Per Row** by using the select dropdown input, and also toggle the **Add Fade to Unchecked Slides** option, which will ensure that the layer opacity is set to 30% for any slides in the Pitchdeck plugin that have been _unchecked_ (to exclude them from any exports).

---

---
url: "/pixelay/browser-extension.md"
description: "How to install the Pixelay Chrome extension to enable URL comparisons in the browser."
---

# Installing the Pixelay Chrome Extension

> How to install the Pixelay Chrome extension to enable URL comparisons in the browser.

[Video](/assets/videos/pixelay/extension/install-extension.mp4)

To compare your designs with your website URLs, you need to [Install the Pixelay Chrome Extension](https://chrome.google.com/webstore/detail/pixelay-for-figma/gnbafbeabkbkecmbedfgebgboicpnkpp) first; this lets you compare websites that are live, in development (for example, localhost) or require authentication.

---

---
url: "/pixelay/compare-designs.md"
description: "Guide to using the Pixelay web app to compare Figma designs with live URLs using overlays, modes, and tools."
---

# Comparing Figma designs with real website URLs in the browser

> Guide to using the Pixelay web app to compare Figma designs with live URLs using overlays, modes, and tools.

Once you've generated your URL in the Pixelay Figma plugin, you can open it in your web browser to start using the Pixelay web app. The web app is what lets you compare the designs you uploaded via the Figma plugin with the URLs of your website development build.

The web app works by loading each URL to compare as an [iFrame](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe), and overlays your Figma designs on top of them. The size of each uploaded image is used to set the width and height of each iFrame, which lets you test out "responsiveness" of your website build against their intended designs from Figma.

> **Note:** **Install the Pixelay Chrome Extension**. To enable comparing your designs with URLs via Pixelay, please install the [Pixelay Chrome Plugin](https://chrome.google.com/webstore/detail/pixelay-for-figma/gnbafbeabkbkecmbedfgebgboicpnkpp), which will run in the background and load up Pixelay when a URL from the plugin is detected in the browser.

## Scrolling the page to view all of your frames

[Video](/assets/videos/pixelay/compare/web-overview.mp4)

You can navigate the page completely via vertical and horizontal scrolling (either using your mousewheel or by clicking and dragging the scrollbars). Scrolling left and right will allow you to see all of the different frames you uploaded, and scrolling up and down will allow you to see all of the content for each of those frames.

> **Tip:** If your Pixelay project has more than 20 Figma frames, to avoid your page slowing down by loading all the URLs at once to scroll through, the Chrome extension will automatically swap into only showing one frame at a time to compare; you can swap between them by choosing any of your Figma frames from the controls panel in the bottom right of the screen.

## Toggling between the Figma design and website build modes

[Video](/assets/videos/pixelay/compare/toggler.mp4)

To quickly toggle between the original Figma design and your website build, you can click on the **Original Figma Design** and **Live Website Build** icon buttons in the Pixelay control panel.

Clicking each of these will toggle the selected mode, and allow you to see each one in isolation from the other mode.

> **Tip:** **Interacting with the live website previews**. Toggling the overlay mode to **Live Website Build** will allow you to interact with the page. This can be useful if you need to use form fields or click anything that help bring your live website more visually in sync with the original Figma designs you're comparing.

## Using the transparent overlay mode

[Video](/assets/videos/pixelay/compare/opacity-slide.mp4)

To compare your Figma designs and website build using different levels of opacity, you can click the **Transparent Overlay** icon button to enable this comparison mode. This will activate the transparent overlay mode.

By clicking/holding and dragging the **Overlay Opacity** slider, you can specify the amount of transparency between the original design and the live URL.

## Using the split screen overlay mode

[Video](/assets/videos/pixelay/compare/swiper.mp4)

To compare your Figma designs and website build using a split screen approach, you can click the **Split Screen Overlay** icon button to enable this comparison mode. This will activate the split screen overlay mode.

By clicking/holding and dragging the blue **Split Line** in the middle of each design, you can specify the amount of the original design and the live URL to be visual revealed at the same time.

## Using the blend-diff overlay mode

[Video](/assets/videos/pixelay/compare/diff.mp4)

To compare your Figma designs and website build using a blend-diff approach, you can click the **Blend-Diff Overlay** icon button to enable this comparison mode. This will activate the blend-diff overlay mode.

By clicking/holding and dragging the **Overlay Opacity** slider, you can specify the amount of transparency between the original design and the live URL.

## Using the draggable overlay mode

[Video](/assets/videos/pixelay/compare/draggable.mp4)

To manually adjust the positioning of the overlay for all of your designs, you can click the **Draggable Overlay** icon button to enable this comparison mode. This will activate the draggable overlay overlay mode.

By clicking/holding and dragging the **Overlay Opacity** slider, you can specify the amount of transparency between the original design and the live URL.

## Using the measure pixels ruler

[Video](/assets/videos/pixelay/compare/measure.mp4)

To measure the distance between any elements on your page with a pixel ruler, you can click the **Measure Pixels** icon button to enable this measurement mode. This will activate the measure pixels mode.

While this mode is active, you can measure the pixel distance on the page by by clicking/holding and dragging your mouse cursor between any two points on the page.

By clicking/holding and dragging the **Overlay Opacity** slider, you can specify the amount of transparency between the original design and the live URL.

## Toggling Between Environment URLs

[Video](/assets/videos/pixelay/compare/select-environment-url.mp4)

If you've [added any extra environment URLs](/pixelay/upload-designs#adding-multiple-environment-website-urls-optional) via the Pixelay Figma plugin before uploading your designs to compare, you'll be able to toggle between these from the **Change Environment Base URL** dropdown selector in the Pixelay web app controls panel.

This will automatically swap the base URL for any frames in your Pixelay previews. For example, selecting `https://dev.yoursite.com` would change all `https://www.yoursite.com` URLs to have a base URL of `dev.yoursite.com`, including any page specific URLs (for example, a Figma frame set to have a page URL of `https://www.yoursite.com/about` would load `https://dev.yoursite.com/about` instead).

## Using with a hot reload enabled development environment

[Video](/assets/videos/pixelay/compare/hot-reload.mp4)

If your local development URLs are running on an implmentation of [Hot Module Replacement (HMR)](https://webpack.js.org/concepts/hot-module-replacement/) you will see the frames in the Pixelay web app update automatically in real time (as they're pointing to your development URLs in iFrames) without needing to refresh the Pixelay web app URL itself.

Any changes that you make locally in your code editor will be reflected in the Pixelay web app when you save those files and HMR kicks-in to inject those changes to your URLs.

---

---
url: "/pixelay/faq/plans.md"
description: "To get unlimited usage of all of the Pixelay Pro features, you will need to purchase a license from the [Hypermatic website](https://hypermatic.com/pixelay#pro)."
---

# Pixelay Free vs Pixelay Pro

> To get unlimited usage of all of the Pixelay Pro features, you will need to purchase a license from the [Hypermatic website](https://hypermatic.com/pixelay#pro).

Pixelay includes 10 free trials of the _Pro_ version. After you use them, the plugin switches to the more limited _Free_ version.

In Free mode, Pixelay can compare Figma frames that are **less than 430 px wide**. Wider frames require Pixelay Pro.

  - **Pixelay Free**: ### Mobile Design Comparisons Unlimited Usage       ### Desktop Design Comparisons Try during 10 Pro Trials
  - **Pixelay Pro**: ### Mobile Design Comparisons Unlimited Usage       ### Desktop Design Comparisons Unlimited Usage

---

---
url: "/pixelay/faq/security.md"
description: "Pixelay runs as an official plugin inside of Figma's own app, which are reviewed and approved by the Figma team."
---

# Pixelay Security

> Pixelay runs as an official plugin inside of Figma's own app, which are reviewed and approved by the Figma team.

The Figma plugin is run directly from Figma's own servers, and runs inside of a your Figma file, which means that it inherits all of the [security](https://www.figma.com/security/) and infrastructure of the Figma platform, which exceed industry standards for data protection and security:

- SOC 2 Type 2
- SOC 3
- Cloud Security Alliance (CSA) STAR: Level 1
- ISO/IEC 27001:2013
- ISO/IEC 27018:2019
- EU Cloud Code of Conduct (COC): Level 2

There's **no additional software** that needs to be installed to use the Figma plugin, as Figma plugins run as a built-in part of Figma's own native functionality, and all Figma plugins Accessibile and can be instantly run from inside any Figma file, or via the official [Figma Community](https://www.figma.com/community) ecosystem inside of the Figma app.

If your organization is already approved to use Figma, then you _already have access_ to Figma plugins.

## How Pixelay works

The [Pixelay Figma plugin](https://www.figma.com/community/plugin/816424186244407164) helps users compare their Figma design mockups with their real website URLs.

Pixelay is designed to be privacy and security focused, so any comparisons happen by using _your own domain_ via the [Pixelay Browser Extension](https://chrome.google.com/webstore/detail/pixelay-for-figma/gnbafbeabkbkecmbedfgebgboicpnkpp), and any image uploads are encrypted with AES-256.

The Pixelay Web App loads up _your own domain URLs_ that you've specified to compare as `` tags, which lets you compare multiple pages and designs on the same web page in the browser at the same time; nothing from your website is ever uploaded/processed/used/read by anything, it's just in a "read only" state by being embedded into an `` via the [Pixelay Browser Extension](https://chrome.google.com/webstore/detail/pixelay-for-figma/gnbafbeabkbkecmbedfgebgboicpnkpp).

Any uploads and cloud storage services used by the Pixelay Plugin and Pixelay Web App are hosted on [Google Cloud](https://cloud.google.com/) (the same infrastructure that Google hosts all of its own products with), via [Google Firebase](https://firebase.google.com/).

As per the [Privacy and Security in Firebase](https://firebase.google.com/support/privacy), all Firebase services (aside from App Indexing) have successfully completed the **ISO 27001** and **SOC 1**, **SOC 2**, and **SOC 3** evaluation process, and some have also completed the **ISO 27017** and **ISO 27018** certification process.

## What Pixelay does and doesn't do

Pixelay uses the [Figma Plugins API](https://www.figma.com/plugin-docs/) to export Figma designs that can be compared with your own website URLs via the [Pixelay Browser Extension](https://chrome.google.com/webstore/detail/pixelay-for-figma/gnbafbeabkbkecmbedfgebgboicpnkpp) in the browser.

### Pixelay does

- Allow users to generate links to compare your designs with your own real website URLs (without needing a Figma account)..
- Allow you to use the [Pixelay Browser Extension](https://chrome.google.com/webstore/detail/pixelay-for-figma/gnbafbeabkbkecmbedfgebgboicpnkpp) to view your unique ID (on your _own_ domain).
- Encrypt image uploads with AES-256.
- Automatically deletes URL/uploads if not accessed for 180 days.

### Pixelay does _not_

- Make _any_ designs via the plugin publicly accessible or indexed by any search engines.
- Create any public URLs (the browser extension only runs on your _own_ domain).
- Collect or store _any_ personal information (Figma plugins *cannot* access any private information about Figma projects, Figma teams or Figma users).

## How Figma plugins work

Figma plugins are written in HTML/CSS/Javascript, and are run in a tightly controlled [sandbox environment](https://www.figma.com/plugin-docs/how-plugins-run/) inside of the main Figma application.

Figma plugins can only do whatever Figma allows them to do inside the permissions of the [Figma Plugins API](https://www.figma.com/plugin-docs/), and importantly, **plugins don't have any access to personal information** about the Figma user running the plugin.

## What Figma plugins can and can't do

As per the article on [Figma plugin security](https://www.figma.com/blog/how-we-built-the-figma-plugin-system/), there are a limited number of things that Figma plugins can do, and many more things that they can't do:

### Figma plugins can

- Only be run by an explicit user action
- Show UI in a single plugin-specific dialog
- Read any data in your Figma document (for example, a “find layer by name” plugin)
- Modify any data in your Figma document (for example, a “rename selected layers” plugin)
- Communicate with any server over the internet (for example, an “import from service X” plugin)

### Figma plugins _cannot_

- Run by themselves
- Get information about the project or team that owns the file
- Access anything when they aren’t running
- Access data from any files other than the file they were run in
- Change Figma’s UI outside of the plugin UI dialog

> **Tip:** Figma account administrators at your company can [configure an allowlist of plugins](https://help.figma.com/hc/en-us/articles/4404228724759-Manage-plugins-and-widgets-in-an-organization) that are allowed inside the organization. This can be used to prevent untrusted Figma plugins from being run in any file in that organization.

---

---
url: "/pixelay/faq/troubleshooting.md"
description: "Troubleshooting guide for Pixelay covering extension setup, URL issues, export quirks, and network limitations."
---

# Troubleshooting Pixelay

> Troubleshooting guide for Pixelay covering extension setup, URL issues, export quirks, and network limitations.

### Pixelay not loading on URLs (Chrome Extension is required)

To enable comparing your designs with URLs via Pixelay, please install the [Pixelay Chrome Plugin](https://chrome.google.com/webstore/detail/pixelay-for-figma/gnbafbeabkbkecmbedfgebgboicpnkpp), which will run in the background and load up Pixelay when a URL from the plugin is detected in the browser.

### Next.js (Vercel) app not loading

If you're trying to compare a Next.js app via Pixelay, this can sometimes give an "Application error: a client-side exception has occurred" message and not load the page. If this happens, you can try using the non-Chrome extension based link below and insert your Pixelay ID: https://pixelay.hypermatic.com/YOUR_PIXELAY_PROJECT_ID_HERE (for example, https://pixelay.hypermatic.com/n4ok457201973)

### URL expiration

Your secure links and images will automatically be removed after a 180 day period of inactivity (180 days after the link was last accessed and viewed) to ensure they are not accidentally laying around after they've served their purpose.

### Thin white line around image exports

Occasionally some images will contain a faint, thin white line around the edges. Figma [does this](https://twitter.com/Skcrub/status/1255544876701270017) if a layer isn't positioned on a rounded pixel value (for example, Y: 156.76 or X: 56.3) will automatically result in this sub-pixel line getting included in the export. To resolve the issue, please ensure that your layer positions are all rounded pixel values.

### Websites using 'vh' CSS units

If your website CSS uses "vh" units for any elements, Note that these may appear much taller than they normally would at a reasonable browser height due to Pixelay setting the viewport height to be the same as your full Figma mockup.

### Create a brand new URL for your Figma file

Due to it being a fairly sensitive feature, instead of adding a button/icon to click, we've made this feature activate only by entering the "Konami Code" on your keyboard while the plugin is running:

`Up, Up, Down, Down, Left, Right, Left, Right, B, A`

Typing that sequence of keys on your keyboard will trigger the Pixelay plugin to create a brand new URL for your Figma file, so you could enter it in a duplicated Figma file to give it a different brand new URL than the original one.

### Pixelated image exports

If you're uploading your designs while the image assets in Figma are still progressively loading, they may be exported looking pixelated, as the image wasn't fully loaded in the Figma file before it was exported. To resolve this, please ensure that all of the images have loaded 100% and are looking sharp inside the Figma file before uploading your images with the Pixelay plugin.

To help further with solving this issue, you can use the ["Downsizer" feature](/tinyimage/downsize) to shrink down your image fills to match their layer size, which will shrink their file size and ensure they load much faster in your Figma file.

### Designs not uploading from the plugin, or images not loading in the web app

One reason this might be happening is if your ISP (internet service provider) is blocking the QUIC protocol. You can confirm this by opening up your developer console in the browser or in Figma and see the error message `ERR_QUIC_PROTOCOL_ERROR`.

There are a couple of workarounds for this issue:

1. Switching to your mobile phone's Wi-Fi hotspot/tether for your computer's internet connection
2. [Disabling QUIC](https://kinsta.com/knowledgebase/err_quic_protocol_error/) in your browser

### Netskope blocking the Pixelay frames from loading

There is a known issue with [Netskope](https://www.netskope.com/) blocking access to Firebase databases; to resolve this, please ensure you allow `firestore.googleapis.com:443` (as per [this thread](https://stackoverflow.com/questions/52441316/firestore-grpc-behind-a-corporate-firewall-proxy)).

### VPN may be required in China

Note, if you're in China, the accounts server _may_ be blocked by "The Great Firewall of China". If you're seeing an activation error, despite using a valid key, you will likely need to use a [VPN](https://protonvpn.com/free-vpn/) to resolve the issue.

### 'An error occurred while loading the plugin environment'

This may happen in the Figma desktop app if [the Use Developer VM](https://www.figma.com/plugin-docs/debugging/#developer-vm) debug setting in Figma is enabled by mistake; you can make sure it's turned off by **right-clicking** anywhere on your Figma canvas, hovering over **Plugins**, then hovering over **Development**, and making sure that the **Use Developer VM** is _unchecked_; after it is unchecked (and does _not_ have a tick icon next to it), re-running the Figma plugin should work as expected.

---

---
url: "/pixelay/overview/install.md"
description: "Ensure you're logged into your Figma account, then follow the steps below to install and run the [Pixelay Figma Plugin](https://www.figma.com/community/plugin/816424186244407164/pixelay-compare-design-to-web)."
---

# Install and run the Pixelay Figma Plugin

> Ensure you're logged into your Figma account, then follow the steps below to install and run the [Pixelay Figma Plugin](https://www.figma.com/community/plugin/816424186244407164/pixelay-compare-design-to-web).

### Video Tutorial: How to install (and remove) Figma plugins

This video tutorial is a complete step-by-step guide showing you the new process of how to install (and remove) Figma plugins after the mid-2024 "UI3" update to the Figma app
[Embedded media](https://www.youtube.com/embed/CzjxF2Jv6PM)

## Installing the Pixelay Figma Plugin

1. Open any Figma file.
2. Click on the **Actions** icon in the bottom Figma toolbar.
3. Click the **Plugins & Widgets** tab to filter results to Figma plugins.
4. Search for **Pixelay** in the search bar.
5. Click on the **Pixelay** search result.
6. Click the **Save** button to install the Pixelay plugin.

> **Note:** Figma users in a **Figma Organization** may only be able to install approved plugins. Please contact your Figma Org admin at your company to [approve the Pixelay plugin](https://help.figma.com/hc/en-us/articles/4404228724759-Manage-plugins-and-widgets-in-an-organization) if you're unable to install certain Figma plugins.

## Running the Pixelay Figma Plugin

Once you've [installed](#installing-the-figma-plugin) the **Pixelay** Figma plugin, to run the plugin in your Figma file:

  1. **Right-click** anywhere on your Figma file's page canvas
  2. Hover your mouse over the **Plugins** ▶ menu item
  3. Hover your mouse over the **Saved plugins** ▶ menu item
  4. Click on the **Pixelay** plugin menu item

> **Tip:** After you've run the **Pixelay** plugin once in a Figma file, you'll be able to quickly re-launch it by clicking the **Pixelay** icon in the right-hand side Figma column (under the **Plugin** subheading).

> **Warning:** Only Figma users with **Edit** access to a Figma file can run a Figma plugin in that Figma file; if you only have **View** permissions, you won't be able to run any Figma plugins in that file.

> **Note:** Pixelay supports Figma Dev Mode. If your QA or engineering team uses a Dev seat without edit access to the design file, switch the file into Dev Mode and run Pixelay from the Plugins section in the Inspect panel.

## Uninstalling the Pixelay Figma plugin

1. Open any Figma file.
2. Click on the **Actions** icon in the bottom Figma toolbar.
3. Click the **Plugins & Widgets** tab to filter results to Figma plugins.
4. Search for **Pixelay** in the search bar.
5. Click on the **Pixelay** search result.
6. Click the **Remove** button to uninstall the Pixelay plugin.

> **Note:** This will remove the plugin from your **Saved Plugins** list, however, the Figma plugin may still show up under your **Recents** list (if it has been recently run), as Figma saves this list of recent plugins in your browser's/app's local storage. The plugin will vanish from the Recents menu after other plugins are run to take its place.

---

---
url: "/pixelay/overview/pro.md"
description: "After trying out all the Pro features of Pixelay **10 times**, you can optionally upgrade to continue using all the extra features that are only available in the Pro version; or if you're a casual user, you can continue using the Free version forever."
---

# Activating Pixelay Pro

> After trying out all the Pro features of Pixelay **10 times**, you can optionally upgrade to continue using all the extra features that are only available in the Pro version; or if you're a casual user, you can continue using the Free version forever.

> **Tip:** Need a Pixelay Pro account? You can purchase a Pro account for you or your team by visiting the [Pixelay](https://www.hypermatic.com/pixelay/#pro) product page on the Hypermatic website.

## Activating the Figma plugin with an Pixelay Pro license key

1. **Purchase a Pro license** for you or your team by visiting the [Pixelay](https://www.hypermatic.com/pixelay/#pro) product page on the Hypermatic website.
2. **Run the Pixelay Plugin**, then click on the **Upgrade Now** button at the bottom of the Figma plugin window.
3. **Paste in your Pro key**, then click the **Unlock** button.

This will unlock the Pro version of Pixelay and give you unlimited use all of the Figma plugin features.

> **Warning:** Note, if you're in China, the accounts server _may_ be blocked by "The Great Firewall of China". If you're seeing a activation error, despite using a valid key, you will likely need to use a [VPN](https://protonvpn.com/free-vpn/) to resolve the issue.

> **Info:** If you ever need to use a different license key at any time (for example, you were using your own personal Pro license key, but now your employer is buying you a Pro license to use instead), you can press **CTRL + K** while your plugin window is open in Figma, and this will bring up the license key prompt again, where you can enter a different license key.

---

---
url: "/pixelay/overview/quickstart.md"
description: "Compare and visually QA your Figma designs against real website URLs using smart overlays."
---

# Get started with Pixelay

> Compare and visually QA your Figma designs against real website URLs using smart overlays.

[![Pixelay Figma Plugin](https://www.hypermatic.com/pixelay.jpg)](https://www.figma.com/community/plugin/816424186244407164/pixelay-compare-design-to-web)

## Install and activate Pixelay

- [Install & Run the Figma plugin](/pixelay/overview/install.md): How to run Pixelay inside of Figma
- [Activate Pixelay Pro](/pixelay/overview/pro.md): How to buy and use a Pro license key

## Using Pixelay

  - [Pixelay Documentation](/pixelay/upload-designs.md): Detailed docs with short screencaps
  - [Pixelay Video Tutorials](/pixelay/tutorials.md): Full step-by-step video walkthroughs

## Frequently asked questions

- [Troubleshooting Pixelay](/pixelay/faq/troubleshooting.md): Common issues issues you may run into
- [Pixelay Security](/pixelay/faq/security.md): Details about how Pixelay works
- [Receipts](/faq/receipts.md): Find email receipts and PDF invoices
- [Billing](/faq/billing.md): Manage your Pro subscription
- [License Seat Management](/faq/seats.md): Manage the Figma users on your key
- [Pixelay Free vs Pro](/pixelay/faq/plans.md): Compare Free vs Pro features

[Video](https://www.hypermatic.com/assets/videos/pixelay/PIXELAY_DEMO.mp4)

## Pixelay features

- Compare multiple Figma designs and URLs at the same time.
- Runs in both Figma Design Mode and Dev Mode, including Dev-seat QA workflows.
- Light-weight [Chrome Extension](https://chrome.google.com/webstore/detail/pixelay-for-figma/gnbafbeabkbkecmbedfgebgboicpnkpp) required to compare multiple pages at once.
- Compare Figma designs with the implemented website during visual QA.
- Test your responsive designs, with support for multiple screen sizes (for example, desktop/mobile/tablet).
- Switch between multiple development, test, and production URLs.
- Transparency, split-screen, toggle, drag and diff overlays.
- Optionally specify different website page URLs per Figma frame.
- Supports localhost through BrowserSync or hot module reloading.
- Built-in pixel ruler for measuring space differences in comparisons.
- Measure and review visual differences between Figma and the website.

---

---
url: "/pixelay/tutorials.md"
description: "The best free Figma tutorial videos for beginners (or power users) to level up."
---

# Pixelay Video Tutorials

> The best free Figma tutorial videos for beginners (or power users) to level up.

## Video Tutorials

- [Compare live website builds](/pixelay/tutorials/compare-live-website-builds)
- [Compare websites behind a login with Figma designs](/pixelay/tutorials/compare-websites-behind-a-login-with-figma-designs)
- [Compare local website development builds](/pixelay/tutorials/compare-local-website-development-builds)
- [Compare Webflow builds](/pixelay/tutorials/compare-webflow-builds)

---

---
url: "/pixelay/tutorials/compare-live-website-builds.md"
description: "This tutorial shows how to use the Pixelay Figma plugin to compare Figma frames with a live website URL. It covers installing the plugin and browser extension, uploading designs to a Pixelay URL, and using comparison modes like opacity, split view, diff, and measurement for QA."
---

# Compare live website builds

> This tutorial shows how to use the Pixelay Figma plugin to compare Figma frames with a live website URL. It covers installing the plugin and browser extension, uploading designs to a Pixelay URL, and using comparison modes like opacity, split view, diff, and measurement for QA.

[← Back to Pixelay Video Tutorials](/pixelay/tutorials)

[Embedded media](https://www.youtube.com/embed/fMwBgIggbg4)

**What this video covers**

This tutorial shows how to use the Pixelay Figma plugin to compare Figma frames with a live website URL. It covers installing the plugin and browser extension, uploading designs to a Pixelay URL, and using comparison modes like opacity, split view, diff, and measurement for QA.

**Things you'll need**

- Figma
- Pixelay browser extension

**Steps**

1. Install Pixelay from the Figma Community Plugins tab.
2. Open your Figma file, then right-click and go to Plugins > Pixelay.
3. Paste the live website URL into the plugin, and override the URL per frame if needed.
4. Select the frames to compare and click Compare Designs, then Upload Designs to create a Pixelay URL.
5. Install the Pixelay browser extension from the Chrome store if you want to compare live website URLs.
6. Open the Pixelay web app URL in your browser to view the uploaded Figma designs alongside the live site.
7. Use opacity, split screen, diff mode, overlay offset, measurement, and frame navigation to inspect differences.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=fMwBgIggbg4)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-compare-live-website-builds-with-figma-designs-using-pixelay)
- [Browse Pixelay tutorial docs](https://docs.hypermatic.com/pixelay/tutorials)

---

---
url: "/pixelay/tutorials/compare-local-website-development-builds.md"
description: "This tutorial shows how to use the Pixelay Figma plugin to compare Figma designs against a local website build or a live URL. It covers installing the plugin, selecting frames, entering page URLs, generating a comparison link, and using Pixelay’s overlay and measurement tools to spot and fix differences."
---

# Compare local website development builds

> This tutorial shows how to use the Pixelay Figma plugin to compare Figma designs against a local website build or a live URL. It covers installing the plugin, selecting frames, entering page URLs, generating a comparison link, and using Pixelay’s overlay and measurement tools to spot and fix differences.

[← Back to Pixelay Video Tutorials](/pixelay/tutorials)

[Embedded media](https://www.youtube.com/embed/vOU3gGrgv4c)

**What this video covers**

This tutorial shows how to use the Pixelay Figma plugin to compare Figma designs against a local website build or a live URL. It covers installing the plugin, selecting frames, entering page URLs, generating a comparison link, and using Pixelay’s overlay and measurement tools to spot and fix differences.

**Things you'll need**

- Figma
- Pixelay

**Steps**

1. Install Pixelay from Figma Community by searching for “pixelay” under plugins and clicking Install.
2. Open your Figma file, right-click, then choose Plugins > Pixelay Development Comparison.
3. Enter the development URL, such as a localhost address, and select the frames you want to compare, including any frame-specific URL overrides.
4. Click Compare Designs, then open the generated link in your browser to load the selected Figma frames over the website build.
5. Use the toolbar modes to switch between Figma and the build, adjust transparent overlay opacity, compare in split screen, view blended diff overlays, or use draggable overlay to align browser chrome.
6. Use the pixel measurement tool to check spacing and alignment differences directly on screen.
7. Optionally change code in your local build, save, and watch the browser preview update immediately to verify the design match.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=vOU3gGrgv4c)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-compare-local-website-builds-with-figma-designs-using-pixelay)
- [Browse Pixelay tutorial docs](https://docs.hypermatic.com/pixelay/tutorials)

---

---
url: "/pixelay/tutorials/compare-webflow-builds.md"
description: "This video shows how to compare Figma designs against a Webflow build using the Pixelay Figma plugin. Because Webflow URLs cannot be embedded directly in Pixelay, it also demonstrates exporting the Webflow code and serving it locally with BrowserSync so the build can be compared at a localhost URL."
---

# Compare Webflow builds

> This video shows how to compare Figma designs against a Webflow build using the Pixelay Figma plugin. Because Webflow URLs cannot be embedded directly in Pixelay, it also demonstrates exporting the Webflow code and serving it locally with BrowserSync so the build can be compared at a localhost URL.

[← Back to Pixelay Video Tutorials](/pixelay/tutorials)

[Embedded media](https://www.youtube.com/embed/XlT_QTu1eEg)

**What this video covers**

This video shows how to compare Figma designs against a Webflow build using the Pixelay Figma plugin. Because Webflow URLs cannot be embedded directly in Pixelay, it also demonstrates exporting the Webflow code and serving it locally with BrowserSync so the build can be compared at a localhost URL.

**Things you'll need**

- A Figma file with the designs to compare
- A paid Webflow plan to export code
- Node.js and BrowserSync for running a local server

**Steps**

1. Install the Pixelay Development Comparison plugin from Figma Community and open it from Plugins.
2. Select the Figma frames you want to compare, enter a URL for the build, and click Compare to designs to generate a Pixelay comparison link.
3. If the Webflow URL does not load in Pixelay, export the Webflow project code as a zip using Webflow's Export Code and Prepare Zip options.
4. Unzip the exported files, open them in Visual Studio Code, and start a local BrowserSync server after installing Node.js and BrowserSync.
5. Copy the localhost URL from BrowserSync, reopen Pixelay in Figma, replace the old URL with the local URL, and run Compare Designs again.
6. Open the new Pixelay link in the browser and use split screen, contrast diff, overlay mode, opacity, or the pixel measuring tool to spot and fix design differences.
7. Adjust the local HTML/CSS as needed until the Webflow build matches the Figma design, then reuse the Pixelay link as needed.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=XlT_QTu1eEg)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-compare-webflow-builds-with-figma-designs-using-pixelay)
- [Browse Pixelay tutorial docs](https://docs.hypermatic.com/pixelay/tutorials)

---

---
url: "/pixelay/tutorials/compare-websites-behind-a-login-with-figma-designs.md"
description: "The video shows how to use the Pixelay Figma plugin and Pixelay Chrome extension to visually compare Figma frames against a live website, including sites behind a login. It also demonstrates updating uploaded designs, switching comparison views, and using pop-out windows for easier review."
---

# Compare websites behind a login with Figma designs

> The video shows how to use the Pixelay Figma plugin and Pixelay Chrome extension to visually compare Figma frames against a live website, including sites behind a login. It also demonstrates updating uploaded designs, switching comparison views, and using pop-out windows for easier review.

[← Back to Pixelay Video Tutorials](/pixelay/tutorials)

[Embedded media](https://www.youtube.com/embed/yAj8qWD3Xzs)

**What this video covers**

The video shows how to use the Pixelay Figma plugin and Pixelay Chrome extension to visually compare Figma frames against a live website, including sites behind a login. It also demonstrates updating uploaded designs, switching comparison views, and using pop-out windows for easier review.

**Things you'll need**

- Figma
- Pixelay Chrome extension

**Steps**

1. Open Figma Resources, search for Pixelay under the Plugins tab, and run or save the Pixelay Figma plugin.
2. Select the frames or artboards you want to compare and assign the correct base URL or page-specific URLs for each frame.
3. Click Compare Designs, then Upload Designs to send the frames from Figma and generate a comparison link.
4. Install the Pixelay Chrome extension with Add to Chrome and Add Extension if it is not already installed.
5. Open the generated Pixelay URL in a browser where you are already logged in to the target site, so the extension can overlay the uploaded designs on the live page.
6. Use the comparison views, including opacity adjustment, split screen, diff checker, design/build switching, and pop-out windows, to inspect differences.
7. After making changes in Figma, run Compare Designs again and use Update Designs to upload the revised frames and refresh the comparison link.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=yAj8qWD3Xzs)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-compare-websites-behind-a-login-with-figma-designs-using-pixelay)
- [Browse Pixelay tutorial docs](https://docs.hypermatic.com/pixelay/tutorials)

---

---
url: "/pixelay/upload-designs.md"
description: "Steps to select Figma parent frames, set URLs, upload designs, and manage Pixelay comparison links."
---

# Uploading designs to compare from Figma

> Steps to select Figma parent frames, set URLs, upload designs, and manage Pixelay comparison links.

## Preparing designs in the Figma plugin

Pixelay works by uploading images of your top level parent frames from the current Figma page via the Pixelay Figma plugin, and overlaying them with the URLs of their pages in your website build in the Pixelay web app.

> **Note:** **Parent level Figma frames are required**. To compare your designs, your Figma page must contain at least one "Parent Frame". This means, any "frames" that are located _directly_ underneath your page.

### Selecting Figma frames to compare

[Video](/assets/videos/pixelay/upload/selecting-frames.mp4)

To get started, you need to select the frames from your Figma design that you would like to compare with URLs in your website build.

Pixelay will load all of your "parent frames" into the plugin as a list of designs that you can use to compare with your website build you can click on any frame's checkbox or image thumbnail to select it (clicking it again will deselect it).

> **Tip:** **Highlighting Figma parent frames to select them**. To make it easier to select the Figma parent frames that you want to compare, clicking or highlighting any frame(s) on your Figma page will automatically filter them down in the available frames list in the Pixelay plugin.

### Refreshing Figma parent frames

[Video](/assets/videos/pixelay/upload/refreshing-layers.mp4)

If the Pixelay plugin is already running and you need to add or remove any parent frames on your current Figma page, you can make those updates as needed and then click on the **Refresh** icon button in the Pixelay plugin toolbar.

### Entering your website URL

[Video](/assets/videos/pixelay/upload/entering-url.mp4)

You can enter the default URL that you would like to compare your designs with by entering a valid URL into the **URL** input field in the Pixelay toolbar. This URL will be used as the default page that will be loaded to compare you selected designs against.

> **Note:** **Install the Pixelay Chrome Extension**. To enable comparing your designs with URLs via Pixelay, please install the [Pixelay Chrome Plugin](https://chrome.google.com/webstore/detail/pixelay-for-figma/gnbafbeabkbkecmbedfgebgboicpnkpp), which will run in the background and load up Pixelay when a URL from the plugin is detected in the browser.

> **Tip:** **Use `https://` URLs.** Pixelay can only load live websites and local development URLs over HTTPS.

#### Adding page specific website URLs

If you're comparing multiple frames at the same time, you can specify a URL _per frame_ to compare. For example, if you're comparing an "About" page design, you might put it a URL like _https://yoursite.com/about/_. This specific URL will override the default URL in the Pixelay toolbar.

### Adding multiple environment website URLs (Optional)

[Video](/assets/videos/pixelay/upload/add-environment-urls.mp4)

If you have more than one website environment, add an extra base URL for each development, staging, or production site. You can [switch between those environments](/pixelay/compare-designs#toggling-between-environment-urls) from the Pixelay web app.

To add any additional URLs, click on the **List** icon button next to your main base URL in the plugin header, then add your new URL (for example, `https://dev.yoursite.com` or `https://test.yoursite.com`) and click the **Add URL** button to add it to your additional environments base URL list. These will be visible as a dropdown list in the Pixelay web app after re-uploading your designs from the Plugin.

> **Tip:** To remove an environment URL, select it from the dropdown and click the **Trash** icon. Re-upload the Pixelay designs to apply the change to the current comparison link.

### Generating your comparison URL

[Video](/assets/videos/pixelay/upload/compare-upload.mp4)

Once you've selected the Figma frames you would like to compare, and assigned them their website build URLs, you can click on the **Compare Designs** button in the Pixelay toolbar. You can click the **Upload Designs to Compare** button to confirm and start the upload. This will upload images of the Figma frames you've selected and generate a URL that will take you to the Pixelay web app.

> **Warning:** **Duplicating a Figma file also copies its URL.** To generate a different URL for the duplicate, enter the Konami code (**Up**, **Up**, **Down**, **Down**, **Left**, **Right**, **Left**, **Right**, **B**, **A**) while the plugin is open. Pixelay creates a new URL without deleting the previous one.

### Opening your comparison URL

[Video](/assets/videos/pixelay/upload/copy-url.mp4)

After all of your frames have been uploaded, you'll see a confirmation message that will let you know the comparison page URL is ready to use.

You can either click on the **Copy** icon button to copy the URL and paste it into your web browser (or share it with someone else), or Click on the **open the link** link in the confirmation message. This will open up the Pixelay web app in your browser and let you begin comparing your Figma designs and website development URLs.

Note, to enable comparing your designs with URLs via Pixelay, please install the [Pixelay Chrome Plugin](https://chrome.google.com/webstore/detail/pixelay-for-figma/gnbafbeabkbkecmbedfgebgboicpnkpp), which is also linked to in the plugin's confirmation message.

#### Accessing your comparison URL from the plugin again

If you've already created your comparison URL using the plugin and want to copy the URL again (without re-uploading your designs), you can click on the **Compare Designs** button in the Pixelay toolbar, which will reveal your previously created comparison URL. To use the URLs again, you can either click on the **Copy** icon button to copy the URL and paste it into your web browser (or share it with someone else), or Click on the **open the link** link in the confirmation message.

### Re-uploading your Figma designs to the comparison URL

[Video](/assets/videos/pixelay/upload/reupload-images.mp4)

If you've made some design updates or want to include/exclude some different Figma frames, or change any of the website/page links in your comparison URL, you can re-upload your selected designs to the comparison URL in the same way you originally uploaded your designs, by clicking the **Compare Designs** button in the Pixelay toolbar, then this time clicking the **Update Designs** button.

> **Note:** **Your comparison URL stays the same when re-uploading designs**. Whenever you click the **Update Designs** button, it will replace any frames and website links that you had previously uploaded, and update the previously generated Pixelay comparison URL with your new designs and links.

---

---
url: "/security.md"
description: "Review general Hypermatic privacy boundaries and open the security documentation for each Figma plugin."
---

# Hypermatic plugin security

> Review general Hypermatic privacy boundaries and open the security documentation for each Figma plugin.

## Start your security review

Hypermatic builds official Figma plugins that run inside Figma. Because each plugin performs a different workflow, security and privacy behavior must be reviewed for the specific product and feature you plan to use.

Use these shared documents first:

- [Privacy and data access](/security/privacy-and-data-access)
- [Vendor review information](/security/vendor-review)
- [Procurement, PDF quotes, purchase orders, and vendor forms](/faq/procurement)

Then open the plugin-specific security page above. For uploaded assets, hosted outputs, support logs, or deletion questions, start with [Privacy and data access](/security/privacy-and-data-access).

## Local and connected workflows

Many Hypermatic Figma plugin workflows run locally and download files directly to your computer. Optional features in some plugins can connect to third-party APIs, upload exported assets, host images, or create shareable outputs.

Do not assume one data-handling statement applies to every plugin. Check the product-specific page for the exact workflow.

## Information for IT and procurement

Start with the [vendor review information](/security/vendor-review), [privacy and data access](/security/privacy-and-data-access), and the plugin-specific security page for the product being reviewed.

If anything is still unclear, email [adam@hypermatic.com](mailto:adam@hypermatic.com).

## Documentation Sections

- [TinyImage Security](/tinyimage/faq/security.md): Export compressed JPG, PNG, SVG, WebP, AVIF, GIF and PDF files from Figma, reducing sizes by up to 95%.
- [Pitchdeck Security](/pitchdeck/faq/security.md): Create animated slide decks in Figma or export presentations to PowerPoint.
- [Convertify Security](/convertify/faq/security.md): Export Figma to Sketch, XD, After Effects or import XD, Illustrator, PowerPoint, Word Docs, Google Docs, and PDF to Figma.
- [Emailify Security](/emailify/faq/security.md): Design and export responsive, production-ready HTML emails from Figma.
- [CopyDoc Security](/copydoc/faq/security.md): Export, import, localize, and update text in Figma designs.
- [Bannerify Security](/bannerify/faq/security.md): Animate and export production ready banners from Figma to HTML, GIFs and Videos.
- [Crypto Security](/crypto/faq/security.md): Securely share your Figma designs and prototypes as password protected URLs or PDF files.
- [Favvy Security](/favvy/faq/security.md): Export production ready favicons (with code) for your website or PWA from Figma in seconds.
- [Pixelay Security](/pixelay/faq/security.md): Compare your Figma designs with live or local website URLs using smart browser overlays.
- [HyperCrop Security](/hypercrop/faq/security.md): Batch crop/resize multiple images into multiple sizes with presets, smart cropping and face detection.
- [Commentful Security](/commentful/faq/security.md): Supercharge your Figma comments and gather external feedback from stakeholders.
- [Weblify Security](/weblify/faq/security.md): Inspect Figma layers as HTML, React, or Vue code.

---

---
url: "/security/privacy-and-data-access.md"
description: "Review support logging, Figma-file access, payment boundaries, optional connected workflows, deletion questions, and safe handling of license keys."
---

# Understand Hypermatic privacy and data access

> Review support logging, Figma-file access, payment boundaries, optional connected workflows, deletion questions, and safe handling of license keys.

Hypermatic support tools, Figma plugins, Gumroad, and optional integrations have different data boundaries.

| Surface | Access boundary |
| --- | --- |
| Support chat and docs search | General questions and logged support interactions; no Figma-file or Gumroad-account access |
| Hypermatic Figma plugins | Relevant content in the current Figma file while the plugin is running |
| Gumroad | Checkout, payments, receipts, and subscription management |
| Optional connected features | Depends on the plugin, feature, and service you choose |

## Support chat and documentation-search records

Hypermatic stores questions submitted to the Eva support chat, Eva's completed answers, and queries submitted through the documentation search and Ask AI interfaces. These records are used to review answer quality, identify missing documentation, and improve customer support.

Audit records use anonymous conversation identifiers and are automatically removed after 90 days. Before storage, the logging system redacts recognizable email addresses, card-like number strings, and long token or license-like values. Automated redaction cannot identify every kind of sensitive information, so do not submit license keys, payment details, passwords, private company information, or other credentials through chat or docs search.

The audit log records the page path and whether an answer came from a built-in support reply or Algolia. It does not give the support assistant access to Gumroad accounts, Figma files, payment data, or other private customer systems.

For account-specific help, email [adam@hypermatic.com](mailto:adam@hypermatic.com) privately.

## Private account data

The support chat answers general questions from public Hypermatic docs and product information. It does not access private customer data, payment details, invoices, Gumroad subscriptions, license keys, Figma files, or internal company data.

For account-specific help, email Adam privately with the product name and purchase email address.

## Support access to Figma files

The support chat does not open, view, inspect, or modify your Figma files. For a file-specific issue, email screenshots, exported files, or a minimal reproduction that does not include sensitive content.

Hypermatic Figma plugins can only work with the current Figma file while the plugin is running and only for the workflow you choose.

## Plugin access to the current Figma file

A Figma plugin can work with the current Figma file while it is running. Hypermatic plugins use the parts of the current file needed for the workflow you choose, such as selected frames, layers, images, text, or export settings.

The exact data used depends on the plugin and feature.

## Local and connected plugin workflows

No single statement applies to every feature in every plugin. Many export and generation workflows happen inside the Figma plugin and download files directly to your computer. Some optional features may connect to external services, such as official third-party APIs, hosted image upload workflows, or shareable output workflows.

Check the plugin-specific security page before making a security decision:

- [Bannerify Security](/bannerify/faq/security)
- [Commentful Security](/commentful/faq/security)
- [Convertify Security](/convertify/faq/security)
- [CopyDoc Security](/copydoc/faq/security)
- [Crypto Security](/crypto/faq/security)
- [Emailify Security](/emailify/faq/security)
- [Favvy Security](/favvy/faq/security)
- [HyperCrop Security](/hypercrop/faq/security)
- [Pitchdeck Security](/pitchdeck/faq/security)
- [Pixelay Security](/pixelay/faq/security)
- [TinyImage Security](/tinyimage/faq/security)
- [Weblify Security](/weblify/faq/security)

## Ask about deleting uploaded or hosted data

Start by checking the plugin-specific security page for the exact workflow you used. Some Hypermatic features keep everything local in Figma or download files straight to your computer, while some optional workflows may upload assets or create hosted outputs when you choose those features.

That means deletion questions need the exact plugin and workflow before anyone can answer responsibly. If you need help checking whether anything should be removed, email [adam@hypermatic.com](mailto:adam@hypermatic.com) with the plugin name, the feature you used, and any relevant link or asset details.

The support chat can link you to the public docs, but it cannot inspect private files, look up account records, or delete anything from your account.

## Keep credentials out of chat

Do not paste private license keys, card details, passwords, or internal credentials into chat.

If you need license help, email [adam@hypermatic.com](mailto:adam@hypermatic.com) privately with the product name and purchase email address. Only include the license key if it is necessary for support.

## Payment processing

Hypermatic uses Gumroad for online checkout and payment processing. Gumroad sends receipts, manages checkout, and provides membership management links.

For Gumroad checkout or receipt-account issues, contact [support@gumroad.com](mailto:support@gumroad.com). For Hypermatic license or product support, email [adam@hypermatic.com](mailto:adam@hypermatic.com).

## Custom security questionnaires

Hypermatic provides public security and privacy documentation. Custom vendor forms, custom procurement paperwork, and bank-transfer purchasing are not supported.

For review information, see [Vendor review information](/security/vendor-review).

---

---
url: "/security/vendor-review.md"
description: "Find the product, licensing, procurement, billing, privacy, security, and support information needed for a Hypermatic vendor review."
---

# Review Hypermatic as a software vendor

> Find the product, licensing, procurement, billing, privacy, security, and support information needed for a Hypermatic vendor review.

Use this page as a checklist when reviewing a Hypermatic Figma plugin before purchase.

1. Confirm the product and required seat count.
2. Review the shared privacy boundaries.
3. Review the selected plugin's security page.
4. Confirm the supported self-serve procurement model.
5. Generate a PDF quote if internal approval is required.

## Product and licensing summary

Hypermatic builds premium Figma plugins that automate repetitive design, production, developer handoff, and marketing workflows.

The plugins are sold as self-serve Pro licenses through online checkout. Licenses are seat-based, with one seat per Figma user.

## Procurement capabilities

Hypermatic supports:

- Online checkout through Gumroad
- PDF quote generation through [quote.hypermatic.com](https://quote.hypermatic.com/)
- PDF invoice generation from Gumroad receipts
- Seat-based subscriptions
- Monthly and yearly billing

Hypermatic does not support:

- Bank transfers
- Purchase order payment workflows
- Vendor onboarding forms
- Custom procurement paperwork
- Custom enterprise purchasing workflows

See [Procurement, PDF quotes, purchase orders, and vendor forms](/faq/procurement).

## Billing provider and support ownership

Gumroad handles checkout, payment processing, receipts, subscription management links, and many payment-account updates.

General Gumroad support: [support@gumroad.com](mailto:support@gumroad.com)

Hypermatic product and license support: [adam@hypermatic.com](mailto:adam@hypermatic.com)

## License and seat model

Each Pro license has a seat count. One seat is for one Figma user. The [Hypermatic License Manager](https://license.hypermatic.com/) lets customers manage which Figma users are linked to the license key.

See [How Hypermatic Pro licenses work](/faq/licenses) and [Managing seats](/faq/seats).

## Security review documents

Use these docs:

- [Security overview](/security)
- [Privacy and data access](/security/privacy-and-data-access)
- The plugin-specific security page for the product being reviewed

Plugin-specific security pages:

- [Bannerify Security](/bannerify/faq/security)
- [Commentful Security](/commentful/faq/security)
- [Convertify Security](/convertify/faq/security)
- [CopyDoc Security](/copydoc/faq/security)
- [Crypto Security](/crypto/faq/security)
- [Emailify Security](/emailify/faq/security)
- [Favvy Security](/favvy/faq/security)
- [HyperCrop Security](/hypercrop/faq/security)
- [Pitchdeck Security](/pitchdeck/faq/security)
- [Pixelay Security](/pixelay/faq/security)
- [TinyImage Security](/tinyimage/faq/security)
- [Weblify Security](/weblify/faq/security)

## Support channels

Use the support chat for general questions answered from public documentation. For account-specific Hypermatic help, email [adam@hypermatic.com](mailto:adam@hypermatic.com).

Use [adam@hypermatic.com](mailto:adam@hypermatic.com) for purchase verification, subscription changes, refunds, license-key retrieval, or other account-specific changes.

## Pricing and approval quotes

See [Hypermatic pricing and PDF quotes](/faq/pricing) for current monthly/yearly prices, seat calculations, checkout guidance, and PDF quote guidance.

---

---
url: "/snippets/installing-figma-plugins.md"
---

## Installing the {plugin} Figma Plugin

1. Open any Figma file.
2. Click on the **Actions** icon in the bottom Figma toolbar.
3. Click the **Plugins & Widgets** tab to filter results to Figma plugins.
4. Search for **{plugin}** in the search bar.
5. Click on the **{plugin}** search result.
6. Click the **Save** button to install the {plugin} plugin.

> **Note:** Figma users in a **Figma Organization** may only be able to install approved plugins. Please contact your Figma Org admin at your company to [approve the {plugin} plugin](https://help.figma.com/hc/en-us/articles/4404228724759-Manage-plugins-and-widgets-in-an-organization) if you're unable to install certain Figma plugins.

## Running the {plugin} Figma Plugin

Once you've [installed](#installing-the-figma-plugin) the **{plugin}** Figma plugin, to run the plugin in your Figma file:

  1. **Right-click** anywhere on your Figma file's page canvas
  2. Hover your mouse over the **Plugins** ▶ menu item
  3. Hover your mouse over the **Saved plugins** ▶ menu item
  4. Click on the **{plugin}** plugin menu item

> **Tip:** After you've run the **{plugin}** plugin once in a Figma file, you'll be able to quickly re-launch it by clicking the **{plugin}** icon in the right-hand side Figma column (under the **Plugin** subheading).

> **Warning:** Only Figma users with **Edit** access to a Figma file can run a Figma plugin in that Figma file; if you only have **View** permissions, you won't be able to run any Figma plugins in that file.

---

---
url: "/snippets/uninstalling-figma-plugins.md"
---

1. Open any Figma file.
2. Click on the **Actions** icon in the bottom Figma toolbar.
3. Click the **Plugins & Widgets** tab to filter results to Figma plugins.
4. Search for **{plugin}** in the search bar.
5. Click on the **{plugin}** search result.
6. Click the **Remove** button to uninstall the {plugin} plugin.

> **Note:** This will remove the plugin from your **Saved Plugins** list, however, the Figma plugin may still show up under your **Recents** list (if it has been recently run), as Figma saves this list of recent plugins in your browser's/app's local storage. The plugin will vanish from the Recents menu after other plugins are run to take its place.

---

---
url: "/support/contact-and-account-help.md"
description: "This page has moved to the General Support & FAQ section."
---

# Contact and account-specific help moved

> This page has moved to the General Support & FAQ section.

This page has moved to [Contact and account-specific help](/faq/contact-and-account-help).

---

---
url: "/tinyimage/animated-webp.md"
description: "Export animated WebP files from selected Figma layers using the same animation editor workflow as GIF exports in TinyImage."
---

# Creating animated WebP images from layers

> Export animated WebP files from selected Figma layers using the same animation editor workflow as GIF exports in TinyImage.

### Export animated WebP images from Figma

This video walks through how to export animated WebP images from your design's layers directly from Figma using the TinyImage plugin.
[Embedded media](https://www.youtube.com/embed/e8EfMxu0oog)

TinyImage supports exporting animations as animated `.webp` files using the same animation editor UI and workflow as the GIF exporter.

## Using the same animation editor as GIF exports

The animated WebP workflow uses the same frame selection, ordering, timing, transition, and preview controls as the GIF workflow.

To configure those shared controls, follow the GIF animation editor guide:

- [Create animated GIFs from layers](/tinyimage/gif)

## Exporting to animated WebP format

Once your animation preview is ready:

1. Open the export format dropdown in the animation toolbar.
2. Select **Animated WebP**.
3. Click **Export** to render your animated `.webp` file.

After rendering finishes, TinyImage will automatically download the exported animated WebP file to your computer.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

---

---
url: "/tinyimage/apng.md"
description: "Export animated PNG (APNG) files from selected Figma layers using the same animation editor workflow as GIF exports in TinyImage."
---

# Creating animated PNG (APNG) images from layers

> Export animated PNG (APNG) files from selected Figma layers using the same animation editor workflow as GIF exports in TinyImage.

### Export animated PNG (APNG) images from Figma

This video walks through how to export animated PNG (APNG) images from your design's layers directly from Figma using the TinyImage plugin.
[Embedded media](https://www.youtube.com/embed/_XHr54EMOaU)

TinyImage supports exporting animations as animated `.png` (APNG) files using the same animation editor UI and workflow as the GIF exporter.

## Using the same animation editor as GIF exports

The APNG workflow uses the same frame selection, ordering, timing, transition, and preview controls as the GIF workflow.

To configure those shared controls, follow the GIF animation editor guide:

- [Create animated GIFs from layers](/tinyimage/gif)

## Exporting to animated PNG (APNG) format

Once your animation preview is ready:

1. Open the export format dropdown in the animation toolbar.
2. Select **Animated PNG**.
3. Click **Export** to render your animated `.png` file.

After rendering finishes, TinyImage will automatically download the exported APNG file to your computer.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

---

---
url: "/tinyimage/compress.md"
description: "How to select export settings and compress Figma image exports with TinyImage."
---

# Compressing your Figma image exports

> How to select export settings and compress Figma image exports with TinyImage.

TinyImage works by detecting the export settings/formats you've set on any layers in your Figma page and lets you export them as compressed images using the TinyImage plugin.

For a comprehensive guide about the details of Figma export settings and how they work, please see the official [guide to exports in Figma](https://help.figma.com/hc/en-us/articles/360040028114-Guide-to-exports-in-Figma) in the Figma help docs.

> **Note:** **Any layers you want to compress require at least one export setting**. If a layer _doesn't_ contain any export settings, TinyImage won't know that you'd like to compress and export it, and it won't show up in the plugin's exportable images list.

## Adding and refreshing export settings

To get started with exporting compressed images from Figma, you'll first need to ensure you've set some image export settings on any layers you would like to compress.

### Adding export settings to Figma layers

[Video](/assets/videos/tinyimage/compress/export-settings.mp4)

To add export settings to a layer (or multiple layers), select the layer(s) in Figma, then in the Figma properties panel, click on the **+** icon next to **Export**. Clicking the **+** more than once will allow you to add as many export settings to that layer as you like. This means you can export a single layer to multiple formats and sizes at once (for example, SVG, JPG @1x, JPG @2x, PDF etc).

### Refreshing Figma layers after updating their export settings

[Video](/assets/videos/tinyimage/compress/refreshing-export-settings.mp4)

If you've already added exports settings to a layer, but would like to add or remove some while the TinyImage plugin is already running, you can do so as per the previous step; then, when you're happy with the new export settings on your layer, clicking the **Refresh** icon in the TinyImage toolbar will refresh your Figma layers and display the updated export options in the TinyImage exportable images list.

## Setting compression quality percentage or size target

TinyImage lets you specify the compression percentage of quality from **1%-100%**, or setting a **maximum file size target** (in kilobytes) for your image exports. Setting a lower number will result in smaller filesizes, but also lower image quality images. Setting a higher number will result in larger filesizes, but also higher quality images.

- **0%-50%** Low Quality (**72dpi** for PDFs)
- **50%-75%** Good Quality (**150dpi** for PDFs)
- **75%-100%** Best Quality (**300dpi** for PDFs)

### Adjusting the compression quality percentage level

[Video](/assets/videos/tinyimage/compress/global-compression.mp4)

You can set the quality level for all of your image exports from **1%-100%** by using the compression slider in the TinyImage toolbar. **Clicking/holding** and **dragging** the slider will allow you to specify your desired quality level. This setting will be applied to all of your TinyImage exports.

### Setting a maximum file size (kb) compression target

[Video](/assets/videos/tinyimage/compress/global-target.mp4)

You can also set a maximum target file size limit (in kilobytes), by enabling the **Size Target** toggle, and then entering a kilobyte value in the size input box. This will tell TinyImage to try and get each of your images underneath that maximum file size.

Note, this is often slower than using the quality percentage slider, as each image has to be progressively compressed to reach the desired limit.

> **Tip:** Prefer setting your TinyImage max file size via Figma instead of the UI? You can use Figma’s Export settings suffix on any exportable layer. Add an underscore followed by a number ending in kb (for example, _250kb), and TinyImage will use that value as the max size for that layer. Valid suffix examples: _250kb, @2x_500kb, @1x_300kb

> **Warning:** **Size targets don't apply to PDF or GIF exports**. Note that using the file size target compression option doesn't have an effect on PDF or GIF exports from TinyImage; it will only apply to JPG, PNG, SVG, AVIF and WebP images.

### Overriding compression quality/size levels per export

[Video](/assets/videos/tinyimage/compress/compression-overrides.mp4)

In addition to setting the quality level using the slider, TinyImage lets you specify different quality/size levels per image format, which overrides the _global_ value that is being set by the quality slider or the target size input in the plugin header.

To specify the quality for a certain image format, click on the quality **number input** next to the image you would like to update the quality for. You can enter any number between **1%-100%**, and this number will become the quality setting that your images is exported at.

If you're targeting a maximum file size, you can specify an override by clicking the KB **number input** next to the image you would like to update the target size for. You can enter any number between **1-9999** (KB), and this number will become the target file size setting that your images is exported at.

## Selecting images to compress

Once you've added export settings to the layers you would like to compress, you'll see them show up in the TinyImage exportable images list. However, you don't need to export every single image on your Figma page (if you don't want to) at the same time. TinyImage lets you select (and deselect) the exportable images you would like to compress by using checkboxes.

### Checking and unchecking exportable images

[Video](/assets/videos/tinyimage/compress/layer-selections.mp4)

To select (or deselect) an image for export, you can click on the checkbox next to the image thumbnail in the TinyImage exportable images list. Unchecking an image will exclude it from being compressed and exported, and conversely, checking it will include it in the export.

> **Tip:** **Quickly selecting/deselecting all layers**. To very quickly select or deselect all of your images in the list at the same time, you can click on the checkbox in the TinyImage toolbar, above the list of exportable images.

### Highlighting layers to filter image selection

[Video](/assets/videos/tinyimage/compress/filter-selection.mp4)

Another way to select the image(s) you would like to export is by highlighting them on your Figma page; this will automatically filter down your selection in the TinyImage exportable images list. Any highlighted layers that contain export settings will show up in the list, and any layers that haven't been highlighted will be excluded.

This is a great way to quickly make a selection of the layers you know you'd like to export without having to manually look for them in the list of _all_ exportable images.

### Refreshing image export settings to image selection

[Video](/assets/videos/tinyimage/compress/missing-selected-exports.mp4)

If you highlight a layer (or multiple layers) in Figma to filter down the selection, and one or more of those layers don't have any export settings yet, you can keep the layers selected; then in the Figma properties panel, click on the **+** icon next to **Export** to add one or more export settings to your selected layers.

When you're happy with the new export settings on your layer, click the **Refresh** icon in the TinyImage toolbar to refresh your Figma layers and display the updated export options for your highlighted layers in the TinyImage exportable images list.

## Exporting your compressed images

[Video](/assets/videos/tinyimage/compress/export-compressed.mp4)

Once you've selected the exportable images you would like to compress, you can click the **Export** in the TinyImage toolbar; this will begin the process of compressing your selected images one by one. You'll see a progress indicator showing which image is currently being compressed, along with file size savings after each compression has finished. Please wait for all of the images to finish compressing; the more the images you have, and the larger each of them are, the longer they will take.

> **Info:** **PNG/PDF compression speed**. Note that compressing **PNG** and **PDF** exports can take longer than **JPG** and **SVG** exports, especially if they're very detailed or have large dimensions. TinyImage will warn you if an image is too large to compress.

### Saving the exported zip file

After all of the images have been processed, you'll see a confirmation notification letting you know that your images have been compressed, and the your `.zip` file download will automatically be triggered.

> **Note:** **Single Image Exports** If you're only exporting a single compressed image, TinyImage won't zip that image into a `.zip` file; you'll be able to save the single image file to your computer, as is.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

### Opening the exported zip file

[Video](/assets/videos/tinyimage/compress/opening-zip.mp4)

After the `.zip` file has been saved from Figma to your computer, you can open your file explorer to the directory where it was saved. **Double clicking** on the exported `.zip` file will unzip the contents and let you to use all of your compressed images.

## Related TinyImage guides

- Create and export motion assets with the [TinyImage GIF export guide](/tinyimage/gif-export).
- Combine and compress frames with the [TinyImage PDF export guide](/tinyimage/pdf-export).
- Explore the [TinyImage Figma plugin](https://www.hypermatic.com/tinyimage/) for compressed image, GIF, WebP, and PDF workflows.

---

---
url: "/tinyimage/downsize.md"
description: "Use the Downsizer to resize large image fills to layer size for smaller, faster Figma files."
---

# Downsizing your Figma layer fills

> Use the Downsizer to resize large image fills to layer size for smaller, faster Figma files.

TinyImage includes a **Downsizer** feature which lets you automatically resize (and lightly compress) any Figma image fills on your layers to their actual layer size. This is useful if you've originally imported high resolution images to your Figma file, but then shrunk the layer dimensions down to be much smaller (with the original large image file still being used).

One common case of this would be adding a large image from Unsplash (or another stock photo site/plugin), the resizing that layer to be used as a much smaller "card" or "avatar" image. This can cause the performance of your Figma file to slow down; so using something like this downsizer feature will help save file size and improve page performance in your Figma file.

## Using the Downsizer feature to optimise image fills on your page

[Video](/assets/videos/tinyimage/compress/fills-downsizer.mp4)

To get started with downsizing your Figma fills, you can click on the **Downsizer** button in the TinyImage header.

If you didn't have any layers selected when opening the downsizer feature, it will automatically scan every layer on the current page in your Figma file for any that contain image fills.

> **Tip:** **Selecting certain layers to load**. If you're running the downsizer feature in a Figma page that contains many images, it may take a while to load. You can ease this load time by optionally pre-selecting the layers you'd like to search for image fills to downsize _before_ clicking the **Downsizer** button, this will ensure the plugin only loads fills from any layers and child layers from the Figma layers you've selected.

### Selecting the image fills to downsize

Once the image fills have loaded, you can select which you would like to downsize by checking/unchecking them in the list. You can also quickly narrow down the images included in the list by clicking them in your Figma page.

If you're unsure which fill relates to which layer, you can click on the **Image** icon button in the list, which will instantly zoom and scroll to that layer on your Figma page.

### Downsize your fills

When you're happy with your fill selection, you can toggle the resolution that you would like your Figma image fills to be downsized to; by default this is set to **@2x**, which means your image fills will be proportionally downsized to be exactly twice the size of the Figma layer that they're being used in. You can toggle this down to **@1x**, which will resize the image fills to be exactly the same size as their Figma layer, but won't be as sharp as the @2x option.

When you're ready, click on the **Downsize Figma Image Fills** button to start the downsize process. TinyImage will automatically detect if an image needs to be downscaled or not; any that require downsizing will be resized (and lightly compressed), then automatically replaced in your Figma layers. Once every image has been processed, you'll be able to see the total amount of size you've saved in your Figma file.

> **Note:** **Undoing image downsizing in Figma**. If you've used the Downsizer function accidentally, or selected some image fills by mistake, you can use the normal **Undo** function in Figma to rollback the image fill updates to your original image fills. Alternatively, if you need to go further back, you can use the **File** -> **Show Version History** in Figma to roll-back your file to a previous version.

---

---
url: "/tinyimage/faq/plans.md"
description: "To get unlimited usage of all of the TinyImage Pro features, you will need to purchase a license from the [Hypermatic website](https://hypermatic.com/tinyimage#pro)."
---

# TinyImage Free vs TinyImage Pro

> To get unlimited usage of all of the TinyImage Pro features, you will need to purchase a license from the [Hypermatic website](https://hypermatic.com/tinyimage#pro).

TinyImage includes 10 free trials of the _Pro_ version. Once these trials have been used up, the Figma plugin will revert to their _Free_ version, which will have limited functionality.

  - **TinyImage Free**: ### Figma Layer Downsizes Unlimited Usage       ### Image Compressions Try during 10 Pro Trials       ### GIF/MP4 Exports Try during 10 Pro Trials       ### PDF Exports Try during 10 Pro Trials
  - **TinyImage Pro**: ### Figma Layer Downsizes Unlimited Usage       ### Image Compressions Unlimited Usage       ### GIF/MP4 Exports Unlimited Usage       ### PDF Exports Unlimited Usage

---

---
url: "/tinyimage/faq/security.md"
description: "TinyImage runs as an official plugin inside of Figma's own app, which are reviewed and approved by the Figma team."
---

# TinyImage Security

> TinyImage runs as an official plugin inside of Figma's own app, which are reviewed and approved by the Figma team.

The Figma plugin is run directly from Figma's own servers, and runs inside of a your Figma file, which means that it inherits all of the [security](https://www.figma.com/security/) and infrastructure of the Figma platform, which exceed industry standards for data protection and security:

- SOC 2 Type 2
- SOC 3
- Cloud Security Alliance (CSA) STAR: Level 1
- ISO/IEC 27001:2013
- ISO/IEC 27018:2019
- EU Cloud Code of Conduct (COC): Level 2

There's **no additional software** that needs to be installed to use the Figma plugin, as Figma plugins run as a built-in part of Figma's own native functionality, and all Figma plugins Accessibile and can be instantly run from inside any Figma file, or via the official [Figma Community](https://www.figma.com/community) ecosystem inside of the Figma app.

If your organization is already approved to use Figma, then you _already have access_ to Figma plugins.

## How TinyImage works

The [TinyImage Figma plugin](https://www.figma.com/community/plugin/789009980664807964) helps users Export compressed images from their Figma layers.

TinyImage is designed to be privacy and security focused, so nothing _ever_ leaves your Figma file.

All functionality, compression and file exports are handled client-side directly in the Figma plugin using the [Figma Plugins API](https://www.figma.com/plugin-docs/), and are _never_ uploaded, processed or stored anywhere in the cloud or outside of Figma.

## What TinyImage does and doesn't do

TinyImage uses the [Figma Plugins API](https://www.figma.com/plugin-docs/) to help users compress their images, and download them _directly_ to their computer.

TinyImage doesn't rely on _any_ external servers to handle compressing image data, which means that nothing in your Figma file ever leaves the Figma plugin or Figma itself.

Any files that are exported via the plugin are done so entirely locally to the user's own computer.

### TinyImage does

- Allow users to compress their JPG/PNG/SVG layers from Figma.
- Allow users to create animated GIF files from their Figma layers.
- Allow users to generate PDFs from their Figma frames.
- Allow users to downsize the image layer fills in their Figma page.
- Download any exported files _directly_ to the user's computer.

### TinyImage does _not_

- Upload _any_ data from your Figma file.
- Store _any_ data from your Figma file.
- Use _any_ servers or cloud storage to process or store your Figma data.
- Collect or store _any_ personal information (Figma plugins *cannot* access any private information about Figma projects, Figma teams or Figma users).

## How Figma plugins work

Figma plugins are written in HTML/CSS/Javascript, and are run in a tightly controlled [sandbox environment](https://www.figma.com/plugin-docs/how-plugins-run/) inside of the main Figma application.

Figma plugins can only do whatever Figma allows them to do inside the permissions of the [Figma Plugins API](https://www.figma.com/plugin-docs/), and importantly, **plugins don't have any access to personal information** about the Figma user running the plugin.

## What Figma plugins can and can't do

As per the article on [Figma plugin security](https://www.figma.com/blog/how-we-built-the-figma-plugin-system/), there are a limited number of things that Figma plugins can do, and many more things that they can't do:

### Figma plugins can

- Only be run by an explicit user action
- Show UI in a single plugin-specific dialog
- Read any data in your Figma document (for example, a “find layer by name” plugin)
- Modify any data in your Figma document (for example, a “rename selected layers” plugin)
- Communicate with any server over the internet (for example, an “import from service X” plugin)

### Figma plugins _cannot_

- Run by themselves
- Get information about the project or team that owns the file
- Access anything when they aren’t running
- Access data from any files other than the file they were run in
- Change Figma’s UI outside of the plugin UI dialog

> **Tip:** Figma account administrators at your company can [configure an allowlist of plugins](https://help.figma.com/hc/en-us/articles/4404228724759-Manage-plugins-and-widgets-in-an-organization) that are allowed inside the organization. This can be used to prevent untrusted Figma plugins from being run in any file in that organization.

---

---
url: "/tinyimage/faq/troubleshooting.md"
description: "Troubleshooting guide for TinyImage covering export issues, PDFs, GIFs, and known limitations."
---

# Troubleshooting TinyImage

> Troubleshooting guide for TinyImage covering export issues, PDFs, GIFs, and known limitations.

### Layers must have export settings to be compressed

TinyImage works by detecting the export settings/formats you've set on any layers in your Figma page and lets you export them as compressed images using the TinyImage plugin. For more details about the fundamentals of Figma export settings and how they work, please see the official Figma [guide to exports in Figma](https://help.figma.com/hc/en-us/articles/360040028114-Guide-to-exports-in-Figma). Please ensure you've added export settings (by clicking **Export +** in the right hand Figma column) to any layers you would like to compress, otherwise they won't show up when you open TinyImage, just like the standard Figma exports work.

### PNGs and PDFs take longer to compress

Compressing PNG and PDF exports can take a bit longer than JPG and SVG exports, especially if they're very detailed or have large dimensions. TinyImage will warn you if an image is too large to compress.

### Colors/gradients in GIFs look a bit grainy

GIFs are a bit different from normal JPG/PNG images, as they can only contain a maximum of 256 colors. If you're using highly detailed images or gradients with lots of color variation, it's expected that it won't look as sharp or have the same color accuracy as the original images used as the source of the GIF due to this limitation of the GIF format.

### Some elements are missing and turning into purple rectangles when exporting PDF from Figma

This is a known [Figma bug](https://forum.figma.com/t/pdf-export-consistently-missing-elements/3547) that can show purple boxes instead of images. TinyImage uses Figma's native PDF export, so the same problem can appear in TinyImage exports.

One suggestion that can help is to ensure the problematic layer is actually nested _inside_ of the main Figma frame, as sometimes a Figma layer is "visually" positioned on top of your frame on the canvas, but the layer itself is still sitting outside of the frame; this seems to be related to why the problem occurs sometimes.

### Transparency isn't showing in GIFs

The GIF file format supports either 0% opacity or 100% opacity, but nothing in between. This means that you can have an animated GIF with a completely transparent background behind elements that are completely opaque and visible. This means that layers either need to be completely transparent or not; any layers with lower than 50% opacity will be transparent, while any layers with opacity greater than 50% will be opaque.

### Initial 'refreshing/loading exportable layers' taking a while to finish loading

Unfortunately, this is a known issue that's caused by a Figma update that shipped recently where it now requires every image on the current page to finish loading before a plugin can use/export any image (even if it's just one). Due to that new behavior, it tends to happen more in larger Figma files, if the plugin is run soon after it has been opened, before all the images have had a chance to load. The two options here are to wait a bit longer for the images to finish loading in the Figma file, or if you only need to export a few layers and the page is huge, copying those selected layers into a new Figma page and re-running TinyImage there will be much faster.

### Images exported 1px bigger/smaller than their size in Figma

There's a strange bug in Figma related to using "sub-pixels" in your frames/image properties, which can cause your exported images to be "rounded" up or down to a different size. The solution to this is to ensure that the frame or parent frame (artboard) that you're exporting doesn't contain any sub-pixel values (for example, 1000.08) by removing them from the property (for example, 1000). This should export the image in the dimensions you expected. For more details, there's [a thread on the Figma forums](https://spectrum.chat/figma/general/wrong-size-when-export-png~35016cd4-85c2-45fd-9446-cd0648a6cb7d) discussing the issue.

### Blank file extensions using Figma desktop app on Windows

There's a known issue with the Figma desktop app (only on Windows), which also happens for normal file exports from Figma. When you go to save your file, you may see an "all files" label. If you ignore this and continue by clicking "Save", it should still save the file with the correct extension and allow you to open it as expected after it has downloaded to your computer. If it still saves the file with a blank extension, you should be able to rename the file to manually append the correct extension to the file name.

### Slow PDF exports

If your PDF exports are going really slow, it's likely due to having high-res/large image fills in some of the content, which causes Figma to take a much longer time generating PDFs. To help with this issue, you can use the ["Downsizer" feature](/tinyimage/downsize) in [TinyImage](https://www.figma.com/community/plugin/789009980664807964/TinyImage-Compressor) to shrink down your image fills to match their layer size, which will shrink their file size and ensure they load much faster in your Figma file. Once you've finished downsizing the image fills in your Figma page, re-running TinyImage and exporting your PDF again via the plugin should be much faster.

### Safari isn't supported

Due to browser compatibility issues, **TinyImage** _isn't_ supported in **Safari**. Please run the plugin in another browser (like [Chrome](https://www.google.com/intl/en_us/chrome/)) or the [Figma Desktop App](https://www.figma.com/downloads/) instead.

### Thin white line around image exports

Occasionally some images will contain a faint, thin white line around the edges. Figma [does this](https://twitter.com/Skcrub/status/1255544876701270017) if a layer isn't positioned on a rounded pixel value (for example, Y: 156.76 or X: 56.3) will automatically result in this sub-pixel line getting included in the export. To resolve the issue, please ensure that your layer positions are all rounded pixel values.

### Pixelated image exports

If you're exporting your images or a PDF while the image assets in Figma are still progressively loading, they may be exported looking pixelated, as the image wasn't fully loaded in the Figma file before it was exported. To resolve this, please ensure that all of the images have loaded 100% and are looking sharp inside the Figma file before exporting your images or PDFs with the TinyImage plugin. To help further with solving this issue, you can use the ["Downsizer" feature](/tinyimage/downsize) to shrink down your image fills to match their layer size, which will shrink their file size and ensure they load much faster in your Figma file.

### Editing PDFs in Adobe Acrobat shows dotted lines

This can be resolved by un-checking the "Show bounding boxes" toggle in the Acrobat Acrobat app sidebar while editing your PDF. Showing the dotted bounding box lines is something that [Adobe enables by default](https://archive.md/Uhdbk) while enter "Edit" mode when you have a PDF open in the app, but turning off the "Show bounding boxes" toggle will turn hide those from being displayed with one click.

### Tiled images not rendering in PDF exports

There's currently a bug where some "Tile" image fills won't be included in compressed PDFs; the workaround is currently changing the fill in Figma to either "Fit" or "Fill".

### VPN may be required in China

Note, if you're in China, the accounts server _may_ be blocked by "The Great Firewall of China". If you're seeing an activation error, despite using a valid key, you will likely need to use a [VPN](https://protonvpn.com/free-vpn/) to resolve the issue.

### 'An error occurred while loading the plugin environment'

This may happen in the Figma desktop app if [the Use Developer VM](https://www.figma.com/plugin-docs/debugging/#developer-vm) debug setting in Figma is enabled by mistake; you can make sure it's turned off by **right-clicking** anywhere on your Figma canvas, hovering over **Plugins**, then hovering over **Development**, and making sure that the **Use Developer VM** is _unchecked_; after it is unchecked (and does _not_ have a tick icon next to it), re-running the Figma plugin should work as expected.

---

---
url: "/tinyimage/fills.md"
description: "Export original image files from Figma layer fills using TinyImage."
---

# Exporting the original image files from Figma layer fills

> Export original image files from Figma layer fills using TinyImage.

Along with "downsizing" your Figma image fills, you can also optionally export the existing image fills; this will automatically download all of the original image files being used inside of your layer image fills (and will _not_ downsize them in Figma).

[Video](/assets/videos/tinyimage/compress/fills-export.mp4)

To get started with exporting your original images from your Figma layer image fills, you can click on the **Downsizer** button in the TinyImage header.

If you didn't have any layers selected when opening the downsizer feature, it will automatically scan every layer on the current page in your Figma file for any that contain image fills.

> **Note:** **Selecting certain layers to load**. If you're running the downsizer feature in a Figma page that contains many images, it may take a while to load. You can ease this load time by optionally pre-selecting the layers you'd like to search for image fills to export _before_ clicking the **Downsizer** button, this will ensure the plugin only loads fills from any layers and child layers from the Figma layers you've selected.

## Selecting the image fills to export

Once the image fills have loaded, you can select which you would like to export by checking/unchecking them in the list. You can also quickly narrow down the images included in the list by clicking them in your Figma page.

If you're unsure which fill relates to which layer, you can click on the **Image** icon button in the list, which will instantly zoom and scroll to that layer on your Figma page.

## Export your fills

When you're ready, click on the **Export Figma Image Fills** button to start the export process. TinyImage will automatically download the original image files being used for each image fill you've selected. Once every image has been downloaded, you'll be able to download them all as a `.zip` file, which you can unzip anywhere on your computer to view all of your exported image files.

---

---
url: "/tinyimage/gif-editing.md"
description: "Resize, rotate, flip, crop, trim, retime, and optimize an existing animated GIF with TinyImage."
---

# Edit an existing GIF

> Resize, rotate, flip, crop, trim, retime, and optimize an existing animated GIF with TinyImage.

Use **GIF Editor** in TinyImage's **GIF** tab to change an existing animated GIF without rebuilding it from separate Figma layers.

## Load a GIF

In Figma Design, select one of the following:

- A layer that contains an animated GIF fill.
- A frame that contains one or more GIF layers at any nesting level.

Choose **Use selected GIF layer**. You can also choose **Choose file from computer** to load a local GIF.

When you load a frame, TinyImage bakes the frame's visible layer stack into every animation frame. This includes content, masks, effects, and other layers above or below the nested GIF layers. The original Figma frame and its layers are not changed.

If the frame contains multiple GIFs, TinyImage synchronizes their frame changes into one editable timeline. For stability, a combined frame animation can be up to two minutes long and contain up to 500 combined frames.

Select **Reset edits** at any time to return to the originally loaded GIF.

TinyImage warns you before replacing a GIF that has changes you have not exported. Large GIFs also show a processing warning. GIFs can contain up to 2,000 frames, use dimensions up to 8,192 px, and have a source file size up to 100 MB.

## Resize and transform the animation

Enter an output width or height and keep **Lock ratio** enabled to preserve the original proportions. Select **Apply size** to resize every frame.

The transform controls can:

- Rotate every frame 90 degrees to the left or right.
- Flip every frame horizontally or vertically.
- Crop every frame using a visual selection or exact X, Y, width, and height values.

## Trim and retime the GIF

Use the timeline handles to choose the first and last frame to keep. You can also set a delay in milliseconds for individual frames and choose how many times the animation should play.

## Configure the output

Choose the maximum number of colors before exporting. A smaller palette can reduce the file size, but may introduce visible color banding in gradients or detailed artwork.

Review the playback preview after each change, then select **Export GIF** or **Add to Figma**. TinyImage shows per-frame export progress, and you can cancel before the next frame is processed.

---

---
url: "/tinyimage/gif-export.md"
description: "Render and download final animated GIF files from TinyImage after frame processing is complete."
---

# Exporting GIF Files

> Render and download final animated GIF files from TinyImage after frame processing is complete.

### Video Tutorial: Create animated GIFs

This video walks through how to animate and export GIFs from your own designs directly from Figma using the TinyImage plugin.
[Embedded media](https://www.youtube.com/embed/FYlk5a69Ewc)
### Video Tutorial: Add transition effects to animated GIF exports in Figma

This video walks through how to add fade/slide/wipe transition effects to animated GIF exports in Figma using the TinyImage plugin.
[Embedded media](https://www.youtube.com/embed/GwfVWRAS1qk)

[Video](/assets/videos/tinyimage/compress/gif-export.mp4)

When your animation preview is ready:

1. Click **Export GIF** in the toolbar.
2. TinyImage will process frames and render the final file.
3. The `.gif` file download will start automatically when rendering is complete.

> **Info:** Exports with many frames or large dimensions can take longer to finish rendering.

---

---
url: "/tinyimage/gif-layers.md"
description: "Select Figma layers as GIF animation frames and refresh the active frame set in TinyImage."
---

# Selecting and Refreshing GIF Layers

> Select Figma layers as GIF animation frames and refresh the active frame set in TinyImage.

### Video Tutorial: Create animated GIFs

This video walks through how to animate and export GIFs from your own designs directly from Figma using the TinyImage plugin.
[Embedded media](https://www.youtube.com/embed/FYlk5a69Ewc)
### Video Tutorial: Add transition effects to animated GIF exports in Figma

This video walks through how to add fade/slide/wipe transition effects to animated GIF exports in Figma using the TinyImage plugin.
[Embedded media](https://www.youtube.com/embed/GwfVWRAS1qk)

The GIF feature in TinyImage works by taking selected layers in your Figma page and using each layer as an individual frame in the animation.

## Selecting Layers to Use as Frames

[Video](/assets/videos/tinyimage/compress/gif-selection.mp4)

To get started creating a GIF:

1. Open the **GIF** tab and select **Create a GIF/MP4**.
2. Select layers in your Figma page to use as animation frames.
3. Click **Use Selected Layers** to load them into the preview.

> **Note:** You can pre-select layers before opening **Create a GIF/MP4** and TinyImage will load them automatically.

## Refreshing Selected Layers

[Video](/assets/videos/tinyimage/compress/gif-refreshing.mp4)

If you want to replace the current frame set:

1. Select a new set of layers in Figma.
2. Click **Refresh** next to the **Selected Layers** label in the GIF toolbar.

TinyImage will reload the preview using the new selection.

---

---
url: "/tinyimage/gif-ordering.md"
description: "Control GIF frame order using custom sorting, Figma layer order, visual row/column sorting, and layer names."
---

# Ordering GIF Frames

> Control GIF frame order using custom sorting, Figma layer order, visual row/column sorting, and layer names.

### Video Tutorial: Create animated GIFs

This video walks through how to animate and export GIFs from your own designs directly from Figma using the TinyImage plugin.
[Embedded media](https://www.youtube.com/embed/FYlk5a69Ewc)
### Video Tutorial: Add transition effects to animated GIF exports in Figma

This video walks through how to add fade/slide/wipe transition effects to animated GIF exports in Figma using the TinyImage plugin.
[Embedded media](https://www.youtube.com/embed/GwfVWRAS1qk)

[Video](/assets/videos/tinyimage/compress/gif-ordering.mp4)

TinyImage includes multiple sorting options for GIF frame ordering.

## Sort Frames by Custom Order

Drag and drop any thumbnail left or right to set a manual frame order.

> **Note:** Your custom ordering is saved and can be restored by selecting **Sort frames by Custom Order**.

## Sort Frames by Figma Layer Order

Use **Sort frames by Figma Layer Order** to match the order in your Figma layer list.

## Sort Frames Visually by Columns

Use **Sort frames visually by Columns** to sort by visual position column-first.

## Sort Frames Visually by Rows

Use **Sort frames visually by Rows** to sort by visual position row-first.

## Sort Frames by Figma Layer Name

Use **Sort frames by Figma Layer Name** to sort alphabetically by layer names.

---

---
url: "/tinyimage/gif-settings.md"
description: "Configure dimensions, fit mode, background, quality, global palette, and dithering for GIF exports."
---

# GIF Export Settings

> Configure dimensions, fit mode, background, quality, global palette, and dithering for GIF exports.

### Video Tutorial: Create animated GIFs

This video walks through how to animate and export GIFs from your own designs directly from Figma using the TinyImage plugin.
[Embedded media](https://www.youtube.com/embed/FYlk5a69Ewc)
### Video Tutorial: Add transition effects to animated GIF exports in Figma

This video walks through how to add fade/slide/wipe transition effects to animated GIF exports in Figma using the TinyImage plugin.
[Embedded media](https://www.youtube.com/embed/GwfVWRAS1qk)

[Video](/assets/videos/tinyimage/compress/gif-settings.mp4)

## Set Dimensions

By default, GIF dimensions match the first frame. You can override **width** and **height** manually.

## Set Scale

Use the **scale** dropdown to export at scaled sizes (for example `@2x` or `@0.5x`).

## Choose Image Fit

Choose between:

- **Cover Images**
- **Contain Images** (default)

## Set Background Color

Set a solid background using a HEX color value.

> **Tip:** If your input frames include transparency, enable **Transparent Background** when you need a transparent GIF.

## Configure Compression and Quality

Use the quality slider (`1-100`) to control lossy compression.

> **Note:** Enable **Lossless** if you want GIF compression without quality loss.

## Configure Global Color Palette

Enable **All frames have the same color palette** to reuse frame-one palette across all frames.

> **Warning:** Use this only when needed for artifact/banding fixes. It can cause color issues when later frames use colors not present in the first frame.

## Choose Image Dithering

Choose a dithering algorithm from the **Image Dithering** dropdown.

---

---
url: "/tinyimage/gif-timing.md"
description: "Configure frame delays, loop counts, and preview playback controls for animated GIF exports."
---

# GIF Timing and Playback Controls

> Configure frame delays, loop counts, and preview playback controls for animated GIF exports.

### Video Tutorial: Create animated GIFs

This video walks through how to animate and export GIFs from your own designs directly from Figma using the TinyImage plugin.
[Embedded media](https://www.youtube.com/embed/FYlk5a69Ewc)
### Video Tutorial: Add transition effects to animated GIF exports in Figma

This video walks through how to add fade/slide/wipe transition effects to animated GIF exports in Figma using the TinyImage plugin.
[Embedded media](https://www.youtube.com/embed/GwfVWRAS1qk)

## Set Delay for All Frames

[Video](/assets/videos/tinyimage/compress/gif-adjust-speeds.mp4)

Use the **delay** slider to set frame delay in milliseconds for all frames.

## Override Delay per Frame

[Video](/assets/videos/tinyimage/compress/gif-overrides.mp4)

Use the delay number input under any frame thumbnail to override delay for that frame only.

## Set Play Count

[Video](/assets/videos/tinyimage/compress/gif-repeat.mp4)

To control loop count:

1. Disable the **Infinite** toggle.
2. Enter the number of play-throughs.

> **Note:** Enable **Infinite** if you want the GIF to loop forever.

## Control Preview Playback

[Video](/assets/videos/tinyimage/compress/gif-controls.mp4)

Preview controls let you:

- Play/pause preview playback.
- Move to previous/next frame (when paused).
- Restart from frame one.

---

---
url: "/tinyimage/gif-transitions.md"
description: "Add and configure transition effects between GIF frames, including speed and transparency limitations."
---

# GIF Frame Transitions

> Add and configure transition effects between GIF frames, including speed and transparency limitations.

### Video Tutorial: Add transition effects to animated GIF exports in Figma

This video walks through how to add fade/slide/wipe transition effects to animated GIF exports in Figma using the TinyImage plugin.
[Embedded media](https://www.youtube.com/embed/GwfVWRAS1qk)

[Video](/assets/videos/tinyimage/compress/gif-transitions.mp4)

By default, frames switch instantly. You can choose a transition type:

- Instant
- Fade
- Slide left
- Slide right
- Slide up
- Slide down
- Wipe right
- Wipe down

## Transition Speed

Use **Transition Speed** to set effect duration from `200ms` to `1000ms`.

> **Info:** Longer transition speeds increase the rendered frame count and can increase file size.

## Transparent Background Limitation

> **Warning:** When **Transparent Background** is enabled, **Fade** and **Wipe** transitions are not available.

---

---
url: "/tinyimage/gif.md"
description: "Create animated GIFs from selected Figma layers with ordering, timing, and export settings."
---

# Creating animated GIFs from layers

> Create animated GIFs from selected Figma layers with ordering, timing, and export settings.

### Video Tutorial: Create animated GIFs

This video walks through how to animate and export GIFs from your own designs directly from Figma using the TinyImage plugin.
[Embedded media](https://www.youtube.com/embed/FYlk5a69Ewc)
### Video Tutorial: Add transition effects to animated GIF exports in Figma

This video walks through how to add fade/slide/wipe transition effects to animated GIF exports in Figma using the TinyImage plugin.
[Embedded media](https://www.youtube.com/embed/GwfVWRAS1qk)

Open the **GIF** tab and select **Create a GIF/MP4** to animate and export GIF or MP4 files from selected Figma layers.

## Edit an existing GIF

Open the **GIF** tab and select **GIF Editor**. Select one Figma layer with an animated GIF fill to enable **Use selected GIF layer**, or choose **Choose file from computer** to load a GIF from your device.

### Crop an existing GIF

After loading a GIF, select **Crop**. Draw or resize the crop area in the preview, or enter exact X, Y, width, and height values. You can move the selected area with the arrow keys for smaller adjustments.

Select **Apply crop** to crop every frame in the animation. Review the updated preview before exporting the edited GIF.

## Get started with creating GIFs in Figma

Use the pages below to configure each part of your GIF creation workflow:

  - [Select and Refresh GIF Frames](/tinyimage/gif-layers.md): Select Figma layers to use as frames and refresh the frame set at any time
  - [Order GIF Frames](/tinyimage/gif-ordering.md): Sort frames by custom order, layer order, rows, columns, or layer names
  - [Configure GIF Timing and Playback](/tinyimage/gif-timing.md): Control frame delays, loop counts, and preview playback interactions
  - [Add GIF Frame Transitions](/tinyimage/gif-transitions.md): Apply and fine-tune fade, slide, and wipe transitions between frames
  - [Set GIF Export Options](/tinyimage/gif-settings.md): Configure dimensions, fit, quality, color palette handling, and dithering
  - [Export and Download GIF Files](/tinyimage/gif-export.md): Render the final GIF and download it once processing is complete
  - [Edit an Existing GIF](/tinyimage/gif-editing.md): Resize, transform, crop, trim, retime, and optimize an existing GIF

---

---
url: "/tinyimage/logos.md"
description: "Package selected Figma logo artwork into named color and file-format variants with TinyImage."
---

# Export a logo package

> Package selected Figma logo artwork into named color and file-format variants with TinyImage.

The **Logos** tab creates a ZIP containing the logo variants you want to hand off.

## Prepare the package

1. Select one or more logo frames, groups, components, instances, or vectors in Figma.
2. Open **Logos**. TinyImage reads the current selection automatically.
3. Give each selected lockup a delivery name.
4. Enter the client or package name.
5. Configure the filename pattern, folder structure, and separator.

Filename patterns can use `{client}`, `{lockup}`, `{color}`, and `{size}` tokens.

## Choose the outputs

Select the color schemes and file formats to include. For PNG and JPG output, enter the required scales and optional padding. You can also:

- Add custom single-color schemes using a label and hex color.
- Remove container backgrounds before export.
- Organize files using the selected folder structure.

When the package is ready, select **Export ZIP**. TinyImage validates the settings, generates every selected variant, and prepares the ZIP for download directly from the Logos tab.

If you change the Figma selection while Logos is open, TinyImage refreshes the selected artwork automatically. Validation messages identify every setting that needs attention before export. Large packages show progress and can be cancelled between export steps.

> **Info:** Logo packages use RGB output. Figma cannot generate native AI or EPS files, or true CMYK vector artwork.

---

---
url: "/tinyimage/overview/install.md"
description: "Ensure you're logged into your Figma account, then follow the steps below to install and run the [TinyImage Figma Plugin](https://www.figma.com/community/plugin/789009980664807964/tinyimage-compressor)."
---

# Install and run the TinyImage Figma Plugin

> Ensure you're logged into your Figma account, then follow the steps below to install and run the [TinyImage Figma Plugin](https://www.figma.com/community/plugin/789009980664807964/tinyimage-compressor).

### Video Tutorial: How to install (and remove) Figma plugins

This video tutorial is a complete step-by-step guide showing you the new process of how to install (and remove) Figma plugins after the mid-2024 "UI3" update to the Figma app
[Embedded media](https://www.youtube.com/embed/CzjxF2Jv6PM)

## Installing the TinyImage Figma Plugin

1. Open any Figma file.
2. Click on the **Actions** icon in the bottom Figma toolbar.
3. Click the **Plugins & Widgets** tab to filter results to Figma plugins.
4. Search for **TinyImage** in the search bar.
5. Click on the **TinyImage** search result.
6. Click the **Save** button to install the TinyImage plugin.

> **Note:** Figma users in a **Figma Organization** may only be able to install approved plugins. Please contact your Figma Org admin at your company to [approve the TinyImage plugin](https://help.figma.com/hc/en-us/articles/4404228724759-Manage-plugins-and-widgets-in-an-organization) if you're unable to install certain Figma plugins.

## Running the TinyImage Figma Plugin

Once you've [installed](#installing-the-figma-plugin) the **TinyImage** Figma plugin, to run the plugin in your Figma file:

  1. **Right-click** anywhere on your Figma file's page canvas
  2. Hover your mouse over the **Plugins** ▶ menu item
  3. Hover your mouse over the **Saved plugins** ▶ menu item
  4. Click on the **TinyImage** plugin menu item

> **Tip:** After you've run the **TinyImage** plugin once in a Figma file, you'll be able to quickly re-launch it by clicking the **TinyImage** icon in the right-hand side Figma column (under the **Plugin** subheading).

> **Warning:** Only Figma users with **Edit** access to a Figma file can run a Figma plugin in that Figma file; if you only have **View** permissions, you won't be able to run any Figma plugins in that file.

## Uninstalling the TinyImage Figma plugin

1. Open any Figma file.
2. Click on the **Actions** icon in the bottom Figma toolbar.
3. Click the **Plugins & Widgets** tab to filter results to Figma plugins.
4. Search for **TinyImage** in the search bar.
5. Click on the **TinyImage** search result.
6. Click the **Remove** button to uninstall the TinyImage plugin.

> **Note:** This will remove the plugin from your **Saved Plugins** list, however, the Figma plugin may still show up under your **Recents** list (if it has been recently run), as Figma saves this list of recent plugins in your browser's/app's local storage. The plugin will vanish from the Recents menu after other plugins are run to take its place.

---

---
url: "/tinyimage/overview/pro.md"
description: "After trying out all the Pro features of TinyImage **10 times**, you can optionally upgrade to continue using all the extra features that are only available in the Pro version; or if you're a casual user, you can continue using the Free version forever."
---

# Activating TinyImage Pro

> After trying out all the Pro features of TinyImage **10 times**, you can optionally upgrade to continue using all the extra features that are only available in the Pro version; or if you're a casual user, you can continue using the Free version forever.

> **Tip:** Need a TinyImage Pro account? You can purchase a Pro account for you or your team by visiting the [TinyImage](https://www.hypermatic.com/tinyimage/#pro) product page on the Hypermatic website.

## Activating the Figma plugin with an TinyImage Pro license key

1. **Purchase a Pro license** for you or your team by visiting the [TinyImage](https://www.hypermatic.com/tinyimage/#pro) product page on the Hypermatic website.
2. **Run the TinyImage Plugin**, then click on the **Upgrade Now** button at the bottom of the Figma plugin window.
3. **Paste in your Pro key**, then click the **Unlock** button.

This will unlock the Pro version of TinyImage and give you unlimited use all of the Figma plugin features.

> **Warning:** Note, if you're in China, the accounts server _may_ be blocked by "The Great Firewall of China". If you're seeing a activation error, despite using a valid key, you will likely need to use a [VPN](https://protonvpn.com/free-vpn/) to resolve the issue.

> **Info:** If you ever need to use a different license key at any time (for example, you were using your own personal Pro license key, but now your employer is buying you a Pro license to use instead), you can press **CTRL + K** while your plugin window is open in Figma, and this will bring up the license key prompt again, where you can enter a different license key.

---

---
url: "/tinyimage/overview/quickstart.md"
description: "Export compressed JPG, PNG, SVG, WebP, AVIF, GIF and PDF files from Figma, reducing sizes by up to 95%."
---

# Get started with TinyImage

> Export compressed JPG, PNG, SVG, WebP, AVIF, GIF and PDF files from Figma, reducing sizes by up to 95%.

[![TinyImage Figma Plugin](https://www.hypermatic.com/tinyimage.jpg)](https://www.figma.com/community/plugin/789009980664807964/tinyimage-compressor)

## Install and activate TinyImage

- [Install & Run the Figma plugin](/tinyimage/overview/install.md): How to run TinyImage inside of Figma
- [Activate TinyImage Pro](/tinyimage/overview/pro.md): How to buy and use a Pro license key

## Using TinyImage

  - [TinyImage Documentation](/tinyimage/compress.md): Detailed docs with short screencaps
  - [TinyImage Video Tutorials](/tinyimage/tutorials.md): Full step-by-step video walkthroughs

## Frequently asked questions

- [Troubleshooting TinyImage](/tinyimage/faq/troubleshooting.md): Common issues issues you may run into
- [TinyImage Security](/tinyimage/faq/security.md): Details about how TinyImage works
- [Receipts](/faq/receipts.md): Find email receipts and PDF invoices
- [Billing](/faq/billing.md): Manage your Pro subscription
- [License Seat Management](/faq/seats.md): Manage the Figma users on your key
- [TinyImage Free vs Pro](/tinyimage/faq/plans.md): Compare Free vs Pro features

[Video](https://www.hypermatic.com/assets/videos/tinyimage/TINYIMAGE_DEMO.mp4)

## TinyImage features

- Exports images up to 95% smaller than the default exports from Figma.
- Privacy focused: no image data ever leaves your Figma file.
- Create and export animated GIF, animated PNG (APNG), animated WebP, WebMs or MP4 videos from selected layers (with optional transition effects).
- Optionally add .mp3 audio files to MP4 video exports.
- Downsize and compress your Figma image fills to their layer size.
- Built-in ICC color profile support for PNG exports.
- Convert JPG and PNGs to WebP, AVIF, Progressive JPEG, or SVG to Tiny 1.2 format.
- Use percentage based compression, or maximum KB file size targets.
- Set specific compression level overrides per image.
- Merge Figma frames into a single compressed PDF file.
- Add custom password protection to exported PDF files.
- Export PDFs as RGB, CMYK or Greyscale (with optional Bleed and Crop Marks).
- Supports compressing/exporting multiple sizes and formats per layer.
- Advanced custom filenames (for example, "#name_#width_x_#height_#date").
- Automatically saves multiple images as a .zip file.

## Using TinyImage in Figma Buzz

TinyImage can compress and export assets from Figma Buzz. Use **File Type** to choose PNG, JPEG, SVG, or PDF. PNG and JPEG exports also support scales from `@0.5x` to `@4x`; scale selection is disabled for vector SVG and PDF output.

---

---
url: "/tinyimage/pdf-export.md"
description: "Merge and compress selected frames into a PDF, then download the final exported file from TinyImage."
---

# Exporting and Downloading PDF Files

> Merge and compress selected frames into a PDF, then download the final exported file from TinyImage.

### Video Tutorial: Merge frames to a compressed PDF

This video walks through how to export merged frames from Figma as compressed PDF files directly from Figma using the TinyImage plugin.
[Embedded media](https://www.youtube.com/embed/P5PJhwtYrkM)

[Video](/assets/videos/tinyimage/compress/pdf-save.mp4)

When your frame selection, ordering, and PDF settings are ready:

1. Click **Export PDF** in the toolbar.
2. TinyImage merges and compresses pages one by one.
3. The `.pdf` file download starts automatically after export completes.

> **Info:** PDF exports can take longer than JPG or SVG exports, especially for detailed pages or image-heavy content.

> **Warning:** If your downloaded file is missing the `.pdf` extension and opens as plain text, manually rename it to include `.pdf`.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

---

---
url: "/tinyimage/pdf-frames.md"
description: "Open the PDF feature, refresh parent frames from your page, and select which frames to include in the merged PDF."
---

# Loading and Selecting Parent Frames for PDF Exports

> Open the PDF feature, refresh parent frames from your page, and select which frames to include in the merged PDF.

### Video Tutorial: Merge frames to a compressed PDF

This video walks through how to export merged frames from Figma as compressed PDF files directly from Figma using the TinyImage plugin.
[Embedded media](https://www.youtube.com/embed/P5PJhwtYrkM)

## Opening the PDF Feature with Parent Frames

[Video](/assets/videos/tinyimage/compress/opening-pdf.mp4)

Click **Create PDF** in the TinyImage toolbar to load all parent frames from your current Figma page.

> **Note:** Your page must contain at least one parent-level frame (a frame at the root level of the page) to create a merged PDF.

## Refreshing Parent Frames

If you add, remove, or rename parent frames while the PDF view is open, click **Refresh** in the toolbar to reload the frame list.

> **Tip:** You can use **Refresh Parent Frames** after creating new parent frames to instantly add them to the available list.

## Selecting Frames to Merge into PDF

[Video](/assets/videos/tinyimage/compress/pdf-selecting.mp4)

Use the frame selection controls to choose exactly which pages are included in your merged PDF export.

---

---
url: "/tinyimage/pdf-ordering.md"
description: "Control merged PDF page order with custom sorting, Figma layer order, visual row/column sorting, and layer names."
---

# Ordering PDF Pages

> Control merged PDF page order with custom sorting, Figma layer order, visual row/column sorting, and layer names.

### Video Tutorial: Merge frames to a compressed PDF

This video walks through how to export merged frames from Figma as compressed PDF files directly from Figma using the TinyImage plugin.
[Embedded media](https://www.youtube.com/embed/P5PJhwtYrkM)

[Video](/assets/videos/tinyimage/compress/pdf-reorder.mp4)

TinyImage includes multiple sorting options for merged PDF page ordering.

## Sort Pages by Custom Order

Drag and drop frame thumbnails up or down to set manual page order.

> **Note:** Your custom ordering is saved and can be restored by selecting **Sort frames by Custom Order**.

## Sort Pages by Figma Layer Order

Use **Sort frames by Figma Layer Order** to match the order in your Figma layer list.

## Sort Pages Visually by Columns

Use **Sort frames visually by Columns** to sort by visual position column-first.

## Sort Pages Visually by Rows

Use **Sort frames visually by Rows** to sort by visual position row-first.

## Sort Pages by Figma Layer Name

Use **Sort frames by Figma Layer Name** to sort alphabetically by layer names.

---

---
url: "/tinyimage/pdf-print.md"
description: "Configure bleed size, crop marks, and measurement units for print-ready merged PDF exports."
---

# Adding Bleed and Crop Marks to PDF Exports

> Configure bleed size, crop marks, and measurement units for print-ready merged PDF exports.

### Video Tutorial: Add Bleed and Crop Marks to PDF exports from Figma

This video walks through how to add bleed and crop marks to PDF exports from Figma using the TinyImage plugin.
[Embedded media](https://www.youtube.com/embed/V7YaSzZP4-k)

[Video](/assets/videos/tinyimage/compress/pdf-bleed.mp4)

If you need print-ready output:

1. Open the **Print** tab and configure the page size, margins, bleed, and crop marks.
2. Select **Create Pages** to generate the print pages as Figma frames.
3. Open the **PDF** tab and select the generated frames.
4. Select **Export PDF**.

The Print tab creates and lays out print pages. PDF export remains in the dedicated PDF tab, so you can review or edit the generated frames before exporting them.

The Print tab is available in Figma Design. If you are working in FigJam or another Figma editor, open the file in Figma Design before creating print pages.

## Configure the print pages

Choose a paper size and orientation, or enter a custom width and height. The pixel preview updates from the selected measurement unit and DPI. TinyImage supports **72**, **150**, and **300 DPI**.

You can also configure:

- The number of pages to create, from 1 to 100.
- Separate margins and bleed values for each edge.
- Crop mark weight, offset, and length.
- Whether bleed expands the page or stays within the selected page size.

Bleed and crop marks are enabled by default. Crop mark settings are only available while bleed is enabled.

Select **Save Preset** to keep a custom print preset for later use. If a value is invalid, TinyImage identifies the affected field and keeps **Create Pages** disabled until the setup is valid.

## Choose measurement units

You can set bleed values in:

- Millimetres (default)
- Inches

Use the unit dropdown to switch units before entering bleed values.

---

---
url: "/tinyimage/pdf-security.md"
description: "Require a password to open merged PDF exports created with TinyImage."
---

# Password Protecting PDF Exports

> Require a password to open merged PDF exports created with TinyImage.

### Video Tutorial: Password protect PDF exports

This video walks through how to export password-protected PDF files directly from Figma using the TinyImage plugin.
[Embedded media](https://www.youtube.com/embed/RZGcAW-eIVw)

[Video](/assets/videos/tinyimage/compress/pdf-password.mp4)

To require a password before opening the exported PDF:

1. Enable **Require a password to open PDFs**.
2. Enter your password in the password input.
3. Export the PDF as usual.

> **Warning:** Share the password securely with recipients. Without the password, they cannot open the exported PDF.

---

---
url: "/tinyimage/pdf-settings.md"
description: "Configure PDF quality, image downscaling, and color profile options for merged PDF exports."
---

# Setting PDF Export Options

> Configure PDF quality, image downscaling, and color profile options for merged PDF exports.

### Video Tutorial: Merge frames to a compressed PDF

This video walks through how to export merged frames from Figma as compressed PDF files directly from Figma using the TinyImage plugin.
[Embedded media](https://www.youtube.com/embed/P5PJhwtYrkM)

## Choose PDF Quality

[Video](/assets/videos/tinyimage/compress/pdf-quality.mp4)

Use the quality slider to set output quality between **72dpi** and **300dpi**.

## Downscale Large Figma Image Fills

Enable **Downscale large Figma image fills** to resize oversized image fills to their actual layer size before export.

This can significantly reduce exported PDF size and improve export reliability for image-heavy files.

## Add Bleed and Crop Marks

Enable **Add Bleed** and **Add Crop Marks** when the selected frames do not already include them.

If a frame was generated by TinyImage's Print tab with bleed or crop marks, TinyImage detects those print elements and does not add a second copy during PDF export. Detection happens per frame, so ordinary frames in the same export still receive the enabled PDF settings.

## Choose PDF Color Profile

[Video](/assets/videos/tinyimage/compress/pdf-profiles.mp4)

Select the **PDF Color Profile** that matches your output use case:

- RGB (Default, For Screens)
- CMYK (For Print)
- Greyscale (Black And White)

When you select **CMYK (For Print)**, you can also choose a **Press Profile** and **Rendering Intent** for the export.

> **Tip:** If your export contains vector path gradients, enable **Vector Path Gradients** when needed to preserve expected gradient rendering.

---

---
url: "/tinyimage/pdf.md"
description: "Create and export merged PDFs from Figma parent frames with ordering, quality, color profile, print, and security options."
---

# Merging Figma Frames into a PDF

> Create and export merged PDFs from Figma parent frames with ordering, quality, color profile, print, and security options.

### Video Tutorial: Merge frames to a compressed PDF

This video walks through how to export merged frames from Figma as compressed PDF files directly from Figma using the TinyImage plugin.
[Embedded media](https://www.youtube.com/embed/P5PJhwtYrkM)
### Video Tutorial: Add Bleed and Crop Marks to PDF exports from Figma

This video walks through how to add bleed and crop marks to PDF exports from Figma using the TinyImage plugin.
[Embedded media](https://www.youtube.com/embed/V7YaSzZP4-k)

TinyImage includes a **Create PDF** feature that lets you merge parent frames from your Figma page into a compressed PDF export.

## Get Started with Creating PDF Exports

Use the pages below to configure each part of your PDF export workflow:

  - [Load and Select Parent Frames](/tinyimage/pdf-frames.md): Load parent frames from your page and choose which frames to include
  - [Order PDF Pages](/tinyimage/pdf-ordering.md): Reorder pages manually or sort by layers, rows, columns, and names
  - [Set PDF Export Options](/tinyimage/pdf-settings.md): Configure quality, downscaling, and color profile options
  - [Add Bleed and Crop Marks](/tinyimage/pdf-print.md): Configure print-focused settings including bleed size and crop marks
  - [Protect PDF Files with Passwords](/tinyimage/pdf-security.md): Require a password before the exported PDF can be opened
  - [Export and Download PDF Files](/tinyimage/pdf-export.md): Merge, compress, and download your final PDF file

---

---
url: "/tinyimage/settings.md"
description: "TinyImage has a settings panel that lets you further customise your compressed image exports from the plugin."
---

# Configuring TinyImage advanced settings

> TinyImage has a settings panel that lets you further customise your compressed image exports from the plugin.

[Video](/assets/videos/tinyimage/compress/open-settings-panel.mp4)

You can open the settings panel by clicking the **Settings** icon button in the TinyImage toolbar, and after you've opened the Settings panel, you can customize the TinyImage features below:

- [Converting image formats](/tinyimage/settings/convert)
- [Setting ICC color profiles for PNG exports](/tinyimage/settings/profiles)
- [Customising the filename/folder structure for your images](/tinyimage/settings/naming)
- [Specifying additional options for PDF file export](/tinyimage/settings/pdfs)

---

---
url: "/tinyimage/settings/convert.md"
description: "If you need to convert your images to formats that Figma doesn't support exporting to natively, you can select an **Image Conversion** option to export converted images."
---

# Converting images to other image formats

> If you need to convert your images to formats that Figma doesn't support exporting to natively, you can select an **Image Conversion** option to export converted images.

[Video](/assets/videos/tinyimage/compress/webp-conversion.mp4)

The TinyImage image conversion setting lets you convert images to either Google's **[WebP](https://en.wikipedia.org/wiki/WebP)** format, the **[AVIF]()** (AV1) format, the **[Progressive JPEG](https://www.liquidweb.com/kb/what-is-a-progressive-jpeg/)** format, or the [Tiny 1.2 SVG](https://www.w3.org/TR/SVGTiny12/) format.

> **Tip:** **Adding PNG and JPG fallbacks for WebP or AVIF conversions**. By default, converting your JPG and PNG images to WebP or AVIF will automatically substitute the original formats in your export. If you want to convert your images to WebP or AVIF and _also_ include compressed versions of the original JPG and PNG formats in your export, you can enable the **Include PNG/JPG fallbacks** toggle.

---

---
url: "/tinyimage/settings/naming.md"
description: "TinyImage lets you specify a custom filename format that will be applied to all of your exported images. This can be really useful for giving a consistent naming convention to all of your exports."
---

# Setting custom filename/subfolder naming format

> TinyImage lets you specify a custom filename format that will be applied to all of your exported images. This can be really useful for giving a consistent naming convention to all of your exports.

### Video Tutorial: Export images with custom folder path names from Figma

This video walks through how to export images with custom folder path names from Figma using the TinyImage plugin.
[Embedded media](https://www.youtube.com/embed/OyclTDvvo64)

[Video](/assets/videos/tinyimage/compress/custom-filenames.mp4)

The **Filename Format** field is optional, and if you leave this field empty/blank, it will default to **#&lcub;name&rcub;#&lcub;suffix&rcub;**.

## Available variables for your filenames

You can **mix and match** _any_ of the variables below into your custom subfolder/filename pattern, including regular text and characters (like underscores or letters/numbers).

- **#&lcub;name&rcub;** The name of the Figma layer (for example, "My Figma Layer Name")
- **#&lcub;scale&rcub;** The scale from the export setting (for example, "2x")
- **#&lcub;width&rcub;** The width of the image (for example, "1024")
- **#&lcub;height&rcub;** The layer height (for example, "768")
- **#&lcub;suffix&rcub;** The suffix from the export setting (for example, "\_example")
- **#&lcub;date&rcub;** Timestamp at the time of export (for example, "28-Sep-2020")
- **#&lcub;section&rcub;** The parent Figma Section layer name, if it exists (for example, "Section 1")
- **#&lcub;frame&rcub;** The parent Figma Frame layer name, if it exists (for example, "Frame 1")

> **Note:** **Creating Sub Folders**. To create a subfolder, you can add a "**/**" anywhere in your custom filename format. For example **#&lcub;date&rcub;/#&lcub;width&rcub;x#&lcub;height&rcub;/#&lcub;name&rcub;** would create a dynamic folder structure like **28-Sep-2020/1024x768/my_figma_layer_name.jpg** (where the variables get swapped out for the real values related to each exported image).

---

---
url: "/tinyimage/settings/pdfs.md"
description: "You can customize how any PDF files are exported from TinyImage by setting custom options in the Settings panel, including password protection, removing Figma's black link borders, color profiles (for example, CMYK) and downsizing image fills."
---

# Setting options for PDF exports

> You can customize how any PDF files are exported from TinyImage by setting custom options in the Settings panel, including password protection, removing Figma's black link borders, color profiles (for example, CMYK) and downsizing image fills.

[Video](/assets/videos/tinyimage/compress/settings-pdf.mp4)

## Setting a password for your PDF exports

If you would like your exported PDF files to require a password before they can be opened, you can enable the **Require a password to open PDFs** setting, then set your own password in the **password input** field. Ensure that you give this password to anyone you're sending your exported PDF files to, or they won't be able to open the file to view its contents.

## Toggle black borders around links in PDF exports

By default, TinyImage automatically removes the black outlines around links that normal PDF exports from Figma includes. If you want to override this behavior and include a 1px black border around links inside your PDF exports, you can enable the **Outline Links** toggle (which is turned off by default).

## Choosing a color profile for your PDF exports

Depending on how your exported PDFs are going to be used, you may need to change the colour profile setting, which you can do by choosing an option from the **PDF Color Profile** select box.

- RGB (Default/For Screens)
- CMYK (For Print)
- Greyscale (Black & White)

> **Tip:** **Gradient fills in PDF exports**. If you're exporting layers to PDF that contain gradient fills inside any vector paths, you can enable the **Vector Path Gradients** setting to ensure the gradient is rendered as expected. If you don't need this option, there's no need to enable it.

## Downsizing your Figma layer fills for your PDF exports

Enabling the **Downscale large Figma image fills** toggle will automatically resize (and lightly compress) any Figma image fills on your layers to their actual layer size. This is useful if you've originally imported high resolution images to your Figma file, but then shrunk the layer dimensions down to be much smaller (with the original large image file still being used).

One common case of this would be adding a large image from Unsplash (or another stock photo site/plugin), the resizing that layer to be used as a much smaller "card" or "avatar" image. This can cause the performance of your Figma file to slow down and potentially crash when exporting these layers via the TinyImage PDF export options; so using this feature will help save file size and improve page performance in your Figma file.

---

---
url: "/tinyimage/settings/profiles.md"
description: "You can customize the color profile of your PNG exports from Figma based on your own needs by selecting an ICC profile in the advanced settings panel."
---

# Setting custom ICC color profile for PNG exports

> You can customize the color profile of your PNG exports from Figma based on your own needs by selecting an ICC profile in the advanced settings panel.

[Video](/assets/videos/tinyimage/compress/icc-profiles.mp4)

Depending on how your exported PNGs are going to be used, you may need to change the colour profile setting, which you can do by choosing an option from the **PNG Color Profile** select box:

- Display P3 (Max Compatibility)
- Display P3 (Max Correctness)
- DCI-P3
- Adobe RGB (1998)
- Apple RGB
- ColorMatch RGB
- Wide Gamut RGB
- CMYK
- sRGB
- sGrey
- ProPhoto RGB

> **Note:** **Toggling the ICC Version**. By default, ICC Version 4 (v4) is selected, but if you need your color profiles to be  ICC Version 2 (v2) instead, you can _uncheck_ the **Use ICC Version 4** toggle.

---

---
url: "/tinyimage/settings/window-size.md"
description: "You can toggle the width of the TinyImage plugin window in Figma by pressing the 'Shift + W' keyboard combo shortcut while the plugin is running (and focused)."
---

# Expanding/toggling the size of the plugin window

> You can toggle the width of the TinyImage plugin window in Figma by pressing the 'Shift + W' keyboard combo shortcut while the plugin is running (and focused).

[Video](/assets/videos/tinyimage/compress/resize-window.mp4)

If you have longer layer names that you'd like to see more In the plugin exportable image list, you can toggle the width of the Figma plugin window by by pressing the **Shift + W** keyboard combo shortcut while the plugin is running (and focused).

> **Tip:** Your expanded window size setting will be automatically saved between plugin runs inside the Figma file, so the plugin window will either be normal width or the expanded width based on the last time you toggled it in the current Figma page.

---

---
url: "/tinyimage/tutorials.md"
description: "The best free Figma tutorial videos for beginners (or power users) to level up."
---

# TinyImage Video Tutorials

> The best free Figma tutorial videos for beginners (or power users) to level up.

## Compressing Images

- [Compress JPG/PNG images](/tinyimage/tutorials/compress-jpg-png-images)
- [Compress Figma image exports to file size targets](/tinyimage/tutorials/compress-figma-image-exports-to-file-size-targets)
- [Compress SVG images](/tinyimage/tutorials/compress-svg-images)
- [Export WebP images](/tinyimage/tutorials/export-webp-images)
- [Export PNGs with custom ICC color space profiles from Figma](/tinyimage/tutorials/export-pngs-with-custom-icc-color-space-profiles-from-figma)
- [Export images with custom folder path names from Figma](/tinyimage/tutorials/export-images-with-custom-folder-path-names-from-figma)
- [Export Progressive JPEG images](/tinyimage/tutorials/export-progressive-jpeg-images)
- [Export AVIF images](/tinyimage/tutorials/export-avif-images)

## PDFs

- [Merge frames to a compressed PDF](/tinyimage/tutorials/merge-frames-to-a-compressed-pdf)
- [Export compressed PDFs in CMYK](/tinyimage/tutorials/export-compressed-pdfs-in-cmyk)
- [Add Bleed and Crop Marks to PDF exports from Figma](/tinyimage/tutorials/add-bleed-and-crop-marks-to-pdf-exports-from-figma)
- [Reduce large file sizes for heavy PDF exports from Figma](/tinyimage/tutorials/reduce-large-file-sizes-for-heavy-pdf-exports-from-figma)
- [Password protect PDF exports](/tinyimage/tutorials/password-protect-pdf-exports)
- [Remove black borders from links in Figma PDF exports](/tinyimage/tutorials/remove-black-borders-from-links-in-figma-pdf-exports)

## GIFs & Videos

- [Create animated GIFs](/tinyimage/tutorials/create-animated-gifs)
- [Add transition effects to animated GIF exports in Figma](/tinyimage/tutorials/add-transition-effects-to-animated-gif-exports-in-figma)
- [Export WebM videos from your Figma layers](/tinyimage/tutorials/export-webm-videos-from-your-figma-layers)
- [Export animated PNG (APNG) images from Figma](/tinyimage/tutorials/export-animated-png-apng-images-from-figma)
- [Export animated WebP images from Figma](/tinyimage/tutorials/export-animated-webp-images-from-figma)
- [Export animated MP4 videos from Figma](/tinyimage/tutorials/export-animated-mp4-videos-from-figma)
- [Add audio to Figma animated MP4 video exports](/tinyimage/tutorials/add-audio-to-figma-animated-mp4-video-exports)

## Figma Image Fills

- [Bulk export original image files from any Figma layer fills](/tinyimage/tutorials/bulk-export-original-image-files-from-any-figma-layer-fills)
- [Downsize Figma image fills to their layer size](/tinyimage/tutorials/downsize-figma-image-fills-to-their-layer-size)

## More video tutorials

- [How to compress PDF files in Figma using TinyImage](/tinyimage/tutorials/how-to-compress-pdf-files-in-figma-using-tinyimage)
- [How to create animated GIF files in Figma using TinyImage](/tinyimage/tutorials/how-to-create-animated-gif-files-in-figma-using-tinyimage)
- [How to install and uninstall Figma plugins](/tinyimage/tutorials/how-to-install-and-uninstall-figma-plugins)

---

---
url: "/tinyimage/tutorials/add-audio-to-figma-animated-mp4-video-exports.md"
description: "This tutorial shows how to use the TinyImage Figma plugin to turn selected Figma layers into an MP4 video export and add an MP3 audio track. It also demonstrates sorting frames, adjusting per-frame timing, and optionally including text inside frames before exporting."
---

# Add audio to Figma animated MP4 video exports

> This tutorial shows how to use the TinyImage Figma plugin to turn selected Figma layers into an MP4 video export and add an MP3 audio track. It also demonstrates sorting frames, adjusting per-frame timing, and optionally including text inside frames before exporting.

[← Back to TinyImage Video Tutorials](/tinyimage/tutorials)

[Embedded media](https://www.youtube.com/embed/bJI_BKzSvJU)

**What this video covers**

This tutorial shows how to use the TinyImage Figma plugin to turn selected Figma layers into an MP4 video export and add an MP3 audio track. It also demonstrates sorting frames, adjusting per-frame timing, and optionally including text inside frames before exporting.

**Things you'll need**

- Figma
- TinyImage Figma plugin
- An MP3 file saved on your computer

**Steps**

1. Open Figma, go to the Resources icon, search for TinyImage, and run the TinyImage Figma plugin from Plugins or Saved plugins.
2. Select the Figma layers you want in the video, then click Create GIF/MP4 to load them into the timeline.
3. Choose the frame order using the sorting options or drag thumbnails into a custom order.
4. Adjust the delay per frame with the slider or individual frame inputs.
5. Open the format dropdown, change Animated GIF to MP4 Video, and reveal the option to add an MP3 audio track.
6. Drag and drop an MP3 file into the audio footer area so it attaches to the export.
7. Click Export MP4, save the file, and play the exported MP4 to confirm the audio is included.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=bJI_BKzSvJU)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-audio-to-figma-animated-m-p4-video-exports-using-tiny-image)
- [Browse Tinyimage tutorial docs](https://docs.hypermatic.com/tinyimage/tutorials)

---

---
url: "/tinyimage/tutorials/add-bleed-and-crop-marks-to-pdf-exports-from-figma.md"
description: "This tutorial shows how to use the TinyImage Figma plugin to export Figma frames as print-ready PDFs with bleed and crop marks. It also demonstrates choosing frames, setting DPI and CMYK, adjusting bleed size, and exporting PDFs with crop marks visible on different background colors."
---

# Add Bleed and Crop Marks to PDF exports from Figma

> This tutorial shows how to use the TinyImage Figma plugin to export Figma frames as print-ready PDFs with bleed and crop marks. It also demonstrates choosing frames, setting DPI and CMYK, adjusting bleed size, and exporting PDFs with crop marks visible on different background colors.

[← Back to TinyImage Video Tutorials](/tinyimage/tutorials)

[Embedded media](https://www.youtube.com/embed/V7YaSzZP4-k)

**What this video covers**

This tutorial shows how to use the TinyImage Figma plugin to export Figma frames as print-ready PDFs with bleed and crop marks. It also demonstrates choosing frames, setting DPI and CMYK, adjusting bleed size, and exporting PDFs with crop marks visible on different background colors.

**Things you'll need**

- A Figma file with frames ready to export.
- The TinyImage Figma plugin installed or saved in Figma.

**Steps**

1. Open your Figma file and run the TinyImage plugin from the Resources icon or from Saved plugins.
2. Click "Create PDF" to fetch the top-level frames on the current page and choose how to order them.
3. Set the export options such as DPI and, if needed, CMYK for print.
4. Turn on "Add Bleed" and choose the bleed size, with 3 mm shown as the default example.
5. Keep "crop marks" enabled if you want printer cut lines, then click "Export PDF".
6. Save the PDF and open it in a PDF reader to confirm the bleed area and crop marks were added.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=V7YaSzZP4-k)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-bleed-and-crop-marks-to-pdf-exports-from-figma-using-tiny-image)
- [Browse Tinyimage tutorial docs](https://docs.hypermatic.com/tinyimage/tutorials)

---

---
url: "/tinyimage/tutorials/add-transition-effects-to-animated-gif-exports-in-figma.md"
description: "This tutorial shows how to use the TinyImage Figma plugin to export animated GIFs or MP4 files with transition effects between frames. It demonstrates selecting frames, choosing effects like fade, slide, and wipe, adjusting transition speed, and exporting the final file."
---

# Add transition effects to animated GIF exports in Figma

> This tutorial shows how to use the TinyImage Figma plugin to export animated GIFs or MP4 files with transition effects between frames. It demonstrates selecting frames, choosing effects like fade, slide, and wipe, adjusting transition speed, and exporting the final file.

[← Back to TinyImage Video Tutorials](/tinyimage/tutorials)

[Embedded media](https://www.youtube.com/embed/GwfVWRAS1qk)

**What this video covers**

This tutorial shows how to use the TinyImage Figma plugin to export animated GIFs or MP4 files with transition effects between frames. It demonstrates selecting frames, choosing effects like fade, slide, and wipe, adjusting transition speed, and exporting the final file.

**Things you'll need**

- A Figma file with the frames or layers you want to animate.
- The TinyImage Figma plugin installed or saved in Figma.

**Steps**

1. Open a Figma file, find TinyImage under Resources > Plugins, and run or save the plugin from the plugins list.
2. Click Create GIF/MP4 and select the Figma frames you want to animate, then choose use selected layers.
3. In the preview, open the effect dropdown that defaults to instant and pick a transition such as fade, slide, or wipe.
4. Adjust the transition speed with the slider if you want the effect to play faster or slower.
5. Click export GIF to render and save the animation as an animated GIF, or click export MP4 to render it as a video file.
6. Open the exported file to verify the transition effect and looping animation.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=GwfVWRAS1qk)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-add-transition-effects-to-animated-gif-exports-in-figma-using-tiny-image)
- [Browse Tinyimage tutorial docs](https://docs.hypermatic.com/tinyimage/tutorials)

---

---
url: "/tinyimage/tutorials/bulk-export-original-image-files-from-any-figma-layer-fills.md"
description: "This tutorial shows how to use the TinyImage Figma plugin to export the original image files used in Figma image fills. It demonstrates finding the plugin, selecting image fills in the Downsizer view, and exporting them as a zip file for a frame or the whole file."
---

# Bulk export original image files from any Figma layer fills

> This tutorial shows how to use the TinyImage Figma plugin to export the original image files used in Figma image fills. It demonstrates finding the plugin, selecting image fills in the Downsizer view, and exporting them as a zip file for a frame or the whole file.

[← Back to TinyImage Video Tutorials](/tinyimage/tutorials)

[Embedded media](https://www.youtube.com/embed/hQ5Lwtzm7NI)

**What this video covers**

This tutorial shows how to use the TinyImage Figma plugin to export the original image files used in Figma image fills. It demonstrates finding the plugin, selecting image fills in the Downsizer view, and exporting them as a zip file for a frame or the whole file.

**Steps**

1. Open the Resources icon in Figma, search for TinyImage under the Plugins tab, and run or save the plugin.
2. In the TinyImage plugin, click Downsizer to view the image fills on the page.
3. Optionally narrow the results by selecting a frame and using the refresh icon to find fills only in that frame.
4. Select the image fills you want, or refresh without a selection to load all fills on the page.
5. Click Export Figma Image Fills to export the selected fills as a zip file.
6. Open the zip file to access the exported original image files.
7. Repeat the same process for other frames or the entire file if needed.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=hQ5Lwtzm7NI)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-bulk-export-original-image-files-from-any-figma-layer-fills-from-figma-using-tiny-image)
- [Browse Tinyimage tutorial docs](https://docs.hypermatic.com/tinyimage/tutorials)

---

---
url: "/tinyimage/tutorials/compress-figma-image-exports-to-file-size-targets.md"
description: "This tutorial shows how to install TinyImage Compressor from the Figma Community and use its Size target option to compress images to a specific kilobyte limit. It also shows how to set a global file size target, override it for individual images, and export the results from Figma."
---

# Compress Figma image exports to file size targets

> This tutorial shows how to install TinyImage Compressor from the Figma Community and use its Size target option to compress images to a specific kilobyte limit. It also shows how to set a global file size target, override it for individual images, and export the results from Figma.

[← Back to TinyImage Video Tutorials](/tinyimage/tutorials)

[Embedded media](https://www.youtube.com/embed/vPV8JhZ8cq4)

**What this video covers**

This tutorial shows how to install TinyImage Compressor from the Figma Community and use its Size target option to compress images to a specific kilobyte limit. It also shows how to set a global file size target, override it for individual images, and export the results from Figma.

**Things you'll need**

- Figma
- TinyImage Compressor installed from the Figma Community

**Steps**

1. Search the Figma Community for TinyImage and install TinyImage Compressor.
2. Open your Figma file, right-click, go to Plugins, and launch TinyImage.
3. Turn on the Size target toggle to switch from percentage-based quality to kilobyte targets.
4. Set a global maximum file size target, such as 500 kilobytes, and optionally override that target for a specific image, such as 200 kilobytes.
5. Click Export to compress the images toward the selected size targets.
6. Review the exported zip file and compare the resulting file sizes to the targets.
7. If needed, use the regular quality slider instead of Size target for non-targeted compression.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=vPV8JhZ8cq4)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-compress-figma-images-to-file-size-targets-using-tiny-image)
- [Browse Tinyimage tutorial docs](https://docs.hypermatic.com/tinyimage/tutorials)

---

---
url: "/tinyimage/tutorials/compress-jpg-png-images.md"
description: "The video shows how to install and use the TinyImage JPG/PNG Compressor Figma plugin to compress exportable images directly in Figma. It demonstrates selecting image layers, adjusting compression quality, exporting compressed files as a zip, and comparing results for JPG and PNG exports."
---

# Compress JPG/PNG images

> The video shows how to install and use the TinyImage JPG/PNG Compressor Figma plugin to compress exportable images directly in Figma. It demonstrates selecting image layers, adjusting compression quality, exporting compressed files as a zip, and comparing results for JPG and PNG exports.

[← Back to TinyImage Video Tutorials](/tinyimage/tutorials)

[Embedded media](https://www.youtube.com/embed/NEXtO-RKlLs)

**What this video covers**

The video shows how to install and use the TinyImage JPG/PNG Compressor Figma plugin to compress exportable images directly in Figma. It demonstrates selecting image layers, adjusting compression quality, exporting compressed files as a zip, and comparing results for JPG and PNG exports.

**Things you'll need**

- Figma
- TinyImage JPG/PNG Compressor installed in Figma
- Image layers in the file with export settings

**Steps**

1. Open the Figma plugin directory from the Figma icon, go to Plugins, then Browse all plugins, search for TinyImage, and install it if needed.
2. In your file, right-click and open Plugins, then choose TinyImage JPG/PNG Compressor, or run the last plugin to open it quickly.
3. Review the list of layers with export settings; only layers with export settings appear in TinyImage.
4. Select or deselect images and export sizes using the checkboxes, including the top checkbox to toggle everything.
5. Adjust the compression quality with the slider, then click Compress to process the selected JPG and PNG exports.
6. Save the generated zip file when prompted and open it to view the compressed image files.
7. Check the per-image and total savings shown in TinyImage, and rerun the plugin after changing Figma export settings if you want different sizes or formats.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=NEXtO-RKlLs)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-compresss-images-in-figma-using-tiny-image)
- [Browse Tinyimage tutorial docs](https://docs.hypermatic.com/tinyimage/tutorials)

---

---
url: "/tinyimage/tutorials/compress-svg-images.md"
description: "This tutorial shows how to compress SVG images directly from Figma using the TinyImage Figma plugin. It covers installing TinyImage, selecting SVG export settings, compressing one or multiple layers, and saving the result as compressed SVG files or a zip file."
---

# Compress SVG images

> This tutorial shows how to compress SVG images directly from Figma using the TinyImage Figma plugin. It covers installing TinyImage, selecting SVG export settings, compressing one or multiple layers, and saving the result as compressed SVG files or a zip file.

[← Back to TinyImage Video Tutorials](/tinyimage/tutorials)

[Embedded media](https://www.youtube.com/embed/LHaPsRtY71s)

**What this video covers**

This tutorial shows how to compress SVG images directly from Figma using the TinyImage Figma plugin. It covers installing TinyImage, selecting SVG export settings, compressing one or multiple layers, and saving the result as compressed SVG files or a zip file.

**Things you'll need**

- A Figma project with layers or frames that can be exported as SVG.
- The TinyImage Compressor plugin installed in Figma.

**Steps**

1. Install the TinyImage Compressor Figma plugin from the Figma icon search.
2. In your Figma file, add SVG export settings to the frames or layers you want TinyImage to detect.
3. Run TinyImage from the right-click Plugins menu or from the TinyImage icon in the sidebar after it has been used once.
4. Select the SVG layers in TinyImage, adjust the global compression quality or override quality per layer, then click Compress.
5. Click Save to export the compressed SVG files.
6. When exporting multiple images, open the zip file to access the compressed SVGs and use the configured file naming format if needed.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=LHaPsRtY71s)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-compress-svg-images-in-figma-using-tiny-image)
- [Browse Tinyimage tutorial docs](https://docs.hypermatic.com/tinyimage/tutorials)

---

---
url: "/tinyimage/tutorials/create-animated-gifs.md"
description: "This tutorial shows how to export animated GIFs from Figma using the TinyImage Figma plugin. It covers installing the plugin, selecting layers as frames, adjusting playback and export settings, and saving the finished GIF."
---

# Create animated GIFs

> This tutorial shows how to export animated GIFs from Figma using the TinyImage Figma plugin. It covers installing the plugin, selecting layers as frames, adjusting playback and export settings, and saving the finished GIF.

[← Back to TinyImage Video Tutorials](/tinyimage/tutorials)

[Embedded media](https://www.youtube.com/embed/FYlk5a69Ewc)

**What this video covers**

This tutorial shows how to export animated GIFs from Figma using the TinyImage Figma plugin. It covers installing the plugin, selecting layers as frames, adjusting playback and export settings, and saving the finished GIF.

**Things you'll need**

- Figma
- TinyImage Figma plugin

**Steps**

1. Install the TinyImage Figma plugin from the Figma Community by searching for "TinyImage" and clicking "Install" under the "Plugins" tab.
2. In your Figma file, run the plugin from right-click > "Plugins" > "TinyImage Compressor".
3. Click "Create a GIF", then select the layers you want to use as frames and click "Use Selected Layers".
4. Adjust the GIF preview and settings, including frame order, playback speed, individual frame timing, looping, sizing, scaling, background color, transparency, image quality, and dithering.
5. When the preview looks right, click "Export GIF".
6. Save the exported GIF to your computer.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=FYlk5a69Ewc)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-gi-fs-from-figma-layers-using-tiny-image)
- [Browse Tinyimage tutorial docs](https://docs.hypermatic.com/tinyimage/tutorials)

---

---
url: "/tinyimage/tutorials/downsize-figma-image-fills-to-their-layer-size.md"
description: "This tutorial shows how to use the TinyImage Compressor Figma plugin’s Downsizer feature to shrink Figma image fills to match their layer size, with an option to keep 2x retina sharpness. It explains how downsizing and light compression can reduce file size, improve performance, and keep images looking sharp on the canvas."
---

# Downsize Figma image fills to their layer size

> This tutorial shows how to use the TinyImage Compressor Figma plugin’s Downsizer feature to shrink Figma image fills to match their layer size, with an option to keep 2x retina sharpness. It explains how downsizing and light compression can reduce file size, improve performance, and keep images looking sharp on the canvas.

[← Back to TinyImage Video Tutorials](/tinyimage/tutorials)

[Embedded media](https://www.youtube.com/embed/N-GtTpEZy_A)

**What this video covers**

This tutorial shows how to use the TinyImage Compressor Figma plugin’s Downsizer feature to shrink Figma image fills to match their layer size, with an option to keep 2x retina sharpness. It explains how downsizing and light compression can reduce file size, improve performance, and keep images looking sharp on the canvas.

**Things you'll need**

- Figma
- TinyImage Compressor installed from the Figma Community

**Steps**

1. Go to the Figma Community, search for TinyImage, open the Plugins tab, and install TinyImage Compressor.
2. In your Figma file, right-click and open Plugins > TinyImage Compressor.
3. Click the Downsizer button to load the image fills on the page and select the fills you want to optimize.
4. Choose either the default 2x option for retina sharpness or uncheck it to downsize to 1x.
5. Click Downsize Figma Fills or Downsize Figma Fills @2x to replace the original fills with smaller versions.
6. Use the preview image icon to inspect which layer each fill belongs to if needed.
7. Review the reported savings in file size after the images are replaced.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=N-GtTpEZy_A)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-downsize-figma-image-fills-to-their-layer-size-using-tiny-image)
- [Browse Tinyimage tutorial docs](https://docs.hypermatic.com/tinyimage/tutorials)

---

---
url: "/tinyimage/tutorials/export-animated-mp4-videos-from-figma.md"
description: "This tutorial shows how to use the TinyImage Figma plugin to turn selected Figma image layers into an animated MP4 Video. It covers running the plugin, adjusting frame timing and sizing, switching from GIF to MP4 Video, and exporting the finished file to your computer."
---

# Export animated MP4 videos from Figma

> This tutorial shows how to use the TinyImage Figma plugin to turn selected Figma image layers into an animated MP4 Video. It covers running the plugin, adjusting frame timing and sizing, switching from GIF to MP4 Video, and exporting the finished file to your computer.

[← Back to TinyImage Video Tutorials](/tinyimage/tutorials)

[Embedded media](https://www.youtube.com/embed/sCARTYdqIrQ)

**What this video covers**

This tutorial shows how to use the TinyImage Figma plugin to turn selected Figma image layers into an animated MP4 Video. It covers running the plugin, adjusting frame timing and sizing, switching from GIF to MP4 Video, and exporting the finished file to your computer.

**Things you'll need**

- Figma
- The TinyImage Figma plugin

**Steps**

1. Open the Resources menu in Figma, search for TinyImage in the Plugins tab, and run or save the TinyImage Figma plugin.
2. Select the image layers you want to animate in your Figma design.
3. Click Create GIF/MP4 in the plugin to generate the preview.
4. Adjust the frame delay, any per-frame overrides, and the size mode such as Cover or Contain, plus the export scale if needed.
5. Change the export format from GIF to MP4 Video.
6. Optionally reorder the frames by sorting or drag and drop.
7. Click Export MP4 and save the .mp4 file to your computer.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=sCARTYdqIrQ)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-animated-m-p4-videos-from-figma-using-tiny-image)
- [Browse Tinyimage tutorial docs](https://docs.hypermatic.com/tinyimage/tutorials)

---

---
url: "/tinyimage/tutorials/export-animated-png-apng-images-from-figma.md"
description: "This tutorial shows how to use the TinyImage Figma plugin to export selected Figma layers as an animated PNG (APNG) instead of a GIF. It also demonstrates adjusting frame timing, scaling, transitions, transparency, and quality before exporting the file as a .png that animates like a GIF."
---

# Export animated PNG (APNG) images from Figma

> This tutorial shows how to use the TinyImage Figma plugin to export selected Figma layers as an animated PNG (APNG) instead of a GIF. It also demonstrates adjusting frame timing, scaling, transitions, transparency, and quality before exporting the file as a .png that animates like a GIF.

[← Back to TinyImage Video Tutorials](/tinyimage/tutorials)

[Embedded media](https://www.youtube.com/embed/_XHr54EMOaU)

**What this video covers**

This tutorial shows how to use the TinyImage Figma plugin to export selected Figma layers as an animated PNG (APNG) instead of a GIF. It also demonstrates adjusting frame timing, scaling, transitions, transparency, and quality before exporting the file as a .png that animates like a GIF.

**Things you'll need**

- A Figma file with layers selected for export
- The TinyImage Figma plugin

**Steps**

1. Open your Figma file, find TinyImage from the Actions menu, and save it to your plugins list if you want easier access later.
2. Run TinyImage from right-click > Plugins > Saved plugins > TinyImage.
3. Select the Figma layers you want to animate.
4. Click "Create GIF/MP4" and change the format from animated GIF to animated PNG.
5. Adjust the animation settings such as frame timing, scaling, transitions, transparency, and quality as needed.
6. Click "Export APNG" and save the exported file to your computer as a .png.
7. Open the saved file to verify that it plays as an animated PNG.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=_XHr54EMOaU)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-animated-png-apng-files-from-figma-using-tinyimage)
- [Browse Tinyimage tutorial docs](https://docs.hypermatic.com/tinyimage/tutorials)

---

---
url: "/tinyimage/tutorials/export-animated-webp-images-from-figma.md"
description: "This tutorial shows how to use the TinyImage Figma plugin to create an animation from selected Figma layers and export it as an Animated WebP file. It also demonstrates adjusting playback settings like delay, size, and quality before saving and viewing the final WebP in a browser."
---

# Export animated WebP images from Figma

> This tutorial shows how to use the TinyImage Figma plugin to create an animation from selected Figma layers and export it as an Animated WebP file. It also demonstrates adjusting playback settings like delay, size, and quality before saving and viewing the final WebP in a browser.

[← Back to TinyImage Video Tutorials](/tinyimage/tutorials)

[Embedded media](https://www.youtube.com/embed/e8EfMxu0oog)

**What this video covers**

This tutorial shows how to use the TinyImage Figma plugin to create an animation from selected Figma layers and export it as an Animated WebP file. It also demonstrates adjusting playback settings like delay, size, and quality before saving and viewing the final WebP in a browser.

**Things you'll need**

- Figma
- TinyImage Figma plugin

**Steps**

1. Open Figma, go to the Resources icon, search for TinyImage, and run the TinyImage compressor plugin or add it to Saved plugins.
2. Open TinyImage from Plugins > Saved plugins, then select the image layers you want to include in the animation.
3. Click Create GIF to load the selected frames and review the animation settings such as frame order, duration, per-frame overrides, size, and quality.
4. Change the export format from Animated GIF to Animated WebP.
5. Click Export WebP, then save the file when prompted.
6. Open a browser and drag the saved WebP file in to view the animated image.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=e8EfMxu0oog)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-animated-web-p-images-from-figma-using-tiny-image)
- [Browse Tinyimage tutorial docs](https://docs.hypermatic.com/tinyimage/tutorials)

---

---
url: "/tinyimage/tutorials/export-avif-images.md"
description: "This tutorial shows how to install the TinyImage Compressor Figma plugin and use it to convert JPG layers in Figma to AVIF. It also demonstrates adjusting export quality, applying per-image overrides, and exporting the converted files as a zip for use on the web."
---

# Export AVIF images

> This tutorial shows how to install the TinyImage Compressor Figma plugin and use it to convert JPG layers in Figma to AVIF. It also demonstrates adjusting export quality, applying per-image overrides, and exporting the converted files as a zip for use on the web.

[← Back to TinyImage Video Tutorials](/tinyimage/tutorials)

[Embedded media](https://www.youtube.com/embed/r4cfVy9H1ac)

**What this video covers**

This tutorial shows how to install the TinyImage Compressor Figma plugin and use it to convert JPG layers in Figma to AVIF. It also demonstrates adjusting export quality, applying per-image overrides, and exporting the converted files as a zip for use on the web.

**Things you'll need**

- Figma installed
- TinyImage Compressor installed
- Images or layers with export settings set in Figma

**Steps**

1. Open Figma Community, search for TinyImage, and install the TinyImage Compressor plugin.
2. In your Figma file, make sure the images you want to export have export settings in the Export section.
3. Right-click the selection, go to Plugins, and open TinyImage Compressor.
4. Open the settings panel and choose Image Conversion, then select Convert JPG to AVIF.
5. Set quality values or per-image overrides if needed, then select the images you want to export.
6. Click Compress Selected to convert and export the images as AVIF files, then save the result as a zip.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=r4cfVy9H1ac)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-avif-images-from-figma-using-tiny-image)
- [Browse Tinyimage tutorial docs](https://docs.hypermatic.com/tinyimage/tutorials)

---

---
url: "/tinyimage/tutorials/export-compressed-pdfs-in-cmyk.md"
description: "The tutorial shows how to use the TinyImage Compressor Figma plugin to export PDF files from Figma in RGB, CMYK, or Grayscale, with compression for smaller file sizes. It also shows how to create a merged PDF from multiple top-level frames and how to adjust PDF color profile and DPI settings."
---

# Export compressed PDFs in CMYK

> The tutorial shows how to use the TinyImage Compressor Figma plugin to export PDF files from Figma in RGB, CMYK, or Grayscale, with compression for smaller file sizes. It also shows how to create a merged PDF from multiple top-level frames and how to adjust PDF color profile and DPI settings.

[← Back to TinyImage Video Tutorials](/tinyimage/tutorials)

[Embedded media](https://www.youtube.com/embed/YUjWSBkl24A)

**What this video covers**

The tutorial shows how to use the TinyImage Compressor Figma plugin to export PDF files from Figma in RGB, CMYK, or Grayscale, with compression for smaller file sizes. It also shows how to create a merged PDF from multiple top-level frames and how to adjust PDF color profile and DPI settings.

**Things you'll need**

- Figma
- TinyImage Compressor plugin

**Steps**

1. Install the TinyImage Compressor plugin from Figma Community or Plugins.
2. Run TinyImage Compressor on your Figma file and make sure your frames have PDF export settings in the right-hand Export section.
3. Open the plugin settings and choose a PDF color profile such as RGB, CMYK (For Print), or Grayscale, then set the DPI if needed.
4. Select your frames and click Compress Selected to export an individual PDF, then save the file.
5. To export a single combined file, open Create a PDF, choose the top-level frames, set the color profile, arrange the order if needed, and click Export to Merged PDF.
6. If you have vector paths with gradient fills, enable gradient fills for vector paths before exporting.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=YUjWSBkl24A)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-compressed-pd-fs-in-cmyk-from-figma)
- [Browse Tinyimage tutorial docs](https://docs.hypermatic.com/tinyimage/tutorials)

---

---
url: "/tinyimage/tutorials/export-images-with-custom-folder-path-names-from-figma.md"
description: "This tutorial shows how to use the TinyImage Figma plugin to export image layers as compressed images with customizable folder paths and file names. It demonstrates adding dynamic variables like section, frame, format, width, height, date, scale, and suffix, plus mixing in static text to organize exported assets."
---

# Export images with custom folder path names from Figma

> This tutorial shows how to use the TinyImage Figma plugin to export image layers as compressed images with customizable folder paths and file names. It demonstrates adding dynamic variables like section, frame, format, width, height, date, scale, and suffix, plus mixing in static text to organize exported assets.

[← Back to TinyImage Video Tutorials](/tinyimage/tutorials)

[Embedded media](https://www.youtube.com/embed/OyclTDvvo64)

**What this video covers**

This tutorial shows how to use the TinyImage Figma plugin to export image layers as compressed images with customizable folder paths and file names. It demonstrates adding dynamic variables like section, frame, format, width, height, date, scale, and suffix, plus mixing in static text to organize exported assets.

**Things you'll need**

- A Figma file with image layers selected for export
- The TinyImage Figma plugin installed or saved in Figma

**Steps**

1. Open the Figma file, find TinyImage from the actions menu, and save or run the plugin.
2. Select the image layers you want to export and add export settings on the right-hand panel, including formats and scales if needed.
3. Refresh TinyImage so the exportable assets appear in the plugin.
4. Open the TinyImage settings panel and edit the Custom File Name Format field.
5. Insert dynamic variables such as section, frame, format, width, height, scale, date, or suffix, and use slashes to turn them into folders.
6. Optionally add static text, such as images or assets, to mix manual labels with dynamic variables.
7. Export the assets, unzip the file, and check that the folders and file names match the custom path format.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=OyclTDvvo64)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-images-with-custom-folder-paths-from-figma-using-tinyimage)
- [Browse Tinyimage tutorial docs](https://docs.hypermatic.com/tinyimage/tutorials)

---

---
url: "/tinyimage/tutorials/export-pngs-with-custom-icc-color-space-profiles-from-figma.md"
description: "This video shows how to use the TinyImage Figma plugin to export PNGs from Figma with an embedded custom ICC color space profile. It walks through selecting a PNG color profile such as P3, choosing ICC version 4 or 2, and exporting files for comparison with standard Figma exports."
---

# Export PNGs with custom ICC color space profiles from Figma

> This video shows how to use the TinyImage Figma plugin to export PNGs from Figma with an embedded custom ICC color space profile. It walks through selecting a PNG color profile such as P3, choosing ICC version 4 or 2, and exporting files for comparison with standard Figma exports.

[← Back to TinyImage Video Tutorials](/tinyimage/tutorials)

[Embedded media](https://www.youtube.com/embed/HJ2D-Rk-MmI)

**What this video covers**

This video shows how to use the TinyImage Figma plugin to export PNGs from Figma with an embedded custom ICC color space profile. It walks through selecting a PNG color profile such as P3, choosing ICC version 4 or 2, and exporting files for comparison with standard Figma exports.

**Things you'll need**

- Figma
- The TinyImage Figma plugin
- Figma layers already set up with PNG export settings

**Steps**

1. Open Figma Resources, search for TinyImage, and run it or save it as a plugin.
2. Select the Figma layers you want to export and add PNG export settings in the right sidebar.
3. Open TinyImage and click Refresh to load the PNG export settings from Figma.
4. Open Settings in TinyImage and change PNG Color Profile from Figma to the desired profile, such as a Display P3 option.
5. Leave ICC version 4 enabled or switch to ICC version 2 if needed.
6. Close Settings and click Export to create PNGs with the embedded ICC profile.
7. Compare the TinyImage-exported PNGs with regular Figma exports to see the color space difference.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=HJ2D-Rk-MmI)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-pn-gs-with-custom-color-space-profiles-from-figma-using-tiny-image)
- [Browse Tinyimage tutorial docs](https://docs.hypermatic.com/tinyimage/tutorials)

---

---
url: "/tinyimage/tutorials/export-progressive-jpeg-images.md"
description: "This tutorial shows how to export progressive JPEGs directly from Figma using the TinyImage Compressor plugin. It covers installing the plugin, setting JPG export options on layers, enabling Use Progressive JPEG Compression, and verifying the exported files with a progressive JPEG test page."
---

# Export Progressive JPEG images

> This tutorial shows how to export progressive JPEGs directly from Figma using the TinyImage Compressor plugin. It covers installing the plugin, setting JPG export options on layers, enabling Use Progressive JPEG Compression, and verifying the exported files with a progressive JPEG test page.

[← Back to TinyImage Video Tutorials](/tinyimage/tutorials)

[Embedded media](https://www.youtube.com/embed/eG3-iG-7KyE)

**What this video covers**

This tutorial shows how to export progressive JPEGs directly from Figma using the TinyImage Compressor plugin. It covers installing the plugin, setting JPG export options on layers, enabling Use Progressive JPEG Compression, and verifying the exported files with a progressive JPEG test page.

**Things you'll need**

- A Figma file with image layers selected for export.
- The TinyImage Compressor plugin installed in Figma.

**Steps**

1. Install TinyImage Compressor from the Figma Plugins tab.
2. Open the plugin in your project from the Plugins menu or the Figma sidebar.
3. Add export settings to the image layers you want to export, and change the export format from PNG or SVG to JPG.
4. In TinyImage, open Settings and turn on Use Progressive JPEG Compression.
5. Click Compress, then Save the exported ZIP file.
6. Open the ZIP and confirm the output images are progressive JPEGs using a progressive JPEG test page.
7. Adjust the quality slider and repeat the export if you want a different size and quality balance.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=eG3-iG-7KyE)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-progressive-jpeg-images-from-figma-using-tiny-image)
- [Browse Tinyimage tutorial docs](https://docs.hypermatic.com/tinyimage/tutorials)

---

---
url: "/tinyimage/tutorials/export-webm-videos-from-your-figma-layers.md"
description: "The video shows how to use the TinyImage Compressor Figma plugin to turn selected Figma layers into an animated export and save it as a WebM video. It also demonstrates how to reorder frames, adjust timing and export settings, then preview the WebM in a web browser."
---

# Export WebM videos from your Figma layers

> The video shows how to use the TinyImage Compressor Figma plugin to turn selected Figma layers into an animated export and save it as a WebM video. It also demonstrates how to reorder frames, adjust timing and export settings, then preview the WebM in a web browser.

[← Back to TinyImage Video Tutorials](/tinyimage/tutorials)

[Embedded media](https://www.youtube.com/embed/XBIx2895HZg)

**What this video covers**

The video shows how to use the TinyImage Compressor Figma plugin to turn selected Figma layers into an animated export and save it as a WebM video. It also demonstrates how to reorder frames, adjust timing and export settings, then preview the WebM in a web browser.

**Things you'll need**

- Figma
- The TinyImage Compressor plugin installed

**Steps**

1. Install TinyImage Compressor from the Figma Community and open it from Plugins in your Figma file.
2. Click "Create a GIF" and select the Figma layers you want to use as animation frames, then click "Use Selected Layers".
3. Reorder the frames by dragging them or by using the sorting menu, such as visual order or layer name.
4. Adjust playback settings such as frame delay, loop count, size or scale, background options, fit mode, image quality, and dithering.
5. Click "Export WebM" to generate the video file and save it when prompted.
6. Open the saved WebM file in a web browser to verify the animation playback.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=XBIx2895HZg)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-web-m-videos-from-your-figma-layers-using-tiny-image)
- [Browse Tinyimage tutorial docs](https://docs.hypermatic.com/tinyimage/tutorials)

---

---
url: "/tinyimage/tutorials/export-webp-images.md"
description: "This tutorial shows how to use the TinyImage Compressor Figma plugin to export images as Google's WebP format from Figma. It explains how TinyImage uses Figma export settings, how to enable the WebP conversion option, and how to compare the results against normal JPG and PNG exports."
---

# Export WebP images

> This tutorial shows how to use the TinyImage Compressor Figma plugin to export images as Google's WebP format from Figma. It explains how TinyImage uses Figma export settings, how to enable the WebP conversion option, and how to compare the results against normal JPG and PNG exports.

[← Back to TinyImage Video Tutorials](/tinyimage/tutorials)

[Embedded media](https://www.youtube.com/embed/khpzcbBWqHk)

**What this video covers**

This tutorial shows how to use the TinyImage Compressor Figma plugin to export images as Google's WebP format from Figma. It explains how TinyImage uses Figma export settings, how to enable the WebP conversion option, and how to compare the results against normal JPG and PNG exports.

**Things you'll need**

- Figma installed
- TinyImage Compressor plugin installed

**Steps**

1. Open Figma, search for TinyImage in the Plugins tab, and install TinyImage Compressor if needed.
2. Return to your file and run TinyImage Compressor from right click > plugins > TinyImage Compressor, or reopen it from the TinyImage icon.
3. Select each image or layer and set its export format in Figma's right sidebar, using PNG for transparent artwork and JPG for photos.
4. Open TinyImage settings and turn on 'Convert all JPG and PNG images to WebP'.
5. Choose the images to export, set the quality you want, and click 'Compress'.
6. Download or open the resulting files to verify that the exports are now WebP images, including transparency where the original export was PNG.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=khpzcbBWqHk)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-export-web-p-images-from-figma-using-tiny-image)
- [Browse Tinyimage tutorial docs](https://docs.hypermatic.com/tinyimage/tutorials)

---

---
url: "/tinyimage/tutorials/how-to-compress-pdf-files-in-figma-using-tinyimage.md"
description: "The video shows how to use the TinyImage plugin in Figma to compress PDF exports, both for individual frames and for multiple frames merged into a single PDF. It also demonstrates choosing PDF quality settings like 72dpi, 150dpi, and 300dpi, then comparing the resulting file sizes against Figma’s native exports."
---

# How to compress PDF files in Figma using TinyImage

> The video shows how to use the TinyImage plugin in Figma to compress PDF exports, both for individual frames and for multiple frames merged into a single PDF. It also demonstrates choosing PDF quality settings like 72dpi, 150dpi, and 300dpi, then comparing the resulting file sizes against Figma’s native exports.

[← Back to TinyImage Video Tutorials](/tinyimage/tutorials)

[Embedded media](https://www.youtube.com/embed/bZpxfMcZuM4)

**What this video covers**

The video shows how to use the TinyImage plugin in Figma to compress PDF exports, both for individual frames and for multiple frames merged into a single PDF. It also demonstrates choosing PDF quality settings like 72dpi, 150dpi, and 300dpi, then comparing the resulting file sizes against Figma’s native exports.

**Things you'll need**

- Figma
- TinyImage plugin

**Steps**

1. Install TinyImage from Figma Community if it is not already installed.
2. Open your Figma file, then run TinyImage from right click > Plugins > TinyImage Compressor.
3. Add PDF export settings to the frames you want in Figma’s right sidebar, then refresh TinyImage so it detects them.
4. Choose a PDF quality setting such as 72dpi, 150dpi, or 300dpi, then click Compress to export compressed PDFs.
5. For a single merged PDF, use TinyImage’s all frames to single PDF option and export the frames in the left sidebar order.
6. If needed, reorder the pages by rearranging the frames in Figma’s layers panel before running TinyImage again.
7. Open the saved zip file to access the compressed PDF exports and compare the reduced file sizes.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=bZpxfMcZuM4)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-compress-pdf-files-in-figma-using-tiny-image)
- [Browse Tinyimage tutorial docs](https://docs.hypermatic.com/tinyimage/tutorials)

---

---
url: "/tinyimage/tutorials/how-to-create-animated-gif-files-in-figma-using-tinyimage.md"
description: "The video shows how to use the TinyImage Figma plugin to create and export animated GIFs from selected Figma layers. It also demonstrates adjusting timing, looping, size, image fit, transparency, background color, and dithering before exporting."
---

# How to create animated GIF files in Figma using TinyImage

> The video shows how to use the TinyImage Figma plugin to create and export animated GIFs from selected Figma layers. It also demonstrates adjusting timing, looping, size, image fit, transparency, background color, and dithering before exporting.

[← Back to TinyImage Video Tutorials](/tinyimage/tutorials)

[Embedded media](https://www.youtube.com/embed/JzYTVv5Cf94)

**What this video covers**

The video shows how to use the TinyImage Figma plugin to create and export animated GIFs from selected Figma layers. It also demonstrates adjusting timing, looping, size, image fit, transparency, background color, and dithering before exporting.

**Things you'll need**

- Figma
- The TinyImage Figma plugin

**Steps**

1. Install TinyImage from Figma community plugins if needed, then open it from Plugins > TinyImage Compressor.
2. Make sure the layers you want to animate have at least one export setting such as JPG, PNG, or SVG so they appear in TinyImage.
3. Select the image or SVG exports you want to use as frames, then click Create GIF.
4. Adjust the GIF settings such as quality, time per frame, playback count, image fit, size, transparency, background color, and dithering.
5. Use Update Preview to refresh the animation and check the result.
6. When the preview looks right, click Export to GIF and save the animated file.
7. Repeat the process with different selected layers or settings if you want another GIF.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=JzYTVv5Cf94)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-create-animated-gif-files-in-figma-using-tiny-image)
- [Browse Tinyimage tutorial docs](https://docs.hypermatic.com/tinyimage/tutorials)

---

---
url: "/tinyimage/tutorials/how-to-install-and-uninstall-figma-plugins.md"
description: "This video shows how to install, run, and uninstall Figma plugins in the new Figma UI3 Actions menu. It also demonstrates saving plugins directly from the Figma Community and managing saved plugins from either the Actions panel or the Community page."
---

# How to install and uninstall Figma plugins

> This video shows how to install, run, and uninstall Figma plugins in the new Figma UI3 Actions menu. It also demonstrates saving plugins directly from the Figma Community and managing saved plugins from either the Actions panel or the Community page.

[← Back to TinyImage Video Tutorials](/tinyimage/tutorials)

[Embedded media](https://www.youtube.com/embed/CzjxF2Jv6PM)

**What this video covers**

This video shows how to install, run, and uninstall Figma plugins in the new Figma UI3 Actions menu. It also demonstrates saving plugins directly from the Figma Community and managing saved plugins from either the Actions panel or the Community page.

**Things you'll need**

- A Figma file open in the browser or Figma desktop app

**Steps**

1. Open a Figma file in the browser or the Figma desktop app.
2. Click Actions in the bottom toolbar, then open the Plugins & widgets tab.
3. Search for a plugin by name, open its result, and click Save to add it to your Figma plugins list.
4. To run it, right-click on the canvas, go to Plugins, and select the plugin under Saved plugins.
5. To remove it from the Actions panel, open Plugins & widgets, click the three dots next to the saved plugin, and choose Remove.
6. To install from Figma Community, open the plugin’s Community page and click the bookmark Save icon.
7. To uninstall from Figma Community, click the bookmark icon again to Remove from saves.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=CzjxF2Jv6PM)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-install-and-uninstall-figma-plugins)
- [Browse Tinyimage tutorial docs](https://docs.hypermatic.com/tinyimage/tutorials)

---

---
url: "/tinyimage/tutorials/merge-frames-to-a-compressed-pdf.md"
description: "This video shows how to use the TinyImage Figma plugin to merge visible top-level frames into a single compressed PDF. It also demonstrates sorting options, frame selection, and PDF quality settings such as 300 dpi, 150 dpi, and 72 dpi."
---

# Merge frames to a compressed PDF

> This video shows how to use the TinyImage Figma plugin to merge visible top-level frames into a single compressed PDF. It also demonstrates sorting options, frame selection, and PDF quality settings such as 300 dpi, 150 dpi, and 72 dpi.

[← Back to TinyImage Video Tutorials](/tinyimage/tutorials)

[Embedded media](https://www.youtube.com/embed/P5PJhwtYrkM)

**What this video covers**

This video shows how to use the TinyImage Figma plugin to merge visible top-level frames into a single compressed PDF. It also demonstrates sorting options, frame selection, and PDF quality settings such as 300 dpi, 150 dpi, and 72 dpi.

**Things you'll need**

- Figma
- TinyImage Figma plugin

**Steps**

1. Install the TinyImage Figma plugin from Figma Community > Plugins, then open your file and launch TinyImage Compressor from Plugins.
2. Click Create a PDF to open the PDF export panel and review the top-level frames detected in the file.
3. Choose how the frames should be ordered using Sort by Drag & Drop, layer order, reverse layer order, left to right, right to left, top to bottom, or bottom to top.
4. Select or deselect frames to control which frames are included in the merged PDF.
5. Set the PDF quality with the dpi slider, choosing 300 dpi, 150 dpi, or 72 dpi depending on the desired balance of quality and compression.
6. Click Export Frames to Merged PDF to generate the compressed PDF and save the output file.
7. Open the exported PDF to verify the frame order and compression result.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=P5PJhwtYrkM)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-merge-frames-to-a-compressed-pdf-from-figma-using-tiny-image)
- [Browse Tinyimage tutorial docs](https://docs.hypermatic.com/tinyimage/tutorials)

---

---
url: "/tinyimage/tutorials/password-protect-pdf-exports.md"
description: "The video shows how to use the TinyImage Compressor Figma plugin to export PDFs from Figma with password protection. It covers exporting individual PDF files or merging multiple frames into a single password-protected PDF."
---

# Password protect PDF exports

> The video shows how to use the TinyImage Compressor Figma plugin to export PDFs from Figma with password protection. It covers exporting individual PDF files or merging multiple frames into a single password-protected PDF.

[← Back to TinyImage Video Tutorials](/tinyimage/tutorials)

[Embedded media](https://www.youtube.com/embed/RZGcAW-eIVw)

**What this video covers**

The video shows how to use the TinyImage Compressor Figma plugin to export PDFs from Figma with password protection. It covers exporting individual PDF files or merging multiple frames into a single password-protected PDF.

**Things you'll need**

- Figma installed
- TinyImage Compressor plugin installed
- A Figma file with frames or layers that have PDF export settings

**Steps**

1. Install the TinyImage Compressor plugin from Figma Community or Plugins.
2. Run the plugin from the right-click Plugins menu or the TinyImage icon.
3. Select PDF export items and use Compress Selected for a regular PDF export if needed.
4. Open TinyImage settings and enable PDF password protection by checking Require a password to open exported PDF files.
5. Enter a password such as figmatic and save the setting.
6. Export the selected frames again, or use Create a PDF to merge multiple frames into one password-protected PDF.
7. Open the exported file and enter the password to view it.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=RZGcAW-eIVw)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-password-protect-pdf-exports-from-figma)
- [Browse Tinyimage tutorial docs](https://docs.hypermatic.com/tinyimage/tutorials)

---

---
url: "/tinyimage/tutorials/reduce-large-file-sizes-for-heavy-pdf-exports-from-figma.md"
description: "This tutorial shows how to use the TinyImage Figma plugin to reduce heavy PDF export sizes by downscaling large image fills and adjusting PDF settings. It demonstrates exporting both merged multi-frame PDFs and individual frame PDFs, then compares file-size savings at 300 DPI and 150 DPI."
---

# Reduce large file sizes for heavy PDF exports from Figma

> This tutorial shows how to use the TinyImage Figma plugin to reduce heavy PDF export sizes by downscaling large image fills and adjusting PDF settings. It demonstrates exporting both merged multi-frame PDFs and individual frame PDFs, then compares file-size savings at 300 DPI and 150 DPI.

[← Back to TinyImage Video Tutorials](/tinyimage/tutorials)

[Embedded media](https://www.youtube.com/embed/VY5EJyuP2nk)

**What this video covers**

This tutorial shows how to use the TinyImage Figma plugin to reduce heavy PDF export sizes by downscaling large image fills and adjusting PDF settings. It demonstrates exporting both merged multi-frame PDFs and individual frame PDFs, then compares file-size savings at 300 DPI and 150 DPI.

**Things you'll need**

- A Figma file with frames on the page.
- TinyImage installed as a Figma plugin.

**Steps**

1. Open Figma, find TinyImage from Resources or Saved plugins, and run the plugin.
2. Choose create PDF, make sure the frames you want are parent frames on the page, and refresh the layer list if needed.
3. Enable Downscale large Figma image fills and set the downscale option to 2x.
4. Export the PDF and save it to your computer to generate a much smaller merged PDF.
5. To export individual PDFs, select each frame, set its export format from PNG to PDF, then refresh exportable layers in TinyImage.
6. Use the PDF settings panel or create PDF output to adjust DPI, such as 300 DPI or 150 DPI, then export again for different quality and file-size results.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=VY5EJyuP2nk)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-reduce-large-file-sizes-for-heavy-pdf-exports-from-figma-using-tiny-image)
- [Browse Tinyimage tutorial docs](https://docs.hypermatic.com/tinyimage/tutorials)

---

---
url: "/tinyimage/tutorials/remove-black-borders-from-links-in-figma-pdf-exports.md"
description: "This tutorial shows how to use the TinyImage Figma plugin to export PDFs without the black border outlines that Figma adds around links. It also demonstrates exporting either a merged PDF from multiple frames or individual PDF files from selected frames."
---

# Remove black borders from links in Figma PDF exports

> This tutorial shows how to use the TinyImage Figma plugin to export PDFs without the black border outlines that Figma adds around links. It also demonstrates exporting either a merged PDF from multiple frames or individual PDF files from selected frames.

[← Back to TinyImage Video Tutorials](/tinyimage/tutorials)

[Embedded media](https://www.youtube.com/embed/RNxesGuYnrU)

**What this video covers**

This tutorial shows how to use the TinyImage Figma plugin to export PDFs without the black border outlines that Figma adds around links. It also demonstrates exporting either a merged PDF from multiple frames or individual PDF files from selected frames.

**Things you'll need**

- A Figma file with frames and links you want to export.
- The TinyImage Figma plugin installed or saved in your Figma plugins list.

**Steps**

1. Open your Figma file and use Resources to search for TinyImage under the Plugins tab, then run or save the plugin.
2. In TinyImage, click Create PDF to list the frames on the current page and choose the frames you want to export.
3. Open the settings and make sure Outline Links is turned off to remove the black link borders.
4. Click Export PDF to create a compressed PDF without the default link outline.
5. For individual PDFs, select the frames in Figma, add PDF in the Export section, and refresh the exportable layers in TinyImage.
6. Keep Outline Links turned off, then click Export to generate a zip containing separate PDF files.

**Useful links**

- [Watch the full video on YouTube](https://www.youtube.com/watch?v=RNxesGuYnrU)
- [Read the full video transcript](https://www.hypermatic.com/tutorials/how-to-remove-black-borders-from-links-in-figma-pdf-exports-using-tiny-image)
- [Browse Tinyimage tutorial docs](https://docs.hypermatic.com/tinyimage/tutorials)

---

---
url: "/tinyimage/video.md"
description: "Export animated MP4 videos from selected Figma layers using the same animation editor workflow as GIF exports in TinyImage."
---

# Creating animated MP4 videos from layers

> Export animated MP4 videos from selected Figma layers using the same animation editor workflow as GIF exports in TinyImage.

### Export animated MP4 videos from Figma

This video walks through how to export animated MP4 videos from your design's layers directly from Figma using the TinyImage plugin.
[Embedded media](https://www.youtube.com/embed/sCARTYdqIrQ)

### Add audio to Figma animated MP4 video exports

This video walks through how to add audio to Figma animated MP4 video exports from your design's layers directly from Figma using the TinyImage plugin.
[Embedded media](https://www.youtube.com/embed/bJI_BKzSvJU)

TinyImage supports exporting animations as `.mp4` videos using the same animation editor UI and workflow as the GIF exporter.

## Using the same animation editor as GIF exports

The MP4 workflow uses the same frame selection, ordering, timing, transition, and preview controls as the GIF workflow.

To configure those shared controls, follow the GIF animation editor guide:

- [Create animated GIFs from layers](/tinyimage/gif)

## Exporting to MP4 format

Once your animation preview is ready:

1. Open the export format dropdown in the animation toolbar.
2. Select **MP4 Video**.
3. Click **Export** to render your `.mp4` file.

After rendering finishes, TinyImage will automatically download the exported MP4 file to your computer.

## Adding audio to MP4 exports

MP4 exports can include optional audio:

1. Add an `.mp3` audio track in the MP4 export options.
2. Confirm your animation timing and preview.
3. Export as **MP4 Video**.

> **Note:** Audio tracks are only supported for MP4 exports.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

---

---
url: "/tinyimage/webm.md"
description: "Export animated WebM videos from selected Figma layers using the same animation editor workflow as GIF exports in TinyImage."
---

# Creating WebM videos from layers

> Export animated WebM videos from selected Figma layers using the same animation editor workflow as GIF exports in TinyImage.

### Export WebM videos from your Figma layers

This video walks through how to animate and export WebM videos from your design's layers directly from Figma using the TinyImage plugin.
[Embedded media](https://www.youtube.com/embed/XBIx2895HZg)

TinyImage supports exporting animations as `.webm` videos using the same animation editor UI and workflow as the GIF exporter.

## Using the same animation editor as GIF exports

The WebM workflow uses the same frame selection, ordering, timing, transition, and preview controls as the GIF workflow.

To configure those shared controls, follow the GIF animation editor guide:

- [Create animated GIFs from layers](/tinyimage/gif)

## Exporting to WebM format

Once your animation preview is ready:

1. Open the export format dropdown in the animation toolbar.
2. Select **WebM Video**.
3. Click **Export** to render your `.webm` file.

After rendering finishes, TinyImage will automatically download the exported WebM file to your computer.

> **Tip:** **Saving file downloads from Figma** If you're using the Figma **desktop app**, you'll see a prompt appear to download your file. However, if you're using Figma in a **web browser**, your file will automatically be downloaded to your computer by default (usually to the **Downloads** directory on your computer).

---

---
url: "/troubleshooting/common-issues.md"
description: "Resolve license, receipt, performance, connection, and export problems before sending a reproducible support report."
---

# Troubleshoot common Hypermatic plugin issues

> Resolve license, receipt, performance, connection, and export problems before sending a reproducible support report.

Start with the section that matches the symptom. If these general steps do not resolve it, check the plugin-specific troubleshooting page before contacting support.

## License key is not accepted

Try these steps:

1. Copy the license key from the Gumroad receipt.
2. Make sure you are not copying the order ID, receipt number, or email address.
3. Paste the key into the plugin's unlock or upgrade field.
4. If you manage seats, check the [Hypermatic License Manager](https://license.hypermatic.com/).
5. If the key still does not work, email [adam@hypermatic.com](mailto:adam@hypermatic.com).

Do not paste private license keys into chat tools.

## Receipt is missing

Search your inbox for `noreply@customers.gumroad.com`. Also try [Gumroad charge lookup](https://app.gumroad.com/charge).

If you have the license key, enter it into the [Hypermatic License Manager](https://license.hypermatic.com/) to view purchase history.

See [Receipts and PDF invoices](/faq/receipts).

## Plugin is slow or stuck loading images

Large Figma files and large image fills can slow plugin workflows. Try:

1. Wait until Figma finishes loading images.
2. Move only the frames you need to a new blank Figma page.
3. Close unused Figma tabs.
4. Restart the Figma desktop app or refresh Figma in the browser.
5. Try the workflow on a smaller test file.

## Plugin cannot connect or activate

Try:

1. Turn off VPN temporarily.
2. Switch Wi-Fi network or use a mobile hotspot.
3. Ask your IT team whether company firewall rules block plugin network requests.
4. If you are in a region where some services may be blocked, try a trusted VPN.

See [Network, VPN, firewall, and regional troubleshooting](/troubleshooting/network-vpn-firewall).

## Exported output differs from Figma

Different export formats have different limitations. HTML emails, PDFs, GIFs, videos, compressed images, PowerPoint files, and code exports each have their own rendering rules.

Before reporting the issue:

1. Check the plugin-specific troubleshooting page.
2. Try a small file with only the affected frame.
3. Save the exported file or ZIP.
4. Take a screenshot of the Figma source and exported result.
5. Email [adam@hypermatic.com](mailto:adam@hypermatic.com) with the product name and files.

## You need help choosing a plugin

Start from the docs home page or product pages. If you are trying to automate multiple Figma workflows, the [Pro Bundle](https://www.hypermatic.com/bundle/) may be better value than buying several plugins separately.

For exact pricing, see [Hypermatic pricing and PDF quotes](/faq/pricing).

## Send a reproducible support report

Include:

- Product name
- Purchase email address if it is a billing/license issue
- Screenshot or short video
- Exported file or ZIP if relevant
- Figma page/frame name
- Exact error message
- Whether you are using Figma desktop or browser

---

---
url: "/troubleshooting/network-vpn-firewall.md"
description: "Test whether a network restriction is blocking Gumroad checkout, license activation, uploads, integrations, or plugin resources."
---

# Troubleshoot network, VPN, firewall, and regional issues

> Test whether a network restriction is blocking Gumroad checkout, license activation, uploads, integrations, or plugin resources.

Company firewalls, VPNs, regional restrictions, browser policies, and payment-provider checks can interrupt checkout, activation, uploads, integrations, or plugin resources.

Use a different network as the first diagnostic test. If the workflow succeeds on a mobile hotspot but fails on the company network, a network policy is likely involved.

## Gumroad checkout fails or a card is blocked

If Gumroad checkout fails or your card is blocked:

1. Turn off your VPN and retry.
2. Switch to a different Wi-Fi network or mobile hotspot.
3. Check that the ZIP code and billing location match your card.
4. Try a different card.
5. Contact [support@gumroad.com](mailto:support@gumroad.com) if Gumroad needs to review the payment.

Gumroad handles checkout and payment processing.

## License activation cannot connect

If plugin activation cannot connect:

1. Turn off VPN and retry.
2. Try another network or mobile hotspot.
3. Restart the Figma desktop app or refresh Figma in the browser.
4. Ask your IT team whether Figma plugin network requests are blocked.
5. If you are in a region where some services may be blocked, try a trusted VPN.

## Activation fails in China

Some account or activation services may be blocked by regional network restrictions. If you are in China and a valid license key fails to activate, you may need to use a VPN to complete activation.

## Uploads or integrations are blocked

Some plugins offer optional upload or third-party integration workflows. If an upload or integration warning appears, the network may be blocking the destination service.

Try:

1. Tether to a mobile hotspot.
2. Retry without VPN.
3. Retry with a trusted VPN if the local network blocks the service.
4. Ask IT whether the relevant service is blocked by firewall policy.

## Confirm whether the network is responsible

A quick test is to retry the same plugin workflow on a different network. If it works on a mobile hotspot but not on the company network, the company network is likely blocking something.

## Send useful network diagnostics

Email [adam@hypermatic.com](mailto:adam@hypermatic.com) with:

- Product name
- Screenshot of the warning or error
- Whether VPN was on or off
- Whether a mobile hotspot worked
- Whether you are using Figma desktop or browser
- The country/region if regional blocking may be involved

Do not send card numbers, passwords, or private credentials.

---

---
url: "/weblify/advanced/import-website.md"
description: "Use the free Weblify Chrome Extension to copy a webpage or selected element into Figma as editable layers."
---

# Import a website into Figma

> Use the free Weblify Chrome Extension to copy a webpage or selected element into Figma as editable layers.

The Weblify Figma plugin links to the free [Weblify Chrome Extension](https://chromewebstore.google.com/detail/weblify-copy-websites-to/dfdmkfjpaoomaiobpaggkkkbhcjccjbb?utm_source=weblify_docs&utm_medium=documentation&utm_campaign=weblify_chrome_extension) for website importing. The extension works directly in your browser, including on pages that use your current login or browser session.

## Import a website

1. Install the [Weblify Chrome Extension](https://chromewebstore.google.com/detail/weblify-copy-websites-to/dfdmkfjpaoomaiobpaggkkkbhcjccjbb?utm_source=weblify_docs&utm_medium=documentation&utm_campaign=weblify_chrome_extension).
2. Open the webpage you want to copy in Chrome.
3. Select the Weblify extension icon.
4. Choose **Copy page** or **Pick element**.
5. Wait for the **Copied to clipboard** confirmation.
6. Return to your Figma file and paste with Command + V on macOS or Ctrl + V on Windows.

> **Tip:** You can also open the **Import Website** tab in the Weblify Figma plugin and select the Chrome extension download link.

## Choosing an element

[Video](/assets/videos/weblify/inspect/chrome-element-inspect.mp4)

Select **Pick element**, then hover over the page and click the element you want to copy. Use the up and down controls to move to a parent or child element before copying it.

> **Warning:** Browser-internal pages and the Chrome Web Store do not allow extensions to inject page controls. Open a regular website tab before selecting the Weblify extension icon.

---

---
url: "/weblify/build/export.md"
description: "Run Weblify's production checks and export your Figma website as an HTML and CSS ZIP."
---

# Audit and export a static website

> Run Weblify's production checks and export your Figma website as an HTML and CSS ZIP.

Weblify exports its pages as a static website containing HTML, shared CSS, local image assets, search metadata, and responsive layout rules. The exported site does not require a JavaScript framework or a Weblify hosting account.

## Run the preflight check

1. Open the **Export** tab.
2. Enter a site name.
3. Select **Run Preflight**.
4. Review any errors or warnings.

Errors block the export. Warnings do not block it, but you should review them before publishing.

Select **Repair Metadata** if valid Weblify layers have missing or outdated internal metadata. Run the preflight check again after repairing or editing the affected layers.

## Download the website

When the preflight status is **Ready**, select **Download Static Site (.zip)**. The ZIP contains:

- An HTML file for each Weblify page.
- Shared CSS and responsive rules.
- Images referenced by the website.
- Page titles, descriptions, and other configured metadata.

Unzip the download before uploading it to a static host.

---

---
url: "/weblify/build/site-builder.md"
description: "Create Weblify pages from templates, sections, elements, and responsive layout primitives."
---

# Build a website in Figma

> Create Weblify pages from templates, sections, elements, and responsive layout primitives.

Weblify's **Build** tab creates website pages as editable Figma layers. The generated layers keep Weblify metadata so the plugin can preview, audit, and export them as a static website.

## Start a page

1. Open the **Build** tab.
2. In **Start**, enter a page name and select **Blank Page**, or choose a complete starter template.
3. Select the generated page on the Figma canvas before adding content.

If nothing is selected, Weblify uses the first Weblify page it finds or creates a page named **Home**. The **Build target** at the top of the plugin shows where new content will be inserted.

## Add sections and elements

Use **Sections** for complete page areas such as navigation, hero, content, pricing, forms, and footers. Use **Elements** for individual components.

Select a Weblify page, section, or content area before inserting an item. This gives Weblify a predictable parent and keeps the exported structure intact.

## Edit the structure

The **Structure** tab contains page, layout, and responsive settings. You can:

- Add pages and edit their URL and search metadata.
- Add sections, containers, rows, grids, and content areas.
- Configure responsive stacking and layout behavior for selected Weblify layers.

Page metadata includes the title, description, canonical URL, social sharing fields, favicon, Twitter card type, and robots setting.

## Apply styles and images

Open **Styles** to review the brand colors, typography, spacing, and radius tokens used by generated content. The **Images** view lists placeholder images so you can replace them with real image URLs before export.

Use **Preview site** to check the current website without leaving the builder.

---

---
url: "/weblify/faq/plans.md"
description: "To get unlimited usage of all of the Weblify Pro features, you will need to purchase a license from the [Hypermatic website](https://hypermatic.com/weblify#pro)."
---

# Weblify Free vs Weblify Pro

> To get unlimited usage of all of the Weblify Pro features, you will need to purchase a license from the [Hypermatic website](https://hypermatic.com/weblify#pro).

Weblify includes 25 free uses of its _Pro_ features. Once these uses have been used up, the plugin keeps the _Free_ features available and requires a Pro license for the remaining features.

Website importing is provided separately by the free Weblify Chrome Extension and does not consume a Weblify plugin use.

  - **Weblify Free**: ### Website Builder Unlimited Usage       ### HTML/CSS Inspections Unlimited Usage       ### React Inspections Try during 25 Pro Uses       ### Tailwind Inspections Try during 25 Pro Uses       ### Vue Inspections Try during 25 Pro Uses       ### Copy Code to Clipboard Try during 25 Pro Uses       ### Component Downloads Try during 25 Pro Uses       ### Static Website Export Try during 25 Pro Uses
  - **Weblify Pro**: ### Website Builder Unlimited Usage       ### HTML/CSS Inspections Unlimited Usage       ### React Inspections Unlimited Usage       ### Tailwind Inspections Unlimited Usage       ### Vue Inspections Unlimited Usage       ### Copy Code to Clipboard Unlimited Usage       ### Component Downloads Unlimited Usage       ### Static Website Export Unlimited Usage

---

---
url: "/weblify/faq/security.md"
description: "How the Weblify Figma plugin and Chrome Extension handle Figma data, website copying, license checks, and network requests."
---

# Weblify Security

> How the Weblify Figma plugin and Chrome Extension handle Figma data, website copying, license checks, and network requests.

The Figma plugin is run directly from Figma's own servers, and runs inside of a your Figma file, which means that it inherits all of the [security](https://www.figma.com/security/) and infrastructure of the Figma platform, which exceed industry standards for data protection and security:

- SOC 2 Type 2
- SOC 3
- Cloud Security Alliance (CSA) STAR: Level 1
- ISO/IEC 27001:2013
- ISO/IEC 27018:2019
- EU Cloud Code of Conduct (COC): Level 2

There's **no additional software** that needs to be installed to use the Figma plugin, as Figma plugins run as a built-in part of Figma's own native functionality, and all Figma plugins Accessibile and can be instantly run from inside any Figma file, or via the official [Figma Community](https://www.figma.com/community) ecosystem inside of the Figma app.

If your organization is already approved to use Figma, then you _already have access_ to Figma plugins.

## How Weblify handles Figma data

The [Weblify Figma plugin](https://www.figma.com/community/plugin/927336249307137996) builds website layouts in Figma, previews and exports Weblify pages, and inspects selected Figma layers as code.

Website building, preview generation, code inspection, and ZIP creation run inside the plugin. Generated files are downloaded directly to your computer.

The Figma plugin does not fetch or import third-party website URLs. Its **Import Website** tab links to the Weblify Chrome Extension instead.

## Chrome extension website copying

The Weblify Chrome Extension reads the page or selected element only after you explicitly choose a copy action. It converts the page in your browser and writes the result to your clipboard so that you can paste it into Figma.

The extension may request images and fonts from the website being copied so they can be included in the Figma payload. It does not send the copied website or your Figma file contents to Hypermatic.

## Accounts and usage events

Weblify contacts Hypermatic's account service to check trial usage and validate Pro license keys. These account requests can include the Weblify plugin ID, license key, and the Figma user ID and name made available to the plugin by Figma.

Weblify also records coarse product events containing the plugin name, event name, and a numeric value. These usage events do not include Figma layer contents or generated website code.

---

---
url: "/weblify/faq/troubleshooting.md"
description: "Troubleshooting guide for website copying, code output, activation, and common Weblify errors."
---

# Troubleshooting Weblify

> Troubleshooting guide for website copying, code output, activation, and common Weblify errors.

### Missing HTML attributes, styles or frontend frameworks

Weblify supports common HTML attributes, layout styles, and frontend output formats. Some advanced Figma properties, browser CSS, embedded content, and interactive behavior may still need manual adjustment after generation or import.

### The Chrome extension does not open on a page

Browser-internal pages and the Chrome Web Store do not allow extensions to inject page controls. Open a regular website tab, refresh it after installing the extension, then select the Weblify extension icon again.

### An imported website looks different from the live website

Wait for lazy-loaded content, fonts, and images to finish appearing before copying the page. Interactive applications, embedded content, unsupported CSS, and assets blocked by the source website may still produce differences after pasting into Figma.

### Copied content does not paste into Figma

Wait for the extension to show **Copied to clipboard**, return to the Figma canvas, and paste with Command + V on macOS or Ctrl + V on Windows. If another clipboard item appears, copy the page or element again immediately before pasting.

### VPN may be required in China

Note, if you're in China, the accounts server _may_ be blocked by "The Great Firewall of China". If you're seeing an activation error, despite using a valid key, you will likely need to use a [VPN](https://protonvpn.com/free-vpn/) to resolve the issue.

### 'An error occurred while loading the plugin environment'

This may happen in the Figma desktop app if [the Use Developer VM](https://www.figma.com/plugin-docs/debugging/#developer-vm) debug setting in Figma is enabled by mistake; you can make sure it's turned off by **right-clicking** anywhere on your Figma canvas, hovering over **Plugins**, then hovering over **Development**, and making sure that the **Use Developer VM** is _unchecked_; after it is unchecked (and does _not_ have a tick icon next to it), re-running the Figma plugin should work as expected.

---

---
url: "/weblify/inspect/frameworks.md"
description: "Inspect your Figma layers as either HTML, Tailwind, React or Vue code."
---

# Selecting the code output format

> Inspect your Figma layers as either HTML, Tailwind, React or Vue code.

[Video](/assets/videos/weblify/inspect/select-framework.mp4)

Open **Inspect** and select a Figma layer. Use the code-format menu above the generated files to change the output format.

### Supported code formats

Weblify currently supports selecting the web framework options below:

- HTML/CSS
- Tailwind
- Tailwind (with `@apply`)
- React
- Vue

---

---
url: "/weblify/inspect/layers.md"
description: "Using the Weblify plugin, you can select any Figma layer on the current page and inspect it as code."
---

# Inspecting Figma layers as code

> Using the Weblify plugin, you can select any Figma layer on the current page and inspect it as code.

[Video](/assets/videos/weblify/inspect/select-layer.mp4)

After running the Weblify Figma plugin, open **Inspect** and select a Figma layer on the current page. Weblify automatically generates the markup and styles for that layer. You can also [choose a code output option](/weblify/inspect/frameworks) to match your codebase.

---

---
url: "/weblify/inspect/preview.md"
description: "The Preview tab in Weblify shows how the generated website looks at different viewport sizes."
---

# Previewing generated website code

> The Preview tab in Weblify shows how the generated website looks at different viewport sizes.

[Video](/assets/videos/weblify/inspect/preview-code.mp4)

Open the **Preview** tab to render the current Weblify website as HTML and CSS. You can return to **Build** to make changes, then open **Preview** again to check the updated result.

### Changing the preview viewport width

By default, Weblify automatically sizes the preview. Use the viewport menu to select another preset width and check the responsive result.

---

---
url: "/weblify/inspect/save.md"
description: "You can either copy code to your clipboard with one click, or download all of your code and any image assets to a .zip file directly to your computer."
---

# Copying or downloading your code

> You can either copy code to your clipboard with one click, or download all of your code and any image assets to a .zip file directly to your computer.

[Video](/assets/videos/weblify/inspect/download-code.mp4)

### Copy the code to your clipboard

After you've [selected a Figma layer](/weblify/inspect/layers), open **Inspect**. Select the **Copy** button beside a generated code block to copy that file to your clipboard.

### Download code and images to a .zip file

Select **Download .zip** to download all generated code files and any image assets for the selected Figma layer directly to your computer.

---

---
url: "/weblify/overview/install.md"
description: "Ensure you're logged into your Figma account, then follow the steps below to install and run the [Weblify Figma Plugin](https://www.figma.com/community/plugin/927336249307137996)."
---

# Install and run the Weblify Figma Plugin

> Ensure you're logged into your Figma account, then follow the steps below to install and run the [Weblify Figma Plugin](https://www.figma.com/community/plugin/927336249307137996).

### Video Tutorial: How to install (and remove) Figma plugins

This video tutorial is a complete step-by-step guide showing you the new process of how to install (and remove) Figma plugins after the mid-2024 "UI3" update to the Figma app
[Embedded media](https://www.youtube.com/embed/CzjxF2Jv6PM)

## Installing the Weblify Figma Plugin

1. Open any Figma file.
2. Click on the **Actions** icon in the bottom Figma toolbar.
3. Click the **Plugins & Widgets** tab to filter results to Figma plugins.
4. Search for **Weblify** in the search bar.
5. Click on the **Weblify** search result.
6. Click the **Save** button to install the Weblify plugin.

> **Note:** Figma users in a **Figma Organization** may only be able to install approved plugins. Please contact your Figma Org admin at your company to [approve the Weblify plugin](https://help.figma.com/hc/en-us/articles/4404228724759-Manage-plugins-and-widgets-in-an-organization) if you're unable to install certain Figma plugins.

## Running the Weblify Figma Plugin

Once you've [installed](#installing-the-figma-plugin) the **Weblify** Figma plugin, to run the plugin in your Figma file:

  1. **Right-click** anywhere on your Figma file's page canvas
  2. Hover your mouse over the **Plugins** ▶ menu item
  3. Hover your mouse over the **Saved plugins** ▶ menu item
  4. Click on the **Weblify** plugin menu item

> **Tip:** After you've run the **Weblify** plugin once in a Figma file, you'll be able to quickly re-launch it by clicking the **Weblify** icon in the right-hand side Figma column (under the **Plugin** subheading).

> **Warning:** Only Figma users with **Edit** access to a Figma file can run a Figma plugin in that Figma file; if you only have **View** permissions, you won't be able to run any Figma plugins in that file.

## Uninstalling the Weblify Figma plugin

1. Open any Figma file.
2. Click on the **Actions** icon in the bottom Figma toolbar.
3. Click the **Plugins & Widgets** tab to filter results to Figma plugins.
4. Search for **Weblify** in the search bar.
5. Click on the **Weblify** search result.
6. Click the **Remove** button to uninstall the Weblify plugin.

> **Note:** This will remove the plugin from your **Saved Plugins** list, however, the Figma plugin may still show up under your **Recents** list (if it has been recently run), as Figma saves this list of recent plugins in your browser's/app's local storage. The plugin will vanish from the Recents menu after other plugins are run to take its place.

---

---
url: "/weblify/overview/pro.md"
description: "After trying Weblify Pro features 25 times, you can upgrade for unlimited Pro usage or continue using the Free features."
---

# Activating Weblify Pro

> After trying Weblify Pro features 25 times, you can upgrade for unlimited Pro usage or continue using the Free features.

> **Tip:** Need a Weblify Pro account? You can purchase a Pro account for you or your team by visiting the [Weblify](https://www.hypermatic.com/weblify/#pro) product page on the Hypermatic website.

## Activating the Figma plugin with a Weblify Pro license key

1. **Purchase a Pro license** for you or your team by visiting the [Weblify](https://www.hypermatic.com/weblify/#pro) product page on the Hypermatic website.
2. **Run the Weblify Plugin**, then click on the **Upgrade Now** button at the bottom of the Figma plugin window.
3. **Paste in your Pro key**, then click the **Unlock** button.

This unlocks Weblify Pro and gives you unlimited use of the Pro features.

> **Warning:** If you're in China, the accounts server _may_ be blocked by "The Great Firewall of China". If you're seeing an activation error despite using a valid key, you may need to use a [VPN](https://protonvpn.com/free-vpn/) to resolve the issue.

> **Info:** If you ever need to use a different license key at any time (for example, you were using your own personal Pro license key, but now your employer is buying you a Pro license to use instead), you can press **CTRL + K** while your plugin window is open in Figma, and this will bring up the license key prompt again, where you can enter a different license key.

---

---
url: "/weblify/overview/quickstart.md"
description: "Build, preview, inspect, and export websites with Weblify, or copy existing pages into Figma with the Weblify Chrome Extension."
---

# Get started with Weblify

> Build, preview, inspect, and export websites with Weblify, or copy existing pages into Figma with the Weblify Chrome Extension.

[![Weblify Figma Plugin](https://www.hypermatic.com/weblify.jpg)](https://www.figma.com/community/plugin/927336249307137996)

## Installing the Weblify Figma Plugin

1. Open any Figma file.
2. Click on the **Actions** icon in the bottom Figma toolbar.
3. Click the **Plugins & Widgets** tab to filter results to Figma plugins.
4. Search for **Weblify** in the search bar.
5. Click on the **Weblify** search result.
6. Click the **Save** button to install the Weblify plugin.

> **Note:** Figma users in a **Figma Organization** may only be able to install approved plugins. Please contact your Figma Org admin at your company to [approve the Weblify plugin](https://help.figma.com/hc/en-us/articles/4404228724759-Manage-plugins-and-widgets-in-an-organization) if you're unable to install certain Figma plugins.

## Running the Weblify Figma Plugin

Once you've [installed](#installing-the-figma-plugin) the **Weblify** Figma plugin, to run the plugin in your Figma file:

  1. **Right-click** anywhere on your Figma file's page canvas
  2. Hover your mouse over the **Plugins** ▶ menu item
  3. Hover your mouse over the **Saved plugins** ▶ menu item
  4. Click on the **Weblify** plugin menu item

> **Tip:** After you've run the **Weblify** plugin once in a Figma file, you'll be able to quickly re-launch it by clicking the **Weblify** icon in the right-hand side Figma column (under the **Plugin** subheading).

> **Warning:** Only Figma users with **Edit** access to a Figma file can run a Figma plugin in that Figma file; if you only have **View** permissions, you won't be able to run any Figma plugins in that file.

## Install and activate Weblify

- [Install & Run the Figma plugin](/weblify/overview/install.md): How to run Weblify inside of Figma
- [Activate Weblify Pro](/weblify/overview/pro.md): How to buy and use a Pro license key

## Using Weblify

  - [Build a Website](/weblify/build/site-builder.md): Create editable website pages from templates, sections, and elements
  - [Import a Website](/weblify/advanced/import-website.md): Copy a page or selected element with the free Chrome extension
  - [Audit & Export](/weblify/build/export.md): Validate and download a static HTML and CSS website
  - [Inspect Figma Layers](/weblify/inspect/layers.md): Generate HTML, Tailwind, React, or Vue code from a selected layer

## Frequently asked questions

- [Troubleshooting Weblify](/weblify/faq/troubleshooting.md): Common issues you may run into
- [Weblify Security](/weblify/faq/security.md): Details about how Weblify works
- [Receipts](/faq/receipts.md): Find email receipts and PDF invoices
- [Billing](/faq/billing.md): Manage your Pro subscription
- [License Seat Management](/faq/seats.md): Manage the Figma users on your key
- [Weblify Free vs Pro](/weblify/faq/plans.md): Compare Free vs Pro features

[Video](https://www.hypermatic.com/assets/videos/weblify/WEBLIFY_DEMO.mp4)

## Weblify features

- Create editable website pages from templates, sections, elements, and responsive layouts.
- Copy public or logged-in websites into Figma with the free Chrome extension.
- Preview generated website output at different viewport widths.
- Audit and export Weblify pages as a static HTML and CSS website.
- Inspect selected Figma layers as HTML/CSS, Tailwind, React, or Vue code.
- Copy generated code or download a component ZIP with its image assets.
- Work with Figma auto layout, wrapping, and min/max layout properties.
- Use Weblify's code inspection tools from Figma Dev Mode.

---

---
url: "/weblify/tutorials.md"
description: "Learn how to build, import, inspect, preview, and export websites with Weblify."
---

# Weblify Guides

> Learn how to build, import, inspect, preview, and export websites with Weblify.

Use these guides to get started with Weblify's main workflows:

- [Build a website in Figma](/weblify/build/site-builder)
- [Import a website with Chrome](/weblify/advanced/import-website)
- [Inspect generated HTML and CSS](/weblify/inspect/preview)
- [Preview and export a website](/weblify/build/export)

For the fastest overview, start with the [Weblify quickstart guide](/weblify/overview/quickstart).
