Revenue Optimization

Upsell Messaging Templates That Convert (Not Annoy)

D
Dimora AI Team
Last updated:
8 min read
Property manager reviewing AI-drafted upsell messages before sending to guests

The fastest way to kill an upsell opportunity is to sound like you're trying to extract more money from a guest who already paid you $1,200 for their stay.

"We noticed you're checking out soon. Would you like to extend for just $299 more?"

That's pushy. It frames the offer as something you want (more revenue) instead of something they need (more time).

Here's the same offer, reframed:

"Hi Sarah, we noticed you're checking out Sunday at 10am. If that feels early for your travel schedule, we have availability for late checkout until 1pm for $50. Let us know if that helps!"

The difference is subtle. But one feels like a sales pitch. The other feels like solving a problem.

Desert Sol Real Estate sent 148 early check-in and late checkout offers with zero guest complaints. The messages don't feel automated. They don't feel pushy. They feel helpful.

This is how to write upsell messages that convert without annoying guests. The psychology of offer framing, the timing that works, the channels that matter, and the A/B testing strategies that improve acceptance rates over time.

The Psychology of Good Upsell Messaging

Before you write a single word, you need to understand what makes guests say yes or no to an upsell.

1. Frame It as Problem-Solving, Not Revenue-Seeking

Bad framing: "We have an open night in our calendar — would you like to extend your stay?"

This tells the guest: We have a problem (an empty night). Can you solve it for us?

Good framing: "We noticed you're checking out Monday but staying through Sunday. If you'd like one more night to relax before heading home, we have availability at 10% off."

