Guest Automations

Automate guest communications and key management based on schedules or events. Guest automations ensure timely, consistent outreach without manual intervention.

Overview

HelloShift supports two types of guest automations:

Type

When

Example

Scheduled Jobs

Time-based (daily at specific hour)

Pre-arrival message at noon day before

Event Triggers

Guest lifecycle event

Welcome SMS on check-in


Accessing Automations

Scheduled Jobs

  1. Go to Automation > Scheduled Jobs

  2. Select the tab for automation type:

    • Message - SMS/Email/WhatsApp automations

    • Key - Smart lock access code automations

    • Room - Cleaning task automations

  3. Click New Job to create an automation

Event Triggers

  1. Go to Automation > Triggers

  2. View existing triggers

  3. Click New Trigger to create one


Automation Types

HelloShift has three automation categories:

Category

Purpose

Trigger Type

Message

Send SMS/Email/WhatsApp to guests

Scheduled

Key

Issue or revoke smart lock access

Scheduled or Event

Room

Update room status or create cleaning tasks

Scheduled or Event

See Room & Cleaning Automations for room-specific automations.


Part 1: Scheduled Message Automations

Scheduled automations run daily at a specific time and send messages to guests matching certain conditions.

Creating a Message Automation

Step 1: Click New Job

  1. Go to Automation > Scheduled Jobs > Message

  2. Click New Job

Step 2: Configure the Automation

Field

Description

Name

Descriptive name (e.g., "Pre-Arrival Welcome")

Audience

Which guests to target

Snippet

Message template to send

Send Time

Time of day to send (in property timezone)

Schedule

Recurrence pattern (daily, specific days)

Check

Additional condition (optional)

Channel

SMS, Email, or WhatsApp

Status

Active or Inactive

Step 3: Select Audience

Choose which guests receive the message:

Audience

Description

Arriving Today

Guests with arrival date = today

Arrived Yesterday

Guests who arrived yesterday (day 2 of stay)

Arriving Tomorrow

Guests arriving the next day

Arriving in X Days

Guests arriving in specified days

In-House (Mid-Stay)

Guests currently staying (not arriving/departing)

Departing Today

Guests with departure date = today

Departing Tomorrow

Guests departing the next day

Departing within X Days

Guests departing within specified days

Departed Yesterday

Guests who checked out yesterday

Departed X Days Ago

Guests who left specified days ago

Step 4: Select Snippet

Choose which message template to send:

  1. Click Select Snippet

  2. Browse or search available snippets

  3. Select the snippet to use

The snippet's variables are replaced with guest data when sent.

Step 5: Set Send Time

Enter the time of day to send messages (e.g., 12:00 PM, 09:00 AM).

Tips:

  • Pre-arrival: Send between 12-4 PM day before

  • Morning check-in reminder: Send at 9-10 AM

  • Post-checkout: Send 10 AM-12 PM day after

Step 6: Configure Schedule

Set when the automation runs:

Schedule

When It Runs

Daily

Every day

Weekly on [Day]

Specific day(s) of week

Custom

Advanced recurrence patterns

Step 7: Add Check (Optional)

Add a condition that must be true for the message to send:

Check

Description

Always

No additional condition

Gap Night

Only if there's a gap before arrival

Guest Score > Cutoff

Only high-scoring guests

Guest Score > Cutoff OR No Score

High-scoring or unscored guests

Custom Condition (Liquid)

Write your own logic

Step 8: Enable and Save

  1. Set Status to Active

  2. Click Save


Default Message Automations

HelloShift creates these automations when your site is set up:

Pre-Stay

  • Audience: Arriving Today

  • Send Time: 12:00 PM

  • Snippet: Pre-Stay welcome message

  • Purpose: Welcome guests before arrival

In-Stay

  • Audience: Arrived Yesterday

  • Send Time: 9:00 AM

  • Snippet: In-Stay satisfaction check

  • Purpose: "How's your stay?" on day 2

