Text version. The interactive version, with live examples, is at https://app.proptonomy.ai/docs/property-profile. This page as Markdown: https://app.proptonomy.ai/docs/property-profile.md. Index of all pages: https://app.proptonomy.ai/llms.txt.
Setting up the property profile
The field pool, the structure and the Express, Full and Continuation forms; the built-in fields to use instead of custom copies; field options, show-when rules, translations and publishing.
https://app.proptonomy.ai/docs/property-profile
How the profile fits together
One field pool, one structure, three owner forms. Owners only ever see a form that was published from the structure.
- Field pool: Every fact Proptonomy can hold about a property. Built-in fields come with every organisation; custom fields are the ones the organisation adds. A field in the pool is not asked of anyone until it is placed in the structure.
- Structure: The organisation's one shared list of what owners are asked, sorted into groups (the sections owners see) and ordered. Each placed field also carries whether it is required, its show-when rule and whether the short Express form asks it.
- Express form: The short first form. It asks only the structure fields marked used in Express that an owner may supply.
- Full form: Every structure field an owner may supply, in structure order. Fields provided by the PM are never asked in an owner form.
- Continuation: The rest of the Full form after an owner has started: the same structure and settings as Full, skipping what is already answered and opening at the first unanswered question.
Edit it in Settings → Owner onboarding (Profile for the structure, Fields for the field pool, Forms for the generated owner forms). Editing the pool or the structure saves a draft. Owners keep getting the last published version until someone publishes again (see Drafts and publishing below).
Built-in fields
Built-in fields write straight into the property record, the owner's contact and what Proptonomy sends to the PMS. A custom copy of one stores its answers somewhere nothing reads.
The keys never change; the labels are the defaults and an organisation can reword them. Fields marked PM are set by the PM, never asked in an owner form, and in a new organisation they sit in the staff-only Listing settings group.
- nickname: Property name. Identity and address.
- propertyType: Property type, such as Apartment, House or Cabin. Only a type from the supported list is saved. Needed for the listing.
- addressStreet: Street address. Needed for the listing.
- addressCity: City. Needed for the listing.
- addressPostalCode: Postal code. Needed for the listing.
- addressCountry: Country. Needed for the listing.
- unitNumber: Unit or apartment number.
- floor: Floor number (a number).
- bedrooms: Number of bedrooms. Per-room questions repeat for each bedroom.
- bathrooms: Number of bathrooms. Per-room questions can repeat for each bathroom.
- areaSquareMeters: Size in square meters.
- doorCode: Door code. Secret, never shown to guests. Needed for the listing.
- alarmCode: Alarm code. Secret, never shown to guests.
- lockboxLocation: Where the lockbox is. Secret, never shown to guests. Needed for the listing.
- lockboxCode: Lockbox code. Secret, never shown to guests. Needed for the listing.
- wifiName: Wi-Fi network name.
- wifiPassword: Wi-Fi password. Secret.
- parkingInstructions: Parking instructions (long text).
- specialEntryNotes: Special entry notes for staff (long text). Secret, never shown to guests. Needed for the listing.
- lockType: Lock brand or system, as free text. It is not how guests get in; that is accessMethods.
- accessCodeRotation: Whether the code guests use for the unit's door or keybox (not a building entrance code) changes between guests: PerStay (new code for every booking), Fixed or Periodic (a select). Not a secret. With PerStay the AI never gives a guest the code stored on the property; a code it reads in one guest's thread is only saved on the property when this is Fixed.
- accessMethods: How guests get in, one or more of Keybox, Keypad, Smart Lock / App, Key handover, Key pickup and Reception. The PMS push needs a confirmed access method. Needed for the listing.
- entranceLocation: Where exactly the entrance is, as a Map pin (mappoint). Asked in the Full form by default, not required. Guests and cleaners get the approved pin as a Google Maps link. Not a secret.
- accommodates: Guest capacity (a number). Needed for the listing.
- basePrice: Base price per night. PM. Needed for the listing.
- currency: Currency. PM. Needed for the listing.
- cleaningFee: Cleaning fee. PM.
- minNights: Minimum nights. PM.
- maxNights: Maximum nights. PM.
- checkInTime: Check-in time. PM.
- checkOutTime: Check-out time. PM.
- roomType: Room type: Entire home/apt, Private room or Shared room. PM.
- hasElevator: Whether there is an elevator (Yes/No).
- description: Listing description (long text).
- spaceDescription: The space (long text).
- accessDescription: Guest access: what guests can use (long text).
- neighborhoodDescription: The neighborhood (long text).
- transitDescription: Getting around (long text).
- houseRules: House rules (long text).
- otherNotes: Other notes (long text).
- generalNotes: General notes, internal and never shown to guests (long text).
- owner.fullName: Owner full name, saved on the owner's contact.
- owner.firstName: Owner first name, saved on the owner's contact.
- owner.lastName: Owner last name, saved on the owner's contact.
- owner.email: Owner email, saved on the owner's contact.
- owner.phone: Owner phone, saved on the owner's contact.
- owner.residentialAddress: Owner residential address, saved on the owner's contact.
- owner.payoutAccount: Owner payout account. Secret, provided by the owner.
- owner.preferredLanguage: Owner preferred language, saved on the owner's contact.
- owner.preferredStartDate: The date the owner wants to start (a date), provided by the owner.
Field options
Set when a field is created and changed later in the pool. Type and per-room source are fixed once the field exists.
- key: Lowercase letters, digits and underscores, starting with a letter, such as tourist_tax. Unique in the organisation, archived fields included, and never a built-in name. It cannot change.
- type: text, textarea (long text), boolean (Yes/No), select (choices), number, date, url, file, mappoint (Map pin) or perRoom. It cannot change.
- knowledge field: Give a knowledge title and the answer is kept as a knowledge base article with that title. It is long text.
- media field: Give mediaKind photo, video, document (a PDF or an image) or any, and minimumMediaCount, from 1 to 1000 (default 5): how many files make the field answered.
- options: The choices of a select field, one per line. Changing the choices clears translated choice captions unless new translations are given at the same time.
- isMultiple: A select field that takes several answers. accessMethods always takes several.
- mappoint: A Map pin: the owner marks up to five spots on a map that opens at the property's address, such as the entrance, the key box or the bins. Each approved pin reaches guests as a Google Maps link.
- perRoom: A question asked once for each bedroom (perRoomSource bedrooms, the default) or each bathroom. Each answer stays bound to its room. perRoomAnswerType is text (default), number, or choice, a dropdown of the field's options. Changing the answer type keeps saved answers.
- required: Set where the field is placed in the structure. The owner must answer it before submitting, but only while its show-when rule holds.
- usedInExpress: Set in the structure: whether the Express form asks it. When a field is added without a choice, it starts from neededForListing.
- neededForListing: The PMS cannot create the listing without it. Listing readiness only; it does not make the owner answer it.
- providedBy: Who supplies the fact: Either (default), Owner or Pm. Pm fields never appear in owner forms.
- purpose: Why it is collected: any of Listing, Operations and Guest.
- isSecret: Codes and passwords guests must never see. Making a field secret or hidden from guests also protects questions on hand-made forms straight away, without publishing.
- isGuestVisible: Whether the value may be shown to guests.
- translations: Per language, keyed by the English language name (Norwegian, German, not no or de): label, help text, placeholder and choice captions in the same order as the choices. A change replaces the whole map, so keep the other languages.
- aiGuidance: Up to 2000 characters for the AI when an owner asks about the field: what owners get wrong, what a good answer is. Only staff and the AI see it. It applies immediately, without publishing.
- inferYesFromAccessMethods: Custom Yes/No fields only: the access methods (keybox, keypad, smartLock, keyHandover, keyPickup, reception) that mean Yes, so the owner is not asked. With an unknown access method the question stays.
Show-when rules
A rule on a placed field decides whether owners are asked it at all.
- A rule names another pool field, an operator and a value: parking equals Yes. The operators are
equals,notEquals,contains,greaterThanandlessThan. On a multi-choice field, equals and contains mean the answer includes the value. - While the rule does not hold, the question is hidden and never counts as missing. A required question with a rule is required only while the rule holds.
- For access, compare against
accessMethodswith a method key, such askeybox, not with a custom access question. - A question cannot depend on its own answer, and rules cannot go round in a circle. The settings page can combine several rules with all (AND) or any (OR), and so can the assistant (showWhenRules with showWhenMatch all or any). A rule can also test an amenity: the property has it (equals) or lacks it (notEquals). Every field a rule tests must be in the structure (or be a built-in field), and a choice field’s value must be one of its options.
Group headings and the photo step
What owners read above each group, and on the built-in listing-photo step.
- A group’s English title is its name in the structure. Each other language gets its own title and optional intro; an English entry with only an intro adds an intro for English readers. Languages are named in English, such as Norwegian or German. A change replaces that group’s whole language map.
- The photo step can carry the organisation’s own intro (up to 1000 characters), a guidelines heading (up to 120) and up to 20 guidelines of 300 characters each, plus translations of all three. Blank parts fall back to the standard text. Express and Full have their own photo settings; Continuation uses Full’s.
- It can also show up to 12 example pairs, each a room with an “Avoid” photo and a “Do this” photo and an optional caption on each (room up to 60 characters, captions up to 200). Owners see them above the photo tips, one tab per room. Upload the photos in Settings → Owner onboarding, on the Forms tab; there is no upload tool for them, so
UpdateProfileFormSettingscan reorder, recaption or remove pairs but only reuses photos already in the form. Translations of a pair’s room and captions are keyed by the pair’s id, so keep the id when you send the list back. - Each of Express and Full also sets which built-in steps it shows (property basics, rooms, amenities, listing photos), the minimum number of listing photos, whether missing photos block submission, and which amenities it offers.
Drafts and publishing
Nothing reaches owners until the form is prepared.
- Every change to the pool or the structure, and to headings and form settings, saves a draft. Each form has a draft version (a hash) that changes whenever the draft does.
- Prepare Express publishes the Express form. Prepare Full publishes the Full form and Continuation. Preparing one does not publish the other.
- Before publishing, the preview lists what changes for owners compared with the live form: questions added, removed and changed, heading and setting changes. When the draft differs only in things owners never see, it says publishing changes nothing for owners.
- Publishing keeps existing answers and links. A question whose field left the structure is retired, not deleted, and its answers stay.
- Wording for the AI (aiGuidance) applies immediately and needs no publishing.
Who can change the profile
Only admins change it, in Settings, through the in-app assistant and through Claude or another AI over MCP.
- Admins and members of the organisation can read the profile, in Settings and through the assistant. Members see Settings read-only.
- Changing it through the assistant needs an admin who is signed in to Proptonomy. The assistant asks the PM to confirm each change; publishing, importing a form and adopting the access field do nothing without confirm=true, and publishing also needs the draft version the PM reviewed.
- Every change, in Settings or through the assistant, needs an organisation admin: fields, structure, headings, form settings, importing a form and publishing.
- The assistant can archive a custom field only after a preview and the PM’s confirmation. It cannot archive built-in fields or profiles, and it writes a property’s values only when moving a custom field onto a built-in, and then only where the built-in value is empty.
Common changes, step by step
The tool calls the assistant makes, in order. Every change is confirmed with the PM first.
- Check the setup first. Call
CheckProfileSetup. It lists custom copies of built-in fields, show-when rules that can never hold, missing translations in the languages your owners use, required Express questions that depend on fields Express does not ask, custom fields nothing asks and unpublished forms, each with the call that fixes it. - Add a question. Call
SearchProfileFieldswith the question’s subject. If a built-in field covers it, place that field withAddFieldsToProfileStructureand its key. Only when nothing fits, create a field withCreateProfileField, then place it the same way. - Move a question. Call
UpdateProfileStructureFieldwith the field key and a new group, an afterFieldKey, or both. - Make it conditional. Call
UpdateProfileStructureFieldwith showWhenFieldKey, showWhenOperator and showWhenValue, or with showWhenRules and showWhenMatch for several rules. clearShowWhen removes the rule. - Translate. Read the current translations first, then send the whole map. Use
UpdateProfileFieldfor questions andUpdateProfileGroupHeadingfor group headings. For the photo step useUpdateProfileFormSettingswith that form’s draftHash fromGetProfileStructureas the expected version. - Fix a custom access question. Call
AdoptBuiltInAccessFieldwith the custom field’s key and show the PM the option mapping it returns; choices it cannot place stop the change. With confirm=true it moves the question onto accessMethods in the same group, order and required setting, points show-when rules at accessMethods, fills each property’s access method from its answer without overwriting one already confirmed, and archives the custom field. Publish afterwards. - Fix any other custom copy of a built-in field. Call
AdoptBuiltInFieldwith the custom field’s key and the built-in key, for example lockboxCode. The custom field’s type must fit the built-in one: a free-text answer cannot become Bedrooms. The preview gives the counts; with confirm=true it moves the question onto the built-in field in the same group, order and required setting, points show-when rules at it, binds the questions on forms to it, fills each property’s built-in value from its answer only where that value is empty, and archives the custom field. A form question whose type cannot hold the built-in fact, or a rule that would make the built-in depend on itself, stops the change; a profile that already asks the built-in keeps it. - Rename, reorder or delete a group.
RenameProfileGroupkeeps the group’s fields and heading translations under the new name.ReorderProfileGroupstakes every group name once, in the new order.DeleteProfileGroupmoves the group’s fields into moveFieldsToGroup; it previews first and applies with confirm=true. - Archive a custom field. Call
ArchiveProfileField. The preview says how many properties hold a value and which groups ask it; with confirm=true the field leaves every profile and its values are kept. Built-in fields cannot be archived (take them out of the structure withRemoveFieldFromProfileStructure), and show-when rules that depend on the field must be cleared first. While a live form still asks the field, remove it from the structure and publish, or remove the question from a hand-made form, first. - Publish. Call
PrepareProfileFormwith Express or Full and show the PM the changes it lists. After they confirm, call it again with confirm=true and the expectedDraftHash from that preview.
All documentation pages
- Working for a client — How a cleaning or maintenance company receives a client's tasks in its own workspace, and what it sees of the client.
- Roles and what they can do — The six roles, which one to give whom, and a live view of what each role can read and change.
- Inviting people and managing roles — Inviting a coordinator or a cleaner, accepting the invitation, changing a role, and property scopes.
- Receiving and delegating tasks — Where a client's tasks appear, how a coordinator hands one to a cleaner, and what the client sees back.
- The app for cleaners — Inviting staff, installing the iPhone or Android app, signing in, and taking a task from Start work to Finish.
- Location sharing — What the app records about where people are, with whose consent, and what a coordinator sees in the Command Center.
- Working from WhatsApp — One message connects you. What a cleaner can ask and do from WhatsApp, and how coordinators reach their team.
- Languages and translation — The relay that re-posts every group message in each language, your inbox language, translating one message, and the language the AI writes in.
- Setting up the property profile — The field pool, the structure and the Express, Full and Continuation forms; the built-in fields to use instead of custom copies; field options, show-when rules, translations and publishing.
- SOPs and automation triggers — Start SOPs, automatic tasks and messages from events, schedules or webhooks, with typed conditions and assistant chat commands.
- What syncs with each integration — For each PMS, task tool, key service, pricing tool and messaging channel: what Proptonomy reads, what it writes back, how often it syncs, and how to connect it.