> For the complete documentation index, see [llms.txt](https://support.holidayhero.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://support.holidayhero.com/the-basics/communication/conditional-rules.md).

# Conditional Rules

***

#### **What are conditional rules?** <a href="#what-are-conditional-rules" id="what-are-conditional-rules"></a>

*Conditional rules* are additional filters on top of a message template's schedule. They determine **if** a scheduled message should actually be sent to the guest, based on the reservation's details.

Where the schedule ("When") decides *at what moment* a message goes out, a conditional rule decides *whether* it goes out at all. A template can hold multiple rules — all active rules must pass for the message to be sent. If any rule fails, the message is skipped.

<figure><img src="/files/UJhADqruZWAcRDRj9dtN" alt=""><figcaption></figcaption></figure>

#### **Rules and Scheduling** <a href="#rules-and-scheduling" id="rules-and-scheduling"></a>

Conditional rules are evaluated at the scheduled moment of sending. This means:

* A message is still scheduled as normal based on the reservation timing.
* At the moment of sending, we check all active rules against the reservation.
* If one or more rules don't match, the message is skipped for that reservation.

This allows you to re-use a single message template across many reservations while still tailoring *who* actually receives it.

#### **Activation** <a href="#activation" id="activation"></a>

Every conditional rule has an active/inactive toggle. An inactive rule is ignored during evaluation, so you can temporarily disable a rule without deleting it. This is useful for seasonal rules that you'd like to re-use later in the year.

***

#### Rule Types <a href="#rule-types" id="rule-types"></a>

There are three types of conditional rules available.

#### **1. Date Range** <a href="#id-1-date-range" id="id-1-date-range"></a>

Send only if the reservation's check-in or check-out date falls within (or outside) a specific period.

* **Field** - The reservation date to check against.
  * *Check-in Date* - evaluates the reservation's arrival date.
  * *Check-out Date* - evaluates the reservation's departure date.
* **Operator**
  * *Between* - the selected date must fall inside the start and end dates.
  * *Not between* - the selected date must fall outside the start and end dates.
* **Start Date / End Date** - the boundaries of the period.

**Example:** A "Winter welcome" message that should only go out to guests checking in between `2026-12-01` and `2027-02-28`. Use *Check-in Date* + *Between* with those dates.

<figure><img src="/files/wpPMJHkVcppmYX1MIU2e" alt=""><figcaption></figcaption></figure>

#### **2. Check-in Status** <a href="#id-2-check-in-status" id="id-2-check-in-status"></a>

Send based on whether the guest has already checked in at the moment the message is scheduled to be sent.

* **Operator**
  * *Equals* - the guest's check-in status must match the selected value.
  * *Not Equals* - the guest's check-in status must not match the selected value.
* **Status**
  * *Checked In* - the guest has completed check-in.
  * *Not Checked In* - the guest has not yet completed check-in.

**Example:** A reminder "Don't forget to check in" should only go out to guests who haven't checked in yet. Use *Equals* + *Not Checked In*.

**Note:** this rule is only meaningful for messages scheduled around or after the check-in moment. A message scheduled three days before arrival will always evaluate as "Not Checked In".

<figure><img src="/files/aroF4Yux8NIH34Tb4OFw" alt=""><figcaption></figcaption></figure>

#### **3. Stay Date**

Send based on whether one or more specific dates fall within the guest's stay (from check-in to check-out).

* **Operator**
  * *Any in stay* - at least one of the selected dates must fall within the guest's stay.
  * *None in stay* - none of the selected dates may fall within the guest's stay.
* **Dates** - one or more specific dates. Add dates one by one using the date picker. Each added date is shown as a tag and can be removed.

**Example:** A "Happy New Year" message that should go to guests staying on December 31st. Add `2026-12-31` with *Any in stay*. Any reservation overlapping that date will receive the message, regardless of whether the guest checked in that day or was mid-stay.

**Example:** A rule to exclude guests whose stay overlaps a local holiday when a specific service isn't available. Add the holiday dates with *None in stay*.

<figure><img src="/files/YSEjWVardJRxJjHA5wWG" alt=""><figcaption></figcaption></figure>

***

#### **Combining Rules** <a href="#combining-rules" id="combining-rules"></a>

A message template can have multiple conditional rules at the same time. All active rules must pass — they are combined with AND logic. For example, a template with both a *Date Range* rule (check-in in December) and a *Check-in Status* rule (Not Checked In) will only be sent for December check-ins who haven't checked in yet.

If you need OR logic (e.g. "send to summer *or* winter guests"), create separate message templates instead of combining rules on one template.

***

#### Frequently Asked Questions <a href="#frequently-asked-questions" id="frequently-asked-questions"></a>

<details>

<summary>What happens if I add a rule to a message template that was already scheduled?</summary>

Rules are evaluated at the moment of sending, not at the moment of scheduling. This means adding or changing a rule affects all future sends, including messages that were already scheduled before the rule was added.

</details>

<details>

<summary>Can I deactivate a rule instead of deleting it?</summary>

Yes. Every rule has an active toggle. An inactive rule is ignored during evaluation, so you can keep seasonal or situational rules around without them affecting the template.

</details>

<details>

<summary>Why is my message not being sent even though the schedule is correct?</summary>

If a conditional rule doesn't match, the message is skipped at sending time. Check the active rules on the template and verify that the reservation meets all of them. Remember: all active rules must pass (AND logic).

</details>

<details>

<summary>Can I use conditional rules in combination with listing filters?</summary>

Yes. Listing connections and conditional rules work independently. A message will only be considered if the reservation's listing is connected to the template *and* all active rules pass.

</details>
