Back to the build library
Hospitality & events
Starter

Post-Stay Review and Rebooking

Use the few days after a guest checks out to catch problems privately, earn public reviews, and win the next booking direct.

Industry
Hospitality & events
Build effort
Starter
Typical time to launch
1–2 weeks
On this page
The problemWhat gets builtHow it runsAutomations in detailWhat changesBefore you start
Want this built for you?

Bring your stack to a call and we will scope it against how your business actually runs.

Book a call
01

The problem

There is a window of about four days after a guest checks out when they still remember the bed, the breakfast and the person on the desk who sorted out the taxi. Inside that window they will write you a review if asked, tell you what went wrong if asked privately, and consider coming back if given a reason. Outside it, the stay blurs into every other stay and the guest becomes a stranger again. Most properties do nothing with that window at all, or do one thing with it - a generic survey from the booking platform that the guest ignores and the property never reads.

Two leaks run through this. The first is the review flow. Properties with hundreds of stays a month collect a handful of reviews, almost all from guests who were either delighted or furious, which means the public rating is set by the extremes rather than by the majority who were quietly fine. Worse, nobody intercepts the furious ones before they post. A guest who had a bad night and is asked publicly for a review will tell the world. The same guest, asked privately how it went, will often tell you instead, and accept a fix.

The second leak is the next booking. A guest who stayed once and liked it is the cheapest booking available - no commission, no acquisition cost, no persuading. But the property has no idea when they might travel again, has not asked, and will not contact them until a generic newsletter happens to land. So the guest searches, sees the property on a third-party site, and books through it. You pay a commission to reacquire someone you already had. The post-stay window is where that gets fixed, because it is the one moment the guest is willing to answer a direct question about their next trip.

02

What gets built

Pipeline and stages

One pipeline, Post-Stay Journey. Every departing guest enters it and leaves it either as a reviewer, a rebooker, or a resolved complaint.

  • Checked Out - departure recorded, nothing sent yet.
  • Feedback Requested - the private rating ask is out.
  • Issue Raised - a low score or a negative comment has come back and a human owns it.
  • Issue Resolved - the fix has happened and been acknowledged by the guest.
  • Review Requested - the guest rated well and has been pointed at a public platform.
  • Review Posted - confirmed, or assumed after the link was clicked.
  • Rebook Nurture - the guest is in the slow lane, waiting for their stated next-trip window.
  • Rebooking Inquiry - they have replied about a future date.
  • Rebooked - a direct booking landed.
  • Dormant - no engagement after the full cycle; stays on the list for seasonal campaigns only.

Calendars

Deliberately light. One calendar, Guest Relations Callback, 15-minute slots assigned to the duty manager, offered only to guests who raise an issue. A complaint handled on a call closes properly; a complaint handled over three emails does not.

Custom fields

  • stay_arrival_date, stay_checkout_date, nights_stayed.
  • room_type, rate_plan, booking_channel - direct, third-party platform, travel agent, corporate, group block.
  • stay_purpose - leisure, business, event attendee, wedding guest, relocation.
  • party_type - solo, couple, family, group, business.
  • repeat_stay_count - how many stays this contact has had with you.
  • feedback_score - the single rating from the first ask.
  • feedback_submitted_at, feedback_comment.
  • issue_category - room condition, noise, cleanliness, service, food and beverage, billing, facilities, check-in experience.
  • issue_owner, issue_resolved_at.
  • review_requested_at, review_platform_chosen, review_link_clicked_at, review_confirmed.
  • next_trip_window - within 3 months, 3–6 months, 6–12 months, no plans.
  • next_trip_purpose and next_trip_notes - free text for the detail a guest volunteers, such as an anniversary or an annual visit.
  • rebook_offer_sent_at, rebooked_at.

