Back to Admin Portal

Communications

A complete reference of every outbound communication the platform sends — what triggers it, who receives it, and how it's delivered.

Booking Confirmation (Guest)

Email
Trigger: New direct booking — Stripe checkout payment succeeds
Recipient: Guest

Branded confirmation with full booking details, check-in/out dates, amount paid, and invoice PDF attached.

Function: verifyPayment
Automation: Stripe webhook → verifyPayment

New Booking Notification (Admin)

Email
Trigger: New direct booking — Stripe checkout payment succeeds
Recipient: stay@theresidenceco.io

Admin alert with guest details, property, dates, amount paid, and special requests.

Function: verifyPayment
Automation: Stripe webhook → verifyPayment

Resend Booking Confirmation (Guest)

Email
Trigger: Admin manually resends confirmation from booking management
Recipient: Guest

Same branded confirmation email with updated invoice PDF. Used when re-sending to a guest on request.

Function: resendConfirmationEmail
Automation: Admin action (manual)

Payment Link Email (Guest)

Email
Trigger: Admin clicks 'Email payment link' on a booking in the Booking Editor
Recipient: Guest

Branded email with a prominent 'Complete Payment' button linking to a Stripe checkout session, plus full reservation details and amount due.

Function: sendPaymentLinkEmail
Automation: Admin action (manual)

Guest Request Approved (Guest)

Email
Trigger: Admin approves an early check-in or late check-out request
Recipient: Guest

Approval notification with a Stripe payment link for the request fee.

Function: processGuestRequest
Automation: Admin action (manual)

Guest Request Declined (Guest)

Email
Trigger: Admin declines an early check-in or late check-out request
Recipient: Guest

Polite decline notification explaining the request could not be accommodated.

Function: processGuestRequest
Automation: Admin action (manual)

Guest Request Payment Confirmed (Guest)

Email
Trigger: Guest pays for an approved early check-in / late check-out via Stripe
Recipient: Guest

Confirms the payment and the updated check-in or check-out time.

Function: completeGuestRequestPayment
Automation: Stripe webhook → completeGuestRequestPayment

Guest Request Payment Received (Admin)

Email
Trigger: Guest pays for an approved early check-in / late check-out via Stripe
Recipient: stay@theresidenceco.io

Admin notification that a guest request has been paid and confirmed.

Function: completeGuestRequestPayment
Automation: Stripe webhook → completeGuestRequestPayment

Stay Extension Confirmation (Guest)

Email
Trigger: Guest pays for additional nights via the Extend Stay portal modal
Recipient: Guest

Confirms the extended checkout date, additional nights, and amount paid.

Function: verifyPayment
Automation: Stripe webhook → verifyPayment (extension)

Extension Booking Notification (Admin)

Email
Trigger: Guest pays for additional nights via the Extend Stay portal modal
Recipient: stay@theresidenceco.io

Admin alert with guest, property, original vs new checkout, and amount paid.

Function: verifyPayment
Automation: Stripe webhook → verifyPayment (extension)

Guest Update Confirmation (Guest)

Email
Trigger: Guest pays to add additional guests or a pet via the portal
Recipient: Guest

Confirms the updated guest count / pet addition and amount paid.

Function: verifyPayment
Automation: Stripe webhook → verifyPayment (guest_update)

Guest Update Notification (Admin)

Email
Trigger: Guest pays to add additional guests or a pet via the portal
Recipient: stay@theresidenceco.io

Admin alert with guest, property, guest count change, pet status, and amount paid.

Function: verifyPayment
Automation: Stripe webhook → verifyPayment (guest_update)

Bulk Booking Confirmation (Guest)

Email
Trigger: Admin creates a bulk booking or combined payment link and guest pays
Recipient: Guest

Confirms all bookings in the bulk set with dates, nights, and total paid.

Function: verifyPayment
Automation: Stripe webhook → verifyPayment (bulk/combined)

Bulk Payment Received (Admin)

Email
Trigger: Admin creates a bulk booking or combined payment link and guest pays
Recipient: stay@theresidenceco.io

Admin alert listing all confirmed bookings in the bulk set with individual and total amounts.

Function: verifyPayment
Automation: Stripe webhook → verifyPayment (bulk/combined)

Guest Portal Update (Admin)

Email
Trigger: Guest updates their contact details or booking info via the guest portal
Recipient: stay@theresidenceco.io

Notification of what the guest changed (e.g. phone, email, bed configuration).

Function: notifyGuestPortalChange
Automation: Guest portal action

Guest Guide Access (Admin)

Email
Trigger: Guest opens a property guest guide link
Recipient: stay@theresidenceco.io

Alerts the team that a guest has accessed a property guide, with email, property, and timestamp.

Function: sendGuestNotification
Automation: Guest portal action

Guest Message / Enquiry (Admin)

Email
Trigger: Guest submits a message, request, or issue report via the portal contact form
Recipient: stay@theresidenceco.io

Categorised guest message with booking reference, property, and message body.

Function: submitGuestMessage
Automation: Guest portal action

Booking Enquiry (Admin)

Email
Trigger: Prospective guest submits an enquiry form on the public website
Recipient: stay@theresidenceco.io

Enquiry with property, dates, guest count, contact details, and special requests.

Function: sendEnquiry
Automation: Public website form

Contact Form Submission (Admin)

Email
Trigger: Someone submits the public contact form
Recipient: stay@theresidenceco.io

General contact message with name, email, phone, and message body.

Function: submitContact
Automation: Public website form

Cleaner Payment Summary (Cleaner)

