Reuse a template
Create an order confirmation your product can send after checkout. You will finish with a saved transactional email, a customer recipient, an order input and a clear handoff for the developer who connects the checkout event.
Have a customer contact schema, an order object schema and a representative record in each. If your application supplies order details as JSON instead, agree its fields with your developer first. You also need a verified sender for an inbox test. The Halden media below shows actual saved templates and editor controls; use your own order fields and product facts.

Build the template
Create it
In the top navigation, open Templates and click New template. You land on "Choose your email's starting place", where you pick the editor you want and the sending mode. It is created as an untitled template, and you rename it from its header afterwards to something clear like "Order confirmation".

Choose a visual composer or work directly in MJML or HTML. This is the creation screen before saving. Design the email
Build it with text, images and buttons in the editor. It picks up your brand automatically. For the details that change on every send, drop in a merge tag.
Open Data first. When your workspace has a default contact schema, the editor starts with that contact property and selects it as To. Confirm it is the customer you intend, then use Add property for the order. Each merge tag uses the exact key shown in this panel. If the rows are
customerandorder, you can use{{ customer.firstName | default: "there" }}and your order’s actual fields.For this confirmation, keep the order number, items and total supplied by the application or stored order. An example message is “Thanks for your order” followed by those facts and a button to its status page. The marketing preview below illustrates the shared editor, not this confirmation’s sending mode.
For the parts you want written fresh per person, add an AI instruction.

Halden demo · A branded draft in Dynamic Composer. The walkthrough opens Sarah’s saved preview. Walkthrough steps
Tour the existing Halden draft: inspect Design, Personalize and Data, open Sarah’s saved personalized preview, then return to Edit. Both themes reopen the same stored output. No new AI generation or email send is performed.
Set the sender and the topic
Choose which verified address the email comes from. What you do next depends on the sending mode you picked when you created it, which cannot be changed afterwards.
Transactional fits this order confirmation. It does not require marketing subscriptions and carries no marketing unsubscribe link. The sender, address, bounce suppressions and available sending capacity still have to pass their checks.
Marketing reaches only the contacts who consented to email. Pick its Topic in the email-level Delivery settings when you group email that way, and maxclicks adds the unsubscribe link for you.
An address that keeps bouncing is skipped in either mode.

Halden demo · Sender profiles define the display name and sending address. Choose the appropriate saved sender and topic when configuring a template. Walkthrough steps
Open Sender Profiles and choose Add sender profile. Inspect the display name, description, email local part and domain selector. No sender is created and no email is sent.
Preview it
Click Preview to inspect a rendered sample. Personalized wording can differ on a later render. The app's readiness check requires valid sample data and a successful preview. Review several examples, because a single sample does not prove every future request will have complete data. Your edits take effect on the very next send, so changing the wording later never means starting over.

Halden demo · Sarah’s saved generated preview, reopened in the current editor. Both themes show the same stored output. Walkthrough steps
Reopen Sarah’s saved personalized preview with her customer data visible. Switch the right panel to Design and scroll through the existing email, whose introduction connects her Ethiopia and Kenya purchases and pour-over preference to Colombia Huila. Both themes show the same stored output. No new AI generation or email send is performed.
Ask maxinja: "Draft a shipping confirmation template with a tracking button." It writes the email and leaves the right spots for each person's details.
Before it can send
Open Checks in the editor’s right panel to see what the draft still needs. Actual application sends also validate their supplied data and current sending conditions:
| What it says | What to do |
|---|---|
| No contact or email data property is selected to send to | In the editor's Data panel, set To to the contact or email address this email goes to |
| No sender is specified | Choose the address it comes from |
| No email content is specified | Add content in the editor |
| You need to preview your email first | Select valid sample data and render a successful preview; generate the personalized preview if needed |
| Subject line is empty | Write a subject |
| Body is empty | Write a body |
| Checking this content for AI prompts. Try again in a moment | Nothing to do. maxclicks is scanning the content, and the check clears on its own |
| Missing personalization model settings | Open Personalize in the right rail and configure the model and thinking depth for the email's AI instructions |
The toolbar's Send test mails a sample to an address you type. That is for checking your work, not for reaching real people. It is still a real send: you need a sender picked in From on a verified domain for the send to succeed, the message goes out as transactional from that sender, and it counts against your monthly email allowance, so check your remaining email allowance.
Hand it to your app
A saved template has no send button of its own: your app asks for each send. The template's Send tab collects what you need for that: the template ID, the data this template expects and which property is the recipient, plus an example request you can copy.
You only have to send enough to identify each record. Everything else your email uses is read from the stored record at send time. Extra fields you do send are saved to the record first, which is how you fill in a contact who does not exist yet.
For the request itself, see the Templates API.
Check the first connected send
Have the application trigger the confirmation for a deliberate test order after your preview and inbox review. Inspect the response and retain its email ID, then find that attempt in the template’s Emails tab. Confirm the customer, order facts, links and activity match that one checkout. Sent is provider acceptance; wait for delivery feedback before treating it as delivered.
If the inputs do not match, compare the application payload with the Send tab. If the result is uncertain, investigate the existing email before requesting another one.
Agree the handoff with your developer
Share the template ID, the exact Data keys and shapes, the recipient path and the business event that should trigger it. Supplying record fields can change stored customer data before rendering; use identifiers unless those updates are intended.
Agree one idempotency key for each logical message and preserve it on retries. The application should inspect returned send status and keep the email ID for delivery investigation. A successful HTTP response is not proof the recipient received it.
Coordinate saved content changes with the application owner. New requests use the saved template without a publication stage. If the data contract or purpose changes, a separate template and deliberate ID switch can make the rollout easier to review.
When to use a template
Reach for a template when the same email goes to one person at a time with their own information, and your app decides when. For a one-time email to a whole group, use a broadcast. For an email maxclicks sends on its own, build a workflow: its send email step carries its own content written inside the step, so it does not send a saved template.
Next
Set the send up in your code with the Templates API, or build an automation instead in Build a workflow.