Post-Stay

  • Audience: Departing Today

  • Send Time: 12:00 PM

  • Snippet: Post-Stay thank you

  • Purpose: Thank guests and request reviews

Note: Default automations are created as Inactive. Enable them to start sending.


Common Message Automation Examples

Pre-Arrival Welcome (Day Before)

Setting

Value

Name

Pre-Arrival Welcome

Audience

Arriving Tomorrow

Send Time

2:00 PM

Snippet

Pre-Stay

Schedule

Daily

Check-in Reminder (Morning of Arrival)

Setting

Value

Name

Check-in Reminder

Audience

Arriving Today

Send Time

10:00 AM

Snippet

Pre-Checkin

Schedule

Daily

Mid-Stay Satisfaction Check

Setting

Value

Name

Day 2 Check

Audience

Arrived Yesterday

Send Time

10:00 AM

Snippet

In-Stay

Schedule

Daily

Pre-Checkout Reminder

Setting

Value

Name

Checkout Reminder

Audience

Departing Tomorrow

Send Time

4:00 PM

Snippet

Pre-Checkout

Schedule

Daily

Post-Stay Review Request

Setting

Value

Name

Review Request

Audience

Departed Yesterday

Send Time

10:00 AM

Snippet

Post-Stay

Schedule

Daily

Gap Night Upsell

Setting

Value

Name

Gap Night Offer

Audience

Arriving in 2 Days

Send Time

2:00 PM

Check

Gap Night

Snippet

Gap Night Offer


Custom Conditions with Liquid

For advanced filtering, use custom Liquid conditions.

Available Variables

Variable

Type

Description

guest_stay.arrival_today

Boolean

Arriving today?

guest_stay.departure_today

Boolean

Departing today?

guest_stay.instay

Boolean

Currently in-house?

guest_stay.stay_day_number

Integer

Day of stay (0 = arrival)

guest_stay.payment_received

Boolean

Payment collected?

guest_stay.agreement_signed

Boolean

Terms signed?

guest_stay.id_verified

Boolean

ID verified?

guest_stay.room_ready

Boolean

Room cleaned?

guest_stay.gap_night

Boolean

Gap before arrival?

guest_stay.guest_score

Boolean

Score above cutoff?

guest_stay.guest_type

String

Guest type/tier

guest_stay.nights

Integer

Number of nights

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 %}

Excluding OTA Guests

{% unless guest_stay.booking_source contains 'Expedia' or guest_stay.booking_source contains 'Booking.com' %}true{% else %}false{% endunless %}

Day 3 of Stay (for mid-stay check)

{% if guest_stay.stay_day_number == 3 %}true{% else %}false{% endif %}

Part 2: Key Automations

Key automations manage smart lock access codes for guests.

Accessing Key Automations

  1. Go to Automation > Scheduled Jobs > Key

  2. View and manage key automations

Default Key Automations

Issue Key

  • Audience: Arriving Today

  • Send Time: 3:00 PM (check-in time)

  • Action: Issue access code and send to guest

  • Snippet: Send-Key (with room and code)

Revoke Key

  • Audience: Departing Today

  • Send Time: 11:00 AM (checkout time)

  • Action: Revoke guest access code

Key Automation Checks

Check

Description

Always

Issue/revoke without conditions

Payment Received

Only if payment collected

Custom

Custom Liquid condition

Key Automation Flow

  1. Guest books room

  2. At scheduled time on arrival day, Issue Key runs:

    • Generates unique access code via smart lock integration

    • Sends code to guest via SMS/Email

  3. Guest uses code during stay

  4. At scheduled time on departure day, Revoke Key runs:

    • Deactivates the access code


Part 3: Event-Based Triggers

Triggers respond to guest lifecycle events immediately (or after a delay).

Creating a Trigger

  1. Go to Automation > Triggers

  2. Click New Trigger

