The core information packet contains various pieces of data used throughout the app surfaces. Some of these are nice to have extras, when some are vital to the workings of the infrastructure.
These are displayed to users when they launch the app for the first time. These are swipable cards with a title, short text and image. For multi park installs these cannot be filtered between parks, as they are displayed in the app before the park selection process.
These are displayed to the user as soon as they load the app if they are a returning user. This is at the top of the my holiday section. these can be image/title banners which link within the app, or externally, or can be a box style with some text information.
These are vital to the holiday information / FAQs section of the app as they render on the first tab. These give the user options to contact the park, interlink within the app, or externally link out.
These are strings that are used throughout the app, but can be dynamic without needing a new app build/submission. Examples are the booking headlines, and park information for a single park install. Not all strings are used for multipark installs as the groupsite list includes the information instead, as it can change on a park by park basis.
This is the definition of the main menu, the three bottom tabs in the app, and the CTA buttons on the My Holiday section. This is includes information on which items are available, how they should be named, and the order they are in. This also acts as a permission system for the app, so it knows what holidaymaker modules are available to that particular app. Note: Even though this main menu information can be provided, items which are beyond the permissions of the current setup will be ignored.
These are the groupsite records. For a multipark holiday park brand, this would be each holiday park. Depending on the PMS login, it depends on how these are chosen. For some the user will choose their park before the login process, when for others they will do a single login to the PMS and this response will then say which park should be chosen automatically. For owners and guest users, they would always choose for a list of parks.
If you are also a QikServe client then this can integrate directly into the holidaymaker app surfaces. This is a link of QikServe links which can be used in various places throughout the app as well as being available on the order food area.
{
"info": {
//Core information structure
}
"lastChange": 1690895249
}Type : Core Information - Required
The main core information packet which includes various strings, groupsites for multi park installs, and other smaller entities for the app surfaces
Type : Epoch Date/Time Integer - Optional
Last change in UTC/GMT - Optionally used so our system knows if it should trigger data invalidation to end users devices.
Selection of strings for use by a group site object in relation to the PMS connection. These are sent as a nested object in a group site, but essentially work the same as the standard core information strings with the same property names
{
"feedbackUrl": "https://your-wordpress-install.com/contact",
"newBookingUrl": "https://your-wordpress-install.com/booknow",
"forgotPasswordUrl": "https://your-booking-engine.com/forgotpassword",
//ProphetOnly
"forgotPasswordButton": "Reset Login Details",
"forgotPasswordCopy": "Click below to visit our booking system to reset your credentials if you are having trouble logging in",
"registerBookingButton": "Register Account",
"registerBookingUrl": "https://your-booking-engine.com/register",
"registerBookingCopy": "Click below to visit our booking system to create an account. If this is the same email address attached to your booking, they will synchronise across and you will be able to login",
"continueAsGuestButton": "Continue as guest",
"continueAsGuestCopy": "If you booked on a third party booking system like PitchUp, then you will not be able to add your booking. Click below to continue using the app as a guest",
"refreshBookingOldCopy": "You do not have a current or future holiday on your account. If you do have a future booking it may take 24 hours to synchronise, but please contact us if you are still having difficulties",
"refreshBookingNoCopy": "You do not have any holiday bookings on your account. If you do have a future booking it may take 24 hours to synchronise, but please contact us if you are still having difficulties",
}Type : Url String - Optional
Once a logged in user's departure date has past they will be presented with a leave feedback button which will navigate to this url
Type : Url String - Optional
Once a logged in user's departure date has past they will be presented with a make new booking button which will navigate to this url. This button is also visible to users who choose to browse the app as a guest
Type : Url String - Optional
Used by most PMS connections - button available to users who are having trouble logging in with their booking
Type : String - Optional
Prophet PMS Only - Text for forgot password button on help screen
Type : Rich Text / Multiline String - Optional
Prophet PMS Only - Copy for forgot password box on help screen
Type : String - Optional
Prophet PMS Only - Text for register account button text on help screen
Type : Url String - Optional
Prophet PMS Only - Text for register account button url on help screen
Type : Rich Text / Multiline String - Optional
Prophet PMS Only - Copy for register account box on help screen
Type : String - Optional
Prophet PMS Only - Continue as guest button text on help screen
Type : Rich Text / Multiline String - Optional
Prophet PMS Only - Copy for continue as guest box on help screen
Type : Rich Text / Multiline String - Optional
Prophet PMS Only - Text which appears on a box on the my holiday screen if someone has successfully logged in but does not have any future bookings
Type : Rich Text / Multiline String - Optional
Prophet PMS Only - Text which appears on a box on the my holiday screen if someone has successfully logged in but does not have any booking
As we connect to different systems using a range of different languages, we can interpret several things as a true. Generally speaking holidaymaker will use a standard true/false JSON boolean, however we also read a lower case string and checked if they are "1", "true", "yes", or "on" to then create the positive boolean. Unless explicitly noted, all booleans are defaulted as false if the node doesn't exist.
{
"optionOne": true,
"optionTwo": false,
"allTheseAreValidTrues" : [
1, "1", true, "true", "on", "yes"
]
}This is a simple boolean - however for data constancy, or parsing reasons may have to be enforced as a string. Standard reads for a true would be 'true', 'TRUE', 'yes', 'YES', '1'
{
"homeOwnersEnabled": "true",
"whatsOnAutoSelectOwners": "false",
"multiSiteShowDetail": "false",
}A string value which should be a valid 24bit hexadecimal string. For example "#FF0000" for red. This is parsed by the app surfaces and defaults to a brand color if invalid.
{
"color": "#FF00FF"
}This is the main core information object which defines various bits of information throughout the holidaymaker app surfaces
{
"strings": {
// Core Strings Object
// Not all are required for multi site parks as some items are in park definitions
},
"onBoarding": [
{
// Onboarding Card 1
},
{
// Onboarding Card 2
}
],
"homeAlerts": [
{
// Home Alert 1
},
{
// Home Alert 2
}
],
"informationBlocks": [
{
// Info Block 1
},
{
// Info Block 2
}
],
"navigation": [
{
// Nav Item 1
},
{
// Nav Item 2
}
],
"sites": [
{
// Group Site 1
},
{
// Group Site 2
}
],
"qikserve": [
{
// QikServe Link 1
},
{
// QikServe Link 2
}
]
}Type : Core Information Strings - Required
This is a list of key / value strings which are used throughout the app. For a single site install, this information is much larger, when multisite installs have much of this data in the gorupsite objects instead.
Type : Array of Onboarding Card - Optional
Optional list of cards to display when the app first launches to a new user, or a user has chosen to completely clear their app data
Type : Array of Home Alert - Optional
Optional list of home alert cards, or home alert banners. Can be filtered between user status, and group sites, and include an internal intent to navigate around the app surfaces
Type : Array of Information Block - Required
At least one information box is required. These can be filtered for owners only, and include links to contact the park, or link to place records inside the app.
Type : Array of Navigation Item - Required
The main menu, tabs and call to action buttons of the app surfaces. These render in the order they appear in this data. They can navigate within the app sections/pages, to the places section to a certain menu item, or to a set selection of external urls. This should also include three items with either of the tab types, and include the image property
Type : Array of Group Site - Optional
This is the list of sites/parks for multi park installs. These are used by the user to select which park they are staying on, but also once logged in, use this information instead of many of the core strings instead. This gives us the ability to change information on a park by park basis
Type : Array of QikServe Link - Optional
This is an optional list of QikServe Links. These links can open approved QikServe menus within the app to create a seemless food and beverage ordering system.
The core information strings object is a collection of key / value strings. These are stored in the app and used for information which may not want to be hardcoded within the app surfaces. These can be urls, or park information for single site parks, as well as the personalisation strings for when someone is logged in.
{
"heartbeat": "1697710791",
"weatherType": "metoffice",
"homeOwnersEnabled": "true",
"multiSiteShowDetail": "false",
"pmsType": "elite",
"hasQikServe": "true",
"qikServeConfirmation": "true",
"eventCutOffDays": "7",
"notificationInterests": "dog|Food & Bar Offers;family|Entertainment updates",
"whatsOnLocationToRecord": "false:",
"whatsOnAllowSoldOutClick": "true",
"whatsOnDateRanges": "today;tomorrow;stay;week;month",
"whatsOnDefaultRange": "week",
"whatsOnDefaultRangeSignedIn": "stay",
"whatsOnDefaultRangeOwners": "month",
"whatsOnAutoSelectOwners": "true",
"routeFilters": "difficulty;activity;terrain;tags",
"routeSorts": "featured;distancelowhigh;distancehighlow;difficultylowhigh;difficultyhighlow;lengthlowhigh;lengthhighlow;durationlowhigh;durationhighlow",
"routeDefaultSort": "distancelowhigh",
"homesalesFilters": "location;condition;rooms;sleeps;size",
"homesalesSorts": "pricelowhigh;pricehighlow",
"homesalesDefaultSort": "pricelowhigh",
"infoTabTitle": "Contact",
"preHeadline": "[NUM] sleep(s) to go!",
"preSevenHeadline": "[NUM] sleep(s) to go!",
"arriveHeadline": "Arriving Today!",
"duringHeadline": "[NUM] more night(s)!",
"departHeadline": "Departing Today!",
"postHeadline": "We’re missing you already",
"preSubtitle": "We look forward to seeing you soon",
"preSevenSubtitle": "Best get packing if you haven't already started!",
"arriveSubtitle": "Have a safe journey and we look forward to seeing you soon",
"duringSubtitle": "Enjoying yourself? Make the holiday magic last longer and extend your stay",
"departSubtitle": "It's bye for now but don't forget to share your feedback with us",
"postSubtitle": "Re-live the holiday magic and book another break with us"
//Single Site/Park Clients Only
//This data is normally in the groupsite information site by site
"loc_lat" : "50.71245750791539,",
"loc_lng": "-2.4619866156242995",
"loc_zoom": "14",
"w3w": "qualified.burglars.digitally",
"w3wUrl": "https://w3w.co/qualified.burglars.digitally",
"footerImage": "https://your-wordpress-install.com/wp-content/uploads/2023/03/app-footer-3.jpeg?v=1679131824",
"phone": "012345678",
"emergencyNumber": "01234 567890",
"emergencyText": "Emergency and Out Of Hours",
"emergencyCopy": "This number is only for use out of hours or in the case of an emergency.#BREAK#Would you like to call?"
"email": "info@holidaymakerapp.co.uk",
"website": "https://holidaymakerapp.co.uk",
"address": "Holidaymaker App Ltd#BREAK#Stowey House#BREAK#Bridport Road#BREAK#Dorchester#BREAK#DT12SB",
"privacyUrl": "https://your-wordpress-install.com/privacy",
"socialIcons": "facebook;twitter;instagram",
"facebookUrl": "https://www.facebook.com/holidaymakerapp",
"instagramUrl": "https://www.instagram.com/holidaymakerapp",
"twitterUrl": "https://twitter.com/holidaymakerapp",
"youtubeUrl": "",
"tiktokUrl": "",
"threadsUrl": "",
"mapStyle": "satelitte",
"holidayHomesUrl": "https://link-to-external-homesales-site.com",
"accommodationMapButton": "Download Park Map",
"accommodationMapUrl": "https://your-wordpress-install.com/parkmap",
"feedbackUrl": "https://your-wordpress-install.com/contact",
"newBookingUrl": "https://your-wordpress-install.com/booknow",
"forgotPasswordUrl": "https://your-booking-engine.com/forgotpassword",
//ProphetOnly
"forgotPasswordButton": "Reset Login Details",
"forgotPasswordCopy": "Click below to visit our booking system to reset your credentials if you are having trouble logging in",
"registerBookingButton": "Register Account",
"registerBookingUrl": "https://your-booking-engine.com/register",
"registerBookingCopy": "Click below to visit our booking system to create an account. If this is the same email address attached to your booking, they will synchronise across and you will be able to login",
"continueAsGuestButton": "Continue as guest",
"continueAsGuestCopy": "If you booked on a third party booking system like PitchUp, then you will not be able to add your booking. Click below to continue using the app as a guest",
"refreshBookingOldCopy": "You do not have a current or future holiday on your account. If you do have a future booking it may take 24 hours to synchronise, but please contact us if you are still having difficulties",
"refreshBookingNoCopy": "You do not have any holiday bookings on your account. If you do have a future booking it may take 24 hours to synchronise, but please contact us if you are still having difficulties",
"bookingEngineSiteID": "3" ,
"basicFormHeader": "Your contact details",
"basicFormButton": "Submit"
"basicFormSentTitle": "Thank you",
"basicFormSent" : "We will be in touch as soon as we can.",
"basicFormSmallPrint": "Data is only processed by us",
}
Type : String - Required
This can be anything as it is used by the app surfaces to see if a core information packet has yet been ingested into its own database. The holidaymaker core CMS sends down the current epoch when the data was created as a string
Type : Weather Source Type - Required
The current weather source type which matches the current weather data. Normally this would be set to Met Office unless their services are currently down, when holidaymaker will fall back to using the open weather map data
Type : Boolean (String) - Optional
If this string is set to 'true' then the app surfaces will show any home owners specific fields, and respond to any home owners specific logic - eg allowing home owners login selection
Type : Boolean (String) - Optional
if this string is set to 'true' then the app surfaces will show a site/park information card when a user select a site/park - if not then the app will select the site with no secondary confirmation.
Type : PMS Booking Type - Required
Indication to which PMS connection the app should use (if any) so it knows what login to present to the user, and what background refreshes to do
Type : Boolean (String) - Optional
This is set to true if QikServe functionality is enabled for this install
Type : Boolean (String) - Optional
If this is true, then when a user clicks on QikServe link they will be shown a confirmation box that they wanted that restaurant/cafe/takeaway etc
Type : String - Optional
This should be an integer as a string - This would tell the app surfaces to ignore any event performances after the supplied number of days. This is designed for clients who want to maintain and setup events in advance, but wish end users to only see a set number of days
Type : String - Required
This is a complex key/value array condensed into single string. This array represents the push notification topics which are available to the app surfaces. Each key value pair should be separated themselves with pipe, and each pair are delimited with a semicolon. Eg this array is represented as { "family": "Family Friendly", "dog": "Dog Friendly" } { "notificationInterests": "family|Family Friendly;dog|Dog Friendly" }
Type : Boolean (String) - Optional
If this string is set to 'true' then the app surfaces will navigate to the things to do section and load the linked record when clicking on the location button. Default logic if this is set to false, would be to instead navigate to the park map. Useful for clients who do not use the map.
Type : Boolean (String) - Optional
If this string is set to 'true' then the app surfaces will still allow click through to the booking url of performances when if they are marked as sold out
Type : What’s On Date Range String - Optional
Semi-colon delimited string of what date ranges are available to the app in the whats on section. Example of this could be a client who has a huge list of events/performances, so you may want to remove the 'all' option so the user has to choose a specific range, eg this week/month
Type : What’s On Date Range String - Optional
The default single range that the what's on page should default to when navigating - If you are a guest in the app, or the signed in/owners choices do not exist in the 'whatsOnDateRanges' list. Note that if this default does not exist in the 'whatsOnDateRanges' list then the first available range will be chosen as the default by the app.
Type : What’s On Date Range String - Optional
The default single range that the what's on page should default to when navigating - If you are signed in with a booking in the app. Note that if this default does not exist in the 'whatsOnDateRanges' list then the 'whatsOnDefaultRange' default will be used as a fallback
Type : What’s On Date Range String - Optional
The default single range that the what's on page should default to when navigating - If you are signed in as an owner. Note that if this default does not exist in the 'whatsOnDateRanges' list then the 'whatsOnDefaultRange' default will be used as a fallback
Type : Boolean (String) - Optional
if this string is set to 'true' then the app surfaces will automatically select the 'Owners Only' tab when navigating to the whats on section, and the user is logged in as a user. This is worth setting to false, if the client doesn't use owners only events, as it can cause people being displayed an empty list by default
Type : List Filter Type String - Optional
A set of filters which are available for the Routes list in the app surfaces
Type : List Sort Type String - Optional
A set of sorts which are available for the Routes list in the app surfaces
Type : List Sort Type String - Optional
Default sort which is set when navigating to the Routes list in the app surfaces. If this is not available in the 'routeSorts' set then the first available sort will be chosen.
Type : List Filter Type String - Optional
A set of filters which are available for the Holiday Homes for Sale list in the app surfaces
Type : String - Required
This is the title of the first tab in the holiday information / FAQs section of the app.
Type : String - Required
This is the headline used when a user is signed in with a booking and it is before and more than 7 days before their arrival day - [NUM] place holder can be used to add the number of nights left before arrival. (s) placeholder will be removed or replaces by a 's' depending if the number of nights is more than 1.
Type : String - Required
This is the headline used when a user is signed in with a booking and it is before arrival but within 7 days before their arrival day - [NUM] place holder can be used to add the number of nights left before arrival. (s) placeholder will be removed or replaces by a 's' depending if the number of nights is more than 1.
Type : String - Required
This is the headline used when a user is signed in with a booking and it is their arrival date
Type : String - Required
This is the headline used when a user is signed in with a booking and it is on their departure date
Type : String - Required
This is the headline used when a user is signed in with a booking and it after their departure date
Type : String - Required
This is the subtitle used when a user is signed in with a booking and it is before and more than 7 days before their arrival day
Type : String - Required
This is the subtitle used when a user is signed in with a booking and it is before arrival but within 7 days before their arrival day
Type : String - Required
This is the subtitle used when a user is signed in with a booking and it is their arrival date
Type : String - Required
This is the subtitle used when a user is signed in with a booking and it after their arrival date, but before their departure date
Type : String - Required
This is the subtitle used when a user is signed in with a booking and it is on their departure date
Type : String - Required
This is the subtitle used when a user is signed in with a booking and it after their departure date
Type : Floating Point Numeric - Optional
SINGLE SITE ONLY : Location latitude of park / site
Type : Floating Point Numeric - Optional
SINGLE SITE ONLY : Location longitude of park / site
Type : Integer - Optional
SINGLE SITE ONLY : Location map zoom of park / site
Type : String - Optional
SINGLE SITE ONLY : What3Words address
Type : Url String - Optional
SINGLE SITE ONLY : Full What3Words url to navigate
Type : Image Url String - Optional
SINGLE SITE ONLY : Footer image at the bottom of the my holiday section
Type : String - Optional
SINGLE SITE ONLY : Contact phone number - This can include spaces as if a call us request is triggered this will have spaces removed from it
Type : String - Optional
SINGLE SITE ONLY : Emergency phone number - This can include spaces as if a emergency call us request is triggered this will have spaces removed from it
Type : String - Optional
SINGLE SITE ONLY : Emergency button text - This is the text rendered in the emergency phone number button if visible
Type : Rich Text / Multiline String - Optional
SINGLE SITE ONLY : Emergency button copy - This is the text that popups in a confirmation dialog if the emergency button is pressed - is often a warning that the number is only for use out of hours or for emergencies
Type : String - Optional
SINGLE SITE ONLY : Contact email address
Type : Url String - Optional
SINGLE SITE ONLY : Contact website
Type : Rich Text / Multiline String - Optional
SINGLE SITE ONLY : Address and postcode
Type : Url String - Optional
SINGLE SITE ONLY : Privacy policy url
Type : Social Icon Type String - Optional
SINGLE SITE ONLY : Selection of three social icons to show on the my holiday section. Note that if choosing a social network, the corrasponding url should also exist in the data. This will be checked by the app before navigation, but is good practice to ensure url exists as well in the data
Type : Url String - Optional
SINGLE SITE ONLY : Facebook Url - only used if facebook is present in the social icons selection
Type : Url String - Optional
SINGLE SITE ONLY : Instagram Url - only used if instagram is present in the social icons selection
Type : Url String - Optional
SINGLE SITE ONLY : Twitter Url - only used if twitter is present in the social icons selection
Type : Url String - Optional
SINGLE SITE ONLY : YouTube Url - only used if youtube is present in the social icons selection
Type : Url String - Optional
SINGLE SITE ONLY : TikTok Url - only used if tiktok is present in the social icons selection
Type : Url String - Optional
SINGLE SITE ONLY : Threads Url - only used if threads is present in the social icons selection
Type : Map Style - Optional
SINGLE SITE ONLY : The style the google map should use in the Park Map section of the app - default 'road'
Type : Url String - Optional
SINGLE SITE ONLY : If not using the holiday homes sales app section, the main menu can instead navigate to this external holiday home sales url
Type : String - Optional
SINGLE SITE ONLY : An optional external accommodation map jpeg, png or webpage can be added - this is the text the button will show
Type : Url String - Optional
SINGLE SITE ONLY : An optional external accommodation map jpeg, png or webpage can be added - this is the text the button will show
Type : Url String - Optional
SINGLE SITE ONLY : Once a logged in user's departure date has past they will be presented with a leave feedback button which will navigate to this url
Type : Url String - Optional
SINGLE SITE ONLY : Once a logged in user's departure date has past they will be presented with a make new booking button which will navigate to this url. This button is also visible to users who choose to browse the app as a guest
Type : Url String - Optional
SINGLE SITE ONLY : Used by most PMS connections - button available to users who are having trouble logging in with their booking
Type : String - Optional
SINGLE SITE ONLY : Used by some PMS connections - Park ID that may be needed when the app makes refresh requests to the PMS via our infrastructures
Type : String - Optional
SINGLE SITE ONLY : Prophet PMS Only - Text for forgot password button on help screen
Type : Rich Text / Multiline String - Optional
SINGLE SITE ONLY : Prophet PMS Only - Copy for forgot password box on help screen
Type : String - Optional
SINGLE SITE ONLY : Prophet PMS Only - Text for register account button text on help screen
Type : Url String - Optional
SINGLE SITE ONLY : Prophet PMS Only - Text for register account button url on help screen
Type : Rich Text / Multiline String - Optional
SINGLE SITE ONLY : Prophet PMS Only - Copy for register account box on help screen
Type : String - Optional
SINGLE SITE ONLY : Prophet PMS Only - Continue as guest button text on help screen
Type : Rich Text / Multiline String - Optional
SINGLE SITE ONLY : Prophet PMS Only - Copy for continue as guest box on help screen
Type : Rich Text / Multiline String - Optional
SINGLE SITE ONLY : Prophet PMS Only - Text which appears on a box on the my holiday screen if someone has successfully logged in but does not have any future bookings
Type : Rich Text / Multiline String - Optional
SINGLE SITE ONLY : Prophet PMS Only - Text which appears on a box on the my holiday screen if someone has successfully logged in but does not have any booking
Type : String - Optional
SINGLE SITE ONLY : Header for standard contact form
Type : String - Optional
SINGLE SITE ONLY : Text for submit button on standard contact form
Type : String - Optional
SINGLE SITE ONLY : Header for standard contact form once the form has sent successfully
Type : Rich Text / Multiline String - Optional
SINGLE SITE ONLY : Copy for standard contact form once the form has sent successfully
Type : Rich Text / Multiline String - Optional
SINGLE SITE ONLY : Small print rendered under the standard contact form
When dealing with time, as well as dates, our data packets will typically use an epoch integer. Our date/times will normally be in UTC/GMT - unless it will be a renderable time to the end user, when it currently will use the 'Europe/London' timezone to take into account daylight savings time.
{
"lastChange": 1691481892,
"time": 1691398800,
"endTime": 1691402400
}Float and Double values are handled as normal JSON. Depending on the precision of the language sending/receiving the data can depend on the truncation of the decimal points. However due to the context of our data, only location lat/lng numbers will normally have more than 2-3 points.
{
"cost": 55.5,
"lat": 50.71245750791539,
"lng": -2.4619866156242995
}A group site object defines a specific site that a user can choose when logging into the app, or is automatically chosen for them based on their PMS login. These commonly are record for holiday parks, and have many fields in them instead of the core strings list.
The 'key' is one of the most important parts, and generally should never change, even if the park itself has had a name change. This key is what identifies what park a user has chosen when loading the app, and is also used to filter their content so they only see relevant information for their park.
{
"id": 123,
"title": "Park One",
"key": "park-one",
"guestsOnly": false,
"ownersOnly": false,
"priority": 0,
"image": "https://your-wordpress-install.com/wp-content/uploads/2021/07/DJI_0934.jpg?v=1628248500",
"footerImage": "https://your-wordpress-install.com/wp-content/uploads/2021/07/DJI_0934.jpg?v=1628248500",
"description": "Holiday Park One sits on the south coast of England, just a stones throw from the jurassic coast",
"phone": "012345678",
"emergencyNumber": "01234 567890",
"emergencyText": "Emergency and Out Of Hours",
"emergencyCopy": "This number is only for use out of hours or in the case of an emergency.#BREAK#Would you like to call?"
"email": "info@holidaymakerapp.co.uk",
"website": "https://holidaymakerapp.co.uk",
"address": "Holidaymaker App Ltd#BREAK#Stowey House#BREAK#Bridport Road#BREAK#Dorchester#BREAK#DT12SB",
"w3w": "qualified.burglars.digitally",
"w3wUrl": "https://w3w.co/qualified.burglars.digitally",
"privacyUrl": "https://your-wordpress-install.com/privacy",
"socialIcons": "facebook;twitter;instagram",
"facebookUrl": "https://www.facebook.com/holidaymakerapp",
"instagramUrl": "https://www.instagram.com/holidaymakerapp",
"twitterUrl": "https://twitter.com/holidaymakerapp",
"youtubeUrl": "",
"tiktokUrl": "",
"threadsUrl": "",
"holidayHomesUrl": "https://link-to-external-homesales-site.com",
"accommodationMapButton": "Download Park Map",
"accommodationMapUrl": "https://your-wordpress-install.com/parkmap",
"loc_lat" : "50.71245750791539,",
"loc_lng": "-2.4619866156242995",
"loc_zoom": "14",
"mapStyle": "satellite",
"bookingEngineStrings": {
//Booking Engine Strings Object
}
"basicFormHeader": "Your contact details",
"basicFormButton": "Submit"
"basicFormSentTitle": "Thank you",
"basicFormSent" : "We will be in touch as soon as we can.",
"basicFormSmallPrint": "Data is only processed by us",
}Type : Integer - Required
ID for group site record, must be unique between group site records, but does not need to unique among other entities.
Type : String - Required
Site / Park Name
Type : String - Required
The site/park key - This is a very important property as it is used to identify which park a user is on, and what content should be shown based on other entities 'sites' array
Type : Boolean - Optional
Should this site or park be considered guest only? This means if a user select this park, they will bypass the login selection and automatically be set to be a guest. Usful for none parks which are added as an additional groupsite, eg an on site pub open to locals as well as a park guests
Type : Boolean - Optional
Should this site or park be considered guest only? This means if a user selects this park they can choose to be a owner, or a guest, but not have the option to login with a PMS booking.
Type : Integer - Optional
Defaults to 99 - the lower the priority the higher on the site selection list this park will appear before alphabetisation.
Type : Image Url String - Optional
Hero image for this site / park. This is shown on the site selection list.
Type : Image Url String - Optional
Footer image at the bottom of the my holiday section
Type : Rich Text / Multiline String - Optional
Text displayed on the card for this park / site on the site selection screen
Type : String - Optional
Contact phone number - This can include spaces as if a call us request is triggered this will have spaces removed from it
Type : String - Optional
Emergency phone number - This can include spaces as if a emergency call us request is triggered this will have spaces removed from it
Type : String - Optional
Emergency button text - This is the text rendered in the emergency phone number button if visible
Type : Rich Text / Multiline String - Optional
Emergency button copy - This is the text that popups in a confirmation dialog if the emergency button is pressed - is often a warning that the number is only for use out of hours or for emergencies
Type : String - Optional
Contact email address
Type : Url String - Optional
Contact website
Type : Rich Text / Multiline String - Optional
Address and postcode
Type : String - Optional
What3Words address
Type : Url String - Optional
Full What3Words url to navigate
Type : Url String - Required
Privacy policy url
Type : Social Icon Type String - Optional
Selection of three social icons to show on the my holiday section. Note that if choosing a social network, the corrasponding url should also exist in the data. This will be checked by the app before navigation, but is good practice to ensure url exists as well in the data
Type : Url String - Optional
Facebook Url - only used if facebook is present in the social icons selection
Type : Url String - Optional
Instagram Url - only used if instagram is present in the social icons selection
Type : Url String - Optional
Twitter Url - only used if twitter is present in the social icons selection
Type : Url String - Optional
YouTube Url - only used if youtube is present in the social icons selection
Type : Url String - Optional
TikTok Url - only used if tiktok is present in the social icons selection
Type : Url String - Optional
Threads Url - only used if threads is present in the social icons selection
Type : Url String - Optional
If not using the holiday homes sales app section, the main menu can instead navigate to this external holiday home sales url
Type : String - Optional
An optional external accommodation map jpeg, png or webpage can be added - this is the text the button will show
Type : Url String - Optional
An optional external accommodation map jpeg, png or webpage can be added - this is the text the button will show
Type : Floating Point Numeric - Optional
Location latitude of park / site
Type : Floating Point Numeric - Optional
Location longitude of park / site
Type : Integer - Optional
Location map zoom of park / site
Type : Map Style - Optional
The style the google map should use in the Park Map section of the app - default 'road'
Type : Booking Engine Strings - Optional
A nested object with a collection of strings in relation to PMS login and behavior
Type : String - Optional
Header for standard contact form
Type : String - Optional
Text for submit button on standard contact form
Type : String - Optional
Header for standard contact form once the form has sent successfully
Type : Rich Text / Multiline String - Optional
Copy for standard contact form once the form has sent successfully
Type : Rich Text / Multiline String - Optional
Small print rendered under the standard contact form
A Home alert renders at the top of the My Holiday section. It is can be a card with a border, title with icon and text. This has an accent color and icon based on it's style, with an option to have these custom set. Optionally you can have it as a banner style with a background image and white title (or transparent black gradient). An alert box can have an optional intent to cross link too content within the app, or link out of the app externally (eg to F&B system, or other bookings). If an alert is set to banner style, it must include an intent else will not render in the app (as will do nothing when clicked)
//Guest Alert example with no button
{
"title": "High winds",
"copy": "We have had an amber weather warning for high winds expected until Thursday",
"style": "alert",
"sites": [
"park-one",
"park-two"
]
}
//Owners Only Banner
{
"title": "5% off at the bar",
"style": "banner",
"banner": "https://your-wordpress-install.com/wp-content/uploads/2022/10/park-bar.jpeg?v=1684756244",
"linkIntent": "offer",
"linkID": 134,
"isOwnersOnly": true,
"sites": [
"park-one"
]
}
//All properties
{
"title": "High winds",
"copy": "We have had an amber weather warning for high winds expected until Thursday",
"style": "alert",
"banner": "https://your-wordpress-install.com/wp-content/uploads/2022/10/park-bar.jpeg?v=1684756244",
"linkIntent": "offer",
"linkTitle": "Book Now",
"linkUrl": "https://your-booking-engine.com/start-booking",
"linkSlug": "menu-item-slug",
"linkID": 134,
"isOwnersOnly": true,
"signedInOnly": false,
"onHolidayOnly": false,
"sites": [
"park-one"
]
}Type : String - Required
Title is rendered either at the top of the alert box card in the stlye's defined color, or if the style is set to banner then will be white on top of a black gradient at the bottom of the banner image
Type : Home Alert Style - Optional
Style of the alert box. If set to banner then an intent must be set, and the copy property will be ignored.
Type : Rich Text / Multiline String - Optional
For alert box cards this is the main copy rendered. This is ignored if the style is set to banner.
Type : Image Url String - Optional
If style is set to banner, then this is required. This is the image which is displayed as the banner. Other styles ignore this property even if set.
Type : Home Alert Intent - Optional
This is optional for alert cards, but required if the style is set to banner. If this is set then the alert box will add a call to action button, or behaviour as expected when the banner is clicked.
Type : String - Optional
The title of the call to action button. This is ignored if the style is set to banner, or there is no intent set.
Type : Url String - Optional
External url required if the intent is set to 'link', or the QikServe embed url if intent is set to 'qikserve' - ignored by all other intents
Type : String - Optional
Slug of place menu item if the intent is set to 'menu' - ignored by all other intents
Type : Integer - Optional
ID of record to navigate to if the intent is set to 'place', 'offer' or 'qikserve' - ignored by all other intents
Type : Color String - Optional
Custom color used by the border and title of the alert box if style is set to 'custom' - ignored by all other styles
Type : Image Url String - Optional
Custom icon used beside title of the alert box if style is set to 'custom' - ignored by all other styles. This should be a small transparent png - 100-75px recommended
Type : Boolean - Optional
If set to true this alert box will only be visible to users who have logged in with a valid holiday booking, AND is between their arrival and departure date (inclusive) - Note that the holidaymaker CMS would normally only allow one of these three options to be set to true.
Type : Boolean - Optional
If set to true this alert box will only be visible to users who have logged in with a valid holiday booking - Note that the holidaymaker CMS would normally only allow one of these three options to be set to true.
Type : Boolean - Optional
If set to true this alert box will only be visible to users who have logged in as a home owner - Note that the holidaymaker CMS would normally only allow one of these three options to be set to true.
Type : Array of String - Required
Only required for multi site installs - can be disregarded for single park systems. This should be a list of valid groupsite keys which this alert box should be available for. If this array is missing or empty then the alert box will not render for any user.
This is string definition to set a home alert's behaviour when the optional link is clicked. The options available are :
• "none" - No button (default)
• "link" - Navigate to external link
• "menu" - Navigate to places section filtering by a menu item
• "place" - Navigate to places section and view a specific place record
• "offers" - Navigate to offers section
• "offer" - Navigate to offers section and view a specific offer record
• "whatson" - Navigate to what's on section
• "homesales" - Navigate to holiday home sales section
• "routes" - Navigate to routes section
• "faqs" - Navigate to FAQs / Holiday Information section
• "qikserve" - Load chosen QikServe link within the app
{
"linkIntent": "offer",
"linkID": 134,
}This is string definition to style a home alert. The options available are :
• "standard" - Info icon in branded color (default)
• "alert" - Warning/caution icon in red
• "custom" - Can set own icon/color
• "banner" - Renders as landscape image banner with title on top
{
"style": "alert"
}Our app surfaces talk to an image engine on our infrastructure to process and resize images for different smart phone screen densities. Because of this the size of images are less relevant as they are delivered at optimum sizes anyway. However due to processing power and speed we do recommend that image urls are all 3000 pixels or below. The app surfaces will never need an image this large, so it gives you the option of still having a large quality image, but can be loaded in the apps and our infrastructure efficiently. We support both png, jpeg, and webp images. You can optionally include a '?v=' version integer so this can be used for versioning. If you do include this you can ensure images are reprocessed if the source image is changed on your servers.
{
"imgUrl": "https://your-wordpress-site.com/wp-content/uploads/2023/08/a-large-image-3000x2100.jpg?v=1691481892",
"image": "https://your-wordpress-site.com/wp-content/uploads/2023/08/a-smaller-image.png"
}Information blocks renders as a list on the first tab of the holiday information/FAQs section of the app. They are rendered as cards with some copy and an optional button, or set of buttons. A single button can link to a form of contact, or to place records. You can also choose for it to render several buttons for the available FAQ categories.
{
"id": 4,
"copy": "Don't forget you can also contact us on this email address.",
"type": "email",
"link": "hello@holidaymakerapp.co.uk",
"place": 42,
"menu": "menu-item-slug",
"buttonTitle": "hello@holidaymakerapp.co.uk",
"isOwnersOnly": false,
"sites": [
"park-one"
]
}Type : Integer - Required
This ID number needs to be unique to other information blocks however is not relational to any other logic in the app, therefore can be generated on the fly. This ID number is also used for ordering the information blocks, so it is common to give them IDs of 1..X as they are being written to the data packet.
Type : Rich Text / Multiline String - Optional
Main text inside the information block.
Type : Information Block Type - Optional
Type for how the button/s should render and behave. Default is "none"
Type : String - Optional
Text used for the single button. typically may be the actual phone number, or email address, or a call to action style title. Ignored if type set to none, or faqs.
Type : String - Optional
This is the email, website, or phone number for the corresponding block types. Is ignored if type is not set to email, website, or phone.
Type : String - Optional
Slug of place menu item to view a list of places of, if the block type is set to 'menu'. Is ignored if type is not set to 'menu'.
Type : Integer - Optional
This is the place ID number to view the detail of, if the block type is set to 'place'. Is ignored if type is not set to 'place'.
Type : Boolean - Optional
If set to true this information block will only be visible to users who have logged in as a home owner.
Type : Array of String - Optional
Only required for multi site installs - can be disregarded for single park systems. This should be a list of valid groupsite keys which this information block should be available for. If this array is missing or empty then the information block will not render for any user.
This is string definition to set an information block's button/s will be rendered and behave. The options available are :
• "none" - No button (default)
• "faqs" - Multiple buttons for all FAQ categories
• "menu" - Navigate to places section filtering by a menu item
• "place" - Navigate to places section and view a specific place record
• "phone" - Trigger a phone call with supplied number
• "email" - Trigger a email with the supplied email address
• "website" - Navigate to an external website
{
"type": "email",
"link": "hello@holidaymakerapp.co.uk",
}Standard JSON Integer - 0 is commonly considered to be a default value, unless it is an valid ID when -1 is used. For sort priorities 99 is used as the default.
{
"key1": 9,
"key2": 42,
"arrayOfInts": [
2,
3,
5,
8
]
}This is a set of string definitions for filters available on some lists. These are mixed together for both the holiday homes for sale section, and the routes section - however when sending these values, single groups should be used. These should be semicolon delimited, out of the following available options :
• "difficulty" - Difficulty (Routes)
• "activity" - Activity (Routes)
• "terrain" - Terrain (Routes)
• "tags" - Tags (Routes)
• "location" - Location (Home Sales)
• "condition" - Condition (Home Sales)
• "rooms" - Rooms (Home Sales)
• "sleeps" - Sleeps (Home Sales)
• "size" - Size (Home Sales)
• "manufacturer": "Manufacturer (Home Sales)
{
"routeFilters": "difficulty;activity;terrain;tags",
"homesalesFilters": "location;condition;rooms;sleeps;size"
}This is a single or set of several string definitions to set what sort options are available on some lists These are mixed together for both the holiday homes for sale section, and the routes section - however when sending these values, single groups should be used. If it is a set then these should be semicolon delimited, out of the following available options :
• "featured": "Featured (Routes & Home Sales)
• "distancelowhigh" - Distance From Park Low to High (Routes)
• "distancehighlow" - Distance From Park High to Low (Routes)
• "difficultylowhigh" - Difficulty From Park Low to High (Routes)
• "difficultyhighlow" - Difficulty From Park High to Low (Routes)
• "lengthlowhigh" - Length From Park Low to High (Routes)
• "lengthhighlow" - Length From Park High to Low (Routes)
• "durationlowhigh" - Duration From Park Low to High (Routes)
• "durationhighlow" - Duration From Park High to Low (Routes)
• "pricelowhigh" - Price Low to High (Home Sales)
• "pricehighlow" - Price High to Low (Home Sales)
{
"routeSorts": "featured;distancelowhigh;distancehighlow;difficultylowhigh;difficultyhighlow;lengthlowhigh;lengthhighlow;durationlowhigh;durationhighlow",
"routeDefaultSort": "distancelowhigh",
"homesalesSorts": "pricelowhigh;pricehighlow",
"homesalesDefaultSort": "pricelowhigh"
}This is string definition to set how embedded google maps should render in the app. The options available are :
• "road" - Standard Google Maps Road
• "satellite" - Satellite Photo View
{
"mapStyle": "satelitte"
}Main menu items are rendered simply as a text button. They can be set to be an alternative accent color, which is commonly used for holiday homes sales. When selecting an item a menu item can navigate to an app page, a set list of external urls, or a place menu item.
{
"type": "page",
"title": "My Holiday",
"page": "myholiday"
"slug": "facilities"
"url": "site|holidayHomesUrl",
"alt": true,
"icon": "brand"
}Type : Navigation Item Type - Required
Sets the behaviour of this menu item or tab - either a page navigate, external link, or place menu item for menu items, or page navigate or place menu for up to three tab items
Type : String - Required
The title of the menu item
Type : Navigation Item Page - Optional
Which page should this item navigate too. Ignored if the type is not set to 'page'. Defaults to 'myholiday'
Type : String - Optional
Which places menu item slug should this item navigate too. Ignored if the type is not set to 'thingstodo'
Type : Navigation Item Url Key - Optional
Which external url key should this item navigate too. Ignored if the type is not set to 'url'
Type : Boolean - Optional
Should this item render as the alternative accent color. Default false.
Type : Navigation Item Tab / CTA Icon - Optional
Ignored unless the menu type is a tab or tabthingstodo - This is the icon key for which icon should be used for this tab
This is string definition to set which page / section of the app surfaces a menu item should navigate too. The options available are :
• "myholiday" - My Holiday (default)
• "thingstodo" - Things to Do / Places
• "whatson" - What's On
• "parkmap" - Park Map
• "faqs" - FAQs / Holiday Information
• "favourites" - My Favourites
• "offers" - Offers
• "homesales" - Holiday Homes for Sale
• "shop" - Shop
• "routes" - Routes
• "food" - Order Food & Drink
{
"type": "page",
"title": "Explore",
"page": "thingstodo"
}This is string definition to set a tab or CTA icons for a set embedded in the app. These are the base set of icons, which can be bespoke image files client by client in the app. There is also the ability to send another option that isn't below, if the corresponding bespoke image is included in that clients app. The standard options available are :
• "brand" - Tabs
• "beach" - Tabs
• "calendar" - Tabs
• "compass" - Tabs
• "place" - Tabs
• "bench" - Tabs
• "lakes" - Tabs
• "clipboard" - Tabs
• "info" - Tabs
• "lodge" - Tabs
• "walking" - Tabs
• "takeaway" - Tabs
• "takeawaypizza" - Tabs
• "takeawayburger" - Tabs
• "takeawayfish" - Tabs
• "phone" - CTAs
• "map" - CTAs
• "mail" - CTAs
• "question" - CTAs
• "car" - CTAs
NOTE : THESE ARE CURRENTLY BEING DEFINED AND ARE NOT CORRECTLY LISTED
{
"icon": "brand"
}This is string definition to set how a menu item will behave. The options available are :
• "page" - Navigate to app page/section (default)
• "url" - Navigate to an external url (restricted to urls/intents already known by the app)
• "thingstodo" - Navigate to places/things to do section filtering by a menu item
• "tab" - This is not for the main menu but for one of the bottom tabs : navigate to app page/section
• "tabthingstodo" - This is not for the main menu but for one of the bottom tabs : navigate to places/things to do section filtering by a menu item
• "cta" - This is not for the main menu but for one of the three CTA buttons on the my holiday section : navigate to app page/section
• "ctathingstodo" - This is not for the main menu but for one of the three CTA buttons on the my holiday section : navigate to places/things to do section filtering by a menu item
• "ctaurl" - Navigate to an external url (restricted to urls/intents already known by the app)
{
"type": "page",
"title": "Explore",
"page": "thingstodo"
}This is string key to tell the app which external url a menu item should attempt to navigate too. The options available are :
• "site|holidayHomesUrl" - Navigate to external holiday home sales website
• "intent|map" - Trigger the normal navigate to map intent within the app
• "intent|phone" - Trigger the normal phone us intent within in the app
• "intent|email" - Trigger the normal email/contact us intent within the app
{
"type": "url",
"title": "Holiday Homes For Sale",
"url": "site|holidayHomesUrl"
},This is single onboarding card. These are displayed with the title, a large icon / image in the middle, with a small bit of copy at the bottom.
{
"title": "How many sleeps?",
"copy": "The countdown to your break at Key Holiday Park has started...",
"icon": "https://your-wordpress-install.com/wp-content/uploads/2021/08/celebration-stars-red.png?v=1629324947"
}Type : String - Required
Title of onboarding card
Type : Rich Text / Multiline String - Required
This works best a single sentence. Text renders at the bottom of the card under the icon
Type : Image Url String - Required
The icon/image is rendered in the middle of the card. Generally a transparent icon works well.
This is string definition to set which PMS Booking login the app should use. The options available are :
• "guest" - Do not have a login process for whole app (Single Site Guest Mode)
• "manual" - Manual booking process (User adds own arrival / departure etc)
• "bex" - ParcVu Booking Experts PMS login
• "parcvu" - ParcVu Classic PMS login
• "gemapark" - GemaPark PMS login
• "rms" - RMS Cloud PMS login
• "elite" - Elite Dynamics PMS login
• "campmanager" - Campmanager PMS login
• "prophet" - Prophet Bookings PMS login
• "bespoke" - In-house / Bespoke PMS login
{
"pmsType": "bex"
}This is a single QikServe Link listing. It contains the rich content to render a card within the apps order food section as well as a reference to that link for other parts of the app to access if required.
{
"id": 1234,
"title": "Holidaymaker Pizza",
"description": "This is some information about the lovely pizza restaurant we have.#BREAK##BREAK#You can order pizza here and cheesy sticks!",
"address": "Oasis Complex#BREAK#Key Park One#BREAK#Dorchester#BREAK#Dorset",
"imgUrl": "https://your-wordpress-install.com/wp-content/uploads/2024/01/Pizza-Diner.jpg?v=1704806444",
"ctaUrl": "https://order-demo.withqikserve.com/demo-demo-demo",
"ctaText": "View Menus and Order >",
"highlightText": "Takeaway and Table Service",
"sites": [
"key-park-one"
]
}Type : Integer - Required
ID for this link. This needs to be unique to others links in the list, however does not need to be unique to other entities. This ID should also not change between data requests/packets.
Type : String - Required
Link / Menu Title
Type : Rich Text / Multiline String - Optional
List description. This is rendered as a small amount of text on the home cards within the app surfaces.
Type : Rich Text / Multiline String - Optional
Link address. This is only relevent if QikServe link confirmation is on for this install. It is rendered in the confirmation box when a user clicks on a QikServe link.
Type : Image Url String - Optional
Landscape hero image used on the order food view.
Type : Url String - Required
The QikServe affiliated permalink to open the chosen menu within the app
Type : String - Required
The title for the call to action button that opens the chosen menu within the app. Typical default is 'View Menus and Order >'
Type : String - Optional
This small piece of text is used on the list cards to highlight something. It is normally the brand accent color in a rounded corner pill text view. Examples may be 'Takeaway or Table Service' or 'New for 2024'
Type : Array of String - Optional
Only required for multi site installs - can be disregarded for single park systems. This should be a list of valid groupsite keys which this QikServe Link should be available for. If this array is missing or empty then the offer will not render for any user.
Acts the same as the standard String type, however If text is assumed to include line breaks then we use a place holder of #BREAK#. These will then be replaced by the relevant line breaks depending on the language, and device that is rendering the text. This is commonly used in entity copy, and addresses. Rich text should not include HTML or other markup. There should always be a contextual consideration as well - for example if you copy includes a html anchor link to 'Read More' - then simply removing the markup will then leave the text 'Read More' which will be a redundant, none clickable piece of text within the app surfaces.
{
"textWithBullets": "This paragraph will now have two line breaks, and then a list of bullets#BREAK##BREAK#• Bullet 1#BREAK#• Bullet 2#BREAK#• Bullet 3",
"address": "Holidaymaker App Ltd#BREAK#Stowey House#BREAK#Bridport Road#BREAK#Dorchester#BREAK#DT12SB"
}This is a set of up to three string definitions to set what social icons to use. These should be semicolon delimited, out of the following available options :
• "none" - Do not show an icon is this position (default)
• "twitter" - Twitter using the legacy blue bird icon
• "twitterx" - Twitter using recent 'X' black logo
• "tiktok" - TikTok
• "facebook" - Facebook
• "instagram" - Instagram
• "youtube" - YouTube
• "threads" - Threads
• "logo" - Brand / Company logo - this will navigate to main park website - on CMS restricts users from selecting this option for the middle position only
{
"socialIcons": "threads;instagram;tiktok"
}Standard JSON String - Often will have certain characters escaped depending what system is writing the JSON packet, however our parser only requires to have double quotes (") escaped. UTF-8 encoding is our standard, but others may be accepted if required. If line breaks are required in the text then the Rich Text / Multiline String type is used instead.
{
"key1": "A string value",
"key2": "Another string with an some \"quotes\" that need escaping",
"arrayOfStrings": [
"Item one as a string",
"Item two as a string",
"Item three as a string",
]
}A Url is sent the same as a string. If our system knows this is a url it will check if it starts with http or https - Note that navigating from both iOS and Android should use https.
{
"bookingUrl" : "https://portal.managebooking.pmssystem"
}This is string definition of which weather source the app should currently have. The options available are :
• "metoffice - Met Office
• "openweathermap" - Open Weather Map
{
"weatherType": "metoffice"
}This is a single or set of several string definitions to set what date ranges are available in the what's on section. If it is a set then these should be semicolon delimited, out of the following available options :
• "all" - All
• "today" - Today
• "tomorrow" - Tomorrow
• "stay" - Your Stay
• "week" - This Week
• "month" - This Month
{
"whatsOnDateRanges": "today;tomorrow;stay;week;month",
"whatsOnDefaultRange": "week",
"whatsOnDefaultRangeSignedIn": "stay",
"whatsOnDefaultRangeOwners": "month"
}{
"info": {
"strings": {
"heartbeat": "1697710791",
"weatherType": "metoffice",
"homeOwnersEnabled": "true",
"multiSiteShowDetail": "false",
"pmsType": "elite",
"hasQikServe": "true",
"qikServeConfirmation": "true",
"notificationInterests": "dog|Food & Bar Offers;family|Entertainment updates",
"whatsOnDateRanges": "today;tomorrow;stay;week;month",
"whatsOnDefaultRange": "week",
"whatsOnDefaultRangeSignedIn": "stay",
"whatsOnDefaultRangeOwners": "month",
"whatsOnAutoSelectOwners": "true",
"whatsOnLocationToRecord": "false:",
"whatsOnAllowSoldOutClick": "true",
"routeFilters": "difficulty;activity;terrain;tags",
"routeSorts": "featured;distancelowhigh;distancehighlow;difficultylowhigh;difficultyhighlow;lengthlowhigh;lengthhighlow;durationlowhigh;durationhighlow",
"routeDefaultSort": "distancelowhigh",
"homesalesFilters": "location;condition;rooms;sleeps;size",
"homesalesSorts": "pricelowhigh;pricehighlow",
"homesalesDefaultSort": "pricelowhigh",
"infoTabTitle": "Contact",
"preHeadline": "[NUM] sleep(s) to go!",
"preSevenHeadline": "[NUM] sleep(s) to go!",
"arriveHeadline": "Arriving Today!",
"duringHeadline": "[NUM] more night(s)!",
"departHeadline": "Departing Today!",
"postHeadline": "We’re missing you already",
"preSubtitle": "We look forward to seeing you soon",
"preSevenSubtitle": "Best get packing if you haven't already started!",
"arriveSubtitle": "Have a safe journey and we look forward to seeing you soon.",
"duringSubtitle": "Enjoying yourself? Make the holiday magic last longer and extend your stay (subject to availability), call 01308 426917 or visit your park reception.",
"departSubtitle": "It's bye for now but don't forget to share your holiday snaps #WDLH for a chance to win £250 off your next holiday.",
"postSubtitle": "Re-live the holiday magic and book another WDLH break, why not visit one of our other parks?"
},
"onBoarding": [
{
"title": "How many sleeps?",
"copy": "The countdown to your break has started...",
"icon": "https://your-wordpress-install.com/wp-content/uploads/2021/08/fireworks-yellow.png?v=1629734298"
},
{
"title": "Find lots of things to do",
"copy": "Explore the beautiful surroundings and see what we have to offer...",
"icon": "https://your-wordpress-install.com/wp-content/uploads/2021/08/shell-yellow.png?v=1629734343"
},
{
"title": "Plan your stay",
"copy": "Get ready for your break with our information tools...",
"icon": "https://your-wordpress-install.com/wp-content/uploads/2021/08/calendar-sunny-yellow.png?v=1629734568"
}
],
"homeAlerts": [
{
"title": "Owners Hub",
"copy": "Login to our Owners Portal",
"style": "standard",
"linkIntent": "link",
"linkTitle": "Login",
"linkUrl": "https://link-to-owners-portal.com",
"isOwnersOnly": true,
"sites": [
"park-one",
"park-two"
]
},
{
"title": "5% off at the bar",
"style": "banner",
"banner": "https://your-wordpress-install.com/wp-content/uploads/2022/10/park-bar.jpeg?v=1684756244",
"linkIntent": "offer",
"linkID": 134,
"sites": [
"park-one"
]
}
],
"informationBlocks": [
{
"copy": "If you have any queries check out our information in the categories below to see if your question is already answered. If not, you can contact us directly.",
"type": "faqs",
"sites": [
"park-one",
"park-two"
]
},
{
"id": 1,
"copy": "Please speak to a member of our Reception Team who will be delighted to help.",
"type": "phone",
"link": "01234 567 890",
"buttonTitle": "01234 567 890",
"sites": [
"park-one",
"park-two"
]
},
{
"id": 2,
"copy": "Don't forget you can also contact us on this email address.",
"type": "email",
"link": "info@holidaymakerapp.co.uk",
"buttonTitle": "info@holidaymakerapp.co.uk",
"sites": [
"park-one",
"park-two"
]
},
{
"id": 4,
"copy": "Out-of-hours emergency telephone number",
"type": "phone",
"link": "01234 567 891",
"buttonTitle": "01234 567 891",
"sites": [
"park-one"
]
},
{
"id": 5,
"copy": "Out-of-hours emergency telephone number",
"type": "phone",
"link": "01234 567 892",
"buttonTitle": "01234 567 892",
"sites": [
"park-two"
]
}
],
"sites": [
{
"id": 123,
"title": "Park One",
"key": "park-one",
"priority": 0,
"image": "https://your-wordpress-install.com/wp-content/uploads/2021/07/DJI_0934.jpg?v=1628248500",
"footerImage": "https://your-wordpress-install.com/wp-content/uploads/2021/07/DJI_0934.jpg?v=1628248500",
"description": "Holiday Park One sits on the south coast of England, just a stones throw from the jurassic coast",
"phone": "012345678",
"email": "info@holidaymakerapp.co.uk",
"website": "https://holidaymakerapp.co.uk",
"address": "Holidaymaker App Ltd#BREAK#Stowey House#BREAK#Bridport Road#BREAK#Dorchester#BREAK#DT12SB",
"w3w": "qualified.burglars.digitally",
"w3wUrl": "https://w3w.co/qualified.burglars.digitally",
"privacyUrl": "https://your-wordpress-install.com/privacy",
"socialIcons": "facebook;twitter;instagram",
"facebookUrl": "https://www.facebook.com/holidaymakerapp",
"instagramUrl": "https://www.instagram.com/holidaymakerapp",
"twitterUrl": "https://twitter.com/holidaymakerapp",
"holidayHomesUrl": "https://link-to-external-homesales-site.com",
"accommodationMapButton": "Download Park Map",
"accommodationMapUrl": "https://your-wordpress-install.com/parkmap",
"loc_lat" : "50.71245750791539,",
"loc_lng": "-2.4619866156242995",
"loc_zoom": "14",
"mapStyle": "satellite",
"bookingEngineStrings": {
"feedbackUrl": "https://your-wordpress-install.com/contact",
"newBookingUrl": "https://your-wordpress-install.com/booknow",
"forgotPasswordUrl": "https://your-booking-engine.com/forgotpassword",
}
"basicFormHeader": "Your contact details",
"basicFormButton": "Submit"
"basicFormSentTitle": "Thank you",
"basicFormSent" : "We will be in touch as soon as we can.",
"basicFormSmallPrint": "Data is only processed by us",
},
{
"id": 123,
"title": "Park Two",
"key": "park-two",
"priority": 0,
"image": "https://your-wordpress-install.com/wp-content/uploads/2021/07/park-two.jpg?v=1628248500",
"footerImage": "https://your-wordpress-install.com/wp-content/uploads/2021/07/park-two.jpg?v=1628248500",
"description": "Holiday Park Two looks over the cliffs of the jurassic coast",
"phone": "012345678",
"emergencyNumber": "01234 567890",
"emergencyText": "Emergency and Out Of Hours",
"emergencyCopy": "This number is only for use out of hours or in the case of an emergency.#BREAK#Would you like to call?"
"email": "info@holidaymakerapp.co.uk",
"website": "https://holidaymakerapp.co.uk",
"address": "Holidaymaker App Ltd#BREAK#Stowey House#BREAK#Bridport Road#BREAK#Dorchester#BREAK#DT12SB",
"w3w": "qualified.burglars.digitally",
"w3wUrl": "https://w3w.co/qualified.burglars.digitally",
"privacyUrl": "https://your-wordpress-install.com/privacy",
"socialIcons": "facebook;twitter;instagram",
"facebookUrl": "https://www.facebook.com/holidaymakerapp",
"instagramUrl": "https://www.instagram.com/holidaymakerapp",
"twitterUrl": "https://twitter.com/holidaymakerapp",
"holidayHomesUrl": "https://link-to-external-homesales-site.com",
"accommodationMapButton": "Download Park Map",
"accommodationMapUrl": "https://your-wordpress-install.com/parkmap",
"loc_lat" : "50.71245750791539,",
"loc_lng": "-2.4619866156242995",
"loc_zoom": "14",
"mapStyle": "satellite",
"bookingEngineStrings": {
"feedbackUrl": "https://your-wordpress-install.com/contact",
"newBookingUrl": "https://your-wordpress-install.com/booknow",
"forgotPasswordUrl": "https://your-booking-engine.com/forgotpassword",
}
"basicFormHeader": "Your contact details",
"basicFormButton": "Submit"
"basicFormSentTitle": "Thank you",
"basicFormSent" : "We will be in touch as soon as we can.",
"basicFormSmallPrint": "Data is only processed by us",
}
]
},
"qikserve": [
{
"id": 1234,
"title": "Holidaymaker Pizza",
"description": "This is some information about the lovely pizza restaurant we have.#BREAK##BREAK#You can order pizza here and cheesy sticks!",
"imgUrl": "https://your-wordpress-install.com/wp-content/uploads/2024/01/Pizza-Diner.jpg?v=1704806444",
"ctaUrl": "https://order-demo.withqikserve.com/demo-demo-demo",
"ctaText": "View Menus and Order >",
"highlightText": "Takeaway and Table Service",
"sites": [
"key-park-one"
]
}
],
"lastChange": 1690895249
}Added ParcVu Booking Experts option
Added 'eventCutOffDays' property
Added 'food' page option
Added all current icons available in HM Core 1.38.0
Added 'qikserve' property and QikServe Link definitions
Added qikserve option
Added 'whatsOnAllowSoldOutClick' property
Added 'whatsOnLocationToRecord' property
Added various strings to replace HM_Constants in app surfaces : heartbeat, weatherType, homeOwnersEnabled, multiSiteShowDetail, pmsType, notificationInterests, whatsOnDateRanges, whatsOnDefaultRange, whatsOnDefaultRangeSignedIn, whatsOnDefaultRangeOwners, whatsOnAutoSelectOwners, routeFilters, routeSorts, routeDefaultSort, homesalesFilters, homesalesSorts, homesalesDefaultSort
Added emergency number, text, and copy properties
Show All ChangesAdded emergency number, text, and copy properties
Renamed 'mainMenu' property to 'navigation'
Renamed to Navigation Item
Renamed to Navigation Item Page
Renamed to Navigation Item Tab / CTA Icon
Renamed to Navigation Item Type
Renamed to Navigation Item Type
Added three internal intents for new cta buttons
Added 'icon' property
Added 'tab' and 'tabthingstodo' enum keys
Added 'mainMenu' property and menu item definitions
The "covid" style has been removed and future apps will default this to "alert"
Added Twitter 'X' option
Added threads, tiktok, and youtube options
Added support for tiktok, youtube, and threads urls
Added support for tiktok, youtube, and threads urls
Added banner image and signed in/on holiday availability booleans
Added w3w and w3wUrl properties
Added w3w and w3wUrl properties