How to Drive Upsells Through Recommendations


Upselling related items is a great way to improve retention and customer lifetime value (CLV). There are several examples of high converting upsells across industries:

  • Screen protectors and covers after purchasing a phone
  • Meals and cab booking after purchasing a flight ticket
  • Extended warranty or installation after purchasing an electronic gadget
  • Add-on plans after purchasing an insurance policy

In this article, we will learn how to leverage MoEngage Recommendations to recommend the right product to upsell at the right time. We follow the steps below to achieve this use case:

  • Create a Recommendation with "Similar items" model.
  • Create a Flow with "Product Purchased" as the entry criteria.
  • Send a Push Notification with the recommended product.

Desired Result

The following is a Push Notification users receive on their phones, with recommendations of a related product:




  • Events to track the action of a user searching for products, adding a product to the cart or adding a product to wishlist, completing the purchase and each action’s related information such as the platform, product name, category, brand, price. To understand how to track events, refer to the Developer Guide. Note that the steps might differ based on the SDK being used.
  • Mapping of the above tracked events to the concerned MoEngage events. This mapping helps us in understanding the action and thus run our recommendation models and in querying models to create an expected output. For more information, refer to Map User Actions Settings. For our example, the custom event of searching for a product or viewing a product will be mapped to "Product Viewed" and the custom event of completing a purchase will be mapped to "Product Purchased".
  • A catalog and a respective feed that have a list of available products and all related information about the same such as the title, category, brand, and price. Set the feed to refresh at a suitable interval so that the latest information can be maintained. For more information, refer to Catalogs.
  • Settings for one or more than one channels such as Push, Email, SMS, or WhatsApp.

Create a Recommendation

In this section, let us create a recommendation based on the users action.

  1. Navigate to the MoEngage Dashboard and select Content > Recommendations from the left navigation. The Recommendations page is displayed. For more information, refer to Creating User Action Recommendations.
  2. At the top right corner, click + Create recommendation. It takes you to the first step "Select recommendation model".
  3. Under Predictive, click the Frequently bought together items card. This is suitable for our use case because this model considers the previous purchases of the user and takes the help of SHERPA AI to predict what other products would the same user prefer.
  4. Click Next. It takes you to the second step "Create recommendation". Enter the following details:
    • Recommendation name: Enter a name for the recommendation. For example, "BroughtTogetherItems". This will be the name through which you will refer the output of this recommendation model.
    • Recommendation description: Enter a description for the recommendation. This description will help you understand what the model is aimed at.
    • Catalog: Select the catalog that has all the list of products offered by you with all the related information.
  5. Select the action on which the recommendation model must generate suggestions. In our use case, select “Product Purchased” here because the event of a user watching a content is mapped to this MoEngage defined event. You can change or check the mapped user actions from the Map user action button in this section.
  6. Click Create to save the changes and run the model.
    Please note that this will take 24 hours. You can find the status of the model on the Recommendations home page.

    The Recommendation engine shares the set of products a user might prefer based on their previous purchase.

Now that we created the recommendation, let us create our Flows to nudge people about related product.

Create a Flow

In this section, let us create a Flow to nudge your customers to recommend the right product to upsell at the right time.

Add Flow Details

  1. Navigate to the sidebar on the left and click Engage > Flows and click + Create flow, or click + Create new, and then click Flow.
  2. Click + Start with a blank canvas. You are taken to the first step “Details and goals”.
  3. Enter the following flow details:
    • Flow Name: Enter a flow name. For example, "Recommend Products".
    • Flow tags: Select the required flow tags.
  4. Under the Conversion goal section, turn the Exit on conversion toggle on to exit users who convert by doing the event "Product Purchased". This is your primary conversion goal, which triggers when a user purchases a product.
  5. Click Next to move the second step “When will users enter the flow”. This step helps you define when to allow the user by mentioning the trigger conditions. For our example, the event can be “Product Purchased”.
  6. In the IF user section, select the event “Product Purchased”, which gets triggered when a user purchases a product.
  7. In the Flow Schedule section, define a start time and an end time to the flow if required. By default, the flow will start “As soon as possible” and will never end.
  8. Turn the Limit user entry into this flow toggle on to define the maximum time a user can enter the flow. Defining such limits helps you control users from re-entering the flow repeatedly and thus avoid spamming them too much, which in turn provides a better user experience.
  9. Click Next to move to the third step “Who will enter the flow”. This is where you select the target audience and control groups for your Flow.
  10. In the Audience section, select All users.
  11. Click Next to move to the canvas section where you can define the Flow structure that you want the user to move through.

