Sending the right message at the right time is key to a great guest experience β but doing it manually for every booking takes a lot of time. With Nowistay's automated guest messages, you can set up messages that send automatically when a booking is confirmed, before check-in, or at check-out.
You can generate templates with AI in seconds, personalize them with dynamic variables (guest name, check-in time, welcome guide link, deposit link, identity check link, WhatsApp link, smart lock code, and more), choose how the message is sent (OTA inbox, email, WhatsApp, a combination, or by email to a team member), add conditions to target the right bookings, preview exactly what your guest will receive, and monitor every message from a single dashboard.
Even better, you can create multilingual versions of each template so your guests receive the message in their own language β with automatic fallback to the default language when needed.
This guide walks you through everything, step by step.
To use automated guest messages, you'll need:
If you haven't connected your property yet, check our guide on how to create your first property. To also send WhatsApp messages, see WhatsApp messaging with travelers.
You can also go directly to app.nowistay.com/hub/automations.

On the Guest Messages row, you'll see a property selector. Click it to choose which properties should have automated messages enabled.
Only properties connected through the Nowistay PMS method appear in this list. If a property is missing, make sure it's synced via the PMS integration.
On the Guest Messages row, click the message icon (the speech bubble icon). This opens the "Guest Message Templates" panel where you create and manage all your templates.
If this is your first time, you'll see a message: "No message templates yet β Add templates to automatically send messages to your guests at key moments."

You have two options to get started:
If you haven't created any templates yet, click the "Generate with AI" button. The AI will create a complete set of templates covering your three key moments:
The generated templates are personalized based on your property details, your welcome guide content, and your communication style. Generation usually takes a few seconds.
Once generated, you can edit, reorder, or delete any template. If you want to start fresh, delete all existing templates and the "Generate with AI" button becomes available again.
Click "+ Add message" to open the template editor and build a template from scratch. This is explained in detail in the next step.
Whether you're editing an AI-generated template or creating a new one, the template editor lets you configure everything about your automated message. Here's each field explained:
Choose which properties this template applies to:
This is when the message should be triggered. Pick one:
Manual templates. Pick "Manual" when you want a ready-made message you can send on demand instead of on a fixed event. The editor shows the helper text "Manual templates are only sent from the preview drawer." The Timing (hours) field is disabled (the message is never scheduled), and conditions are not applied automatically since you pick the booking yourself. Typical use cases: damage report follow-ups, custom check-in instructions for a specific booking, ad-hoc payment reminders, or any other message you compose often but with case-by-case tweaks.
How to send a manual template. Open the preview dialog (eye icon on the template card), pick a booking, and click "Preview". Nowistay resolves every variable as usual with the booking's real data β guest name, dates, smart lock code, and so on. Because the template is manual, the Subject and Message body fields become editable directly in the preview: tweak them with case-specific details (an exact arrival hour, an internal reference, an apology) and click "Send now" to deliver. See Step 6 below for the full preview workflow.
This controls how many hours before or after the trigger event the message is sent. The field is disabled when the trigger event is "Manual", since manual templates are not scheduled.
The editor shows a live example below the field. For instance: "Example: Check-in on 15/03/26 3:00 PM, message sent on 14/03/26 3:00 PM" (for 24 hours before check-in).

