# Automations

## Automations — Complete Guide

Automations in Guestway let you build powerful, rule-based workflows that run automatically across your entire portfolio. From sending a pre-check-in message three days before arrival to firing a webhook when a long-stay guest books, Automations handle it without you having to think about it.

This guide walks through everything: how Automations are structured, how to build one from scratch, every action type and condition category, and tips for getting the most out of the system.

{% embed url="<https://www.youtube.com/watch?v=d4QJAvvLov0>" %}

***

### How Automations Are Structured

Before diving in, it helps to understand the three-level hierarchy:

```
Automation (Workflow Group)
└── Schedule
    └── Action (x many)
```

**Automation** — The top-level container. It has a name, a status (Draft / Testing / Live), and defines which properties it applies to.

**Schedule** — A named timing context inside an Automation. Each Schedule holds a group of related Actions and can have its own filters (length of stay, advance notice). One Automation can have multiple Schedules — for example, a "Short Stay" schedule and a "Long Stay" schedule running under the same Automation.

**Action** — The thing that actually happens. Each Action belongs to a Schedule and defines *when* it fires, *what* it does, and any *conditions* that must be met first.

***

### Getting to Automations

Navigate to **Settings → Organization → Automations**. You'll see all your existing Automations displayed as cards, each showing:

* Status badge: **Draft**, **Testing**, or **Live**
* Whether it applies to **All properties** or specific listings/multi-units/complexes
* Number of Schedules and Actions inside
* Last updated timestamp

Click any card to open and edit it. To create a new one, use the **Create** button.

***

### Creating an Automation — Step by Step

#### Step 1 — Name Your Automation

When you click **Create**, Guestway opens a new Automation editor pre-named "Untitled Automation". Click the name field at the top to give it something meaningful — for example, *"Pre & Post-Stay Guest Messaging"*.

You'll notice a **Draft** badge in the top-left corner. Your Automation stays in Draft until you explicitly enable it, so you can build and configure everything without anything being sent.

***

#### Step 2 — Choose Your Target Properties

By default, a new Automation is set to **All properties** (global). This means it applies to every listing, multi-unit, and complex in your organization.

If you want to scope it to specific properties, toggle off "All properties" and pick from:

* **Listings** — individual units
* **Multi-Units** — grouped units under one roof
* **Complexes** — property complexes

You can mix and match — for example, select three specific listings and one multi-unit.

***

#### Step 3 — Add a Schedule

Inside the Automation editor, click **Add Schedule**. A new Schedule card appears.

Give it a descriptive name — something like *"Short Stays Only"*.

**Schedule Filters** let you narrow down which reservations this Schedule applies to:

| Filter             | Description                                                                                                                 |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------- |
| **Length of stay** | Only run actions for reservations matching a stay duration. Use operators like *Equals*, *Greater than*, *Is between*, etc. |
| **Advance notice** | Only run for reservations booked with a certain amount of notice before check-in.                                           |

Toggle "Any length of stay" or "Any advance notice" to disable the respective filter and apply to all reservations.

You can add multiple Schedules to one Automation. Each Schedule runs independently — useful when you want different action sets for different stay lengths without creating separate Automations.

***

#### Step 4 — Add Actions to a Schedule

Click into a Schedule to open the Schedule editor, then click **Add Action**.

Choose which **anchor type** this action is timed relative to:

| Anchor                   | When it fires                                 |
| ------------------------ | --------------------------------------------- |
| **Booking Confirmation** | Relative to the moment a booking is confirmed |
| **Check-in**             | Relative to the guest's check-in date/time    |
| **Check-out**            | Relative to the guest's check-out date/time   |

The vertical timeline at the top of the Schedule editor shows all your Actions in chronological order — giving you an instant visual of when each one fires.

***

### Configuring an Action

When you click an Action from the timeline, a configuration panel slides in on the right. Here's what you can set:

#### Timing

**Timing** controls when the Action fires relative to its anchor:

* **Direction**: *Before*, *After*, or *On* (at the exact moment of the anchor)
* **Value + Unit**: e.g. *3 days*, *2 hours*, *30 minutes*, *1 week*
* **At a specific time**: When using *day(s)* or *week(s)* offset, you can optionally pin the action to fire at a specific time of day — e.g. "3 days before check-in **at 10:00 AM**"

