Revenue Optimization

Automated Payment Follow-Up: Recover 60-70% of Balances

D
Dimora AI Team
Last updated:
8 min read
Automated payment follow-up system tracking outstanding balances and recovery rates across vacation rental portfolio

It's been three weeks since the guest checked out. They broke a wine glass. Your cleaning crew documented it. You filed a damage claim through Airbnb. Airbnb approved it. The charge is sitting in your PMS as "outstanding."

You know you need to follow up. But you have 47 other properties to manage. A water heater just broke at Property 12. A guest is locked out at Property 23. Another guest left a 3-star review complaining about WiFi at Property 8.

The $30 broken wine glass charge drops to the bottom of your priority list.

Two months later, you remember. You send a follow-up email. The guest doesn't respond. You send another email. Still nothing. Eventually, you write it off.

This happens more often than most property managers admit. Not because they don't care about $30. Because chasing small outstanding balances manually doesn't scale.

Across a 50-property portfolio, those $30 write-offs add up to $3,000 to $6,000 per year in lost revenue. Money you already earned. Money the guest legally owes. Money that disappeared because you didn't have time to follow up consistently.

Desert Sol Real Estate runs automated payment follow-up across 130+ properties. Every morning, the system scans for outstanding balances, drafts follow-up messages, and queues them for PM review before sending. Recovery rate: 60-70% vs 30-40% manual recovery.

This is how payment follow-up automation works, why manual collection fails at scale, and how to set up a system that recovers the money you're owed without adding work to your day.

Why Outstanding Balances Happen in the First Place

Before we talk about recovery, we need to understand why balances go unpaid.

1. Platform Payment Systems Are Inconsistent

Airbnb, VRBO, and Booking.com all handle payments differently:

Airbnb:

  • Holds security deposits as authorizations (not charges)
  • Requires you to file a resolution center claim for damages
  • Guest has 72 hours to respond to the claim
  • If the guest disputes, Airbnb Support reviews evidence and makes a decision
  • Even if approved, the charge can take 7-10 days to process

VRBO:

  • Similar resolution center process
  • Damage protection program (optional) covers some claims
  • If you're not using their protection program, you file a claim manually
  • Guest can dispute
  • VRBO takes 5-7 days to review

Direct Bookings:

  • You control the payment process (Stripe, PayPal, or manual card processing)
  • Security deposits can be pre-authorized or collected upfront
  • Damage charges require manual processing (charge the card on file or send a payment link)
  • No platform mediation (if the guest disputes, you handle it directly or escalate to chargeback)

The inconsistency means there's no single "add a charge" button that works across all channels. Each platform has different steps, different timelines, different dispute processes.

And every step is an opportunity for the charge to get stuck.

2. Small Charges Aren't Worth the Platform Hassle

Filing an Airbnb resolution center claim takes 10-15 minutes:

  • Upload photos of the damage
  • Write a description
  • Provide a receipt or repair estimate
  • Submit the claim
  • Wait for guest response
  • Respond to guest dispute (if they dispute)
  • Wait for Airbnb's decision

For a $150 broken lamp, most PMs do this. For a $30 broken wine glass, most PMs skip it. The time investment isn't worth $30.

But 100 skipped $30 charges per year is $3,000 in lost revenue.

3. Automated Charges Don't Always Fire

Some PMS platforms (Guesty, Hospitable, Hostaway) allow you to set up automated charge rules:

  • "Charge pet fee if guest selects 'traveling with pet' at booking"
  • "Charge early check-out fee if guest checks out more than 24 hours early"
  • "Charge cleaning surcharge if guest leaves before scheduled check-out"

But these rules are fragile:

  • Guest books with a pet, but Airbnb's system doesn't pass the "pet: true" flag to your PMS, so the fee doesn't trigger
  • Guest checks out early, but the cleaning crew doesn't update the PMS until later, so the early check-out fee doesn't fire
  • The rule was set up for one property type but not applied to all properties

If the automated charge doesn't fire, someone has to manually catch it and add the charge. That requires daily monitoring of every check-out.

