Metafields
Metafields are dynamic fields that can be adjusted based on the resource they are connected to.
What is a metafield?
A metafield is a custom field you define once for your workspace and then fill in per listing, per reservation or per guest. It is how you store a piece of information HolidayHero does not have a built-in field for — a door code, a parking bay number, a WiFi password, whether the hot tub is available, the time the cleaner arrives.
Alongside your own metafields, HolidayHero ships a set of default metafields for information it already holds — the reservation number, the listing address, the guest's first name. You do not create those; they are always available.
Every metafield has a Key, written as {{ key }}. You drop that key into content such as amenities, and when a guest opens the guest app the key is replaced with the value stored for that listing or reservation. Define the field once, reuse it everywhere.
Metafields are workspace configuration, so you manage them from Metafields in the menu, alongside Operators and Settings. See Workspace for the wider picture.

The metafields overview
Metafields in the menu lists every metafield defined in the workspace. For each one the list shows:
The Name — click it to open the metafield.
A Resource badge — whether the field lives on a listing or on a reservation.
A Type badge — the kind of value it holds.
An AI badge — the phase of the stay in which the AI assistant may share the value, or a
—when it never may. See AI visibility.The date it was Created.
You can sort the list by name or by ID, and create a new metafield with Create Metafield in the top right. The Edit link on the right of each row opens the metafield.
Creating a metafield
Click Metafields in the menu.
Click Create Metafield.
Under General, give the metafield a Name. This is how you'll recognise it throughout the platform.
Under Resource, choose where the field lives — see the table below.
Under Type, choose the kind of value it holds. The Default Value field below it changes to match the type you picked.
Set the Default Value.
Under Apply on Create, decide whether new listings or reservations should get this metafield automatically.
Under AI visibility, decide whether the guest-facing AI assistant may share this value, and in which phase of the stay. It starts on Never.
Click Save.
Resource
The Resource decides what a metafield attaches to, and therefore where you fill in its value.
LISTING
The value belongs to a property. Set it on the listing's Metafields tab. Use this for things that are true of the property — door code, WiFi password, parking bay.
RESERVATION
The value belongs to a single stay. Set it on the reservation's Metafields tab. Use this for things that differ per booking — an arrival time, a special request, a rented extra.
USER
The value belongs to one guest, and travels with them across every stay they make. Set it on the guest's Metafields tab. Use this for things that are true of the person — a loyalty number, a dietary requirement, an accessibility need.
A metafield only ever appears in the picker of the resource it was created for: a LISTING metafield cannot be added to a reservation or a guest, and the same goes the other way round.
Type
The Type decides what kind of value the metafield holds and which input operators get when they fill it in.
TEXT
Free text
A text field
NUMBER
A number
A number field
DATE
A calendar date
A date picker
TIME
A time of day
A time picker
BOOLEAN
Yes or no
A Yes/No choice (a toggle when filling in a value)
Default Value
Every metafield has a Default Value. It is the value used when nothing more specific has been filled in — including in public content, where a RESERVATION metafield has no reservation to read from and therefore falls back to its default.
Pick a default that is safe to show a guest. "Contact us" is a better default door code than a real one.
Apply on Create
The Should this metafield automatically be added? toggle controls whether the metafield is attached automatically when a new listing or reservation is created (matching its Resource). Turn it on for fields you want everywhere — turn it off for exceptions you only attach by hand.
AI visibility

