Unlimited Automations Guide
The Contactless Checkin plan unlocks unlimited guest automations beyond the 3-automation limit of the Guest Messaging plan. Create custom scheduled jobs, event triggers, key management, and room automations.
Overview
Plan | Automations Available |
Guest Messaging | 3 pre-configured (Pre-Stay, In-Stay, Post-Stay) |
Contactless Checkin | Unlimited custom automations + Triggers |
What's Included with Unlimited Automations
Message Automations (Unlimited)
Create any number of scheduled message automations:
Capability | Description |
Custom Audiences | Target guests by arrival, departure, mid-stay, or custom conditions |
Flexible Timing | Schedule at any time of day |
Multiple Channels | SMS, Email, WhatsApp |
Custom Schedules | Daily, weekly, or specific days |
Liquid Conditions | Advanced filtering with custom logic |
Key Automations
Automate smart lock access code management:
Automation | Description |
Issue Keys | Generate access codes on arrival |
Send Keys | Deliver codes via SMS with room info |
Revoke Keys | Deactivate codes on departure/cancellation |
Room Automations
Schedule housekeeping tasks automatically:
Automation | Description |
Daily Clean | Assign cleaning for stayovers |
Departure Clean | Schedule checkout turnovers |
Conditional Tasks | Different tasks based on stay length |
Import Room Data | Sync status from PMS |
Event Triggers
React instantly to guest lifecycle events:
Event | Example Action |
Booking Confirmed | Send welcome message |
Guest Checked In | Issue access keys |
Guest Checked Out | Set room to dirty |
Payment Received | Send confirmation |
Pre-Checkin Complete | Welcome message with keys |
Accessing Automation Settings
Go to Automation (top navigation)
Choose the automation type:
Tab | Purpose |
Scheduled Jobs | Time-based automations |
Triggers | Event-based automations |

