What Are Custom Attributes?
A Custom Attribute is a way to define "rules" for custom Message Tokens. These rules are defined based on a guest's attributes, i.e., information about the guest or the reservation. Custom Attributes can be retrieved with the token {{custom.___}}.
Terms
Rule Set
A Custom Attribute is created based on a Rule Set or simply just a set of rules. A Rule Set may contain multiple Rules.
Rule
A Rule is an expression to define the text or information that Akia uses when a guest's attribute matches the Rule.
- Attribute: the variable you’re checking in the guest’s profile/reservation to determine if the token should be replaced.
- Comparator: how you are evaluating the attribute to the conditional value (equals, contains, etc.)
- Conditional Value: the attribute that the rule is trying to match
- Replacing Value: the text or information that will replace the {{custom.___}} message token
- Default Value: the text or information if the guest does not match any rules
Custom Message Token
A Custom Message Token is a special Message Token that can be used once a Custom Attribute is configured.
How Do I Create Custom Attributes?
- In Settings, you'll find Custom Attributes under the Utilities category
- Click on + New Rule Set to start creating a Rule Set
- Key: a unique shortcode which the Custom Attribute can be referred to as a Message Token when you send text messages. E.g. door_code, wifi_information, or arrival_instructions
- Type: the type of object to apply the attribute rules. (Also includes any Custom Fields you have created on that level.)
- Address
- Arrival Date
- Balance Due (Cent)
- Balance Due Raw
- Booking Date
- Booking Source
- Departure Date
- Deposit (Cent)
- Extern URL
- Identity Verified
- Length of Stay
- Lynx Access Code
- Max Occupacy
- Number of Adults
- Number of Bathrooms
- Number of Bedrooms
- Number of Children
- Operto Check In Code
- Party Size
- Payment Collect
- Rate Code
- Reservation Status
- Reservation Type
- Room Number
- Room Total
- Room Type
- Secondary Reservation
- Third Party ID
- Total Payment (Cent)
- Total Payment Plus Tax
- Total Payment Raw
- Country Code
- Engaged
- Gender
- Language
- Owner
- Postal Code
- VIP
Reservation
Identity
Formula
Use this to create formula tokens to use in your Mini Apps. Formula tokens would be like “Nightly Rate” where you specify customer.total_payment / customer.length_of_stay. Using the key nightly_rate in your Mini Apps, you’ll populate that value to the guest.
Similar to regular math, please double check your order of operations if you find the value isn’t correct when using the token.
- Once a new Rule Set has been created, you can start creating Rules for the Rule Set by clicking + New Rule
- You can use the up or down arrow to increase or decrease a rule's priority. Rule priority is in ascending order, e.g., the first rule in this list has the highest priority.
- All room numbers less than 100
- All room numbers greater than 80
If there is a guest staying in room number 99, that attribute is valid for both rules. Rule Priority defines which rule takes precedence, that is, use the first rule that matches.
In this example, guests in room number 99 would match the first rule of less than 100.
4. Once all the Rules are defined, click on Save Changes to save these rules
Door Code Example
Let’s say I want to make a custom attribute for my unit door codes. I would set it up like so:
Room Number equals ___: This specifies which room number should the replacing value (e.g. 1001, 1002) should populate for
1001, 1002, etc: These are the door codes I’ve specified for each of the following rooms. At any time, I can update these codes and it will automatically update wherever this token is used
Default Value: If the guest’s room number isn’t specified in this rule set (e.g. 202), they will be provided the Default Value. This can be left blank or given some verbiage like “Code not generated until 3 pm” to let guests know that it’s expected to not see the code in the Mini App.
Use Images in Custom Attributes
If your images change based on the guest’s room number or room type, Custom Attributes are a great way to customize the image shown in the Booklet. They will also not be resized to 860 x 480 (like if you were to add the image directly into a Booklet), so Custom Attributes are a great way to keep the original image size in your Booklets.
All you need to do is select “Dynamically resolve image from token” from the image component in the Booklet and replace the link with your Custom Attribute token ({{custom.___}}); and in the Custom Attribute rule set, include the image link instead of including text in the Replacing Value field:
Comparators
Comparator | Description | Example |
equals | Match exactly to a numerical value | Specifically for Room 1025 |
not equals | Match when it is not this numerical value | All room numbers except 200 |
in | Match when it belongs to a set. Can be numerical, numerical ranges, or string | Room numbers that are:
* 25
* 100-199
* Penthouse |
not in | Match when it does not belong to the set. Can be numerical, numerical ranges, or string | Room numbers that are not:
* 25
* 100-199
* Penthouse |
contains | Match string that is contained in this value | All room types that contain "NE." E.g., "NE100," "NE101," "NE102" would all match this rule. |
starts with | Match when the value begins with the specified string | All room types beginning with “Cabin.” E.g., “Cabin 1,” “Cabin 2,” “Cabin A” would all match this rule but “Seashore Cabin” would not. |
greater than | Greater than a numerical value | All room numbers greater than 200 |
less than | Less than a numerical value | All room numbers less than 200 |
greater or equal | Greater than or equal to a numerical value | All room numbers great than or equal to 200 |
less or equal | Less than or equal to a numerical value | All room numbers less than or equal to 200 |
is true | Match when the value is true | If the guest staying is an owner |
is false | Match when the value is not true | If the guest staying is not an owner |
is set | Match if the value is not blank | |
is not set | Match if the value is blank |
Use Cases
📶 Room-specific Wifi: You are a vacation rental and therefore simple automated replies are not sufficient, because each rental unit has its own address and wifi information.
When we create a new Rule Set, we can specify the following:
- Key: room_wifi
- Type: Reservation
Since there are 3 cabins, we can create 3 rules for each of them.
- Select Room Type as the attribute.
- Select contains as the comparator (for more information regarding comparators, see next section below).
- For the Conditional Value, this is the attribute that the rule is trying to match. So we can put "Cabin A" here because we want this rule to match for guests that are staying in Cabin A.
- For the Replacing Value, this is the text or information that will replace and be used in the Message Token, we would provide the wifi information such as "The wifi network for this cabin is 'Cabin A' and the password is 'AAAA'."
- When the rules and the rule set are saved, you can start using {{custom.room_wifi}} in your messages. If you message a guest the token, it would resolve to the Replacing Value that was provided.
- In your Automated Replies, for WiFi, you can just use {{custom.room_wifi}}. When a guest staying in Cabin A asks Akia about wifi, Akia would now reply with the appropriate wifi information that is specific to Cabin A.
🚗 Unique Parking Instructions: You are a vacation rental and each unit has its own parking spot. Instead of using multiple message variants, create a Custom Attribute to easily fill in the instructions.
When we create a new Rule Set, we can specify the following:
- Key: parking_instructions
- Type: Reservation
- Select Room Number as the attribute.
- Select contains or equals as the comparator.
- For the Conditional Value, the attribute the rule is trying to match, we can put “Unit 1” because we want the rule to match for guests staying in Unit 1.
- For the Replacing Value, this is the text or information that will replace and be used in the Message Token, we would provide the parking instructions such as “Your unit’s designated parking space is #101 in front of the staircase to your unit.”
- When the rules and rule set are saved, you can start using {{custom.parking_instructions}} in your messages and Booklets. If you message a guest the token, it would resolve to the Replacing Value set above.
- In your Automated Replies, for Parking Information, you can just use {{custom.parking_instructions}}. When a guest staying in Unit 1 asks Akia about how they park when they arrive, Akia would now reply with the appropriate parking instructions that are specific to Unit 1.
💍 Custom Wedding Images: Have a wedding on your property and a lot of guests coming in? Create a Custom Attribute to replace your booklet images for these wedding guests (and other special events that may happen on your property).
When we create a new Rule Set, we can specify the following:
- Key: event_photos
- Type: Reservation
- Select Reservation Type as the attribute (in your PMS the Reservation Type could be “Wedding” or another type of event)
- Select equals as the comparator
- For the Conditional Value, the attribute the rule is trying to match, we can write “Wedding” because we want the rule to match guests with a wedding reservation.
- For the Replacing Value, this is the text or information that will replace and be used in the Message Token, we can include the image address (either an Akia hyperlink or a regular image link from a public source)
- When the rules and rule set are saved, you can start pasting {{custom.event_photos}} in your Booklets after check-marking “Dynamically Resolve Image from Token” in an image component. A reminder that only one image can be used per rule set, so if you have multiple rules associated with “Wedding” in your rule set, only the first image will populate in the Booklet.
- Note that no image will appear for guests who do not have a specified Reservation Type in your rule set if you do not set a default value at the bottom.