When your flow starts with a Shopify trigger, SleekFlow can pull in details from that Shopify event, like a customer's email, an order's tracking number, or the items left in an abandoned cart. These details are called variables.
This guide helps you:
- Find the right variable for what you want to do, for example sending a customer their tracking number
- Know which flow trigger you need in order to use it
- Understand what to expect if a variable comes back empty
Before you begin
Keep the following in mind when using Shopify variables:
- Variables depend on the trigger: Each Shopify trigger provides a different set of variables. For example, order information is only available when your flow starts with a Shopify order trigger.
- A variable can be available but have no value: Shopify may not have the information yet for a specific order, customer, or abandoned cart. In this case, the variable is available but returns an empty value.
Using variables in a message
In a “Send message” node, click the {X} icon to select a variable.
The variables available in the message are the same as the variables available from your Shopify trigger. If a variable is available in your flow, you can also use it in a message.
Order variables
These variables are available when your flow starts with the following triggers:
- Shopify order is created
- Shopify order is updated
| What you want | Variable to use | Example |
| Order ID | order/id | 5723841923 |
| Customer's phone number | order/primary_phone | +85212345678 |
| Customer's email | order/customer/email | jane@example.com |
| The products in the order | order/normalized_line_items | Blue T-Shirt x 2 |
| When the order was created | order/created_at | 2026-08-01, 10:15am |
| When the order was last updated | order/updated_at | 2026-08-03, 9:00am |
| When the order was processed | order/processed_at | 2026-08-01, 10:16am |
| When the order was cancelled | order/cancelled_at | Blank if not cancelled |
| When the order was closed | order/closed_at | Blank if not closed |
| Shipping method | order/shipping_method | Standard Shipping |
| Shipping carrier | order/tracking_company | FedEx |
| Tracking number | order/tracking_number | 1Z999AA10123456784 |
| Tracking link | order/tracking_url | https://track.example.com/... |
Shipping and tracking variables
These variables are available when your flow starts with the following triggers:
- Shopify order is created
- Shopify order is updated
| What you want | Variable to use | Example |
| Shipping method | order/shipping_method | Standard Shipping |
| Shipping carrier | order/tracking_company | FedEx |
| Tracking number | order/tracking_number | 1Z999AA10123456784 |
| Tracking link | order/tracking_url | https://track.example.com/... |
These only work on an order trigger. They won't appear if your Flow starts with a customer or abandoned cart trigger.
Note: Tracking information may be empty when an order is first placed. Shopify usually adds the shipping carrier, tracking number, and tracking link after the order has been fulfilled and shipping information is available.
Note: If an order is shipped in multiple packages, Shopify may return multiple tracking numbers or links. We recommend sending yourself a test message first to check how the information appears to customers.
Customer variables
These variables are available when your flow starts with the following triggers:
- Shopify customer is created
- Shopify customer is updated
| What you want | Variable to use | Example |
| Customer ID | customer/id | 7734921 |
| Customer's phone number | customer/primary_phone | +85212345678 |
| Customer's email | customer/email | jane@example.com |
| Customer's first name | customer/first_name | Jane |
| Customer's last name | customer/last_name | Doe |
| Customer's phone number, as entered in Shopify | customer/phone | +85212345678 |
| When the profile was created | customer/created_at | 2026-08-01, 9:00am |
| When the profile was last updated | customer/updated_at | 2026-08-03, 10:16am |
Which phone number variable should I use?
There are two customer phone number variables:
- customer/primary_phone: The customer's primary phone number processed by SleekFlow. We recommend using this variable because it is less likely to be empty.
- customer/phone: The phone number stored directly in Shopify.
For most flows, we recommend using customer/primary_phone.
Abandoned cart variables
These variables are available when your flow starts with the following triggers:
- Abandoned cart is created
- Abandoned cart is updated
| What you want | Variable to use | Example |
| Customer ID | checkout/id | 7734921 |
| Customer's phone number | checkout/primary_phone | +85212345678 |
| Customer's email | checkout/email | jane@example.com |
| The products left in the cart | checkout/normalized_line_items | Blue T-Shirt x 1 |
| Checkout session ID | checkout/token | a1b2c3... |
| Cart session ID | checkout/cart_token | d4e5f6... |
| Payment method | checkout/gateway | shopify_payments |
| When the cart was created | checkout/created_at | 2026-08-03, 10:16am |
| Marketing opt-in | checkout/buyer_accepts_marketing | true / false |
If a variable isn't showing data
If a variable does not show any information, check the following:
- Check the flow trigger: Make sure the trigger matches the information you want to use. For example, tracking information requires an order trigger.
- Check whether the information is available in Shopify: Some variables only receive a value after a specific event happens. For example, order/cancelled_at remains empty until the order is cancelled, while tracking information may remain empty until the order is fulfilled.
- Check whether the data has synced to SleekFlow: Go to your Shopify integration settings and open the Data Sync tab to confirm that the relevant order or customer has synced successfully.