Skip to content
flowpeek
flowpeek
Try free for 30 daysBook a demo(30 minutes online, opens in a new tab)

30 days for PLN 0 · first payment after the trial · cancel anytime

flowpeekresources / guides / Automations

Abandoned cart automation, step by step

You'll build a cart scenario, tell it apart from pre-cart intent, and check tagging and how communication ends after a purchase.

14 min readUpdated: AutomationsAdvanced

Short answer

The key answer

Start with the add-to-cart event, wait for a set time and check whether a purchase has occurred. Flowpeek picks the next step based on the result of that check. For example, it can add a label — a tag — to a recognized contact in GetResponse. You set up the follow-up message in your messaging platform. Before acting, Flowpeek checks the contact and consent again.

  • The right scenario for the stage: pre-cart, cart or purchase
  • Checking the contact, consent, delay and target tag
  • Testing how the process ends, not just how contacts enter the automation

Key terms in plain language

Trigger
The signal that starts a workflow, e.g. adding a product to the cart.
Condition
A question the system answers with “yes” or “no”, e.g. “has the customer already bought?”.
Tag
A contact label. It can help select message recipients in the connected tool.

1. Decide when you consider a cart abandoned.

Adding a product to the cart signals interest, but it doesn't mean the shopping is over. The customer may be comparing offers, come back later or buy in the same visit. That's why you need a process definition: which event triggers the scenario, how long you wait and which purchase rules out any further action.

The Flowpeek template starts after an add-to-cart, waits three hours and then checks for a recorded purchase event by that visitor in the last 24 hours. These parameters are a starting point for configuration. The condition doesn't confirm that the order was paid, that exactly the abandoned products were bought, or that the purchase happened after that specific add-to-cart. Adjust the logic to the goal of your communication.

Plan pre-cart actions separately. They can be triggered by viewing a listing or by a Flowpredict score, without a product being added first. If you want to exclude recorded carts, use the product interest condition: any product, add to cart, at least one, selected period — and take the "NO" branch. Check for the absence of a purchase separately. One label for every stage makes it hard to match the message.

1. Decide when you consider a cart abandoned.
Observed situationWhere to direct the check
Profile 40, no cartThis is the pre-cart stage, but a score of 40 doesn't meet the example threshold of ML ≥ 70.
Profile 71, cart, anonymous visitorThere's a cart signal. A contact action still requires recognition and the other conditions.
Profile 95, cart and order formCheck the cart or high-intent scenario and the absence of a purchase.
Purchase recordedCheck that earlier communication has ended and the right tag has been removed.

2. Lay out the four elements of the scenario.

The trigger answers the question "when to start." The delay gives the customer time to finish the purchase naturally. The condition checks the situation once that time has passed. The action passes the result to the connected tool. Separating these steps helps you avoid a message sent the instant someone clicks the cart.

In the available GetResponse template, the no-purchase branch adds the tag porzucony_koszyk (abandoned cart) and increases the contact's score by 10. The purchase branch adds the tag kupil_po_koszyku (bought after cart). The tag name is the scenario's label; the condition actually checked still covers the last 24 hours. The label and score help you choose a group of contacts and trigger further rules in GetResponse. Running these actions alone doesn't mean a message is sent.

The screenshot shows a variant of this process: the wait has been shortened to 30 minutes, and both branches end by adding a tag. The "YES" branch gets kupil_po_koszyku and the "NO" branch gets porzucony_koszyk. This screen doesn't show an extra score change. Comparing it with the table teaches an important rule: behavior is determined by the saved parameters and blocks, not by the template's name.

2. Lay out the four elements of the scenario.
StepTemplate configuration
TriggerProduct added to cart
Wait3 hours
ConditionWas there a purchase in the last 24 hours?
NoTag porzucony_koszyk and score +10
YesTag kupil_po_koszyku
Flowpeek editor: add to cart, a 30-minute wait, a purchase condition and two tagging actions
A saved scenario with a 30-minute wait and tags on both branches. The table separately describes the parameters of the ready-made template.

3. Check the signals and the contact first.

Walk through a controlled journey in the store and confirm that add-to-cart and purchase are being recorded. If order syncing takes longer, factor that into the delay you choose. No visible purchase at the time of the check may mean the data hasn't arrived yet, not that the cart was actually abandoned.

