Skip to content

How to set up an abandoned cart campaign

Shoppers who add items to a cart and leave without buying are some of the easiest conversions to recover. They’ve already shown intent.

This guide shows how to send them an abandoned cart email in Pushwoosh: fire the PW_AbandonedCart event from your store, show the left-behind items in the email with the Products block, and trigger the send from a Customer Journey.

What is PW_AbandonedCart

Anchor link to

PW_AbandonedCart marks that a user left items in their cart without buying. It is not a built-in default event. It is a shared event name used across Pushwoosh e-commerce integrations so journeys, the Products block, and segments all work the same way.

What happens when you send PW_AbandonedCart

Anchor link to

Sending PW_AbandonedCart does two things on the Pushwoosh side:

  1. It’s recorded like any other custom event, so you can see it in Event statistics and use it in segments.
  2. Pushwoosh stores the cart contents and tags the user with:
    • PW_AbandonedCartID: an identifier for the current cart, used to fetch its contents at send time.
    • PW_AbandonedCartDate: the abandonedDate value from the event payload.

What happens when you send PW_OrderCreated

Anchor link to

When the shopper places an order, send PW_OrderCreated (or PW_OrderUpdated). Pushwoosh clears PW_AbandonedCartID and PW_AbandonedCartDate for that user right away. It does not match orderId values: any order from the user removes both tags, even if the purchase was for a different cart.

Example: A shopper abandons cart ORDER-100, then buys ORDER-200 before the reminder goes out. Pushwoosh clears the tags, so they won’t get a reminder about ORDER-100.

How to send abandoned cart reminders

Anchor link to

Follow these steps to create the events, send them from your store, build the email, and launch the Customer Journey.

Create the events in your Control Panel

Anchor link to
  1. Go to Audience → Events in your Pushwoosh Control Panel and click Create Event.

  2. Create a custom event named PW_AbandonedCart with these attributes:

    AttributeType
    emailstring
    orderIdstring
    customerIdstring
    orderUrlstring
    abandonedDatedate
    createdDatedate
    totalPricedecimal (price)
    shippingAmountdecimal (price)
    taxAmountdecimal (price)
    discountAmountdecimal (price)
    currencystring
  3. Repeat for PW_OrderCreated with a single orderId attribute.

Learn more about creating custom events.

Send the events from your backend

Anchor link to

Ask your development team to call postEvent whenever a cart is abandoned, using this attribute schema:

{
"request": {
"hwid": "8f65b16df378e7a6bece9614e1530fb2",
"application": "XXXXX-XXXXX",
"event": "PW_AbandonedCart",
"attributes": {
"email": "shopper@example.com",
"orderId": "ORDER-10293",
"customerId": "CUST-4471",
"orderUrl": "https://yourstore.com/cart/restore/ORDER-10293",
"abandonedDate": "2026-07-28T10:15:00Z",
"createdDate": "2026-07-28T09:40:00Z",
"totalPrice": 129.90,
"shippingAmount": 9.90,
"taxAmount": 0,
"discountAmount": 0,
"currency": "USD",
"items": [
{
"productId": "SKU-4821",
"name": "Wireless headphones",
"quantity": 1,
"price": 119.90,
"sku": "SKU-4821",
"description": "Over-ear, noise-cancelling",
"imageUrl": "https://yourstore.com/media/sku-4821.jpg",
"productUrl": "https://yourstore.com/products/sku-4821",
"category": "Audio"
}
]
},
"userId": "shopper@example.com"
}
}

When the cart converts into an order, send PW_OrderCreated with just the orderId to clear the cart tags:

{
"request": {
"hwid": "8f65b16df378e7a6bece9614e1530fb2",
"application": "XXXXX-XXXXX",
"event": "PW_OrderCreated",
"attributes": {
"orderId": "ORDER-10293"
},
"userId": "shopper@example.com"
}
}

Add a Products block to your email

Anchor link to
  1. Open the email content editor and add a Products block to the canvas.
  2. In the settings panel, set Source to Cart.
  1. Set Max products shown to limit how many cart items appear in the email.
Products block settings with Source set to Cart and Max products shown
  1. Style the grid and card template as needed. See Style the grid.
Products block on the email canvas with card template and grid style settings

When the email sends, the Products block looks up each recipient’s stored cart using their PW_AbandonedCartID tag. It then fills the block with the current cart items: image, title, price, and a link back to the cart. The layout comes from the card template you set in the editor. Recipients without that tag (nothing abandoned, or already ordered) skip the block instead of showing empty content, so it’s safe to use in a broader campaign too.

Build the Customer Journey

Anchor link to
  1. Add a Trigger-based Entry using the PW_AbandonedCart event.
  2. Add a Wait for Trigger step. Set its waiting period to an hour or two. Name the branch Order placed and add the PW_OrderCreated event to it.
  1. Route the Order placed branch to Exit. The user already bought, so don’t remind them.
  2. Route the Not triggered branch to the Email step. Save the email you built in Add a Products block to your email as email content, then select it as this step’s content.
Customer Journey canvas with Trigger-based Entry, Wait for Trigger with Order placed and Not triggered branches, Email and Exit steps, and no Time Delay

Test before you launch

Anchor link to
  1. Send a test PW_AbandonedCart event for a test device. Don’t set the PW_AbandonedCartID tag manually: the Products block loads cart contents from the stored cart that the event creates, not from the tag value. Without a real event, the block renders empty.
  2. Preview the email and confirm the layout and product content before sending to real shoppers.