How to export HTML emails from Figma to Customer.io using Emailify
Follow along with this step by step Figma tutorial video.
Steps
- Find and run the Emailify Figma plugin from Resources, or save it for later from Saved Plugins.
- Design or open an Emailify email frame in Figma and add the Customer.io footer from the Footer tab.
- Make sure the template includes a {{content}} tag in the email, or let Emailify add one automatically if it is missing.
- Click Export HTML, choose Customer.io under platform integration, then click Export for Customer.io and download the zip file.
- Unzip the file and copy the HTML from the index.html file.
- In Customer.io, go to Content, then Email Layouts, create a layout from scratch, paste in the HTML, and save changes.

Published
Used in this video
Emailify
ăĄăŒă«
Stop hand-coding HTML emails.
Design responsive emails in Figma and export production-ready HTML for popular email platforms.
134k+ installs
Video Transcript
Today Iâm going to be showing you how to automatically export HTML emails from Figma and then take those HTML emails and upload them into the Customer.io marketing platform to use as custom email layouts.
To get started, all we need to do is go to Figma, and in your Figma file, if you click on the little âResourcesâ icon at the top here and just search for âEmailifyâ, under the âPluginsâ tab, youâll see âEmailifyâ pop up. If you just go ahead and click on that result, you can run the Figma plugin by either clicking on this âRunâ button here, or Iâd recommend clicking on this âMore optionsâ icon here and clicking âSave Pluginâ, and thatâs just going to save it to your Figma plugins list for easy access later. Iâve already gone ahead and done that; Iâm just going to right-click on my Figma canvas, Iâm just going to go down to âPluginsâ, Iâm going to go down to âSaved Pluginsâ, and then just click on the âEmailifyâ item, and thatâs just going to run the Figma plugin we saved a second ago.
If youâre new to the Figma plugin, the way that it works is you can basically use it to help you design HTML marketing emails in Figma. For example, if we create a new email called âMy Emailâ and add a new Emailify frame, this will basically allow us to start designing an email using some of the tools in the Figma plugin. We can do things like add headers, we can add CTAs, we can add content, and all this is totally customizable in Figma as youâd expect. I wonât go into detail about how to design the emails in this Figma tutorial. Thereâs another Figma tutorial on our YouTube channel if you want to check that out. Today, Iâm just going to be showing you how to export this to HTML for the Customer.io platform; weâll go ahead and do that now.
What Iâm going to do first is just make sure Iâve got the Customer.io footer included. If you go to the âFooterâ tab in the Figma plugin, youâll see thereâs a bunch of different platforms here, and these contain some of the required links and tags for the platform to use when it gets uploaded. For example, weâve got Customer.io down here; Iâm just going to click on that one, and thatâs automatically going to add this footer component to my email.
If I drill down into this layer here and go into the âNavigationâ component, you can see if I click on the âHTML and Mobile Settingsâ button in the Figma plugin, you can see that the âUnsubscribeâ link is pre-populated in the URL field along with the âView in the web browserâ link. This is going to allow you to view the email in the browser if youâve received it as an email. Thatâs going to get automatically populated by Customer.io; a Customer.io template does need to have an unsubscribe link, so you can add this on your own, but the easiest way to do it is just to click on the footer component, and youâll get that added automatically in there as you need.
Now that thatâs been added, the other thing that Customer.io templates require is a âContentâ tag; anywhere in the email, you basically have to include a âContentâ tag that looks like this. So, itâs double curly bracket and then close double curly bracket with the word âcontentâ in the middle. What this does is it basically creates a placeholder area for your content when youâre uploading into Customer.io, and youâll be able to fill this out dynamically later if you want to do that.
Basically, just go ahead and pick a place in your template that you want to create custom content in. As far as I know, you can only create one of these areas, so just pick whichever area you want, and thatâll automatically get added into the HTML later. If the templates are missing this tag, just because it does require it, Emailify will automatically add this content tag just to the very bottom of the email, just so that itâs in there so that the editor in Customer.io doesnât complain. Weâll see what that looks like in a minute.
Iâm just going to leave that off for now just so we can see what that does. Iâm just going to remove the content tag and just undo some of that content that we just added; if we just create the default one and then export it, now that weâve got our design, all we need to do is export it to HTML. If we click on the âExport HTMLâ button in the Figma plugin, and by default, itâs just this default âHTML Exportâ which you can download to the computer. Weâre going to go down here to the platform integration section and just click on âCustomer.ioâ.
And once youâve got Customer.io selected, youâll see that itâs got a button that says âExport for Customer.ioâ. You can add your subject line and pre-header, and this will get included in the HTML file. But for today, Iâm just going to leave those blank and export it. Iâm just going to click on âExport for Customer.ioâ, and this is going to export our email to HTML. Once itâs finished exporting, you just have to click on this âDownload your zip fileâ button; Iâm going to click on that now and just save it to my desktop.
If we unzip that file, Iâll open up the folder so you can see what it looks like. And weâve just got a few different files here. Weâve got our âpreviews.htmlâ, so the previews.html is basically a file that allows you to preview the desktop and mobile version of the email, so itâs good for sending to clients when they need to review them. And weâve also got our email here, the email folder has got our HTML in it, which is just the pure email template.
For today, weâre just going to be looking at this index.html file, and you can see here that itâs inserted the content area at the bottom here because we didnât include it in our template anywhere. Iâm just going to go ahead and move that into my code editor; Iâve just got my code editor up in here, Iâm going to open up the folder again and just drag and drop the index.html file in there, and Iâm just going to select all of that code and copy it. So, you can just do âCommand + Câ or right-click and copy all of that.
If we go into Customer.io now, Iâm just signed into my Customer.io account, and all you need to do is go into the left-hand side here, scroll down to âContentâ, and expand content, and then go to âEmail Layoutsâ. If you click on email layouts, and then in here, you just want to click on the âCreate Layoutâ button; in the top right here, âCreate Layoutâ. Then you want to click on âStart from scratchâ; we donât want to use any pre-existing templates, we want to create our own. Weâre going to click on start from scratch, and we can just call this whatever we want; weâll call it âEmailify Templateâ, click âCreate Layoutâ, and you can see here weâve got this code editor that we can now paste our custom HTML in.
If we now get rid of all of this pre-existing content and just select all; âCommand + Aâ, or âControl + Aâ if youâre on Windows, and delete all that. Weâve still got our code copied from our code editor over here, which we grabbed. Weâve copied that, and in our Customer.io editor, weâre going to paste that in, just âCommand + Vâ, or âControl + Vâ if youâre on Windows, paste that in; and you can see all of the HTML is now pasted in there. What we can do now is click on âSave changesâ; Iâm going to click âSave changesâ, and there we go, itâs basically saved our layout as weâd expect.
Weâve got our HTML in there, weâve got our unsubscribe link, view in the browser link, and weâve also got our content variable that was added automatically down here. Ideally, you donât want to have that down there. Ideally, you would populate that, as I mentioned before, somewhere in the content area so you could swap that out with content and do that. For example, Iâll just show you what that looks like. If you add content like that, and if we now re-export this template; Iâm just going to click on âExport for Customer.ioâ again, re-export that, download the zip file again, unzip that new zip file, and if we open up that folder, we can see here that if we open up the index file, Iâm just going to drag that into my code editor again, copy that; and if we go back to our browser, if we now go âEdit Layoutâ, Iâm just going to click âEdit Layoutâ, and again, Iâm going to remove the last template, paste that in, and click âSave changesâ, and Iâm just going to say âDone Editingâ.
There we go; weâve got our content tag in there, and because weâve included our own content tag, itâs not going to automatically add it to the bottom of the email. Itâs just going to leave it where it is, because the Figma plugin detected that youâve already added your content tag, so itâs just going to keep it there and not add its own one. The reason it adds its own one is just to make sure that that tag is in there somewhere. Otherwise, the template basically just wonât get saved; you can either remove that or do something with it, or ideally, just add it to your design beforehand.
Thatâs basically it, weâve got our email template in here now; thatâs what it looks like. Itâs looking really good, and if we go to our content section again and go back to email layouts, we can now see that weâve got our âEmailify Templateâ in there, which is available to use in campaigns or sends later. Weâll leave it there for today. I just wanted to keep this quite simple just to show you the basics of exporting HTML from Emailify for Customer.io and uploading that as a new email layout in the Customer.io platform when youâre logged into your Customer.io account.
You might be wondering why this canât be done automatically; you might have noticed thereâs a few other platforms that are in here; thereâs MailChimp, Klaviyo, Mailgun, all these different platforms, which allow you to add an API key and automatically upload these things. Unfortunately, Customer.io, the platform, doesnât have an endpoint or an API that allows us to automatically upload the templates into the platform, which would be really handy, but unfortunately, it doesnât have that. We do have to do this extra step of manually copying and pasting it into your template section, but once itâs in there, youâve basically got it in there forever, and you can just create new campaigns from the template or reference that layout however you need to.
I just wanted to add that context just in case youâre wondering why it canât be done via an API; thatâs sadly the case at the moment, but hopefully, theyâll have that in the future, and then the Figma plugin Iâm sure will be updated to do that automatically as well. Thanks for watching, and weâll be back soon with more Figma tutorials like this one very soon.

Adam Brock
Founder & CEO of Hypermatic


