---
title: Abandoned Booking Recovery
description: Step-by-step setup for the Yatra Pro Abandoned Booking Recovery module — three-step automated email sequence with personalised recovery links and recovered-revenue reporting.
prev:
text: Scheduled Payments
link: /modules/scheduled-payments
next:
text: Custom Landing Pages
link: /modules/custom-landing-pages
---
# Abandoned Booking Recovery PRO

When a customer starts a booking but doesn't pay, Yatra tracks the session and (with this module on) emails them up to three personalised "complete your booking" reminders — each with a one-click link back to the saved checkout. Recovered bookings are tagged and reported separately so you can see real revenue impact.
## What you'll need
| Thing | Where to get it |
| --- | --- |
| Yatra Pro license | Yatra → License |
| Abandoned Booking Recovery enabled | Yatra → Modules → Abandoned Booking Recovery |
| Working transactional email | Your SMTP / ESP must be sending properly — test from Yatra → Email first |
| At least one published trip | Recovery only triggers when the customer started a real booking flow |
## Step 1 — Enable the module
1. Open Yatra → Modules.
2. Find **Abandoned Booking Recovery** → toggle on.
3. A new menu item appears: Yatra → Abandoned Recovery.
## Step 2 — Configure recovery settings
Open Yatra → Abandoned Recovery → Settings.

| Setting | Default | Notes |
| --- | --- | --- |
| **Enable recovery emails** | off | Master toggle. |
| **First email — send after** | `1 hour` | Delay after abandonment for the first reminder. |
| **Second email — send after** | `1 day` | Delay after abandonment for the second reminder. |
| **Final email — send after** | `3 days` | Delay after abandonment for the final reminder. |
| **Discount code (optional)** | (empty) | A promo code to attach to one of the reminder emails for an extra incentive. Created on the [Discounts](/booking-settings#discounts-coupons) page. |
| **Discount applies to** | Final only | Which of the three emails carries the discount. |
| **Auto-expire after (days)** | `7` | Stop sending reminders after this many days; mark the abandoned record as *Expired*. |
| **Track in reports** | on | Tag recovered bookings so they show in the Recovery Stats card. |
## Step 3 — Customise the three email templates
The module ships with three default templates — open Yatra → Email → Templates and look for:
- **Abandoned Recovery — 1h reminder** (`abandoned_booking_recovery_first`)
- **Abandoned Recovery — 1d reminder** (`abandoned_booking_recovery_second`)
- **Abandoned Recovery — 3d final** (`abandoned_booking_recovery_final`)
Each is editable like any other template — subject, body HTML, sender override. They support all the standard merge tags plus a special `{{recovery_link}}` tag that resolves to the customer's saved-checkout URL.
::: tip Recovery link details
The `{{recovery_link}}` URL contains a short-lived token that rehydrates the customer's prior cart state — selected trip, traveler counts, picked date, custom-field answers. They land back on the payment step, not the start.
:::
## Step 4 — Verify with a test abandonment
1. In a private browser window, start a booking on any trip.
2. Fill in customer details, reach the **Payment** step.
3. Close the browser tab **without paying**.
4. In the admin, open Yatra → Abandoned Recovery.
5. Your test session should appear with status **Abandoned**.
6. Wait for the first-email delay (or manually trigger via the *Send first email now* action on the row).
7. Email arrives → click the recovery link → land back in the payment step → complete payment.
8. The row flips to **Recovered**. Reporting updates.
## The Abandoned Recovery admin

### Status filter pills
| Pill | What's in it |
| --- | --- |
| **All** | Everything across all states. |
| **Abandoned** | Open carts that haven't received any recovery emails yet. |
| **Contacted** | At least one recovery email has been sent. |
| **Recovered** | Customer came back and completed the booking. |
| **Expired** | Past the `auto_expire_after` window with no recovery. |
### Default columns
- **Customer** (name + email captured before abandonment)
- **Trip** (with travel date if set)
- **Value** (estimated booking total)
- **Emails sent** (0–3, with timestamps on hover)
- **Status**
- **Time elapsed** (since abandonment)
### Per-row actions
- **Send recovery email now** (skips the delay)
- **View timeline** (every email send + open + click event)
- **Mark expired** (stops the sequence)
- **Delete**
### Recovery Stats card
Top of the page, four tiles:
- **Total abandoned** in the period
- **Total recovered**
- **Recovery rate** (% of contacted)
- **Recovered revenue** (sum of completed bookings tagged as recovered)
## How the recovery flow works
```
Customer adds trip + clicks Continue → Yatra creates abandoned_booking row
↓
1 hour later: First email
↓
1 day later: Second email
↓
3 days later: Final email (with discount code)
↓
7 days later: Auto-expire if not recovered
```
If at any point the customer pays — via the recovery link OR directly — Yatra cancels the remaining emails and flips the row to **Recovered**.
## Troubleshooting
**No abandoned rows showing up** — confirm the module is enabled AND the recovery settings have **Enable recovery emails** turned on. Yatra only starts tracking sessions after the toggle is on.
**Emails not sending** — first test ordinary booking emails work. The recovery system uses the same SMTP path; if booking confirmations don't arrive, recovery emails won't either. See [Email & notifications](/email-settings).
**Recovery links land on the trip page, not the payment step** — the saved session expired. Sessions are valid for the `auto_expire_after` window. Increase it if your traffic profile needs longer.
**Discount code in the email shows the literal `{{discount_code}}`** — the `Discount code` field in Step 2 is empty. Add a code and pick which email carries it.
**Recovered count looks too high / low** — make sure *Track in reports* is on. Bookings completed without going through the recovery link aren't counted as recovered.
## Useful links
- [Email & notifications](/email-settings) — customise the three template bodies.
- [Discounts](/booking-settings#discounts-coupons) — create the discount code attached to the final email.
- [Hooks & filters](/hooks-filters) — `yatra_abandoned_booking_recovered`, `yatra_abandoned_email_sent`.
## Where to read more
- [All modules](/modules#abandoned-booking-recovery) — module catalog.