Turning it on
Settings → Orders and inventory → Abandoned checkouts and carts. It ships off: this is personal data of people who did not buy. While it is off nothing is saved or emitted.What gets recorded
As soon as the customer types a valid email in any of Reval’s three checkouts (product, subscription cart or box), Reval saves the attempt and keeps it updated while they fill the form: email, name and address if entered, the products with their frequency, the amount and the date. Nothing from the card is ever stored. The same customer abandoning the same kind of checkout several times updates one record, not several.The list
Orders → Abandoned checkouts shows customer, products, amount, checkout kind, status and last activity:
Copy link gives you the recovery link: it opens the same checkout with the products, plan, frequency and the customer’s details already filled in (not the card). It is the same link the event carries.
Records are deleted after 90 days without activity, like Shopify’s.
The recovery email in Klaviyo
Reval follows the same scheme as Shopify’s Klaviyo integration: the «Checkout iniciado» event fires as soon as the customer types the email, not after the wait. The wait and the cut-off live in the flow, like your abandoned-cart flow:- Trigger: metric «Checkout iniciado».
- Delay: whatever you want (Shopify defaults to 10 hours; 1 hour is also common).
- Flow filter: «Suscripción creada» zero times since starting this flow. If the customer bought, the email does not go out.
- Email: use
{{ event.recovery_url }}as the button,{{ event.items_text }}or{{ event.product_names }}to list what they left, and{{ event.amount_formatted }}for the amount.
checkout_kind (product / box / cart), title, product_names, items_text, items (list with title, quantity, frequency_label), item_count, amount, amount_formatted, currency, customer_first_name, customer_last_name, shipping_city, shipping_province, shipping_country, recovery_url, checkout_started_at.
There is no separate “recovered” event: the signal that they bought is the usual «Suscripción creada» metric, which is what the filter in step 3 looks at.
Abandoned carts
Reval’s subscription cart (the drawer that gathers several products to pay in one checkout) is recorded with the same option, one step earlier: when the customer fills it and does not go on to the checkout. Because the cart lives in the browser and does not know who the customer is, Reval only saves it when it can identify them with certainty: the customer is logged in to the store, or already typed their email in a Reval checkout from that same browser. Anonymous carts are neither saved nor emit anything; the list shows what share of carts could be identified, to decide whether widening is worth it. They appear in the list as Cart (no checkout), with the products as Reval priced them and a link that opens the checkout with that cart loaded. When the customer goes on to the checkout the record becomes Reached checkout (and the checkout takes over); if they empty the cart, Emptied; if they buy, Completed. The event is «Carrito iniciado» («Carrinho iniciado» in Portuguese stores), with the same properties as «Checkout iniciado», and fires as soon as there is an identifiable cart. So that one person gets one flow rather than one per cart and another per checkout, the cart flow carries two filters:- Trigger: metric «Carrito iniciado».
- Delay: whatever you want.
- Flow filters: «Checkout iniciado» zero times since starting this flow (if they reached the checkout, that flow handles it) and «Carrito vaciado» zero times since starting this flow (if they emptied it, there is nothing to recover). Add «Suscripción creada» zero times to cover a direct purchase.
- Email:
{{ event.recovery_url }}opens the checkout with the cart.
cart.started and cart.emptied.
This needs the updated cart block in the theme (published with the app). Until the store has it, carts are not recorded; checkouts are.
Webhooks
The same event reaches your endpoints under thecheckout.started topic if you subscribe to it in Integrations → Webhooks, with the same properties in data. See Webhooks.
Shopify Flow does not receive this event for now: its «Subscription event» trigger is bound to a subscription, and there is none yet here.