Configure the Trigger

Field

Description

Name

Descriptive name

Event

What triggers the action

Condition

Additional filter (optional)

Action

What happens when triggered

Delay

Seconds to wait before executing

Status

Active or Inactive


Available Events

Event

When It Fires

Guest Booking Confirmed

New reservation synced from PMS

Booking Cancelled

Reservation cancelled

Guest Checked In

Guest checks in at front desk

Guest Checked Out

Guest checks out

Guest Room Changed

Room number updated on reservation

Guest Document Uploaded

ID/document uploaded during pre-checkin

Guest ID Verified

Stripe identity verification passed

Guest Payment Received

Payment collected during pre-checkin

Guest Agreement Signed

Terms signed during pre-checkin

Guest Pre-Checkin Completed

All pre-checkin steps completed


Available Conditions

Condition

Description

Always

No condition, always execute

Guests Arriving Today

Only same-day arrivals

Booking: Past Check-in Time

Booked after check-in time

In-Stay Guests

Currently in-house

Guests Departing Today

Same-day departures

PreCheckin: Document Uploaded

Document on file

PreCheckin: ID Verified

Stripe verification passed

PreCheckin: Payment Received

Payment collected

PreCheckin: Agreement Signed

Terms signed

PreCheckin: ID, Payment & Agreement Verified

All steps complete

Custom Condition (Liquid)

Custom logic


Available Actions

Message Actions

Action

Description

Send Post-Booking Snippet

Send Post-Booking template

Send Post-Checkin Snippet

Send Post-Checkin template

Send Post-Checkout Snippet

Send Post-Checkout template

Key Actions

Action

Description

Just Issue Key

Generate access code (no message)

Issue & Send Key

Generate code and send to guest

Revoke Key

Deactivate access code

Room Actions

Action

Description

Set Room Occupied/Clean

Mark room as occupied and clean

Set Room Vacant/Dirty

Mark room as vacant and dirty

Set Cleaning Task: Clean

Assign "Clean" task

Set Default Cleaning Task

Assign room's default task

Remove Cleaning Task

Clear task assignment

Assign Default Cleaner

Assign room's default cleaner

Notify Cleaner on Checkout

Send notification to cleaner


Delay Setting

Add a delay before the action executes:

Delay

Use Case

0 seconds

Immediate execution

300 seconds (5 min)

Allow for processing

1800 seconds (30 min)

Post-checkin follow-up

3600 seconds (1 hour)

Delayed follow-up

Default delays:

  • Post-Booking: 300 seconds (5 minutes)

  • Post-Checkin: 1800 seconds (30 minutes)

  • Post-Checkout: 3600 seconds (1 hour)


Default Triggers

HelloShift creates these system triggers:

Post-Booking Message

  • Event: Guest Booking Confirmed

  • Action: Send Post-Booking Snippet

  • Delay: 300 seconds

Post-Checkin Message

  • Event: Guest Checked In

  • Action: Send Post-Checkin Snippet

  • Delay: 1800 seconds

Post-Checkout Message

  • Event: Guest Checked Out

  • Action: Send Post-Checkout Snippet

  • Delay: 3600 seconds

Post-Booking Key

  • Event: Guest Booking Confirmed

  • Condition: Booking Past Check-in Time

  • Action: Issue & Send Key

Post-Cancel Key

  • Event: Booking Cancelled

  • Condition: In-Stay Guests

  • Action: Revoke Key

Post-Checkout Room

  • Event: Guest Checked Out

  • Action: Set Room Vacant/Dirty

Post-Cancel Room

  • Event: Booking Cancelled

  • Action: Remove Cleaning Task


Common Trigger Examples

Welcome SMS After Check-in

Setting

Value

Event

Guest Checked In

Condition

Always

Action

Send Post-Checkin Snippet

Delay

1800 (30 minutes)

Auto-Dirty on Checkout

Setting

Value

Event

