Shipping Update Email Template

A shipping update email fires the moment your fulfillment system marks an order as shipped. Its one job is to hand the customer a tracking link and a delivery window so they stop opening "where is my order" tickets.

Open the full email ↗ Get this on your brand
Live preview View HTML ↗

What makes this shipping update email work

This email triggers off the fulfillment webhook, not a send queue. The moment Shopify or your warehouse fires the "Order Fulfilled" event (the Klaviyo "Fulfilled Order" metric, or the Mailchimp "Order Shipped" trigger), the email should go out within five minutes. Batch it to the top of the hour and you lose the effect. Customers open shipping email at 60 to 80 percent rates, the highest open rate in the entire lifecycle, but only when the news is still news.

The single message is "it shipped, here is when it lands, here is the link." Lead with the carrier and the date, not the brand. A subject line like "Shipped: Order #1042, arriving Thursday June 5" outperforms "Your Halftide order is on its way" because the customer is scanning for one fact. Put that fact in the subject and repeat it in the preheader.

Hold the cross-sell. The tracking button is the only call to action. A "Shop new arrivals" block here splits attention, cuts tracking clicks, and earns you nothing because the buyer already paid. Save the upsell for the delivered or review email three days later, when the product is in their hands and a reorder actually makes sense.

Include what shipped, especially on split orders. If order #1042 leaves the warehouse in two boxes, say so. Print "Shipment 1 of 2" above the items, each with its own tracking number. Half of "where is my order" tickets come from customers who received one box and assumed the rest was lost. State the split up front and the tickets drop.

Why it renders in every inbox

The compiled HTML is a stack of nested tables, not divs or flexbox, because Outlook on Windows renders mail through the Word engine and Word does not understand flexbox. Every layout block sits inside a presentation table with fixed pixel widths, so the 600px canvas holds together in Outlook the same way it does in Gmail.

All styling is inline. Gmail strips the head style block for many clients, so a class defined once in the head vanishes. Writing the color and padding directly on each element survives every inbox we care about.

The "Track your shipment" button is a true bulletproof VML button. A Microsoft Office conditional block draws a real rounded orange rectangle in Outlook, with the whole shape clickable, instead of collapsing the button into a flat text link. Without that VML, Outlook users tap on text shaped like nothing.

Tracking numbers, the delivery window, and the shipping address are live text, not images. Live text stays copy-pasteable, reads correctly to screen readers, and does not turn invisible when Apple Mail flips to dark mode. We also set the color-scheme meta tag in the head, which tells iOS and Apple Mail how to invert the palette instead of guessing and turning the amber button into a muddy brown.

There is one mobile media query at the 480px breakpoint that drops the font size and stacks the order-summary columns. We avoid stacking multiple media queries because older Yahoo and Android mail clients mishandle them. Fonts fall back to a system stack, Apple system font then Segoe UI then Roboto then Arial, so the email never drops to Times New Roman on Windows. Total weight sits near 46kb, well under the point where Gmail clips the bottom third of the message behind "[Message clipped]."

How to use it in Klaviyo or Mailchimp

Copy the HTML. In Klaviyo, open a new email template, drop in an HTML block (or open Source view on a text block), and paste. For transactional send, build the email inside a metric-triggered flow on "Fulfilled Order," then mark the send as Transactional so it ignores unsubscribes, because a shipping update is order information the customer needs even if they opted out of marketing.

In Mailchimp, start a campaign, choose "Code your own," then "Paste in code," and drop the HTML into the editor. If you send through Mailchimp Transactional, the same HTML goes into the template builder with the same merge tags.

Swap the brand before you wire data. Replace the logo text, the two hex values in the style block (espresso #2E1F14 and amber #C66B2F), the image URLs, and the carrier and tracking link with yours. Then map the merge tags. In Klaviyo that is {{ organization.name }}, {{ tracking_number }}, {{ tracking_url|default:'#' }}, and {{ event.extra.estimated_delivery_date }}. In Mailchimp it is *|BRANDNAME|*, *|TRACKINGNUMBER|*, and *|TRACKINGURL|*.

Test before you send to real orders. Place a sandbox order, fulfill it, and confirm the merge tags resolve to real values, not the literal {{ tracking_number }} string. Send the rendered email to a Gmail address, an Apple Mail account on iOS, and an Outlook client on Windows. Flip Apple Mail into dark mode and check that the amber button and the cream delivery card still read. Click the tracking link and confirm it lands on the carrier page. Only then turn the flow on.

Questions

Is this shipping update email template free to use? +

Yes. The page, the copy breakdown, and the full MJML source are free to copy and use on client accounts. You do not pay Mailwright for the template. You only pay your ESP, Klaviyo or Mailchimp, for the sends themselves.

Will the tracking button render in Outlook? +

Yes. The button ships as a true bulletproof VML button, so Outlook on Windows draws a real clickable orange rectangle. The layout underneath is nested tables with inline CSS, which is the only combination the Outlook Word engine parses reliably.

How do I change the colors to match my brand? +

Find the two hex values at the top of the MJML, the espresso #2E1F14 and the amber #C66B2F, and replace them across the file. The header, the button, the delivery card, and the step badges all reference those two values, so a single find-and-replace on each recolors the whole email in under a minute.

How much HTML do I need to know to use it? +

None to use it as-is. Paste the compiled HTML into your ESP, swap the merge tags using the list in section three, and send. If you want to move a block or add a second product line, basic find-and-replace is enough. You never need to hand-edit the table structure.

Want this on your client's brand?

Paste a client's site and we build a real, on-brand sample in clean, ESP-safe HTML you can paste into Klaviyo.

Get a free sample

More templates