Email
Trigger: Admin marks cleaning jobs as paid via the payment tracker
Recipient: Cleaner email

Payment confirmation listing all paid cleans with hours, linen changes, and total amount.

Function: sendCleanerPaymentSummary
Automation: Admin action (manual)

Timesheet Submission (Admin)

Email
Trigger: Cleaner submits their weekly timesheet via the cleaner portal
Recipient: stay@theresidenceco.io

Formatted timesheet summary with jobs, hours, linen changes, costs, and cleaner notes.

Function: submitTimesheet
Automation: Cleaner portal action

Discount Code Email (Recipient)

Email
Trigger: Admin sends a discount code to a specific email address
Recipient: Specified email

Branded email with the discount code, terms, expiry, and booking link.

Function: sendDiscountCodeEmail
Automation: Admin action (manual)

Guest Checkout Confirmed (Admin)

Email
Trigger: Guest confirms checkout via the guest portal checkout page
Recipient: stay@theresidenceco.io

Alert that a guest has confirmed checkout, with guest, property, and timestamp.

Function: confirmGuestCheckout
Automation: Guest portal action

New Cleaning Job (Cleaner)

SMS
Trigger: New cleaning job assigned to a cleaner (auto-assigned on booking confirmation or manual assignment)
Recipient: Cleaner phone

Job notification with property, checkout date, next check-in, notes, and login link.

Function: notifyCleanerSms
Automation: Workflow: Notify Cleaner on New Job

Guest Request Approved (Guest)

SMS
Trigger: Admin approves an early check-in or late check-out request
Recipient: Guest phone

SMS approval notification with payment link (sent alongside the email).

Function: processGuestRequest
Automation: Admin action (manual)

Guest Request Declined (Guest)

SMS
Trigger: Admin declines an early check-in or late check-out request
Recipient: Guest phone

SMS decline notification (sent alongside the email).

Function: processGuestRequest
Automation: Admin action (manual)

New Booking Alert (Admin)

SMS
Trigger: New booking created in the system
Recipient: Admin phone

SMS alert with property name and clean/checkout date.

Function: notifyAdminNewBookingSms
Automation: Workflow: triggered on Booking entity create

Guest Checkout Confirmed (Admin)

SMS
Trigger: Guest confirms checkout via the guest portal
Recipient: Admin phone

SMS alert that a guest has checked out, with guest and property name.

Function: confirmGuestCheckout
Automation: Guest portal action

Bedroom Configuration Change (Admin)

SMS
Trigger: Guest saves their bed configuration in the guest portal
Recipient: Admin phone

Text alert with the guest, property and the beds requested (e.g. master split to twin singles), plus travel cot. Sent alongside the guest portal email.

Function: notifyGuestPortalChange
Automation: Guest portal action

Pet Added (Admin)

SMS
Trigger: Guest adds a pet via the guest portal — paid, or with no pet fee set
Recipient: Admin phone

Text alert that a pet has been added to a stay, with the guest, property, amount paid (or no charge) and booking reference. Sent alongside the guest portal email where one is sent.

Function: verifyPayment / createGuestUpdateCheckoutSession
Automation: Stripe webhook → verifyPayment; no-charge updates → createGuestUpdateCheckoutSession

Additional Guests (Admin)

SMS
Trigger: Guest adds extra guests via the guest portal — paid, or with no guest fee set
Recipient: Admin phone

Text alert that a stay's guest count has gone up, with the guest, property, the new number of guests and amount paid (or no charge).

Function: verifyPayment / createGuestUpdateCheckoutSession
Automation: Stripe webhook → verifyPayment; no-charge updates → createGuestUpdateCheckoutSession

Clean at Risk Alert (Admin)

SMS
Trigger: Cleaning job not marked complete within 60 minutes of guest arrival
Recipient: Admin phone

Urgent SMS warning that a property is not ready and the guest is arriving imminently.

Function: checkCleanRisk
Automation: Workflow: Check Clean Risk (every 5 minutes)

SMS Test (Admin)

SMS
Trigger: Admin triggers a test SMS from notification settings
Recipient: Admin phone

Test message confirming SMS notifications are working.

Function: notifyAdminNewBookingSms
Automation: Admin action (manual test)

App Notification Push (Admin)

Push Notification
Trigger: Any AppNotification record is created (new booking, clean risk, etc.)
Recipient: All admin devices

Lock-screen push notification with the notification title and body, deep-linking to the relevant page.

Function: pushAppNotification
Automation: Workflow: triggered on AppNotification entity create

Clean at Risk Push (Admin)

Push Notification
Trigger: Cleaning job not marked complete within 60 minutes of guest arrival
Recipient: All admin devices

Urgent push notification warning that a property is not ready and the guest is arriving.

Function: checkCleanRisk
Automation: Workflow: Check Clean Risk (every 5 minutes)

Manual Push Test (Admin)

Push Notification
Trigger: Admin creates a manual_push_test notification from notification settings
Recipient: All admin devices

Custom test push notification to verify background delivery is working.

Function: checkCleanRisk
Automation: Admin action (manual test)

Background Push Test (Admin)

Push Notification
Trigger: Admin triggers a test push from notification settings
Recipient: Admin device (this device)

Immediate test push to confirm lock-screen notifications are working on the current device.

Function: sendTestPush
Automation: Admin action (manual test)
Note: All emails are sent from stay@theresidenceco.io via the Resend API. Text messages are delivered through Twilio as standard SMS. Push notifications use the Web Push API (VAPID) to admin devices that have enabled notifications.