In the profile shown, a score of 71 comes with a cart and no purchase, but the visitor is marked as anonymous. That's not a contact ready for tagging. Check recognition in Flowprofile, the link to the chosen platform and current consent. An address in another system or a high-intent label doesn't replace a confirmed connection.

Before publishing, create or select a specific tag in the platform and decide which rule it will lead to. Write down its meaning: "cart without purchase within window X," not a generic "customer for promotion." That way you can later check whether the tag is still current and which process should remove it.

Visitor profile in Flowpeek: score 71 out of 100, feature radar, 2 visits, 7 page views, an add to cart and no purchase
Flowpredict · a 71/100 score with the visit history and feature radar. Identifying data is hidden; the panels are shown side by side.

4. Match the action to the connected platform.

Pick an action available in your integration. GetResponse supports tags, fields and contact scoring, among others; Klaviyo — profile properties, lists and events; MailerLite — groups and fields; ActiveCampaign — tags, fields and lists. Ecomail has tags and a list, and ExpertSender ECDP supports attribute updates. These are different ways of passing on information about a contact, not identical blocks.

edrone has a separate scope: syncing customers who gave consent at purchase, plus withdrawal or deletion. Don't automatically carry the GetResponse wizard instructions over to it. In each platform, check the rule, the content and whether the communication actually runs.

5. Set re-entry and communication controls.

Decide whether a visitor can enter once, after a break or every time the condition is met. Flowpeek doesn't run parallel instances of the same scenario for the same visitor ID. That's not a global limit for a person across all devices.

Check existing cart campaigns and messaging limits in the platform. Assign one process responsible for the reminder so that tagging doesn't trigger overlapping offers. If you add an ML condition, it reads the score available at the moment the contact passes through. To react to a later score on its own, configure an ML trigger that is evaluated periodically.

6. Add a separate rule that ends things after a purchase.

The condition after the delay only checks the state at the moment it runs. The customer may buy later, after the porzucony_koszyk tag has already been added. The "YES" branch that adds kupil_po_koszyku doesn't remove a previously added tag either. That's why you need a separate flow that reacts to a purchase.

Set a purchase trigger and the "Remove tag" action in GetResponse. Select the existing porzucony_koszyk tag; if you also use intent tags, add separate actions that remove the relevant labels. Running them still requires an active link and the required consent conditions. On the platform side, define what the tag change means for the segment, the queue and any communication that has already started.

The screenshot below shows a different customer: three visits, 22 page views, one PLN 669 order and the status "Purchase completed." It's evidence of the state visible in the app, not confirmation that the customer received a message or that the tag was removed. Check those in the action history and the target platform.

Flowpeek customer profile after a purchase: 3 visits, 22 page views, one order worth PLN 669 and the status Purchase completed
App view after a purchase · 3 visits, 22 page views and a PLN 669 order. The app shows the customer status instead of an intent score. Identifying data is hidden.

7. Test both branches and the skipped cases.

Save a draft, check the settings and run the validation before publishing. Activating an event-based scenario starts watching new events; it doesn't replay all past carts. Run the cases from the protocol at the end of this guide: no purchase, purchase before the check, purchase after tagging and consent withdrawal.

For each test run, compare the Flowpeek history with the state in the platform. Skipping after consent is withdrawn may be correct; an error calls for diagnosing the connection or the action. Also note whether adding to the cart again behaves according to the entry rule you chose.

8. Write a message that fits the situation.

Start by helping the customer finish the purchase. They may need an answer about size, compatibility, shipping or payment method. Don't default to a discount for every abandoned cart. Check the economics of the offer and whether an existing process already promises a different deal.

The content should match the scope of data you actually have. If the condition doesn't identify the exact products in the abandoned cart, don't imply that level of precision in the message. Also make sure the offer is current and that unsubscribes are handled in the target platform. Assess the legal requirements for the channel and the basis for communication in the process appropriate for your store.

9. Measure process performance and sales separately.

First evaluate the process: event recognition, conditions passed, tagging and tag removal after purchase. Include skips and errors. This checks that the configuration runs, not the message's impact on sales.

