Email with products similar to the last added to the cart

Published October 19, 2020
Selected Clients
sharafdg logo

Nowadays, it is important to try not to lose customers even if they don’t make a transaction. One effective solution is to offer them products similar to the ones they have previously viewed. AI algorithms that select similar products based on established characteristics, e.g. brand, model, visual similarity, are useful here. A communication based on these assumptions can help reduce customer churn and increase the total revenue.

Example of use - Electronics Industry


Our customer from the home and electronics industry prepared an email called “abandoned products”.

If the user added a product to the cart, but did not complete the transaction, he would receive an email presenting the product added to the cart along with similar products that were selected and personalized thanks to AI algorithms.

Example email with products similar to the items last added to the cartt
Example email with products similar to the items last added to the cart


  • OR 14,53%
  • CTR 32.9%
  • CTOR 99,7%



In this use case, you will go through the following steps:

  1. Prepare an aggregate.
  2. Prepare AI recommendations.
  3. Prepare the email template.
  4. Configure automation

Prepare an aggregate

  1. Go to Analytics > Aggregates.
  2. To create the appropriate aggregate, choose the Last type.
  3. Select productAddToCart event, and specify the $sku parameter.
`Screenshot presenting AB test`
The aggregate with last product added to the cart
Tip: Similar recommendations which you want to add to the email template have to have context of the product, hence using aggregate which take the product SKU from the add to cart event, you will indicate to what product you want to get similar recommendations. On the other hand, thanks to this you will indicate the product you want to get similar recommendations to.

Prepare AI recommendations

  1. Go to Communication > Recommendations > Add recommendation.
  2. Enter the name of the recommendation (it is only visible on the list of recommendation).
  3. In the Type & Items feed section and click Define.
  4. From the Catalog dropdown list, select a trained product feed.
  5. Select the recommendation type, in our example it will be similar product.
`Screenshot presenting type of recommendation`
Similar AI recommendation
Important: To add AI recommendations in the email template, first you have to prepare an AI recommendation. Choose similar recommendation types and define the number of products you want to show in the email template. You can add additional filters if needed.

Prepare the email template

  1. Go to Communication > Email > Templates.
    1. To create a new template, click Create new.
    2. To create a template out of an existing template, click From template.
  2. Select the template.
  3. Select the wizard:
    1. Drag&drop builder - Create email templates with ready-made components.
    2. Code editor - Create email templates in CSS and HTML.
  4. To add the dynamic part to the email template (last added product to the cart and AI recommendations), you will have to use jinjava and add your own CSS. Let’s look at how to prepare the appropriate jijnava code.
Check the jinja code

    <!-- Opening the tag that retrieves the value from the aggregate prepared in point 1--> 
    {% aggregate a5f787bc3-db2d-3791-bef5-bd027102ca3e %} 
    <!-- Assign an aggregate value to skuValue --> 
    {% set skuValue = aggregate_result[0] %} 
    <!-- Referencing with the help of variable to the snrs-product-ogTag directory built by default from OG tags. The variable names depend on the name of the OG tags on your page --> 
    <div class="wrapper-card"> 
        <h2 style="text-align:center">Product Card</h2> 
        <div class="card"> 
            <img src="{% catalog.Snrs-produktu-ogTag(skuValue).og:image %}" alt="Product image" style="width:100%"> 
            <h1>{% catalog.Snrs-produktu-ogTag(skuValue).product:brand %}</h1> 
            <p class="price">$ {% catalog.Snrs-produktu-ogTag(skuValue).product:price:amount %}</p> 
            <p>{% catalog.Snrs-produktu-ogTag(skuValue).og:title %}</p> 
            <p><button>Add to Cart</button></p> 
    <!-- Adding the skuValue variable to the array for which we will retrieve similar products --> 
    {% set itemContext = [] %} 
    {% do itemContext.append(skuValue) %} 
    <!-- Downloading the similar campaign for the product in the table --> 
    {% recommendations2 campaignId=a7wO36CRGJm6P products=itemContext %} 
        <!-- Iterating loop through the received products --> 
        {% for item in recommended_products2 %} 
        <!-- Listing the attributes assigned to the product in the feed --> 
        <div class="wrapper-card" style="width:25%;float:left"> 
            <h2 style="text-align:center">Product Card</h2> 
            <div class="card"> 
                <img src="{{ item.imageLink }}" alt="Product image" style="width:100%"> 
                <h1>{{ item.brand }}</h1> 
                <p class="price">$ {{ item.priceValue }}</p> 
                <p>{{ item.title }}</p> 
                <p><button>Add to Cart</button></p> 
        {% endfor %} 
    {% endrecommendations2 %} 
    Closing of the tag that gets the value from the aggregate prepared in point 1 --> 
    {% endaggregate %} 

Note: You will find more about email templates in this article.

Create a workflow

To start sending emails to customers you will have to prepare a workflow, which in basic configuration may look like the one below.

  1. Go to Automation > Workflows > New workflow..
  2. On the dashboard, click the plus button to add the first node.
  3. Start the workflow by choosing a trigger. For every user who will add a product to the cart – choose the Profile Event trigger node and select productAddToCart event from the list.
    `Screenshot presenting AB test`
    Profile Event
  4. Confirm the settings by clicking Apply.
  5. Set up time period users will get the message by using the Delay node, here this is 1 day (24 hours).
    `Screenshot presenting AB test`
    Delay node
  6. Use the Profile Filter node, exclude users who have made a transaction in last 24h.
  7. Select trasaction.charge event, mark “not matching”, and select appropriate date range.
    Important: Please note that we use 1440 minutes instead of 1 day – use smaller granulation, as in this case 1 day would take the time from current hour till the midnight, so such an analysis will not take into consideration all necessary users.
    `Screenshot presenting AB test`
    Profile Filter node
  8. Set the Send Email node by selecting the appropriate email account, choosing the template that you prepared in previous step and adding the email subject.
    `Screenshot presenting AB test`
    Send Email node
  9. Add the End nodes where the workflow should finish for users.
  10. Specify capping (here 1 for 1 day).
  11. Optionally add titles to each node so the workflow will be more understandable for your colleagues.
  12. Name the automation and Save it or Save & Run.
`Screenshot presenting AB test`
Configuring the automation

Check the use case set up on the Synerise Demo workspace

Check the aggregate settings directly in Synerise Demo workspace.

You can also find there recommendation and workflow settings.

If you don’t have access to the Synerise Demo workspace, please leave your contact details in this form, and our representative will contact you shortly.

Read more


We are sorry to hear that

Thank you for helping improve out documentation. If you need help or have any questions, please consider contacting support.



Thank you for helping improve out documentation. If you need help or have any questions, please consider contacting support.

Close modal icon Placeholder alt for modal to satisfy link checker