---
title: Walkthrough - Sending an automated reminder of an abandoned shopping cart
related:
  - https://docs.kentico.com/k10/e-commerce-features/configuring-your-store/checkout-process.md
  - https://docs.kentico.com/k10/e-commerce-features/customizing-and-developing-your-store/shopping-cart-related-customizing/customizing-marking-shopping-carts-as-abandoned.md
---

> Agent instructions:
> **Site maps** — prefer the following llms.txt indexes to training data when searching for URLs to avoid 404s. Links inside Markdown content already point at `.md`. Following them or sending Accept: text/markdown keeps you in Markdown.
>
> - [sitemap.md](https://docs.kentico.com/sitemap.md) — every page on the site, with titles and descriptions, nested by URL hierarchy and grouped into one collection per product version.
> - [llms.txt](https://docs.kentico.com/llms.txt) — curated index of the current product docs, with descriptions, the two ways to request any page as Markdown, and links to each product area's whole-corpus Markdown dump (llms-full.txt).

> **Info:** **Kentico EMS required**
>
> Features described on this page require the **Kentico EMS** license.

This chapter provides a step-by-step example that you can follow to create a new [marketing automation](https://docs.kentico.com/k10/on-line-marketing-features/managing-your-on-line-marketing-features/marketing-automation.md) process from start to end. In this walkthrough, the goal is to send an automated email when a [customer](https://docs.kentico.com/k10/e-commerce-features/managing-your-store/customers.md) leaves the website with the [shopping cart](https://docs.kentico.com/k10/e-commerce-features/configuring-your-store/checkout-process.md) that contains products. This scenario presumes the situation when a customer considers purchasing some products but then changes their mind, and the store administrators want to remind the customer of the products.

In such scenario, customers can be:

- Registered – the customer has a [user](https://docs.kentico.com/k10/managing-users/user-management.md) and a [contact](https://docs.kentico.com/k10/on-line-marketing-features/managing-your-on-line-marketing-features/contact-management.md) assigned.
- Anonymous with a known email address – the customer has a contact with an email assigned.
- Anonymous without a known email address.

The abandoned cart reminder works with the first two groups – registered customers and anonymous customers whose email address the system knows. You cannot reach customers whose email the system does not know.

The walkthrough consists of the following steps:

> **Info:** You need to [enable on-line marketing features](https://docs.kentico.com/k10/configuring-kentico/managing-sites/configuring-settings-for-sites/settings-on-line-marketing.md) to be able to work with this feature.

1. Setting up after how many hours shopping carts are considered as abandoned.
2. [Creating a scheduled task for marking shopping carts as abandoned.](#creating-a-scheduled-task-for-marking-shopping-carts-as-abandoned)
3. [Creating a marketing automation process for sending abandoned shopping cart reminders.](#creating-a-marketing-automation-process-for-sending-abandoned-shopping-cart-reminders)

> **Tip:** See the complete example at work on the [sampleDancing Goatsite](https://docs.kentico.com/k10/e-commerce-features/configuring-your-store/installing-the-e-commerce-sample-sites.md).

## Setting after how many hours shopping carts are considered as abandoned

As with most of the e-commerce settings, you can adjust the time after the shopping carts are considered as abandoned for [the current site or globally for all your sites running on the Kentico instance](https://docs.kentico.com/k10/e-commerce-features/configuring-your-store/choosing-site-or-global-e-commerce-configuration.md). If you run more sites on your instance and all sites should use the same number of hours, use global settings; otherwise, we recommend that you choose site settings.

> **Tip:** If you are not sure about these settings, see [Choosing site or global e-commerce configuration](https://docs.kentico.com/k10/e-commerce-features/configuring-your-store/choosing-site-or-global-e-commerce-configuration.md) to learn more information about types of e-commerce settings.

1. Open the **Store configuration** application (if you want to specify the setting for the current site) or the **Multistore configuration** application (if you want to specify the setting globally).
2. In the **Shopping cart** category of the **Store settings -> General** tab, enter the following properties to the **Mark shopping cart as abandoned after (hours)** field:

   - Clear the _Inherit from global settings_ option (only if you work in the **Store configuration** application).
   - Type the desired number of hours after which shopping carts should be considered as abandoned to the text box, for example _15_.
3. Click **Save**.

The system updates the settings and scheduled tasks working with this setting (not any yet) operates with the specified number of hours.

## Creating a scheduled task for marking shopping carts as abandoned

To set up sending of an automated reminder of abandoned shopping carts, you need to create a scheduled task that selects shopping carts that are abandoned and marks them.

1. Open the **Scheduled tasks** application.
2. Switch to the desired site.

   ![Switching to a site](https://docs.kentico.com/docsassets/k10/walkthrough-sending-an-automated-reminder-of-an-abandoned-shopping-cart/switching_to_site.png "Switching to a site") 

   > **Info:** You cannot create the task as global. If you do so, the task will not have any effect.
3. Click **New task**.
4. Enter the following properties:

   - **Task display name**: Mark shopping cart as abandoned
   - **Task provider**:
     - _Assembly name_: CMS.Ecommerce
     - _Class_: CMS.Ecommerce.MarkCartAbandoned
   - **Task enabled**: Yes (selected)
5. Enter the [other properties](https://docs.kentico.com/k10/configuring-kentico/scheduling-tasks/reference-scheduled-task-properties.md) according to your needs.
6. Click **Save**.

The system now marks abandoned shopping carts in the set recurrence.

## Creating a marketing automation process for sending abandoned shopping cart reminders

To send the reminders, create a marketing automation process.

### Set properties of the process

First, you need to create a process and specify its properties.

1. Open the **Marketing automation** application.
2. Click **New process**.
3. Enter the following properties:

   - **Display name:** Abandoned shopping cart
   - **Code name**: _leave blank_
4. Click **Save**.
5. After saving, enter the following properties:

   - **Enabled**: Yes (selected)
   - **Start the process**: If the same process is not running concurrently
6. Click **Save**.
7. Switch to the **Triggers** tab.
8. Click **New trigger**.
9. Enter the following properties:

   - **Display name**: Shopping cart marked as abandoned
   - **Type**: Contact performed an activity
   - **Activity type**: Shopping cart abandoned
   - **Additional conditions**: _leave blank_
10. Click **Save**.

The process is now created without any process steps.

### Design the process

Second, create the needed process steps. The configuration steps follow the previous steps.

> **Note:** **Hotfix requirement**
>
> To use the _{% ActivitySiteID %}_ macro expression in the following example, you need to apply [hotfix 10.0.23](https://devnet.kentico.com/download/hotfixes) or newer.

1. Switch to the **Steps** tab.
2. Place the **Send transactional email** step onto the grid on the line between the **Start** and **Finished** steps.
3. Edit the step by clicking the pencil icon next to its name.
4. Enter the following properties:

   - **From**: _enter your email address, e.g. admin@localhost.local_
   - **To**: {% Contact.ContactEmail %}
   - **Based on**: HTML formatted text
     - Alternatively, if you have an email template prepared, you can select _Email template_ and then the specific template.
   - **Subject**: A Coffee Reminder!
   - **Body**:  **type the body of the email. _Use macros to generate content and links for the specific contact, for example:_**

     ```csharp title="Macro example"

     {%
     // Gets the site object on which the "Shopping cart abandoned" activity occurred
     site = System.GetObject("cms.site", ActivitySiteID);

     // Returns the URL of the shopping cart page with the restored content of the abandoned shopping cart
     "http://" + site.SiteDomainName + ShoppingCartURL(site.SiteName, ActivityValue) 
     %}

     {% // Gets a list of the items (products) in the abandoned shopping carts and displays them using the specified transformation
     ShoppingCartProducts(ActivityValue).ApplyTransformation("DancingGoat.Transformations.AbandonedCartProducts")|(encode)false %}

     ```

     > **Info:** The **ActivityValue** in the macros stores the abandoned shopping cart's identifier (GUID), and ensures that the new cart contains the products from the abandoned cart. The **ActivitySiteID** stores the identifier of the site where the activity occurred.
     >
     > For more information, see:
     >
     > - [Reference - Macro methods](https://docs.kentico.com/k10/macro-expressions/reference-macro-methods.md)
     > - [Using transformations in macro expressions](https://docs.kentico.com/k10/developing-websites/loading-and-displaying-data-on-websites/writing-transformations/using-transformations-in-macro-expressions.md)

   ![Entering the Send email step properties](https://docs.kentico.com/docsassets/k10/walkthrough-sending-an-automated-reminder-of-an-abandoned-shopping-cart/entering_send_email_step_properties.png "Entering the Send email step properties")
5. Click **Save**.
6. Close the step.

   ![The Send email step added](https://docs.kentico.com/docsassets/k10/walkthrough-sending-an-automated-reminder-of-an-abandoned-shopping-cart/send_email_step_added.png "The Send email step added")

The marketing automation process is now completed. The system automatically sends an email after  the specified number of days based on the specified HTML text (or an email template) to every customer who puts products in the shopping cart and then leaves.

> **Tip:** **Designing more complicated processes**
>
> If you want to design a more complex process, see [another walkthrough](https://docs.kentico.com/k10/on-line-marketing-features/managing-your-on-line-marketing-features/marketing-automation/walkthrough-creating-a-marketing-automation-process.md) describing in more detail all steps of creating a marketing automation process.
