A drag-and-drop builder, a starting gallery, and a paste box for your own HTML. Whatever you make lands in a library that campaigns and automation send nodes both pull from.
Some people design. Some people code. Some people just want to type. All three routes end in the same library.
The BuilderJS editor. Blocks, columns, images, buttons, spacing. No HTML, no CSS, no email-client quirks to memorise.
Pick a template that already works and edit it down to yours. Faster than starting from an empty canvas, and usually better.
If a designer already built it, or your brand lives in a hand-written template, paste it straight in. We do not force it back through a block editor.
And if none of that is the point — plain-text is a whole campaign type. No template required.
The most expensive thing in email marketing is rebuilding the same layout for the third time because campaigns and automations keep their assets separately.
They do not, here. Anything you save to the template library can be picked at the template step of a campaign, or attached to a send node inside an automation. Same template, same markup, same brand.
Which means your welcome flow and your monthly newsletter can look like they came from the same company — because they came from the same file.
Merge tags resolve against the subscriber's record — including the custom fields you defined yourself, not just a fixed set of ours.
Personalisation is only useful if it can reach the data you actually keep.
Drop merge tags anywhere in a template — subject, body, plain-text version — and they resolve against the subscriber's record when the email is built. That includes the custom fields you defined: plan name, account manager, renewal date, whatever your business runs on.
Because those same fields drive segmentation and the attribute-update automation trigger, one piece of data does three jobs.
A template full of curly braces tells you nothing. It certainly does not tell you what happens to the contact whose company field is empty.
Preview-as-subscriber renders your template against a real contact from your list, with every merge tag and custom field resolved. You read the email as they will receive it. Download the rendered version if you need to show it to someone outside the account.
Then send a test to yourself before anything goes near the list. Test sends are throttled deliberately — it takes one nervous finger to spam your own inbox and dent your sending reputation.
Most AI writing tools hand you a block of text and forget it ever existed. Ours saves it.
Generate a subject line and a body in the AI copywriting tool, and the result is saved into the copywriting library as a reusable template — not just pasted into a box and lost when you close the tab.
Which means the good ones accumulate. The version that beat the other four in an A/B test is still there next quarter, ready to be pulled into a campaign or hung off an automation send node.
BuilderJS. Blocks, columns, images, buttons — with no HTML knowledge required.
Ready-made layouts to work from, so a blank canvas is a choice rather than the only option.
Paste your own markup. It stays your markup.
One saved template, available to every campaign and every automation send node in the account.
Personalisation that resolves against subscriber custom fields, not a fixed set of ours.
Render against a real contact, download it, and send a throttled test before anything ships.
Paste your own HTML directly. The drag-and-drop BuilderJS editor and the template gallery are there for people who want them, but nothing forces your hand-written markup back through a block editor. And if you would rather not send HTML at all, plain-text is a full campaign type.
Both. Templates live in one shared library. A campaign picks one at the template step of the wizard; an automation attaches one to a send node. The same saved template serves both, so your welcome flow and your newsletter can genuinely look like the same company sent them.
Yes. Merge tags resolve against the subscriber's record, including the custom fields you defined yourself — plan, renewal date, account manager, whatever you store. The same fields also power segmentation and the attribute-update automation trigger.
Preview-as-subscriber renders it against a real contact from your list, with merge tags and custom fields resolved, so you see the actual email rather than a page of placeholders. The rendered preview is downloadable. You can also send yourself a test email, which is throttled on purpose to protect your sending reputation.
It is saved into the copywriting library as a reusable template — not just dropped into a text box and lost. From there you can edit it in the builder and use it in a campaign or an automation send node like any other template.
Template storage is part of the platform, not a separately metered add-on. Check the current plan details on the pricing page — we would rather point you at the real numbers than make a claim here that drifts out of date.
One library, shared by every campaign and every automation you run.