Sending abandoned cart emails is one of the best ways to connect with your customers using relevant messaging that keeps purchasers engaged and buying.
Topics covered in this article:
It usually takes about 2 emails to see success with purchasers who abandoned their online shopping cart. For the best results, consider this approach:
- Your first message should be a polite/customer service oriented message reminding the purchaser of the items in their cart.
- Your second message should follow if you continue to have no response, there should be more of a “last chance” message that creates a sense of urgency.
Considerations for abandoned cart email content:
- Don’t forget personalization.
- Echo the cart visually, make the email look like their cart, it reminds them of their experience on the site.
- Show shipping (if applicable) and complete total.
- Show payment options.
We’ve put together a how-to guide for Tessitura users to create List Manager lists for abandoned cart Triggered Campaigns. Follow the steps in this post to get started. If you need additional help, feel free to email us or contact Tessitura Support for expert advice.
While it is relatively easy to identify abandoned carts, it is more difficult to define an output set that returns data associated with those abandoned carts. However, by using a combination of a local data table in Tessitura and a scheduled job to populate it, you can create simple List Manager Lists and Output sets for even the most complex scenarios.
What to keep in mind:
- The list will return unique customers with abandoned carts. Each customer could have more than one abandoned cart. Referencing specific cart contents will add complexity.
- Only carts associated with customers who have logged in can be targeted. Carts associated with anonymous login cannot be tied to a specific customer.
FINDING ABANDONED CARTS
The following sql finds customers with an abandoned cart created within the last day. An abandoned cart is defined as a cart where there is no order associated with the cart and no other order has been created by the customer after the cart was created.
select distinct customer.customer_no
from t_customer customer (NOLOCK)
join dbo.T_WEB_ORDER cart (NOLOCK)
on customer.customer_no = cart.customer_no
left outer join dbo.T_ORDER cart_order (NOLOCK)
on cart.order_no = cart_order.order_no
left outer join dbo.T_ORDER customer_order (NOLOCK)
on customer.customer_no = customer_order.customer_no and customer_order.order_dt > cart.order_dt
where (cart_order.order_no is null)
and (customer_order.order_no is null)
and (cart.order_dt >= DateAdd(dd,-1,Convert(varchar,GetDate(),112)+' 23:59:59'))
To reliably return data associated with the abandoned cart, the process of identifying abandoned carts and the process of defining the associated data need to be coordinated. The constraints on the type of sql that can be used in List Manager make it difficult to accomplish this within the List itself. Essentially, you can only read data; you cannot write it. However, there is a relatively simple approach that overcomes these constraints.
LOCAL DATA APPROACH
The local data approach uses a scheduled job to populate local data, rather than relying on the List Manager list generation to do so. With a scheduled job there are no constraints on the type of sql you can use. This means your scheduled job can execute a stored procedure which coordinates the entire process for identifying customers with abandoned carts and associating appropriate data with those customers. All of the complexity is kept within the stored procedure.
Here’s how it works. On a regularly scheduled basis, a Sql Server Agent job executes the abandoned cart stored procedure. This procedure contains all the logic for defining abandoned carts and populating the abandoned cart table with all of the customer and associated data needed in the output set. The list criteria and output set then simply return customers and data from abandoned cart table.
LOCAL DATA OBJECTS
The AbandonedCartLocalDataObjects.sql script creates the following local data objects:
-LT_WF_ABANDONED_CART table stores abandoned cart data. This table will store the customers with abandoned carts as well as any data needed in the output set.
-LP_WF_ABANDONED_CART procedure populates LT_WF_ABANDONED_CART with abandoned cart data.
-LFT_WF_ABANDONED_CART table function returns customers from the abandoned cart table. The List Manager list runs this function as its criteria.
Creating scheduled jobs through Sql Server Agent is easy. Jobs can execute any sql server task at any time. In this case, a job should be set up that executes LP_WF_ABANDONED_CART procedure once a day to keep LT_WF_ABANDONED_CART data current.
Here are the steps for setting this up:
1. Run the AbandonedCartLocalDataObjects.sql script to create local data objects;
2. Run the AbandonedCartScheduledJob.sql script to create the scheduled job;
3. Modify the AbandonedCart job in Sql Server Agent to set the appropriate schedule (see screen shot below);
4. Register LT_WF_ABANDONED_CART table with Query Builder so that it can be used when building output sets;
5. Create List Manger list that simply selects from the LFT_WF_ABANDONED_CART function (see screen shot below);
6. Create Output Set that returns data from LT_WF_ABANDONED_CART table.
ABANDONED CART SCHEDULED JOB
ABANDONED CART LIST MANGER LIST CRITERA