# How to Set Up a Post Purchase Upsell Personalization or Test

{% hint style="success" icon="flask-round-potion" %}
Post purchase upsells are currently in beta! If you'd like early access, please request so [here](https://portal.usepylon.com/intelligems/forms/post-purchase-access-request).
{% endhint %}

Post purchase upsells let you add product upsells that are shown to a customer immediately after they place an order — either for all visitors or a targeted audience. If you want to test variations against each other, create a Post purchase upsell test instead. The setup process is the same.

## Step 1: Create a post purchase upsell

1. Go to **Post purchase** in your Intelligems dashboard.
2. Select the upsell type you want to create. Right now, this will be a one step offer. Our team is working on building a post purchase funnel - if you're interested in this, let us know [here](https://portal.usepylon.com/intelligems/forms/post-purchase-funnel-interest-form).

## Step 2: Configure your upsell

#### General Settings

**Exclude out of stock items** Set whether to exclude out of stock items from being displayed as an upsell.

**Exclude products in order** Set whether to exclude products that are in the order from being displayed as an upsell.

**Number of products to show** Set how many products to display on the upsells page.

#### Discount

**Discount value** Define whether there is no discount, a percentage or fixed amount off.

**Percentage or Amount off** Define the amount off each item in the upsell.

#### Order rules

**Rules** Each rule has two parts: a condition (IF) and a result (THEN SHOW). Use the + Add Rule button to add multiple rules. Rules are evaluated in order. Once a rule is met, it will stop moving forward and apply that rule.

**IF — targeting type options:**

<table><thead><tr><th width="211.72265625">Option</th><th>Description</th></tr></thead><tbody><tr><td>Anything is in order</td><td>Rule applies to any order</td></tr><tr><td>Specific products</td><td>Order contains or does not contain a specific product</td></tr><tr><td>Products from collection</td><td>Order contains or does not contain a product from a collection</td></tr><tr><td>Product with tag</td><td>Order contains or does not contain a product with a specific tag</td></tr><tr><td>Cart subtotal</td><td>Order meets a subtotal condition</td></tr><tr><td>Cart item count</td><td>Order contains a set number of items</td></tr></tbody></table>

{% hint style="warning" %}
Adding multiple products, collections, or tags to one condition means any single match will trigger the rule. To require more than one condition to be true, use + AND condition. For example, in the below, we would return products that were in either the "Home page" OR "All" collection.

<img src="https://2052204893-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2SvefuMLsJyJPAcVXeWc%2Fuploads%2Fq9iteQS1dzemOhvZPo58%2FScreenshot%202026-03-24%20at%204.07.07%E2%80%AFPM.png?alt=media&#x26;token=e6b01e84-94df-43e1-a848-d385998dd208" alt="" data-size="original">

If we wanted to return products that were in both the "Home page" AND "All" collections, we would want to set it up as an + AND condition like the below:

<img src="https://2052204893-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2SvefuMLsJyJPAcVXeWc%2Fuploads%2FDIuUEim4wyWZCq9dxOdY%2FScreenshot%202026-03-24%20at%204.08.43%E2%80%AFPM.png?alt=media&#x26;token=fc5a78a3-f016-40a9-bd67-796413f88d9d" alt="" data-size="original">
{% endhint %}

**THEN SHOW — targeting type options:**

<table><thead><tr><th width="222.5078125">Option</th><th>Notes</th></tr></thead><tbody><tr><td>Shopify recommendations</td><td>Uses Shopify's recommendation engine (recommended)</td></tr><tr><td>Specific products</td><td>Show a fixed set of products</td></tr><tr><td>Products from collection</td><td>Show products from a specific collection</td></tr><tr><td>Products with tag</td><td>Show products matching a tag</td></tr></tbody></table>

