Shopping cart activity
Send shopping cart abandonment or purchased emails using Acoustic Exchange and Acoustic Campaign
A common use case for retailers is to send cart abandonment and purchase emails. When a cart abandonment event occurs, emails remind consumers that they left items in their shopping cart. The most successful campaigns incorporate personalized messages such as photos and descriptions of the abandoned items or creative for similar/related items. And, when a purchase event occurs, emails are sent for purchase confirmation.
Historically, cart abandonment campaigns have been accomplished using feeds from web analytics or e-commerce partners that contain the abandon events and the cart items. These feeds are typically nightly batches containing cart abandonment and purchase events. Cart abandonment emails are then sent the next day or a specific number of days after the abandonment to individuals who have not purchased.
Retailers are increasingly interested in having more control over the timing of the messages. Specifically, retailers have requested the ability to trigger immediate messages for real-time cart abandonment scenarios where a consumer may complete their purchase with a competitor in a short time frame.
A common example is travel bookings where a visitor may abandon a flight, car rental, or hotel reservation, and book somewhere else within minutes. The retailer must attempt to recover the cart quickly before that visitor books elsewhere.
Acoustic Marketing Cloud provides an ability to capture abandonment and purchase activities in real-time and take appropriate action on it.
Setup
To make all the steps work, it is assumed that the retailer or their e-commerce partner can identify when a cart is abandoned and communicate this via one or more API calls to the Acoustic Marketing Cloud. It is also assumed that the retailer is tracking whether the consumer has purchased.
In some cases, the consumer is registered and already has a contact record in Acoustic Campaign. However, a new contact must be added to Engage. Contacts can be added during the registration process or during the process that sends abandonment emails.
The steps
Acoustic Exchange configuration
- Verify access to Acoustic Exchange and Acoustic Campaign accounts
- Verify the Acoustic Campaign endpoint is available in the Acoustic Exchange account
Tip: Make sure to increase the count of allowed relational tables. A customer may have maxed out the number of relational tables in their Campaign account - In Acoustic Exchange, create a source endpoint
- Register following event types for your source endpoint
- ibmcartAbandonment
- ibmcartAbandonmentItem
- ibmcartPurchase
- ibmcartPurchaseItem
- ibmproductView
- ibmBrowseAbandonment
- ibmBrowseAbandonmentItem
- Create a subscription from the source endpoint to Acoustic Campaign as the destination endpoint
Acoustic Campaign configuration
- In Acoustic Campaign, create a relational table (See Appendix for table schema)
- Create a relational table query to pull results for your mailing personalization
Example: Your query criteria could be 'activityType' and 'cartDate' to narrow the results for mailing personalization with possible additional filters such as order by and max row returned. - Create a mailing template that includes a relational table query to display abandoned or purchased content
- In Campaign, create a program
- Contact Source could be the main database
- Add contacts to the program when an event occurs (e.g. Abandoned Cart, Purchased Cart, etc.)
- Enable participants to reenter the program on an 'X'-day internal to reenter the same day when qualified for the same event
- Add a single step to the program and configure the previously created mailing template
- Add an end track to the step so program participants can reenter the program, if needed.
- Note: Advanced program users can add additional steps or tracks to expand the use case
Exchange Publisher Endpoint
Develop a mechanism to post 'ibmabandonedCart' and 'ibmabandonedCartItem' events to the Acoustic Exchange source endpoint. (See Appendix for sample payload)
Example: Activity flow for shopping cart abandonment
- Consumer abandons a cart
- Retailer system recognizes a cart abandonment event
- Retailer system imposes the pre-configured delay
Example: 2 hours after event occurred - Retailer system posts events to Acoustic Exchange
When available, an email address with the consumer's consent status should be included in the event submission - Acoustic Exchange creates/updates contact in Acoustic Campaign if they do not exist
- Acoustic Exchange adds abandoned items with product details and abandon date to relational table in Engage
- Acoustic Exchange adds *Commerce - Abandoned a Cart8 behavior to contact in Acoustic Campaign
- The contact is added to the program based on the event entry criteria
- Acoustic Campaign sends the mailing
- Consumer receives a personalized cart abandonment email
Appendix
The following table displays the relational table schema in Acoustic Campaign for shopping cart activities
Relational table field name | Type | Description |
---|---|---|
cartId (key) | Text | ID of the cart |
itemId (key) | Numeric | ID of the item in the cart |
cartDate | Date time | Date of the activity on the cart |
activityType | Text | Abandoned or purchased |
Text | Email address (Joined with the database) | |
itemCategory | Text | Category of the item |
itemProductId | Text | Product ID |
itemProductName | Text | Product name |
itemDescription | Text | Product description |
itemColor | Text | Product color |
itemSize | Text | Product size |
productURL | Text | Product URL |
productImageURL | Text | Product image URL |
itemQuantity | Numeric | Quantity of the item in the cart |
itemBasePrice | Numeric | Product base price |
This sample payload would result in sending 1 event and add 1 row to the relational table in Acoustic Campaign
Note
ibmcartAbandonmentItem
is a sub-event ofibmcartAbandonment
meaning you cannot submit just an abandoned item event without submitting the parent cart abandon event.
{
"channel": "Web",
"identifiers": [
{
"name": "Email",
"value": "[email protected]"
}
],
"events": [
{
"code": "ibmcartAbandonment",
"timestamp": "2019-10-20T15:08:09Z",
"channel": "Web",
"attributes": [
//Optional if this event will be creating a new Email consent record within Engage marketing db
{
"name": "contactConsent",
"value": "email, opt-in"
},
{
"name": "eventName",
"value": "Cart Abandonment"
}, {
"name": "description",
"value": "Description"
},
{
"name": "orderTotal",
"value": "99.99"
},
{
"name": "campaignName",
"value": "Black Friday"
},
{
"name": "quantity",
"value": "1"
}
]
},
{
"code": "ibmcartAbandonmentItem",
"timestamp": "2019-10-20T15:08:09Z", //Populates cartDate in RT
"attributes": [
//Populates cartId in RT. itemId is calculated by UBX based on the number of items submitted in the event(i.e. batch event submission of 2 events would equal 2 rows added to the RT) If only 1 ibmcartAbandonmentItem is submitted in an event, UBX calculates for this cartId, itemId will be equal to 1.
{
"name": "orderId",
"value": "004"
},
//Populates itemCategory in RT
{
"name": "category",
"value": "Entertainment"
},
//Populates itemProductId in RT
{
"name": "productID",
"value": "xyz-ps4"
},
//Populates itemProductName in RT
{
"name": "productName",
"value": "Playstation 4"
},
//Populates itemDescription in RT
{
"name": "description",
"value": "This is a video game console developed by Sony."
},
//Populates itemColor in RT
{
"name": "color",
"value": "Black"
},
//Populates itemSize in RT
{
"name": "size",
"value": "500GB"
},
//Populates productURL in RT
{
"name": "productURL",
"value": "https://www.playstation.com/en-us/explore/ps4/"
},
//Populates productImageURL in RT
{
"name": "imageURL",
"value": "https://en.wikipedia.org/wiki/PlayStation_4#/media/File:PS4-Console-wDS4.jpg"
},
//Populates itemQuantity in RT
{
"name": "quantity",
"value": "1"
},
//Populates itemBasePrice in RT
{
"name": "basePrice",
"value": "399.99"
}
]
}
]
}
Updated over 1 year ago