> ## 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.

# Post-Purchase Cross-Sell

> Send product-specific recommendations after an order based on what the customer purchased.

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.

## Flow structure

```
Trigger: New Order Placed
→ Condition: Product in Order Has Tag = "Shoes"
    YES → Delay: 3 days
          → Action: Send accessories recommendation template
    NO  → (exit — no message sent for other categories)
```

## 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.

<Tip>
  To handle multiple product categories in a single flow, stack multiple condition nodes — one per category — each on the NO branch of the previous. Each YES branch leads to its own delay and action. This creates a linear evaluation where each customer is routed to the first category that matches their order.
</Tip>

***

### 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 additional `PRODUCT_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 |

Add one template per additional category branch if extending the recipe.

## Related recipes

* [Abandoned Checkout Recovery](./abandoned-checkout) — For customers who did not complete a purchase
* [VIP Win-Back](./vip-win-back) — For customers who purchased historically but have lapsed

## Related guides

* [Conditions](../conditions) — PRODUCT\_IN\_ORDER\_HAS\_TAG condition configuration
* [Triggers](../triggers) — ORDER\_PLACED trigger behavior and data availability