Tags

  • Stay context: post-stay, first-stay, repeat-guest, direct-booker, platform-sourced, business-traveller, family-stay.
  • Feedback: feedback-high, feedback-neutral, feedback-low, feedback-no-response.
  • Issues: issue-open, issue-escalated, issue-resolved, recovery-offered, do-not-market.
  • Reviews: review-requested, review-clicked, review-posted, review-declined.
  • Rebooking: rebook-nurture, rebook-window-open, rebooked, annual-visitor.
  • Compliance: sms-opt-in, sms-opted-out, email-unsubscribed.

Forms

  • How Was Your Stay. One question, a simple rating scale, nothing else on screen. The whole build depends on this being answerable in two seconds from a phone. Conditional logic underneath: a high rating reveals the review platform choice, anything lower reveals a short comment box and the callback offer.
  • Tell Us More. Shown or emailed to low scorers. Asks for the issue category from a list, a free-text description, and whether they want a call or an email reply. Nothing about compensation - that conversation belongs to a human.
  • Your Next Trip. Two questions: when do you think you will next be in the area, and what for. Populates next_trip_window and next_trip_purpose. Sent separately from the feedback ask so one does not cannibalise the other.
  • Review Routing Page. Not a form exactly - a landing page with the two or three platforms that matter to you as large buttons, each click stamping review_platform_chosen and review_link_clicked_at. Guests pick the platform they already have an account on, which is the single biggest determinant of whether a review actually gets written.

BO's role and guardrails

On a Starter build BO is intentionally narrow. BO may:

  • Reply to inbound texts and emails on the post-stay thread, thank the guest, and answer factual questions - lost property, invoice copies, what the breakfast times were.
  • Acknowledge a complaint immediately and without argument, then hand it to the duty manager: "That is not the stay we wanted you to have. I am passing this straight to Dan, our duty manager, and he will come back to you today - would a call be easier?"
  • Offer callback slots from the Guest Relations Callback calendar.
  • Capture next-trip intent mentioned in passing and write it to next_trip_notes.

BO must not:

  • Offer, imply or discuss any refund, credit, discount, comp or goodwill gesture. Recovery is a human decision every time.
  • Dispute a guest's account of what happened, or explain why they are mistaken.
  • Ask a guest who has rated you poorly to leave a public review, ever.
  • Offer any incentive in exchange for a review. The build must not condition a reward on a review being left - that breaches the terms of every major review platform and taints the rating besides.

Numbers and channels

  • A guest services number, SMS-enabled, used for the post-stay texts and monitored during the day. Replies land in the shared conversation view, not in a mailbox nobody opens.
  • Email sent from a named human - the general manager or guest relations lead - with that person's real reply-to. A post-stay email from noreply is a post-stay email nobody answers.
  • The review routing page on your own domain, so you can see click-throughs per platform and change platform priority without touching any message copy.
  • Optional but worth it: a QR code on the in-room compendium and the folio that points at the same routing page, which catches guests who want to review before they have even left.
03

How it runs, step by step

One guest, from checkout to the next direct booking.

  1. A couple check out on a Sunday morning after three nights, booked through a third-party platform. The departure appears in the daily export from the property system, or the front desk marks the departure in the platform directly.
  2. The contact is created or matched on email. stay_checkout_date, nights_stayed, room_type and booking_channel are written. Tags post-stay, first-stay and platform-sourced are applied. The lead is created in Checked Out.
  3. Four hours after checkout, long enough that they are home or on the road but still inside the window, the private feedback ask goes out by SMS: a single sentence and a link. The lead moves to Feedback Requested.
  4. They tap the link and rate the stay highly. feedback_score and feedback_submitted_at are stamped, feedback-high is applied.
  5. Because the score is high, the same page immediately shows the Review Routing Page - no second email, no delay, no second click to get there. Three platform buttons. They pick the one they are already logged into.
  6. The click stamps review_platform_chosen and review_link_clicked_at, applies review-clicked, and moves the lead to Review Requested. They write two lines about the breakfast and the walk to the harbour.
  7. Nothing has been asked about a future stay yet, deliberately. Three days later, with the review out of the way, a short email from the general manager thanks them by name, mentions the room they were in, and asks the two Your Next Trip questions.
  8. They answer: six to twelve months, and it is an anniversary trip they take every autumn. next_trip_window and next_trip_purpose are written, annual-visitor is applied, and the lead moves to Rebook Nurture.
  9. They go quiet, correctly. Nothing is sent for months beyond whatever general seasonal campaign they are on.
  10. Seven months after checkout - a month before their stated window opens - the rebooking workflow wakes the record. The email references the actual stay: the room, the season, the fact that it is their anniversary trip. It carries a direct booking link, not a platform link.
  11. They click but do not book. Five days later a short SMS follows: a single question about whether they want the same room held while they decide.
  12. They reply asking about availability for a specific weekend. That is an inbound reply, so automation pauses and the lead moves to Rebooking Inquiry with a task for the reservations team.
  13. Reservations answer within the hour, hold the room, and the booking is taken direct. rebooked_at is stamped, rebooked and direct-booker applied, repeat_stay_count incremented, and the lead moves to Rebooked.
  14. When they check out the second time, the whole cycle runs again - except this time they are tagged repeat-guest, the feedback copy acknowledges it, and the rebooking email can reference two stays instead of one.

