Email editor
The composer is where a campaign brief becomes an email your team can inspect. Bring together the message, layout, sender, customer data and brand kit, whether the email belongs to a broadcast, a template or a workflow step.
Choose an editor before you write
Templates offer four editor starting points. A broadcast opens its Composer, or offers Add content if it has no email yet. Check the editor and sending mode on that content before building the message.
| Editor | Good for |
|---|---|
| Dynamic Composer | Multi-column responsive builder. For designed emails with responsive sections and columns. |
| Plain Composer | A simpler HTML layout for a direct, written message. |
| MJML Code | Write MJML directly. Responsive layout, full control. |
| HTML Code | Write raw HTML directly. Total control, you own the responsiveness. |
Your choice sticks for the life of that email. Switch editor offers a few one-way moves out of the visual builders, but nothing ever comes back, and a code editor never becomes visual again. If you want a different starting place, start a new template or broadcast.
Find the control you need
The panel beside the email has four tabs. On narrow screens it collapses to icons; select a tab to open it over the canvas.
| Tab | Use it to |
|---|---|
| Design (Outline in code editors) | Change the selected block, subject, preview text or email setup. The selection trail tells you what you are editing. |
| Personalize | Review Adaptyle prompts, select runtime AI settings, generate a sample and read the cost estimate. |
| Data | Declare the values the email needs, choose its recipient and inspect sample data. |
| Checks | Find errors and warnings that affect readiness. |
The maxinja input below the tabs follows that context. “Make this shorter” on a selected subject is a subject edit; the same request on the whole email is a broader brief. Read the scope label before sending your request. Changes are saved to the current email, so review the result before scheduling or sending.
Say whether it is marketing or transactional
A template’s creation flow lets you choose its sending mode. For an existing broadcast or workflow email, check the mode configured on its content. The mode is fixed when that email is created and cannot be changed afterwards.
- Marketing reaches only contacts who subscribed, and maxclicks manages the unsubscribe link for you.
- Transactional does not require a marketing subscription and carries no marketing unsubscribe link. Sending still checks suppression, the sender, available capacity and account status. Use it for service messages such as a receipt or a password reset.
This lives on the content, not on the send. However you send it later, an email written as marketing stays marketing.
Marketing email can only go to a contact. A template addressed to a bare email address has to be transactional.
Set who it comes from
From sits at the top of the editor and is required. Either pick one of your saved senders, or pick a verified domain and type the part that goes before the @ plus an optional display name. Only domains that are verified for sending appear in the list.
Tell it what the email needs, and who it goes to
Open the Data tab beside the email. Two things live there:
- The list of information the email is allowed to reference: a contact, an order, a plain value you pass in. Anything not on the list cannot be used in the content.
- To, the one entry the email is addressed to. Only a single contact record or an email-address value can be picked.
The same tab holds the sample data the preview renders against.
The available controls depend on whether you opened a template, broadcast or workflow email. Data and recipient covers it in full: adding and removing properties, the naming rules, why some recipients are not offered, and what a broadcast locks that a template does not.
Bring in your brand
Email setup in Design lets you select a published brand kit, an asset collection, a color palette and a style pack. Only published kits appear. Your choice arrives in the email as branding, so you write {{ branding.logoUrl }} with Liquid instead of pasting colors and logo links by hand. References resolve from the branding used for that render; already sent or frozen campaign content keeps its existing values.
Personalize it
Two tools, available in all four editors and in the subject line as well as the body:
- Liquid drops in a value maxclicks already has, like a first name, and adds simple logic.
- Adaptyle takes an instruction in plain English and has maxinja write that part of the email freshly for every recipient.
Preview it before you send
The Preview button renders the email against your sample data.
If the email has no Adaptyle instructions in it, the Base preview resolves it without a model call. If it does, the panel gives you two views: Base, the email as written with the instructions stripped out, and Personalized, which stays empty until you press Generate preview.
Generate preview requests personalized rendering and spends credits when a prompt reaches the model. maxinja can also generate samples as part of an authoring task. It also needs a model and a thinking depth configured under Personalize → Runs with, and it will not run while the email still has blocking errors.
Send test sends the current rendered sample to the address you enter. It prefers the generated personalized sample when one exists, otherwise the Base sample. Render a preview first; then use a complete sender on a verified domain. The server also checks edit permission, email allowance, sending status and recipient suppression.
A test is a real transactional email and uses your email allowance. It has no contact association and does not start your workspace’s email-event workflows or webhooks through the test-send action. It verifies the rendered content and inbox appearance; it does not verify the production recipient mapping, marketing consent or audience selection. If its outcome is unknown, check email history before attempting another send.
Check it is ready
The readiness chip shows Ready to send, an issue count or a warning count. Click it to open Checks. Issues are grouped under Sender, Recipient, Data, Content, Brand kit, Topic and Sample & preview, so you can identify what needs attention.
The editor’s readiness check requires a sender, a valid recipient, a subject, a body and a preview that rendered without errors. When the content carries Adaptyle instructions, the model and thinking depth under Personalize have to be set as well, because that pair is what writes the content on every send. There is no default behind them.
Read the estimate before scaling up
The Estimate section separates generation, possible corrections, pilot reviews, rolling reviews, sending and campaign operation costs. A broadcast uses the current audience count; other editor surfaces let you choose an assumed audience size.
- Not fully estimated means at least one cost is unknown. The known partial subtotal is not a complete campaign budget.
- Preview generation scenarios use the selected model and sample. They are not guaranteed price bounds or an average across the audience, and are not added into the campaign total.
- Recipient-dependent means a Liquid condition may leave AI instructions for some recipients and remove them for others. One static preview does not establish that the campaign has no AI usage.
- Completion time: Not calibrated is not a delivery promise. Available daily capacity is shared and checked again before sending.
- A quality-review warning means the draft is not yet cleared for AI campaign delivery.
Open How this estimate works for the assumptions behind the figures. Use Billing usage for actual charges.
Moving to code later
Switch editor offers the one-way moves, and it only appears in the two visual builders. From the Dynamic Composer you get Code Editor, which writes your layout out as MJML source, and Simple HTML, which flattens sections and columns into the Plain Composer's block list and discards your preview text along with every link set on an image. From the Plain Composer you get Code Editor, which writes your blocks out as HTML. maxclicks asks you to confirm each of these, because none of them can be undone.
The editor’s maxinja input can draft or refine the current email. Select a subject, section or block to give the request that context, then describe the change. This edits the saved draft. An Adaptyle instruction has a different job: it stays in the template and runs when recipient content is rendered.
Sending what you built
Author content in the app, manually or with maxinja. The Public API sends an existing template with data; it does not expose subject/body authoring. See templates for application-triggered messages and broadcasts for a one-time audience send.
Editor readiness checks the draft and sample. Public template sending validates its actual inputs at execution time; it does not require the editor’s saved sample preview. Execution still checks current eligibility, available credits and sending capacity. An AI broadcast must also satisfy its campaign preparation and quality checks. A successful preview is not approval to bypass those checks.
Related
- Data and recipient: what the email is allowed to reference, who it goes to, and what each surface locks.
- Sample data: the stand-in record the preview renders against.
- Fonts: what the font picker offers and what your reader actually sees.
- Adaptyle and Liquid: personalization.