Define Flow Structure

  1. Click the + icon. A drawer is displayed from where you can choose an action campaign from the range of options under Actions including Push, Email, SMS, or WhatsApp to send a message. You can also display a banner on the On-site or In-app channel, or use Facebook or Google remarketing.
    For this example, let us add a Push action and explain how to use the recommendation predicted by SHERPA of MoEngage in Flows.
  2. Click Push to add a stage. Hover your mouse on the stage and click the edit icon to start defining the stage.
  3. Enter the campaign name. For example, "Recommend Product".
  4. Select the platforms you like to target. For this example, select Android alone.
  5. Select a template as per your wish. For this example, select Basic notification.
  6. Entering the required content. You can add a title or generate it using Merlin AI. For more information, refer to Generate Push Messages with Merlin AI.
  7. While defining the message, select the product set that is generated through the recommendation that you defined. Enter “@” and search for “BroughtTogetherItems”, the name of the recommendation that you built, in the Push Personalization pop-up.
  8. Click Done. The following JINJA code is inserted in the Message field:
  9. Edit the code to run a loop through each product and list down the first suggestion because the highly confident suggestions come first from the Recommendation engine. The higher the confidence the topper the product will be in the list. The final JINJA code looks as follows:
    {% if ProductSet.BroughtTogetherItems%}
    {% for product in ProductSet.BroughtTogetherItems[0:1]%}
    {{product.product_name}} at {{product.price}}
    {% endfor %}
    {% else %}
    {% endif %}
    In line 2, the loop does only one iteration using the “[0:1]” part in the query. If you want to suggest top 3, you can change the same to “[0:3]” and so on. The {{product.product_name}} element in line 3 prints the name of the suggested product. For more information, refer to MoEngage Templating Language (JINJA).
  10. Enter the following code to get the image of the product selected above:
    {% if ProductSet.BroughtTogetherItems%}
    {% for product in ProductSet.BroughtTogetherItems[0:1]%}
    {% endfor %}
    {% else %}
    {% endif %}
  11. Add a deeplink to the PN by mentioning the URL that will directly take them to the mentioned product’s page or home screen of the app. This reduces the possibility of a user dropping off before finding the suggested content. For the former, the following is the JINJA code:
    {% if ProductSet.BroughtTogetherItems%}
    {% for product in ProductSet.BroughtTogetherItems[0:1]%}
    {% endfor %}
    {% else %}
    {% endif %}
  12. If you have additional information about the users such as their name and gender, use the same to personalize the message while editing your action campaign. Also, including such details helps making the message more contextual and thereby increasing the chance of making the user feel connected and purchase the product. For more information, refer to Personalization in Flows.
  13. Click Done to save your changes.
  14. After defining an Action campaign, add a Has done event stage to check if the user has converted by choosing the "Product Purchased" event from the drop-down list or any other goal of yours.
  15. Turn the Keep evaluating for the next toggle on to define the maximum time to wait for the user to execute the event. You can select any time limit that you deem fit.
  16. Add as many action campaigns you want to nudge the user. Make sure to have some gap between any two communications to avoid spamming the user by using a Wait stage, especially in the Yes path of your “Has done events”. For more information, refer to Add Controls to Flow.
  17. Click Publish.


In this use case, we leveraged MoEngage Recommendations to recommend the right product to upsell at the right time. We created a Flow with "Product Purchased" as the entry criteria and sent a Push Notification with the recommended product.

Now that we have published the campaign for our use case using Recommendations, we can check out other possibilities of MoEngage’s Recommendations.

Was this article helpful?
0 out of 0 found this helpful

How can we improve this article?