The alternative branch matters as much. Had they rated the stay poorly at step four, the routing page would never have appeared. Instead they would have seen the Tell Us More form, the duty manager would have been notified within a minute, the lead would sit in Issue Raised, every marketing and review message would be suppressed, and a human would have called them before they had finished unpacking.

04

Automations in detail

Seven workflows. The first three are the core and can go live on their own; the rest can follow a week later once you trust the routing.

1. Departure Intake and Segmentation

Trigger: a departure row appears in the nightly property-system export, or a human marks a stay as departed.

Conditions: skip the record entirely if there is no email and no mobile. Skip if the contact already has an open lead in Post-Stay Journey from a stay in the last 24 hours, so a two-room family booking does not generate two journeys.

Actions in order:

  1. Create or match the contact on email, then mobile.
  2. Write stay_arrival_date, stay_checkout_date, nights_stayed, room_type, rate_plan, booking_channel.
  3. Increment repeat_stay_count. If the new value is 1, apply first-stay; if 2 or more, apply repeat-guest.
  4. Branch on booking_channel: direct applies direct-booker; third-party applies platform-sourced, which later changes the rebooking copy because the whole point is to move them direct.
  5. Branch on stay_purpose and party_type to apply business-traveller or family-stay. These change the rebooking seasonality - a business traveller does not want a half-term family offer.
  6. Create the lead in Checked Out and apply post-stay.
  7. Hard suppression check: if do-not-market is present, create the lead but exit the workflow with no messaging at all.

Exit: runs once per stay.

2. Private Feedback Ask

Trigger: lead enters Checked Out.

Actions:

  1. Wait 4 hours from stay_checkout_date, then apply quiet-hours handling: if the resulting send time falls between 9pm and 8am guest local time, hold until 9am.
  2. Branch on channel. If sms-opt-in is present and a valid mobile exists, send SMS. Otherwise send email. Do not send both - two asks for one rating halves the response rate and doubles the irritation.
  3. SMS copy: "Hi Sarah - Tom from the front desk here. Hope the drive home was kind. One tap, nothing else: how was the Harbour Room? [link]" Short, named, specific to their room.
  4. Email version, same content, subject line "How was the Harbour Room, Sarah?" from the GM's address.
  5. Move the lead to Feedback Requested and stamp review_requested_at as null - that comes later.
  6. Wait 2 days. If no submission, send one reminder on the other channel. "Did not want to pester - but if you have ten seconds, it genuinely helps us: [link]"
  7. Wait 3 days. If still no submission, apply feedback-no-response and move the lead straight to Rebook Nurture - a non-responder is still a past guest and still worth a next-trip ask later.

Exit: a submission on How Was Your Stay, an opt-out, or the 3-day timeout.

3. Feedback Routing

Trigger: submission of How Was Your Stay.