{% hint style="warning" %}
Adding multiple tags to one condition means any single match will trigger the rule. To require more than one condition to be true, use + AND condition. For example, in the below, we would return products that had either the "drinkware" OR "mug" tag.![](https://2052204893-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2SvefuMLsJyJPAcVXeWc%2Fuploads%2FsqqS9XTEoGVDJievxj10%2FScreenshot%202026-03-24%20at%204.03.25%E2%80%AFPM.png?alt=media\&token=33aa136f-f5e0-4a99-8d85-62a3b93b2028)

If we wanted to return products that had both the "drinkware" AND "mug" tag, we would want to set it up as an + AND condition like the below:

<img src="https://2052204893-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2SvefuMLsJyJPAcVXeWc%2Fuploads%2Fu3AAznJYuK0wNlEBGqcV%2FScreenshot%202026-03-24%20at%204.05.53%E2%80%AFPM.png?alt=media&#x26;token=a0da5b14-a265-4ade-beca-da6f4966c29d" alt="" data-size="original">
{% endhint %}

#### Content & Layout

**Callout banner**

**Banner title** The bold headline shown at the top of the upsell widget (e.g., "It's not too late to add this to your order"). Optional — leave blank to hide the title row entirely.

**Banner body** Supporting text beneath the title. Supports dynamic variables like `{{Product title}}` and `{{Saved percentage}}` to personalize the message automatically.

**Alignment** Controls the horizontal alignment of the banner text (Left, Center, Right).

**Background** The background color style for the banner section (e.g., Secondary uses your theme's secondary color).

**Border** Adds a border around the banner. Set to None to remove it.

**Spacing** Controls the padding inside the banner (e.g., Tight = less padding, Relaxed = more).

**Product**

* **Image**
  * **Fit** How the product image fills its container. "Cover" crops the image to fill the space without distortion.
  * **Aspect ratio** The shape of the product image frame (e.g., 1:1 Square or Original).
  * **Show border** Toggles a border around the product image.
* **Name**
  * **Heading level** Sets the HTML heading level for the product name (Auto lets Shopify decide based on page context — recommended for most cases).
* **Pricing** Displays the product price. If a discount is configured, both the original and sale price will show.
* **Description** Toggles whether the product's Shopify description appears below the product name. Off by default to keep the widget clean. If enabled, can enable text to be subdued.
* **Quantity** Toggles a quantity input so customers can choose how many units to add. Off by default. If enabled, can define a max limit and the quantity label.

**Buttons**

* **Button text** The label on the primary CTA button. Defaults to "Accept offer" — customize to match your brand voice (e.g., "Yes, add it," "Add to my order").

{% hint style="warning" %}
All colors and typography come from your Shopify checkout brand settings. They are not custom color pickers - you're selecting from preset colors defined in your checkout theme. You can't fully customize checkout block colors or typography because the checkout is a secure, locked environment for security and consistency, limiting changes to basic theme settings like accent colors. This is a Shopify limitation.
{% endhint %}

### Step 3: Preview your upsell

As you make changes, the preview in the preview tab will update in real-time to show how your upsell will appear after checkout:

* Review the overall layout and spacing
* Check that colors match your brand
* Confirm the products returned are what you expect
* Verify text is readable and properly sized

{% hint style="info" %}
The preview shows your upsell in the Intelligems interface. The final appearance on your Shopify checkout may have slight variations based on your checkout theme settings.
{% endhint %}

### Step 4: Save and choose your setup type

Click **Save** when you're satisfied with your design. Choose one:

* **Launch as personalization** — show this block as a Personalization to all visitors or a targeted audience
* **Launch as test** — run multiple variations against each other

### Step 5: Enable Intelligems in Shopify

This step is required. The upsell won't appear after checkout until it's enabled in Shopify.

1. In Shopify Admin, go to **Settings** → **Checkout**
2. Scroll to the **Post-purchase page** section
3. In the **Post-purchase** dropdown, select **Intelligems**
4. Click **Save**

Once this step is completed, you can preview your post purchase personalization or test on your live website by going to the Preview tab → selecting Open Full Screen Preview.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.intelligems.io/post-purchase-upsells/how-to-set-up-a-post-purchase-upsell-personalization-or-test.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
