For the complete documentation index, see llms.txt. This page is also available as Markdown.

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

VIDEO: How to Set Up a Post-Purchase Personalization | VIDEO: How to Set Up a Post-Purchase Test

Post-Purchase Upsell Personalizations let you show product upsells to customers 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. Currently, only one-step offers are available. Our team is developing multi-step funnels. If you're interested, let us know here.

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 upsell page.

Offer expires after (minutes) Set how long the post-purchase upsell will be available for your customer to act on. The default and max for this is 60 minutes, but you can set it for any number of minutes below that. After this time has passed, if the customer has not accepted or declined the offer, they will be redirected to the thank you page.

Discount

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

Percentage or Amount off Define the amount off each item in the upsell. This discount applies uniformly. At this time, you cannot set different discounts for individual items.

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 from top to bottom. Once a rule is met, that rule is applied and evaluation of following rules stops.

IF targeting type options:

Option
Description

Anything is in order

Rule applies to any order

Specific products

Order contains or does not contain a specific product

Products from collection

Order contains or does not contain a product from a collection

Product with tag

Order contains or does not contain a product with a specific tag

Cart subtotal

Order meets a subtotal condition

Cart item count

Order contains a set number of items

THEN SHOW targeting type options:

Option
Notes

Shopify recommendations (reccomended)

Uses Shopify's Recommendations API, which automatically surfaces products based on purchase history, product descriptions, and collection relationships.

Specific products

Show a fixed set of products

Products from collection

Show products from a specific collection

Products with tag

Show products matching a tag

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"). 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.

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

Countdown timer

This is toggled off by default, but if enabled, it will add a countdown timer to your post-purchase upsell. Starts when a visitor arrives at the post-purchase upsell and lasts a set duration. Timer must be equal to or less than the offer expiration time set in the general settings.

Duration (minutes) The length of time the countdown timer starts at.

Countdown text The text that is displayed in your countdown timer. Use the dynamic field to show the time remaining.

When timer expires Control whether the timer is removed or show expired text.

Expired text Controls what is displayed once the timer has expired. Can also define the background color, text color, alignment and spacing.

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, there is an option to subdue the text.

  • Quantity Toggles a quantity input so customers can choose how many units to add. Off by default. If enabled, you can define a max limit and quantity label.

Buttons

  • Button text The label on the primary CTA button. Defaults to "Accept offer," and can be customized to match your brand voice (e.g., "Yes, add it," "Add to my order").

Colors and typography are pulled directly from your Shopify checkout brand settings (not custom pickers). You're choosing from preset options defined in your checkout theme. Shopify locks down checkout styling to maintain security and consistency, so customization is limited to basic theme settings like accent colors.

Step 3: Preview your upsell

As you make changes, the preview in the Preview tab updates 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

  • Please note that if you are only upselling one item & have the price breakdown enabled:

    • The tax displayed is illustrative only and won't match live behavior — the live behavior will display the correct amount for tax, and this can be confirmed by previewing on your site

    • Shipping will always display as $0 because this will be added to the order they already placed, so there is no extra shipping fee required

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.

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 SettingsCheckout

  2. Scroll to the Post-Purchase page section

  3. In the Post-Purchase dropdown, select Intelligems

  4. Click Save

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

Step 6: Place a Test Order to Preview

In order to preview the experience, you need to place a test order. How you do this depends on your store type.

If you're on a Shopify test/development store: You can use Shopify's Bogus Gateway or Shopify Payments' Test Mode to simulate orders without real transactions. Learn how to set those up here.

If you're on a live production store: Use your existing internal test order practices. This typically involves placing and then immediately cancelling and refunding the order.

Because this feature appears after checkout is complete, the above methods are the only way to preview it.

Whichever method you use, the goal is the same: complete the checkout flow so the post-purchase page triggers.

Last updated

Was this helpful?