Creating Custom Scheduled Jobs
Step 1: Choose Automation Type
Go to Automation > Scheduled Jobs and select the tab:
Tab | Creates |
Messages | Guest communication automations |
Keys | Smart lock code automations |
Rooms | Housekeeping task automations |
Step 2: Click New Automation
Click New Scheduled Job to create a new automation.
Step 3: Configure the Automation
Field | Description |
Name | Descriptive identifier |
Audience | Which guests/rooms to target |
Send Time | Time of day to execute (property timezone) |
Check | Additional condition (optional) |
Action | What happens when triggered |
Status | Active or Inactive |
Step 4: Save and Activate
Click Create Scheduled Job
Toggle Active to enable
Audience Conditions
Target specific guests based on their stay status:
Arrival-Based
Condition | Matches |
Arriving Today | Guests with check-in today |
Arriving Tomorrow | Guests with check-in tomorrow |
Arriving in X Days | Guests arriving in specified days |
Departure-Based
Condition | Matches |
Departing Today | Guests with check-out today |
Departing Tomorrow | Guests with check-out tomorrow |
Departing within X Days | Guests leaving within specified days |
Departed Yesterday | Guests who left yesterday |
Departed X Days Ago | Guests who left specified days ago |
In-Stay
Condition | Matches |
Arrived Yesterday | First full day guests |
In-House (Mid-Stay) | All currently staying guests |
Custom Conditions with Liquid
Add advanced filtering using Liquid template logic.
How to Use
Select Custom Condition from the Check dropdown
Enter Liquid code that returns
trueorfalseOnly guests matching
truereceive the automation
Available Variables
Variable | Type | Description |
| Boolean | Arriving today? |
| Boolean | Departing today? |
| Boolean | Currently in-house? |
| Integer | Day of stay (0 = arrival) |
| Integer | Total nights |
| Boolean | Payment captured? |
| Boolean | Agreement signed? |
| Boolean | ID verified? |
| String | Guest type/tier |
| String | Booking channel |
Example Conditions
VIP Guests Only:
{% if guest_stay.guest_type contains 'VIP' %}true{% else %}false{% endif %}
Long Stays (7+ nights):
{% assign nights = guest_stay.nights | plus: 0 %}
{% if nights >= 7 %}true{% else %}false{% endif %}
Direct Bookings Only:
{% if guest_stay.booking_source == 'Direct' %}true{% else %}false{% endif %}
Day 3 of Stay:
{% if guest_stay.stay_day_number == 3 %}true{% else %}false{% endif %}
Payment Received and Arriving Today:
{% if guest_stay.payment_received and guest_stay.arrival_today %}true{% else %}false{% endif %}
Message Automation Examples
Pre-Arrival Sequence
Create multiple touchpoints before arrival:
7 Days Before (for long-lead bookings):
Setting | Value |
Name | Booking Confirmation |
Audience | Arriving in 7 Days |
Time | 10:00 AM |
Snippet | Post-Booking |
2 Days Before:
Setting | Value |
Name | Pre-Check-in Reminder |
Audience | Arriving in 2 Days |
Time | 2:00 PM |
Snippet | Pre-Checkin Request |
Day Before:
Setting | Value |
Name | Arrival Day Prep |
Audience | Arriving Tomorrow |
Time | 4:00 PM |
Snippet | Pre-Arrival with Guidebook |
Mid-Stay Check-In
Setting | Value |
Name | Day 2 Check-In |
Audience | Arrived Yesterday |
Time | 10:00 AM |
Check | Custom - Day 2 only |
Snippet | Mid-Stay Satisfaction |
Post-Departure Sequence
Day of Checkout:
Setting | Value |
Name | Thank You |
Audience | Departing Today |
Time | 2:00 PM |
Snippet | Post-Checkout Thanks |
Day After Checkout:
Setting | Value |
Name | Review Request |
Audience | Departed Yesterday |
Time | 10:00 AM |
Snippet | Review Request |
Key Automation Examples
Standard Key Flow
Issue Keys on Arrival Day:
Setting | Value |
Name | Issue Arrival Keys |
Audience | Arriving Today |
Time | 3:00 PM |
Check | Payment Received |
Action | Issue & Send Key |
Revoke Keys on Checkout:
Setting | Value |
Name | Revoke Departure Keys |
Audience | Departing Today |
Time | 11:00 AM |
Action | Revoke Key |
Early Access Keys
For guests with early arrivals:
Setting | Value |
Name | Early Access Keys |
Audience | Arriving Today |
Time | 12:00 PM |
Check | Custom - early arrival confirmed |
Action | Issue & Send Key |
Room Automation Examples
Daily Housekeeping
Stayover Clean:
Setting | Value |
Name | Daily Clean |
Audience | Mid-Stay Guests |
Time | 6:00 AM |
Action | Set Cleaning Task: Clean |
Every 3rd Day Clean (for extended stays):
Setting | Value |
Name | Day 3 Deep Clean |
Audience | Mid-Stay Guests |
Time | 6:00 AM |
Check | Custom - |
Action | Set Cleaning Task: Deep Clean |
Departure Turnovers
Setting | Value |
Name | Checkout Turnover |
Audience | Departing Today |
Time | 6:00 AM |
Action | Set Default Cleaning Task |
Event Triggers
Triggers fire immediately when guest events occur, unlike scheduled jobs that run at set times.
Creating a Trigger
Go to Automation > Triggers
Click New Trigger
Configure:
Field | Description |
Name | Descriptive identifier |
Event | What triggers it |
Condition | Filter (optional) |
Action | What happens |
Delay | Seconds to wait |
Common Trigger Examples
Walk-in Key Issue (immediate key for same-day bookings):
Setting | Value |
Event | Guest Booking Confirmed |
Condition | Booking: Past Check-in Time |
Action | Issue & Send Key |
Delay | 0 |
Post-Payment Confirmation:
Setting | Value |
Event | Guest Payment Received |
Condition | Guests Arriving Today |
Action | Send Post-Checkin Snippet |
Delay | 300 (5 min) |
Cancellation Key Revoke:
Setting | Value |
Event | Booking Cancelled |
Condition | In-Stay Guests |
Action | Revoke Key |
Delay | 0 |
See Triggers for complete trigger documentation.
Combining Scheduled Jobs and Triggers
Use both automation types together for comprehensive coverage.
Example: Complete Check-in Flow
Scheduled Jobs:
2 days before: Send pre-check-in request
Day before: Send reminder if incomplete
Arrival morning: Final reminder
Triggers:
On pre-check-in complete: Confirmation message
On payment received: Issue access keys
On PMS check-in: Welcome message
Example: Checkout and Turnover Flow
Triggers:
On checkout: Set room to dirty, notify cleaner
Scheduled Jobs:
Morning of checkout: Assign cleaning task
After checkout: Thank you message
Day after: Review request
Per-Stay vs Per-Guest Messaging
Control how messages are sent to guests with multiple reservations.
Per-Guest (Default)
One message per guest, regardless of number of stays
Uses first matching stay for variables
Best for general communications
Per-Stay
Separate message for each matching stay
Variables reflect each individual stay
Best for stay-specific information (room numbers, dates)
Enable Per-Stay:
Create the automation
Toggle Per-Stay option on
Save
Preview and Testing
Before activating automations, preview which guests match.
Using Preview
Create automation in Inactive status
Click Preview
View list of guests that would match
Verify the list is correct
Activate when ready
Testing Tips
Start with automations Inactive
Use Preview to verify targeting
Enable for a single day to test
Monitor results before full activation
Automation Message Hours
Restrict when message automations can send.
Setting Message Hours
Go to Admin > Settings > Messaging
Configure Automation Message Hours:
Start Time (e.g., 8:00 AM)
End Time (e.g., 9:00 PM)
Save settings
Messages scheduled outside these hours will not send.
Best Practices
Message Frequency
Guideline | Recommendation |
Maximum per stay | 3-4 messages |
Pre-arrival | 1-2 messages max |
Mid-stay | 1 message (if needed) |
Post-stay | 1 message |
Timing Recommendations
Automation Type | Best Time |
Pre-arrival (2+ days) | 2:00 PM - 4:00 PM |
Day-before | 10:00 AM - 2:00 PM |
Morning of | 8:00 AM - 10:00 AM |
Mid-stay | 9:00 AM - 11:00 AM |
Post-checkout | 2:00 PM - 4:00 PM |
Review request | 10:00 AM next day |
Avoid Common Mistakes
Mistake | Better Approach |
Too many messages | Limit to 3-4 per stay |
Wrong timing | Match guest journey |
Generic content | Use personalization variables |
No testing | Always preview first |
Overlapping automations | Review all active automations |
Troubleshooting
Automation not firing
Possible Causes:
Automation is inactive
Condition doesn't match any guests
Time hasn't arrived yet
Solutions:
Verify automation status is Active
Use Preview to check matching guests
Confirm send time and timezone
Wrong guests receiving messages
Possible Causes:
Audience condition too broad
Custom condition logic error
Overlapping automations
Solutions:
Review audience settings
Test custom Liquid conditions
Audit all active automations
Keys not issuing
Possible Causes:
Smart lock not configured
Room not mapped to lock
Payment condition not met
Solutions:
Verify smart lock integration
Check room-lock mapping
Review payment status
Related Articles
Guest Automations - Scheduled job details
Triggers - Event-based automations
Snippets & Templates - Message templates
Room & Cleaning Automations - Housekeeping automation
Contactless Check-in Setup - Check-in configuration