Room & Cleaning Automations

Automate room status changes and cleaning assignments in HelloShift. There are two types of automations:

  1. Triggers - React to guest events (checkout, check-in, cancellation)

  2. Room Jobs - Run on a schedule to create cleaning tasks automatically

Overview

Type

Purpose

Access

Triggers

React to events (checkout → dirty)

Automations > Triggers

Room Jobs

Schedule-based task creation

Automations > Scheduled Jobs


Part 1: Room Jobs (Scheduled Automations)

Room Jobs automatically create cleaning tasks based on schedules and guest stay patterns. They run daily at a configured time and apply to rooms matching specific conditions.

Accessing Room Jobs

  1. Go to Automations > Scheduled Jobs > Room

  2. Click the Room Jobs tab

  3. You'll see a list of available room automations


Default Room Jobs

HelloShift creates these room jobs when you set up your site:

Daily Clean

  • Condition: Mid-stay guests (guests currently in-house, not arriving or departing)

  • Schedule: Daily at 6:00 AM

  • Action: Create "Clean" task

  • Purpose: Ensures stayover rooms get daily cleaning tasks

Departure Clean

  • Condition: Guests departing today

  • Schedule: Daily at 6:00 AM

  • Action: Create "Clean" task

  • Purpose: Creates checkout cleaning tasks for departing guests

Day 3 Clean (Every 3 Days)

  • Condition: Mid-stay guests on day 3, 6, 9, etc. of their stay

  • Schedule: Daily at 6:00 AM

  • Action: Clean on match, Light Clean otherwise

  • Purpose: Reduces daily cleaning for long-stay guests while ensuring periodic full cleans

Schedule-Based Clean

  • Condition: Rooms with custom schedules configured

  • Schedule: Daily at 6:00 AM

  • Action: Create "Clean" task only if room's schedule matches today

  • Purpose: Respects individual room cleaning schedules (e.g., "clean Mondays and Thursdays")

Import Room Data

  • Condition: All rooms

  • Schedule: Daily at 6:00 AM

  • Action: Pull room status from PMS

  • Purpose: Syncs room occupancy and status from your Property Management System


Room Job Settings

Each room job has these configurable options:

Setting

Description

Name

Job identifier (e.g., "Daily Clean", "Departure Clean")

Condition

Which stays/rooms to target (mid-stay, departing, all rooms)

Send Time

Time of day when the job runs

Schedule

Recurrence pattern (daily, weekly, specific days)

Check

Additional condition to evaluate (Always, Every 3 Days, Custom)

Action

What task to create (Clean, Light Clean, Default Task)

Status

Active or Inactive


Available Checks

Check

Description

Always

No additional condition - always execute

Stayover (every 3 days)

Only on day 3, 6, 9, etc. of guest stay

Custom Condition (Liquid)

Write your own logic

Custom Check Example

For properties with VIP-specific cleaning schedules:

{% if guest_stay.guest_type contains 'VIP' %}true{% else %}false{% endif %}

Available Actions

Action

Description

Clean

Creates a standard "Clean" task

Default Cleaning Task

Uses the room's configured default task type

Condition True: Clean, False: Light Clean

Creates "Clean" when check passes, "Light Clean" otherwise

Import Room Data

Pulls room status from PMS


Enabling/Disabling Room Jobs

  1. Go to Automations > Scheduled Jobs > Rooms

  2. Find the job in the list

  3. Click Edit

  4. Change Status to Active or Inactive

  5. Click Save

Note: Jobs are created as Inactive by default. You must enable them to start generating tasks.


Part 2: Triggers (Event-Based Automations)

Triggers respond to guest lifecycle events and execute actions immediately or after a delay.

Accessing Triggers

  1. Go to Automations > Triggers

  2. You'll see a list of existing triggers

  3. Click New Trigger to create an automation


Default Triggers

HelloShift creates these system triggers when you set up your site:

Post-Checkout Room Update

  • Event: Guest Checked Out

  • Action: Set Room Vacant/Dirty

  • Purpose: Automatically marks room as dirty when guest departs

Post-Booking Room Assignment

  • Event: Guest Booking Confirmed

  • Action: Set Default Cleaning Task

  • Purpose: Pre-assign cleaning task based on room's default

Post-Cancel Room Update

  • Event: Booking Cancelled

  • Action: Remove room assignment if applicable


Creating a Trigger

Step 1: Choose the Event

Select when the automation should trigger:

Event

When It Fires

Guest Booking Confirmed

New reservation synced from PMS

Guest Checked In

Guest checks in at front desk

Guest Checked Out

Guest checks out

Booking Cancelled

Reservation cancelled

Guest Room Changed

Room number changed on reservation

Step 2: Set a Condition (Optional)

Add conditions to limit when the automation runs:

Condition

Description

Always

No condition, always execute

Guests Arriving Today

Only for same-day arrivals

Guests Departing Today

Only for same-day departures

In-Stay Guests

Only for current in-house guests

Custom

Write your own Liquid template

Step 3: Choose the Action

Select what happens when the trigger fires:

Action

Description

Set Room Occupied/Clean

Changes room to Occupied status, Clean condition

Set Room Vacant/Dirty

Changes room to Vacant status, Dirty condition

Set Cleaning Task: Clean

Sets cleaning task to "Clean"

Set Default Cleaning Task

Uses room's configured default task

Remove Cleaning Task

Clears any cleaning task assignment

Assign Default Cleaner

Assigns room's default cleaner

Notify Cleaner on Checkout

Sends notification to assigned cleaner

Step 4: Set Delay (Optional)

Add a delay before the action executes:

  • 0 seconds (default) = Immediate

  • 300 seconds = 5 minutes after event

  • 3600 seconds = 1 hour after event