Actions:

  1. Write feedback_score, feedback_submitted_at and feedback_comment.
  2. Branch A - score at or above your high threshold. Apply feedback-high, move to Review Requested, stamp review_requested_at, and show the Review Routing Page immediately on the same screen. Do not email it. The guest is already holding their phone with the property in mind, and every additional step loses a share of them.
  3. Branch B - score in the middle band. Apply feedback-neutral. Show a short thank-you and a single open question: "Thanks - what would have made it a better stay?" Do not request a public review. Move to Rebook Nurture and notify the duty manager with the comment for information, not action.
  4. Branch C - score below the threshold, or the comment contains a trigger word such as refund, dirty, rude, bedbug, broken, unsafe or ill. Apply feedback-low and issue-open, move to Issue Raised, suppress all marketing and review messaging on this contact, and fire workflow 4 immediately. Branch C overrides Branch A even on a high numeric score - a glowing rating with the word bedbug in the comment is not a review opportunity.

Exit: immediate; this workflow only routes.

4. Issue Escalation and Recovery

Trigger: lead enters Issue Raised, or issue-open is applied by a human.

Actions:

  1. Within 60 seconds, notify the duty manager by SMS and the guest relations lead by email, both carrying the score, the full comment, the room, the dates and the guest's mobile. No digest, no batch - this one is immediate.
  2. BO sends the guest a short acknowledgement with no defense and no offer: "Thank you for telling us, and I am sorry - that is not the stay we wanted you to have. I am passing this to Dan, our duty manager, now. He will come back to you today. If a call is easier, grab a time here." Include the Guest Relations Callback link.
  3. Send the Tell Us More form if the comment was thin, to capture issue_category.
  4. Create a task for the duty manager with a 4-hour due time. At 4 hours unactioned, escalate to the general manager. At 24 hours unactioned, escalate again and apply issue-escalated.
  5. Hold the lead in Issue Raised until a human writes issue_resolved_at. No automated message goes out in the meantime.
  6. On resolution: move to Issue Resolved, remove issue-open, and wait 7 days. Then send one human-signed email asking whether the outcome was acceptable. If the reply is positive, move the lead to Rebook Nurture with a note. If negative, reopen and escalate to the GM.
  7. A resolved issue never triggers a review request automatically. If the guest volunteers that they would happily review you, a human may send the link by hand.

Exit: issue_resolved_at written and the 7-day check completed, or the guest requests no further contact, which applies do-not-market.

5. Review Nudge and Confirmation

Trigger: lead enters Review Requested.

Conditions: never runs for contacts carrying feedback-low, issue-open or do-not-market.

Actions:

  1. Wait 2 days. If review_link_clicked_at is empty, send one nudge on the channel the original ask used. "You rated the Harbour Room highly - thank you. If you have a minute, saying so publicly makes a real difference to a small team: [routing page link]" No incentive, no urgency, no second nudge after this one.
  2. Wait 3 days. If review_link_clicked_at is still empty, apply review-declined and move the lead to Rebook Nurture. Stop asking. A guest nudged three times about a review is a guest who will not rebook.
  3. If review_link_clicked_at is populated: apply review-clicked, and create a task for whoever monitors the review platforms to match the review and set review_confirmed. Where the platform supports it, ingest new reviews automatically and match on name and date instead.
  4. On review_confirmed: move to Review Posted, apply review-posted, and notify the GM with the review text so it can be responded to publicly the same day.
  5. Wait 1 day after confirmation. Send a short thank-you from the named human. This is the message that makes a one-time reviewer into a repeat one.
  6. Then move the lead to Rebook Nurture.

Exit: review confirmed, review declined after the single nudge, or any opt-out.

6. Next-Trip Intent Capture

Trigger: lead enters Rebook Nurture from any path.