> Note: *Before* is not available for Booking Confirmation (you can't send before a booking has happened). If you select Booking Confirmation, only *After* and *On* are offered.

***

#### Channel Filter

By default, an Action applies to **All Channels**. Use the Channel Filter to scope delivery to specific booking channels:

* **Include Only** — only fire this Action for bookings from the selected channels
* **Exclude** — fire for all channels *except* the ones selected

***

#### Action Type

Choose what the Action actually *does*. There are five types:

**1. Guest Message**

Sends a message to the guest. Configure:

* **Medium**: SMS, Email, WhatsApp, or Channel Chat
* **Message body**: Compose your message using plain text, or use template variables (e.g. `{{guest.first_name}}`, `{{reservation.check_in_date}}`) to personalize it automatically

**Email-specific options:**

| Option            | Description                                                                                                                                  |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| **Content mode**  | *Simple Text* — plain text email. *Rich Text* — WYSIWYG editor with formatting. *HTML* — write raw HTML with a full template variable panel. |
| **Subject line**  | Optional custom email subject                                                                                                                |
| **CC / BCC**      | Add additional recipient addresses. Type an email and press Enter, comma, or semicolon to add.                                               |
| **Send as draft** | Creates the message in the conversation as a draft instead of sending automatically — useful for review before sending                       |

**WhatsApp:**

Select one of your pre-approved WhatsApp templates. A preview is shown so you can confirm the content before saving.

**Channel Chat fallback:**

When using Channel Chat as the medium, enable **Fallback to Email** so that if channel chat delivery fails (e.g. the channel doesn't support direct messaging), Guestway automatically retries via email.

**WhatsApp fallback:**

Similarly, enable **Fallback to SMS** for WhatsApp deliveries — if WhatsApp delivery fails, the message is sent via SMS instead.

***

**2. Booker Message**

Identical to Guest Message, but the message is sent *only to the primary booker* — the person who made the reservation, not every guest in the party. Useful for sending booking receipts, pre-arrival instructions, or post-stay reviews to the responsible party.

***

**3. Conversation Notification**

Triggers an action on the conversation thread in your Inbox, rather than sending an outbound message. Options:

| Option                  | Description                                                                            |
| ----------------------- | -------------------------------------------------------------------------------------- |
| **Mark as Needs Reply** | Bumps the conversation and flags it for your team to respond                           |
| **Flag conversation**   | Marks the conversation for follow-up action                                            |
| **Add internal note**   | Posts a note inside the conversation thread — visible to your team only, not the guest |

This is ideal for building internal workflows: e.g. post an internal note 1 day before check-in reminding your team to confirm the key handoff, or flag a conversation if a late checkout is detected.

***

**4. Ad-hoc Email**

Sends a custom email to any email address — not necessarily the guest. Configure:

* **To**: One or more recipient email addresses (required)
* **CC / BCC**: Optional additional recipients
* **Subject**: Email subject line
* **Body**: Email body with template variable support

Use this to notify your cleaning team, send a maintenance alert, or email a property owner — all triggered automatically based on reservation events.

***

**5. Webhook**

Sends an HTTP POST request to a URL of your choice when the action fires. Configure:

* **URL**: The endpoint to call

Guestway sends the webhook with relevant reservation context. Use this to integrate with external tools, trigger Zapier/Make workflows, update a third-party system, or push data to your own backend.

***

### Conditions

Conditions are rules that must evaluate to *true* for the Action to fire. If any condition fails, the Action is skipped for that reservation.

Add conditions from the **Conditions** section of the action panel. Each condition is structured as:

> **\[Field]** **\[Operator]** **\[Value]**

For example:

* *Reservation → Total Guests* **Greater than** *4*
* *Guest → Language* **Is** *French*
* *Property → Tags* **Has any of** *"pet-friendly", "pool"*

#### Condition Categories

Conditions are grouped into categories:

| Category                       | What it covers                                                            |
| ------------------------------ | ------------------------------------------------------------------------- |
| **Guest**                      | Guest profile data: language, satisfaction score, first-time guest, etc.  |
| **Review**                     | Post-stay review data                                                     |
| **Reservation**                | Stay details: total guests, nights, reservation status, total price, etc. |
| **Booking**                    | Booking-level data: booking source, booking date, etc.                    |
| **Reservation – Custom Field** | Custom fields defined on your reservations                                |
| **Property**                   | Property attributes: name, tags, type, etc.                               |
| **Property – Custom Field**    | Custom fields defined on your properties                                  |
| **Listing**                    | Listing-specific data                                                     |
| **Multi-unit**                 | Multi-unit specific data                                                  |
| **Complex**                    | Complex-level data                                                        |

#### Operators

The available operators depend on the field type:

| Operator                             | Applies to                                 |
| ------------------------------------ | ------------------------------------------ |
| Is / Is not                          | Text, enum, boolean, ID fields             |
| Greater than / Less than / ≥ / ≤     | Numbers, dates                             |
| Is between                           | Numbers, dates (inclusive range)           |
| Contains text / Doesn't contain text | Text fields                                |
| Starts with / Ends with              | Text fields                                |
| Has any of / Has none of             | Array/multi-value fields                   |
| Exists / Doesn't exist               | Any field (checks for presence of a value) |

You can add multiple conditions to a single Action. All conditions must be true for the Action to fire (AND logic).

***

### Waiting Conditions

Waiting Conditions are a powerful advanced feature. Instead of skipping an Action when a condition isn't met, Waiting Conditions *pause* the Action and wait for the condition to become true — up to a configurable maximum wait time.

**Example:** You send a message that includes the guest's smart lock code (`{{reservation_codes}}`). You add a Waiting Condition: *"Smart lock code has been generated"*. If the code isn't ready yet when the Action is scheduled to fire, Guestway waits — and sends the message as soon as the code is generated.

#### Configuring the Max Wait

When using Waiting Conditions, you must define a **Max Wait Until** — how long Guestway should wait before giving up:

| Type                  | Description                                        |
| --------------------- | -------------------------------------------------- |
| **Maximum wait time** | Wait up to a fixed duration (e.g. 2 hours, 3 days) |
| **Check-in**          | Wait until a certain time relative to check-in     |
| **Check-out**         | Wait until a certain time relative to check-out    |

> Guestway will automatically suggest adding a "smart lock code generated" Waiting Condition when it detects `{{reservation_codes}}` in your message body. Accept the suggestion with one click.

***

### Automation Statuses

Every Automation has one of three statuses:

| Status      | What it means                                                                                                                                                  |
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Draft**   | The Automation is saved but inactive. Nothing is sent. Use this while building and testing.                                                                    |
| **Testing** | The Automation is active but fires internally only — actions are queued and logged but not actually delivered. Perfect for validating logic before going live. |
| **Live**    | Fully active. Actions fire and are delivered to guests/systems as configured.                                                                                  |

Toggle the status from the Automation editor using the **Enabled** toggle and the **Testing Mode** switch. The status badge at the top of the editor updates in real time.

***

### Unsaved Changes

While editing an Automation, a small **Unsaved changes** indicator appears in the header whenever you have pending changes. Guestway also warns you if you try to leave with unsaved changes — offering you the option to **Save & Continue** or discard.

Always save before activating an Automation.

***

### Managing Schedules and Actions

#### Duplicating

Both Schedules and Actions can be duplicated with a single click from their respective menus. Duplicating is useful when you want a near-identical action with a different timing or condition.

#### Deleting

Delete a Schedule or Action from the same menu. Deleting a Schedule removes all its Actions. This action is not undoable (unless you discard your changes before saving).

***

### Tips & Best Practices

**Start in Draft, graduate to Testing, then go Live.** Build your Automation fully, test it against a few real reservations using Testing mode, then flip to Live with confidence.

**Use Schedules to segment by stay length.** Instead of stacking a single Schedule with conflicting conditions, create separate Schedules with Length-of-Stay filters — e.g. one for stays under 3 nights, one for 3–7 nights, and one for 7+ nights.

**Name your Actions clearly.** Action names appear in the vertical timeline. Descriptive names like "Pre-arrival SMS — 2 days before check-in" make it easy to scan the timeline at a glance.

**Use Waiting Conditions for anything that depends on external data.** Smart lock codes, manual reviews, or any field that might not be populated at booking time — Waiting Conditions ensure the message goes out only when it's ready.

**Combine Channel Filter + Conditions for OTA-specific workflows.** Use Channel Filter to target a specific channel, then add Conditions to further narrow based on reservation attributes. Example: send a Channel Chat message only to Airbnb bookings where the reservation is longer than 7 nights.

**Use Ad-hoc Email for internal operations.** The guest doesn't need to be in the loop for every event. Use Ad-hoc Email to notify your cleaning lead when a checkout is confirmed, or email your owner report when a booking is made for a specific property.

**Template variables make every message feel personal.** Guestway supports a rich set of template variables — guest name, check-in/check-out dates, property name, reservation codes, and more. Use them liberally to avoid generic-feeling messages.

***

### Frequently Asked Questions

**Can one Automation apply to some properties but not others?** Yes. Toggle off "All properties" and select specific listings, multi-units, or complexes. You can mix types.

**What happens if a condition is not met?** The Action is skipped for that reservation. No message is sent, no webhook fires. Other Actions in the same Schedule are unaffected.

**Can I have multiple Schedules in one Automation?** Yes — and it's encouraged. Use multiple Schedules to handle different timing contexts or guest segments under a single Automation umbrella.

**What's the difference between a Condition and a Waiting Condition?** A Condition either passes or fails at the time the Action is scheduled to fire — if it fails, the Action is skipped. A Waiting Condition pauses the Action until the condition becomes true (or the max wait expires).

**Can I send an email with CC and BCC?** Yes. When using Email as the message medium for a Guest Message, expand the email options section to add CC and BCC addresses.

**What is Testing mode?** Testing mode lets you run your Automation as if it were live — actions are queued and processed — but nothing is actually delivered to guests or external systems. It's the safest way to validate your setup.

**Can I use HTML in my email messages?** Yes. Switch the email content type to **HTML** in the Action config panel. A template variable panel is available alongside the HTML editor so you can insert variables without remembering the syntax.

***

### Conclusion

Automations can significantly streamline your business operations and simplify your workflow. However, setting up effective automation requires careful planning. \
\
Let's end this with a straightforward example: "Requesting a review based on guest satisfaction." \
This automation automatically solicits reviews from guests if they are deemed "happy" at the end of their stay. The strategy is to avoid asking reviews from "unhappy" guests to prevent lowering your review scores. By targeting satisfied guests, you maintain high scores, and the process is entirely automated. Isn't that convenient? Enjoy!

{% @guideflow/guideflow-embed requestedUrl="<https://app.guideflow.com/player/mk6jv8eiqr>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.guestway.io/settings/organization-settings/automations.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
