Skip to content
Giallo

WhatsApp agent for short-term rentals: the full case study

How we automated check-in for 17 short-term rental apartments using a WhatsApp agent, n8n and a custom PWA. Architecture, costs and real mistakes.

Reading time: 14 min

WhatsApp agent scheme for short rentals: reservation, rules, message and delivery status

A WhatsApp agent for short rentals is a system that sends operational messages to guests alone — booking confirmation, arrival instructions, departure reminders, review request. by reading dates and data directly from the management software. It's not a chatbot that chats: it's a rule machine that starts with a calendar and a list of properties.

This article tells a real project delivered for Rial Estate, which manages 17 apartments for short rent in Milan. First were messages written by hand, apartment by apartment, guest by guest, in different languages. They now leave on their own, in six languages, with the PDF of the instructions attached and the link to pay the already calculated tourist tax.

I tell the architecture, the project decisions — including those of not automate — and the errors we paid for in the field. If you are looking for the theory of automation, find elsewhere What is AI Automation; here is what happens when you put it into production with real guests who are about to enter the house.

In summary

  • A WhatsApp agent for short rentals sends messages decided by rules on dates and reservations, not by a generative model: reliability comes before naturalness.
  • The architecture is three workflows on an automation engine: booking confirmation, daily check of dates, receiving incoming messages.
  • The 24-hour window of WhatsApp —out of which only approved templates can be sent —conditions the entire design, it is not a technical detail.
  • The access code to the apartment remains a manual sending: it is the most useful example of what not It is better to automate.
  • The most expensive errors were not the crashes, but the Silent Failures: messages started for days without the payment link, with zero errors in the logs.

The starting problem

The management of 17 apartments for short rent produces a constant flow of identical communications in the structure and different in details. Each guest needs the same five things: to know that the reservation is confirmed, to receive instructions to arrive and enter, to know how and when to leave the apartment, to pay the municipal tourist tax, and to be invited to leave a review.

Before the surgery, all of this was manual labor:

  • Check-in instructions were copied and adapted by hand for each apartment and each guest, in different languages depending on where they came from.
  • The tourist tax was collected in person on arrival, or chased back.
  • Guest messages arrived on the personal number of the person managing, without tracking and without continuity when that person was unavailable.

The cost wasn't just the time. It was variability: the same information came written differently, sometimes late, sometimes not at all. It is the same pattern that is seen in many SMEs when a repetitive process hangs on a person's memory — we also tell about what to automate in the company.

How the Agent Works: Architecture in Three Workflows

The engine is a cloud node automation platform. Above it there are three distinct streams, each with a different trigger.

  1. Confirm booking. The manager calls a dedicated web address every time a new booking enters. The workflow reads the data, locates the apartment and the language, and immediately sends the confirmation message.
  2. Daily check-in. Every morning at 09:00, a scheduled trigger reads all bookings from the management software and decides what to send according to the exact date: two days before arrival and on the morning itself, instructions with the PDF and tax link are sent; on departure day, the check-out reminder; the following day, the review request.
  3. Inbox. A third stream receives incoming messages from guests and status updates of sent messages from Meta, and writes them to the staff's shared box.

The distinction between the first and second workflows is not an old one: confirmation must start at the moment of the booking, while everything else depends on how many days are left on arrival, so it must be evaluated every day on all open bookings. They are two different logics and must be kept separate, otherwise you end up recalculating everything at each event.

If you want to understand the engine below, we talk about it in detail in automation with n8n and in the comparison between Make, Zapier and n8n.

Why not a chatbot that answers for itself

This is the most important editorial decision of the project, and it is worth explaining it well because it goes against fashion.

The messages that an incoming guest receives are deterministic: depend on a date, an apartment, a number of people. There's nothing to interpret. A generative model, in that context, only adds a new way of making mistakes: it can reformulate a timetable, soften a rule, invent a detail that does not exist. No gain, no real risk.

The criterion If the correct answer can be calculated from certain data, use a rule. Generative AI serves when the input is ambiguous and the answer needs to be interpreted — and even there, better if a person rereads before sending.

The free answers to the guests write her a person, from the shared box. The difference between these three objects — rules automation, assistant suggesting, agent deciding — is explained in assistant, chatbot and agent and in AI Agents: What They Are.

The constraint that determined everything: the 24-hour window

WhatsApp does not allow you to write what you want when you want. The rule is clear:

Situation What can be sent Cost
The guest wrote less than 24 hours ago Free text, images, documents No cost per message
They've passed more than 24 hours Only templates already approved by Meta You pay for the template
No previous contacts Approved templates only You pay for the template

This constraint is not a detail to hide in the code: it is architecture. He has determined two concrete choices.

The first: all automatic project messages are approved templates, because they start by definition outside the window (no guests write spontaneously two days before arrival).