The "Send via" dropdown controls who receives the message and on which channel. There are three options:
The helper text under the field reminds you: "Auto sends via OTA when available, otherwise email. WhatsApp mode sends email when valid and also sends WhatsApp. Use the switch below to add WhatsApp in Auto mode."
Sending to a team member. When you pick "Team member" in the Send via dropdown, a second field appears just below: "Team member". Open it and select the person who should receive this message. Only active team members with a valid email show up in the list. If you've restricted the template to specific properties at the top of the form, only team members assigned to those properties are eligible. You can personalize the message with team-specific variables ({{team_member_first_name}}, {{team_member_last_name}}, {{team_member_full_name}}) alongside the usual booking variables (guest name, dates, property, smart lock code, and so on).
Example: alert your check-in team member of an upcoming arrival. A typical use case is to notify the person handling check-ins a few hours before a guest arrives, so they have everything ready. Here's the configuration:
You can build the same kind of internal alert for any moment in the booking: a cleanup notification for the housekeeping team by switching the trigger event to Check-out, or a "new booking received" briefing with Booking Confirmed.
Add WhatsApp on top of Auto. Inside the message body area, switch to the "WhatsApp" tab. There you'll find a toggle: "Also send on WhatsApp". Turn it on and Nowistay will deliver the message through BOTH channels β the standard channel chosen by Auto (OTA inbox or email) and WhatsApp. The helper text reads: "Enable this to also send the short WhatsApp version. In WhatsApp mode, it is always on."
WhatsApp message body. The WhatsApp tab has its own short message body, separate from the standard one. WhatsApp messages have a character limit, so keep it concise. You can write it yourself or click "Generate WhatsApp" to have the AI produce a short WhatsApp version from your standard message. All your variables are preserved.
What WhatsApp needs: the property must be connected through Nowistay PMS, your AI Channel Manager subscription must be active, and the WhatsApp integration must be connected. If the guest has no phone number, the WhatsApp send is skipped (the email or OTA delivery still goes through).
The subject line your guest will see when the message is delivered by email or in an OTA inbox. You can type plain text or include variables like {{guest_first_name}} or {{property_name}} to personalize it.
Example: "Welcome to {{property_name}}, {{guest_first_name}}!"
The subject is not used on WhatsApp (WhatsApp messages don't have a subject line).
The main content of your message. Write your message and use the "Insert variable" button (the { } icon above the text area) to add dynamic placeholders. When the message is sent, each variable is replaced with the real data from the booking.
Above the body, two tabs let you switch between the Standard body (used for OTA and email) and the WhatsApp body. Both versions share the same trigger, timing, conditions and variables β only the text content differs.
Variables are dynamic placeholders that get replaced with real booking data when the message is sent. Click the { } Insert variable button to browse them, or type them directly using the {{variable_name}} format. You can search by name using the search field at the top of the variable selector.
{{guest_first_name}} β Guest's first name (e.g., "John"){{guest_last_name}} β Guest's last name (e.g., "Doe"){{guest_full_name}} β Guest's full name (e.g., "John Doe"){{guest_count}} β Number of guests / adults (e.g., "2"){{guest_phone_number}} β Guest's full phone number (e.g., "+33612345678"){{guest_phone_last_4}} β Last 4 digits of the guest's phone number (e.g., "7890"){{guest_phone_last_6}} β Last 6 digits of the guest's phone number (e.g., "567890"){{host_first_name}} β Your first name (e.g., "Marie"){{host_full_name}} β Your full name (e.g., "Marie Dupont")These variables are resolved with the team member selected on the template, and are most useful when Send via = Team member.
{{team_member_first_name}} β Team member's first name (e.g., "Sophie"){{team_member_last_name}} β Team member's last name (e.g., "Martin"){{team_member_full_name}} β Team member's full name (e.g., "Sophie Martin"){{arrival_date}} β Check-in date in DD/MM/YYYY format (e.g., "15/03/2026"){{departure_date}} β Check-out date (e.g., "20/03/2026"){{number_of_nights}} β Number of nights (e.g., "5"){{arrival_day_name}} β Day of the week of arrival (e.g., "Monday"){{arrival_month_name}} β Month of arrival (e.g., "March"){{check_in_time}} β Check-in time in HH:MM format (e.g., "15:00"){{check_out_time}} β Check-out time (e.g., "10:00"){{property_name}} β Property name (e.g., "Sunny Apartment"){{property_address}} β Full address (e.g., "123 Rue de la Paix, Paris"){{welcome_guide_url}} β Direct link to the property's welcome guide{{smartlock_code}} β Guest's smart lock keypad code (when a smart lock is configured){{nuki_code}} β Same as above, kept as an alias for compatibility{{booking_channel}} β Booking platform (e.g., "Airbnb"){{reservation_number}} β Booking reference number{{booking_amount}} β Total amount (e.g., "450.00"){{currency}} β Currency code (e.g., "EUR"){{identity_check_link}} β Personal link the guest opens to complete identity verification{{deposit_payment_link}} β Personal link the guest opens to authorize the security deposit (pre-authorization, no immediate charge){{whatsapp_link}} β One-click WhatsApp link that opens the guest's dedicated conversation with you on WhatsApp. Useful to drop in OTA or email messages so the guest can move the conversation to WhatsApp in one tap.Understanding where each message ends up β and where the guest can reply β helps you pick the right combination of channels for each template.
When Send via = Auto and the booking comes from an OTA, the message is delivered straight to the guest's inbox inside that booking platform. The guest receives it the same way they'd receive a manual message from you on Airbnb or Booking.com.
Visible in the Messages thread: yes. The message appears in the unified conversation thread in Nowistay's Messages section, alongside any other messages exchanged on that booking.
When the booking is a direct booking, a Vrbo booking, or when Send via = WhatsApp, Nowistay delivers the message by email to the guest's address. The sender name is your host name, and if the guest replies to the email, it will be routed to guest conversation and the AI will reply.
Visible in the Messages thread: yes
This means that if the guest hits "Reply" on the email, their reply lands directly in messages conversation thread of the guest along with all other channel messages (all is unified). The AI will answer automatically and you receive an email notifcation. You can also manually send a message byemail to the guest from the messages thread in the app.
WhatsApp delivery happens when Send via = WhatsApp, or when Send via = Auto and the "Also send on WhatsApp" toggle is enabled. The short WhatsApp version of the message is sent to the guest's phone number.
Visible in the Messages thread: yes.
WhatsApp messages appear in the same unified conversation as OTA messages, with a small WhatsApp icon so you can tell them apart. From there you can keep chatting with the guest on WhatsApp directly from the Nowistay Messages section.
When Send via = Team member, the message bypasses the guest entirely and is sent by email to the team member you selected on the template. The OTA inbox and WhatsApp are not used in this mode. This is the right channel for internal alerts and team coordination tied to a booking event (upcoming check-in, check-out, new booking received), not for traveler-facing communication.
Visible in the Messages thread: no. Team-member emails do not appear in the guest conversation thread (they are not sent to the guest). To confirm a team-member message was sent, open the clock icon (see "Monitor sent and scheduled messages" below): each scheduled message shows the recipient name and email, so you can tell guest messages apart from team-member ones.
Below the message body, you'll find the Conditions section. Conditions let you fine-tune exactly which bookings trigger this message. Here's each condition explained:
Filter by the platform the booking came from.
You can select multiple platforms. For example, select both "Airbnb" and "Booking.com" to cover OTA bookings but exclude direct ones.
When to use it: If you send different check-in instructions depending on the platform (for instance, Airbnb guests get a slightly different message than Booking.com guests), create two separate templates with different source platform filters.
Only send the message if the guest is staying at least this many nights.
When to use it: You might want to send a special welcome message with extra tips for long stays (e.g., only for guests staying 7+ nights), or skip a detailed check-in reminder for one-night stays where it would arrive too late.
Only send the message if the booking has this status. Options:
When to use it: In most cases, keep this set to "Confirmed" so you only message guests with firm reservations. You could create a specific template for cancelled bookings to send a follow-up or ask for feedback.
If the message is running late (for example, because the booking was imported after the trigger time already passed), this setting controls how late is too late. If the message would be sent more than this many hours after the intended time, it's skipped entirely.
When to use it: If you import a batch of past bookings and don't want guests to receive a "check-in reminder" for a stay that already started 3 days ago, a 24-hour window prevents that from happening.
A real example with last-minute bookings: The default 24-hour window can work against you if you accept reservations late on the arrival day. Say your check-in time is 5:00 PM and your check-in instructions are set to send 24 hours before arrival. A guest books at 11:00 PM on the day of arrival, six hours after your check-in time. The intended send time for that message (24 hours before a 5:00 PM check-in) was 5:00 PM the previous day, so by the time the booking lands it is already 30 hours late. With the window left at its 24-hour default, the message is treated as too old and skipped, and that guest never receives their check-in instructions. It is an easy one to miss: you set the timing to "24 hours before" once and forget that the same window also caps how late a message can still go out.
How to fix it: Set the window wide enough to cover your latest possible booking. For a 5:00 PM check-in where you take reservations up to around 11:00 PM the same day, raise the max send window to 30 or 31 hours instead of 24. A last-minute guest then still gets the message right after booking, while genuinely old imported bookings are still filtered out. A simple way to size it: take the hours your message sends before check-in (24 here), add the gap between your check-in time and the latest time you accept bookings (about 6 hours), then add an hour of margin.

These let you add custom rules based on specific booking information. Click "Add condition" to create one. Each condition has three parts:
1. Info type β what data to check:
2. Operator β how to check it:
3. Value (required for "Equals", "Does not equal", "Contains", and "Does not contain") β the value to compare against. For Guest full name, the comparison ignores case (so "smith" matches "Smith"). For Booking ID, paste the exact booking ID β you can find it in the booking detail panel or in the URL of a booking page.
If no conditions are set, you'll see: "No conditions β message will always be sent."
Practical examples:
{{smartlock_code}} so you don't send a message with an empty code.{{identity_check_link}} only if the guest hasn't completed identity verification yet.{{deposit_payment_link}} only if the guest hasn't authorized the deposit yet.You can add multiple conditions β all must be met for the message to send. Remove a condition by clicking the X button next to it.
At the bottom of the editor, the Active switch lets you enable or disable a template. When turned off, the template won't trigger for new bookings but is kept so you can reactivate it later.
One of the most powerful features of Nowistay's automated messages is built-in multilingual support. Instead of creating separate templates for each language, you can add language variations directly within a single template. When the message is sent, Nowistay automatically detects the guest's language from their booking profile and sends the matching version.
Each template has a default language β this is the main version you write first (typically the language most of your guests speak). You can then add translations for up to 15 supported languages including English, French, Spanish, German, Italian, Portuguese, Dutch, Japanese, Korean, Chinese, Arabic, Hindi, Bengali, Turkish, and Russian.
When a message is scheduled for a guest:
This means you don't need to worry about every language β just add translations for the ones that matter most to your guests, and the default version covers everyone else.
To add a new language to a template:
You can switch between language tabs at any time to edit each version independently. Each language variation has its own subject and message body (and its own WhatsApp version), but shares the same trigger event, timing, conditions, and properties.
Don't want to translate manually? Nowistay can translate your template using AI. When editing a language variation:
{{variables}} exactly as they areThe AI translation is smart enough to produce natural, contextually appropriate messages β not word-for-word literal translations. It also handles all dynamic variables correctly, so {{guest_first_name}} or {{property_address}} will still be replaced with the right values when the message is sent.
To remove a language variation you no longer need, switch to that language tab and click the remove button. The default language cannot be removed.
{{variables}}, so they work identically regardless of languageBefore going live, you can preview exactly what your guest will see and even send a real test message.
Manual templates: editable preview. If the template's trigger event is "Manual", the Subject and Message body fields are editable directly in the preview. The standard resolution still runs (every variable is replaced with the booking's real data), so you start from a fully filled-in message and only tweak the parts you want to change for this specific booking. The WhatsApp body is also editable when the template uses WhatsApp delivery. For all other trigger events, the preview is read-only.
The preview shows:
The system also checks whether this message would actually be sent for the selected booking. If it wouldn't, you'll see a reason explaining why, including:
This makes it easy to debug why a particular guest didn't receive a message.
If the message is eligible, you'll see a "Send now" button with a warning: "This will send a real message to the guest through their booking platform."
Click "Send now" and confirm to send the message immediately for that booking. The button changes to "Message sent!" once delivered. This is useful for testing, or for manually sending a one-off message to a specific guest.

