Skip to main content
Skip table of contents

Example Email Templates for Sendlane

The templates below can be used as a starting point for building Automation emails using Malomo shipping data. To use the templates below:

  1. Click New Automation.

  2. Select Start From Scratch and name the automation.

  3. Click + Add trigger.

  4. Select the Custom tab

  5. Click Custom Event

  6. Select Malomo Custom Integration in the Store dropdown.

  7. Select No Limit in the Limit Per Contact dropdown.

  8. Select the desired Malomo event in the Event dropdown. See here for a list of available Malomo Event Triggers.

  9. Click Done.

  10. Copy and paste the text of a template below into a blank Automation email.

  11. Edit the copy and style your email.

You Must Add a Set Data Trigger Tag

The first line of each email template includes the tag  {% set data = trigger.getCustomEventData() %} , which allows Malomo data to be pulled into your email. Without this snippet, none of your data will load, and contacts will receive mostly or entirely blank emails.

Strip Text Formatting When Inserting Variables and Templates into an Automation Email

When you paste one of the templates below into the email builder, it may try to create hyperlinks for some data. This will cause an error that says "Unexpected token "operator" of value "<". If you see any blue text after pasting, highlight all text and click the remove formatting icon. This should clear the error, and you should be able to save your email.

You can avoid this issue by pressing CMD + Shift + V on macOS or CTRL + Shift + V on Windows to paste without formatting.

Example Templates

Order Confirmation

CODE
{% set data = trigger.getCustomEventData() %}

Your order is confirmed!
Order {{ data.order.meta.shopify_order.name }}

Hi {{ data.customer.first_name | default('friend') }}, thank you for shopping with us!
Your order is confirmed. Our team is working on your shipment and we'll email you again when your items are packed and ready to go.

Order Summary
{% for item in data.order.meta.shopify_order.line_items %}
<img src="{{ item.image.src }}" alt="{{ item.title }}">
Quantity: {{ item.current_quantity }}
Price: {{ item.final_line_price }}
{% endfor %}

Billing Address
{{ data.order.meta.shopify_order.billing_address.first_name }} {{ data.order.meta.shopify_order.billing_address.last_name }}
{{ data.order.meta.shopify_order.billing_address.address1 }}
{{ data.order.meta.shopify_order.billing_address.address2 }}
{{ data.order.meta.shopify_order.billing_address.city }}, {{ data.order.meta.shopify_order.billing_address.province_code }} {{ data.order.meta.shopify_order.billing_address.zip }} {{ data.order.meta.shopify_order.billing_address.country_code }}

Shipping Address
{{ data.order.shipping_address.first_name }} {{ data.order.shipping_address.last_name }}
{{ data.order.shipping_address.address1 }}
{{ data.order.shipping_address.address2 }}
{{ data.order.shipping_address.city }}, {{ data.order.shipping_address.province_code }} {{ data.order.shipping_address.zip }} {{ data.order.shipping_address.country_code }}

Shipment Created

CODE
{% set data = trigger.getCustomEventData() %}

Your order is ready to go!
Order {{ data.order.meta.shopify_order.name }}

Hi {{ data.order.shipping_address.first_name | default('friend') }}, we've got great news. 

Your order has been packed by our warehouse, and is ready for pickup by {{ data.properties.carrier_name }}. We’ll let you know as soon as it starts to move.
Please note that it may take up to 24 hours for detailed tracking information to become available.

Tracking Number: <a href="{{ data.order.url }}">{{ data.properties.tracking_code }}</a>
 
Shipping Address
{{ data.order.shipping_address.first_name }} {{ data.order.shipping_address.last_name }}
{{ data.order.shipping_address.address1 }}
{{ data.order.shipping_address.address2 }}
{{ data.order.shipping_address.city }}, {{ data.order.shipping_address.province_code }} {{ data.order.shipping_address.zip }} {{ data.order.shipping_address.country_code }}

Estimated Delivery Date
{{ data.properties.estimated_delivery_date |date('m/d/Y') | default('An estimated delivery date is not available at this time') }}

Shipment Details
{{ data.properties.carrier_name | upper }}: <a href="{{ data.order.url }}">{{ data.properties.tracking_code }}</a>

Order Summary
{% for item in data.order.meta.shopify_order.line_items %}
<img src="{{ item.image.src }}" alt="{{ item.title }}">
Quantity: {{ item.current_quantity }}
Price: {{ item.final_line_price }}
{% endfor %}

Shipment First In Transit (Carrier Picked Up)

CODE
{% set data = trigger.getCustomEventData() %}

Your order is now on the way to you!
Order {{ data.order.meta.shopify_order.name }}

Hi {{ data.order.shipping_address.first_name | default('friend') }}, your package is on the move.

We’ll send you another email when your order is out for delivery with {{ data.properties.carrier_name }}. 

Tracking Number: <a href="{{ data.order.url }}">{{ data.properties.tracking_code }}</a>
 