The second: the shared staff box disable the writing field when the window is closed, instead of letting it try sending and show an error. It's a huge difference in experience: the writer knows before typing that that channel is closed and that he has to use a template, instead of finding out after writing a long message.

The full operation of the APIs can be found in WhatsApp Cloud API: how it works.

Templates: five messages for six languages

The system uses five message types — confirmation, pre-arrival instructions, same-day reminder, check-out and review — multiplied by six languages: Italian, English, German, French, Spanish and Russian. Each combination is a separate template that Meta must approve before it can be used.

It is the part of the project that requires the most patience and that needs to be taken into account in the planning, because it is not up to you: the approval has its own time and a poorly written template is rejected. The practical rules for passing them we have collected in WhatsApp Business template: how to get them approved.

How to Choose a Language

The language is deduced from telephone prefix of the guest, with English as a fallback when the prefix does not fall into the six.

It is a reasonable but openly imperfect heuristic: a German number does not imply a German guest, and those who have lived abroad for years often keep their home number. The alternatives exist — the language declared by the booking channel, or a preference expressed by the guest — and we compare them in Multi-language automatic messages. For this project the prefix was the data reliably available on all bookings, and English as a fallback covers the worst case in an acceptable way.

The PDF of instructions without public hosting

The arrival instructions are a PDF per apartment, attached to the message. The technical choice here is interesting because it comes from a bond of security, not comfort.

The obvious option would be to put PDFs on a public web address and pass the link. But those documents contain the access codes to the gates: a public address, although difficult to guess, is still an address that anyone who receives it can forward, save and reopen months later.

The chosen path is different: the file is uploaded to the Meta media endpoint, which returns an identifier. It is that identifier —not an address — that ends up in the template.

The counterpart Media identifiers expire after about 30 days. You need a renewal script that reloads and republishes updated workflows. It is an extra recurring job, consciously accepted in exchange for not having access codes on public addresses.

This is the type of choice that distinguishes an automation designed by a mount quickly: the simplest road existed, and was discarded for a precise reason.

The tourist tax paid before arrival

The municipality of Milan applies a tourist tax with rules that the system must comply with: amount per adult per night, exempt minors, and a maximum cap of taxable nights provided for by the regulation.

The workflow calculates the exact amount for that reservation, creates the price and a single-use payment link on the fly, and inserts it into the instruction message. The guest pays from the phone before arriving; no one has to cash at the door or chase payment after.

The detail of the implementation is in automatic payment of the tourist tax.

The shared box: why a custom PWA

The guests responded. It needed a place where the staff could read and answer without using personal phones.

We built a installable web application tailored: list of conversations, chat, sending, push notifications. No database: The state lives in the blob storage of the hosting provider. Access with a team-shared credential, and automatic endpoints protected by a secret in the request header.

The function that justified the custom is only one, and we didn't find it ready anywhere: see the automatic message delivery status next to the conversation. Each party message is recorded with the exact text received from the guest and with the state that Meta sends back — sent, delivered, read, failed. The staff opens the conversation and sees at a glance if the instructions have really arrived and if they have been read.

Why Tailored

  • Automatic message delivery states within the conversation: no ready-made tools did that.
  • No cost per location that grows with the team.
  • Conversation data remains in the customer's infrastructure.
  • The write field locks itself when the 24-hour window is closed.

The reverse

  • The customized must be maintained: updates, corrections, evolutions are the responsibility of those who built it.
  • No third-party support to turn to when something is wrong.
  • You build the functions yourself: there is no catalog of ready-made integrations.

The complete reasoning on when to build and when to buy is in Custom PWA or software ready. Push notifications, with their real limits on iPhone, are treated in Web Push Notifications.

What We Decided NOT to Automate

The list of what remains manual is the most useful part of this case study.

  • The key box code. A person sends it on the day of arrival. An automation that misses date or recipient, on an access code, does not cause an inconvenience: it causes a security problem.
  • Free responses to guests. The staff writes to her. Automation brings the conversation in front of a person, it does not replace it.
  • Management of anomalous cases. Delays, apartment changes, special requests: everything that comes out of the date track remains human.

The criterion is simple: automates what is repetitive and verifiable, leaves a person with what is irreversible or ambiguous. A twice-sent welcome message is annoying; a code of access sent to the wrong person is another type of problem.

Practical examples

A kind of reservation, from start to finish. There is a reservation for a two-room apartment, two adults, four nights, number with German prefix. Within a few seconds the confirmation in German starts. Two days before arrival starts the message with the instructions, the PDF of the apartment and the link to pay the fee calculated on two adults for four nights. The morning of arrival, the reminder leaves. The day of departure, check-out. The next day, the request for review. The staff intervenes only once: to send the code of the box.