Guest Checked Out

Condition

Always

Action

Set Room Vacant/Dirty

Delay

0 (immediate)

Issue Key on Booking (Walk-ins)

Setting

Value

Event

Guest Booking Confirmed

Condition

Booking Past Check-in Time

Action

Issue & Send Key

Delay

0 (immediate)

Revoke Key on Cancel

Setting

Value

Event

Booking Cancelled

Condition

Always

Action

Revoke Key

Delay

0 (immediate)

Assign Cleaner on Checkout

Setting

Value

Event

Guest Checked Out

Condition

Guests Departing Today

Action

Assign Default Cleaner

Delay

300 (5 minutes)


Managing Automations

Enabling/Disabling

  1. Find the automation in the list

  2. Click Edit

  3. Change Status to Active or Inactive

  4. Click Save

Testing Before Enabling

  1. Keep automation Inactive

  2. Use Preview feature to see which guests would receive messages

  3. Review the matches

  4. Enable when satisfied

Editing an Automation

  1. Click Edit on the automation

  2. Modify settings as needed

  3. Click Save

Note: For triggers, Event and Action cannot be changed after creation.

Deleting an Automation

  1. Click Delete on the automation

  2. Confirm deletion

System automations cannot be deleted, only deactivated.


Per-Stay vs Per-Guest Messaging

By default, automations send one message per guest. For guests with multiple stays:

Mode

Behavior

Per Guest (default)

One message for the first matching stay

Per Stay

Separate message for each matching stay

Enable "Per Stay" in automation settings if guests may have multiple reservations.


Best Practices

Timing

  • Pre-arrival: 24-48 hours before check-in

  • Morning of: 9-10 AM on arrival day

  • Post-checkin: 30 minutes to 1 hour after

  • Pre-checkout: Evening before departure

  • Post-stay: 10 AM-12 PM day after

Messaging Strategy

  1. Pre-arrival - Welcome, check-in instructions

  2. Arrival day - Check-in reminder, key code

  3. Day 2 - "How's your stay?"

  4. Pre-checkout - Reminder, late checkout offer

  5. Post-stay - Thank you, review request

Avoid Over-Messaging

  • Maximum 3-4 automated messages per stay

  • Space messages at least 12 hours apart

  • Don't send during quiet hours (10 PM - 8 AM)

Segment by Guest Type

  • VIP guests: More personalized, earlier access

  • OTA guests: Basic communications

  • Direct bookers: Loyalty offers


Troubleshooting

Automation not firing

  • Verify automation is Active

  • Check audience filter matches guests

  • Verify send time has passed today

  • Review any conditions that might block

Guest not receiving message

  • Check guest has valid phone/email

  • Verify guest isn't marked "Do Not Send"

  • Check message channel matches guest's preferred channel

  • Review carrier/spam filtering

  • Check if WhatsApp failed and message was sent via email/SMS instead

Key not issued

  • Verify smart lock integration is configured

  • Check condition requirements (payment, etc.)

  • Verify room has lock assigned

  • Review integration logs

Wrong message content

  • Verify correct snippet is selected

  • Check variables have data (room number assigned, etc.)

  • Preview the message before sending

Message delivery failed

After a message is sent, check the delivery status indicator on each message:

Status

Meaning

Processing

Message accepted, sending in progress

Success

Message delivered to recipient

Error

Message failed, canceled, or undelivered

Note: Failed messages are logged but do not automatically retry.

WhatsApp message not delivered

  • HelloShift automatically falls back to SMS if WhatsApp delivery fails

  • Check if guest's WhatsApp status shows as invalid

  • Verify the guest has a valid phone number on file

Key automation condition failed

If a key automation's condition check fails (e.g., "Payment Received" not met):

  • An internal error message is added to the guest's conversation thread

  • Look for system message: "[Automation Name]: [Check Name] checks failed"

  • The key is not issued until the condition is satisfied


Related Articles