Post-purchase cross-sell flows turn completed orders into additional revenue by recommending relevant complementary products while the customer’s purchase intent is still high. The key to relevance is branching on what was purchased — a customer who bought shoes is a natural candidate for an accessories recommendation, while a customer who bought a completely different category warrants a different message or no message at all. This recipe branches on product tag to send category-specific cross-sell recommendations.Documentation Index
Fetch the complete documentation index at: https://docs.digifist.com/llms.txt
Use this file to discover all available pages before exploring further.
Flow structure
Node-by-node breakdown
Trigger — New Order Placed
Trigger:ORDER_PLACED
Fires immediately when a Shopify order is created. The triggering order’s product data — including product tags — is available for condition evaluation.
Recommended frequency cap: 7 days — prevents customers who place multiple orders in the same week from receiving multiple cross-sell messages from the same automation. Each order is a valid trigger over time, but daily sends from the same flow are excessive.
Condition — Product in Order Has Tag = “Shoes”
Condition type:PRODUCT_IN_ORDER_HAS_TAG
Tag value: "Shoes"
Evaluates whether any product in the triggering order carries the specified Shopify product tag. If the order contains at least one product tagged “Shoes,” the customer takes the YES path.
The NO path exits without sending a message in this recipe — it is reserved for customers whose orders do not contain the targeted product category. Extend the flow by adding additional condition branches for other product tags if you want to send category-specific recommendations for multiple product types.
Delay — 3 days
A 3-day delay gives the customer time to receive and experience the purchased product before the recommendation arrives. Cross-sell messages sent immediately after purchase can feel transactional. A 3-day gap feels like a helpful follow-up rather than an immediate upsell. Adjust the delay based on your product type — physical goods that take time to arrive may warrant a longer delay (5–7 days) timed closer to the expected delivery date.Action — Accessories recommendation template
Send a template recommending accessories or complementary products relevant to what the customer purchased. Use a product-specific template if you have one, or a general accessories recommendation with a curated collection link. Suggested variable mapping:{{1}}→customer.first_name{{2}}→order.product_name(the purchased product for context)
Extending this recipe
Add more product categories Chain additionalPRODUCT_IN_ORDER_HAS_TAG conditions on the NO path of the first condition to handle other categories — skincare, electronics, apparel, and so on — each routing to its own relevant recommendation template.
Add an order value filter
Before the product tag condition, add an ORDER_VALUE > X condition to limit cross-sell messages to orders above a certain threshold — focusing effort on higher-value customers.
Add a purchase recency check
After the delay, add an ORDER_RECENCY condition to check whether the customer has already placed another order since the trigger fired. If they have, skip the cross-sell — they are already engaged.
Templates required
This recipe requires one approved template per active product category branch:| Template | Purpose |
|---|---|
| Accessories recommendation | Cross-sell message for customers who purchased from the “Shoes” category |
Related recipes
- Abandoned Checkout Recovery — For customers who did not complete a purchase
- VIP Win-Back — For customers who purchased historically but have lapsed
Related guides
- Conditions — PRODUCT_IN_ORDER_HAS_TAG condition configuration
- Triggers — ORDER_PLACED trigger behavior and data availability