Delays are useful for:

  • Giving front desk time to complete checkout

  • Allowing for late checkouts

  • Staggering cleaner notifications


Common Automation Scenarios

Scenario 1: Auto-Mark Dirty on Checkout

Goal: When guest checks out, automatically mark room dirty

Setup:

  • Event: Guest Checked Out

  • Condition: Always

  • Action: Set Room Vacant/Dirty

  • Delay: 0 (immediate)

Scenario 2: Assign Cleaner on Checkout

Goal: When guest checks out, assign the room's default cleaner

Setup:

  • Event: Guest Checked Out

  • Condition: Guests Departing Today

  • Action: Assign Default Cleaner

  • Delay: 300 (5 minutes)

Scenario 3: Set Checkout Task for Departures

Goal: Set cleaning task to "Checkout" for departing guests

Setup:

  • Event: Guest Checked Out

  • Condition: Always

  • Action: Set Cleaning Task: Clean

  • Delay: 0

Note: Create a custom action for "Checkout" task type if needed.

Scenario 4: Notify Housekeeping Lead

Goal: Alert housekeeping supervisor when VIP checks out

Setup:

  • Event: Guest Checked Out

  • Condition: Custom (check for VIP tag)

  • Action: Notify Cleaner on Checkout

  • Delay: 0


Custom Conditions

For advanced scenarios, write custom Liquid templates that return "true" or "false".

Available Variables

Variable

Description

guest_stay.arrival_today

True if arriving today

guest_stay.departure_today

True if departing today

guest_stay.instay

True if currently in-house

guest_stay.room_numbers

Room numbers

guest.score

Guest satisfaction score

Example: VIP Guests Only

{% if guest_stay.guest_type contains 'VIP' %}true{% else %}false{% endif %}

Example: Long Stays

{% assign nights = guest_stay.nights | plus: 0 %}
{% if nights > 7 %}true{% else %}false{% endif %}

Managing Automations

Enabling/Disabling

  1. Go to Admin > Settings > Automations

  2. Find the trigger in the list

  3. Click the status toggle to enable or disable

Disabled triggers remain configured but don't execute.

Editing a Trigger

  1. Click Edit next to the trigger

  2. Modify delay or condition as needed

  3. Note: Event and Action cannot be changed after creation

  4. Click Update Trigger

Deleting a Trigger

  1. Click Delete next to the trigger

  2. Confirm deletion

  3. System triggers (Post-Checkout-Room, etc.) cannot be deleted


Integration with PMS

Automations work with your PMS integration:

From PMS to HelloShift

  1. PMS sends checkout event

  2. HelloShift marks guest as checked out

  3. Checkout automation triggers

  4. Room condition updates to Dirty

From HelloShift to PMS

When enabled in Cleaning settings:

  1. Cleaner marks room Clean

  2. HelloShift syncs status to PMS

  3. Front desk sees updated room status


Automation Flow Example

Here's how automations work together for a typical checkout:

  1. Guest checks out at front desk (PMS event)

  2. PMS syncs checkout status to HelloShift

  3. Post-Checkout automation fires:

    • Sets room to Vacant/Dirty

    • Assigns default cleaner

  4. Cleaner receives notification on mobile

  5. Cleaner starts room and timer begins

  6. Cleaner completes room

  7. Room status syncs back to PMS (if enabled)


Best Practices

Keep It Simple

  • Start with essential automations (checkout → dirty)

  • Add complexity gradually as needed

  • Test each automation before enabling others

Use Delays Wisely

  • Immediate (0) for status changes

  • Short delay (5-10 min) for notifications

  • Longer delay if allowing for late checkouts

Monitor and Adjust

  • Check that automations fire as expected

  • Review room status after checkouts

  • Adjust conditions if too many false positives

Combine with Manual Oversight

  • Automations handle the common case

  • Staff can always override manually

  • Use automations to speed up, not replace judgment


Troubleshooting

Automation not firing

  • Verify the trigger is enabled (active status)

  • Check that the event matches (Guest Checked Out vs. Guest Checked In)

  • Confirm PMS integration is working

  • Review condition - it may be blocking execution

Room status not changing

  • Check if another automation might be overriding

  • Verify room exists and is active

  • Look for delays that haven't elapsed yet

Wrong cleaner assigned

  • Check room's default cleaner setting

  • Verify cleaner is active in Housekeeping department

  • Review if cleaner was changed manually after automation

Notifications not received

  • Verify cleaner has notifications enabled

  • Check mobile device push notification settings

  • Ensure cleaner is assigned to the room


Choosing Between Room Jobs and Triggers

Scenario

Use Room Jobs

Use Triggers

Create daily stayover cleaning tasks

✓ Daily Clean job

Mark room dirty when guest checks out

✓ Post-Checkout trigger

Create checkout tasks for departing guests

✓ Departure Clean job

Assign default cleaner on checkout

✓ Checkout trigger with Assign action

Every-3-day cleaning for long stays

✓ Day3 Clean job

Set room condition based on PMS event

✓ Check-in/Check-out triggers

Pull room data from PMS daily

✓ Import Room Data job

Key Differences

Aspect

Room Jobs

Triggers

Timing

Scheduled (runs at specific time)

Event-driven (runs when event occurs)

Creates Tasks

Yes - primary purpose

No - changes room status

Delay Option

No (runs at scheduled time)

Yes (0 to hours after event)

Liquid Conditions

Yes (custom checks)

Yes (custom conditions)

Best Practice: Combine Both

For comprehensive automation:

  1. Enable Triggers for immediate room status changes (checkout → dirty)

  2. Enable Room Jobs for scheduled task creation (daily at 6 AM)

  3. Use Credits to balance workload when tasks are created

  4. Review Assignments before cleaners start their shift


Related Articles