Actions:

  1. Wait 3 days from entry, so this never lands on the same day as a feedback or review message.
  2. Email from the named human, referencing the actual stay: "You were in the Harbour Room over the long weekend. Two questions and I will leave you alone - roughly when do you think you will next be down this way, and what for? It helps us hold the right rooms back." Link to Your Next Trip.
  3. Wait 5 days. If unanswered and sms-opt-in is present, one SMS: "Quick one, no reply needed if not - any idea when you might next be in the area? [link]"
  4. On submission: write next_trip_window and next_trip_purpose. If the purpose names a recurring occasion - anniversary, birthday, annual trip - apply annual-visitor.
  5. If next_trip_window is within 3 months, skip the nurture wait entirely and fire workflow 7 now.
  6. If unanswered after the SMS, set next_trip_window to 6–12 months as a default and continue. An unanswered question is not a no.

Exit: submission, or the SMS step completing.

7. Rebooking Window Campaign

Trigger: a daily scheduled check against stay_checkout_date and next_trip_window. Fire at 30 days before the stated window opens - so roughly 60 days after checkout for a 3-month window, 150 days for a 6-month window, 300 days for a 12-month one.

Conditions: requires marketing consent on the channel used. Excludes issue-open, do-not-market, email-unsubscribed for email and sms-opted-out for SMS. Excludes anyone with a future booking already on the books.

Actions:

  1. Apply rebook-window-open, move the lead to Rebook Nurture if it has drifted, and stamp rebook_offer_sent_at.
  2. Branch on tags for copy selection. annual-visitor gets the anniversary version: "This time last year you were in the Harbour Room. If you are planning the same trip, I can hold that room before the autumn weekends go." business-traveller gets a version about a corporate rate and late arrival; family-stay gets one about school holiday dates; platform-sourced gets a version that makes the direct benefit explicit without quoting a figure: "Booking with us direct gets you the room choice and flexible cancellation that the listing sites cannot offer."
  3. Every link goes to your own booking engine with dates and room type pre-filled. No third-party links, ever, in this sequence.
  4. Wait 5 days. If the email was opened or clicked but no booking exists, send one SMS: "Saw you had a look - want me to hold the Harbour Room for a few days while you decide? No obligation."
  5. Wait 7 days. One final email with something concrete and seasonal - what is on locally that month, a new menu, the fact that the terrace is open - rather than another ask.
  6. On any inbound reply: pause the sequence, move to Rebooking Inquiry, notify reservations with a 2-hour task, and surface the full stay history on the contact so whoever answers sounds like they remember them.
  7. On a booking being detected: stamp rebooked_at, apply rebooked, move to Rebooked, and remove rebook-window-open.
  8. If the sequence completes with no engagement: move to Dormant, remove rebook-window-open, and leave the contact on the seasonal campaign list only. Re-run this workflow once a year at most.

Exit and stop conditions: a booking, an inbound reply, an opt-out, or the sequence completing. Any contact who replies asking not to be contacted gets do-not-market applied immediately and is removed from every sequence in this build, including the operational ones.

05

What changes

The visible change is review volume, and it changes fast - usually inside the first two weeks, because you are finally asking everyone rather than the few who volunteer. The more important change is review composition. Once the majority of quietly-satisfied guests are in the sample, the rating stops swinging on individual bad nights and starts reflecting the property.

The second change is that complaints arrive privately and early. You find out about the noisy air conditioning on unit 304 from four guests in a row, in a field you can filter, rather than from one public review three weeks later. issue_category turns scattered grumbling into a maintenance list.

The third change is slower and worth more. You accumulate a list of past guests with a stated next-trip window and a stated reason for traveling, which is the only mailing list in hospitality that is genuinely worth something. Over a year that list becomes the cheapest source of occupancy you have, and every booking it produces is one you did not pay commission on.

Metrics to watch

  • Feedback response rate - of departures contacted, the share that submit a rating. Split by channel; SMS and email perform very differently and the split tells you where to put the first ask.
  • Review conversion - of high scorers sent to the routing page, the share that click, and of those, the share that produce a confirmed public review. The gap between click and post is where the friction lives.
  • Reviews per hundred departures, tracked monthly, as the headline number.
  • Average rating and its trend, and separately the share of ratings below your threshold - that second number moves before the average does.
  • Issue capture rate - low scores raised privately as a share of all low scores, and issue_category frequency so maintenance and training have a priority order.
  • Time to first human contact on a raised issue. This should be measured in minutes, not days.
  • Next-trip intent capture rate - the share of departures with next_trip_window populated. This is the real asset the build creates.
  • Rebooking rate from nurture and the direct share of those rebookings, since a rebooking that arrives through a third-party platform has solved the loyalty problem but not the commission one.