Evaluate the business result separately. Set the period, the purchase attribution rule, the cost of the discount and the comparison method, including a control group if you use one. Some customers would have come back without a message, so don't call all subsequent sales recovered. With a small number of events, keep collecting observations.

Common mistakes

01

Treating a tag as confirmation that a message was sent

Check the Flowpeek action separately from the rule and its execution in the messaging platform.

02

Reading the "purchase within 24 hours" condition as a purchase of that specific cart

Use the exact window definition and match your communication to it.

03

Counting all subsequent sales as recovered

Choose the impact evaluation method before launch. The order of events doesn't prove causation.

04

Assuming a purchase automatically clears tags

The cart scenario and the separate post-purchase rule do different jobs. Check tag removal and how the segment behaves in the platform.

For your next review

Checklist

  • Add-to-cart and purchase are recorded correctly.
  • The condition has a known window and purchase scope.
  • The contact, consent and target action have been checked.
  • Re-entry and messaging limits don't duplicate an existing process.
  • A separate post-purchase scenario removes the previously added tag, and platform exclusions have been checked.
  • The test covers both branches, skips and consent withdrawal.
  • The sales evaluation has an explicit comparison method.

Now your store

Design one scenario without unnecessary branches.

  1. 1

    Write down the cart trigger, wait time, purchase window, tag and the rule for removing it.

  2. 2

    Reproduce no purchase, a purchase before the check, a purchase after tagging and a consent change.

  3. 3

    Check the Flowpeek history, the tag and messaging eligibility in the platform; set a review date.

From report to decision

Example scenario acceptance protocol

Before launching communication, prepare test contacts and check how the process starts and ends. This is a configuration test protocol, not a description of messages already sent to customers.

Contact without a purchase
Adds a product, has current consent and, after the delay, has no purchase within the set window. We expect the "NO" branch and the right tag in the platform.
Contact with a purchase
After the add-to-cart, we record a purchase before the delay ends. We expect the "YES" branch, without triggering the reminder meant for no purchase.
Purchase after tagging
The contact already has porzucony_koszyk and then buys. We expect the separate tag-removal scenario to run and the communication to behave according to the platform settings.
Consent withdrawal
The contact enters the scenario, and before the action we update consent at the source. After syncing, we check that the action is correctly skipped.
Proof of execution
Record the state of the Flowpeek history and the tag, field or event in the messaging platform. Check sending confirmation separately in that platform.
Go-live decision
Launch the process once the test results match and other cart campaigns have been checked. Name the person responsible for the first review of skips and errors.

A test like this checks more than the correct layout of steps in the editor. You have confirmation of who will receive communication, who will drop out of it and where to look for an explanation once the process is live.

Questions and answers

Does Flowpeek send the abandoned cart message itself?

The scenario described runs actions in the connected platform, such as a tag or a field change. You set up the content and sending in your messaging tool.

Can I change the three-hour wait?

Yes. You adjust the wait time and the scope of the condition in the wizard to fit your store's process.

Does the template check for a purchase of exactly those products?

The template shown checks for a purchase in the last 24 hours. That's not automatically proof of buying the same products or of an order placed after a specific cart event.

Will the cart scenario include someone without a cart?

Not if it starts with a product being added to the cart. For earlier intent, set up a separate page-view or ML-threshold scenario with explicit no-cart and no-purchase conditions.

Does a purchase or a drop in score remove the tag on its own?

Don't assume so. Configure a separate purchase flow with an action that removes the existing tag and check the result in the platform. A drop in score alone doesn't undo an action that has already run.

Will removing the tag stop every scheduled message?

That depends on your messaging platform's rules. Check the segment criteria, exclusions and sends already in progress; removing the tag alone doesn't confirm any of them.

Read the next guide.

All guides

Free · 30 minutes · online

GA4, your store and your ads show different numbers? We'll check it with you.

We compare one month of sales across your tools and point out three fixes to your measurement. No strings attached. What we check

Book a free review(online meeting, opens in a new tab)

30 days on your own data

Start with one automation you know how to check.

Test Flowpeek on your store's events and your connected marketing platform. In the consultation, we'll go over the trigger, conditions, actions and how to evaluate your first scenario.

  • No fixed-term contract
  • We set everything up for you in 48 h
  • App servers in Germany (EU)
  • Cancel anytime