# Activating and configuring Rokt Thanks Source: https://docs.aftersell.com/aftersell/activating_and_configuring_rokt_thanks How to enable and design Rokt Thanks on the confirmation page In order to generate additional revenue from Rokt Thanks on your Thank You page, Order Status page, and customer account pages, you must first set-up and enable Rokt Thanks from the Aftersell admin. To do so: Navigate to the *Rokt Thanks* tab in the navigation menu.\\ Image Click "Get Started" Image Select your industry vertical. If you do not see the exact industry, choose the option that matches your industry the closest. Image Review our [Terms and Conditions](https://www.rokt.com/policies/aftersell-powered-by-rokt-services-agreement) & [Privacy Policy](https://www.rokt.com/policies/privacy-policy). Once you've done so, click the checkbox to agree to them. Then click "Save & Continue" to move onto the next step. Image In order to get paid for your Rokt Thanks offers, you'll need to provide a PayPal email address. If you do not have a PayPal account, you can still enter the email address that you wish to receive payments through, and PayPal will help you create an account once your first payment has been processed. Learn more about payouts [here](/aftersell/rokt_thanks_payouts). SCR 20260630 Lppx Afterwards, the app will show you a loading screen while we create your Rokt account and give you access to our Rokt Thanks feature. This **does not** enable Rokt Thanks on your store right away. Image Once your account is created, enable Rokt Thanks by clicking the "Enable" button in the setup walkthrough. Image **NEXT:** We'll be placing the offers on your store. ## **App block placement** Rokt Thanks is built on Shopify's Checkout Extensibility framework, requiring app block placement on Shopify pages for it to render. The app block we use for Rokt Network products is called the 'Rokt Placement' block. To place this block on your Thank You page and Order Status page, simply click on the 'Edit Thank You Page' and 'Edit Order Status Page' buttons from the Rokt Thanks admin to be redirected to the Shopify Checkout Editor. Rokt Thanks Onboarding Block Placement From there, in any of the sections on your page, click 'Add block' and select 'Rokt Placement' from the list of Aftersell blocks. Image Once placed, make sure to click "Save". Image When you navigate back to the Rokt Thanks admin, we will detect the block placement automatically and your task checklist will update. Please note that the setup will remain incomplete until the app blocks are saved successfully in the Shopify Checkout Editor. Image *** ## **Rokt Vaulted Rewards (Customer Account Pages)** **Overview** Shopify has introduced a new generation of customer account pages - specifically the Profile and Orders pages - which support app blocks. If your store has migrated to these new account pages, you can now display Rokt Thanks ads in these placements, the same way they appear on your Thank You page. This represents a meaningful incremental revenue opportunity, with an estimated 10-20% uplift on top of your current placements. **Requirements** Your store must be using Shopify's new customer account pages. You can confirm this by checking your login experience: Click on the "My Account" button in your storefront's navigation bar. If the login screen shows a "Continue with Shop" button in a distinctive purple/indigo color and uses Shop Pay authentication, **your store is using the new account pages and is eligible for this placement.** Shop Pay Logged in view: Logged In **Step 1: Start Setup** A new card will appear on the "Rokt Thanks" tab in Aftersell. Click "Start Setup" and a loader will appear. While loading, two new pages will be created in your account - one for Orders and one for Profile - with all dependencies attached automatically. New Rokt **Step 2: Give Permissions** Certain access scopes are required for Rokt to display on your Account pages. Click the "Give Permissions" button to accept these scopes. This will open a prompt to grant access. Image **Step 3: Place App Blocks** Once permissions are granted, click "Edit Orders Page" to open your Shopify editor. Image We'll need to add the "Rokt Placement" app block to **both** the Profile and Order pages. So repeat these following steps for both surfaces. First, select the surface from the dropdown at the top of the Shopify Editor. Image Click "Add Block" and select "Rokt Placement". Image Once placed, make sure to click "Save". Repeat the same steps for the other surface. Image That's it - Rokt Thanks is now live on your account pages. Image Vaulted rewards is available to stores using Shopify's new customer accounts. If you don't see the vaulted rewards option in your Rokt Thanks admin, your store may not be eligible yet. *** ## **Appearance** In Shopify's Extensibility framework, there are some appearance options available to you. These customization options are controlled by Shopify from within their Checkout Editor. You can access the Checkout Editor via Shopify's Settings > Checkout > Customize. Rokt Thanks will specifically inherit the typography selected for your checkout pages as well as the Button and Accent colors specified in the Color section. Image *** ## **Preview the placement** To view the placement on your actual pages, follow these steps: 1. Enable Rokt Thanks in the Aftersell admin 2. Ensure the 'Rokt Placement' app blocks are placed on your Thank You page, Order Status page, and (if eligible) customer account pages via the Shopify Checkout Editor 3. Wait 10 minutes after enabling the placement before conducting a test purchase 4. Make a test purchase on your store and view the pages If Rokt Thanks is not showing as expected click the button below to learn more: [Learn More](/aftersell/why_is_rokt_thanks_not_showing_on_my_confirmation_page) # Adding a checkout widget to your Shopify checkout Source: https://docs.aftersell.com/aftersell/adding_a_checkout_widget_to_your_shopify_checkout How to customize Shopify checkout with Aftersell widgets, add app blocks like Testimonials, and adjust their position before going live After [creating your first checkout widgets in Aftersell](/aftersell/creating_your_first_checkout_widget), the next step is to add the widgets in your Shopify checkout. *** ## Step 1: Navigate to Shopify checkout customization page There are two ways to do this: 1. Navigate to the "Settings" tab in Shopify. Click on "Checkout" in the left hand side navigation. Click "Customize" next to your desired checkout profile. 2. Click on the "Open Shopify Checkout Editor" in the bottom right of the Aftersell checkout editor page. The first option will give you more granularity on which checkout profile you are editing, whereas the second option will bring you to the live profile version of your checkout. We recommend testing on a draft version first to ensure everything is working as you desire before setting it live. Image *** ## Step 2: Add an app block Click "Add app block" in the Shopify checkout customization page. Image You will be presented with the different widget options that Aftersell offers. In this example, we will be selecting the Trust Badges Widget. Image After selecting your desired widget, select the correct placement and then press save in the top right corner. You may want to consider checking the "Include app block in Shop Pay" option if you want your checkout widgets displaying in the Shop Pay checkout. Image *** ## Step 3: Change app block position Drag and drop the app block to your desired location and press save in the top right corner. Image # Affiliate program Source: https://docs.aftersell.com/aftersell/affiliate_program This article outlines how to join and earn with the Aftersell affiliate program. If you're a fan of Aftersell and know others who would benefit from it, we've made it easy for you to earn extra income by simply sharing the word. The Aftersell Affiliate Program offers you the opportunity to earn a **15% commission every month for up to 12 months** for each new customer you refer who continues to use the app. *** ### How It Works 1. **Sign Up** - Visit our affiliate page, submit your application, and receive your personalized referral link. 2. **Share Your Link** - Promote your link through the channels you already use, such as social media, blogs, email newsletters, YouTube, or direct messages. Share it wherever you naturally connect with your audience. 3. **Earn Commission** - When someone subscribes to Aftersell using your link and remains a paying customer, you'll receive **15% of their monthly subscription for up to 12 months.** *** ### Commission Structure * **Rate:** 15% of the referred customer's monthly subscription fee. * **Duration:** Commissions are paid for up to 12 months, provided the referred customer continues to use the app. *** ### Payouts * **Timing:** Commissions are paid on the 15th of the following month. * **Payment methods:** PayPal, Stripe, or direct deposit. * **Minimum payout:** \$5. * **Delivery:** Payments arrive within 2–10 business days after processing. * **Setup required:** You must connect a payment provider in your PartnerStack dashboard to receive payouts. *** ### Rules and conditions * Referrals must be made using your personalized affiliate link. Commissions cannot be earned retroactively if a referral was made without it. * You must sign up for the program to receive your referral link before sharing. * The referred customer must be a new Aftersell customer and remain a paying subscriber for commissions to be paid. *** ### Application review process Applications are reviewed by the Affiliates team on a first-come, first-serve basis. * **Timeline:** Applications typically take up to 7 business days to review. This may be slightly extended during weekends or holidays. * **Notification:** You will receive an email once your application has been reviewed. Application reviews are handled in the order they are received and cannot be expedited. If you have recently applied, please allow the full review period before following up. For any questions about your application, send a message via your **PartnerStack account** once it has been created and our Affiliates team will be happy to help. *** ### Who Is This For? This program is ideal for: * Influencers and content creators * Bloggers and writers * Ecommerce coaches and consultants * Anyone connected to online store owners Whether you have a large following or a small, engaged network within the Shopify community, your referrals can add up quickly. *** **Ready to start earning?** [Join the program](https://aftersellbyrokt.partnerstack.com/?group=affiliateaftersell) Already a member? For any questions about the Affiliate Program, send a message via your PartnerStack account and our Affiliates team will be happy to help. # Aftersell billing & pricing Source: https://docs.aftersell.com/aftersell/aftersell_billing_pricing This guide will walk through Aftersell's pricing structure and frequently asked questions related to billing. Your pricing on Aftersell depends on which features are on your plan, summarized below. ## Which pricing applies to you? **Which Aftersell features are on your plan?** → [**Post-purchase funnels only**](/aftersell/post_purchase_overview) → You will see one Aftersell usage charge per month, sized by your store's order volume. See the Post-purchase pricing section below. → [**Checkout only**](/aftersell/checkout-dashboard-overview) (Shopify Plus only) → You will see one \$99 flat monthly charge while the plan is active. → **Both Post-purchase funnels and Checkout** (Shopify Plus only) → Both pricing sections apply to you. You may see two separate Aftersell line items on your Shopify invoice each month, one per feature. *** ## How Aftersell billing works Aftersell submits charges to Shopify monthly through Shopify's usage charge API. Two things worth knowing about how Aftersell charges in practice: * **Each feature on your plan has its own 30-day cycle.** Post-purchase and Checkout are billed independently. Each charges once every 30 days from when it first became billable on your plan. * **The charge fires as long as the feature is on your plan.** Disabling individual widgets or settings inside the Aftersell admin does not stop the monthly charge. The charge stops only when you uninstall Aftersell or switch to a plan that does not include the feature. *** ## Free trial Every new install gets a 30-day free trial per feature on your Aftersell plan. No charges occur during the trial. The free trial is **per feature, not per app**. If you signed up for Post-purchase funnels only at install and add Checkout later, Checkout starts its own fresh 30-day trial from the day it is added to your plan. Your Post-purchase trial status is not affected. The two features can be in different trial states at the same time. If you previously uninstalled Aftersell and are reinstalling, your free trial eligibility is determined automatically based on your account history at the time of reinstall. If you have questions about your specific trial status, contact the Aftersell support team. *** ## Post-purchase pricing Aftersell's Post-purchase pricing is based on your **total store orders each month**. This means that your bill may increase or decrease based on your order volume each month. **Store orders** refers to the total number of orders placed on your Shopify store in the last 30 days. This includes every order on your store. Aftersell's **current** post-purchase pricing is as follows: Image For example, if you have 1,500 orders on your Shopify store in the last 30 days, you will be billed \$99.99. If you have 10,000 orders, you will be billed \$329.99. If you have 100,000 orders, you will be billed \$799.99. \$799.99 is the maximum monthly Post-purchase usage charge. Even if your store's order volume grows beyond 100,000 orders in a 30-day window, your Post-purchase charge will not exceed \$799.99. *** ## Checkout pricing (Shopify Plus only) Aftersell's Checkout functionality is billed at a flat **\$99 per month**. The charge fires once every 30 days while you have an Aftersell plan that includes Checkout. There is no order-volume scaling for Checkout, it is a flat monthly rate. The charge stops only if you switch to a plan that does not include Checkout, or if you uninstall Aftersell. Aftersell's Checkout features require Shopify's Checkout Extensibility, which is only available to **Shopify Plus** merchants. If your store is on Basic, Shopify, Advanced, or any plan other than Shopify Plus, you cannot subscribe to or use Aftersell Checkout. This is a Shopify platform restriction, not an Aftersell limitation. *** ## When do charges begin after installation? Charges begin immediately after your 30-day free trial expires and reflect on the next Shopify invoice. During the trial, you can use Aftersell features without any charge. *** ## How do I change my pricing plan in Aftersell? If you are on the Shopify Plus plan, you have access to both the Post-purchase and Checkout Aftersell plans. To switch between them, navigate to **Settings** in the left-hand navigation under Aftersell and click on **Billing**. From there, you can switch to your desired plan: Billing2 *** ## What you'll see on your Billing page To open the Billing page, navigate to **Settings → Billing** in the Aftersell admin. The page is organized into four sections. | Section | What it shows | | :--------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **This billing cycle** | The amount due for the current cycle, its due date, and a "View Shopify Billing" link. | | **Current plan** | Your active plan with an "Active" status badge, plus a per-feature breakdown. See the detail below. | | **Earn & Save** | Matching discount status, lifetime savings, and an enrollment progress card if your store is eligible. See the Earn & Save Program page. | | **Payment history** | A table of past charges showing date, product, base amount, matching discount, and final total. | ### Current plan, in detail Each feature on your plan has its own card under the Current plan section. Only features that are actually on your plan appear. * **Post-purchase**: shows your current monthly charge, your orders in the last 30 days, your current pricing tier, and how many more orders until you reach the next tier. * **Checkout**: shows the flat \$99 per month charge. From this section you can also access "Compare plans", "View pricing tiers", and a "How billing works" link. Billing 3 *** ## How is the billing period determined? Each feature on your Aftersell plan bills once every 30 days, starting from the day the feature first became billable on your plan. The amount is calculated based on your order volume for the previous 30 days. For example, if your charge fires on April 1, the amount is calculated from your store's order volume during the previous 30 days. Your next charge then fires 30 days later, on May 1. If you have both Post-purchase and Checkout enabled, each feature has its own 30-day cycle. They may bill on different days each month if you enabled them on different dates. *** ## Enterprise pricing Aftersell offers enterprise pricing for larger stores with specific needs, such as multi-store account arrangements where a single billing setup spans more than one Shopify store. Enterprise pricing is generally not applicable to smaller and mid-size stores, which are well-served by the standard tiered pricing above. If you think enterprise pricing might be a fit for your account, reach out via in-app chat or email [support@aftersell.com](mailto:support@aftersell.com) to discuss. *** ## Tips for managing billing * Confirm your plan and trial dates on **Settings → Billing** during your first week. * Watch your monthly order volume so you know when you might cross into a new pricing tier. * Review your Shopify bills regularly under **Shopify Admin → Settings → Billing → Recent bills**. * If you are enrolled in Earn & Save, check your matching discount each cycle to see how much you are saving. * Uninstall at least one day before your next billing date if you want to avoid charges for the next cycle. *** Aftersell calculates your monthly bill based on your store's total order volume over the previous 30 days. This includes every order placed on your Shopify store, regardless of whether each order interacted with an Aftersell offer. The pricing model assumes that most of your orders can be served an Aftersell offer through one of several surfaces: * **Post-purchase funnels** appear on orders that meet Shopify's Post-purchase eligibility requirements. * **Thank you page upsells** appear on the order confirmation page and can capture orders that did not qualify for the Post-purchase page. * **PDP upsells** and other pre-purchase surfaces drive incremental conversion before the order is even placed. To get the most value out of Aftersell, set up the surfaces that fit your store. Together they give the majority of your orders an opportunity to convert into additional revenue. Eligible stores can lower their subscription through the Rokt Thanks Earn & Save program. Your Rokt Thanks earnings pay out to you in full and match as a discount on your bill, up to your bill amount. See the Earn & Save Program page for details. To request a refund, contact the Aftersell support team via in-app chat or email [support@aftersell.com](mailto:support@aftersell.com). Include your store URL, the charge date and amount you are requesting a refund for, and a short explanation of why. What happens next depends on the status of the charge in Shopify's billing system: * **Charge already paid.** Refunds are processed via Shopify's refund flow and post back to your original payment method. * **Charge sent to Shopify but not yet collected.** A refund cannot be processed directly. You can either wait for Shopify to collect the charge and request the refund afterwards, or request an app credit equivalent to the amount. * **Charge not yet submitted.** In some cases the Aftersell support team can stop the charge from being submitted, so it never appears on your Shopify bill. Refunds are reviewed individually. Standard Shopify refund processing times apply once approved. You can cancel your subscription directly from the Aftersell app. Navigate to **Settings → Billing**, scroll to the bottom of the page, and click **Uninstall**. A modal will guide you through selecting a cancellation reason and confirming the uninstall. This cancels your subscription and removes the app from your store in one step. After uninstall, your settings and data are retained for up to 1 year. If you reinstall within that year, you can restore your configurations, widgets, and funnels. To avoid charges for the next billing cycle, uninstall at least one day before your next billing date. For the full cancellation walkthrough, see How do I cancel my Aftersell subscription. Shopify collects app billing charges on the billing cycle for your Shopify subscription, not on the day the charge is submitted. So even though Aftersell may have submitted a charge before you uninstalled, Shopify will collect it on the next Shopify billing cycle. If you uninstalled but were still billed, this usually means the uninstall happened after the billing cycle had already processed. Any pending charges from previous billing periods still need to be resolved. To avoid this, uninstall at least one day before your next billing date. # Aftersell & Inveterate integration Source: https://docs.aftersell.com/aftersell/aftersell_inveterate_integration This article explains how to set up the Aftersell and Inveterate integration. The integration between Inveterate and **Aftersell** makes it simple to promote your **membership program as a post-purchase upsell**. It ensures your membership product works seamlessly within an Aftersell funnel, helping you drive more recurring revenue. For example, if a customer buys a pair of shoes, you can offer your Inveterate **membership** immediately after checkout, adding value and encouraging ongoing engagement. After a customer places an order, they’ll see a post-purchase screen where they can join your membership with just a single click. ## How to Set Up the Integration 1. **Install [Aftersell](https://apps.shopify.com/aftersell) and** [Inveterate](https://apps.shopify.com/inveterate) from the Shopify App Store. 2. **Create a new funnel** in the Aftersell dashboard. 3. **Set targeting rules** to define when and to whom the upsell appears. 4. **Build your upsell offer** by selecting your Inveterate **membership product**. 5. **Save and enable** the funnel to begin displaying the offer post-purchase. For more details, check out the full guide here: [Inveterate+Aftersell Integration Guide](https://help.inveterate.com/help-center/guides/integrations/aftersell) # Aftersell & Nosto integration Source: https://docs.aftersell.com/aftersell/aftersell_nosto_integration This article explains how to set up the Aftersell and Nosto integration. Nosto is an alternative product recommendation engine utilized by more than 2,500 merchants, which can be integrated with your Automatic Upsells. Aftersell can connect to your Nosto account and leverage their algorithm for product recommendations. We suggest visiting their [website](https://www.nosto.com/) if you have any inquiries regarding the product recommendation algorithm they employ. ## Steps to setup the integration If you're interested, you’ll need to follow the steps below to set up Nosto through Aftersell: 1. Search for [Nosto](https://apps.shopify.com/nosto-personalization-for-shopify) in the Shopify App Store and **install the app.** 2. Navigate to the "**Settings**" section of the Nosto app, then click on "**Authentication Tokens**." * If you don't see any API tokens, you'll need to reach out to Nosto Support to obtain one before proceeding. 3. After you obtain the API token, click the blue "Decrypt" button: 84e8f25c6c41 This will open a window displaying the API key. Ensure you click "**Copy to Clipboard**" to copy the API key, and remember to **keep it private**. A4eb6781af94 4. Now that you have the API key, return to Aftersell and navigate to the "**Settings**" tab on the left side of the app. Then, go to the Automatic Upsells section. 5. Ensure that "**Nosto**" is selected as your Product Recommendations app and that you have pasted the API token from earlier into the Nosto API key field: E1812c698ef6 6. **Save your changes**, and Nosto is now connected. Next, we need to set up some Automatic Upsells for it to utilize. 7. Go to the funnel editor and create an Automatic Upsell. * You can choose to create either a single Automatic Upsell or multiple; there’s no limit to how many you can set up. 8eedf0fb1987 8. If you’re ready to test it out, ensure that the funnel with your Automatic Upsells is active. Once it’s active, place an order on your store that meets the funnel's trigger requirements. This will enable you to check if the product recommendations are functioning correctly. * If you recently installed Nosto, we recommend waiting a few hours to allow its product recommendation algorithm to activate on your store. Otherwise, it may not yet have recommendations for your customers. *** # Aftersell & Rivo integration Source: https://docs.aftersell.com/aftersell/aftersell_rivo_integration This article explains how to set up the Aftersell and Rivo integration. **Rivo** and **Aftersell** seamlessly integrate to help you boost revenue by offering **membership upsells post-purchase.** With Aftersell’s powerful post-purchase upsell features, you can promote **Rivo memberships** to grow your subscriber base and increase your **average order value**. *** ## Why Combine Rivo with Aftersell? * **Turn buyers into members** by upselling memberships post-purchase. * **Boost customer retention** by enrolling more customers into your membership program. * **Increase AOV** by offering memberships as a value-packed upsell. *** ## How to Set Up the Integration ## 1. Install Both Apps * Add [Rivo](https://www.rivo.io/) to your Shopify store. * Install **Aftersell** from the [Shopify App Store](https://apps.shopify.com/aftersell). ## 2. Set Up Your Rivo Membership * Configure your **membership tiers and pricing** in the Rivo dashboard. * Ensure your **membership product** is active and available for purchase. ## 3. Create Your Aftersell Upsell Offer * Open **Aftersell** and navigate to **Post-Purchase Upsells**. * Click **"Create New Offer"** and select your **Rivo membership** as the upsell product. * Customize the messaging to highlight the benefits of joining your membership program. ## 4. Launch the Offer * Enable the **post-purchase upsell flow**. * Test your checkout experience to ensure the Rivo membership offer is showing correctly. *** ## Next steps Your customers can now easily add a **Rivo membership** after they complete their purchase, helping you **increase recurring revenue** and **maximize customer lifetime value**. For more help, contact the Rivo team via email at [help@rivo.io](mailto:help@rivo.io). # Aftersell & Skio integration Source: https://docs.aftersell.com/aftersell/aftersell_skio_integration This article explains how to set up the Aftersell and Skio integration. **Skio** is a modern subscription platform built for DTC brands, offering seamless account management, flexible selling plans, and powerful retention tools. It integrates directly with **Aftersell**, enabling you to offer post-purchase subscription upsells that boost AOV and customer lifetime value. *** ## How to Enable Subscription Upsells with Skio and Aftersell ## 1. Install the Apps Download both [Skio](https://apps.shopify.com/skio-subscriptions) and [Aftersell](https://apps.shopify.com/aftersell) from the Shopify App Store. ## 2. Set Up Selling Plans in Skio * In the Skio dashboard, create your **Selling Plans** and organize them as needed. * These plans define the subscription options and are required for Aftersell to recognize your Skio-powered subscription products. ## 3. Configure Post-Purchase Upsells in Aftersell * Open the **Aftersell** app and navigate to the **post-purchase upsell** section. * Create a new upsell offer and select a **Skio subscription product** linked to your selling plan. * This setup allows customers to easily add or upgrade to a subscription immediately after checkout. **Note:** Ensure your Skio selling plans are fully set up before creating your upsell offer in Aftersell. ## Selling-plan picker for subscription upgrades When you configure a subscription upgrade offer with an upgrade type of **Frequency only** or **Both**, a selling-plan picker is shown in the offer edit panel. This lets you select a specific Skio selling plan to apply to the upgrade, giving you precise control over which subscription option is offered to customers. # Aftersell & Stay.AI integration Source: https://docs.aftersell.com/aftersell/aftersell_stayai_integration This article explains how to set up the Aftersell and Stay.ai integration. **Stay AI** is a powerful subscription management platform built to help e-commerce brands drive retention and boost customer lifetime value. One of its standout features is the ability to create flexible, data-driven selling plans that adapt to customer behavior. Stay AI integrates seamlessly with **Aftersell**, allowing you to offer post-purchase subscription upsells and further maximize the value of each customer. *** To enable subscription-based upsells using **Stay.ai** and **Aftersell**, follow the steps below: ## 1. Install the Apps * Download both the **[Stay.ai](https://apps.shopify.com/stay-ai)** [app](https://apps.shopify.com/stay-ai) and the **[Aftersell](https://apps.shopify.com/aftersell)** [app](https://apps.shopify.com/aftersell) from the Shopify App Store. ## 2. Set Up Selling Plans in Stay.ai * In the **Stay.ai** dashboard, navigate to **Subscription Setup > Selling Plans**. * Create your **Selling Plans** and organize them into **Selling Plan Groups** * These plans define your subscription options and are required for Aftersell to recognize your subscription products. ## 3. Configure Subscription Upsells in Aftersell Open the Aftersell app, go to the post-purchase upsell section, and create an upsell offer. Select a subscription product (linked to your Stay.ai selling plan) as the upsell item. The shopper can now subscribe right after checkout. The connection between Aftersell and Stay.ai is enabled through Shopify's native Selling Plans, so make sure your selling plans are fully configured in Stay.ai before creating the upsell in Aftersell. *** You can learn more about the integration in this [Aftersell x Stay AI Integration](https://help.retextion.com/en/articles/9406520-aftersell-integration) ## Supported Aftersell features with Stay.ai | Feature | Supported with Stay.ai? | | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | | Subscription Upsell (offer a subscription post-purchase) | Yes — works through Shopify's native Selling Plans | | Subscription Upgrade (swap a one-time purchase into a subscription, or change frequency on an existing subscription) | No — Subscription Upgrade currently requires Recharge, Skio, or Loop | Subscription Upgrade currently requires Recharge, Skio, or Loop. If you want to use Subscription Upgrade, see the [Subscription Upgrades guide](/aftersell/subscription-upgrades) for setup steps with a supported provider. # Aftersell & Yotpo reviews integration Source: https://docs.aftersell.com/aftersell/aftersell_yotpo_reviews_integration This article explains how to set up the Aftersell and Yotpo Reviews integration. Aftersell works with most product review apps automatically, including Judge.me, Stamped, ReviewsIO, Junip, Okendo, Shopify Reviews, and many more - review stars are displayed on your offers without any credentials. Yotpo Product Reviews requires additional setup described below. ## Setting up Yotpo integration 1. Download the [Yotpo app](https://apps.shopify.com/yotpo-social-reviews) in the Shopify app store 2. In the Yotpo app, tap the Profile icon in the top right corner of the screen, then choose `Account Settings > General Settings`. You will find your App Key at the bottom of the General Settings section: Image * For more information, click [here](https://support.yotpo.com/docs/finding-your-yotpo-app-key-and-secret-key) 3. Open the Aftersell app, then go to `Settings > Product Reviews` 4. Select **Yotpo** from the review integrations list 5. Paste your App Key in the **Yotpo app key** field 6. Click **Save changes** The integration is complete. Review stars will display on your upsell offers for products with Yotpo reviews. ## Syncing reviews For the testimonials widget, Aftersell imports reviews from Yotpo and stores them so they can be displayed in checkout. The first import happens automatically within 24 hours, and then once a week after that. To import reviews immediately: 1. Go to `Settings > Product Reviews` 2. Find the **Yotpo reviews** section 3. Click **Sync now** The sync status shows when reviews were last imported and when the next sync is available. # Post-purchase analytics Source: https://docs.aftersell.com/aftersell/analytics_in_aftersell Understand your post-purchase funnel performance and product page upsell metrics in Aftersell. This page covers analytics for post-purchase funnels (including A/B tests and multivariate tests) and product page upsells in Aftersell. For checkout widget analytics, see [Checkout Analytics](/aftersell/checkout_analytics). Analytics reflect data at the time of the transaction. If an order is later refunded, partially paid, or cancelled, the accepted offer count and associated revenue are not retroactively adjusted. An offer that was accepted will continue to count as an accepted offer in your analytics regardless of what happens to the order afterward. Keep this in mind when comparing analytics data to your actual payout or revenue reports. *** ## General notes about graphs The large summary numbers at the top of each graph are weighted averages of the data shown. This method gives a more accurate overall view than a simple average. For example, three days of conversion rates are shown: * **Day 1:** 3 accepted / 10 shown = 30% * **Day 2:** 1 accepted / 9 shown = 11% * **Day 3:** 5 accepted / 15 shown = 33% The summary number is calculated as: `(3 + 1 + 5) ÷ (10 + 9 + 15) = 26.5%` not a simple average like `(30 + 11 + 33) ÷ 3 = 24.7%`. Weighted averages ensure that days with more impressions have the right impact on your totals. Throughout the analytics dashboard, you can hover over the **ⓘ info icon** next to any metric to see how that value is calculated. The formulas listed in the tables below match the tooltip calculations shown in the dashboard. *** ## Funnels Tab The Funnels tab shows analytics for your post-purchase funnels. You can filter by a specific funnel using the "Select a funnel" dropdown or view "All funnels" combined. You can also use the "Select upsell types" checkboxes to filter analytics by specific offer positions (for example, Upsell 1, Upsell 2, Upsell 3, Downsell 1, Downsell 2, or Thank You page). Some metrics such as Revenue per visit and Product profit per visit show separate values for Post-purchase upsells and Thank You page. Product profit analytics is currently in Beta. Aftersell tracks the cost of upsell items at the time of purchase to provide insights into profitability. Data will start tracking one day after activating. Product profit data is not available for historical data prior to activation. Contact our support team to enable product profit analytics for your store. ### Funnels Tab Metrics | Metric | What it measures | Formula | | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | | **Revenue** | The amount of money, in the shop currency, that the customer paid for the upsold product. This is the gross amount before any costs to the store, but after any discount the customer received. Revenue from other products in the order is not included. | `sum(upsold product revenue)` | | **Revenue per visit** | The average revenue per unique page visit. A unique visit is counted once per customer, even if they view the page multiple times on a single order. This is the recommended way to measure performance over time. | Post-purchase: `post-purchase revenue / unique post-purchase visits` TY Page: `TY page revenue / unique TY page visits` | | **Product profit** | The total product profit generated by Aftersell. Calculated by subtracting the cost of goods sold from revenue. | `sum(revenue) - sum(cost of goods sold)` | | **Product profit per visit** | The average product profit per unique page visit. Similar to revenue per visit but accounts for cost of goods sold. | Post-purchase: `post-purchase profit / unique post-purchase visits` TY Page: `TY page profit / unique TY page visits` | | **Impressions** | The total number of times funnel offers were viewed. Counted once per order, even if the same offer is seen multiple times during the same order. | `sum(offer views across all selected funnel offer types)` | | **Conversion rate** | The percentage of offer views that resulted in an accepted offer. | `(accepted offers / offer impressions) x 100` | | **Accepted offers** | The total number of offers accepted. Counted when a customer clicks "Accept" and completes the purchase. | `sum(accepted offers across all selected funnel offer types)` | | **Product profit margin** | The ratio of product profit to revenue. If your products had no costs, this would be 100%. | `(product profit / revenue) x 100` | | **Average upsell value** | The average revenue per accepted upsell item. Particularly useful when using dynamic products in offers. | `revenue / accepted offers` | Revenue per visit is the recommended way to measure post-purchase funnel performance over time because it accounts for unique visits rather than raw impressions. ### Top Performing Products Table This table highlights post-purchase upsells and the revenue generated from them. | Column | How it is calculated | | ----------------------- | -------------------------------------------------------------------------------------------------- | | **Product** | The upsold product name | | **Conversion rate (%)** | (number of accepted upsells containing the product / number of impressions for that product) x 100 | | **Revenue** | Total revenue generated from accepted upsells of this product | The conversion rate in this table is based on the number of accepted offers, not the number of individual product units sold. For example, if a customer accepts one offer containing 3 units of a product, it counts as 1 accepted offer. However, the revenue column reflects the total value of all units purchased through that offer. ### Resetting analytics on an offer card You can reset the analytics displayed on an individual offer card in the funnel editor without affecting your overall funnel analytics or the analytics page. To reset analytics for a standalone offer: 1. Open your funnel in the **Aftersell admin**. 2. Locate the offer card you want to reset. 3. Click the **Reset analytics** icon button (displayed between the **Edit offer** and **Delete offer** icons on the card). 4. Confirm the reset in the dialog that appears. After the reset, the offer card recomputes its displayed metrics (impressions, revenue, profit, conversion rate, revenue per visit, and profit per visit) using only data from the reset point forward. No analytics data is deleted — the analytics page and other reports are unaffected. The reset analytics action is available on standalone offers only. For A/B test and multivariate test offers, use the **Reset analytics** option in the test's three-dot menu instead. See [Post-Purchase A/B Testing](/aftersell/post_purchase_a_b_testing) for details. *** ### Deleted Funnels Deleting a funnel does **not** remove its historical analytics data. Revenue and performance from deleted funnels are still included when **"All funnels"** is selected in the Funnel dropdown. However, once a funnel is deleted, it will no longer appear in the dropdown and cannot be viewed individually. Historical data is preserved for overall reporting, but funnel-specific breakdowns are no longer accessible. *** ## Tests Tab The Tests tab tracks performance for post-purchase A/B tests and multivariate tests. This tab is exclusively for post-purchase funnel tests. Checkout widget A/B test performance (Version A vs. Version B) is not shown in the Tests tab. To view checkout A/B test results, use the widget editor analytics view or the Checkout dashboard. See [Checkout A/B Testing](/aftersell/checkout_analytics) for details. ### Selecting a Test 1. Use the **Select a Funnel** dropdown to choose the funnel containing your test. 2. Use the **Select a Test** dropdown to choose the specific test you want to analyze. The test card shows the test name, status (for example "Finished" or "Not Running"), the variables tested (for example "Layout"), the start date, and an impression progress bar showing how many impressions the test has received out of the target (for example "0/5364 impressions"). ### Top Groups The Top 3 Groups section shows your test variations ranked by performance. Each group represents a variation (for example, Group 1 = Layout A, Group 2 = Layout B). You can sort the groups using the **Sort by** dropdown, which includes the following options: Profit Per Visit, Profit, Revenue Per Visit, Revenue, and Conversion Rate. Click on any group to view its individual analytics. Click **See all groups** to expand and compare all test groups side by side. ### Group-level Analytics When you select a group, you see performance metrics for that specific variation. | Metric | What it measures | Formula | | --------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | **Profit per visit** | The average product profit per unique visit for this variation. Takes into account cost of goods sold. | `profit for this variation / unique visits for this variation` | | **Profit** | The total product profit generated by this variation. | `revenue for this variation - cost of goods sold for this variation` | | **Revenue per visit** | The average revenue per unique visit for this variation. Accounts for both conversion rate and order value. | `revenue for this variation / unique visits for this variation` | | **Revenue** | Total revenue generated by this variation. | `sum(upsold product revenue for this variation)` | | **Conversion rate** | Percentage of offer views that resulted in an accepted offer for this variation. | `(accepted offers for this variation / impressions for this variation) x 100` | ### Performance by Variable This view shows how each variable performs on average across all other variables. Use the dropdown to switch between the following metrics. | Variable | What it shows | | --------------------- | ------------------------------------------------- | | **Profit per visit** | Average profit per visit for each variable value | | **Profit** | Total profit for each variable value | | **Revenue per visit** | Average revenue per visit for each variable value | | **Revenue** | Total revenue for each variable value | | **Conversion rate** | Conversion rate for each variable value | | **Impressions** | Total impressions for each variable value | Use this to isolate which individual changes between variations had the most impact on performance. ### Key Metrics to Evaluate When Selecting a Winner A winning variation should perform well across multiple metrics, not just one: * **Higher profit per visit** - Each unique visit generated more profit after accounting for cost of goods sold. * **Higher revenue per visit** - Each unique visit generated more revenue. * **Higher conversion rate** - More customers accepted the offer. * **Comparable or better average upsell value** - The accepted offers are generating equal or higher revenue per acceptance. *** ## Product Page Upsells Tab The Product Page Upsells tab shows analytics for upsells displayed on your product pages. Product page upsells do not currently support A/B testing. ### Product Page Upsells Metrics | Metric | What it measures | Formula | | ------------------------- | ------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------- | | **Revenue** | The total revenue from product page upsells. | `sum(PDP upsell revenue)` | | **Revenue per view** | The average revenue generated per unique view on product page upsells. | `revenue / unique impressions` | | **Unique impressions** | The number of unique views on product page upsells. | `sum(unique PDP views)` | | **Conversion rate** | The percentage of unique visitors who completed an order with a product page upsell. | `(upsold orders / unique impressions) x 100` | | **Purchased products** | The number of products purchased through a product page upsell. | `sum(PDP products purchased)` | | **Upsold orders** | The number of orders that included a product purchased through a product page upsell. | `sum(orders with PDP upsell)` | | **Revenue per order** | The average revenue per order containing a product page upsell. | `revenue / upsold orders` | | **Average upsell value** | The average revenue per product page upsell product purchased. | `revenue / purchased products` | | **Profit** | The total profit from product page upsells. Calculated by subtracting cost of goods sold from revenue. | `sum(PDP upsell revenue) - sum(PDP upsell cost of goods sold)` | | **Profit per view** | The average profit generated per unique view on product page upsells. | `profit / unique impressions` | | **Average upsell profit** | The average profit per product page upsell product purchased. | `profit / purchased products` | | **Profit per order** | The average profit per order containing a product page upsell. | `profit / upsold orders` | *** ## Custom dashboards 📝 Beta access — This feature is available on request. Contact the customer support team to enable access. Custom dashboards appear as additional tabs on the Analytics page, alongside the built-in tabs such as Summary, Funnels, and Checkout. Each dashboard tab displays a grid of cards, where each card visualizes a saved query. ### Viewing a dashboard Click any dashboard tab to open it. The date range picker and compare period picker in the top-right corner apply to all cards in the active dashboard. Switching to a different tab resets any date or compare overrides you have set. ### Creating a dashboard Click **Create dashboard** (visible in the top-right corner from any tab) to create a new dashboard. A new tab named "Untitled dashboard N" is created and becomes the active tab in view mode. ### Editing a dashboard On a dashboard tab you own, click **Edit dashboard** to enter edit mode. In edit mode you can: * Rearrange cards by dragging them. * Remove a card using the remove button on the card. * Change a card's title or chart type. Click **Save** to commit your changes, or **Cancel** to discard them. Switching tabs while in edit mode discards the draft without a confirmation prompt. Global (template) dashboards are read-only. The **Edit dashboard** button is not shown for global dashboards. ### Tab bar scrolling When there are more tabs than fit in the tab bar, left and right arrow buttons appear at each end of the bar. Click the arrows to scroll through the tabs. The arrows are disabled when you have reached the start or end of the list. *** ## Custom Data Tab This feature is in beta and is available on request. Contact the support team to enable access. The Custom Data tab provides advanced CSV exports for detailed analytics analysis. You can export data for a 30-day period ending on any fully complete UTC day. ### Available Exports Exports post-purchase upsell latency metrics per session, including: * TTI (Time to Interactive) * RTTI (Relative Time to Interactive) * PTTI (Perceived Time to Interactive) Exports per-upsell daily totals with the following columns: * Store Name * Date * Upsell Name * Upsell Type * Sum of Impressions * Sum of Clicks Exports per-funnel daily totals with the following columns: * Store Name * Date * Funnel ID * Upsell Name * Sum of Impressions (unique visits) * Revenue * Revenue Per Visit ### How to Export Custom Data 1. Go to **Analytics** in your Aftersell dashboard. 2. Click the **Custom Data** tab. 3. Select an end date (must be a fully complete UTC day in the past). 4. Click the download button for the export you want: * **Download Latency CSV** * **Download Upsell Breakdown CSV** * **Download Funnel Breakdown CSV** All exports cover the 30-day period ending at the end of the selected date. *** **Want to go further?** * [Order Browser Overview](/aftersell/order_browser_overview) - understand how Aftersell is performing across your orders * [Order Browser Troubleshooting](/aftersell/order-browser-troubleshooting) - resolve common issues with your order data * [Post-purchase Best Practices](/aftersell/best_practices) - tips to improve conversion across all your offers # Automatic upsells not working Source: https://docs.aftersell.com/aftersell/automatic_upsells_not_working This article outlines how to troubleshoot when automatic upsell products do not show up in checkout, post-purchase, or thank-you page. Automatic upsells are a powerful tool for increasing sales by showing relevant products at checkout, post-purchase, or on the thank-you page. However, there are times when these AI upsell offers do not appear or are skipped as intended. These troubleshooting steps will help you identify and resolve common issues preventing automatic upsells from working or being skipped. ## 1. No "Related products" in Search & Discovery Use the [Shopify Search & Discovery app](https://apps.shopify.com/search-and-discovery) to view “**Related products**” in the *Recommendations* page\*.\* For stores with very few orders or for recently added products, Shopify may not auto-generate “Related products”. You can manually add “Related products” by clicking on the product title and using the section titled “Edit related products”. For more details on how “Related products” are selected, see this [Shopify help document](https://shopify.dev/docs/themes/product-merchandising/recommendations.) ## 2. Excluded products in Aftersell Go to *`Aftersell > Settings > Automatic upsells >` Excluded products* to check if you have exclude products from automatic upsells. Look for selected collections that have a large number of products, such as “**All Products**”. If you have excluded too many products then there won’t be any "**Related products**" to show. We recommend keeping the exclusion list small and only excluding products that you absolutely do not want to upsell.Additionally, if you select "All products collection" as an exclusion, it will exclude every product in your store, effectively disabling upsells entirely. Be cautious with your exclusion settings, especially during specific periods when exclusions are active, as they might unintentionally prevent upsells from displaying. NOTE: Even if you don’t exclude every product from your store, you might still be excluding all items in the “**Related products**” section. ## **3. Password protected online store** Automatic upsells do not work for stores that require a password. This includes development stores and stores that are password-protected before launch. * We recommend testing with specific products instead of automatic upsells on these stores. # Post-purchase best practices Source: https://docs.aftersell.com/aftersell/best_practices A complete strategy guide for building, optimizing, and scaling your post-purchase upsell funnels in Aftersell # Post-purchase best practices This guide covers everything you need to build a high-performing post-purchase upsell strategy in Aftersell - from funnel architecture and product selection to discount strategy, copy and design, industry-specific playbooks, and testing. Whether you are setting up your first funnel or optimizing an existing setup, these best practices are based on patterns from top-performing Aftersell merchants. Want real-world examples from top brands? [Download our Upsell Playbook](https://www.aftersell.com/upsell-playbook) for proven strategies and case studies you can apply to your store today. Looking for checkout widget best practices? See [Checkout Best Practices](/aftersell/checkout_best_practices). *** ## Funnel architecture Your funnel architecture determines which customers see which offers, and in what order. Getting this right is the single biggest lever for post-purchase revenue. ### How the post-purchase funnel flow works Before building funnels, make sure you understand how the offer flow works. For a full walkthrough, see [Post-purchase Overview](/aftersell/post_purchase_overview). In short: after checkout, Upsell #1 is shown. If the customer accepts, Upsell #2 is shown as a follow-up. If the customer declines, a Downsell is shown instead. After all offers are completed, the customer lands on the Thank You Page. Shopify limits customers to a maximum of 3 accepted post-purchase offers per order. Only one product can be selected per upsell step. Plan your funnel depth with these limits in mind. ### Start with your hero products Build dedicated funnels for your 3 to 6 highest-volume products first. These are the items that generate 60 to 80% of your store's revenue, and targeting them ensures your highest-traffic orders always see a relevant, optimized upsell. Traits of a hero product: * High sales volume and strong contribution to profitability * Market leadership in their category * Broad customer appeal and positive reviews * Receives dedicated marketing efforts and promotion ### Set up a catch-all funnel A catch-all funnel ensures that every order - even those that do not match your hero product funnels - still sees an upsell offer. This is one of the most commonly missed steps, and skipping it means leaving revenue on the table. How to set it up: 1. Set the trigger to "Show for All Customers" 2. Assign it the **lowest priority** so it only fires when no other funnel matches 3. Include Thank You Page upsells in this funnel for full post-purchase coverage You can adjust funnel priority by clicking the **Manage Priority** button at the top right of the funnel table. ### Use Smart Funnel as your first layer [Smart Funnel](/aftersell/smart_funnel) uses Rokt's AI and machine learning models to automatically select the most relevant upsell offer for each customer. It evaluates at Priority 0 (before all manual funnels), making it a powerful first layer in your strategy. We recommend enabling Smart Funnel alongside your manual funnels. It handles the dynamic targeting automatically while your manual funnels cover specific use cases, Thank You Page offers, and edge cases Smart Funnel does not reach. Smart Funnel currently only supports English. If your store serves customers in other languages, use manual funnels for those audiences until multilingual support is available. ### Add follow-up offers to your funnel Do not stop at the first offer. A well-structured funnel includes offers on both the accept and decline paths: * **Upsell #1** - Your primary offer (highest-margin or most complementary product) * **Upsell #2** (accept path) - Shown when Upsell #1 is accepted. Use this for an additional complementary product or a related add-on * **Downsell #1** (decline path) - Shown when Upsell #1 is declined. Use this for a lower-price alternative or a smaller version of the original offer * **Thank You Page offers** - Product recommendations and upsells on the order confirmation page, shown to every customer regardless of what happened on the post-purchase page This means every customer sees at least two offers (one on the accept or decline path, plus the Thank You Page), and customers who engage see even more. Use AI-powered product recommendation widgets on the Thank You Page to keep engagement high. These widgets automatically surface relevant products based on what the customer purchased, without any manual configuration required. ### Manage funnel priority intentionally When multiple funnels match the same order, Aftersell uses the priority order to determine which one fires. Review your priority list regularly: * Hero product funnels should have higher priority than your catch-all * Smart Funnel always evaluates at Priority 0 (highest) * Seasonal or promotional funnels should be temporarily elevated during campaigns *** ## Product selection Choosing the right products to upsell has a direct impact on conversion rate. The goal is relevance - customers are far more likely to accept an offer that feels like a natural extension of what they just bought. ### Complementary products outperform same-product offers Upselling a complementary product (for example, sandals with a dress, a phone case with a phone, a serum with a moisturizer) consistently outperforms offering the same product the customer just purchased. The exception is consumable or replenishable products where buying a second unit makes sense. ### Strategic product placement across the funnel Since the funnel flow is based on accept and decline actions, think strategically about what goes where: * **Upsell #1:** Your strongest, most complementary offer with the highest expected conversion rate * **Upsell #2 (accept path):** The customer just said yes - they are engaged. Show a second complementary item or a related add-on. This is a warm audience * **Downsell #1 (decline path):** The customer said no to the first offer. Show a lower-price alternative, a smaller size, or a different product category. Reduce the commitment level to recover the conversion ### AI recommendations vs. manual selection Aftersell supports both AI-powered and manually selected product offers: * **AI recommendations (automatic upsells)** use Shopify's Recommendation API to suggest complementary products based on the customer's order. The recommendations consider factors like purchase correlation, order frequency, and product affinity. For stores with very few orders or recently added products, Shopify may not have enough data to generate recommendations - in that case, you can manually add related products in the Shopify Search & Discovery app. You can exclude specific products from automatic upsells under **Settings > Automatic upsells > Excluded products**. * **Manual selection** gives you full control over exactly which products appear. This is best for curated campaigns, seasonal promotions, or when you know your catalog deeply. When using automatic upsells (AI recommendations), you can enable a setting to skip the offer if the product already exists in the original order. In Smart Funnel, this is the "Skip Products in Original Order" toggle. In regular funnels, this is in the Product Details widget settings. We recommend keeping this enabled to avoid offering the customer a product they just purchased. This setting does not apply to the Most Expensive or Least Expensive in Cart product types, which are designed to re-offer items from the original order. We recommend A/B testing AI vs. manual to see which performs better for your store. Many merchants find that AI outperforms manual selection for high-traffic, diverse catalogs, while manual selection wins for stores with a smaller, curated product line. ### Quantity defaults For lower-cost or consumable products, test offering a default quantity of 2 instead of 1. If the x2 offer is accepted more often, it means increased revenue with no extra effort. This works especially well for supplements, food items, skincare, and other replenishable goods. *** ## Discount strategy Discounts are one of the strongest levers for post-purchase conversion, but the approach matters more than the amount. ### Always offer a discount on post-purchase upsells Post-purchase offers convert significantly better with a discount than without one. The customer has already committed to a purchase and is in a buying mindset - a discount at this moment feels like a reward, not a sales tactic. Smart Funnel requires a minimum discount greater than 0%. Offers with a 0% discount are not supported in Smart Funnel, as the templates do not dynamically adjust based on the discount field value. Use manual funnels for 0% discount offers. ### Use compare-at pricing Enable compare-at pricing to visually emphasize the value of your upsell offer. Displaying a higher "compare at" price alongside a lower discounted price makes the deal feel more compelling, even with a smaller actual discount. Example: * Regular price: \$20 * Compare at price: \$25 * Customer sees: \~\~$25~~ $20 The visible discount percentage may differ from what you set in upsell settings when "Use Compare at Price" is enabled, since the compare-at price can inflate the perceived discount. Always double-check how it renders on the page by placing a test order. ### Round your discount percentages Always round to the nearest 5th - for example, offer 25% or 30% instead of 27%. Round numbers look more intentional and can boost conversion rates. ### Finding the right discount level A/B test different discount levels to find the sweet spot for your store. The goal is to determine how low you can set the discount without hurting your conversion rate. Common starting points by category: * **Fashion and apparel:** 10-20% off * **Supplements and health:** 15-25% off * **Beauty and skincare:** 10-20% off * **Food and beverage:** 15-25% off * **Electronics and accessories:** 5-15% off * **Home goods:** 10-20% off These are starting ranges for testing - your optimal discount depends on your margins, product pricing, and customer behavior. ### Discount strategy across the funnel Consider varying your discount by funnel position: * **Upsell #1:** Your standard discount (for example, 15% off) * **Upsell #2 (accept path):** Can be the same or slightly lower - the customer is already engaged and buying * **Downsell #1 (decline path):** Consider a slightly higher discount to recover the customer who just said no. A bigger discount on a lower-price item can be very effective here ### When to use percentage vs. fixed dollar discounts * **Percentage discounts** work better for higher-priced items where the dollar savings feel significant (for example, "20% off" on a $100 item = $20 saved) * **Fixed dollar discounts** work better for lower-priced items where a percentage feels small (for example, "$5 off" feels better than "10% off" on a $50 item) A/B test both formats to see which resonates with your customers. *** ## Copy and design First impressions are crucial on post-purchase pages. Customers make snap judgments, so your value proposition needs to be impossible to miss. ### Emphasize key points with bold text and color Draw attention to the most persuasive elements of your upsell page. Phrases worth highlighting: * The discount percentage or dollar amount * "LIMITED TIME" or urgency language * Countdown timers * Free shipping mentions ### Write clear, benefit-focused headlines Your headline should tell the customer exactly what they are getting and why it matters. Lead with the benefit, not the product name. * Good: "Complete your look - 20% off matching accessories" * Avoid: "You might also like these products" ### Configure your accept and decline buttons intentionally The [Buttons widget](/aftersell/post_purchase_widgets) gives you control over how the accept and decline buttons behave and appear. However, Shopify requires that the accept and decline button text follows strict guidelines - the button wording cannot be customized, only translated into a selected language. What you can configure: * **Accept button text** - Choose between "Pay Now" (displays "Pay now - Product total price") or "Accept Offer" (displays "Accept offer - Product total price") * **Button language** - Select from all supported Shopify Checkout locales to automatically translate both accept and decline button text into the customer's language * **Button layout** - Choose accept above decline, decline above accept, or side by side * **Decline button style** - Button or link format * **Button alignment and width** - Adjust positioning to match your offer design * **Supporting text** - Add optional text above or below the buttons with styling controls and dynamic variable support The accept and decline button text cannot be freely written or customized beyond the two options listed above. This is a Shopify platform restriction, not an Aftersell limitation. The decline button text is automatically set and can only be translated, not edited. ### "Require Confirmation Click to Accept" "Require Confirmation Click to Accept" is available in the Buttons widget for individual offers. This setting adds a second confirmation step before an upsell is accepted. It is worth being aware of if you are using the Most Expensive or Least Expensive in Cart product types, which re-offer items from the customer's original order. If you find that customers are reaching out about unintended purchases on these offer types, this setting can help. It is not needed for all offers, as the additional step may reduce conversion rates. [Learn more →](/aftersell/post_purchase_widgets) ### Long-form vs. short-form offer pages * **Short-form pages** offer concise information, faster load times, and a streamlined experience. They work well for lower-priced, impulse-friendly products. * **Long-form pages** provide detailed product descriptions, features, benefits, and additional images. They work better for higher-ticket products where customers need more information before committing. We generally recommend starting with short-form and testing long-form for higher-ticket items. ### Multi-step offers within a single page If you want to show multiple products on a single upsell page (for example, three accessories on Upsell #1), you can use [multi-step offers](/aftersell/how_to_create_a_multi_step_post_purchase_upsell). Multi-step splits a single page into sequential steps where each step shows a different product. If the customer declines a step, they see the next step on the same page. If they accept, they move to the next page in the funnel (for example, from Upsell #1 to Upsell #2). Multi-step is only available for multi-product upsells and supports up to 12 products per page. We recommend keeping the number of steps minimal for a smooth customer experience. *** ## Thank You Page strategy Not every order qualifies for Post-purchase upsells due to [Shopify's post-purchase restrictions](/aftersell/why_isnt_my_1_click_offer_displaying). Thank You Page upsells act as a fallback, ensuring those customers still see an offer. Unlike Post-purchase offers, Thank You Page offers work with all payment methods. ### Include Thank You Page offers in every funnel Set up Thank You Page upsells in every funnel, including your catch-all. Each funnel's Thank You Page widgets must be configured individually - there is no way to standardize them across multiple funnels. This means if you have 5 funnels, you need to configure the TYP section in each one. Step by step: 1. Open your funnel in the Aftersell admin 2. Scroll to the **Thank You Page** section 3. Click **Add Widget** and select **Product Recommendation** 4. Choose your product selection method, configure your discount, and save 5. Repeat for each funnel, including your catch-all ### Choose the right product selection method Thank You Page product recommendation widgets support three selection methods. Choose the one that fits your store: * **Automatic Upsells** - Lets Aftersell recommend products based on the customer's cart contents. This is the easiest option and tends to convert well because the recommendations are personalized to what the customer just bought. Start here if you are unsure which products to show. * **Specific Products** - Manually select up to 10 products to display. Use this when you want full control, such as promoting a specific product, clearing overstock, or running a seasonal campaign. * **Collections** - Display products from a specific Shopify collection. Use this when you want variety within a curated set (for example, showing items from the same collection the customer purchased from). Enable **Hide purchased products** to avoid showing items the customer already bought, and **Hide out-of-stock variants** to only display available products. Both settings are in the product recommendation widget configuration. ### Apply a discount to your TYP offers You can apply a percentage or fixed dollar discount directly within the TYP widget. We recommend always including a discount on Thank You Page upsells to give customers a reason to act. Use compare-at price display to visually show the savings. ### Set the right order handling method When a customer accepts a Thank You Page upsell, you choose how the order is processed: * **Modify original order** - Adds the upsell product to the existing order. Free shipping is automatically applied. Use this for a seamless experience where everything ships together. * **Create new draft order** - Creates a separate order for the upsell. Use this if your fulfillment workflow requires separate orders, if you want to offer free shipping only on the upsell, or if your upsells overlap with products in the original order. If your top-sellers are also your main upsell candidates, prefer **Create new draft order** - "Modify original order" silently hides upsells whose variant is already in the customer's order. See [Order Handling](/aftersell/thank_you_page_extensions_overview#order-handling) for the full trade-off breakdown. ### Use banner text to frame the offer Add a short banner headline above your product recommendations to give customers context. Framing like "Complete the look," "Pairs well with your order," or "Customers who bought this also loved" performs better than showing products with no context. ### Add the app block in Shopify After configuring your Thank You Page widgets in Aftersell, you must add the Aftersell TY widget app block to **both** the Thank You page **and** the Order Status page in your Shopify Editor, then enable it and save. Skipping this step will cause your Thank You Page widgets to not display for customers. This is one of the most common reasons Thank You Page widgets do not appear. If your TYP offers are not showing, check the Shopify Editor first before troubleshooting anything else. *** ## Upsell strategies by industry Different product categories have different upsell dynamics. For detailed playbooks tailored to your vertical - including recommended products, discount ranges, funnel triggers, and testing priorities for fashion, supplements, food and beverage, beauty, electronics, home goods, and automotive - see [Post-Purchase Strategies by Industry](/aftersell/post_purchase_strategies_by_industry). *** ## Testing A/B testing and multivariate testing are the most effective ways to improve funnel performance over time. See the full [Post-Purchase A/B Testing](/aftersell/post_purchase_a_b_testing) and [Post-Purchase Multivariate Testing](/aftersell/multivariate_testing) guides for detailed setup instructions. ### Key tests to prioritize These are the highest-impact tests based on patterns from top-performing merchants: 1. **AI (dynamic) vs. specific product (static) upsells** - Determines whether automated product matching outperforms your manual curation 2. **Default quantity 1 vs. 2** - Especially impactful for consumables and lower-cost products 3. **Long-form vs. short-form offer pages** - Tests whether customers need more information or prefer a streamlined experience 4. **Same product vs. complementary product** - Tests repurchase vs. cross-sell 5. **Single product vs. multi-product** - Tests simplicity vs. choice 6. **Varying discount percentages** - Finds the minimum discount needed to maintain conversion rate A/B testing for post-purchase uses Layout A through Layout E (up to 5 layouts). You cannot A/B test one funnel against another funnel - testing happens within a single funnel across layouts. A/B testing is only available for Post-purchase upsells and is not available for Thank You Page offers. For checkout widget testing, see [Checkout A/B Testing](/aftersell/checkout_a_b_testing). ### Data guidelines Before making changes to a funnel, ensure it has run for a minimum of 2 to 4 weeks or collected at least 100 to 200 impressions per layout. Changes made too early are based on insufficient data and can lead to misleading conclusions. Regularly analyze performance data to refine offers, placements, and product selections. An iterative approach helps identify high-conversion strategies while ensuring all changes are based on reliable data. Use the **Revenue per visit** metric as your primary performance indicator over time, as it accounts for unique visits rather than raw impressions. *** ## Common mistakes Avoid these pitfalls when setting up and optimizing your post-purchase funnels: ❌ **No catch-all funnel** - some orders will never see an upsell because they do not match any funnel triggers. Set up a catch-all funnel with the "Show for All Customers" trigger at the lowest priority so every order sees an offer. [Fix it →](/aftersell/quickstart_guide_to_aftersell) ❌ **No Thank You Page upsells** - orders that are ineligible for Post-purchase offers (due to Shopify payment method restrictions) go unconverted. Add Thank You Page upsells to every funnel, including your catch-all. Make sure to add the Aftersell TY widget app block to both the Thank You page and Order Status page in your Shopify Editor. [Fix it →](/aftersell/how_can_i_set_up_and_customize_thank_you_page_upsells_in_aftersell) ❌ **No downsell configured** - if a customer declines Upsell #1 and there is no downsell on the decline path, you have missed a second chance to convert. Always configure a downsell with a lower-price alternative for the decline path. You can add a downsell in the funnel editor when building your post-purchase funnel. [Fix it →](/aftersell/post_purchase_overview) ❌ **Irrelevant upsell offers** - generic offers that do not relate to what the customer bought reduce conversions and erode trust. Use collection-based triggers and complementary product selection to match offers to what the customer purchased. [Fix it →](/aftersell/how_to_configure_post_purchase_triggers) ❌ **Underutilizing AI tools** - missing out on dynamic personalization that often outperforms manual selection, especially for stores with large or diverse catalogs. Enable Smart Funnel and test AI recommendations in your manual funnels. [Fix it →](/aftersell/smart_funnel) ❌ **Making changes too early** - optimizing before collecting enough data leads to decisions based on noise rather than signal. Wait for at least 2 to 4 weeks or 100 to 200 impressions per layout before drawing conclusions. [Fix it →](/aftersell/analytics_in_aftersell) ❌ **Not testing** - running the same offer indefinitely without testing leaves performance gains on the table. Run at least one A/B test per quarter on your highest-traffic funnels. [Fix it →](/aftersell/post_purchase_a_b_testing) *** ## Need help? If you have questions about setting up or optimizing your post-purchase upsell strategy, chat with our support team using the live chat at the bottom right of the app. # Can I advertise with Rokt Thanks and promote my business on other sites? Source: https://docs.aftersell.com/aftersell/can_i_advertise_with_rokt_thanks_and_promote_my_business_on_other_sites Can I become an advertiser on Rokt Thanks? Currently, this is reserved to Shopify stores with over 50,000 monthly orders. To learn how you can join our advertising network, [request a demo](https://www.aftersell.com/demo) from one of our experts. # Changing post-purchase button colours (CTA) Source: https://docs.aftersell.com/aftersell/changing_post_purchase_button_colours_cta This article demonstrates how to modify the background and text colours for the post-purchase call-to-action button. Aftersell's post-purchase upsell feature allows you to offer additional products to your customers after they have completed their purchase. This can help increase your sales and improve customer satisfaction. However, you may want to customize the appearance of the upsell button to better match your brand's aesthetic. In this article, we will guide you through the process of changing the post-purchase upsell button background colour. # Understanding the default button colour The background color of the post-purchase upsell button will always match the button color of your Shopify Checkout page. This is enforced by Shopify to maintain a cohesive and seamless checkout experience for your customers. To change your button colour go to your **Shopify Admin > Settings > Checkout**, then click the "**Customize**" button on your live checkout profile: Image Next, navigate to the Settings tab on the left and adjust the button colour as shown in the image below. Image # Understanding the button text colour The text on the button is automatically determined by Shopify according to the button background colour. This ensures that the text remains visible and easy to read. Please note that our editor preview may occasionally show minor inaccuracies, but the post-purchase branding will match your Shopify checkout settings on a live offer. *** Following these steps allows you to easily adjust the background color of the post-purchase upsell button to better match your brand’s look. If you have any issues or further questions, please don’t hesitate to reach out to our support team via the chat option in the bottom right corner of the app. # Checkout dashboard overview Source: https://docs.aftersell.com/aftersell/checkout-dashboard-overview The Checkout dashboard is your central hub for managing all Checkout widgets and pages, as well as monitoring general performance. This article covers the layout of the dashboard and what each section does. For a detailed breakdown of how Pages and Standalone widgets work, including setup, configuration, block IDs, and placement - see [**Pages & Standalone Widgets: A Complete Guide**](#pages-vs-standalone-widgets). Checkout Opening Pages *** ## **Dashboard metrics** At the top of the Checkout dashboard, you'll find a summary of your checkout performance across four key metrics: * **Revenue**: Total revenue attributed to your Checkout upsells widgets * **AOV**: Average order value of orders that included a Checkout widget  * **Impressions**: Total number of times your Checkout widgets were displayed * **Conversion**: The Percentage of checkout sessions with widget impressions that resulted in a completed purchase Use the date selector in the top-left to filter all metrics by a custom date range (e.g., last 30 days). This applies to all metrics on the Checkout dashboard, including those shown in the Pages and Standalone widgets tables. Checkout Analytics *** ## **Pages** A Page is a group of related widgets that are displayed together on your checkout based on a shared set of trigger conditions (which can include multiple conditions). While widgets are grouped within a Page and triggered at the same time, each widget still needs to be configured individually and requires its own app block placement. This setup helps coordinate when widgets appear, but does not eliminate the need to manage each widget separately. The Pages section displays the following information for each page: | **Column** | **Description** | | :------------------ | :---------------------------------------------------------------------------------------- | | **Priority** | The order in which pages are evaluated when multiple pages are active | | **Name** | The name of the page | | **Triggers** | The conditions under which this page is shown (or "Show to all" to show to all customers) | | **Widgets** | Icons representing the widget types included in the page | | **Impressions** | How many times this page has been shown | | **Page conversion** | The conversion rate for this page | | **AOV** | Average order value attributed to this page | Each page has action buttons on the right: * **Edit** (pencil icon): Open the page editor * **View analytics** (bar chart icon): View analytics for this specific page * **Duplicate** (duplicate icon): Create a copy of the page, including all its widgets and trigger configuration. The duplicated page is created in an inactive state with the name prefixed by "(Duplicated)" so it doesn't conflict with the original's display rules. You can then rename and activate it when ready. Use **Manage priority** to control the order in which your pages are evaluated, and **Create page** to add a new page. *** ## **Standalone widgets** Standalone widgets are individual widgets that function independently, each with their own triggers and priority configured at the variant-level. The Standalone widgets section shows the following for each widget: | **Column** | **Description** | | :-------------------- | :--------------------------------------------------------------------------------------------------------------------------------- | | **Name** | The widget name (e.g., "Default upsell", "Additional upsell 1") | | **Variants** | The number of variants configured for this widget | | **Active variants** | How many of those variants are currently active | | **Placement status** | Whether the widget has been placed in your Shopify Checkout editor. Shows **Incomplete** (red) if placement has not been completed | | **Impressions** | Total impressions for this widget | | **Widget conversion** | Conversion rate for this widget | Each standalone widget also has: * **Edit** (pencil icon): Open the widget editor * **View analytics** (bar chart icon): View analytics for this specific widget **Note:** A maximum of **3 blocks** can be added for Standalone widgets. Each block can contain multiple variants, but no more than 3 blocks per widget can be created. *** ## **Analytics** You can view analytics for any individual Page or Standalone widget directly from the dashboard by clicking the **bar chart icon** next to it. Analytics can also be accessed from within the page or widget editor. This allows you to monitor and compare performance across your different widgets and pages to see what's working best for your store. # Checkout A/B testing Source: https://docs.aftersell.com/aftersell/checkout_a_b_testing Learn how to set up, manage, and analyze A/B tests for your checkout widgets in Aftersell # Checkout A/B Testing A/B testing (also known as split testing) lets you compare two versions of a checkout widget to determine which performs better. A/B testing is currently only available for standalone widgets and is not yet supported for pages. Each version is shown to a portion of your checkout traffic, and performance is tracked separately so you can identify the higher-performing version. By testing variations of your offers, you can improve conversion rates, increase revenue, and make data-driven decisions about your upsell strategy. This page covers A/B testing for checkout widgets only. If you are looking to test your post-purchase offers, see [A/B Testing for Post-Purchase Offers](/aftersell/post_purchase_a_b_testing). Checkout widgets are only available to Shopify Plus merchants due to Shopify's Checkout Extensibility API restrictions. ## How checkout A/B testing works Standalone checkout widgets support two versions within a single block. When both versions are active, traffic is split 50/50 between them, labeled **Version A** and **Version B** in the analytics view. Each version is shown to a separate portion of customers, and their performance is tracked independently so you can compare results and identify a winner. Each version has its own configuration and settings, making it possible to test meaningful differences between offers. A/B testing is currently only available for standalone widgets. Pages do not support A/B testing yet. ### What you can test A/B testing is supported on both **upsell widgets** and **content widgets**. **Upsell widgets** - You can test: * **Products**: Different products, product types, or recommendation strategies (specific product vs. AI recommendations vs. most expensive product) * **Discounts**: Different discount amounts or types (percentage vs. fixed dollar) * **Widget mode**: Single product upsell, multi-product upsell, or checkmark upsell * **Triggers**: Since standalone widget triggers are configured at the version level, you can test different targeting conditions against each other * **Blank (Skip)**: Use an empty version as a control to measure whether showing an upsell helps or hurts checkout conversion **Content widgets** (trust badges, testimonials, cart controls, notes, text, images) - You can test: * Different badge or testimonial content * Different messaging or copy * Showing vs. not showing a content widget (using Blank/Skip as a control) ## Test types When adding a new version to a standalone widget, you choose one of three test types: ### Duplicate content Duplicate content creates a new version that is a copy of an existing version. Use this when you want to test a small change - such as a different discount amount or a different product - while keeping everything else the same. Because the starting point is identical, any performance difference is more likely to be caused by the single change you made. This is the most common starting point for A/B tests because it minimizes variables and makes results easier to interpret. ### New content New content creates a blank version that you configure from scratch. Use this when you want to test a fundamentally different offer - such as a different widget mode, a completely different product category, or a different trigger strategy. New content versions give you full flexibility but require more setup time. This type is best suited for broader tests where you want to compare two distinct approaches rather than a single incremental change. ### Blank (Skip) Blank (Skip) creates an empty version that shows nothing to the customers it is assigned to. Use this as a control group to measure the baseline - what happens when no widget is shown at all. Comparing a Blank version against an active offer helps you understand whether your widget is helping or hurting checkout conversion. This is especially useful if you are concerned that showing a widget might increase checkout abandonment for certain customer segments. ## Setting up a checkout A/B test ### Step 1: Open or create a standalone widget 1. Open the Aftersell app from your Shopify Admin 2. Navigate to **Checkout** in the left sidebar 3. Scroll to the **Standalone widgets** section 4. Either open an existing standalone widget by clicking the pencil (edit) icon, or click **Create widget** to create a new one ### Step 2: Add a version 1. Inside the widget editor, add a new version 2. Choose one of the three test types: **Duplicate content**, **New content**, or **Blank (Skip)** 3. Configure the new version - set the product, discount, widget mode, and any other settings you want to test ### Step 3: Configure triggers for each version 1. Open each version and set its triggers 2. Triggers are configured at the version level for standalone widgets, so each version can target the same or different customer conditions 3. For a fair A/B test, set both versions to the same trigger conditions so they compete for the same audience For a full list of available trigger options, see [Checkout Triggers](/aftersell/checkout_triggers). ### Step 4: Enable both versions Ensure both versions are toggled to **active**. Inactive versions do not receive traffic - both must be active for the 50/50 split to take effect. ### Step 5: Verify placement in the Shopify Checkout editor 1. Open the Shopify Checkout editor from your Shopify Admin 2. Confirm the app block for this standalone widget is placed in your desired location 3. The widget will not display to customers until it has been placed Your A/B test is now live. ## How traffic is split Checkout A/B tests use a **50/50 split** between two active versions (Version A and Version B). Traffic is evenly distributed between the versions automatically and cannot be manually adjusted. If one version is deactivated, all traffic goes to the remaining active version. To run a valid A/B test, both versions must be active at the same time. ## Managing your test Once your A/B test is running, you can manage it at any time from within the widget editor. ### Pausing a version Toggle a version to **inactive** to pause it. When a version is inactive, it no longer receives traffic. The remaining active version will receive all traffic. Use this if you need to temporarily stop showing a specific version without deleting it. ### Editing a version Open the version and make your changes directly. For accurate results, avoid making significant changes to a version while the test is running, as this can make it harder to interpret what drove any performance differences. ### Deleting a version Delete a version to permanently remove it from the widget. Once deleted, the version and its data cannot be recovered. All traffic will go to the remaining active version. ### Selecting a winner When you are ready to end the test and commit to one version: 1. Identify the higher-performing version based on its analytics 2. Deactivate or delete the losing version 3. The winning version will now receive 100% of traffic ## Understanding your A/B test results When an A/B test is running, you can view Version A and Version B performance by clicking the bar chart icon next to the widget on the Checkout dashboard. The metrics shown depend on the widget type - upsell widgets and content widgets show different metrics. For a complete breakdown of all widget-level metrics, per-version analytics, and the Analytics tab Checkout graphs, see [Checkout Analytics](/aftersell/checkout_analytics). ## Limitations ### A/B testing is within the same widget type only A/B testing in Aftersell compares two versions of the **same widget type**. For example, you can test two different trust badge configurations against each other, or test an upsell offer against Blank (Skip). You cannot A/B test across different widget types - for example, you cannot test a trust badge widget against an image widget in the same A/B test. ### A/B testing is not available for pages A/B testing is currently only available for standalone widgets. Pages do not support A/B testing yet. ### Placement testing is not supported You cannot A/B test different widget placements (for example, testing whether an upsell performs better in the order summary vs. above the payment section). A/B testing compares the content within a single widget in a fixed placement. ## Best practices ### Test one element at a time When you change multiple elements at once, it becomes difficult to know which change drove the result. Isolate one variable per test for clear, actionable insights. **Good**: Test 10% discount vs. 20% discount (one variable changed) **Avoid**: Test 10% discount + Product A vs. 20% discount + Product B (two variables changed at once) ### Use Blank (Skip) as a control Running a Blank (Skip) version against an active widget is one of the most valuable tests you can run. It tells you whether showing the widget at all is helping or hurting your checkout conversion rate. If the Blank version performs better on checkout completion, it may be worth reconsidering the offer entirely or adjusting your targeting. ### Monitor checkout abandonment A higher upsell conversion rate is good, but make sure it is not coming at the cost of increased checkout abandonment. Check the **Checkout abandonment rate** in Analytics > Checkout tab regularly while running A/B tests. For content widgets, the per-version analytics view also includes a Checkout abandonment rate metric. ### Common test ideas **Upsell widget tests** * Specific product vs. AI recommendations vs. most expensive product * Complementary product vs. same product (replenishment) * 10% off vs. 20% off * Percentage discount vs. fixed dollar amount * Discount vs. no discount * Single product upsell vs. checkmark upsell * Multi-product upsell vs. single product upsell * Active offer vs. Blank (Skip) to measure the net impact of showing an upsell **Content widget tests** * Trust badge with vs. without specific badges * Different testimonial content * Different note or text messaging * Active content vs. Blank (Skip) to measure the impact of showing the content widget ## Need help? If you have questions about setting up or analyzing your checkout A/B tests, chat with our support team using the live chat at the bottom right of the app. # Checkout analytics Source: https://docs.aftersell.com/aftersell/checkout_analytics Understand your checkout upsell performance across the Checkout dashboard, Analytics tab, and widget-level metrics in Aftersell This page covers all analytics related to checkout widgets in Aftersell, including the Analytics tab Checkout graphs, widget-level analytics by widget type, and per-version A/B test breakdowns. For post-purchase funnel and product page analytics, see [Post-Purchase Analytics](/aftersell/analytics_in_aftersell). For checkout A/B test setup and management, see [Checkout A/B Testing](/aftersell/checkout_a_b_testing). Checkout widgets are only available to Shopify Plus stores due to Shopify's Checkout Extensibility API restrictions. Analytics reflect data at the time of the transaction. If an order is later refunded, partially paid, or cancelled, the accepted offer count and associated revenue are not retroactively adjusted. An offer that was accepted will continue to count as an accepted offer in your analytics regardless of what happens to the order afterward. Keep this in mind when comparing analytics data to your actual payout or revenue reports. *** ## General Notes About Graphs The large summary numbers at the top of each graph are weighted averages of the data shown. This method gives a more accurate overall view than a simple average. For example, three days of conversion rates are shown: * **Day 1:** 3 accepted / 10 shown = 30% * **Day 2:** 1 accepted / 9 shown = 11% * **Day 3:** 5 accepted / 15 shown = 33% The summary number is calculated as: `(3 + 1 + 5) ÷ (10 + 9 + 15) = 26.5%` not a simple average like `(30 + 11 + 33) ÷ 3 = 24.7%`. Weighted averages ensure that days with more impressions have the right impact on your totals. Throughout the analytics dashboard, you can hover over the **ⓘ info icon** next to any metric to see how that value is calculated. The formulas listed in the tables below match the tooltip calculations shown in the dashboard. *** ## Checkout Dashboard The Checkout dashboard is the main overview for all checkout widget performance. It is accessible from the **Checkout** section in the left sidebar of the Aftersell app. For a full breakdown of all Checkout dashboard sections, columns, and summary metrics, see [Checkout Dashboard Overview](/aftersell/checkout-dashboard-overview). *** ## Analytics Tab - Checkout Graphs The Analytics section of the Aftersell dashboard includes a dedicated Checkout tab with graphs and metrics for your overall checkout performance. ### Filtering by Page You can filter your checkout analytics by specific pages or widget types using the "Select a page" dropdown at the top of the Checkout tab. This allows you to analyze performance for: * **Overall (pages + standalone widgets)** - Shows combined analytics for all checkout pages and standalone widgets. This is the default view. * **Standalone widgets** - Shows analytics only for widgets that are not part of a checkout page. * **Individual checkout pages** - Shows analytics for a specific checkout page by name. When you select a page filter, all graphs and metrics on the Checkout tab update to show data only for that selection. This helps you understand which pages or widget configurations are performing best. Inactive pages are labeled with "(Inactive)" in the dropdown but still show historical analytics data. ### Checkout Tab Metrics | Metric | What it measures | Formula | | ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------- | | **Revenue** | The total checkout revenue generated by Aftersell upsell widgets. | `sum(upsell widget revenue)` | | **Impressions** | The total number of times checkout upsell widgets were viewed. | `sum(widget views)` | | **Upsell revenue per order** | The average upsell revenue per purchased order. This is the recommended way to measure performance over time for checkout widgets. | `checkout upsell revenue / purchased orders` | | **Accepted upsell rate** | The percentage of unique visitors who accepted an upsell offer. | `(accepted offers / unique visitors) x 100` | | **Unaccepted upsell rate** | The percentage of customers who initiated the checkout process but did not accept an upsell. | `(1 - (accepted offers / unique visitors)) x 100` | | **Checkout abandonment rate** | The rate at which customers go to checkout without completing the order. This is measured separately from any offers shown. | `(1 - (purchased orders / unique visitors)) x 100` | | **Total revenue per order** | The average total store revenue from purchased orders where Aftersell checkout widgets were placed on the checkout page. | `total store revenue / purchased orders` | | **Accepted offers** | The total number of Aftersell upsell offers that were accepted. | `sum(accepted offers)` | | **Average upsell value** | The average revenue per accepted upsell item. Particularly useful when using dynamic products in offers. | `upsell revenue / accepted offers` | | **Product profit** | The total product profit generated by Aftersell. Calculated by subtracting the cost of goods sold from the revenue. | `sum(upsell revenue) - sum(cost of goods sold)` | | **Product profit per order** | The average product profit per purchased order. Similar to revenue per order but accounts for cost of goods sold. | `product profit / purchased orders` | | **Product profit margin** | The ratio of product profit to revenue. If your products had no costs, this would be 100%. | `(product profit / revenue) x 100` | Upsell revenue per order is the recommended metric for measuring checkout widget performance over time. ### Top Performing Products Table This table highlights checkout upsells and the revenue generated from them. It works the same way as the one in the Funnels tab, but only includes checkout upsells. The conversion rate in this table is based on the number of accepted offers, not the number of individual product units sold. For example, if a customer accepts one offer containing 3 units of a product, it counts as 1 accepted offer. However, the revenue column reflects the total value of all units purchased through that offer. To view this table, go to the **Analytics** section in your Aftersell dashboard, click on the **Checkout** tab, and scroll to the **Top Performing Products** section. *** ## Widget-Level Analytics You can view analytics for individual widgets by clicking the bar chart icon next to any widget on the Checkout dashboard. The metrics shown depend on the widget type. ### Pages Pages are groups of related widgets with a shared trigger. Click the bar chart icon next to a page on the Checkout dashboard to view its analytics. | Metric | What it measures | Formula | | ---------------------------- | ------------------------------------------------------------------------- | ---------------------------------------- | | **Sessions with page** | The number of unique checkout sessions where this page was displayed. | `sum(widget views)` | | **Cart conversion rate** | The percentage of sessions that resulted in a completed purchase. | `(purchased orders / impressions) x 100` | | **Average order value** | The average total order value for sessions where this page was displayed. | `total store revenue / purchased orders` | | **Upsell revenue per order** | The average upsell revenue per purchased order. | `upsell revenue / purchased orders` | ### Standalone Upsell Widgets Upsell widgets display product offers that customers can accept during checkout. Click the bar chart icon next to an upsell widget on the Checkout dashboard to view its analytics. | Metric | What it measures | Formula | | ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------- | | **Upsell revenue per order** | The average upsell revenue per purchased order. | `upsell revenue / purchased orders` | | **Sessions with widget** | The number of unique checkout sessions where this widget was displayed. If a customer views a page multiple times on a single order, it is counted as one session. | `sum(widget views)` | | **Upsell conversion rate** | The percentage of purchased orders that accepted an upsell from this widget. An order that accepts upsells across multiple widget placements is counted once per placement, so this rate can exceed 100%. | `(orders with upsells / purchased orders) x 100` | | **Orders with upsells** | The sum of widget placements per order where at least one upsell was accepted. An order that accepts upsells in two placements contributes twice; multiple offers accepted within one placement count once. | `sum(placements per order with at least 1 accepted offer)` | | **Purchased orders** | The number of purchased orders where this widget was displayed. This is the denominator used by the upsell conversion rate and per-order revenue metrics. | `sum(purchased orders)` | When an A/B test is running on an upsell widget, these same 4 metrics are split to show **Version A** and **Version B** separately, allowing direct comparison between versions. A/B test results are only available at the widget level and are not shown in the general Analytics tab. For setup instructions, see [Checkout A/B Testing](/aftersell/checkout_a_b_testing). ### Standalone Content Widgets Content widgets include trust badges, testimonials, cart controls, notes, text, and images. These widgets do not offer upsell products but can influence checkout behavior. Click the bar chart icon next to a content widget on the Checkout dashboard to view its analytics. | Metric | What it measures | Formula | | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------- | | **Sessions with widget** | The number of unique checkout sessions where this widget was displayed. If a customer views a page multiple times on a single order, it is counted as one session. | `sum(widget views)` | | **Cart conversion rate** | The percentage of sessions that resulted in a completed purchase. | `(purchased orders / impressions) x 100` | | **Average order value** | The average total order value for sessions where this widget was displayed. | `total store revenue / purchased orders` | | **Checkout abandonment rate** | The percentage of sessions that did not complete their purchase. | `(1 - purchased orders / impressions) x 100` | When an A/B test is running on a content widget, these same 4 metrics are split to show **Version A** and **Version B** separately, allowing direct comparison between versions. ### Why Widget Analytics May Show Zero Values If you see 0% conversion, \$0 revenue, and 0 orders for a widget or a specific version, this does not mean the data is missing or broken. It means no customer has completed the relevant action through that widget or version yet. This is normal in the following situations: * The widget was recently created and has not yet received enough traffic * The widget's triggers are not matching any customers in the current date range * The widget or variant is newly active and sessions are still accumulating * For A/B tests, it is normal for the widget to show overall metrics while the per-version view still shows zeros, especially if the test was recently started Give the widget time to accumulate sessions before drawing conclusions. *** **Want to go further?** * [Checkout A/B Testing](/aftersell/checkout_a_b_testing) - set up and manage A/B tests for your checkout widgets * [Checkout Dashboard Overview](/aftersell/checkout-dashboard-overview) - full breakdown of the Checkout dashboard # Checkout best practices Source: https://docs.aftersell.com/aftersell/checkout_best_practices A complete strategy guide for configuring, optimizing, and testing your checkout widgets in Aftersell # Checkout best practices This guide covers how to get the most out of Aftersell's checkout widgets on Shopify Plus -- from choosing between Pages and Standalone widgets, to configuring upsells, trust badges, rewards, and testimonials, to running A/B tests and avoiding common setup mistakes. Checkout widgets are only available to Shopify Plus merchants due to Shopify's Checkout Extensibility API restrictions. For post-purchase upsell best practices, see [Post-Purchase Best Practices](/aftersell/best_practices). *** ## Choose the right widget structure Aftersell offers two ways to add widgets to your checkout: **Pages** and **Standalone widgets**. Choosing the right structure upfront saves time and avoids conflicts later. ### When to use Pages A [Page](/aftersell/pages-vs-standalone-widgets) is a group of widgets that share a single set of triggers. When the trigger conditions are met, all widgets in the page display together. Use Pages when you want to show a coordinated set of widgets to the same audience -- for example, an upsell, trust badges, and testimonials all appearing together for a specific customer segment. Pages support a guided setup that recommends widgets based on a goal you select: * **Increase AOV and conversion rate** - Upsells, Trust Badges, Testimonials * **Build customer trust and reduce abandonment** - Trust Badges, Cart Controls, Text * **Promote add-ons and accessories** - Checkbox Upsells, Images, Testimonials * **Encourage customers to reach free shipping threshold** - Upsells (with Rewards), Text Your goal cannot be changed after saving. If you need a different goal, you will need to delete the page and create a new one. Widgets can be added to or removed from a page at any time. ### When to use Standalone widgets [Standalone widgets](/aftersell/pages-vs-standalone-widgets) function independently, each with their own triggers and priority configured at the variant level. Use Standalone widgets when you need a single widget that runs on its own, or when you need different trigger conditions for different widgets. Standalone widgets also support A/B testing (Pages do not support A/B testing yet), so use Standalone if testing is part of your strategy. ### Block limits Pages allow up to 5 blocks per widget type. Standalone widgets allow a maximum of 3 blocks per widget type. Once all blocks are in use, you cannot create additional widgets of the same type until an existing block is removed. *** ## Upsell widget strategy Checkout upsells are your primary revenue driver at this stage. The goal is to increase AOV without increasing checkout abandonment. ### Choose the right upsell mode Aftersell offers three upsell widget modes: * **Single Product Upsell** - Show one product with an Add to Cart button. Best for focused, high-confidence offers where you know exactly what the customer is likely to want. * **Multi-Product Upsell** - Show multiple products in a stack or carousel layout. Customers can accept multiple offers. Best for stores with a wide catalog where you want to give customers options. * **Checkmark Upsell** - Show a single product with a checkbox instead of an Add to Cart button. Best for low-cost add-ons like shipping protection, gift wrapping, or rush processing where the decision is simple and fast. Note: the checkbox cannot be pre-checked or auto-added to the order by default. Shopify does not allow this. The customer must actively check the box to add the product. ### Choose the right product selection method Each upsell widget supports several product selection methods. Choose based on your catalog and strategy: * **Specific Products** - Manually select individual products to upsell. Use when you want full control over exactly what appears, such as during a seasonal promotion or for curated pairings. * **Collection** - Select a collection and display up to 5 random products from it. Products already in the cart are automatically excluded. Use when you want variety within a curated set without manually managing individual products. * **AI Recommendations** - Let Aftersell automatically recommend products based on the customer's cart contents. Use when you have a large catalog and want personalized recommendations without manual curation. * **Most Expensive Product** - Automatically upsell the most expensive product from the customer's cart. Use for cross-sell scenarios where re-offering the hero item makes sense. * **Spend Threshold** - Recommend products that help customers reach a free shipping threshold (requires the rewards widget to be enabled). Use alongside the rewards bar to close the gap between the customer's current cart value and the free shipping goal. ### Always add a discount to your checkout upsells We strongly recommend adding a discount to every checkout upsell widget. A discount gives customers an immediate incentive to add the product to their order and significantly increases acceptance rates. Even a small discount signals value and can be the difference between a customer engaging with the offer or ignoring it. Discounts are configured directly within the Aftersell upsell widget and are automatically applied when the customer adds the upsell product to their order. You can either select an existing Aftersell checkout discount or create a new one (percentage or fixed dollar) right in the widget editor. See [Checkout Widget Types](/aftersell/checkout_widget_types) for full details on discount configuration. Keep in mind: * Shopify only allows one line-item discount per product at a time. If a product already has a discount applied, the Aftersell upsell discount will not stack on the same line item. * For two discounts to combine, both must be explicitly set to "combinable" in Shopify Admin. * If another app is dynamically modifying your checkout (for example, recalculating pricing), Aftersell discounts may not apply as expected. ### Enable product review stars If you have a compatible review app installed, enable product review star ratings on your upsell widgets. Review ratings build trust and increase the likelihood a customer will accept the offer. You can set a minimum rating threshold (default 4.0) so only well-reviewed products display stars. Supported review apps include Shopify Product Reviews, Judge.me, Okendo, Loox, Stamped, and others that store ratings in product metafields. See [Checkout Widget Types](/aftersell/checkout_widget_types) for the full list. *** ## Content widgets that increase conversion Content widgets do not directly offer products, but they reduce checkout abandonment and build trust, which increases overall conversion. ### Trust badges [Trust badges](/aftersell/checkout_widget_types) highlight security features, guarantees, and shipping benefits. They can be stacked vertically or displayed horizontally. Effective trust badge content includes: * Secure checkout / SSL encryption * Money-back guarantee or satisfaction guarantee * Free returns or easy exchanges * Free or fast shipping * Customer count or order count ("Trusted by 50,000+ customers") Keep badges concise and use recognizable icons. Place them near the payment section where customers are most likely to hesitate. ### Testimonials [Flex Testimonials](/aftersell/checkout_widget_types) pull real reviews from your review app (Judge.me, Klaviyo, Okendo, or Yotpo) and display them directly on checkout. Testimonials automatically fetch reviews based on products in the customer's cart, so each customer sees reviews relevant to what they are buying. Reviews sync automatically within 24 hours of setup, then weekly. To import reviews immediately, go to Settings > Product Reviews and click Sync now. Set a minimum rating filter (for example, 4.0) and use the truncate option to keep long reviews clean. A "Read more" button appears automatically for reviews that exceed your character limit. ### Rewards bar The [rewards bar](/aftersell/checkout_widget_types) shows customers how close they are to earning free shipping. This creates a natural incentive to add more products to their order. To get the most out of the rewards bar: 1. Set a goal based on **Order Value** or **Item Count** 2. Pair it with an upsell widget using the **Spend Threshold** product type, which automatically recommends products that help customers close the gap to the free shipping threshold 3. Create the free shipping reward in Shopify by modifying your **Shipping Rules** to offer free shipping at the target order value The rewards bar and spend threshold upsell work best as a pair - the bar creates the motivation, and the upsell provides the product to get there. ### Cart controls [Cart controls](/aftersell/checkout_widget_types) let customers modify their cart directly on the checkout page -- changing variants, adjusting quantities, removing items, or upgrading to a subscription. This reduces friction and can prevent abandonment from customers who would otherwise leave checkout to make changes. You can target which products display cart controls using the visibility settings: all products, only selected products, or all products except selected ones. This lets you enable subscription upgrades only on eligible products, for example, without exposing unnecessary controls on other items. *** ## Triggers [Triggers](/aftersell/checkout_triggers) let you control which customers see which widgets. Using triggers effectively means the right customers see the right offers at the right time. The full set of available checkout triggers: * **Products:** Specific products, specific collections, quantity of specific product * **Cart:** Subtotal, quantity, subscription purchase * **Discount:** Applied discount titles, discount value * **Customer:** Shipping country, customer language, customer tags, device type * **Advanced:** Group of triggers (combine multiple triggers for complex logic) ### Start with a "Show to all" baseline Before building complex trigger logic, set up your primary widgets to show to all customers. This ensures every checkout session sees your offers and gives you a baseline to measure against before you start segmenting. ### Segment with product and cart triggers The most impactful triggers for upsells: * **Specific products or collections** -- Show a complementary upsell when a specific product or collection is in the cart * **Quantity of specific product** -- Show a widget only when a customer has a certain quantity of a specific product (for example, show a volume discount upsell when a customer has 2 or more of a product) * **Cart subtotal** -- Show a rewards bar or upsell only when the cart value is within range of a threshold (for example, show the rewards bar when the subtotal is between $40 and $75 if free shipping starts at \$75) * **Cart quantity** -- Show or hide widgets based on how many items are in the cart * **Subscription purchase** -- Show or hide widgets based on whether any item in the cart is a subscription ### Use customer triggers for personalization * **Shipping country** -- Show different content or offers based on the customer's shipping destination * **Customer language** -- Display translated widgets to customers whose locale matches a specific language. Set the trigger to "is French" and translate all editable fields to French within the widget * **Customer tags** -- Target customers based on Shopify customer tags. Use this for VIP customers, loyalty tiers, wholesale accounts, or any other customer segmentation you have set up in Shopify * **Device type** -- Show or hide widgets based on whether the customer is on mobile or desktop. This is especially important for placement strategy (see the mobile checkout behavior section below) ### Combine triggers with advanced logic Use the **Group of triggers** option to combine multiple conditions. For example, show a specific upsell only when the cart contains Product X AND the subtotal is above \$50. This prevents irrelevant offers from appearing and improves the customer experience. *** ## Placement and branding ### Place widgets thoughtfully Where you place your widget in the checkout affects how likely customers are to see and interact with it. General guidelines: * **Upsells** -- Place above the payment section where customers are actively reviewing their order. Avoid placing upsells inside the order summary section (see mobile note below). * **Trust badges** -- Place near the payment section where hesitation is highest. * **Rewards bar** -- Place near the top of the checkout so customers see the incentive early and have time to act on it. * **Testimonials** -- Place below the upsell for social proof reinforcement, or near the payment section. ### Be aware of mobile checkout behavior On mobile, Shopify collapses the order summary section into a dropdown that is hidden by default. Any widgets placed inside the order summary area will be hidden under that dropdown and most customers will not see them. This is Shopify's default behavior and Aftersell has no control over it. For widgets you want every customer to see (especially upsells and rewards bars), place them outside the order summary section so they are visible on both desktop and mobile without requiring the customer to expand anything. Use the **device type** trigger to create separate widget configurations for mobile and desktop. For example, you might show a streamlined single-product upsell on mobile (where screen space is limited) and a multi-product carousel on desktop. Or you might place a widget in the order summary for desktop users (where it is always visible) and use a separate widget outside the order summary for mobile users. If your upsell widget is placed in the order summary and you are seeing low impressions on mobile, this is likely the cause. Move the widget to a section outside the order summary, or use the device type trigger to show a differently placed widget to mobile customers. After placing widgets in the Shopify Checkout Editor, check the "Include app block in Shop Pay" option if you want your widgets to display in Shop Pay checkout as well. See [Shop Pay Widgets](/aftersell/show_checkout_widgets_in_shop_pay) for setup details. ### Match your checkout to your storefront A checkout that looks visually different from your storefront can erode trust and increase abandonment. Use the [Checkout Branding Settings](/aftersell/checkout_branding_settings) to match your checkout's button colors, corner radius, and body colors to your store's design. Pay particular attention to the primary button styling -- this is the most visible element in the checkout and should feel consistent with your storefront's CTA buttons. *** ## A/B testing A/B testing is the most effective way to improve checkout widget performance. See the full [Checkout A/B Testing](/aftersell/checkout_a_b_testing) guide for setup instructions. ### Key concepts * A/B testing is currently available for **Standalone widgets only** (Pages do not support A/B testing yet) * Each widget supports **two versions** (Version A and Version B) with an automatic **50/50 traffic split** * Testing compares **content within a single widget** - you cannot test across different widget types or different placements * Use **Version A** and **Version B** terminology (not "Layout" - that is post-purchase terminology) ### Most valuable tests to run **Upsell widget tests:** * Specific product vs. AI recommendations vs. most expensive product * Complementary product vs. same product * Percentage discount vs. fixed dollar discount * Discount vs. no discount * Single product upsell vs. checkmark upsell * Active offer vs. Blank (Skip) to measure whether showing the upsell helps or hurts overall checkout conversion **Content widget tests:** * Trust badges with vs. without specific badges * Different testimonial selections * Active content vs. Blank (Skip) to measure the impact of showing the widget ### Test one variable at a time When you change multiple elements at once, you cannot tell which change drove the result. Keep tests clean: * Good: 10% discount vs. 20% discount (one variable) * Avoid: 10% discount + Product A vs. 20% discount + Product B (two variables) ### Use Blank (Skip) as a control This is one of the most valuable tests you can run. A Blank version shows nothing to the customers it is assigned to, giving you a true baseline. If the Blank version results in a higher checkout completion rate, the widget may be hurting conversion and needs to be reconsidered. ### Monitor checkout abandonment alongside upsell conversion A higher upsell acceptance rate means nothing if checkout abandonment is increasing at the same time. Track the **Checkout abandonment rate** in Analytics > Checkout tab while running A/B tests. For content widgets, per-version analytics also include a Checkout abandonment rate metric. ### Use upsell revenue per order as your primary metric **Upsell revenue per order** (checkout upsell revenue / purchased orders) is the recommended metric for measuring checkout widget performance over time. It accounts for both upsell acceptance and overall order completion, giving you a complete picture. *** ## Common mistakes ❌ **Placement mismatch between Aftersell and Shopify** - the placement selected in the Shopify Checkout Editor must match the placement set in Aftersell (for example, Default placement, Additional placement 1, Additional placement 2). If they do not match, the widget will not appear or will display in the wrong location. This is one of the most common reasons a widget fails to display. [Fix it →](/aftersell/how_to_configure_checkout_widgets) ❌ **Widget not enabled in Aftersell** - creating and placing a widget is not enough. You must also enable the widget using the toggle in the top right corner of the widget settings in the Aftersell admin. If the toggle is off, the widget will not display regardless of placement. [Fix it →](/aftersell/how_to_configure_checkout_widgets) ❌ **Missing Shop Pay app block setting** - if you want checkout widgets to display in Shop Pay checkout, you must check the "Include app block in Shop Pay" option in the Shopify Checkout Editor for each widget. This is off by default. [Fix it →](/aftersell/show_checkout_widgets_in_shop_pay) ❌ **No "Show to all" baseline** - jumping straight into complex trigger logic without first establishing a baseline that shows widgets to all customers. Start with "Show to all" so you have performance data, then segment with triggers based on what you learn. [Fix it →](/aftersell/checkout_triggers) ❌ **Stacking discounts that do not combine** - Aftersell upsell discounts follow Shopify's standard discount rules. If a product already has a discount and neither discount is set to "combinable" in Shopify Admin, the Aftersell discount will not apply. Check your Shopify discount combination settings before assuming a discount is broken. [Fix it →](/aftersell/checkout_widget_types) ❌ **No rewards bar alongside upsells** - running upsell widgets without a rewards bar misses the opportunity to give customers a reason to add more. Pair the rewards bar with the spend threshold product type in your upsell widget so the upsell directly helps customers reach the free shipping threshold. [Fix it →](/aftersell/checkout_widget_types) ❌ **Not testing with Blank (Skip)** - most merchants test different offers against each other but never test whether showing a widget at all is helping. Use Blank (Skip) as a control to measure whether a widget is increasing or decreasing checkout completion. [Fix it →](/aftersell/checkout_a_b_testing) ❌ **Running only one A/B test version** - for a Standalone widget A/B test to work, both versions must be active at the same time. If one version is deactivated, all traffic goes to the remaining version and no comparison data is collected. [Fix it →](/aftersell/checkout_a_b_testing) *** ## Need help? If you have questions about configuring or optimizing your checkout widgets, chat with our support team using the live chat at the bottom right of the app. # Checkout branding settings Source: https://docs.aftersell.com/aftersell/checkout_branding_settings This article walks you through the Checkout Branding Settings and how to use each feature to customize your checkout. The branding settings allow you to customize the look and feel of your checkout experience, from colors and buttons to headers and field layouts. These tools make it easy to align your checkout design with your brand identity. # How to Access It You can access the settings by clicking on "Edit Branding" at the top of your Checkout Editor: Image *** # Design System ## Color Palette This section allows you to adjust the colors used across your checkout, including backgrounds, buttons, and text. You can modify the following areas: * **Primary Buttons** - Controls the color of main action buttons (e.g., “Pay Now” or “Add”). * **Interactive** - Controls elements customers can interact with, such as links and input fields. * **Main Body** - Sets the color for the **left side** of the checkout page. * **Secondary Body** - Sets the color for the **right side** (order summary section). Image * **Loading Screens** – Defines the color displayed when customers perform an action that triggers a loading screen. * **Critical** – Controls the color of error messages or alerts displayed during checkout. ## Variables This section allows you to control the **corner radius** of elements throughout your checkout. The corner radius is essentially how rounded the corners appear. You can adjust the radius for: * **Small elements** (ex. checkboxes) * **Medium elements** (ex. text or input fields) * **Large elements** (ex. buttons or cards) *** # Customizations ## Buttons This sections allows you to customize additional styling options for your primary and secondary buttons beyond color: * **Variables** – Define whether the button uses the small, medium, or large radius setting in the Variables section * **Background** – Choose between a solid color background or a transparent one. * **Border** – Enable or disable a border around the button. * **Horizontal & Vertical Padding** – Adjust the spacing around buttons. * *Horizontal* = left and right spacing * *Vertical* = top and bottom spacing ## Fields This section allows you to control the styling of all form fields, including text inputs, dropdowns, and checkboxes: * **Variables** – Assign the field size (small, medium, or large) in the Variables section. * **Border** – Toggle borders on or off. * **Label Position** – Choose whether the field label appears inside or above the input. * **Corner Radius** – Adjust how rounded the field corners appear. ## **Header** In this section, you can customize the position and alignment of your checkout header: * Position the header on the left or right side of the page. * Align the header text to the left, center, or right. Image ## Order Summary This section gives you control over the look of product images in the order summary: * Add or remove an image **border**. * Adjust the **corner radius** to make image corners more rounded or square. Image *** # Coming Soon We have additional customization options coming soon, including: * **Typography** – Control font styles and weights. * **Main & Global Settings** – Expanded options for overall design consistency. More details will be available when these features launch. # Checkout customization limitations Source: https://docs.aftersell.com/aftersell/checkout_customization_limitations This article outlines notable limitations regarding checkout customizations The Shopify API's used in Aftersell's checkout customization feature come with [some limitations](https://shopify.dev/docs/api/functions/reference/payment-customization#limitations-and-considerations). We aim to detail those here to prepare you for its usage. Additionally, it's important to note that these limitations extend beyond payment customizations and also include restrictions related to price displays on checkout and cart buttons. # Payment Customization Limitations ## Payment method naming The "Credit Card" payment option seen on the checkout page is actually called "Shopify Payments" for the purposes of the API. This can be confusing, but keep this in mind when targeting this payment method for any sort of customization. For example, when ordering items alphabetically, the "Credit Card" option will be ordered by its true name of "Shopify Payments", meaning it may appear closer to the bottom of the list. ## Renaming You can't rename payment methods that have logos as a name, such as Shop Pay, Apple Pay and Google Pay. This includes all wallets. ## Reordering You can remove wallets from the Express section of checkout, but you can't reorder them. ## Draft Orders Payment customizations are not currently supported in draft orders. # Checkout customizations Source: https://docs.aftersell.com/aftersell/checkout_customizations This article outlines customizable actions for configuring payment and delivery methods. Checkout customizations allow you to adjust delivery and payment methods to better meet customer needs and enhance the customers' shopping experience. [Payment Methods](#payment-methods) [Delivery Methods](#delivery-methods) [Actions](#actions) [Trigger condition](#trigger-condition) ## Payment Methods You can set payment method customization(s) to show tailored payment options to customers when they finalize their purchase. ## Delivery Methods You can set delivery method customization(s) to show tailored delivery options to customers when they finalize their purchase. *** ## Actions You can set three actions for Checkout customizations: 1. **Rename:** * To rename a payment/delivery method, select "Add Method" and choose a logic such as "**is**". For example, if the payment method is labeled as "bank deposit", you can specify the desired renaming, such as changing it to "BD". 2. **Move:** * To reorder payment/delivery methods, choose from options like sorting alphabetically or in reverse, setting a method to the top based on conditions like "**contains**", "**does not contain**", or "**is not**". Alternatively, you can manually arrange them by selecting "set manually" and adding payment/delivery methods in your preferred order. 3. **Hide:** * To hide a payment/delivery method, you can set conditions such as: If the method is If the method contains If the method does not contain If the method is not For example, you might specify "payment method is bank deposit" to hide it. This action ensures that the selected payment method will not appear in the checkout options. Note: You can add more than one customization, by clicking on **Add new action**. *** ## Trigger condition You can also define specific trigger conditions under which these customizations will be applied: Image # Checkout translations Source: https://docs.aftersell.com/aftersell/checkout_translations Customize the system text shown in your checkout widgets for each language using the Checkout Translations section in Settings. Aftersell automatically translates system text in your checkout widgets (upsells, cart controls, and testimonials) based on the customer's language. You can override any of these default translations per language from **Settings > Translations**. *** ## How checkout translations work When a customer reaches checkout, Aftersell detects their language and applies the appropriate translations to all system-generated strings in your checkout widgets. These include labels like "Adding...", "Sold Out", "Remove", and "Read more". The **Checkout translations** section in **Settings > Translations** lets you override the default translated strings for any supported language. Your overrides apply on top of the bundled defaults — if you leave a field blank, the default translation is used. If you clear a field entirely, that label is hidden for customers in that language. *** ## Supported languages Checkout translations currently support 33 languages: Arabic, Bulgarian, Chinese, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, German, Greek, Hebrew, Hungarian, Italian, Japanese, Korean, Latvian, Lithuanian, Norwegian, Norwegian Bokmål, Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovenian, Spanish, Swedish, Turkish, and Ukrainian. *** ## Customizing checkout translations 1. Go to **Settings** 2. Select **Translations** 3. Scroll to the **Checkout translations** section 4. Choose a language from the language dropdown 5. Update any fields you want to override for that language 6. Click **Save** Your overrides are saved alongside your post-purchase translations in a single save action. To reset all fields for a language back to the bundled defaults, click **Reset defaults**. *** ## Available fields The following strings are available for customization. Sensitive strings (such as commerce CTAs, savings claims, and "Verified buyer") are system-managed and cannot be overridden. ### Upsell widget | Field | Description | | ------------------------------ | ------------------------------------------------------------------------------------------------------ | | Adding (loading state) | Text shown while a product is being added to the cart | | Removing (loading state) | Text shown while a product is being removed | | Sold out badge | Label shown when a product is out of stock | | Quantity (upsell label) | Quantity selector label on upsell widgets | | Purchase option (upsell label) | Label for the purchase option selector | | One-time purchase (upsell) | Label for the one-time purchase option | | Upsell error message | Message shown when adding or removing a product fails | | Review count label | Label for review counts — use `{{count}}` as a placeholder for the number (e.g. `({{count}} reviews)`) | ### Cart controls widget | Field | Description | | ---------------------------------- | ------------------------------------------------------- | | Remove (cart action) | Text for the remove item action | | Modify (cart action) | Text for the modify item action | | Variant (cart label) | Label for the variant selector | | Quantity (cart label) | Label for the quantity selector | | One time purchase (cart) | Label for the one-time purchase option in cart controls | | Subscription (cart label) | Label for the subscription option | | Discount calculating (cart status) | Status text shown while a discount is being calculated | | Retry (cart action link) | Link text shown when a discount calculation fails | ### Testimonials widget | Field | Description | | ------------------------ | --------------------------------------------- | | Read more (testimonials) | Text for the "Read more" link on testimonials | *** ## Blank field behavior Leaving a field blank uses the default translation for that language. Clearing a field that previously had a value (saving it as empty) hides that label entirely for customers in that language. This is intentionally different from post-purchase translation behavior and is useful if you want to suppress a specific label for a given language. *** ## Need help? If you have questions about checkout translations or need help configuring them, reach out through the in-app chat or by email. # Checkout triggers Source: https://docs.aftersell.com/aftersell/checkout_triggers This article explains how to create and manage triggers and the underlying logic, so you can understand what customers will see. Triggers enable you to segment your customers and display a customized set of widgets for each of them. By using triggers, you can design more precise and personalized widgets: * [Products](#products) * [Cart](#cart) * [Discount](#discount) * [Customer](#customer) * [Advanced](#advanced) Image *** ### **Products** The Product Trigger works by displaying the widget only if the customer has purchased a specific product. * Specific products: Use this option for individual products or variants. Select the products you want to trigger the widget. When a customer purchases any of these products, the widget will appear. * Specific collections: This option works when any item in the cart belongs a specific collection. Select the collection you want to trigger the widget. When a customer purchases any item from the collection, the widget will appear. * You can set the product/collection trigger to show for all customers or conditionally based on the following criteria: 1. Contains at least one of: Shows the widget if the cart contains at least one of the selected products/collections. 2. Does not contain any of: Shows the widget if the cart does not contain any of the selected products/collections. * Quantity of specific product: For example, 2 or more of a specific product Set the trigger to show the widget if a customer purchases two or more of a specific product. * Product tag: Shows the widget if any product in the cart has one of the specified Shopify tags. Tag matching is case-insensitive. For example, set the trigger to include the tag `summer-collection` to show the widget only when a tagged product is in the cart. * Product type: Shows the widget if any product in the cart belongs to one of the specified product types. For example, set the trigger to include `Apparel` to show the widget only when an apparel product is in the cart. * Variant name: Shows the widget if any cart variant title matches one of the specified strings. Matching is case-insensitive. For example, set the trigger to include `Large` to show the widget only when a large-size variant is in the cart. * Product metafield: Shows the widget if any product in the cart has a metafield (identified by namespace and key) whose value matches the specified condition (equals or contains). > **Note:** Metafield values are evaluated at the time the widget is displayed, not at order placement. If a customer removes the matching product and adds a different product after the widget loads, the widget may still appear. * Variant metafield: Shows the widget if any variant in the cart has a metafield (identified by namespace and key) whose value matches the specified condition (equals or contains). > **Note:** Same evaluation timing applies as with product metafields above. *** ### **Cart** * Subtotal: The combined value of all items before discounts, tax, and shipping. * Quantity: The total number of items in the cart. You can set this trigger to show the widget when the cart quantity is greater than, less than, or exactly equal to a specified number. * Subscription purchase: Indicates if any item in the cart is a subscription. * Cart attribute: Shows the widget based on a cart-level attribute key and value (equals or contains). This is useful for targeting customers based on data set by other apps or integrations (for example, loyalty status set by a third-party app). > **Note:** Only one distinct cart attribute key can be used across all active checkout widgets. If another widget already uses a cart attribute trigger with a different key, you must use the same key or update the other widget. The same key can be reused across multiple widgets with different values. *** ### **Discount** * Applied discount titles: Verify if a specific discount is applied during checkout * Discount value: Track the total sum of discounts applied at checkout *** ### **Customer** * Shipping country: Target specific shipping destinations * Customer language: Display personalized content based on the customer's language. For example, show French content exclusively to French-speaking customers. You can set the customer language trigger to "**is French**" and translate all editable fields in the widget to French. *** ### **Advanced** * Group of triggers: Combine multiple triggers for complex logic For example, show a widget if a customer has both product X and product Y in their cart. You can set the product trigger condition to contain both product X and product Y, so the widget will appear accordingly. # Checkout widget types Source: https://docs.aftersell.com/aftersell/checkout_widget_types This document covers various checkout widgets you can add with Aftersell to enhance your Shopify Plus checkout experience There are a variety of checkout widget options to select from. In this article, we will walk through the different widget options, what they do, and available customizations: * [Upsells](#upsells) * [Cart Controls](#cart-controls) * [Rewards](#rewards) * [Trust Badges](#trust-badges) * [Testimonials](#testimonials) * [Notes](#notes) * [Images](#images) * [Text](#text) Image *** ## Upsells Offer products to your customers during checkout to **help increase your AOV.** Image Upsell Widgets have a few different configurations to select from. * **Single Product Upsell:** Offer one product to your customer. * **Multi-Product Upsell:** Show multiple products in either a stack or carousel layout. Allow customers to accept multiple offers. * **Checkmark Upsell:** Upsell a single product with a checkbox instead of an Add to Cart button. This is commonly used for cheaper add-ons such as shipping protection or first in line shipping. ### Product selection options When creating upsell offers, you can choose how products are selected: * **Specific Products:** Manually select individual products to upsell. * **Collection:** Select a collection and choose up to 5 random products from that collection to display. Products already in the cart are automatically excluded. * **AI Recommendations:** Let Aftersell automatically recommend products based on the customer's cart contents. * **Most Expensive Product:** Automatically upsell the most expensive product from the customer's cart. When browsing the **Products** tab in the product picker, you can check **Active products only** to hide Draft and Archived products from the list. This filter is off by default and only applies to the Products tab — Collections are not affected. Image ### Product types When adding products to your upsell widget, you can choose from several product types: * **Specific product** - Select a particular product from your store to display * **Automatic upsell** - Uses Shopify's AI to recommend complementary products based on cart contents * **Most expensive product** - Shows the most expensive item from the customer's cart * **Spend threshold** - Intelligently recommends products to help customers reach reward thresholds (requires rewards bar to be enabled) * **Collection** - Display products from a specific collection The **spend threshold** product type works with your rewards bar to suggest products that help customers reach goals like free shipping or discounts. It automatically selects the most relevant product based on how close the customer is to the threshold. ### Variant name display When a customer selects a variant for a checkout upsell product, the variant name appears as small subdued text below the product title. This helps customers confirm they are adding the correct variant to their order. The variant name only appears when the product has multiple variants — it is hidden for single-variant products (those with only a "Default Title" variant). ### Subscription plan locking * When you hide a variant option, customers won't see it in the checkout upsell. * The default value you select is automatically applied to the product. * Only variants matching your selected default values will be available to customers. * If you hide multiple options, only variants matching all selected defaults will be shown. When creating upsells for subscription products, you can lock the upsell to a specific subscription plan. This prevents customers from changing the subscription plan at checkout, ensuring they receive the exact subscription option you've configured. **How to configure subscription plan locking:** 1. Open your upsell widget in the Checkout editor. 2. Set the **Purchase option** to **Subscription**. 3. In the **Subscription plan** dropdown, select a specific plan instead of "Any plan (customer chooses)". 4. The plan is now locked - customers will see this plan at checkout but cannot change it. **Customizing the locked plan display:** * Hide the Color option and set the default to "Black" * Keep the Size option visible * Customers will only see size options for the black t-shirt When a plan is locked, you can customize how it appears to customers at checkout: * **Show subscription option on checkout** - Toggle whether the subscription option row (label + plan name) appears at checkout. Enabled by default. * **Show variant on checkout** - Toggle whether the variant row (option name + variant name, e.g., "Size / Large") appears at checkout. Enabled by default. * **Subscription option label** - Customize the label shown above the plan name (default: "Subscription"). For example, you might change this to "Subscribe", "Delivery", or another term that fits your brand. * **Plan name** - Override the plan name displayed at checkout. By default, the plan name from Shopify is used. **When plans are automatically locked:** * **Product image corner radius** - Apply rounded corners to product images. Choose from: * None - Square corners * Base - Slightly rounded corners * Large - More rounded corners (default) * Fully Rounded - Maximum rounding * **Product image size** - Control image dimensions: * Default - Standard size (64px for vertical layouts) * Small - Smaller images (48px for vertical, taller aspect ratio for horizontal) * Medium - Medium images (72px for vertical, square aspect ratio for horizontal) (default) * Large - Larger images (96px for vertical, shorter aspect ratio for horizontal) * **Product image display** - Choose how images fill their container: * Fill - Image stretches edge-to-edge (default) * Bordered - Adds a visible border around the image * **Card padding** - Set inner spacing between the card edge and content: * None - No padding * Tight - Minimal spacing * Base - Standard spacing * Loose - Maximum spacing (default) * **Button width style** - Control how the add-to-cart button width is displayed across upsells. Choose from: * Auto (default) - Button width varies based on whether variant selectors are present * Compact (uniform small) - All buttons use compact width for consistent sizing * Full width (uniform large) - All buttons use full width for consistent sizing Plans are automatically locked when: * You select a specific subscription plan (as described above) * The product has only one subscription plan available In both cases, customers cannot change the subscription plan at checkout, and the customization options above apply. ### Upsell button text For non-checkmark upsell widgets, you can customize the text displayed on the upsell buttons. These fields are available when the feature is enabled for your account — contact support to request access. By default, the buttons show: * **Add** for standard upsells * **Upgrade • \$X savings** for replacement upsells where the customer saves money * **Upgrade • \$X** for replacement upsells where the product costs more #### Add button text You can customize the text on the add button for standard and replacement upsells. When you enter custom text, the savings or cost suffix is still appended automatically for replacement offers (e.g. `Buy Now • $5 savings`). #### Replacement button text You can set a separate custom prefix for the button on replacement offers. This overrides both the default "Upgrade" prefix and any text entered in the **Add button text** field for replacement offers. The price suffix (e.g. `• $5.00 savings`) is always appended automatically. For example, entering `Trade up` produces `Trade up • $5.00 savings` on a replacement offer where the customer saves \$5. > 💡 **Tip:** The `{Amount}` placeholder is not substituted in the replacement button text field — it is treated as literal text. Use the **Add button text** field with `{Amount}` if you need full control over the label format. #### Using the `{Amount}` placeholder You can include `{Amount}` in the **Add button text** field to embed the price or savings amount directly in your label. When `{Amount}` is present, your text becomes the entire button label — the automatic suffix is not appended. | Button text | Offer type | Result | | ---------------------------- | ------------------------ | ---------------------- | | `Save {Amount} by upgrading` | Replacement (savings) | `Save $5 by upgrading` | | `Upgrade for {Amount} more` | Replacement (extra cost) | `Upgrade for $5 more` | | `Get yours for {Amount}` | Standard upsell | `Get yours for $10` | The placeholder is case-insensitive — `{Amount}`, `{amount}`, and `{AMOUNT}` all work. > ⚠️ **Note:** If you use `{Amount}` in a standard (non-replacement) upsell, the product price is substituted. If there is no price to substitute (for example, a free product), the placeholder is removed from the label. ### Max accepted offers For **Single Product Upsell** and **Multi-Product Upsell** widgets, you can set a limit on how many offers a customer can accept from a single widget during a checkout session. Once a customer has accepted the configured number of offers, the widget stops showing additional offers for the remainder of that checkout session. * **Leave blank** — No limit is applied. The widget continues to show offers regardless of how many the customer has accepted. * **Set a positive number** — The widget stops displaying offers once the customer has accepted that many from this widget. To configure this setting, open your upsell widget in the Checkout editor and enter a value in the **Max number of accepted offers** field. > 💡 **Tip:** This setting is not available for Checkmark Upsell widgets. *** ### Discounts Discounts can be **configured directly within the upsell widget**. This discount automatically gets applied when the customer selects to add the upsell product to their order. #### Adding a discount to your upsell When configuring an upsell widget, you can add a discount by clicking the **"Add discount"** button. You'll see two options: * **Pick existing** - Select from discounts you've already created. You can search through your existing discounts to find the one you want to apply. * **Create new** - Create a new discount directly in the editor by setting: * **Title** - The discount code text shown to customers in checkout (e.g., "SAVE") * **Amount** - Choose between a percentage discount or a fixed amount discount, then enter the value Once a discount is applied to your upsell, it appears as a badge that you can click to change or remove. You can manage all your checkout discounts in one place. See [Managing checkout discounts](/aftersell/managing_checkout_discounts) to learn how to view, edit, and delete discounts. #### Hiding the discount amount text When a discount is applied to your upsell, a savings suffix (e.g. "(20% OFF)" or "(\$6 OFF)") appears next to the product title by default. You can hide this suffix by enabling **Hide discount amount text** in the **Show additional settings** section of the upsell editor. * When enabled, the savings suffix is hidden. The discounted price itself still displays normally. * When disabled (default), the savings suffix appears next to the product title. > 💡 **Tip:** This setting is per-widget. If you have multiple upsell widgets, you can configure each one independently. #### Customizing the discount suffix label The "OFF" text in the savings suffix (e.g. "20% OFF") can be customized in **Settings > Translations**. Look for the **Discount suffix** row and enter your preferred label (e.g. "saved", "off", or a translated equivalent). The default value is "OFF". #### Showing the discounted price when the Aftersell discount is skipped When **Skip discount if other discounts are already applied** is enabled, the widget hides the configured upsell discount from the preview price by default. If your cart-level discount already matches your upsell discount (so the customer pays the same discounted price regardless), you can enable **Show the discounted price in the widget even when the Aftersell discount is skipped** to keep the preview price in sync with what the customer will actually be charged. > ⚠️ **Important:** This setting changes the displayed price in the widget for both preview and live customers, but does not apply an Aftersell discount. Only enable this if your cart-level discount matches your upsell discount exactly — otherwise customers may see an incorrect price. This checkbox is only visible when **Skip discount if other discounts are already applied** is already turned on. #### How discounts work * Aftersell discounts follow the same rules as any other Shopify discount. For two discounts to combine, both must be explicitly set to combine in Shopify Admin. For example, if Aftersell creates a discount code and you also have a separate discount like "10% off", both need combination enabled. If either one is not set to combine, they will not combine. Shopify's standard discounting rules apply throughout: * Shopify only allows one line-item discount per product at a time. If a product already has a discount applied, an additional upsell discount will not stack on the same line item * Order-level and line-item discounts can combine if both are set to "combinable" in Shopify Admin For full details on Shopify's combination rules, refer to [Shopify's discount combination documentation](https://help.shopify.com/en/manual/discounts/combining-discounts/discount-combinations). **Important limitations** There are a few scenarios where discounts may fail to apply: * **Multiple discounts on the same product:** If an Aftersell upsell discount is configured for a product that already has a discount applied, the Aftersell discount will not stack * **Incorrect collection setup:** If discounts target collections, ensure all relevant products belong to the correct collection. Hidden collections can be used to include specific products without making them visible to customers * **Third-party app conflicts:** Checkout discount functionality is not currently supported when another app is dynamically modifying your checkout. If you are running an app that does this, discounts added by Aftersell may not apply as expected. For example, if an app adds pricing or add-ons at checkout and recalculates the order total, this can interfere with how Aftersell applies discounts. *** ## Upsell Review Stars Checkout upsells can display star ratings on offer products to help increase conversions. Ratings are pulled from your product review app's metafields and only appear when valid review data exists for the product. * Please note that this is currently available on Aftersell's Checkout version 2 and not version 1, due to api limitations. **How to enable** * Open **Checkout** and edit the upsell. * Enable **Show product review ratings**. * *(Optional)* Open **Advanced product review settings** to customize the display. **Advanced settings** * Set a **minimum rating** to display (0-5, default 4.0). * Choose where stars appear (**below title** or **below price**). * Customize **filled and unfilled star colors**. * Show or hide the **numeric rating** and **review count**. Image **Supported review apps**\ We support review apps that store ratings in product metafields, including: * Shopify Product Reviews * Junip * Okendo * Growave * Fera * Stamped * Loox * REVIEWS.io * Automizely Reviews * Judge.me * Ali Reviews * Trustoo * Rivo * Rivyo * Vitals Ratings won't display for products without review data. If multiple supported review apps are installed, the app with the highest review count is used. Yotpo isn't supported for Checkout V2 upsell ratings because it requires a separate API. ### Troubleshooting: reviews show in editor but not on live checkout If you enable **Show product review ratings** and see stars in the editor preview but not on your live checkout, your review app's metafields may not have Storefront API access enabled. The editor reads product data through the Admin API (which can access all metafields), while live checkout reads through the Storefront API (which only accesses metafields that have been explicitly granted storefront access). When this mismatch is detected, a warning banner appears in the editor listing the affected products. **To fix this:** 1. Go to **Settings → Custom data → Products → Metafields** in your Shopify Admin. 2. Find the `reviews.rating` and `reviews.rating_count` metafield definitions. 3. Enable **Storefront API access** for each definition. Alternatively, check your review app's settings for a **Storefront API sync** option and enable it there. *** ## Cart Controls Surface a modify link below every product line item to allow editing directly on the checkout page. The following functionality is supported for cart controls: * Variant selector: Allow customers to change to another in-stock variant. * Quantity selector: Allow customers to change the quantity of a product. * Remove item: Allow customers to remove upsell products. * Subscription selector: Allow customers to change the currently selected subscription option (e.g. from every 60 days to every 30 days). * Subscription upgrade: Allow customers to upgrade a one time purchase to a subscription. * Custom text: Add custom text below each line item. Image ### Product review ratings Cart controls can display star ratings for in-cart products to help build trust and increase conversions. Ratings are pulled from your product review app's metafields and only appear when valid review data exists for the product. **How to enable** 1. Open **Checkout** and edit the cart controls widget. 2. Navigate to the **Product review ratings** section. 3. Enable **Show product review ratings**. 4. *(Optional)* Customize the display settings. **Settings** * Set a **minimum rating** to display (0-5, default 4.0). Products below this rating won't show stars. * Choose where stars appear (**below product title** or **below cart controls**). * Customize **filled star color** (default: #fdcc0d) and **unfilled star color** (default: #d1d5db). * Show or hide the **rating value** (e.g., 4.5) and **review count** (e.g., 123 reviews). **Supported review apps**\ We support review apps that store ratings in product metafields, including: * Shopify Product Reviews * Junip * Okendo * Growave * Fera * Stamped * Loox * REVIEWS.io * Automizely Reviews * Judge.me * Ali Reviews * Trustoo * Rivo * Rivyo * Vitals Ratings won't display for products without review data. If multiple supported review apps are installed, the app with the highest review count is used. ### Product targeting You can control which products display cart controls using the **Visibility** settings in the cart controls widget editor: * **All products in cart:** Cart controls appear for every product (default). * **Only selected products:** Cart controls appear only for products you select. Click **Select products** to choose which products should display cart controls. * **All products except selected:** Cart controls appear for all products except those you select. Click **Select products** to choose which products should not display cart controls. This allows you to customize the checkout experience based on specific products. For example, you might want to enable subscription upgrades only for certain products, or prevent customers from removing specific items from their cart. **How to configure product targeting:** 1. Open your cart controls widget in the Checkout editor. 2. Navigate to the **Visibility** section. 3. Select your preferred targeting mode from the **Apply cart controls to** dropdown. 4. If you selected **Only selected products** or **All products except selected**, click the **Select products** button to choose your products. 5. Save your changes. *** ## Rewards Show a reward bar (spend X get Y) in your checkout to incentive adding more products. This goal can either be based on Order Value or Item Count. **Rewards work well alongside the upsell widget.** Make it easy for a customer to add an extra product to their order to achieve the reward. You can use the **spend threshold** product type in your upsell widget to automatically recommend products that help customers reach the reward threshold. Image **Keep in mind**, any rewards you're offering will need to be created through Shopify. This can be done by creating Automatic Discounts if you are offering a discount, or by modifying your Shipping Rules if you are offering free shipping. ### Amount basis When configuring a reward based on Order Value, you can choose how the cart total is calculated using the **Amount basis** setting: * **Order total** — Uses the full order total, including shipping and taxes. * **Subtotal** — Uses the pre-discount merchandise subtotal (before any discount codes are applied). * **Post-discount subtotal** — Uses the cart total after discounts, shipping, and taxes are subtracted. This matches how Shopify evaluates free-shipping thresholds, so the reward bar accurately reflects whether the customer has truly reached the threshold when a discount code is applied. > 💡 **Tip:** If you offer free shipping as a reward, use **Post-discount subtotal** to ensure the bar matches Shopify's own free-shipping evaluation. With other bases, a discount code can cause the bar to show "unlocked" while Shopify still charges shipping. *** ## Trust Badges Build trust badges with custom icons and text in order to increase checkout conversion rate. The badges can be stacked vertically, or displayed horizontally. Image Trust badges are great for building a **sense of trust** with your brand and highlighting your value proposition, which can help **lower your abandoned checkout rate.** *** ## Testimonials Display customer reviews directly on checkout to build trust and lower your abandoned checkout rate. Image ### Testimonials modes Aftersell offers two types of testimonials widgets: * **Classic Testimonials** - ⚠️ **Deprecated** - Classic testimonials are no longer available, If you're currently using Classic Testimonials, we recommend switching to Flex Testimonials. * **Flex Testimonials** - Automatically pulls customer reviews from your review app (Judge.me, Klaviyo, Okendo, or Yotpo). This is the recommended option for all merchants. ### Switching from Classic to Flex Testimonials If you're using Classic Testimonials, you should switch to Flex Testimonials to display reviews from your review app: 1. Open **Checkout** in Aftersell 2. Navigate to the **Classic Testimonials** widget tab 3. Click **Switch to review app widget** in the banner at the top 4. Configure your review app credentials in **Settings > Product Reviews** (see [Review app integrations](#review-app-integrations) below) You can switch back to Classic Testimonials at any time by clicking **Switch back** in the Flex Testimonials tab. **Note:** Classic Testimonials is deprecated and no longer accessible, Once you switch to Flex Testimonials, you will not be able to switch back to Classic Testimonials. Testimonials Review ### Flex Testimonials configuration Flex Testimonials offers two selection modes: * **Manual selection** - Choose specific reviews to display in your testimonials widget * **Dynamic** - Automatically fetch and display reviews based on products in the customer's cart #### Dynamic mode In dynamic mode, Aftersell imports reviews from your review app and stores them so they can be displayed in the checkout widget. The first import happens automatically within 24 hours, and then once a week after that. To import reviews immediately, go to **Settings > Product Reviews** and click **Sync now** for your review app. You can configure: * **Maximum reviews to show** - Control how many reviews appear * **Display type** - Choose between horizontal carousel or vertical stack layout * **Minimum rating** - Set the minimum star rating for reviews to display * **Truncate review text after (optional)** - Set a maximum character length for review text. When a review exceeds this limit, it's clipped with an ellipsis and a "Read more" button appears. Clicking "Read more" opens a popover with the full review. Leave blank for no limit (default). ### Review app integrations To use Flex Testimonials, you need to configure your review app credentials in **Settings > Product Reviews**. Aftersell supports: * **Judge.me** - Requires your Private API token * **Klaviyo** - Requires your private API key * **Okendo** - Requires your User ID * **Yotpo** - Requires your App Key See the following guides for setup instructions: * [Judge.me integration](/aftersell/judgeme_reviews_integration) * [Klaviyo integration](/aftersell/klaviyo_reviews_integration) * [Okendo integration](/aftersell/okendo_reviews_integration) * [Yotpo integration](/aftersell/aftersell_yotpo_reviews_integration) *** ## Notes Allows your customer to add notes to their order. These notes can either be written manually by the customer, or be pre-written notes. Pre-written notes are excellent when your store offers gift wrapping or eco packaging, and you want to give your customers an easy way to opt-in. *** ## Images Upload a custom image which can be inserted in the checkout. *** ## Text Insert a banner in your checkout with the text of your choice. Choose between **four different styles** for the text widget. * **Information:** A blue background with a blue information icon. * **Success:** A green background with a green checkmark icon. * **Critical:** A red background with a red exclamation point icon. * **Warning:** A yellow background with a yellow warning triangle icon. # Compare at price not reflecting for checkout upsells (Shopify Plus) Source: https://docs.aftersell.com/aftersell/compare_at_price_not_reflecting_for_checkout_upsells_shopify_plus This article outlines the troubleshooting steps to follow when compare-at prices are not displaying correctly for checkout upsells. If product discounts aren’t appearing at checkout even though checkout upsells are published, this may be related to how **compare-at prices** display in Shopify for EEA (European Economic Area) stores. ## Why This Happens Shopify automatically uses the **compare-at price** feature to meet the **European Price Indication Directive (PID)**. When enabled, Shopify shows the lowest price in the past 30 days instead of an active discount. You can read [Shopify's documentation](https://help.shopify.com/en/manual/compliance/legal/pricing-indication-directive) for more details. ## How to Fix If your primary market is in the EEA: 1. Go to **Products** in your Shopify admin. 2. Open the product. 3. Under **Pricing**, set the **Compare-at price** to the lowest price in the last 30 days or more. 4. Set the **Price** to your new sale price. 5. Click **Save**. **Note:** The **Compare-at price** must be higher than the **Price** to display a discount. If your store’s primary market isn’t in the EEA: 1. Go to **Settings** > **Markets** in Shopify. 2. Click **Preferences**. 3. Deselect **Hide compare-at prices for EEA customers**. 4. Click **Save**. If the issue continues after adjusting these settings, clear your browser cache and test again. If it persists, contact **Aftersell Support** for further assistance. # Configuring post-purchase offer settings Source: https://docs.aftersell.com/aftersell/configuring_post_purchase_offer_settings Learn how to configure settings for your post-purchase offers, including custom order tags, discounts, and product options. When creating or editing a post-purchase offer, you have several configuration options to customize how the offer appears and behaves. This guide covers the key settings available for V2 post-purchase offers. *** ### Searching offer settings The post-purchase offer editor includes a **Search settings** box at the top of the left sidebar. You can use it to quickly find any setting across your offer without scrolling through each section manually. As you type, results are grouped into three categories: * **This offer** — settings within the offer's existing widgets. Selecting a result switches to the relevant widget, opens the section, and jumps directly to the field. * **Add widget** — widgets not yet added to the offer. Selecting a result adds the widget and opens its settings. * **Funnel settings** — links to funnel-level pages such as triggers, targeting, A/B testing, translations, and analytics. This feature is available on V2 post-purchase offers only. *** ### Custom order tags You can add a custom tag to any V2 post-purchase offer to track which specific upsell a customer accepted. When a customer accepts an offer with a custom tag configured, that tag is automatically applied to their Shopify order alongside the standard "Aftersell Upsell" tag. #### Why use custom order tags? Custom order tags give you more granular tracking and help you: * Identify which specific upsell offer was accepted * Segment orders by promotion or campaign * Filter orders in Shopify by upsell type * Track performance of different offers within the same funnel #### How to add a custom order tag 1. Navigate to **Post-purchase Funnels** in the Aftersell admin. 2. Select the funnel containing the offer you want to tag. 3. Click **Edit offer** on the offer you want to configure. 4. In the offer settings, find the **Order Tag** field. 5. Enter your custom tag (up to 40 characters). 6. Click **Save**. #### Tag requirements * Maximum 40 characters * Can include letters, numbers, hyphens, and spaces * Must follow Shopify's order tag requirements #### How custom tags are applied When a customer accepts an offer with a custom tag configured: * The standard "Aftersell Upsell" tag is applied to the order * Your custom tag is also applied to the order * Both tags appear in the order details in Shopify * You can search and filter orders by your custom tag in the Order Browser **Tip:** Use descriptive, consistent naming for your tags. For example: "summer-promo-accepted", "bundle-upsell", "vip-offer", "clearance-upsell". #### Per-offer configuration Custom tags are configured per offer, not per funnel. This means: * Different offers in the same funnel can have different custom tags * You can track exactly which offer in a multi-offer funnel was accepted * Each offer's tag is independent and can be changed without affecting other offers *** ### Product selection and discounts When configuring your offer, you can: * Select specific products or use automatic recommendations * Apply percentage or fixed-amount discounts * Add product badges (like "Bestseller" or "New") * Configure subscription options if applicable #### Setting a discount When configuring a discount on your offer, you set two separate fields: * **Discount type** — choose between **Percentage** (e.g. 20% off) or **Fixed amount** (e.g. \$10 off). * **Discount value** — enter the amount. The field shows a `%` suffix for percentage discounts or your store's currency symbol as a prefix for fixed-amount discounts so the unit is always clear. A live preview line appears beneath the value field showing how the discount applies to a sample product price — for example, "If your product is \$50.00, customer pays \$40.00 (saves \$10.00)". If you have a specific product selected on the offer, the preview uses that product's price instead of the sample price. Percentage discounts are capped at 100%. If you enter a value above 100%, or switch from a fixed amount to a percentage while the value exceeds 100%, the value is automatically reduced to 100%. #### Discount display options You can choose to display your discount as a monetary value (for example "Save \$6") or as a percentage (for example "Save 20%"). To change this, open the offer settings and adjust the discount display option to your preferred format. Aftersell supports displaying either a monetary discount or a percentage discount, but not both at the same time. Choose the format that best suits your store. #### Rounding rules for percentage discounts When displaying a percentage discount, Aftersell applies the following rounding rules: * Percentages with decimals up to **.80** are rounded down. * Percentages with decimals of **.81** or higher are rounded up. For example: * A discount of **39.56%** will display as **39%** * A discount of **39.81%** will display as **40%** For more details on product selection, see the [Quickstart Guide](/aftersell/quickstart_guide_to_aftersell). *** ### Offer design and messaging Customize how your offer appears to customers: * Add custom text and headlines * Include countdown timers for urgency * Configure product images and layout * Match your brand's checkout styling For more information on offer design, see [Post-purchase Branding Settings](/aftersell/post_purchase_branding_settings). *** ### Need help? If you have questions about configuring your post-purchase offers or custom order tags, our support team is here to help. Reach out via chat or email us at [support@aftersell.app](mailto:support@aftersell.app). # Configuring Shopify web pixels Source: https://docs.aftersell.com/aftersell/configuring_shopify_web_pixels Setting up conversion tracking using Web Pixels with post-purchase upsells [Shopify Web Pixels](https://help.shopify.com/en/manual/promoting-marketing/pixels) are Shopify's solution for tracking data on purchases such as conversion rates. There are two primary ways you will interact with them: * App Web Pixels * Custom Web Pixels # App Web Pixels Some app pixels, (e.g. Omega Facebook Pixel) integrate directly with Shopify Web Pixels. These apps require no further setup to work with Aftersell. # Custom Web Pixels Custom pixels allow for bespoke solutions if no app pixel can be found on the Shopify marketplace to meet your needs. The following details how to convert existing order status page tracking scripts to use custom pixels. Please note the [potential risks of custom pixels](https://help.shopify.com/en/manual/promoting-marketing/pixels/overview#potential-risks) before proceeding. If you use Google Tag Manager specifically, then Shopify provides [helpful documentation for completing this migration](https://help.shopify.com/en/manual/promoting-marketing/pixels/custom-pixels/gtm-tutorial). There are 3 core steps to creating a custom pixel for conversion tracking. 1. Preparing the 3rd party JavaScript SDK 2. Setting up conversion tracking using web pixels 3. Connecting your custom pixel ## 1. Preparing the 3rd party JavaScript SDK You will want to remove any HTML present in the provided pixel code. Any JavaScript that is loaded through an HTML ` ``` *After removing HTML & reworking ` ``` # Customizing discount displays in Aftersell Source: https://docs.aftersell.com/aftersell/customizing_discount_displays Aftersell gives you options for how discounts are displayed to customers on your post-purchase offers. You can choose to show discounts as a monetary value (for example "Save \$6") or as a percentage (for example "Save 20%"). This guide explains how to configure these options and the rules that apply. *** ## Displaying Monetary vs Percentage Discounts You can configure whether your upsell offers display a monetary discount or a percentage discount. To change this, open the offer settings within your funnel and adjust the discount display option to your preferred format. Aftersell supports displaying either a monetary discount or a percentage discount, but not both at the same time. Choose the format that best suits your store. Discount *** ## Rounding Rules for Discount Percentages When displaying a percentage discount, Aftersell applies the following rounding rules: * Percentages with decimals up to **.80** are rounded down. * Percentages with decimals of **.81** or higher are rounded up. For example: * A discount of **39.56%** will display as **39%** * A discount of **39.81%** will display as **40%** *** ## Limitations It is not possible to remove the percentage label in Checkout Upsells while keeping the discount enabled. The discount and percentage display are linked, meaning that enabling a discount will automatically show the total percentage savings. **This cannot be adjusted independently.** *** ## Frequently Asked Questions No. Aftersell currently supports displaying either a monetary or a percentage discount, but not both simultaneously. Choose the format that best fits your marketing strategy. The discount and percentage display settings are linked in Checkout Upsells. When a discount is enabled, the total percentage savings will always be shown to customers. This cannot be changed independently. Discount percentages are calculated based on the difference between the original price and the discounted price. The rounding rules above are then applied to determine the final displayed percentage. *** **Want to go further?** * [Post-Purchase Best Practices](/aftersell/best_practices) - tips to improve conversion across all your offers * [How to Configure Post-Purchase Offers](/aftersell/how_to_configure_post_purchase_triggers) - set up your full post-purchase funnel # Does Aftersell have a developer API? Source: https://docs.aftersell.com/aftersell/does_aftersell_have_a_developer_api Due to the nature of working with Shopify's Post Purchase API and Checkout Extensibility environments we're limited in what we can edit. All of the changes available to us can be made in our app and we do not provide an API for Aftersell. # Does multi-currency checkout impact Aftersell? Source: https://docs.aftersell.com/aftersell/does_multi_currency_checkout_impact_aftersell This article explores how multi-currency checkout affects the functionality of Aftersell. If your store has multi-currency enabled, 1-click upsell offers will only appear for orders made in your **store's default currency.** For instance, if your store's default currency is GBP and the order was placed in USD, the offer will **not** display. This limitation is a result of Shopify's multi-currency infrastructure. \ To address this, consider aligning your store's default currency with the currency most commonly used by your customers. This can improve the visibility and performance of post-purchase upsells by providing a localized shopping experience. ### Steps for Changing Store Currency 1. Evaluate your customer base to determine the predominant purchasing currency. 2. Update your store's default currency in Shopify to match the target market's currency. 3. Wait for up to 24 hours for Shopify to fully convert your store to the new currency. 4. Verify that post-purchase upsells are visible to customers in the target market. No additional steps are required after the currency change for upsells to appear. This restriction is due to Shopify’s post-purchase limitations, which are explained further [here](/aftersell/why_isnt_my_1_click_offer_displaying). You can also review [Shopify's documentation](https://shopify.dev/docs/apps/checkout/product-offers/post-purchase#limitations-and-considerations) for additional details. Shopify's infrastructure imposes unique constraints on multi-currency capabilities, emphasizing the need for merchants to carefully plan their store's currency settings to optimize post-purchase app functionalities. *** [Thank you page](/aftersell/thank_you_page_scripts_overview) offers are not subject to the same limitations as 1-click offers, making them an excellent alternative in this scenario. We recommend setting up upsells to capture orders that may not see 1-click offers due to these restrictions. Moreover, setting up dedicated upsell offers tailored to key customer segments can further ensure these offers align with multi-currency functionalities. Consider leveraging Shopify Markets for enhanced configuration. # DTC ads onboarding guide | web pixel activation Source: https://docs.aftersell.com/aftersell/dtc_ads_onboarding_guide_web_pixel_activation This article outlines how to integrate the Rokt Conversions Web Pixel # **Overview** The Rokt Conversions Web Pixel enables accurate attribution of conversions from your Shopify store to Rokt campaigns. This helps optimize your marketing performance by tracking user activity through Shopify’s Web Pixels API. *** ## **Step 1: Install the Aftersell App** You will be provided with a special installation link by your account manager. * Click the link to be redirected to the Shopify App Store. * You will be prompted to install the Aftersell app. Image * Click **Install** to continue. After installation, Aftersell may display a permission request within the app for scopes related to pixel tracking — specifically `read_customer_events` and `write_pixels`. Click **Approve** to grant these permissions. Accepting these scopes allows Aftersell to inject and activate the Rokt Web Pixel automatically. *** ## **Step 2: Accept Terms and Conditions** After granting the required permissions: * You will be prompted to review and accept our Terms and Conditions. Image * Press **Enable now** to proceed. *** ## **Step 3: Activate Free Plan** Following the Terms and Conditions: * You will be prompted to accept the **Aftersell Free Plan (Rokt Ads)**. * Click **Approve** to complete the activation. Image * Once approved, your onboarding is complete, and you will be redirected to the Rokt Ads dashboard, where you will see your newly created **Rokt Account ID**. Image *** ## **Step 4: Web Pixel Activation** After completing onboarding, the Web Pixel installation will be triggered automatically. Please allow up to **5 minutes** for the activation to complete. *** ## **To Verify Pixel Activation:** 1. On the Rokt Ads page (inside Aftersell), click the link labeled Customer Events Settings. This will take you directly to the right page in your Shopify Admin. 2. Alternatively:\ Navigate manually to Shopify Admin → Settings → Customer Events. 3. Once there:\ Under App Pixels, look for "Aftersell".\ Ensure the status is listed as Connected. Image If the pixel does not appear immediately or shows "Disconnected," it may still be processing. Please wait a few minutes and refresh the page. *** ## **Additional Notes:** This activated web pixel does two things: 1. Adds a cookie when a customer lands on your site from one of your Rokt campaigns. Rokt will automatically add the “rtid” query parameter to the URL of the landing page. 2. Records conversions. If the customer has a cookie from step i) then the conversion will be attributed to your Rokt campaign. The following settings will be applied automatically by the web pixel app. 1. *Permission: Required > Marketing and Analytics*. These are the default settings for new pixels. This is most relevant for customers in the EU and UK. To learn more, see [Shopify’s documentation here](https://help.shopify.com/en/manual/promoting-marketing/pixels/custom-pixels/manage#customer-privacy). 2. *Data sale: Data collected does not qualify as data sale.* Conversion data is collected to optimize and monitor advertising campaigns and is not sold by Rokt. 3. For details on the Web Pixels API, see [Shopify’s developer documentation here](https://shopify.dev/docs/api/web-pixels-api). # Earn & Save program Source: https://docs.aftersell.com/aftersell/earn-save Earn & Save is an opt-in program for Aftersell merchants. When you enroll, two things happen each cycle: * Your Rokt Thanks earnings pay out to you in full. * Aftersell adds a matching discount on top of your Aftersell bill, sized to match your earnings from the last 30 days, up to your bill amount. If your earnings are less than your bill, the matching discount only covers part of the bill, and you still owe the remainder. Your Rokt Thanks earnings always pay out to you in full, regardless of whether the discount fully covers your bill. Earn & Save is not a trial, and it does not change your existing Aftersell plan. As long as Rokt Thanks stays active on your store and you remain enrolled, the matching discount keeps applying each cycle. Your features, your base plan price, and your maximum monthly charge all stay the same. ## How Earn & Save works Earn & Save has two sides: the earnings you generate through Rokt Thanks, and the matching discount Aftersell adds to your monthly bill. **Earn.** When you enable Rokt Thanks, vetted brands like Disney+, HelloFresh, and Venmo show their offers on your post-purchase confirmation page. Every time a customer clicks "Yes, please!" on one of those offers, you earn revenue. On average, merchants earn around \$0.30 to \$0.50 USD per transaction. Rokt pays these earnings out to you in full via PayPal (or wire/ACH if you have that set up). **Save.** Each billing cycle, Aftersell adds a matching discount on top of your Aftersell bill, sized to match your Rokt Thanks earnings from the last 30 days, up to your bill amount. The discount is added by Aftersell, not deducted from your earnings. If your earnings fully cover your bill, your Aftersell charge for that cycle can be as low as \$0. If your earnings are smaller than your bill, the discount only covers part of the bill and you pay the remainder. Either way, your Rokt Thanks earnings pay out to you in full. ## At a glance | | | | :-------------------------------- | :------------------------------------------------------------------------------------------------------------ | | **Who is it for?** | Any Aftersell store with 1,000 or more monthly orders. | | **What is it?** | An opt-in program layered on top of your existing pricing plan. | | **What does it cost?** | Nothing. There is no separate fee. | | **What changes about my plan?** | Nothing. Your features, base plan price, and maximum monthly charge stay the same. | | **When does the discount start?** | On your upcoming Aftersell bill, irrespective of how long you have been enrolled. | | **Where do my earnings go?** | Rokt pays them out to you in full via PayPal (or wire/ACH if set up), separately from the Aftersell discount. | ## How the matching discount is calculated Each billing cycle, Aftersell looks at your Rokt Thanks earnings from the **last 30 days** and adds a matching discount to your Aftersell bill, sized to match those earnings. The discount is capped at your bill amount, so it never exceeds what you would have paid. How this plays out depends on how much you earned in the last 30 days: | Last 30 days earnings | Matching discount | What you pay Aftersell | | :---------------------- | :----------------------- | :------------------------- | | **Exceed your bill** | Caps at your bill amount | **\$0** | | **Match your bill** | Covers the full bill | **\$0** | | **Less than your bill** | Matches your earnings | The remainder of your bill | Either way, your Rokt Thanks earnings continue to pay out to you in full. On your Aftersell admin (Settings → Billing), the matching discount shows the exact 30-day earning window it was sized to match, for example "May 5 to June 3 Rokt earnings". Hover the info icon next to the line for the full breakdown. If you have both Post-purchase and Checkout on your plan, both charges are billed together on the same day for Earn & Save merchants. The matching discount applies to the combined Aftersell bill, not to each feature separately. ## Am I eligible? Your store qualifies for Earn & Save if it processes **at least 1,000 orders per month**. Earn & Save applies to your total Aftersell bill, regardless of which features are on your plan. If you are on Post-purchase only, or Post-purchase plus Checkout, the matching discount applies to your full Aftersell charge each cycle. What you actually earn through Rokt Thanks depends on factors like your traffic, order volume, and offer relevance to your customers. Higher engagement generally leads to higher earnings. If your store does not currently meet the 1,000 monthly order threshold, you can still use Aftersell on a standard paid plan. Eligibility is re-evaluated continuously, so Earn & Save will surface in your admin if your store crosses the threshold later. ## Enrolling in Earn & Save The enrollment flow depends on your current Aftersell setup. Some stores see additional steps, others enroll in a single click. Some stores are required to confirm updated subscription terms before enrolling. You will see a prompt in your Aftersell admin if this applies to your store. If you do not see a prompt, skip to step 2. This typically applies to stores on an older Aftersell billing plan that includes the Checkout feature. Confirming the updated terms does not change your features or your base plan price. It only authorizes Aftersell to add the matching discount line to your future bills. Open the Rokt Thanks dashboard in your Aftersell admin and click **Enable**. Then place at least one Rokt Thanks app block on a customer-facing page. Your Thank You page is the recommended starting point. Completing both of these actions marks the setup guide on your Rokt Thanks dashboard as complete and activates Rokt Thanks on your store. If you need help with block placement, see Activating and Configuring Rokt Thanks. Setting up your payouts (PayPal or wire/ACH) is a separate step that is not required for Earn & Save to apply the matching discount to your bill. Payout setup only affects how you receive your Rokt Thanks earnings. See [Rokt Thanks Payouts](/aftersell/rokt_thanks_payouts) for details. ## Maximizing your earnings The more visible the Rokt Thanks block is on your store, the more opportunities your customers have to interact with offers. A few practical things you can do to increase visibility: **Place the block above the fold.** Buyers do not always scroll the confirmation page. Place the Rokt Placement block in the **Main** section of your Thank You page, just below the order-confirmation banner, so it appears without scrolling. Avoid the Order Summary column and the Footer. **Add the block to multiple surfaces.** Rokt Thanks can render on up to four customer-facing pages: your Thank You page, your Order Status page, your customer account Profile page, and your customer account Orders page (if you are on Shopify's new customer accounts, also called Vaulted Rewards). Placing the block on all four surfaces can lift earnings by an estimated 10 to 20 percent on top of the Thank You page alone. See Rokt Vaulted Rewards. **Keep Rokt Thanks active.** The matching discount only applies while Rokt Thanks is active and generating earnings. If you disable or remove the Rokt Thanks block, earnings stop and the discount stops on the next cycle. You can re-enable anytime. ## What you see on your bill and payouts Earn & Save shows up in three places. Each handles a different part of the program. | | | | :-------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Shopify invoice** | Your Aftersell charge for the cycle, with the matching discount already applied. The charge can be as low as \$0 if the discount fully covers it. | | **PayPal (or wire/ACH)** | Your Rokt Thanks earnings, paid out by Rokt directly on their normal payout schedule (approximately 90 days after the end of the month the earnings were generated in). | | **Aftersell admin, Settings → Billing** | The current cycle's matching discount, the 30-day window it was sized to match, and your lifetime savings from the program. | ## Worked examples ### Scenario 1: matching discount covers part of the bill You are on Post-purchase only. Based on your order volume, your Aftersell bill for this cycle is \$149.99. Your Rokt Thanks earnings from the last 30 days are \$80. | | | | :---------------------------------- | :--------------------------------- | | Post-purchase charge | \$149.99 | | **Aftersell bill this cycle** | **\$149.99** | | Rokt Thanks earnings (last 30 days) | \$80 | | Matching discount added to bill | \$80 off (sized to match earnings) | | **What you pay Aftersell** | **\$69.99** | | **Earnings paid out to you** | **\$80** | The matching discount of \$80 is applied to your bill, leaving \$69.99 still due. You also receive your \$80 in Rokt Thanks earnings, paid out by Rokt directly. ### Scenario 2: matching discount covers the full bill You are on Post-purchase. Your store is high-volume, doing 30,000 or more orders per month, which puts your Post-purchase charge at the maximum of \$799.99 (the highest the Post-purchase charge can reach, regardless of how high your order volume goes). Your Rokt Thanks earnings from the last 30 days are \$1,200. | | | | :---------------------------------- | :--------------------------------------------------- | | Post-purchase charge | \$799.99 (maximum) | | **Aftersell bill this cycle** | **\$799.99** | | Rokt Thanks earnings (last 30 days) | \$1,200 | | Matching discount added to bill | \$799.99 off (sized to earnings, capped at the bill) | | **What you pay Aftersell** | **\$0** | | **Earnings paid out to you** | **\$1,200** | Your earnings exceed your bill, so the matching discount caps at \$799.99 and your Aftersell charge for the cycle is \$0. You still receive your full \$1,200 in Rokt Thanks earnings, paid out by Rokt directly. The discount does not grow beyond your bill amount. ## Troubleshooting Yes. When your Rokt Thanks earnings from the last 30 days reach or exceed your bill amount, the matching discount covers the full bill and you pay \$0 for that cycle. You continue to receive your full earnings from Rokt Thanks, paid out separately. Whether your bill reaches \$0 depends on your earnings each cycle. It is possible, not guaranteed. The matching discount is sized to match your Rokt Thanks earnings from the last 30 days. If your earnings did not reach your bill amount, the discount is sized to match whatever you earned, and the remainder of the bill is still due. Your Rokt Thanks earnings continue to pay out to you in full. Only when your Rokt Thanks earnings consistently meet or exceed your Aftersell bill. If you earn \$50 in a 30-day period and your bill is \$349, your matching discount is \$50 and the remaining \$299 is still due. For high-volume stores with strong engagement, it is common for earnings to fully cover the bill each cycle. For smaller stores, Earn & Save is best thought of as a recurring savings on your subscription, not free service. The matching discount is capped at your bill amount, so the discount itself does not grow beyond that. Your earnings always pay out in full regardless, so you still receive everything Rokt Thanks earned for you during that cycle. Earnings and the discount are separate. A few common reasons: * **Rokt Thanks is not yet enabled or showing offers.** Open your Aftersell admin (Settings → Billing) and confirm Rokt Thanks is enabled and your store is set up to display offers. * **You have not earned yet.** The discount is sized to match your last 30 days of Rokt Thanks earnings. If you only just enabled Rokt Thanks, give it a billing cycle to start earning. * **You are still ramping up.** Earnings depend on traffic, order volume, and offer relevance. Results vary by store and grow over time. You stay enrolled in the program, but the matching discount only applies while Rokt Thanks is active and generating earnings. If you disable Rokt Thanks, the discount stops on the next cycle. You can turn Rokt Thanks back on anytime to resume. It depends on your current Aftersell billing plan. If you are on an older Aftersell plan that includes the Checkout feature, you may be prompted to confirm updated subscription terms when you enroll. Look for the Earn & Save prompt in your Aftersell admin. If you do not see a prompt, you can enroll without confirming any new terms. Earnings are paid out approximately 90 days after the end of the month the revenue was generated in. Payouts are also subject to a minimum threshold based on your payout method. Full details are on the [Rokt Thanks Payouts](/aftersell/rokt_thanks_payouts) page. The Earn & Save card is always accessible from your Aftersell admin under **Settings → Billing**. The card stays available as long as your store is eligible. Earn & Save is only surfaced for stores that meet the eligibility threshold of 1,000 monthly orders. If you have recently crossed that threshold and do not see the program, reach out to support and we can confirm your eligibility status. Yes. The Earn & Save card on Settings → Billing shows your lifetime savings from the program, alongside the current cycle's matching discount. No. Earn & Save sits on top of whichever standard plan you are on. Your features, your base plan price, and your maximum monthly charge stay the same. The only difference is the matching discount that gets added to your bill. You can stop the matching discount in two ways: * **Disable Rokt Thanks.** Earnings stop, and the discount stops on the next cycle. You can re-enable anytime. * **Leave the program entirely.** Contact the Aftersell support team via in-app chat. Your standard plan billing resumes on the next cycle. ## Need help? * For program questions or setup issues, contact the Aftersell support team via in-app chat or email [support@aftersell.com](mailto:support@aftersell.com). * For Rokt Thanks payout-specific questions, see [Rokt Thanks Payouts](/aftersell/rokt_thanks_payouts). * Include your store URL and a brief description of the issue for faster help. ### Related pages * [What is Rokt Thanks?](/aftersell/what_is_rokt_thanks) * [Activating and Configuring Rokt Thanks](/aftersell/activating_and_configuring_rokt_thanks) * [Rokt Thanks Settings](/aftersell/rokt_thanks_settings) * [Rokt Thanks Payouts](/aftersell/rokt_thanks_payouts) * [Aftersell Billing & Pricing](/aftersell/aftersell_billing_pricing) # Fulfillment Source: https://docs.aftersell.com/aftersell/fulfillment This article outlines how order processing workflows can be managed. **Post-purchase fulfillment holds** When a customer completes payment during checkout, an order is generated in Shopify. If a post-purchase upsell is offered to the customer, the order will have a fulfillment status of **On Hold**. The **On Hold** status indicates that fulfillment should be paused, as the customer may accept the upsell, which would add items to the order. This status ensures the order is not processed prematurely, allowing time for potential additions. Image *** **Releasing post-purchase fulfillment holds** Once the fulfillment hold is released, the order fulfillment status will change to **Unfulfilled**: Image The order hold will automatically release in the following scenarios: * If the customer clicks Accept or Decline on all post-purchase offers. * If 60 minutes has passed since the order's creation. **NOTE:** If the "Release fulfillment holds from post-purchase offers when the offer timer ends" setting is enabled in `Aftersell > Settings > Fulfillment and payment`, the release time may differ. **DEV Note: How the "Release fulfillment holds from post-purchase offers when the offer timer ends" functions behind the scenes.** When the above setting is enabled, and Aftersell determines that the order hold should be released, the following actions are performed: 1. Aftersell queries Shopify for the order and retrieves all associated fulfillments (an order may have one or more fulfillments). 2. Aftersell instructs Shopify to release the order hold for each individual fulfillment. Aftersell will add an event to the order for each fulfillment hold released, displaying the message "Aftersell Post Purchase Upsell released fulfillment for X items." * **Note**: Aftersell does not modify the number of fulfillments. The following table describes the timeline of when the post-purchase fulfillment hold is released for various customer scenarios: Image *** ## Order routing for upsells When an upsell is accepted, Aftersell creates a separate fulfillment for the upsell items. By default, this fulfillment is not re-routed through your store's order routing rules, which can result in the upsell being fulfilled from a different location than the original order — creating a split fulfillment. You can enable the **Re-run order routing on Aftersell upsells** toggle in `Aftersell > Settings > Fulfillment and payment > Order routing` to have Shopify re-apply your store's [order routing rules](https://help.shopify.com/en/manual/fulfillment/setup/order-routing) to any fulfillment containing only Aftersell upsells, once its hold is released after the post-purchase or thank you page flow completes. A common use case is to configure your order routing rules to minimize split fulfillments as the first priority, which helps reduce the number of orders where the upsell is fulfilled separately from the original order. > **Note:** This toggle requires the **merchant-managed fulfillment orders** and **third-party fulfillment orders** Shopify permissions. If these permissions have not been granted, a banner will appear on the settings page prompting you to grant access. The toggle is disabled until both permissions are granted. *** ## **Integrating with external fulfillment services (3PL)** Certain fulfillment services or custom workflows may not be configured to handle the **On Hold** status for order fulfillment. If your process does not properly manage post-purchase fulfillment holds, there is a risk of partially fulfilling orders or generating unnecessary extra fulfillments for a single order. Fulfillment workflows differ from store to store, as do the solutions for managing orders with post-purchase upsells. The following framework provides guidance on assessing and implementing any necessary adjustments to ensure that your fulfillment process operates smoothly with post-purchase upsells: Image If your fulfillment process requires a custom solution to work with post-purchase upsells, please contact Aftersell Support for assistance. *** ## ShipStation Integration If you're utilizing ShipStation with a direct connection to Shopify, your fulfillment process should automatically integrate with post-purchase upsells. However, if you're using an intermediary service to connect Shopify and ShipStation (such as NetSuite), you might require a custom solution. Please refer to the next section to review the expected order format in ShipStation to ensure everything is operating correctly. **How On Hold Orders Look in ShipStation** Orders marked as **On Hold** in Shopify will appear in the On Hold section of ShipStation. These orders will display a quantity of **0**. The quantity shown in ShipStation represents the fulfillable amount, which is indicated as **0** while the order is **On Hold** because none of the items are ready to be fulfilled yet (since the order may still be adjusted with post-purchase upsell items). Image After the order fulfillment hold is lifted, the order will shift to the Awaiting Shipment tab in ShipStation. The quantity will be updated to accurately reflect the total quantity of the order, including any post-purchase upsell item(s). Image These orders will indicate that the quantity has been updated by the selling channel, which is Shopify in this instance. Image *** ## Testing Notes If you're testing your ShipStation integration and aren't seeing orders come in immediately, you can manually refresh the orders for your store. Image # Fulfillments and payments setting Source: https://docs.aftersell.com/aftersell/fulfillments-and-payments-setting This guide covers every setting available in the Fulfillment and Payment section of Aftersell. These settings control how your orders are held, released, and managed after a post-purchase upsell is offered or accepted. You can find these settings in your Aftersell admin under **Settings > Fulfillment and Payment**. Fulfillment *** ## Fulfillment Holds An order is placed **On Hold** when a customer hasn't yet accepted or declined all of their post-purchase offers, or if they closed the browser tab before making a decision. The hold exists as a buffer between order creation and fulfillment, ensuring the order isn't processed before the customer has finished with their post-purchase offers. The hold is released automatically in the following situations: * The customer accepts or declines all post-purchase offers - the hold releases immediately. * The customer's offer timers run out all the way - the hold releases immediately. * The customer closed the tab without deciding - the hold releases automatically after **60 minutes**. The settings below give you more control over how and when those holds are released. ### Release fulfillment holds from post-purchase offers when offer timer ends By default, if a customer closes their browser while on the post-purchase page, the order stays On Hold for **60 minutes** before automatically releasing. When this setting is enabled, the hold release time is reduced to match your upsell offer timer duration. For example, if your timer is set to 10 minutes, the hold will release after 10 minutes instead of 60. This setting only affects the release timing when a customer closes the browser mid-flow. If the customer accepts or declines all offers, or their timers run out, the hold releases immediately regardless of this setting. **When to enable this:** Enable this if you want orders to move to fulfillment faster after a customer abandons the post-purchase page. Order Timer *** ### Release fulfillment holds when the post-purchase offer never loaded for the customer In rare cases, Shopify places a fulfillment hold on an order even when the post-purchase offer never appeared to the customer, for example if the customer closed their browser before the page fully loaded. This is an occasional Shopify quirk rather than a common occurrence. When enabled, a 5-minute release window is scheduled as a safety net for these situations, automatically releasing the hold on orders where no offer was ever shown. Only enable this if you are actively seeing orders stuck on hold that never received a post-purchase offer. It is disabled by default and is not needed for most stores. This setting is only available when **Release fulfillment holds from post-purchase offers when offer timer ends** is enabled. If that setting is turned off, this option will be greyed out. Offerdidn'tload *** ### Allow Aftersell to hold orders with accepted post-purchase offers for fraud review When enabled, Aftersell will place a hold on orders where Shopify has detected a fraud risk above the level you specify. This gives you time to review potentially fraudulent orders before they are fulfilled. **Fraud Hold Release** You can set the fraud risk threshold using the **Fraud Hold Release** dropdown. The available options are: * **Low Risk** - Orders flagged as low risk or higher will be held for review * **Medium Risk** - Only orders flagged as medium or high risk will be held * **High Risk** - Only orders flagged as high risk will be held Orders where Shopify's detected fraud risk exceeds your selected threshold will be put on hold by Aftersell until you review and release them manually. If you are seeing a high number of orders stuck on hold, check your fraud threshold setting. A threshold that is too sensitive may be holding legitimate orders. Fraud Risk *** ## Partially Paid A partially paid order can occur in two ways depending on the upsell type: **Post-purchase upsells** If a customer accepts a post-purchase upsell but the payment fails, the upsell item is still added to the order. The original items are paid for but the upsell item payment was not processed, resulting in a partially paid order. **Thank You Page upsells** When using the Order Merging beta feature for Thank You Page upsells, the item is added to the original order as soon as it is accepted. However the customer still needs to complete a separate checkout to pay for it. If they exit without completing payment, the order becomes partially paid since it now contains an item that has not been paid for. The settings below control how Aftersell handles these situations automatically. For a full explanation of partially paid orders and how to resolve them, see [Partially Paid Orders](/aftersell/partially_paid_orders). *** ### Automatically remove unpaid upsell products from orders When enabled, Aftersell will automatically remove unpaid upsell products from partially paid orders after a set delay if payment has not been collected. This prevents unpaid items from being accidentally fulfilled and shipped. **Partially paid removal delay** Controls how long Aftersell waits after a failed payment before removing the unpaid item from the order. The default is 65 minutes. * A **longer delay** gives customers more time to complete payment via the banner shown on their order confirmation page. Shopify also sends a payment reminder email after 2 hours if payment is still outstanding. * A **shorter delay** allows you to fulfill the original order more quickly, but reduces the window for customers to pay for the upsell item. TY page upsells are only affected by this setting when using the order merge feature. Partiallypaid *** ### Add 'Aftersell Upsell' tag when payment is confirmed By default, the 'Aftersell Upsell' tag is added to an order as soon as a upsell is accepted, regardless of whether payment succeeds. When this setting is enabled, the tag is only added after payment for the upsell is successfully confirmed. This prevents orders from being incorrectly tagged when the upsell payment fails. **When to enable this:** Enable this if you use the 'Aftersell Upsell' tag to trigger workflows, reports, or fulfillment logic and want to ensure only successfully paid upsells are tagged. Upselltag *** **Want to go further?** * [Fulfillment](/aftersell/fulfillment) - understand how post-purchase fulfillment holds work and how to integrate with 3PL services * [Partially Paid Orders](/aftersell/partially_paid_orders) - a full guide to handling partially paid orders * [Potential Workarounds for Fulfillment Flow Issues](/aftersell/potential_workarounds_for_fulfillment_flow_issues) - solutions for fulfillment problems with external services * [Payment Capture](/aftersell/payment_capture) - manage how and when payments are captured for post-purchase upsells # How to configure thank-you page widgets Source: https://docs.aftersell.com/aftersell/how_can_i_set_up_and_customize_thank_you_page_upsells_in_aftersell Step-by-step guide to setting up and configuring Thank You Page widgets in Aftersell Thank You Page (TYP) widgets in Aftersell are a powerful way to engage customers after a purchase and increase sales. This guide provides step-by-step instructions for configuring and enabling TYP widgets within your post-purchase funnels. TYP widgets work in conjunction with Post-Purchase offers, providing multiple opportunities to maximize customer conversions after checkout. *** ## What are Thank You Page widgets? Thank You Page widgets allow you to display additional content and product recommendations to customers immediately after checkout. They are highly customizable and do not face the same [Shopify limitations](/aftersell/why_isnt_my_1_click_offer_displaying) as post-purchase upsells. Thank You Page widgets enable you to: * Tailor offers to specific customer actions (funnel triggers) * Showcase personalized product recommendations * Engage customers in a non-intrusive way * Add [testimonials](#configure-testimonials-widgets), [FAQs](#configure-faq-widgets), [text content](#configure-text-widgets), [images](#configure-image-widgets) and [custom code](#using-custom-code-widgets) to your Thank You page Each TYP widget is tied to a specific funnel, ensuring you retain flexibility and control for different customer journeys. *** ## Step-by-step setup guide ### Step 1: Create or select a funnel 1. Navigate to **Post-purchase Funnels** in your Aftersell admin. 2. Click **Create New Funnel** or select an existing manual funnel. 3. Name your funnel (e.g., "Thank You Page Upsells - All Orders"). Funnel creation ### Step 2: Configure funnel triggers Define when your funnel should run. The triggers you set here apply to the entire funnel, including both Post-Purchase offers and Thank You Page widgets. Thank You Page widgets do not have separate trigger settings. Whatever triggers are configured for the funnel will also determine when the corresponding Thank You Page widgets display. 1. In the funnel settings, click **Triggers**. 2. Select trigger conditions based on: * Customer tags * Product purchased * Cart value * Order count * Collection * Discount codes used 3. Click **Save Triggers**. For step-by-step instructions on how to configure funnel triggers, including detailed targeting options and examples, refer to our [Funnel Triggers setup guide](/aftersell/how_to_configure_post_purchase_triggers). *** ### Step 3: Add TYP widgets to your funnel 1. Scroll to the **Thank You Page** section in your funnel. 2. Click **Add Widget**. 3. Choose from available widget types: * [**Product Recommendation**](#configure-product-recommendation-widgets) - Display up to 10 upsell products * [**Testimonials**](#configure-testimonials-widgets) - Show customer reviews to build trust and social proof * [**FAQs**](#configure-faq-widgets) - Answer common customer questions * [**Text**](#configure-text-widgets) - Share messages, discount codes, or brand stories * [**Image**](#configure-image-widgets) - Display a custom image or banner * [**Custom Code**](#using-custom-code-widgets) - Add custom React components (advanced) *** ### Configure product recommendation widgets 1. Choose your product selection method: * **Specific Products** - Manually select products to display * **Automatic Upsells** - Let Aftersell recommend products based on cart contents * **Collections** - Display products from a specific collection 2. Set the **maximum number of products** to display (up to 10). 3. Enable **Hide purchased products** to avoid showing items already in the order. 4. Enable **Hide out-of-stock variants** to only show available products. When browsing the **Products** tab in the product picker, you can check **Active products only** to hide Draft and Archived products from the list. This filter is off by default and only applies to the Products tab — Collections are not affected. 1. Choose **layout orientation** (horizontal or vertical). 2. Add **banner text** to introduce your offer (optional). 3. Configure **compare-at price** display settings. 4. Select **discount price color** from: * Checkout branding colors (Accent, Decorative, Info, Subdued) * Preset colors (Success, Warning, Critical) 5. Enable **quantity selector** if you want customers to choose quantities. 6. Set **minimum and maximum quantity limits** (optional). 1. Apply a discount (optional): * Choose **percentage** or **fixed amount** * Customize **discount text** and **discount color** 2. Select **order handling** method: * **Modify original order** - Adds upsell to existing order (free shipping automatically applied) * **Create new draft order** - Creates separate order for upsell * These options have different trade-offs. See [Order Handling](/aftersell/thank_you_page_extensions_overview#order-handling) for guidance, especially if your upsell catalog overlaps with your top-sellers. 3. Enable **free shipping** on upsells (if using "Create new draft order"). 4. Enable **"Free Shipping" badge** to highlight the benefit (optional). *** ### Configure testimonials widgets The Testimonials widget displays customer reviews on your Thank You page to reinforce purchase confidence and build social proof. Testimonials on the Thank You page use **Flex Testimonials**, which pulls reviews directly from your connected review app. To use this widget, you must first configure your review app credentials in **Settings > Product Reviews**. Supported apps include Judge.me, Klaviyo, Okendo, and Yotpo. Flex Testimonials offers two selection modes: * **Manual selection** - Choose specific reviews to display * **Dynamic** - Automatically fetch and display reviews based on products in the customer's order In dynamic mode, reviews are imported from your review app and refreshed weekly. To import reviews immediately, go to **Settings > Product Reviews** and click **Sync now**. You can configure: * **Maximum reviews to show** - Control how many reviews appear * **Display type** - Choose between horizontal carousel or vertical stack layout * **Minimum rating** - Set the minimum star rating for reviews to display * **Truncate review text after (optional)** - Set a maximum character length for review text For full details on connecting your review app, see [Checkout widget types - Testimonials](/aftersell/checkout_widget_types#testimonials). *** ### Configure FAQ widgets 1. Click **Add FAQ Item**. 2. Enter your **question** text. 3. Enter your **answer** text. 4. Repeat for additional FAQ items. 5. Reorder items by dragging and dropping. 6. Click **Save**. *** ### Configure text widgets 1. Enter your **heading** (optional). 2. Add your **text content** in the editor. 3. Format text using the toolbar (bold, italic, lists, links). 4. Click **Save**. *** ### Configure image widgets 1. Click the upload area to add your image. 2. Upload a JPG, PNG, or supported image file. 3. Adjust the **Image width** slider (50-500px) to control how large the image appears. 4. Click **Save**. *** ### Save your funnel configuration 1. Review all widget settings. 2. Click **Save Funnel** at the top of the page. 3. Set funnel status to **Active**. *** ## Enabling widgets in Shopify ### Step 1: Open Shopify editor 1. In your Aftersell admin, click **Open Shopify Editor**. 2. This opens the Shopify checkout customization editor. Open Shopify editor ### Step 2: Add widgets to Thank You page 1. In the Shopify editor, navigate to **Thank You page**. 2. Click **Add app block** or **Add section**. 3. Select **Aftersell TY Widgets** from the list. 4. Position the widget block where you want it to appear. 5. Click **Save**. Place your widget toward the top of the Thank You page for best visibility. Widgets positioned lower on the page may not be seen on all devices, particularly on mobile where customers are less likely to scroll. Add widgets to Thank You page ### Step 3: Publish your changes 1. Review the page in the preview. 2. Click **Publish** in the top-right corner. 3. Confirm the publication. Your TYP widgets are now live and will display to customers based on your funnel triggers. *** ## Testing your widgets Shopify's checkout preview may not always display widgets correctly. Follow these steps to test: 1. **Set triggers to "Show for all customers"** (temporarily) to see widgets in preview. 2. **Place a test order** using a real checkout flow: * Use Shopify's test payment gateway * Create a free product for testing * Use a discount code to make the order \$0 3. **Verify widgets appear** on the Thank You page immediately after checkout. 4. **Test widget functionality:** * Click product recommendations * Verify checkout flow for upsells * Confirm order handling works as configured 5. **Reset triggers** to your desired targeting rules after testing. *** ## Advanced configuration ### Combining with post-purchase upsells For maximum conversion, combine TYP widgets with post-purchase offers: 1. Add **Post-purchase Offers** to your funnel (before Thank You page). 2. Configure **TYP widgets** as a second touchpoint. 3. Customers who decline post-purchase offers will still see TYP widgets. 4. This creates multiple conversion opportunities in the customer journey. ### Using custom code widgets For advanced customization, you can create custom widgets using React: 1. Select **Custom Code** widget type. 2. Write your component using [Shopify's Checkout UI Extension library](https://shopify.dev/docs/api/checkout-ui-extensions/2023-10/components). 3. Ensure your code: * Exports the component as `export default` * Uses UI extension components (not DOM elements like `div`, `p`) * Does not import external code 4. Test thoroughly before publishing. Custom code widgets are recommended for advanced users only. Consider hiring a [Shopify Expert](https://www.shopify.com/partners/directory) if you need assistance. *** ## Troubleshooting * Verify funnel status is set to **Active**. * Check that funnel triggers match your test order conditions. * Confirm widgets are enabled in the funnel configuration. * Ensure the widget block is added to the Thank You page in the Shopify editor and positioned toward the top of the page. * Customers sometimes skip the Thank You page if they close the browser immediately after purchase. * Ensure Thank You page offers are correctly set up in the Shopify editor. * Verify the widget block is positioned correctly on the page. *** ## Limitations Countdown timers are not available on the Thank You page. This is a Shopify platform restriction and cannot be changed within Aftersell. Each funnel's Thank You Page widgets must be customized individually. There is no option to standardize them across multiple funnels. This ensures all offers are specific to the triggers and customer behavior for each funnel. *** **Want to go further?** * [Post-Purchase Best Practices](/aftersell/best_practices) - tips to improve conversion across all your offers * [How to Configure Post-Purchase Offers](/aftersell/how_to_configure_post_purchase_triggers) - set up your full post-purchase funnel # How do I cancel my Aftersell subscription? Source: https://docs.aftersell.com/aftersell/how_do_i_cancel_my_aftersell_subscription Cancelling and unsubscribing from Aftersell This guide walks through how to cancel your Aftersell subscription. Cancelling Aftersell uninstalls the app from your Shopify store and ends your subscription. Your settings, funnels, widgets, and configurations are retained for up to 1 year, so you can restore them if you reinstall within that window. ## Before you cancel If you are considering cancelling, these alternatives may address what you are looking to solve: * **Reduce your bill with Earn & Save.** Eligible stores can lower their Aftersell subscription cost through the Rokt Thanks Earn & Save program. Your Rokt Thanks earnings pay out to you in full, and a matching discount is applied to your monthly bill up to your bill amount. See the Earn & Save Program page for details and eligibility. * **Contact support before cancelling.** If a specific issue is driving your decision, our support team may be able to resolve it. Reach us via in-app chat or email [support@aftersell.com](mailto:support@aftersell.com). ## How to cancel To cancel your Aftersell subscription and uninstall the app: In the Aftersell admin, navigate to **Settings → Billing**. Scroll to the bottom of the Billing page and click **Uninstall**. A confirmation modal will open. In the modal, select the reason or reasons that best describe why you are cancelling. Your answer helps the Aftersell team improve the product. Depending on the reason you select, additional questions may appear. Answering these is optional but appreciated. Use the "Something else" field to share any additional context you would like to provide. The Final invoice banner displays any pending usage charges that will appear on your next Shopify invoice. Review these before confirming. Click **Uninstall** to confirm. Your subscription is cancelled and the app is removed from your Shopify store in a single step. ## What happens after cancellation * **Your subscription** ends immediately. No new charges will be submitted for the upcoming billing cycle. * **Pending charges** that were already submitted to Shopify before cancellation will still be collected on your next Shopify invoice. To avoid charges for the next cycle, cancel at least one day before your next billing date. * **Your data** (settings, funnels, widgets, configurations) is retained for up to 1 year after cancellation. * **If you reinstall within 1 year**, you can restore your previous configuration during onboarding. After 1 year, data may be removed and a reinstall will start you on a fresh setup. Shopify collects app charges on its own billing cycle, not on the day a charge is submitted. If you uninstall after a charge has been submitted for the current cycle, that charge will still be collected on the next Shopify invoice. For more on this timing, see the "Why was I billed after uninstalling?" section of the Aftersell Billing & Pricing page. ## Need help? For questions about cancellation, pending charges, or your final invoice, contact the Aftersell support team via in-app chat or email [support@aftersell.com](mailto:support@aftersell.com). ### Related pages * Aftersell Billing & Pricing * Earn & Save Program # How do post-purchase upsells affect my fulfillment? Source: https://docs.aftersell.com/aftersell/how_do_post_purchase_upsells_affect_my_fulfillment Post-purchase upsell offers will edit the original order and not create a separate order. The post-purchase upsell offer will create a fulfillment hold for up to 60 minutes, which will clear if the customer accepts/declines an offer or closes the browser tab. For detailed documentation on fulfillment, please [read this section on our docs here](/aftersell/fulfillment). # How to configure checkout widgets Source: https://docs.aftersell.com/aftersell/how_to_configure_checkout_widgets Complete step-by-step guide to configuring checkout widgets in Aftersell, including all widget types, placement options, and conversion best practices for mobile and desktop This guide walks you through how to configure and place checkout widgets in Aftersell, from enabling widgets to optimizing placement in Shopify Checkout for maximum conversion rates.. **Note:** Checkout widgets are only available to Shopify Plus merchants due to Shopify's Checkout Extensibility API restrictions. *** ## Step 1: Enable your widget in Aftersell Before adding widgets to your checkout, you need to enable them in the Aftersell admin. 1. Navigate to the **Checkout** tab in your Aftersell admin 2. Select the widget type you want to configure ([Upsells](#upsells), [Cart Controls](#cart-controls), [Rewards,](#rewards) [Trust Badges,](#trust-badges) [Testimonials](#testimonials), [Notes](#notes), [Images](#images), or [Text](#text)) 3. Click **Create** to build a new widget or select an existing widget to edit 4. Configure your widget settings (see [Widget types and configuration](#widget-types-and-configuration) below) 5. Click the **Enable** toggle in the top right corner of the widget settings 6. For restricted or advanced upsells, make sure you enable custom triggers before proceeding *** ## Step 2: Open the Shopify Checkout Editor There are two ways to access the Shopify Checkout Editor: **Option 1: From Shopify Admin** 1. Go to **Settings** in your Shopify Admin 2. Click **Checkout** in the left navigation 3. Click **Customize** next to your desired checkout profile **Option 2: From Aftersell** 1. Click the **Open Shopify Checkout Editor** button in the bottom right of the Aftersell Checkout editor page 💡 **Tip:** Option 1 gives you more control over which checkout profile you're editing. We recommend testing on a draft version first before setting it live. Checkout Editor Draft *** ## Step 3: Add the app block to your checkout 1. In the Shopify Checkout Editor, click **Add app block** 2. Select your desired Aftersell widget from the list of available widgets 3. Choose the correct placement for your widget (see [Placement options](#placement-options) below) 4. If you want your widgets to display in Shop Pay checkout, check the [**Include app block in Shop Pay**](/aftersell/show_checkout_widgets_in_shop_pay) option 5. Click **Save** in the top right corner Adding app block *** ## Step 4: Position your widget 1. Drag and drop the app block to your desired location within the selected placement area 2. Click **Save** in the top right corner Positioning widget *** ## Widget types and configuration ## Placements Placements are created in the Aftersell Checkout editor and allow you to run multiple widgets of the same type on the same checkout page. For example, if you want to display two upsell offers on the same page, each must be assigned to a different placement. ### Available placements * **Default placement**: The primary placement. Every widget type starts here. * **Additional placement 1**: A second placement slot for displaying another widget of the same type on the same page. * **Additional placement 2**: A third placement slot for further separation. You can also create new placements directly from the placement dropdown in Aftersell by selecting **+ Add new placement**. Placements *** ### When to use multiple placements Use multiple placements when you want to: * Display more than one widget of the same type on a single checkout page * Show widgets in different sections of the page * Target different audiences with different offers * Run widgets with similar or overlapping triggers Aftersell uses a priority system. You cannot run multiple widgets with identical triggers within the same placement. If two widgets share the same trigger conditions in one placement, only one will display based on priority. To use similar triggers, assign each widget to a different placement so they can run independently without conflict. *** ## Matching placements in the Shopify Checkout Editor Each placement in Aftersell corresponds to a separate app block in the Shopify Checkout Editor. The placement selected in Shopify must match the placement set in Aftersell. For example, if a widget is assigned to **Additional placement 1** in Aftersell, the app block in Shopify must also be set to **Additional placement 1**. If placements do not match, the widget may not appear or may display in the wrong location. **Important:** A placement mismatch is one of the most common reasons a widget fails to display. If a widget is not appearing, confirm the placement matches in both Aftersell and Shopify before troubleshooting further. Placement Checkout *** ### Upsells Offer products to customers during checkout to increase your average order value (AOV). **Configuration options:** **Widget modes:** * **Single Product Upsell:** Display one product with an Add to Cart button * **Multi-Product Upsell:** Show multiple products in a stack or carousel layout, allowing customers to accept multiple offers * **Checkmark Upsell:** Display a single product with a checkbox instead of an Add to Cart button (ideal for low-cost add-ons like shipping protection) **Product selection methods:** * **Specific Products:** Manually select individual products to upsell * **Collection:** Select a collection and display up to 5 random products (products already in cart are automatically excluded) * **AI Recommendations:** Automatically recommend products based on cart contents * **Most Expensive Product:** Automatically upsell the most expensive product from the cart * **Spend Threshold:** Recommend products that help customers reach reward thresholds (requires rewards bar) **Additional features:** * Add discounts directly within the widget * Lock subscription plans to specific options * Display product review stars (requires compatible review app) * Set a maximum number of accepted offers per widget (Single and Multi upsell types only) [Learn more about upsell widgets](/aftersell/checkout_widget_types#upsells) *** ### Cart Controls Allow customers to modify their cart directly on the checkout page. **Available controls:** * **Variant selector:** Change to another in-stock variant * **Quantity selector:** Adjust product quantities * **Remove item:** Remove upsell products from cart * **Subscription selector:** Change subscription frequency * **Subscription upgrade:** Upgrade one-time purchases to subscriptions * **Custom text:** Add custom text below line items **Product targeting:** * Apply to all products in cart * Apply only to selected products * Apply to all products except selected ones **Additional features:** * Display product review stars for in-cart products [Learn more about cart controls](/aftersell/checkout_widget_types#cart-controls) *** ### Rewards Display a progress bar showing customers how close they are to earning a reward. **Configuration options:** * Goal type: Order Value or Item Count * Amount basis (for Order Value goals): Order total, Subtotal, or Post-discount subtotal * Reward message and styling * Progress bar colors and design **Best practices:** * Pair with upsell widgets to help customers reach reward thresholds * Use spend threshold product type in upsells to automatically recommend products that close the gap * Create rewards in Shopify using Automatic Discounts (for discount rewards) or Shipping Rules (for free shipping) * Use **Post-discount subtotal** as the amount basis when offering free shipping, so the bar matches Shopify's own threshold evaluation when discount codes are applied [Learn more about rewards](/aftersell/checkout_widget_types#rewards) *** ### Trust Badges Build trust with custom icons and text to increase checkout conversion rates. **Configuration options:** * Badge layout: Vertical stack or horizontal display * Custom icons and text for each badge * Styling and spacing options **Best practices:** * Highlight security features (secure checkout, SSL encryption) * Showcase guarantees (money-back guarantee, free returns) * Display shipping benefits (free shipping, fast delivery) [Learn more about trust badges](/aftersell/checkout_widget_types#trust-badges) *** ### Testimonials Display customer reviews directly on checkout to build trust. **Configuration options:** * **Flex Testimonials (recommended):** Automatically pulls real reviews from your review app (Judge.me, Klaviyo, Okendo, or Yotpo) * Selection mode: Manual (choose specific reviews) or Dynamic (automatically fetch reviews based on cart contents) * Display type: Horizontal carousel or vertical stack * Minimum rating filter **Setup requirements:** * Configure review app credentials in Settings > Product Reviews * Reviews sync automatically within 24 hours, then weekly [Learn more about testimonials](/aftersell/checkout_widget_types#testimonials) *** ### Notes Allow customers to add notes to their order. **Configuration options:** * Manual notes: Free-text field for customer input * Pre-written notes: Checkboxes for options like gift wrapping or eco-packaging [Learn more about notes](/aftersell/checkout_widget_types#notes) *** ### Images Upload and display custom images in your checkout. **Configuration options:** * Image upload * Width adjustment slider * No minimum size requirement [Learn more about images](/aftersell/checkout_widget_types#images) *** ### Text Insert a banner with custom text in your checkout. **Configuration options:** * Four banner styles: * **Information:** Blue background with information icon * **Success:** Green background with checkmark icon * **Critical:** Red background with exclamation point icon * **Warning:** Yellow background with warning triangle icon * Header size, content size, and spacing adjustments [Learn more about text](/aftersell/checkout_widget_types#text) *** ## Troubleshooting ### Widgets not displaying If your widgets aren't showing after setup: 1. Verify widget is enabled in Aftersell admin 2. Check app block is added in Shopify Checkout Editor 3. Confirm app block is saved in Shopify Checkout Editor 4. Verify the correct placement is selected. When adding an app block in the Shopify Checkout Editor, you must choose the matching placement, such as Default placement, Additional placement 1, or Additional placement 2. If the wrong placement is selected, the widget may not appear or may display in the wrong location. Remove the app block and re-add it, ensuring the intended placement is selected. 5. For Shop Pay: Verify "Include app block in Shop Pay" is checked 6. Clear browser cache or try incognito mode 7. Wait a few minutes for changes to propagate ### Shop Pay widgets not showing To display widgets in Shop Pay checkout: 1. Open the widget in Shopify Checkout Editor 2. Check the **Include app block in Shop Pay** option under Checkout behaviour 3. Save your changes Shoppay [Learn more about Shop Pay Widgets](/aftersell/show_checkout_widgets_in_shop_pay) *** ## Next steps * [Learn about checkout triggers](/aftersell/checkout_triggers) to show widgets conditionally * [Set up checkout A/B testing](/aftersell/checkout_a_b_testing) to optimize placements * [Configure checkout branding](/aftersell/checkout_branding_settings) to match your store design * [Explore advanced upsell strategies](/aftersell/best_practices) to maximize AOV # How to configure fulfillment locations for post-purchase upsells Source: https://docs.aftersell.com/aftersell/how_to_configure_fulfillment_locations_for_1_click_upsells Adjust which location upsells are shipped from Shopify follows a set of rules to determine which location an upsell order is shipped from. Stores with two or more active locations should have access to [order routing](https://help.shopify.com/en/manual/fulfillment/setup/order-routing), which can be found in the Shopify admin under `Shipping & Delivery > Order Routing`. If you don't see this option, ensure you have at least two active locations. If you do, and the section is still missing, your store might be using the legacy Location Priority system, which is located under `Locations > Location Priority`. Shopify applies these default rules for selecting a location for fulfillment as of the time of writing this article. If desired, an additional rule can be added to prioritize specific locations. Image Another rule for upsells is that they will only ship from locations designated to fulfill online orders. This setting can be adjusted for each location in the Locations tab. *** ## Customizing Inventory Locations (Advanced) In Aftersell, you can select which inventory locations are used for post-purchase upsells. Please note that this is an advanced setting, which requires assistance from our support team to enable. * Once added by our support team, you can find these inventory settings by navigating to **Aftersell > Settings > Inventory.** Image This setting lets you specify which locations you'd like Aftersell to exclude from upselling. **By default, all locations can be sold from.** **Important**: This setting only applies within Aftersell; however, Shopify ultimately determines the shipping location, and Aftersell cannot direct Shopify on which location to use. For example, if you set Aftersell to exclude Warehouse A, it will only check inventory at Warehouses B and C when a customer is viewing an upsell offer. If inventory is available at either of those locations, Aftersell will present the offer. However, once the upsell is purchased, Shopify will decide on the shipping location based on the rules set in Order Routing. If location priorities are not aligned, Shopify may still ship from Warehouse A if it has stock, even though Aftersell excluded it for upsell offers. To avoid this, ensure your Order Routing rules are properly configured to match your Aftersell inventory settings. *** **Note:** Automatic Upsells use Shopify's Recommendation APIs, which don't allow filtering by inventory location. Aftersell checks stock by location afterward, but the initial recommendations from Shopify can't be limited to a specific location.\ You can read Shopify's documentation on this [here](https://shopify.dev/docs/storefronts/themes/product-merchandising/recommendations/related-products) # How to configure post-purchase triggers Source: https://docs.aftersell.com/aftersell/how_to_configure_post_purchase_triggers Step-by-step guide to setting up and configuring post-purchase funnel triggers in Aftersell Triggers control when and to whom your post-purchase funnels display. This guide walks you through configuring the most common trigger types and managing funnel priority. For detailed information about what each trigger does, see the [Post-purchase Triggers reference](/aftersell/post_purchase_triggers). *** ## Getting started with triggers When you create a new funnel, you'll need to configure at least one trigger to control when it displays. You can combine multiple triggers to create precise targeting rules. ### Where to find triggers Triggers are configured inside each funnel, not from a global menu. To open them: 1. In the Aftersell admin, go to **Post-purchase Funnels**. 2. Click the funnel you want to edit (or click **Create Funnel** to start a new one). 3. In the funnel editor, open the **Triggers** section. 4. Click **Add Trigger** to add a new trigger, or click an existing trigger to edit it. 5. After making changes, click **Save Triggers**. Each funnel has its own set of triggers — there are no shared or store-wide triggers. ### Where to find triggers Triggers are configured inside each funnel, not from a global menu. To open them: 1. In the Aftersell admin, go to **Post-purchase Funnels**. 2. Click the funnel you want to edit (or click **Create Funnel** to start a new one). 3. In the funnel editor, open the **Triggers** section. 4. Click **Add Trigger** to add a new trigger, or click an existing trigger to edit it. 5. After making changes, click **Save Triggers**. Each funnel has its own set of triggers — there are no shared or store-wide triggers. ### How triggers work together Post-purchase triggers use two levels of logic: **AND between triggers** and **OR within triggers**. **AND logic (between triggers)** All enabled triggers must be met for the funnel to display. If you add multiple triggers, every one must return a match. Example: * Customer Location = US * Order Value > \$50 The customer must be in the US **and** the order must exceed \$50. **OR logic (within a trigger)** Within a single trigger, only one selected option needs to match. Example: Product Category = Shoes, Socks, or Pants. If the order contains any one of these, the trigger passes. Some triggers (like Product Quantity) allow you to switch this to AND logic. For a detailed explanation of trigger logic, see [Understanding Conditional Logic](/aftersell/understanding_conditional_logic_for_post_purchase_triggers). *** ## Show for all customers trigger A "Catch-All" funnel uses the **Show for All Customers** trigger. This funnel activates when an order does not meet the criteria for any other funnel. It serves as a safety net, ensuring no orders slip through without an upsell or Thank You page offer. To use it effectively, set this funnel to the lowest priority so it only appears if no other funnel triggers. **Example use cases:** * You have three funnels: one for orders over \$100, one for specific products, and one with the Show for All Customers trigger. If a customer places an order that doesn't meet the first two funnels' criteria, the Show for All Customers funnel will activate as a fallback. * You want to ensure every customer sees at least one offer. Create a funnel with the Show for All Customers trigger and set it to the lowest priority. *** ## Product-based triggers These triggers activate based on the products, collections, or variants in a customer's cart. Ensure proper configuration to prevent hidden or wholesale-only products from appearing unexpectedly in recommendations. This includes reviewing Shopify's Product Recommendation logic and restricting such products at the add-to-cart stage. Use the **Product/Collection** trigger to display your funnel when specific products or collections are purchased. **To configure:** 1. In your funnel settings, click **Add Trigger**. 2. Select **Product/Collection** from the trigger type dropdown. 3. Choose **Contains** or **Does not contain**. 4. Search for and select the products or collections you want to target. 5. Click **Save**. **Example use cases:** * Show a protein powder upsell when customers purchase any product from your "Supplements" collection. * You have a funnel set to products X, Y, and Z. If a customer buys products A, B, and Y, this funnel will activate. If they buy A, B, and C, it will not. Use the **Product Quantity** trigger to display an offer based on how many of a specific product are in the cart. **To configure:** 1. Click **Add Trigger**. 2. Select **Product Quantity** from the trigger type dropdown. 3. Choose **Less than** or **More than**. 4. Enter the quantity threshold and select the product. 5. Click **Save**. **Example use cases:** * Set to "less than 3" for Product X. If a customer buys 2 units, the funnel activates. If they buy 3 or more, it does not. * Set to "more than 1" for Product Y. If a customer buys 2 or more units, the funnel activates. If they buy only 1, it does not. Use the **Product Tag** trigger to display an offer when products with certain Shopify tags are included in the order. **To configure:** 1. Click **Add Trigger**. 2. Select **Product Tag** from the trigger type dropdown. 3. Choose **Include** or **Exclude**. 4. Enter the product tag(s) you want to target. 5. Click **Save**. **Example use cases:** * Exclude discontinued products from receiving upsell offers by setting the trigger to exclude products tagged "discontinued." * Show a special offer only for products tagged "summer-collection." Use the **Product Type** trigger to display an offer when purchased products belong to a defined Shopify product type. **To configure:** 1. Click **Add Trigger**. 2. Select **Product Type** from the trigger type dropdown. 3. Choose **Include** or **Exclude**. 4. Enter the product type(s) you want to target. 5. Click **Save**. **Example use case:** If you set the trigger to "Shoes," any time a customer purchases a product of type Shoes, the funnel will display. If they purchase a t-shirt (type: Apparel), the funnel will not display. Use the **Metafields** trigger to display funnels based on custom metafield data associated with products or variants. You can choose between product metafields or variant metafields, but only one type can be matched at a time. **To configure:** 1. Click **Add Trigger**. 2. Select **Metafields** from the trigger type dropdown. 3. Choose **Include** or **Exclude**. 4. Enter the metafield **name** and **value** exactly as they appear on the product page (both are case-sensitive). 5. Click **Save**. **How it works:** * **Include** means there's an overlap between the metafields in the order and those in the trigger list. For example, if the order metafields are `["color: red", "size: m"]` and the trigger list is `["color: red", "ship: warehouse"]`, the condition is satisfied because `color: red` matches. * **Exclude** means there's no overlap between the metafields in the order and the trigger list. For example, if order metafields are `["color: red", "size: M"]` and the trigger list is `["color: blue", "size: L"]`, the condition is satisfied because there are no matching name:value pairs. This trigger is especially useful if you use metafields to store detailed product information like materials, sizing, or special attributes. Use the **Product/Collection Exclusion** trigger to prevent a funnel from displaying when excluded products or collections are present in the cart. **To configure:** 1. Click **Add Trigger**. 2. Select **Product/Collection Exclusion** from the trigger type dropdown. 3. Search for and select the products or collections to exclude. 4. Click **Save**. **Example use case:** If a customer has purchased from a heavily discounted product or collection, you may prefer not to show further offers. You can also combine this trigger with the Product/Collection trigger to ensure only selected products activate the funnel while others are excluded. Use the **Subscription** trigger to display an offer based on whether a subscription product is included in the order. **To configure:** 1. Click **Add Trigger**. 2. Select **Subscription** from the trigger type dropdown. 3. Choose **Contains** or **Does not contain** subscription products. 4. Click **Save**. **Example use cases:** * Set to "Does not contain" subscription products to target one-time purchasers and offer them a subscription upsell. * Set to "Contains" subscription products to show complementary one-time products to subscribers. Shopify only supports one subscription product per order, so you cannot upsell a subscription if the original order already includes one. Use the **Variant on subscription** trigger to display a funnel when the order includes any of the selected products purchased as a subscription. Unlike the Subscription trigger, this trigger matches on a specific product being purchased on a subscription line item — a one-time purchase of the same product does not activate the funnel. **Managed by the subscription upgrade wizard** When a funnel has a subscription upgrade offer configured, this trigger is managed automatically by the wizard and kept in sync with the upgrade's source product. The trigger is read-only while the upgrade offer is present. It unlocks if the upgrade offer is removed. **Manual configuration (funnels without a subscription upgrade offer)** 1. Click **Add Trigger**. 2. Select **Variant on subscription** from the trigger type dropdown. 3. Click **Select** to open the product picker (filtered to subscription products only). 4. Choose the subscription product(s) you want to target. 5. Click **Save**. **Example use cases:** * Show a subscription upgrade offer only to customers who subscribe to a specific product, without triggering for one-time purchases of the same product. * Target customers subscribing to any of several products by selecting multiple products in the trigger. If a funnel has a subscription upgrade offer, the Variant on subscription trigger is read-only and managed by the wizard. To edit it manually, remove the subscription upgrade offer first. Use the **Variant Name** trigger to display specific funnels based on the product variant selected by the customer at checkout (e.g., size, color, style). **To configure:** 1. Click **Add Trigger**. 2. Select **Variant Name** from the trigger type dropdown. 3. Choose **Include** or **Exclude**. 4. Enter the variant name(s) you want to target. 5. Click **Save**. **Example use cases:** * Set to include "Large." If a customer purchases a t-shirt in size Large, the funnel activates. Size Small or Medium will not trigger it. * Set to include "Red" and "Blue." Either color variant will activate the funnel; Green will not. *** ## Cart & discount triggers These triggers activate based on cart value, contents, or discounts applied. Use the **Order Value** trigger to target customers based on their cart total. **To configure:** 1. Click **Add Trigger**. 2. Select **Order Value** from the trigger type dropdown. 3. Choose **Greater than** or **Less than**. 4. Enter the dollar amount threshold. 5. Click **Save**. **Example use cases:** * Show premium upsells to customers with orders over \$100. * Offer free shipping upgrades to customers with orders under \$50. * A funnel set to "less than \$50.00" will activate for a \$30.00 order but not a \$60.00 order. Use the **Quantity** trigger to show an upsell offer based on the total item count in a customer's order. This trigger counts all items across every product in the cart, regardless of which specific products they are. **To configure:** 1. Click **Add Trigger**. 2. Select **Quantity** from the trigger type dropdown. 3. Choose **More than**, **Less than**, or **Exactly**. 4. Enter the item count threshold. 5. Click **Save**. **Example use cases:** * Set to "less than 3" - the upsell appears only when there are 1 or 2 total items in the cart. * Set to "more than 1" - the funnel triggers for orders with 2 or more total items. * Set to "exactly 3" - the funnel triggers only when there are exactly 3 total items in the cart. If you need to trigger based on the quantity of a specific product rather than total cart item count, use the Product Quantity trigger instead. Use the **Discount Code** trigger to include or exclude customers from seeing a funnel based on a discount code they applied. You can also exclude all orders that used any manually-entered discount code, without specifying individual codes. **To configure:** 1. Click **Add Trigger**. 2. Select **Discount Code** from the trigger type dropdown. 3. Choose one of the three options: * **Includes** — the funnel shows only when the order includes one of the specified codes. * **Excludes** — the funnel shows only when none of the specified codes were applied. * **Excludes any manual discount code** — the funnel shows only when no manually-entered discount code was used at checkout. Automatic and script discounts are ignored, so a site-wide automatic discount will not suppress the funnel. 4. For **Includes** or **Excludes**, enter the discount code(s), pressing **Enter** after each one to save it. No codes are needed for **Excludes any manual discount code**. 5. Click **Save**. **Example use cases:** * Show a funnel only to email subscribers by including their specific discount code. * Exclude all orders that used any manually-entered discount code to prevent upsell offers from showing to customers who already received a discount. Be sure to press **Enter** after entering a discount code to save it in the funnel. Use the **Discount Percent** trigger to include or exclude customers from viewing a funnel based on the discount percentage applied to their order. **To configure:** 1. Click **Add Trigger**. 2. Select **Discount Percent (%)** from the trigger type dropdown. 3. Choose **Include** or **Exclude**, then choose **Greater than** or **Less than**. 4. Enter the discount percentage threshold. 5. Click **Save**. **Example use cases:** * Set to exclude discounts "greater than 20%." A customer with a 25% discount won't see the funnel; one with 15% or no discount will. * Set to include discounts "less than 10%." A customer with a 5% discount will see the funnel; one with 15% will not. *** ## Customer attribute triggers These triggers use customer data to control funnel visibility. Use the **Customer Tag** trigger to include or exclude customers from seeing a funnel based on their associated Shopify customer tags. **To configure:** 1. Click **Add Trigger**. 2. Select **Customer Tag** from the trigger type dropdown. 3. Choose **Include** or **Exclude**. 4. Enter the customer tag(s) you want to target. 5. Click **Save**. **Example use cases:** * Set to include "VIP." Only customers with the VIP tag will see the funnel. * Set to exclude "Wholesale." Wholesale customers won't see retail upsells. Use the **Customer Order History** trigger to create offers based on a customer's past purchases of specific products. **To configure:** 1. Click **Add Trigger**. 2. Select **Customer Order History** from the trigger type dropdown. 3. Search for and select the specific products to check for in past orders. 4. Click **Save**. You must select specific products when using this trigger. If you don't, it will only display "Customer previously ordered \_\_\_\_" without applying any action. If your goal is simply to check whether a customer has ordered before, use the Customer Order Count trigger instead. This trigger reviews only past orders, not the current order. Use the **Customer Order Count** trigger to display a funnel specifically for new or returning customers based on how many orders they've previously placed. **To configure:** 1. Click **Add Trigger**. 2. Select **Customer Order Count** from the trigger type dropdown. 3. Choose **Equal to**, **Greater than**, or **Less than**. 4. Enter the order count threshold. 5. Click **Save**. **Example use cases:** * Set to "equal to 0" to target first-time customers only. * Set to "greater than 3" to target loyal customers who have placed 4 or more previous orders. * More than 0 orders = returning customer; 0 orders = new customer. This trigger is based on past purchases, not the current order. Use the **Customer Language** trigger to tailor offers based on the customer's preferred language. If your store serves customers in more than one language, you can create a separate funnel for each one and display the right offer based on the language the customer checked out in. **To configure:** 1. Click **Add Trigger**. 2. Select **Customer Language** from the trigger type dropdown. 3. Select the language you want to target. 4. Click **Save**. Multi Language **Setting up a multi-language funnel** Start by creating a funnel for your first language, then duplicate it for each additional language. Rename each funnel so it's easy to identify, update its Customer Language trigger to match, and manually translate all available text fields, including the product title, description, timer, and any custom text widgets. **Current limitations** Some elements are controlled globally through the **Translations** section in Aftersell's **Settings**, meaning they can only be set to one language at a time. Changing these will affect all funnels regardless of language. 1 Language The Shopify controlled header at the top of the post-purchase page will automatically display in the customer's checkout language. This includes text like "You've paid for your order." and cannot be customized through Aftersell. Auto Translate Use the **Once per Customer** trigger to ensure a funnel only shows once per customer across all of their orders. **To configure:** 1. Click **Add Trigger**. 2. Select **Once per Customer** from the trigger type dropdown. 3. Click **Save**. **Example use cases:** * A customer who sees this funnel after their first purchase will not see it again on any future purchases, even if all other trigger conditions are met. * Use it to show a special "welcome offer" exclusively on a customer's first purchase. *** ## Order details & time-based triggers These triggers depend on checkout details, marketing data, or timing. Use **UTM Parameter** triggers to display specific funnels based on marketing campaign parameters in the URL. **To configure:** 1. Click **Add Trigger**. 2. Select **UTM Parameter** from the trigger type dropdown. 3. Choose the UTM parameter type (source, medium, campaign, term, content, or id). 4. Enter the exact value to match. 5. Click **Save**. **Example use cases:** * Set to "utm\_source = facebook." Customers arriving via a Facebook link will see the funnel; others will not. * Set to "utm\_campaign = summer\_sale" to show campaign-specific offers to customers from that campaign. * Show exclusive offers to customers arriving from your email campaign by targeting `utm_source=email`. For advanced UTM tracking setup, see [How to use Direct-to-Checkout UTM Links](/aftersell/how_to_use_direct_to_checkout_utm_links). UTM triggers do not fire when customers use express checkout methods (Shop Pay, Apple Pay, Google Pay, PayPal, etc.) because express checkout bypasses the standard cart flow where UTM parameters are captured. If you're using UTM triggers for campaign tracking, consider using other trigger types (product, collection, order value) as alternatives, or creating separate funnels for general traffic that don't rely on UTM parameters. Use the **Currency** trigger to control whether customers see a funnel based on the currency they use at checkout. **To configure:** 1. Click **Add Trigger**. 2. Select **Currency** from the trigger type dropdown. 3. Choose **Include** or **Exclude**. 4. Select the currency or currencies you want to target. 5. Click **Save**. **Example use cases:** * Set to "USD." Customers checking out in US Dollars will see the funnel; those in EUR, GBP, or others will not. * Set to "CAD" and "USD." Customers in either currency will see the funnel. **Important notes:** * Thank You Page offers automatically adjust to the customer's checkout currency, making a single funnel viable across markets. * Post-purchase upsells do not support multi-currency. Customers will not see upsell offers unless your store currency matches their checkout currency. Use Thank You Page offers for universal visibility. * If your store uses **Shopify Markets**, Aftersell integrates seamlessly to display products in the correct local currency. Use the **Device Type** trigger to scope a funnel to customers on a specific device — Desktop only or Mobile only. **To configure:** 1. Click **Add Trigger**. 2. Select **Device Type** from the trigger type dropdown. 3. Choose **Desktop only** or **Mobile only**. 4. Click **Save**. **Example use cases:** * Set to **Desktop only** to show an offer that works best on larger screens, such as a detailed product comparison or multi-image layout. * Set to **Mobile only** to target customers browsing on their phone with a mobile-optimized offer. * Combine with other triggers (e.g., Order Value) to show a desktop-only offer to high-value customers. If a customer's device type cannot be detected, the trigger fails closed and the funnel will not display. This matches the behavior of other triggers when required data is unavailable. Use the **Shipping Country** trigger to include or exclude customers based on their shipping destination. **To configure:** 1. Click **Add Trigger**. 2. Select **Shipping Country** from the trigger type dropdown. 3. Choose **Include** or **Exclude**. 4. Select the countries you want to target. 5. Click **Save**. **Example use cases:** * Exclude international shipping for products only available domestically. * Show region-specific products to customers in certain countries. * Create country-specific Thank You Page offers (since Post-purchase upsells don't display for non-default currencies). Use the **Random Sample** trigger to control funnel visibility for a random subset of customers. This is ideal for A/B testing new funnels or surprising a select group with special offers. **To configure:** 1. Click **Add Trigger**. 2. Select **Random Sample** from the trigger type dropdown. 3. Enter the percentage of customers who should see the funnel. 4. Click **Save**. **Example use cases:** * Set to "25%." The funnel randomly activates for approximately 25% of qualifying customers. * For A/B testing, create two funnels each with a Random Sample trigger set to "50%." Each funnel will show to roughly half your customers. Use the **Date/Time** trigger to schedule funnel visibility based on specific dates and times, ideal for time-sensitive promotions, seasonal campaigns, or limited-time deals. **To configure:** 1. Click **Add Trigger**. 2. Select **Date/Time** from the trigger type dropdown. 3. Use the date picker to select your start date, end date, or both. 4. Use the timezone dropdown to select the timezone your schedule should follow (for example, "GMT-07:00 - (MST) America/Phoenix"). 5. Click **Save**. **Example use cases:** * Set to activate "between December 1 and December 25" for a holiday promotion. * Set to activate "after January 1, 2026" to launch a new year promotion. * Set a start and end date in your store's local timezone to run a weekend flash sale from Friday 12:00 AM to Sunday 11:59 PM. The timezone you select determines when the trigger starts and stops. Choose the timezone that matches your store's primary market or promotion schedule. Use the **Shipping Method** trigger to control funnel visibility based on the customer's chosen shipping option at checkout (e.g., standard, expedited, international, pickup). **To configure:** 1. Click **Add Trigger**. 2. Select **Shipping Method** from the trigger type dropdown. 3. Choose **Include** or **Exclude**. 4. Select the shipping method(s) you want to target. 5. Click **Save**. **Example use cases:** * Show an expedited delivery upgrade upsell only to customers who selected standard shipping. * Exclude "Local Pickup" customers from seeing shipping protection or delivery-related upsells. * Target customers who chose international shipping with a customs-friendly product bundle. The shipping method names in Aftersell match the shipping rate names configured in your Shopify admin. Make sure the names in your trigger exactly match your Shopify shipping rate names. *** ## Managing funnel priority When you have multiple funnels, priority determines which funnel displays when multiple funnels' triggers are met. **How funnel priority works:** * Funnels are evaluated in priority order: Priority 1 → Priority 2 → Priority 3, etc. * The first funnel whose triggers are all met will display. * Lower priority funnels are only checked if higher priority funnels don't match. * Smart Funnel (if enabled) is evaluated at Priority 0, before all manual funnels. ### Viewing funnel priority You can see each funnel's current priority number on the left side of the funnel table in the **Post-purchase Funnels** section. ### Reordering funnels 1. Go to **Post-purchase Funnels** in the Aftersell admin. 2. Click the **Manage Priority** button at the top right of the funnel table. 3. Drag and drop funnels to reorder them. 4. Click **Save** to apply the new priority order. Priority **Best practices for funnel priority:** * **Place specific funnels first** - Put funnels with narrow targeting (specific products, high-value orders) at higher priority. * **Place broad funnels last** - Put funnels with general targeting (collections, low order values) at lower priority. * **Set Catch-All funnel to lowest priority** - If you have a "Show for All Customers" funnel, make it the last priority so it only displays when no other funnel matches. * **Test your priority order** - Place test orders to verify the correct funnel displays for different scenarios. **Example priority structure:** * Priority 1: High-value orders (\$200+) with specific product * Priority 2: Orders containing products from premium collection * Priority 3: Orders with any product from main category * Priority 4: Catch-All funnel (Show for All Customers) *** ## Combining multiple triggers You can add multiple triggers to a single funnel to create precise targeting rules. Remember: all triggers must be met for the funnel to display. ### Example: targeting high-value supplement customers Add these triggers to the same funnel: * **Product/Collection trigger:** Contains products from "Supplements" collection * **Order Value trigger:** Greater than \$75 * **Customer Order Count trigger:** More than 0 orders (returning customers only) This funnel will only display to returning customers who purchase supplements and have a cart value over \$75. ### Example: targeting customers who haven't purchased specific upgrades This is useful when you sell products with optional upgrades and want to show different upsells depending on what the customer has and hasn't already purchased. **Scenario:** You sell a base product with two optional upgrades - "Premium Rotor" and "Water Resistance." **Funnel 1 - Customer bought neither upgrade (highest priority)** * No product exclusions needed * Set to **highest priority** so it is evaluated first * This funnel shows both upgrades as upsell options **Funnel 2 - Customer bought Premium Rotor but not Water Resistance** * Add a **Product/Collection trigger** set to **Contains** "Premium Rotor" * Add a **Product/Collection Exclusion trigger** set to exclude "Water Resistance" * This funnel shows only the Water Resistance upsell **Funnel 3 - Customer bought Water Resistance but not Premium Rotor** * Add a **Product/Collection trigger** set to **Contains** "Water Resistance" * Add a **Product/Collection Exclusion trigger** set to exclude "Premium Rotor" * This funnel shows only the Premium Rotor upsell Funnel priority is critical here. If Funnel 1 is not set to the highest priority, Aftersell may match a single-upgrade funnel first for customers who bought neither upgrade, resulting in only one upsell being shown instead of both. *** ## Next steps * Learn about all available trigger types in the [Post-purchase Triggers reference](/aftersell/post_purchase_triggers) * Understand how triggers work together with [Understanding Conditional Logic](/aftersell/understanding_conditional_logic_for_post_purchase_triggers) * Set up your first funnel with the [Quickstart Guide](/aftersell/quickstart_guide_to_aftersell) * Review [Best Practices](/aftersell/best_practices) for optimizing your funnel strategy # How to create a multi-step post-purchase upsell Source: https://docs.aftersell.com/aftersell/how_to_create_a_multi_step_post_purchase_upsell This article covers how to display more than two post-purchase upsell pages to customers. Due to [Shopify post-purchase API limitations](https://shopify.dev/docs/apps/build/checkout/product-offers#limitations-and-considerations), a customer can accept up to two post-purchase upsells. Additionally, customers can only select one product per upsell step due to platform restrictions. However, with Aftersell's multi-step setting, you can display more than two upsell pages to the customer. Multi-step offers split up each page into multiple steps, allowing customers to potentially select products across different steps. [Analytics](#analytics) [Best practices](#best-practices) [Design](#design) [Steps to set up a multi-step post-purchase upsell](#steps-to-set-up-a-multi-step-post-purchase-upsell%3A) # Steps to set up a multi-step post-purchase upsell: * Create a **Multi Product** upsell * Click *Edit offer > Upsell products > Enable multi-step upsell* * Click *Add step* Drag and drop a product to the new step Image # Accepting or declining a step A customer begins on the first step of a page. If they decline, they move to the next step. If they decline the final step, they are taken to the next page. If they accept a step, they are directed to the next page where they can consider additional offers. This sequential approach allows customers to potentially accept products across different upsell pages. Image *** # Analytics You can use product-specific analytics to measure the performance of multi-step post-purchase upsells. These can be found under Top performing products on the Aftersell analytics page or in the Product breakdown for an A/B test. An impression for a product in a multi-step upsell is only tracked once that product is shown. For example, if a Green Shirt is in Step 3 but the customer accepts Step 2 and never sees Step 3 then there will be no impression tracked for the Green Shirt. The overall page (e.g., Upsell #1) will track exactly 1 impression even if there are multiple steps. *** # Design ## How to add custom text on each step: To show different text for each step, you can use the step text variables. These variables provide text that can be used in other widgets that will automatically update when the step changes. 1. Click *Step 1 > ... > Show text* and write "`` `{first-name}` ``, grab this deal in the next `` `{timer}` `` minutes!" in *Variable `` `{step-header-A}` ``* 2. Repeat for Step 2 and write "No worries, how about this one instead? (`` `{timer}` ``)" 3. In the Timer widget, replace the text with "`` `{step-header-A}` ``". This will automatically show the text from the current step in the timer and change when the customer goes to the next step. ## Steps with only one product each: To create nice-looking steps with only one product each, you can enable *Edit offer > Upsell products > Layout settings > Spotlight first product*. We recommend also enabling the price breakdown, product reviews, and adding custom text for each product. # Best practices * Any page, including Upsell #1, Upsell #2, or Downsell, can utilize multi-step sequences. You can also combine different formats, such as having a multi-step Upsell #1 and a single-step Upsell #2. However, multi-step functionality is only available for Multi-Product upsells and is not supported for Single Product upsells. * We recommend keeping the number of steps minimal to provide a smooth customer experience. * While Aftersell does not limit the number of steps you can create, there is a cap of 12 products per page. This allows flexibility, such as creating a page with up to 12 steps, each featuring one product, or 4 steps with 3 products each, and so on.- Consider using sequential offer displays to guide customers through a logical progression of complementary products. * Customize your flow design to optimize customer engagement based on your specific product relationships. # Frequently asked questions ## Do customers need to decline one offer to see the next? When using multi-step upsells, customers who decline an offer will automatically move to the next step in the sequence. If they accept an offer, they will move to the next upsell page in your sequence. ## Can customers select more than one product in a single step? No, due to platform restrictions, only one product can be selected per upsell step. This is why the multi-step feature is valuable, it enables customers to potentially select multiple products through a sequential approach. # How to install Rokt Thanks on Tapcart Source: https://docs.aftersell.com/aftersell/how_to_install_rokt_thanks_on_tapcart A Setup Guide for TapCart App Studio ## What is Rokt Thanks? Rokt Thanks displays personalized, non-intrusive offers to your customers on the post-purchase confirmation screen. It's a simple way to generate passive revenue from every order without impacting the customer experience. This guide walks through how to install Rokt Thanks within your TapCart mobile app using a Custom Code Block. The setup takes just a few minutes. ## Before you start You will need the following: * **TapCart Enterprise plan** - Custom Code Blocks are only available on Enterprise. If you're unsure about your plan, check with your TapCart account rep. * **Your Rokt Account ID** - your Aftersell account manager will provide this. If you don't have it yet, just reach out and we'll send it over. ## Step 1: Create a Custom Block Log in to your TapCart dashboard and open the App Studio editor. Create a new Custom Block. ## Step 2: Paste the code snippet In the Custom Block editor, switch to the Dev section. Clear any placeholder code and paste the snippet below: ```jsx theme={"theme":{"light":"snazzy-light","dark":"github-dark"}} import * as React from "react" export default function RoktPlacement({ blockConfig, tapcartData, translations, pageState, useActions, }) { const containerRef = React.useRef(null) React.useEffect(() => { const loadRokt = async () => { try { await new Promise((resolve, reject) => { if (document.getElementById("rokt-launcher")) { resolve() return } const script = document.createElement("script") script.type = "text/javascript" script.src = "https://apps.rokt.com/wsdk/integrations/launcher.js" script.fetchPriority = "high" script.crossOrigin = "anonymous" script.async = true script.id = "rokt-launcher" script.addEventListener("load", () => resolve()) script.addEventListener("error", (error) => reject(error)) document.head.appendChild(script) }) const launcher = await window.Rokt.createLauncher({ accountId: "YOUR_ACCOUNT_ID", sandbox: true, }) await launcher.selectPlacements({ identifier: "TapCart.success", attributes: { email: tapcartData?.customer?.email || "", firstname: tapcartData?.customer?.firstName || "", lastname: tapcartData?.customer?.lastName || "", }, }) } catch (error) { console.error("Rokt SDK failed to load:", error) } } loadRokt() }, []) return
} ``` ### Replace Your Account ID In the snippet above, find the line `accountId: "YOUR_ACCOUNT_ID"` and replace `YOUR_ACCOUNT_ID` with the Account ID provided by your Aftersell account manager. Once updated, save the Custom Block. ## Step 3: Add to your Post Purchase page Navigate to your Post Purchase page in TapCart's visual editor. Drag the Custom Block you just created onto the page and drop it wherever you'd like the offers to appear. ## Step 4: Let us know Once you've completed the steps above, let your Aftersell account manager know. We'll finalize a quick configuration on our end and confirm when everything is live. The snippet is initially set to sandbox mode, which loads test offers so you can preview the placement. Once we've confirmed everything looks good together, we'll switch it to live and you'll start earning revenue. ## Summary | Step | Action | | ---- | --------------------------------------------------------------------------------------------------- | | 1 | Create a Custom Block in TapCart's App Studio editor | | 2 | Paste the code snippet into the Dev section (replace `YOUR_ACCOUNT_ID` with your actual Account ID) | | 3 | Drag the Custom Block onto your Post Purchase page | | 4 | Notify your Aftersell account manager so we can finalize setup | ## Frequently asked questions **Do I need to be on TapCart Enterprise?** Yes. Custom Code Blocks in App Studio require TapCart's Enterprise plan. **Will this slow down my app?** No. The script loads asynchronously and won't block your page from rendering. **Can I choose where the offer appears on the page?** Absolutely. Once the Custom Block is saved, you can drag it to any position on your Post Purchase page using TapCart's visual editor. **What kind of offers will my customers see?** Rokt Thanks serves relevant, non-intrusive offers from premium advertisers tailored to each customer. # How to use direct-to-checkout UTM links Source: https://docs.aftersell.com/aftersell/how_to_use_direct_to_checkout_utm_links Learn how to trigger post-purchase funnels using UTM parameters, including setup for direct-to-checkout links Aftersell supports triggering funnels based on UTM parameters, which is an optional feature specifically intended for advanced use cases. You can configure your funnel to activate when a customer visits your site with a specific UTM query string. This setup is optional and typically required only for advanced tracking needs, such as direct-to-checkout links or campaign-specific offers. ## How UTM triggers work UTM triggers allow you to show specific post-purchase funnels based on UTM parameters in the URL. This is useful for: * **Campaign-specific offers** - Show different upsells based on the marketing campaign * **Direct-to-checkout links** - Trigger funnels when customers skip the storefront * **Channel attribution** - Personalize offers based on traffic source (email, social media, ads) * **A/B testing** - Test different offers for different campaign variations ## Quick start: Basic UTM trigger setup For standard storefront visits (not direct-to-checkout), you can set up UTM triggers using the Aftersell app embed. To see how to quickly get started with UTM triggers, check out this video: