---
title: "Send a shipping confirmation email when an order is fulfilled"
description: "When an order is fulfilled, send the customer a branded shipping confirmation from your own mailbox, in the customer's language, with the tracking number, the tracking link and the order status page."
canonical: "https://docs.workflow-transactional-email.app/template-shipping-confirmation-email"
---

# Send a shipping confirmation email when an order is fulfilled

When an order is fulfilled, send the customer a branded shipping confirmation from your own mailbox, in the customer's language, with the tracking number, the tracking link and the order status page.

One trigger and one **Send Transactional Email** step. The recipient, the language and the variables are already filled in from Flow's data; you only choose the sender and the layout.

![The workflow in Shopify Flow: Send a shipping confirmation email when an order is fulfilled](https://cdn-dev.eu.codecreationlabs.cloud/crm-tool/uploads/SjJ78gKLnLlocopCui3Cs62dJbGZ7F1n/9f4eeb55e517fc28.jpg)
*The complete workflow as it looks in Shopify Flow.*

## What it needs

- The app installed, with an **email sender** connected ([Email senders overview](https://docs.workflow-transactional-email.app/email-senders-overview.md)) and an **email layout** for this email ([Build an email layout](https://docs.workflow-transactional-email.app/build-an-email-layout.md)).
- After the import, open the **Send Transactional Email** step and choose that sender and that layout. The file cannot carry them: they belong to your store.
- Nothing else: **Order fulfilled** is a built-in Shopify trigger.

## Get the workflow

1. Download the `.flow` file attached at the bottom of this page.
2. In your Shopify admin open **Flow**, click **Import** and choose the file.
3. Open the **Send Transactional Email** step, choose the sender and the layout, and save.
4. Click **Turn on workflow**.

The file is an export from Shopify Flow itself. Do not edit it by hand; change the workflow in Flow after importing it.

## How it works

1. **Order fulfilled** starts the workflow when a fulfillment is created for an order.
2. **Send Transactional Email** sends the layout you choose to `{{ order.email }}`, in the customer's language (`{{ order.customerLocale }}`), with these variables: `customer_name`, `order_name`, `tracking_numbers`, `tracking_url` and `status_page_url`.

## Build the layout

Use `{{ variables.tracking_numbers }}` and `{{ variables.tracking_url }}` in the layout, for example as the link of a button. Every variable the step sends is read in the layout as `{{ variables.name }}`; the **Use in Shopify Flow** card on the layout page lists the ones your layout uses. See [Passing data from Shopify Flow](https://docs.workflow-transactional-email.app/passing-data-from-shopify-flow.md).

## Make it yours

- Add a condition on `order.fulfillments` so the email only goes out for the first fulfillment of an order.
- Add **Reply-To** in the step so questions about the delivery reach your support inbox.

## Next steps

- [Workflow templates](https://docs.workflow-transactional-email.app/workflow-templates.md) - all templates.
- [Send emails in your customer's language](https://docs.workflow-transactional-email.app/layout-languages.md) - a translation per customer language, picked by the Language field.
- [History and troubleshooting](https://docs.workflow-transactional-email.app/history-and-troubleshooting.md) - check that the email went out.