A guest writing. The guest responds to the instruction message by asking if there is a parking lot. The message appears in the shared box. Staff respond by hand — the 24-hour window is open, so you can write free text. The conversation stays there, readable by anyone on the team.

An agency with the same problem. The scheme is not specific to short rentals: any activity with certain dates and repetitive communications has the same structure. We talk about it for a nearby sector in AI for travel agencies.

Mistakes to Avoid

We have all committed them, and we tell them in full in Six errors paid in the field. The two that weigh the most:

Silent failure. For a configuration error the payment link was not generated, and the code replaced the missing link with a fallback text. Result: for days messages were started without links, with zero executions in error in logs. A technical bug had turned into invisible commercial damage. The lesson: a silent fallback is worse than a noisy mistake. It always records the reason for failure in a field that someone can inspect.

Duplicate nodes. Importing a workflow from file adds nodes to those already present instead of replacing them. We found ourselves three identical activations in the same stream, and the guests received the same message two or three times. The lesson: After each import, count the nodes.

How to apply it in the company

If you run a business with appointments, arrivals, or recurring deadlines, the pattern moves almost identically. Questions to ask, in order:

  1. What communications are decided by a date? They are the first candidates: reminders, instructions, confirmations, reminders. If the answer is computable, automation is reliable.
  2. Does management software expose the data? An automatable process in theory is not if the software that contains the data does not make it accessible. It must be verified before, not after. We talk about it in Integrating management software.
  3. What happens when it fails? Design the mistake before success: who notices, how, and what he sees.
  4. What remains human? Decide explicitly what not to automate, and write it down. It's a project choice, not a forgetfulness.

The topic of the processing of personal data of guests must be addressed from the beginning: telephone numbers, dates of stay and documents are personal data for all purposes. The overall picture is in AI and GDPR.

Conclusion

A WhatsApp agent for short rentals It's not a chatbot: it's a rule-based system that reads a calendar and sends the right message at the right time, in the right language. The value lies not in technology — APIs are documented and the automation engine is a mature product — but in project decisions: what to automate, what to leave a person, and what to do when something breaks.

The two things we would do identically: keep generative AI out of operational messages, and never put access codes on a public address. The two we would do best from day one: make every failure noisy instead of letting it degrade in silence, and isolate each recipient from the others in mass mailings.

AI becomes useful when it enters processes. Giallo Studio helps SMEs and teams to build concrete, measurable and sustainable automations. If you want to see other real projects, find the collection in Case Studies; if you prefer to try before talking, some of the logics described here are playable in The Lab.

Giallo Studio guides: methodology and sources

How we apply it in the company

Related resources

AI consulting services and process automation

FAQ

What is a WhatsApp agent for short-term rentals?

It is a system that automatically sends operational messages to guests — booking confirmations, check-in instructions, check-out reminders and review requests — using dates and data from the booking management software. It is not a chatbot improvising answers: messages use approved templates, selected by rules based on dates and properties.

Do you need a chatbot with generative AI to automate check-in?

No, and in most cases it is the wrong choice. Check-in messages depend on definite data such as arrival date, apartment and guest numbers: a deterministic rule is more reliable than a model generating text. Generative AI makes sense elsewhere, for example suggesting a draft response to a free-form message, with a person reviewing it before sending.

How much does it cost to run such a system?

There are three recurring costs: the automation platform and hosting, with fixed subscriptions; WhatsApp messages, where only templates are charged, with rates varying by country and category — check Meta’s official pricing; and payment-processing fees. For a portfolio of 17 apartments, message costs are on the order of a few tens of euros per month.

Can you use your personal WhatsApp number?

No: business use requires a business number connected to Meta’s official APIs. Unofficial libraries controlling WhatsApp Web risk account suspension and provide access to neither delivery statuses nor templates. In this project, we used a dedicated number, separate from staff members’ personal numbers.

What happens if a guest responds to the automatic message?

The reply arrives in a shared inbox — in our case, a custom-built PWA — where staff read it and respond manually. Free-form text can be sent within 24 hours of the guest’s last message; outside that window, only previously approved templates can be sent.

Is the key safe’s code sent automatically?

No, and that is deliberate. A person sends the access code manually on the arrival day. An automation using the wrong recipient or date for this kind of information creates a security problem rather than an operational inconvenience: it is the clearest example of what should not be automated.

How long does it take to set up such a system?

This mainly depends on two external factors: Meta’s template approval, which takes days and must be allowed for in each language, and the quality of the booking management system’s data. Building workflows is the quickest part; the slow part is defining precisely what to say, to whom and when.

Put it into practice

Let's turn this guide into your first live workflow.

Tell us what process you want to lighten: we evaluate feasibility, return and first operational step.