Most PMs don't do this. So the charges get missed.

4. Guests Don't Dispute — They Just Ignore

Here's a pattern most PMs recognize:

  1. You file a damage claim
  2. The platform approves it
  3. The charge shows as "outstanding" in your PMS
  4. You assume the platform will auto-collect it
  5. Three weeks later, it's still outstanding
  6. You realize the guest never paid
  7. You send a follow-up email
  8. The guest ghosts you

Why? Because guests know that most PMs won't chase a $50 fee. If they ignore the email, there's a good chance it gets written off.

And they're right. Manual follow-up has a 30-40% recovery rate. The other 60-70% of balances get ignored or written off.

The Manual Follow-Up Process (And Why It Fails)

Here's what manual payment follow-up looks like:

Step 1: Identify Outstanding Balances

Log into your PMS. Go to the accounting or reservations section. Filter for "outstanding balances."

You see a list of 23 reservations with unpaid charges:

  • $75 pet fee (guest didn't disclose pet, discovered via Ring camera)
  • $150 security deposit claim (broken lamp)
  • $30 wine glass
  • $125 early check-out cleaning fee
  • $200 security deposit (damaged bedding)
  • $50 parking pass (guest requested, never paid)
  • ...and 17 more

Total outstanding: $1,840

Step 2: Decide Which to Pursue

You don't have time to chase all 23. So you triage:

  • High-value (over $100): Definitely follow up
  • Medium-value ($50-$100): Maybe follow up if you have time
  • Low-value (under $50): Probably skip unless it's egregious

Result: You follow up on 8 of the 23 balances. The other 15 get ignored.

Step 3: Draft Follow-Up Messages

For each of the 8 balances, you draft a personalized email:

Hi Sarah,

We noticed there's an outstanding balance of $150 from your recent stay at Sunset Villa. This is for a damaged lamp that was reported by our cleaning crew.

We filed a claim through Airbnb and it was approved, but we haven't received payment yet. Please let us know if you have any questions.

Thanks, [Your Name]

Time per message: 3-5 minutes (you have to look up the guest's name, property name, check-out date, and reason for the charge).

Total time for 8 messages: 24-40 minutes.

Step 4: Send via Correct Channel

For Airbnb bookings, you send via Airbnb messaging. For direct bookings, you send via email. For VRBO bookings, you send via VRBO messaging.

Each channel requires logging into a different platform, navigating to the reservation, and pasting your message.

Time per send: 2 minutes.

Total time: 16 minutes.

Step 5: Track Responses

You create a spreadsheet or note in your PMS to track who you messaged and when.

Without this, you'll forget who you followed up with and who you didn't.

Time to set up tracking: 10 minutes.

Step 6: Send Second Follow-Up (30 Days Later)

Of the 8 guests you messaged, 3 paid immediately. 5 ignored you.

You draft a second follow-up message (firmer tone):

Hi Sarah,

We're following up on the outstanding balance of $150 from your stay at Sunset Villa. We haven't received payment yet.

Please confirm receipt of this charge or let us know if there are any issues. We're happy to discuss!

Thanks, [Your Name]

Same process: draft 5 messages, send via correct channel, track responses.

Time: 20-30 minutes.

Step 7: Send Third Follow-Up (60 Days Later)

Of the 5 guests who ignored the second follow-up, 1 paid. 4 are still ignoring you.

You draft a final notice:

Hi Sarah,

This is our final notice regarding the outstanding balance of $150 from your stay at Sunset Villa. If we don't receive payment within 7 days, we'll need to escalate this to our collections process.

We'd prefer to resolve this directly. Please reach out as soon as possible.

Thanks, [Your Name]

Time: 15-20 minutes.

Step 8: Escalate or Write Off

Of the 4 guests who ignored the third follow-up, 1 pays. 3 continue to ignore.

You have two options:

  1. Send to collections — Costs $50-$100 in fees, takes 90+ days, might recover 50% of the balance
  2. Write it off — Accept the loss

For balances under $100, most PMs write them off. For balances over $100, some send to collections. Most write those off too because the collections cost exceeds the balance.

Result:

  • 8 balances followed up on: $1,200 total
  • 5 recovered: $750
  • 3 written off: $450
  • Recovery rate: 62.5%

That's actually above average. Industry standard for manual follow-up is 30-40% recovery.

Total Time Invested:

  • Initial follow-up: 50 minutes
  • Second follow-up: 25 minutes
  • Third follow-up: 18 minutes
  • Tracking and admin: 20 minutes
  • Total: 113 minutes (1.9 hours)

Revenue per hour of PM time: $750 / 1.9 hours = $395 per hour

That's a good hourly rate. The problem:

You only followed up on 8 of the 23 outstanding balances. The other 15 balances ($640) got ignored because you didn't have time.

And you only did this once. If you're managing 50 properties with 6 outstanding balances per property per year, that's 300 balances to follow up on annually.

At 1.9 hours per 8 balances, that's 71 hours per year just for payment follow-up.

Most PMs don't have 71 hours. So they do it inconsistently. Or they only chase the high-value balances. Or they don't do it at all.

That's why manual recovery rates are 30-40%. The process is too time-consuming to execute consistently.

How Automated Payment Follow-Up Works

Automation doesn't replace the PM's judgment. It replaces the repetitive scanning, drafting, and tracking that makes manual follow-up impossible at scale.

Step 1: Daily Balance Scan (6am Cron Job)

Every morning, the system pulls all active and recent reservations (past 60 days) from the PMS. For each reservation, it checks:

  • Total charges: What should the guest have paid?
  • Total collected: What has actually been charged?
  • Outstanding balance: The difference

If the outstanding balance is over $50 (configurable), the reservation gets flagged.

What gets flagged:

  • Security deposit claims (filed but unpaid)
  • Pet fees (not applied at booking)
  • Early check-out fees (guest left early, cleaning fee not charged)
  • Parking passes (requested but unpaid)
  • Damage fees (broken items, stained linens)
  • Miscellaneous charges (mid-stay cleaning, extra guests, etc.)

What doesn't get flagged:

  • Balances under $50 (too small to be worth the follow-up effort)
  • Owner reservations (owner stays aren't charged the same way)
  • Pending platform charges (Airbnb claims that are still in review)

Step 2: Categorize Balances by Type and Age

The system categorizes each flagged balance:

  • Type: Pet fee, security deposit, early check-out, damage, miscellaneous
  • Days overdue: How long since check-out?
  • Follow-up attempt: Is this the first, second, or third follow-up?

Each combination gets a different message template.

Step 3: Draft Personalized Follow-Up Messages

The AI generates a message based on the balance type and follow-up attempt.

7-Day Follow-Up (First Attempt) — Pet Fee Example:

Hi Sarah,

We noticed there's an outstanding balance of $75 from your recent stay at Sunset Villa. This is for the pet fee that wasn't applied at booking.

We've added this charge to your reservation. Let us know if you have any questions!

Thanks, [PM Name]

30-Day Follow-Up (Second Attempt) — Security Deposit Example:

Hi Sarah,

We're following up on the outstanding balance of $150 from your stay at Sunset Villa. We filed a damage claim for the broken lamp, and it was approved by Airbnb, but we haven't received payment yet.

Please confirm receipt of this charge or let us know if there are any issues. We're happy to discuss!

Thanks, [PM Name]

60-Day Follow-Up (Third Attempt) — Final Notice:

Hi Sarah,

This is our final notice regarding the outstanding balance of $150 from your stay at Sunset Villa. If we don't receive payment within 7 days, we'll need to escalate this to our collections process.

We'd prefer to resolve this directly. Please reach out as soon as possible.

Thanks, [PM Name]

Personalization:

  • Guest first name (from reservation data)
  • Property name (from listing data)
  • Balance amount (from PMS data)
  • Reason for charge (categorized by system)
  • PM name (configured per account)
  • Platform context (if it's an Airbnb claim, mentions "approved by Airbnb")

Step 4: PM Review and Approval (30 Seconds Per Message)

All drafted messages queue for PM review. The PM sees:

  • Guest name and property
  • Outstanding balance amount and reason
  • Days overdue
  • Follow-up attempt number
  • Full message text
  • Approve / Edit / Reject buttons

The PM reviews each message and decides:

  • Approve — Message sends immediately
  • Edit — Adjust tone, add context, change amount
  • Reject — Skip this follow-up (guest already paid, or PM decides to write it off)

Average review time: 30 seconds.

This is the human oversight layer. The AI handles scanning and drafting. The PM handles judgment calls.

Step 5: Channel Routing and Sending

Once approved, the system routes the message through the booking channel:

  • Airbnb reservations → Airbnb messaging
  • VRBO reservations → VRBO messaging
  • Direct bookings → Email

The message appears native to wherever the guest booked.

Step 6: Response Tracking and Escalation

The system logs every follow-up attempt:

  • Guest name, reservation ID
  • Balance amount and reason
  • Follow-up attempt (1st, 2nd, 3rd)
  • Message sent date
  • Guest response (paid, disputed, ignored)
  • Current status (pending, resolved, escalated)

If the guest pays, status updates to "resolved."

If the guest disputes, the PM handles the back-and-forth manually (providing photos, receipts, cleaner reports).

If the guest ignores three follow-ups (7, 30, and 60 days), the balance is flagged for escalation. The PM decides:

  • Write it off (not worth collections cost)
  • Send to collections (for balances over $100)
  • Add guest to "do not rent" list

Step 7: Reporting and Analytics

The PM pulls monthly reports:

  • Total balances flagged
  • Total balances recovered
  • Recovery rate by balance type (pet fees recover at X%, security deposits at Y%)
  • Average days to payment
  • Revenue per property

This data helps optimize the system over time. If pet fee recovery is 80% but damage claim recovery is 40%, the PM knows to adjust messaging or escalation timing for damage claims.

The Numbers: Automated vs Manual Recovery

Let's compare the two approaches for a 50-property portfolio:

Manual Recovery (Current State for Most PMs)

Outstanding balances per year: 300 (6 per property)

Average balance: $85

Total owed: $25,500

Balances pursued: 100 (PMs only chase high-value or easy ones)

Recovery rate on pursued balances: 40%

Total recovered: $3,400 ($85 x 100 x 40%)

PM time investment: 71 hours per year

Revenue per hour: $48 per hour

Automated Recovery (With Dimora or Similar System)

Outstanding balances per year: 300 (same)

Average balance: $85 (same)

Total owed: $25,500 (same)

Balances pursued: 300 (system flags all of them)

Recovery rate on pursued balances: 65%

Total recovered: $16,575 ($85 x 300 x 65%)

PM time investment: 2.5 hours per year (30 seconds per review x 300 balances)

Revenue per hour: $6,630 per hour

Additional revenue vs manual: $16,575 - $3,400 = $13,175 per year

Time saved vs manual: 71 - 2.5 = 68.5 hours per year

That's $13,175 in incremental revenue for 2.5 hours of PM review time. And it's money you're already owed (not new revenue, just better collection of existing charges).

Setting Up Automated Payment Follow-Up

If you want to build this yourself, here's what you need:

1. PMS API Integration

Pull reservation and payment data:

  • Total charges per reservation
  • Total collected (what's been charged to guest's payment method)
  • Outstanding balance (difference)
  • Guest name, property name, check-out date, booking channel

Guesty, Hospitable, and Hostaway all expose this via REST API.

2. Daily Scan Logic

Set up a cron job that runs every morning at 6am:

const reservations = await fetchReservations({
  status: ['active', 'checked-out'],
  daysBack: 60
});

const flaggedBalances = reservations.filter(r =>
  r.outstandingBalance > 50 &&
  r.source !== 'owner' &&
  r.source !== 'owner-guest'
);

For each flagged balance, calculate:

const daysOverdue = daysSince(r.checkoutDate);
const followUpAttempt = daysOverdue < 7 ? 'first' :
                        daysOverdue < 30 ? 'second' :
                        'third';

3. Message Template System

Store templates per balance type and follow-up attempt:

const templates = {
  pet_fee: {
    first: "Hi {guestName}, we noticed an outstanding balance of ${amount} for a pet fee from your stay at {propertyName}...",
    second: "Hi {guestName}, we're following up on the ${amount} pet fee from your stay at {propertyName}...",
    third: "Hi {guestName}, this is our final notice regarding the ${amount} pet fee..."
  },
  security_deposit: { /* similar */ },
  early_checkout: { /* similar */ },
  damage: { /* similar */ }
};

4. Approval Queue

Build a dashboard where the PM reviews queued messages:

  • List of flagged balances
  • Draft message for each
  • Approve / Edit / Reject actions

5. Channel Routing

Send messages via:

  • Airbnb messaging API (for Airbnb bookings)
  • VRBO messaging API (for VRBO bookings)
  • Email (for direct bookings)

6. Logging and Tracking

Log every follow-up attempt in your database:

{
  guestId: "...",
  reservationId: "...",
  balanceAmount: 75,
  balanceReason: "pet_fee",
  followUpAttempt: 1,
  messageSentDate: "2026-02-08",
  guestResponse: "pending",
  status: "pending"
}

Query this monthly to calculate recovery rates, revenue per property, and average days to payment.

If you're using Dimora, this entire workflow is built in. Setup time: 2 hours (configure balance thresholds, customize message templates, connect PMS API). Ongoing PM time: 30 seconds per balance review.

Common Questions

"What if the guest already paid but the PMS hasn't synced yet?"

This is why PM review is mandatory. If the PM sees a flagged balance but knows the guest already paid, they reject the follow-up.

The system surfaces opportunities. The PM applies judgment.

"What if I want to write off small balances (under $50) automatically?"

You can configure the threshold. Set it to $75 or $100 if you don't want to chase small balances.

But remember: 100 uncollected $30 balances per year is $3,000 in lost revenue. Sometimes it's worth chasing the small ones.

"What about guests who dispute the charge?"

The follow-up message opens the door for dialogue. If the guest replies with a dispute ("I didn't break the lamp, it was already cracked"), the PM handles the conversation manually.

Automation gets the initial message sent. The PM handles escalation and evidence gathering.

"Can I customize the tone of follow-up messages?"

Yes. The templates are fully customizable. If you want more formal language, adjust the templates. If you want more casual language, adjust the templates.

Test different tones and track which ones have higher recovery rates.

What to Do Next

If you manage 10+ properties and you have outstanding balances going uncollected, here's your action plan:

  1. Audit your balances — Log into your PMS, pull a report of all outstanding balances from the past 90 days. How many are over $50? Total amount owed?

  2. Calculate your recovery gap — Assume 35% manual recovery rate vs 65% automated recovery rate. The difference is your opportunity.

  3. Choose your approach — Build the automation yourself (30-40 hours of dev work) or use Dimora's Payment Audit module (2-hour setup).

  4. Set your thresholds — Minimum balance to flag ($50 is standard), follow-up timing (7, 30, 60 days recommended).

  5. Run for 90 days — Track recovery rate, time saved, guest complaints (should be near zero).

  6. Optimize — Adjust message templates, timing, and balance thresholds based on real data.

  7. Scale — Once payment recovery is running, add upsell automation, gap night automation, and inbox AI.

Payment follow-up is the lowest-risk automation to start with because:

  • You're recovering money you're already owed (no new guest interaction required, just collecting what's due)
  • The volume is manageable (6 balances per property per year vs daily upsell offers)
  • The downside is minimal (worst case, you write off the balance like you would have done manually)

Start here. Prove the ROI. Then expand to other operational revenue streams.

Read the full revenue optimization guide for the complete framework, or calculate your total revenue gap.

The money is already in your system. You just need a process to collect it.

D
Dimora AI Team

The Dimora AI team writes about what we build and what we learn running AI operations across 210+ vacation rental properties.

View all posts

See it running on real properties

Book a 15-minute demo. We show you real call logs, real inbox drafts, and real upsell data from 210+ properties. 14-day free trial, no credit card.