This tells the guest: You might have a problem (don't want to leave yet). We can solve it for you.

The offer is identical. The framing is different. One centers the PM's needs. The other centers the guest's needs.

Guests say yes to offers that solve their problems. They say no to offers that solve yours.

2. Make It Optional, Not Expected

Bad: "Please confirm if you'd like to add late checkout for $50."

This sounds like a bill. The word "please confirm" implies they should do something.

Good: "If late checkout would help with your travel schedule, we can offer it for $50. No pressure — just let us know!"

The phrase "no pressure" is critical. It signals: this is optional. You're not obligated. It's here if you want it.

Guests who don't need it will decline without feeling guilty. Guests who do need it will accept without feeling pressured.

3. Use Specific Numbers, Not Vague Pricing

Bad: "Late checkout is available for an additional fee."

What's the fee? $20? $50? $200? The guest doesn't know. Vague pricing creates friction.

Good: "Late checkout until 1pm is $50."

Clear. Specific. No guessing. The guest can immediately decide if $50 is worth three extra hours.

Vague language ("additional fee", "small charge", "nominal cost") makes guests suspicious. Specific pricing builds trust.

4. Show Them What They Get, Not What They Pay

Bad: "Late checkout is $50."

This frames the offer as a cost.

Good: "Late checkout until 1pm (three extra hours) is $50."

This frames the offer as a value exchange. $50 gets you three extra hours. That's $16.67 per hour. Suddenly it feels reasonable.

The math is the same. But framing it as "what you get" instead of "what you pay" changes the perception.

5. Remove Friction from the Yes

Bad: "If you'd like to add late checkout, please reply with your confirmation and we'll send you a payment link."

This requires the guest to:

  1. Reply to the message
  2. Wait for a payment link
  3. Click the link
  4. Enter payment info
  5. Submit payment

That's five steps. Each step is a chance to abandon.

Good: "If you'd like late checkout, just reply 'yes' and we'll add it to your reservation. No extra steps!"

One action: reply yes. Everything else is handled on the backend. The fewer steps, the higher the conversion rate.

The Templates That Actually Convert

Here are the message templates Desert Sol uses for each upsell type. These are tested across 130+ properties and thousands of guest interactions.

Template 1: Late Checkout Offer

When to send: 7 to 10 days before check-out

Channel: Airbnb message (for Airbnb bookings), email (for direct bookings)

Template:

Hi [First Name],

We noticed you're checking out of [Property Name] on [Day, Date] at 10am. If that feels early for your travel schedule, we have availability for late checkout until 1pm for $[Price].

That gives you three extra hours to pack, have a leisurely breakfast, or just enjoy the property a bit longer. No pressure — just let us know if it helps!

[PM Name]

Why this works:

  • Personalizes with guest name, property name, and specific date
  • Frames the offer around their travel schedule (problem-solving)
  • Quantifies the value (three extra hours)
  • Includes "no pressure" to reduce sales resistance
  • Single call-to-action (just let us know)

Variations to A/B test:

  • Change "if that feels early" to "if you have a late flight or long drive"
  • Test different sign-offs ("Let us know!" vs "Happy to help if you need it!")
  • Test emoji usage (some PMs swear by it, others avoid it)

Template 2: Early Check-In Offer

When to send: 7 to 10 days before check-in

Channel: Airbnb message, email

Template:

Hi [First Name],

You're checking in to [Property Name] on [Day, Date] at 4pm. If you're arriving early (or just want to drop off luggage and start relaxing sooner), we have availability for early check-in at 1pm for $[Price].

Let us know if that works for you!

[PM Name]

Why this works:

  • Addresses two use cases (arriving early, or wanting to start the vacation sooner)
  • Specific time (1pm) removes ambiguity
  • Short and direct (guests skim messages, especially pre-arrival)

Variations to A/B test:

  • Add "That's three hours earlier than standard check-in" to quantify the benefit
  • Test different pricing language ("$50" vs "just $50" vs "$50 (about $16/hour)")

Template 3: Gap Night Offer (Departing Guest)

When to send: 7 to 14 days before check-out

Channel: Airbnb message, email

Template:

Hi [First Name],

We noticed you're checking out of [Property Name] on [Day, Date]. We have availability for one more night if you'd like to extend your stay at 10% off our normal rate.

No worries if your plans are set — just thought we'd offer in case it helps!

[PM Name]

Why this works:

  • Frames it as extending their stay (positive framing) vs filling a gap (negative framing)
  • Includes a discount to incentivize (10% feels meaningful without being desperate)
  • "No worries if your plans are set" reduces pressure and acknowledges that most guests won't change travel plans

Variations to A/B test:

  • Test different discount amounts (10% vs 15% vs $50 flat discount)
  • Add a specific reason ("If you want one more day at the beach...")
  • Test urgency framing ("This is the last night available before our next guest checks in")

Template 4: Gap Night Offer (Arriving Guest)

When to send: 7 to 10 days before check-in

Channel: Airbnb message, email

Template:

Hi [First Name],

We have availability the night before your check-in on [Day, Date] if you'd like to arrive a day early. We're offering it at 10% off our normal rate.

Let us know if you'd like to add it to your reservation!

[PM Name]

Why this works:

  • Focuses on the benefit (arrive early) not the gap
  • Simple and direct
  • Clear call-to-action (let us know if you'd like to add it)

Variations to A/B test:

  • Add context about why they might want to arrive early ("Avoid rush hour traffic" or "Get an extra day to explore the area")
  • Test discount framing (10% off vs "$50 off" vs "$225 for the extra night")

Template 5: 48-Hour Escalation (Higher Discount for Last-Minute Gap)

When to send: 48 hours before the gap night

Channel: Airbnb message, email

Template:

Hi [First Name],

Quick heads-up: we have a last-minute opening the night before your check-in on [Day, Date]. If arriving a day early would help with your travel plans, we can offer it at 15% off.

Let us know if you're interested!

[PM Name]

Why this works:

  • Creates urgency ("last-minute opening")
  • Justifies the higher discount (it's last-minute, so we're motivated to fill it)
  • Still frames it around the guest's benefit (helps with your travel plans)

Variations to A/B test:

  • Test different urgency language ("last-minute" vs "unexpected opening" vs "just became available")
  • Test discount levels (15% vs 20% vs $75 off)

Template 6: Payment Follow-Up (7-Day Outstanding Balance)

When to send: 7 days after check-out (if balance is outstanding)

Channel: Airbnb message (if booked through Airbnb), email (for direct bookings)

Template:

Hi [First Name],

We noticed there's an outstanding balance of $[Amount] from your recent stay at [Property Name]. This is for [Reason: pet fee / damage claim / early check-out cleaning].

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

[PM Name]

Why this works:

  • Assumes it's an oversight (not accusatory)
  • Specific amount and reason (removes ambiguity)
  • Offers to answer questions (opens dialogue instead of demanding payment)

Variations to A/B test:

  • Test different tone (more formal vs more casual)
  • Add "We wanted to reach out directly before processing the charge" (gives them a heads-up)

Timing: When to Send Each Offer

Timing matters as much as the message itself. Send too early, and guests haven't thought about check-out logistics yet. Send too late, and they've already booked their flights.

Early Check-In / Late Checkout Timing

Optimal: 7 to 10 days before check-in/check-out

Why: Guests have booked their flights but might still have flexibility. It's far enough out that they can adjust plans, but close enough that they're thinking about logistics.

Too early: 14+ days before. Guests haven't thought about check-in/check-out yet. The message gets forgotten.

Too late: 2-3 days before. Most guests have already finalized travel plans. Acceptance rate drops.

Exception: Last-minute bookings (guest books 3 days before arrival). Send the offer immediately. They're clearly flexible.

Gap Night Timing

Optimal: 7 to 14 days before the gap

Why: Gives guests time to adjust travel plans (change flights, extend car rental) without feeling rushed.

Escalation offer: 48 hours before the gap, if the first two offers (departing guest, arriving guest) were declined.

Payment Follow-Up Timing

First follow-up: 7 days after check-out

Why: Gives the PMS time to process any auto-charges. If the balance is still outstanding after 7 days, it's not going to resolve itself.

Second follow-up: 30 days after check-out

Why: Firm but still polite. The guest has had a month to address it.

Third follow-up: 60 days after check-out (final notice before collections escalation)

Why: This is the last chance before you escalate to a collections agency or write it off.

Channel Selection: Airbnb vs Email vs SMS

Where you send the message matters. Guests have different expectations per channel.

Airbnb Messages

When to use: Any booking that came through Airbnb

Why: Guests expect Airbnb-related messages to come through the Airbnb app. Sending them an email feels off-brand.

Rules:

  • Keep messages conversational (Airbnb flags overly formal or salesy language as spam)
  • Don't include external links (Airbnb blocks them)
  • Don't mention pricing in the first message if you're testing for spam sensitivity (just say "we have availability" and discuss pricing in the follow-up)

Limitations:

  • Airbnb's messaging system is slow (guests might not see messages immediately)
  • Airbnb has strict content policies (avoid anything that sounds like you're trying to move the booking off-platform)

VRBO Messages

When to use: Any booking that came through VRBO

Why: Same logic as Airbnb. Keep communication on the platform where they booked.

Rules:

  • Similar to Airbnb, but slightly less strict on content policies
  • VRBO guests tend to be older and prefer more formal language (less emoji, more complete sentences)

Email

When to use: Direct bookings, or as a follow-up to Airbnb/VRBO messages

Why: Email gives you more control. No content restrictions. No character limits. You can include links, PDFs, photos.

Rules:

  • Use a professional email address (booking@yourcompany.com, not yourname@gmail.com)
  • Include a clear subject line ("Your upcoming stay at [Property Name]" or "Quick question about your check-out")
  • Keep it short (guests skim emails even more than Airbnb messages)

Limitations:

  • Email deliverability issues (spam filters, guests not checking email)
  • Lower open rates than platform messages (guests are more likely to see an Airbnb notification than a random email)

SMS (Text Messages)

When to use: Urgent communication (guest is locked out, maintenance issue) or very time-sensitive offers (same-day early check-in)

Why: SMS has the highest open rate (98% vs 20-30% for email). Guests see texts immediately.

Rules:

  • Only use if you have explicit SMS opt-in from the guest (required by law in the US)
  • Keep it under 160 characters if possible (avoids multi-part SMS)
  • Don't overuse (SMS feels more invasive than email or platform messages)

Limitations:

  • Requires SMS opt-in (most PMs don't have this for all guests)
  • Feels too pushy for non-urgent upsells

A/B Testing Your Upsell Messages

The templates above are a starting point. The best-performing messages will vary by:

  • Your market (beach vacation vs ski resort vs city Airbnb)
  • Your guest demographic (families vs couples vs business travelers)
  • Your property type (luxury villa vs budget condo)
  • Your brand voice (formal vs casual)

To optimize, you need to A/B test.

What to Test

1. Offer framing

  • "Late checkout until 1pm" vs "Three extra hours in the property"
  • "10% off" vs "$25 off" vs "Just $225 for an extra night"

2. Tone

  • Casual ("Hey Sarah!") vs Formal ("Hi Sarah,")
  • Emoji usage (😊 vs no emojis)
  • Exclamation points (Let us know! vs Let us know.)

3. Length

  • Short messages (2-3 sentences) vs Longer messages (5-6 sentences with more context)

4. Urgency

  • "Last-minute opening" vs "We have availability"
  • "Only available for the next 48 hours" vs no urgency framing

5. Call-to-action

  • "Let us know if you're interested" vs "Just reply 'yes' and we'll add it" vs "Reply with any questions"

How to A/B Test

Manual approach:

  1. Send Template A to 10 guests
  2. Send Template B to 10 guests
  3. Track acceptance rates
  4. Use the winner for the next 100 guests
  5. Test a new variation against the winner

Automated approach (if you're using Dimora or building your own system):

  1. Set up two message variants in your database
  2. Randomly assign each offer to Variant A or Variant B
  3. Track acceptance rate per variant
  4. After 50 offers per variant, calculate statistical significance
  5. Roll out the winner to 100% of offers
  6. Test new variations against the winner

Key metrics to track:

  • Acceptance rate — What % of guests accept the offer?
  • Response rate — What % of guests reply (even if they decline)?
  • Complaint rate — What % of guests complain about being "upsold"?
  • Revenue per offer — Total revenue / total offers sent

A 1-2% improvement in acceptance rate can mean thousands of dollars per year at scale.

Real Example from Desert Sol

Desert Sol tested two versions of the late checkout message:

Version A (Short and direct):

Hi Sarah, we have late checkout until 1pm available for $50 if that helps with your travel schedule. Let us know!

Version B (More context):

Hi Sarah, we noticed you're checking out Sunday at 10am. If you have a late flight or just want to enjoy the property a bit longer, we can offer late checkout until 1pm for $50. That's three extra hours to relax before you head home. Let us know if that works!

Results (50 offers per version):

  • Version A acceptance rate: 12%
  • Version B acceptance rate: 18%

Version B won. The extra context (late flight, three extra hours) helped guests see the value.

But this might not hold true for every market. The only way to know is to test.

Common Mistakes That Kill Conversions

1. Sending Too Many Upsells at Once

Bad: Send a gap night offer, a late checkout offer, and a pool heating upsell all in the same message.

Why it fails: Decision fatigue. The guest doesn't know what to focus on.

Better: Send one offer at a time. If they decline the gap night, send the late checkout offer later.

2. Using Copy-Paste Templates Without Personalization

Bad: "Dear Guest, we have an opening in our calendar..."

Why it fails: Feels robotic. Guests can tell it's automated.

Better: Use the guest's first name, property name, specific dates. Make it feel like a human wrote it.

3. Burying the Offer in a Long Message

Bad: Three paragraphs about house rules, then a paragraph about late checkout buried at the end.

Why it fails: Guests skim. If the offer isn't clear in the first two sentences, they miss it.

Better: Lead with the offer. Keep it short.

4. Not Explaining Why You're Offering It

Bad: "Late checkout is $50."

Why it fails: The guest wonders, "Why are they telling me this now?"

Better: "We noticed you're checking out Sunday at 10am — if that feels early, we have late checkout available for $50."

Context matters. Tell them why you're offering it (you checked their itinerary, you have availability, etc.).

5. Making the Guest Work to Accept

Bad: "To add late checkout, please log into your booking portal, navigate to Add-Ons, select Late Checkout, and submit payment."

Why it fails: Too many steps. Each step is a conversion leak.

Better: "Just reply 'yes' and we'll add it to your reservation."

One action. Everything else is automated.

What to Do Next

If you're sending upsell offers manually, start by testing one template:

  1. Pick your highest-value upsell — Late checkout or early check-in (highest acceptance rate).

  2. Write two versions — One short, one with more context.

  3. Send to 20 guests — 10 get Version A, 10 get Version B.

  4. Track acceptance rates — Which version performs better?

  5. Roll out the winner — Use it for the next 100 offers.

  6. Optimize continuously — Test new variations every month.

If you're automating upsells with Dimora, the system handles this:

  • AI drafts personalized messages per guest
  • PM reviews and approves (or edits) before sending
  • System logs acceptance rates per template
  • You can A/B test variations over time

See how the full upsell workflow works or read the complete revenue optimization guide.

The difference between a 10% acceptance rate and a 20% acceptance rate is message quality. Test. Optimize. Improve.

The revenue is there. The guests are willing to pay. You just have to ask in a way that doesn't feel pushy.

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

Related Articles

Continue exploring insights on property management and AI automation

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.