
Shipping update
A dispatch notice with the carrier, a tracking number set in mono and the delivery address.
A shipping notice with the order number, carrier and delivery estimate in a details table.

Order {{orderId}} has shipped. Track it any time.
{{storeName}}
Your order is on the way
Hi {{firstName}}, order {{orderId}} has left the warehouse and is with the carrier. Everything you ordered is in this one shipment.
Order number
{{orderId}}
Carrier
{{carrier}}
Estimated delivery
{{eta}}
Track this shipment [{{trackingUrl}}]
Tracking can take a few hours to update after the first scan. If the parcel has not arrived by {{eta}}, or it turns up damaged, reply to this email and we will chase {{carrier}} or send a replacement.
Delivery and returns [{{supportUrl}}]
{{companyAddress}}Shown with sample values. The HTML and plain-text tabs keep the placeholders.
About
Send it when an order leaves the warehouse. The order number, carrier and estimated delivery sit in a bordered table above a tracking button, and the footer covers late or damaged parcels with a link to your delivery and returns page.
Values
Required values have to come with every send. The rest fall back to the default shown here.
| Placeholder | Kind | Required | Default |
|---|---|---|---|
{{orderId}} | Text | Required | None |
{{trackingUrl}} | Link | Required | None |
{{carrier}} | Text | Optional | the carrier |
{{eta}} | Text | Optional | 3 to 5 business days |
{{firstName}} | Text | Optional | there |
{{storeName}} | Text | Optional | Northwind Supply |
{{supportUrl}} | Link | Optional | https://example.com/help/delivery |
{{companyAddress}} | Text | Optional | Northwind Supply, 128 Wharf Road, London N1 7GN |
API
Create a template from this design once, then send it with the values for each message.
import { init, openemail } from '@openemail/sdk' init({ apiKey: process.env.OPENEMAIL_API_KEY }) const template = await openemail.templates.create({ name: 'Order shipped', starter: 'order-shipped', publish: true,}) const sent = await openemail.templates.send(template.slug, { from: 'Northwind <[email protected]>', to: '[email protected]', props: { firstName: 'Maya', orderId: 'NW-10482', carrier: 'Swift Couriers', eta: 'Thursday 3 October', trackingUrl: 'https://example.com/track/NW-10482', },}) console.log(sent.id, sent.status)Orders and billing

A dispatch notice with the carrier, a tracking number set in mono and the delivery address.

An order confirmation with up to three line items and a total.

A receipt with the amount charged, what it was for, the card used and a link to the invoice.

An invoice notice with the number, issue date, due date and amount due.

Advance notice of a renewal, with the plan, the date and the amount.

A trial reminder that says what actually happens on the last day.

A declined charge, with the amount, the card, the retry date and what happens next.
Start from one
Every template opens in the editor as blocks you can move, restyle or delete, and sends through the API with the values filled in.
Email infrastructure for businesses, AI, agents and personal email. Built for scale, privacy and control. Everything email should have had from day one.