Retail and e-commerce/Cart recovery

Recover the cart while the shopper is still here.

Signals tells your storefront and your messaging tool how much is in a shopper's cart, how long it has sat untouched and how far through checkout they got, so the nudge reaches them during the visit rather than in tomorrow's inbox.

Higher cart conversion

Turn more full carts into orders by nudging the shopper during the visit.

Cart conversion moves when the nudge reaches a shopper who is still on the site. Signals gives your storefront and your messaging tool the value of the cart, how long it has sat untouched, which checkout step the shopper reached and what they have added and taken out this visit. Each one decides whether to show a line, hold an offer back or restore a cart, and when.

Nudge the shopper on the page while the cart sits idle

A shopper has three items in the cart and has spent the last ten minutes in another category without touching it. The recovery email is written for the shopper who has gone, so it waits for the visit to end and lands beside everything else in the inbox. This shopper is still on the site. The nudge belongs in the header, next to the cart, while they can see it.

What Signals knows
cart_value_session
Value of what has been added to the cart this visit
seconds_since_cart_change
Seconds since the cart was last added to or taken from
cart_adds_session
Items added to the cart this visit
What your storefront and messaging tool do

Shows a line beside the cart icon once a cart above the value your team sets has gone untouched for ten minutes, and tells your messaging tool the visit is still going so the recovery email waits.

header.tsx · 14 lines
// In the code that renders the storefront header
const cart = await signals.getServiceAttributes({
  name: "shop_cart_idle",
  attribute_key: "domain_sessionid",
  identifier: sessionId,
});
// { cart_value_session: 142.5, seconds_since_cart_change: 640, cart_adds_session: 3 }

if (cart.cart_adds_session > 0 && cart.cart_value_session >= rules.nudgeAt && cart.seconds_since_cart_change >= 600) {
  header.show({
    beside: "cart",
    text: `${cart.cart_adds_session} items are waiting in your cart`,
  });
}

Try it on your own site.

Add the SDK, define one thing you want to know about a visitor, and watch it update while you click around. The free tier runs on the real engine: no card, no sales call.