William Zhong is the co-founder of AlohaHosting, a short-term rental management company based in Liverpool, UK. Operating in the STR space for the last 5 years, William grew AlohaHosting to 40 listings, ranging from aparthotels to full homes.
Thanks to robust operating procedures, in-house cleaners and maintenance crew, and a high level of tech automation, AlohaHosting reduced its overhead costs and can offer free onboarding. Let’s explore how Hostfully contributed.
AlohaHosting, like many property management companies, initially adopted an entry-level PMS when holding a few properties. According to William, “The basic functionality was everything I needed at the time; it handled the calendar and sent out basic templates.” However, as William expanded his portfolio of listings, he encountered limitations. “The occasional bugs I could overlook, but guest communication became a big issue,” he explains. Due to the PMS’s lack of advanced features, triggers were only based on days before check-in, with no other conditions available. Moreover, each listing necessitated its own unique set of templates and triggers. “Onboarding a new property meant creating three or four templates, and if something affected all the properties like a parking or noise bylaw set by the city, I had to change 150+ templates manually” William adds. Eventually, William transitioned AlohaHosting’s operations to Hostfully after discovering it had all the functionality of an advanced PMS for a similar price as an entry-level one.
After completing onboarding, William delved into Hostfully’s triggers and templates feature. As a software developer, he quickly grasped the power of Hostfully’s custom fields for templates. According to him, “I can create a custom field that applies to the listings, which can be anything from detailed check-in instructions to the PIN code for a door, and even parking instructions.” William can then insert these custom fields into a central template, pulling the data from the custom field when the time comes to send out that message. By using custom fields, William was able to cut down his templates from 150 to a mere 20.
Template |
Dear {guest_name},
In anticipation of your stay at {property_name}, here are a few extra details that aren’t in the listing:
|
Examples of what guests receive |
Dear Ash,
In anticipation of your stay at the Kempstone Estate, here are a few extra details that aren’t in the listing:
|
*the template above was simplified to facilitate reading |
Examples of what guests receive |
Dear Jane,
In anticipation of your stay at your downtown flat, here are a few extra details that aren’t in the listing:
|
*the template above was simplified to facilitate reading |
Examples of what guests receive |
Dear John,
In anticipation of your stay at the Blacksmith’s Cottage, here are a few extra details that aren’t in the listing:
|
*the template above was simplified to facilitate reading |
Template |
Dear {guest_name},
In anticipation of your stay at {property_name}, here are a few extra details that aren’t in the listing:
|
Examples of what guests receive | ||
Dear Ash,
In anticipation of your stay at the Kempstone Estate, here are a few extra details that aren’t in the listing:
|
Dear Jane,
In anticipation of your stay at your downtown flat, here are a few extra details that aren’t in the listing:
|
Dear John,
In anticipation of your stay at the Blacksmith’s Cottage,
|
*the template above was simplified to facilitate reading |
This small nuance in templates and triggers meant significantly less headaches for William. “Custom fields save me so much time. If I ever want to change my central template, it doesn’t take me hours like it used to,” he adds.
Cookie | Duration | Description |
---|---|---|
__stripe_mid | 1 year | Stripe sets this cookie cookie to process payments. |
__stripe_sid | 30 minutes | Stripe sets this cookie cookie to process payments. |
_wpfuuid | 1 year 1 month 4 days | This cookie is used by the WPForms WordPress plugin. The cookie is used to allows the paid version of the plugin to connect entries by the same user and is used for some additional features like the Form Abandonment addon. |
cookielawinfo-checkbox-advertisement | 1 year | Set by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Advertisement" category . |
cookielawinfo-checkbox-analytics | 1 year | Set by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Analytics" category . |
cookielawinfo-checkbox-functional | 1 year | The cookie is set by the GDPR Cookie Consent plugin to record the user consent for the cookies in the category "Functional". |
cookielawinfo-checkbox-necessary | 1 year | Set by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Necessary" category . |
cookielawinfo-checkbox-others | 1 year | Set by the GDPR Cookie Consent plugin, this cookie is used to store the user consent for cookies in the category "Others". |
cookielawinfo-checkbox-performance | 1 year | Set by the GDPR Cookie Consent plugin, this cookie is used to store the user consent for cookies in the category "Performance". |
CookieLawInfoConsent | 1 year | CookieYes sets this cookie to store the user consent. |
elementor | never | This cookie is used by the website's WordPress theme. It allows the website owner to implement or change the website's content in real-time. |
viewed_cookie_policy | 1 year | CookieYes set this cookie to keep track of whether the user has approved the use of cookies. |
Cookie | Duration | Description |
---|---|---|
_hjAbsoluteSessionInProgress | 30 minutes | Hotjar sets this cookie to track the beginning of the user's journey for a total session count. It does not contain any identifiable information. |
_hjIncludedInPageviewSample | 2 minutes | Hotjar sets this cookie to know whether that visitor is included in the data sampling defined by your site's pageview limit. |
li_gc | 5 months 27 days | Linkedin set this cookie for storing visitor's consent regarding using cookies for non-essential purposes. |
lidc | 1 day | LinkedIn sets the lidc cookie to facilitate data center selection. |
UserMatchHistory | 1 month | LinkedIn sets this cookie for LinkedIn Ads ID syncing. |
Cookie | Duration | Description |
---|---|---|
_fbp | 3 months | Facebook sets this cookie to store and track interactions. |
_ga | 1 year 1 month 4 days | The _ga cookie, installed by Google Analytics, calculates visitor, session and campaign data and also keeps track of site usage for the site's analytics report. The cookie stores information anonymously and assigns a randomly generated number to recognize unique visitors. |
_ga_* | 1 year 1 month 4 days | Google Analytics sets this cookie to store and count page views. |
_gcl_au | 3 months | Google Tag Manager sets this cookie to experiment advertisement efficiency of websites using their services. |
_hjFirstSeen | 30 minutes | Hotjar sets this cookie to identify a new user’s first session. It stores a true/false value, indicating whether it was the first time Hotjar saw this user. |
_hjRecordingEnabled | never | Hotjar sets this cookie when a Recording starts and is read when the recording module is initialized, to see if the user is already in a recording in a particular session. |
_hjRecordingLastActivity | never | Hotjar sets this cookie when a user recording starts and when data is sent through the WebSocket. |
_hjTLDTest | session | To determine the most generic cookie path that has to be used instead of the page hostname, Hotjar sets the _hjTLDTest cookie to store different URL substring alternatives until it fails. |
ajs_anonymous_id | 1 year | This cookie is set by Segment to count the number of people who visit a certain site by tracking if they have visited before. |
ajs_user_id | never | This cookie is set by Segment to help track visitor usage, events, target marketing, and also measure application performance and stability. |
AnalyticsSyncHistory | 1 month | Linkedin set this cookie to store information about the time a sync took place with the lms_analytics cookie. |
CONSENT | 2 years | YouTube sets this cookie via embedded youtube-videos and registers anonymous statistical data. |
ln_or | 1 day | Linkedin sets this cookie to registers statistical data on users' behaviour on the website for internal analytics. |
tk_ai | 1 year 1 month 4 days | JetPack sets this cookie to store a randomly-generated anonymous ID which is used only within the admin area and for general analytics tracking. |
tk_lr | 1 year | The tk_lr is a referral cookie set by the JetPack plugin on sites using WooCommerce, which analyzes referrer behaviour for Jetpack. |
tk_or | 1 year 1 month 4 days | The tk_or is a referral cookie set by the JetPack plugin on sites using WooCommerce, which analyzes referrer behaviour for Jetpack. |
tk_qs | 30 minutes | JetPack sets this cookie to store a randomly-generated anonymous ID which is used only within the admin area and for general analytics tracking. |
tk_r3d | 3 days | JetPack installs this cookie to collect internal metrics for user activity and in turn improve user experience. |
tk_tc | session | JetPack sets this cookie to record details on how user's use the website. |
Cookie | Duration | Description |
---|---|---|
_tt_enable_cookie | 1 year 24 days | Tiktok set this cookie to collect data about behaviour and activities on the website and to measure the effectiveness of the advertising. |
_ttp | 1 year 24 days | TikTok set this cookie to track and improve the performance of advertising campaigns, as well as to personalise the user experience. |
bcookie | 1 year | LinkedIn sets this cookie to track the use of embedded services. |
bscookie | 1 year | LinkedIn sets this cookie to track the use of embedded services. |
IDE | 1 year 24 days | Google DoubleClick IDE cookies are used to store information about how the user uses the website to present them with relevant ads and according to the user profile. |
NID | 6 months | NID cookie, set by Google, is used for advertising purposes; to limit the number of times the user sees an ad, to mute unwanted ads, and to measure the effectiveness of ads. |
test_cookie | 15 minutes | The test_cookie is set by doubleclick.net and is used to determine if the user's browser supports cookies. |
VISITOR_INFO1_LIVE | 5 months 27 days | A cookie set by YouTube to measure bandwidth that determines whether the user gets the new or old player interface. |
YSC | session | YSC cookie is set by Youtube and is used to track the views of embedded videos on Youtube pages. |
yt-remote-connected-devices | never | YouTube sets this cookie to store the video preferences of the user using embedded YouTube video. |
yt-remote-device-id | never | YouTube sets this cookie to store the video preferences of the user using embedded YouTube video. |
yt.innertube::nextId | never | This cookie, set by YouTube, registers a unique ID to store data on what videos from YouTube the user has seen. |
yt.innertube::requests | never | This cookie, set by YouTube, registers a unique ID to store data on what videos from YouTube the user has seen. |
Cookie | Duration | Description |
---|---|---|
__q_domainTest | session | No description |
__q_state_qQfaoCzkKgjWcPNR | 1 year 1 month 4 days | No description |
__tld__ | session | No description |
_OG_GDPR_COOKIE_ | session | No description available. |
m | 1 year 1 month 4 days | No description available. |
viewedBlog | 1 month | No description |