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 : 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 : 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 : 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
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",
}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
}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"
}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"
}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"
}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"
}Added ParcVu Booking Experts option
Added 'eventCutOffDays' property
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
Added Twitter 'X' option
Added threads, tiktok, and youtube options
Added support for tiktok, youtube, and threads urls
Added w3w and w3wUrl properties
Show All Changes