When a shopper abandons their browse, cart, or checkout, Markopolo automatically starts a recovery sequence — a series of messages sent across one or more channels to bring them back. This article explains how sequences are triggered, how they send messages, and when they stop.
How a sequence starts
Markopolo detects abandonment in real time by analyzing the shopper's event stream. A sequence starts automatically when one of these conditions is met:
Campaign type | Trigger condition |
Browse abandonment | Shopper viewed products but never interacted with the cart |
Cart abandonment | Shopper added items to cart but never started checkout |
Checkout abandonment | Shopper started checkout but didn't complete the purchase |
These are mutually exclusive — a shopper can only be in one state at a time. Each campaign type runs independently with its own workflow, channel mix, and timing.
Important: Markopolo does not add any platform-level delay before the first message. The sequence starts as soon as abandonment is detected. If you want a waiting period before the first message — for example, giving the shopper 30 minutes to return on their own — you need to add a delay step as the first step in your workflow.
Channel order and message timing
There is no fixed channel order. You decide the sequence when you build your campaign workflow. Channels can be combined in any order:
Email
SMS
Push notification
Voice AI call
Between each message, you place a delay step to control how long Markopolo waits before sending the next one. Delays can be set in seconds, minutes, hours, or days — there is no platform-enforced minimum or maximum.
A typical workflow might look like:
Wait 30 min → Email → Wait 3 hours → SMS → Wait 1 day → Voice AI call → Exit
You have full control over this structure.
What happens if a channel can't reach the shopper
If Markopolo can't send a message on a particular channel because the shopper's contact information isn't available, that step is skipped and the sequence continues to the next step.
Channel | Required for delivery |
Email address | |
SMS | Phone number |
Voice AI | Phone number |
Push | Push notification token (requires app opt-in) |
There is no automatic rerouting — if a shopper has no phone number, the SMS step is skipped, but Markopolo does not automatically promote the next channel forward. This means your workflow design matters: if you want the best coverage, include multiple channels and let the sequence work through them.
When a sequence stops
Markopolo checks before each step whether the shopper still needs to be contacted. The sequence stops automatically if any of the following is true:
Exit condition | What triggers it |
Purchase completed | Shopper completed a purchase after the sequence started |
Checkout started | Shopper returned and started checkout |
Item added to cart | Shopper added an item to cart after sequence started |
New subscription | Shopper started a new subscription |
Explicit exit step | Your workflow contains an exit step at a specific point |
The purchase check runs before every step — not just once at the start. So if a shopper converts after the first email but before the SMS, the SMS will not send.
Differences between campaign types
All three campaign types run through the same engine. The main difference is what data is available for personalizing messages:
| Browse abandonment | Cart abandonment | Checkout abandonment |
Product data available | No | Yes | Yes |
Personalization (product name, price, image) | Not available | Available | Available |
Separate campaign config | Yes | Yes | Yes |
Because browse abandonment has no cart data, message content for this campaign type should focus on brand re-engagement rather than product-specific reminders.
What you control vs. what's fixed
Setting | Who controls it |
Channel order | You (workflow design) |
Delays between messages | You (delay steps) |
Exit conditions | You (success criteria in campaign settings) |
Number of messages | You (implicit — however many steps are in the workflow) |
Initial trigger delay | You (add a delay as the first step) |
Note: WhatsApp is not yet available as a recovery channel. It will be added in a future release.