Back in the templates panel, you have several ways to organize your templates:
Templates are grouped by trigger event (Booking Confirmed in green, Check-in in blue, Check-out in orange). Within each group, drag the handle on the left side of any template to reorder. If multiple templates match a booking, they send in this order.
Each template card has an on/off switch on the right side. Inactive templates appear with a dashed border and muted background so you can easily spot them. Turning a template off keeps it saved β you won't lose your work.
Use the "Filter by property" dropdown at the top of the panel to see only templates that apply to a specific property, or choose "All templates" to see everything.
Click the duplicate icon on a template card to create a copy you can adjust β useful when you want one template per OTA, or per property, with small variations.
Click the trash icon on any template card. You'll be asked to confirm: "Are you sure you want to delete this message template?"
Click the clock icon at the bottom-right of the templates panel to open the "Scheduled Messages" view. This is your full history per guest, including emails that don't appear in the in-app Messages thread.
Each entry shows:
The list loads 20 messages at a time and loads more as you scroll down.
Tip: if you want to verify that an automated email was actually delivered to a Direct or Vrbo guest (since email messages don't show up in the Messages thread), the Scheduled Messages view is where you'll see it.

{{guest_first_name}} and {{property_name}} to make the message feel warm, not robotic{{welcome_guide_url}} so your guests have everything they need in one link{{whatsapp_link}} so the guest can move the conversation to WhatsApp in one tap. It opens their dedicated conversation with you on WhatsApp.{{identity_check_link}} with the "Identity Verification β Does not exist" condition, and {{deposit_payment_link}} with the "Security deposit β Does not exist" condition, so the reminders only go out when there's actually something to do.{{smartlock_code}}, and a separate template with "Lock code β Does not exist" that gives alternative access instructions