06

Before you start

Decisions to make before building

  • The score threshold that separates a review request from an issue escalation. Set it conservatively - it is far cheaper to route a merely-fine guest into the private path than to push a dissatisfied one toward a public platform.
  • Which two or three review platforms you actually care about, and in what order. More than three on the routing page reduces completion rather than increasing choice.
  • Who owns a raised issue by daypart, including evenings and weekends, and what they are authorized to resolve without asking anyone.
  • The timing of the first ask. Four hours after checkout works for most properties; resort and long-stay properties often do better the following morning. Pick one, measure it, change it once.
  • Whether the feedback ask goes to every guest or only to the lead booker on a multi-room reservation. Asking four people from the same party gives you four correlated answers and one annoyed family.

Integrations and provisioning

  • Your property management system. A nightly departures export with email, mobile, room type, rate plan, booking channel and checkout date is enough to run this entire build - full two-way integration is a nice-to-have, not a prerequisite, which is why this is a Starter build.
  • Review platform links for each platform on the routing page. Use the direct write-a-review deep links rather than the profile pages; one less tap matters more than it should.
  • Google Business Profile access if you want to see and respond to reviews in one place.
  • Your booking engine, so the rebooking emails can carry a link that lands on an availability search with the dates and room type pre-filled rather than on the homepage.
  • A guest services phone number, SMS-enabled, provisioned and verified before the first send. Use a number a guest could plausibly call back.
  • Email authentication - SPF, DKIM and DMARC on the sending domain - before any volume goes out. Post-stay email is high-volume and lands in spam without it.

Compliance

  • A2P and 10DLC registration. For US sending, register the brand and the campaign before launch. This build's traffic is a mix of transactional post-stay service messages and marketing rebooking messages; register it as such, and provide real sample copy and a truthful opt-in description. Expect the review and rebooking messages to be treated as marketing even though the first feedback ask may not be.
  • Opt-in and opt-out. A cell number captured at booking for operational purposes is not automatic consent for rebooking marketing. Collect marketing consent explicitly - at booking, at check-in, or in the first post-stay message - and record which. STOP, UNSUBSCRIBE and CANCEL must set sms-opted-out and suppress every subsequent SMS including the rebooking sequence. Email unsubscribe must suppress the marketing track while still allowing genuinely transactional replies.
  • Quiet hours. Hold all post-stay SMS between 9pm and 8am in the guest's local time. Guests travel across time zones and a checkout-day text at 2am is a complaint, not a review.
  • Review platform rules. Never offer an incentive, discount, upgrade or entry into a prize draw in exchange for a review - every major platform prohibits it and some will suppress your rating for it. Never selectively solicit only happy guests from a public ask; the private rating step is legitimate because it routes rather than filters, and the distinction matters. Do not write, edit or post reviews on a guest's behalf.
  • Suppression on complaints. Guests tagged issue-open or do-not-market must be excluded from review requests, rebooking nurture and seasonal campaigns until a human clears them. Build this as a hard suppression rule, not a convention.
  • Data protection. Post-stay feedback is personal data and often contains health, accessibility and family detail volunteered in free text. Set a retention period for feedback_comment and the issue fields, decide who can read them, and have a route for access and deletion requests. Under GDPR, UK GDPR or similar regimes you also need a lawful basis for the marketing track specifically, which is usually consent rather than legitimate interest.
  • None of this is legal advice. Confirm consent wording, retention periods, registration obligations and any local rules on unsolicited messages with the client's own counsel before launch.

For scoping against your own property system and review platforms, book a call at bookings.appbo.io.

Field notes

Build it with us.

Every build on this page is something we configure, test and hand over with the SOPs your team needs to run it.

Book a call