By default the guest-facing AI assistant cannot read your metafields. AI visibility opts a single metafield in, and decides when the assistant is allowed to use it.
Never
Never share the value. This is the default and applies to every metafield you have already created.
Before the stay only
Share the value while the stay is still upcoming.
During the stay only
Share the value between check-in and checkout.
After the stay only
Share the value once the guest has checked out.
Two things about this setting are easy to misread, and both matter:
The phases are exclusive, not cumulative. During the stay only means exactly that — a guest who asks the day before arrival is not given the value, and neither is a guest who asks the week after checkout. It is not "from check-in onwards".
The assistant never volunteers the value. It only hands it over when a guest explicitly asks for it. Turning this on does not add the value to any message, guidebook or notification — if you want a value delivered proactively, use its
{{ key }}in content or a message template instead.
This is a per-metafield setting on the definition, so it applies to every listing and every reservation that uses it. Switching a door-code metafield to During the stay only exposes the door code of every property that has it — there is no per-record exception.
Because it lives on the definition, you can change it at any time without recreating anything: open the metafield, pick a new value, and click Save. The change takes effect immediately.
AI visibility only governs the field itself, not your content. If you paste a metafield's {{ key }} into guest-facing content — an amenity, a guidebook, a message template — the value is rendered into that content for the guest, and the AI assistant can read and repeat it from there like any other text. Setting AI visibility to Never does not claw it back.
So decide once, per metafield: a value you do not want the assistant repeating should not be placed in guest-facing content either. See Using a metafield in content.
Seeing which fields are exposed
You do not have to open every metafield to audit this. The setting is shown wherever the metafield appears:
On the Metafields overview, in the AI column.
On a listing's, reservation's or guest's Metafields tab, in the AI column next to the value.
On the edit screen of a filled-in value, as an AI visibility row explaining the phase.
In the Add Metafield dialog, where an exposed metafield reads (readable by AI during the stay) — so you can see it before you attach it.
In the inbox, on the metafields shown in a conversation's details bar.
The metafield page

Open a metafield from the overview to see it in three sections:
General
The Name, the Key (the {{ key }} you paste into content) and the Type. All read-only.
Value
The Default Value. Editable, in the input matching the metafield's type.
Settings
The Resource, the Apply on Create toggle and the AI visibility setting. All editable.
Click Save to store your changes, Cancel to discard them, or Delete (bottom left) to remove the metafield. You will be asked to confirm.
Deleting a metafield removes it everywhere. Any {{ key }} still sitting in your content will no longer resolve to a value.
Using a metafield in content
There are two ways to drop a metafield into content.
Use the picker. Wherever content supports dynamic values you will find an Insert Field Code button above the field. Click it, choose a field from the Add a dynamic field dialog, and click Add — the key is inserted at your cursor. The dialog groups the options: your own metafields sit under Metafields, and everything else is a default metafield.
Or paste the key by hand. Copy the Key from the metafield page and paste it — braces and all — into the content. Metafields are supported in amenity Name, Summary and Content, in guidebooks, listing sections, announcements, experiences and message templates, among other places.
When a guest views the content, HolidayHero swaps the key for the value stored on their reservation, listing or guest record. If no value is stored, the Default Value is used.
A value you put into content is content — the AI assistant can read it there regardless of the metafield's AI visibility setting.
Default metafields
Besides the metafields you create, every workspace has a set of default metafields for data HolidayHero already holds. They need no setup, they cannot be edited or deleted, and they appear in the Insert Field Code dialog grouped by what they describe.
Which groups you see depends on the audience
A message template is addressed to one audience, and the dialog only offers the groups that will actually resolve for it. A key from a group that is not offered will not fill in, so use the picker rather than typing keys by hand.
USERS
Guests on the reservation
Invite, Booker
INVITES
People invited who have not joined yet
User, Booker, and the Invite code
BOOKER
The person who made the booking
User, Invite
Reservation, Listing, Brand and your own Metafields are offered to every audience. Booker only ever appears on a BOOKER template.
Filling in a value on a listing

Open the listing.
Go to the Metafields tab.
Click Add Metafield.
Pick a metafield from the list and click Add. Metafields already on this listing are shown as (Already in use) and cannot be picked twice.
The metafield appears in the table with its default value. Click Edit on its row.
Set the Value and click Save.
The table shows the metafield's Name, Value, Type, its AI visibility, and when it was created and last updated. To remove a metafield from the listing, open it with Edit and click Delete — this only detaches it from that listing, the metafield itself stays in the workspace.
Filling in a value on a reservation
The flow is identical, on the reservation's Metafields tab: Add Metafield, pick one, then Edit the row to set its Value. Only RESERVATION metafields appear in the picker. See Reservation metafields.
Filling in a value on a guest
USER metafields work the same way, on the guest's Metafields tab: Add Metafield, pick one, then Edit the row to set its Value. Only USER metafields appear in the picker.
The difference is scope. A guest metafield belongs to the person, not to a stay — so the value you set follows them into every future reservation, and it is not reset when a stay ends. That makes it the right home for something durable (a loyalty number, a dietary requirement) and the wrong home for something about one visit (use a RESERVATION metafield for that).
Frequently Asked Questions
Agent Instructions: Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.
Perform an HTTP GET request on the current page URL with the ask query parameter:
The question should be specific, self-contained, and written in natural language. The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.
Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
Last updated