The short answer: automated guest messages for a homestay work when they go out at a few fixed moments in the stay, in the guest's own time zone and language, and skip anyone who has already done what the message asks. We use nine moments, from booking to check-out. The schedule is the easy part; knowing who to stay quiet with is the hard part.
Most guides on Airbnb automated messages give you templates: a booking confirmation, check-in instructions the day before, a thank-you after check-out (Hostaway, RedAwning). Airbnb's own scheduled messages tool covers moments like check-in day (Airbnb), and Hospitable notes its triggers are built around three events: booking, check-in and check-out (Hospitable).
That is fine if you only sell on Airbnb. Our units sell on Airbnb, Agoda, Booking.com and direct, and Malaysian and Singaporean guests answer on WhatsApp, not in the OTA inbox. So we built the schedule into the WhatsApp side of our own system, and it has been messaging real guests across 100+ units in Johor Bahru. This is what it sends, when, and what we got wrong.
What are the 9 moments a homestay should message a guest?
These are the nine moments in our setup. Each one has its own wording already written; what the operator controls is whether it is switched on, and for the clock-based ones, the hour.
| # | Moment | When it goes out (default) | Who gets it |
|---|---|---|---|
| 1 | Booking welcome | When the booking appears | New bookings, unless the guest has already finished pre check-in |
| 2 | One week before | 7 days before check-in, 10:00 | Everyone arriving; wording changes if they are already done |
| 3 | Day before | 1 day before check-in, 10:00 | Only guests who still have steps left |
| 4 | Arrival morning | Check-in day, 09:00 | Arriving guests who are not already inside |
| 5 | Unit ready | When the unit is cleaned and ready | Guests who can now walk in, one message per guest |
| 6 | Check-out eve | Night before check-out, 20:00 | Only guests actually staying |
| 7 | Check-out morning | Check-out day, 09:00 | Staying guests who have not checked out yet |
| 8 | 30 minutes before check-out | The listing's own check-out time minus 30 min | Guests still in the unit |
| 9 | Overdue | 15 minutes after check-out, for up to 3 hours | Guests who have not tapped check out |
It is deliberately not a rule builder. A free-form "if this, then send that" engine lets someone create an automation with no message attached, or one that fires at the wrong point in the stay. Fixed moments are boring, and boring is what you want when the recipient is a paying guest.
All nine are off until the operator turns them on. An automation that starts messaging real guests the moment the software is updated is not a feature.
Why do the last two not have a time setting?
Because "30 minutes before check-out" is not a time of day. One listing checks out at 12:00, another at 14:00. If the screen asked for one hour, it would be wrong for one of them. So moments 8 and 9 read each listing's own check-out time and apply a fixed offset.
A paid late check-out moves that time, and the messages follow. A guest who bought until 15:00 gets the warning at 14:30, not 11:30. Each of these two only fires inside its window: the warning in the 30 minutes before check-out, the overdue message from 15 minutes after to three hours after. Switching the feature on at 8pm does not tell every guest still in a unit that check-out is "in about 30 minutes". After three hours, an overdue guest is not a reminder anymore; it is a person's job.
When should you not send an automated message?
This is where most of our effort went. Every skip rule below exists because someone got a message they should not have.
- Already done, don't chase. The day-before reminder only goes to guests with steps left. The one-week reminder goes to everyone, but a guest who has finished gets "we are ready, welcome" instead of a to-do list.
- Already inside, don't announce arrival. If the guest checked in early, the arrival-morning message is skipped.
- Cancelled means cancelled, in every spelling. Cancellations synced from the channel manager arrive as "Cancelled by Host", "Cancelled by Guest" or "Cancelled by OTA". Our first version only matched the word "cancelled" on its own, so in September 2026 guests whose bookings had been cancelled received "Welcome, your booking is confirmed". The check now catches every variant, and no-shows too.
- Extended stays are one stay. In October 2026 a guest who extended his stay was welcomed as a new booking and told his pre check-in was not done, while he was sleeping in the unit. Arrival-side messages now recognise the second booking of a chain and stay quiet.
- Owner stays are not guest stays. Owners blocking their own unit get nothing.
- Not checked in, no check-out messages yet. A guest arriving at 11pm only enters the check-out list after they check in.
How do you stop messages arriving at 4am?
Our server runs on UTC. In August 2026 we found that an operator who set 20:00 was being compared against the server's clock, so guests in Kuala Lumpur were messaged at 04:00 the next morning. Every send time is now checked in the operator's own time zone (Asia/Kuala_Lumpur by default), and a mistyped time zone falls back to Malaysia, not to UTC.
The second rule: claim before sending. Each send is recorded first against a unique key, and the record is removed if the send fails. If the server restarts halfway through a batch, it resumes without messaging anyone twice. And no more than 50 messages go out per run, so the worst first-day mistake stays small.
Why does WhatsApp need an approved template for these?
On the official WhatsApp Business Platform, you can only send a free-form message within 24 hours of the guest's last message. Outside that window, you must use a template Meta has approved. Since 1 July 2025, Meta charges per delivered template message; utility templates sent inside an open customer service window are free, outside it they are charged (Meta, SleekFlow).
A reminder a week before arrival is almost always outside the window, so it needs a template. Two consequences we learned the hard way:
- No template, no send. If an operator switches on a moment but has no approved template for it, the system says so and does not mark it as "ran".
- Editing a template can cause silence. In September 2026 we changed the booking welcome from three fields to four plus a picture. While Meta reviewed the new version, the welcome could not go out at all. Now the system checks the approved shape before sending.
Operators can also tick other channels per moment: a second WhatsApp number, a linked WhatsApp line, or email. Ticking two numbers sends the same message twice. We allow that because somebody chose it, and the screen says what it costs.
Which language does the message go out in?
The guest's. Before sending, the system reads the guest's last eight messages to us and detects the language. A guest who has never written to us, or only wrote "2pm 👍", gets English. That default is a choice: a wrong guess in Chinese or Malay reads worse than plain English.
What happens after check-out?
Two follow-ups are not on the schedule, because they start from a question we asked rather than a date:
- Refund bank details. If we asked where to send the deposit refund and the guest read it without replying, they get three reminders: 20:00 on check-out day, 09:00 the next morning, 20:00 that evening. Three per booking, ever. The moment bank details arrive by any route, it stops.
- Multi-unit check-out. A group checking out of several units who goes quiet after the first gets one reminder after 30 minutes; after 90 minutes a colleague takes over.
What does this not do?
To be fair to you as a buyer: it does not write a nice message for you. The wording, the templates and Meta's approval are setup work, and Meta's review time is not in our control. It also only knows what your bookings know. If check-out times are not set per listing, moments 8 and 9 use a default that may be wrong for your unit.
And the list of mistakes above is real. Each was found by a guest receiving the wrong message, not by a test. Any vendor who tells you their automation has never sent a wrong message has not run it for long.
How to get started
Before switching on any automated guest messages, check three things: every listing has its check-in and check-out time set, you have a template approved for each moment in each language you need, and you have tested one full stay on one unit.
AntlerChat is the WhatsApp inbox we run these messages from, linked to AntlerHub bookings. See how it works and current pricing at /chat. If you also manage door codes, read how each booking gets its own smart lock PIN, and how our check-in bot never invents a link.