Shipping Address
{{ data.order.shipping_address.first_name }} {{ data.order.shipping_address.last_name }}
{{ data.order.shipping_address.address1 }}
{{ data.order.shipping_address.address2 }}
{{ data.order.shipping_address.city }}, {{ data.order.shipping_address.province_code }} {{ data.order.shipping_address.zip }} {{ data.order.shipping_address.country_code }}

Estimated Delivery Date
{{ data.properties.estimated_delivery_date |date('m/d/Y') | default('An estimated delivery date is not available at this time') }}

Shipment Details
{{ data.properties.carrier_name | upper }}: <a href="{{ data.order.url }}">{{ data.properties.tracking_code }}</a>

Out for Delivery

CODE
{% set data = trigger.getCustomEventData() %}

Your order is our for delivery!
Order {{ data.order.meta.shopify_order.name }}

Your package is now out for delivery with and it will be dropped off later today. We’ll update you as soon as it has arrived. 

Tracking Number: <a href="{{ data.order.url }}">{{ data.properties.tracking_code }}</a>
 
Shipping Address
{{ data.order.shipping_address.first_name }} {{ data.order.shipping_address.last_name }}
{{ data.order.shipping_address.address1 }}
{{ data.order.shipping_address.address2 }}
{{ data.order.shipping_address.city }}, {{ data.order.shipping_address.province_code }} {{ data.order.shipping_address.zip }} {{ data.order.shipping_address.country_code }}

Estimated Delivery Date
{{ data.properties.estimated_delivery_date |date('m/d/Y') | default('An estimated delivery date is not available at this time') }}

Shipment Details
{{ data.properties.carrier_name | upper }}: <a href="{{ data.order.url }}">{{ data.properties.tracking_code }}</a>

Attempted Delivery

CODE
{% set data = trigger.getCustomEventData() %}

Failed Delivery Attempt
Order {{ data.order.meta.shopify_order.name }}

Looks like {{ data.properties.carrier_name }} has attempted to deliver the package without success.
Please continue to check the tracking page for updates, and be on the lookout for another notification from us once the package is delivered. 

Tracking Number: <a href="{{ data.order.url }}">{{ data.properties.tracking_code }}</a>
 
Shipping Address
{{ data.order.shipping_address.first_name }} {{ data.order.shipping_address.last_name }}
{{ data.order.shipping_address.address1 }}
{{ data.order.shipping_address.address2 }}
{{ data.order.shipping_address.city }}, {{ data.order.shipping_address.province_code }} {{ data.order.shipping_address.zip }} {{ data.order.shipping_address.country_code }}

Estimated Delivery Date
{{ data.properties.estimated_delivery_date |date('m/d/Y') | default('An estimated delivery date is not available at this time') }}

Shipment Details
{{ data.properties.carrier_name | upper }}: <a href="{{ data.order.url }}">{{ data.properties.tracking_code }}</a>

Delivered

CODE
{% set data = trigger.getCustomEventData() %}

Your order was delivered by {{ data.properties.carrier_name }}!
Order {{ data.order.meta.shopify_order.name }}

Don’t see your package? Occasionally, carriers mark a package delivered before physically dropping it off. If you don’t receive your order within 24 hours or have any questions, please reply to this email and we’ll be happy to give you a hand.

Tracking Number: <a href="{{ data.order.url }}">{{ data.properties.tracking_code }}</a>
 
Shipping Address
{{ data.order.shipping_address.first_name }} {{ data.order.shipping_address.last_name }}
{{ data.order.shipping_address.address1 }}
{{ data.order.shipping_address.address2 }}
{{ data.order.shipping_address.city }}, {{ data.order.shipping_address.province_code }} {{ data.order.shipping_address.zip }} {{ data.order.shipping_address.country_code }}

Delivery Date
{{ data.properties.tracker_delivered_at |date('m/d/Y') }}

Shipment Details
{{ data.properties.carrier_name | upper }}: <a href="{{ data.order.url }}">{{ data.properties.tracking_code }}</a>

Available for Pickup

CODE
{% set data = trigger.getCustomEventData() %}

Your order is available for pickup.
Order {{ data.order.meta.shopify_order.name }}

{{ data.properties.carrier_name }} let us know that they have your package and it is now available for pickup at the location listed on the carrier tracking page.

Tracking Number: <a href="{{ data.order.url }}">{{ data.properties.tracking_code }}</a>

Return to Sender

CODE
{% set data = trigger.getCustomEventData() %}

Your order is set to return to us.
Order {{ data.order.meta.shopify_order.name }}

Unfortunately {{ data.properties.carrier_name }} could not deliver your package and they intend to return it to us. This can happen if the shipping address does not exist, is incorrect, or you have moved recently without providing a forwarding address. It can also happen if someone at the address declined to take the package.

Please check the shipping address below and reply to this email with any corrections to it. If you don't hear from us soon, please contact us so we can help you get your items.

{{ data.properties.carrier_name | upper }} Tracking Number: <a href="{{ data.order.url }}">{{ data.properties.tracking_code }}</a>
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.