Skip to main content

Managing Listings (Properties & Units)

First-time workspace setup

Finish Getting Started — Recommended Setup Sequence steps 1–12 on Account Settings (map: Recommended setup order) before step 13 — create and configure properties and units here. Guided settings steps 4–12: Onboarding a New Property. After steps 14–15 go live, run Onboarding a New Property — Step 7. Legacy /properties bookmarks redirect here — see Legacy /properties URLs. Lockout catch-up: Getting Started. Workflow pairing: Modules — Setup sequence after go-live.

The Listings module is your property portfolio inventory. This is where you view, create, edit, and manage all properties and their individual units from a single workspace. Understanding how to work with this module is essential, as properties and units form the foundation for all bookings, financial tracking, and operations. With real-time occupancy tracking, multi-property support, and role-based team access, you have complete control over your entire portfolio.

Older /properties links?

Legacy URLs under /properties redirect into Listings. See Legacy /properties URLs for the exact redirect table.

Direct access

Open the Listings module at platform.vivin.app/listings. See Deep Links for all management frontend routes, including property and unit sidebar URLs.

Pair with other modules

Link units on Sales → Channels before channel import; pair Bookings for reservations and Utilities → Connections for Bills Included ceilings. New direct bookings inherit the property’s default tenant category — cross-check segment counts on Tenants — Tenant category filter before you change portal modules account-wide. When Property Payments Active is enabled, unpaid portal charges can surface payment overdue rows — continue with Handling a Late Payment — Step 1. Poll AI usage API (utility_bill_extraction) when Utilities → Bills AI upload volume spikes after new properties go live — there is no in-app ledger screen yet. Section-to-doc pairing: Listings section cross-reference. Hub tab matrix: Modules — Module cross-reference.

Property deep links

If /listings/property/:propertyId/... points to a property that does not exist or is outside your account, the app shows Property not found. and returns you to /listings. See Deep Links — Broken entity deep links.

Listings Module Overview

Understanding the Listings Structure

Pair with other Listings sections

Portfolio hierarchy pairs with Onboarding a New Property and the legacy Properties workspace redirect. Full pairing matrix: Listings section cross-reference.

Vivin organizes your portfolio in a hierarchical structure: Properties contain Units. A property represents a physical building or location (for example, "Central Apartment Building" or "Riverside Complex"), while units represent the individual rentable spaces within that property (for example, "Unit 101" or "Studio A").

When you open the Listings module, you will see a table displaying all your properties. Each row represents one property and shows key information including:

  • Cover photo — When the property has at least one Full integration photo, the row shows a small thumbnail of the main (cover) image; hover ~2 seconds for a larger preview. Rows without photos keep a muted placeholder so the table stays aligned.
  • Property Name
  • Full Address
  • Rent Range (minimum and maximum rent across all units)
  • Available from (earliest date a unit in that property becomes bookable)
  • Occupancy — badge showing X of Y units occupied today (active Vivin booking or manual/short-term block covering today)
  • Expand Arrow (click to reveal units)
  • Edit Icon (pencil icon to edit the property)

To view the units within a property, click the arrow icon on the left side of the property row. The row will expand to show all units belonging to that property. Each unit displays its internal name, type, rent, Available from, and — when occupied today — either an Active booking chip (tenant + rent; opens the booking sidebar) or an Active unavailability chip (manual block or short-term hold reason).

Reading occupancy in the portfolio table

Property-level badge (X of Y)

Badge colourMeaning
Green (occupied === total)Every unit in the property is occupied or blocked today
Yellow (occupied < total)At least one unit is free today — use this to spot partial vacancy at a glance
Grey (total === 0)Property has no units yet

Occupied counts include both active Vivin bookings and unavailabilities (manual blocks, short-term iCal holds, and similar) that cover today’s calendar date — the same rule used in Sales Overview “free room” logic.

Expanded unit rows

Row backgroundOccupancy column
Mint (#f1f5f5)Unit is occupied today — Active booking (click tenant chip → booking sidebar) or Active unavailability (reason text; edit the block from the unit Calendar)
Yellow (#faebbd)Unit is vacant today — no active booking and no block covering today

Listings — expanded property with partial occupancy badge and mixed vacant / occupied unit rows

Listings — expanded unit row showing Active booking or Active unavailability in the occupancy column

Screenshot freshness

Partial-occupancy badge and expanded unit-row captures refreshed 2026-06-12 12:12 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL npx tsx tools/capture-listings-portfolio-occupancy-screenshots.ts).

If you open /listings/property/:propertyId/edit or search for a property but toolbar filters or search hide that row, the portfolio shows No properties found with a Clear filters control. Click it to reset search, tags, type, and capacity filters so the deep-linked property appears. See also Deep Links — Listings.

Unit order within an expanded property

When a property row is expanded, units are sorted by internal name using natural numeric order (for example Room 2 before Room 10, or AA-11-5D-R2 before AA-11-5D-R10). The sort key is the unit internal name only — not the display room number label shown in the row.

Listings — expanded property with units ordered by internal name (natural numeric sort)

Portfolio table loading (infinite scroll)

On Portfolio and Archived, the property table is server-paged and loads in chunks as you scroll — there is no separate Load more button.

Each batch is served by GET /properties/portfolio with the same search, tag, type, capacity, and archived flags you set in the toolbar. Distinct portfolio filter catalog values (tags, types, capacities) load once per session from GET /properties/portfolio/filter-options so scrolling pages does not re-download the full account.

  • First load — The app requests an initial batch of property rows (enough to fill a typical desktop viewport).
  • Scroll for more — When you scroll near the bottom of the main content area, the next batch loads automatically. While the request runs, you see skeleton rows at the bottom of the table.
  • End of list — After every property in the current filter set is loaded, a subtle End of list line appears below the table.
  • Search and filter refetch — Changing search, tags, type, capacity, or switching between Portfolio and Archived starts a new server request from the first batch. Portfolio search debounces for about one second after you stop typing before the server query runs — until then, or while the refetch is in flight, the table shows skeleton placeholders instead of a misleading No properties found empty state. The active search chip and toolbar filters stay visible so you know which criteria are in flight. Each search or filter change also scrolls the portfolio table back to the top so the first batch of matching rows is always in view (you are not left mid-scroll on an old slice from the previous criteria).

Large portfolios stay responsive because only part of the list is in memory at once; expand a property row only after its parent row is visible in the loaded slice.

Load failures — When the first portfolio or archived request fails, the active tab shows a red inline alert cardFailed to load listings. Please try again. — with optional server detail and Retry (Portfolio and Archived share the same pattern). Toolbar tabs stay visible so you can switch to Tags & types or retry after connectivity improves. This is distinct from search or filter criteria that genuinely match zero properties. See Glossary — Directory list load failures.

While a search or filter refetch is loading and no rows match yet, skeleton cards fill the main table area:

Listings — Portfolio table showing skeleton placeholders while a search refetch is in flight (active search chip visible)

After the debounce finishes and the server returns matches, the active search chip stays under the toolbar (with Clear all and any tag/type chips) while property cards show the filtered portfolio:

Listings — Portfolio search with active chip and matching property cards after debounce

Portfolio search chip capture refreshed 2026-06-12 00:05 UTC (npx tsx tools/capture-listings-portfolio-search-results-screenshot.ts). Listings does not re-rank by unit name — see Glossary — Directory search ranking.

While the next scroll page is loading, placeholder skeleton rows appear at the bottom of the table (same card shape as property rows):

Listings — Portfolio table with skeleton rows loading the next page of properties

When every row for the current filters is loaded, the End of list line appears under the table:

Listings — Portfolio table scrolled to the end with the End of list marker

Property List with Expandable Units

Clicking on an active unit row opens a Booking Sidebar on the right side of the screen, showing the current tenant's booking details, payment status, and key dates — all without leaving the Listings module:

Listing with Booking Sidebar Open

Portfolio toolbar: search, filters, and export

The Portfolio and Archived tabs share one toolbar above the property table:

ControlPurpose
SearchFree-text filter on property internal name and address, plus unit internal name and room number label. Results debounce (~1 s) and refetch from the server — see Portfolio table loading.
Tags / Types (desktop)Inline multi-select chips for listing categories (tags) and type labels. Selected values also appear as removable chips under the toolbar with Clear all.
FiltersOpens the Other filters drawer — same tag/type pickers plus Capacity (All, Single, Double). The drawer header shows how many filters are active.
ExportServer-side download of the current tab + search + tag/type/capacity scope (not only rows loaded in the viewport).

Listings — Portfolio toolbar with inline Select tags and Select types controls

Listings — Select tags dropdown open on the portfolio toolbar

Listings — Select types dropdown open on the portfolio toolbar

After you pick tags and types, removable chips appear under the toolbar (with Clear all) while the table refetches:

Listings — Active tag and type filter chips on the portfolio toolbar

Portfolio tag/type toolbar captures refreshed 2026-06-13 13:45 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL VIVIN_DOCS_PROPERTY_SEARCH=AA-11-5D npx tsx tools/capture-listings-portfolio-tags-types-toolbar-screenshot.ts).

With no search term, properties sort A–Z by internal name. When Search is active, the server narrows to properties (or units within a property) that match the term; the table still orders properties A–Z by internal name — unlike Bookings and Operations Tickets, which rank unit-name hits above tenant-name or address-only matches (#1768).

Listings — Portfolio toolbar with Export menu open (CSV and Excel)

Export formats

  • CSV — one file with a listings sheet (one row per unit in scope).
  • Excel — two CSV downloads (properties then listings) that Excel imports natively; property rows group units under each building.

While a download runs, the Export menu shows a spinner (Exporting…). Large portfolios stay responsive because the API streams the file instead of loading every row into the browser.

If the export fails, Vivin shows a toast (Failed to export. or the server message when available) — the menu closes and no file is saved. Retry after checking filters or connectivity. See Glossary — Export and download failures.

Listings — Other filters drawer with categories, types, and capacity pills

For channel rows with a VIVIN iCal column and platform connection status across the whole portfolio, use Sales > Channels — both surfaces read the same integration toggles. Use Listings → Export when you need a property/unit inventory CSV for audits, onboarding spreadsheets, or offline review.

Full-page unit detail (/listings/:listingId)

Some bookmarks and integrations open a full-page unit detail at /listings/:listingId (replace :listingId with the unit UUID). This is a read-focused summary — not the multi-tab unit edit sidebar opened from an expanded property row or /listings/unit/:listingId.

AreaWhat you see
HeaderUnit internal name, parent property label, back arrow (browser history), and Edit / Delete actions.
Stat cardsMonthly rent, capacity, availability badge (Available vs Occupied), and type (room, studio, etc.).
Current tenantWhen a current booking exists — tenant name, email, and stay dates.
BookingsUp to five reservations with platform icon, dates, status badge, and links to /bookings/list/:id.
ContractEffective contract template summary for the unit (inherits property defaults unless the unit has its own contract).
Platform integrationsConnected marketplace platforms for this row, or an empty state when none are linked.

Listings — full-page unit detail with stat cards, bookings list, and contract summary

Use the unit edit sidebar (Deep Links — Listings) when you need Calendar, Channels, Rent, Access, or other setup tabs. Use the full-page detail when you want a compact overview or you received a direct /listings/<uuid> link.

Creating a New Property

Pair with other Listings sections

The four-step wizard pairs with Settings > Owners and Create New menu — Property — wire utilities in Step 6 before first Utilities bill. Full pairing matrix: Listings section cross-reference.

Creating a new property is one of the most important workflows in Vivin. The system guides you through a four-step wizard that captures all essential information and business rules.

To begin, click the + Create New button in the left sidebar and select Property from the Listings group.

Create New Property Button

Step 1: Property Details

The first step captures basic identification information for the property.

  • Property Name (required): The public or internal name you will use to identify this property (for example, "Central Apartment Building").
  • Address (required): The complete street address.
  • Floor (optional): Which floor the property is located on (useful for multi-story buildings).
  • Owner (optional, recommended): Associate the property with a property owner who has been previously registered in the system.
Business Rule

The Owner dropdown will only display owners who have already been added through Settings > Owners. If the owner you need is not in the list, you must navigate to that section and create the owner record first.

Property Details Step

Click Continue to proceed to the next step.

Step 2: Utility Bills ID

In this step, you enter the account identifiers for utility services associated with the property:

  • Electricity Bill ID
  • Gas Bill ID
  • Water Bill ID
  • Internet Bill ID
Business Rule

These identifiers are used by the Utilities module to automatically import and process bills for these accounts. By linking utility accounts to properties during setup, you enable automated expense tracking and tenant billing for utility overages.

SIMAR water — Cód. Local (#2110)

For SIMAR (Loures e Odivelas) water, enter Cód. Local / Código de Local from the supplier statement — not Nº de Contador — and strip leading zeros (for example 0181474181474). See Glossary — SIMAR water contract ID and FAQ — SIMAR water bill property match.

Utility Bills Step

Click Continue to proceed.

Step 3: Extra Payments

This step defines additional fees and deposits that will be charged beyond the base rent. The configuration here establishes default values that can be applied to bookings for this property.

Security Deposit: Choose between two types:

  • Fixed: A set monetary amount (for example, €500)
  • Variable: Calculated based on the rent amount (Half Rent, 1 Rent, or 2 Rent)

Security Deposit Type Dropdown

Cleaning Fee: A fixed amount charged for cleaning services. Note that you can later configure when this fee is charged (see Payments Tab).

Admin Fee: When Admin fee is enabled under Account Settings > Fees, enter a default amount here. The wizard stores a fixed value; after the property is created you can switch to Per stay duration tiers in Contract Information (see Admin fee — fixed or by stay duration below).

Bills Included: This field represents the ceiling (maximum amount) of utilities that is included in the tenant's rent.

Utility Ceiling

If you set the Bills Included amount to €50 for electricity, and the actual monthly electricity bill is €70, the system will automatically charge the tenant the €20 overage. If the bill is only €40, the tenant pays nothing extra.

Extra Payments Step

Click Continue to proceed to the final step.

Step 4: Contract Details

This is the most critical step, as it defines how and when rent will be charged. The settings here directly impact your cash flow and tenant payment schedules.

Rental Payment Frequency: Determines how rent is calculated and billed.

  • Monthly: Charges the full month's rent regardless of the check-in or check-out date.
  • Fortnightly: Divides the month into two periods (days 1-15 and days 16-end of month).
  • Daily: Calculates rent proportionally based on the number of days occupied.

Contract Type: Used for reporting and legal classification purposes (e.g., Rental, Services).

Confirmation Payments: Defines what the tenant must pay at the moment they book the unit to confirm their reservation (e.g., Deposit, First Rent, Last Rent, Deposit and First Rent).

Confirmation Payments Dropdown

Check-in Payments: Defines what the tenant must pay on the day they physically move into the property.

No Duplication

The system enforces a strict rule to prevent double-charging. If you select Deposit in Confirmation Payments, you cannot select Deposit again in Check-in Payments. The same rule applies to First Rent and Last Rent.

Contract Details Step

Finalizing the Property

You can use the Back button at any time to review and modify previous steps. Once all four steps are complete and you are satisfied with the configuration, click Submit to create the property in the system.

Creating a New Unit

Units are the individual rentable spaces within a property. To create a unit, click + Create New and select Unit from the Listings group. The system will guide you through a two-step wizard.

Create New Unit

Business Rule

A unit cannot exist without being associated with a property. You must create the property first before adding units to it.

Step 1: Unit Details

The first step captures the basic identification information for the unit.

  • Unit Name (required): The identifier for this unit (e.g., "Sala 01", "Room 2", "Studio A")
  • Property (required): Select the parent property from the dropdown
  • Property Type (required): Select the unit type from the dropdown. Available options include:
    • Full House
    • Studio
    • Room 1, Room 2, Room 3, etc. (numbered rooms)
    • Bed (for shared accommodations)

Unit Room Type Selector

Unit Details Step

Click Continue to proceed to the next step.

Step 2: Rent and Availability Details

The second step defines the financial and operational parameters for the unit.

Is the monthly rent fixed?

  • Yes, it's fixed: The rent amount remains constant for all bookings

    Fixed Rent Option

  • No, it varies: The rent can change based on season, demand, or other factors (you can configure variable pricing later in the unit's edit view)

    Variable Rent Option

Monthly Rent Value: Enter the base monthly rent amount (e.g., €500).

External Name: This is the name that will be displayed on external platforms like Airbnb or Booking.com (e.g., "Room 2").

Capacity: The maximum number of tenants allowed in this unit (e.g., 3).

Extra Charge per Tenant: If the number of tenants exceeds the base capacity, this amount will be added to the monthly rent for each additional tenant (e.g., €60).

Extra Deposit per Tenant: If the number of tenants exceeds the base capacity, this amount will be added to the security deposit for each additional tenant (e.g., €100).

Minimum Stay Period (in months): The shortest booking duration allowed for this unit. Use the slider to set a value between 0 and 12 months. For example, if you set this to 3, tenants cannot book for less than 3 months.

Maximum Stay Period (in months): The longest booking duration allowed for this unit. Use the slider to set a value between 0 and 12 months. For example, if you set this to 12, tenants cannot book for more than 12 months. Setting this to 12 typically means "no maximum limit."

Rent and Availability Step

Property Type Dropdown

Finalizing the Unit

You can use the Back button to review and modify the previous step. Once both steps are complete, click Submit to create the unit in the system.

Importing from Inlife

When you are migrating inventory from Inlife, enable the Inlife platform under Account Settings → Integrations first. Import actions live in the + Create New slide-out under Listings — they queue a server-side pull from the landlord’s Inlife account instead of walking the property or unit wizards row by row.

ActionWho sees itWhat transfersTypical next step
Inlife ImportRoles with create permission when Inlife is enabledProperties, units, and core listing linkageReview rows in Portfolio, then wire Channels and booking-engine fields as needed
Inlife Full ImportVivin internal operators only (@vivin.app email)Everything in Inlife Import plus booking-engine-style details and photosReview Property & listing details (booking engine) tabs, then enable full listing feeds on Housing Anywhere, Spotahome, Uniplaces, or Inlife

Standard import (all accounts)

  1. Click + Create NewListingsInlife Import.
  2. Enter the landlord Inlife email address for the account you want to pull from.
  3. Click Import account and wait for success — the modal closes when the API accepts the job.
  4. Open Listings after a few minutes and confirm properties and units appeared; map any remaining partner IDs on each unit’s Channels tab.

Create New — Inlife Import dialog with landlord email field, Import account, and Cancel

Full import (Vivin internal)

Inlife Full Import uses the same email dialog but also copies rich content (amenities, location, rules, photos) so listings are closer to publish-ready on partner full feeds. Large portfolios can run for several minutes — if the browser times out while photos upload, the job often continues on the server; avoid starting a duplicate import immediately.

Create New — Inlife Full Import dialog with long-running warning, email field, and Import account

Inlife Full Import modal capture refreshed 2026-06-22 02:13 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL npx tsx tools/capture-create-new-inlife-full-import-screenshot.ts).

After either import path, open the Full integration pill on the property or unit sidebar to fill gaps before turning on outbound full integrations. Step-by-step UI for both dialogs is also documented under Create New Menu — Inlife Import and Inlife Full Import.

When you poll the outbound Inlife full listing feed (GET /inlife-integration/:landlordKey/listings/full), calendar date fields arrive as epoch milliseconds (numbers), not ISO date strings — required for Inlife’s Elasticsearch long mapping.

Editing Properties

To edit an existing property, navigate to the Listings module and click the pencil icon next to the property you wish to modify. The property edit sidebar opens with a pill navigation row (#2082 — merged setup, marketplace payload, and gallery layers; the legacy Go to details header shortcut was removed):

PillWhat it contains
SetupOperational fields in this guide — general info, tags, contract, payments, access, WiFi, change history, and archive controls
Full integrationMarketing copy, location, amenities, partner platforms, and Full integration readiness checks for outbound feeds and the booking engine — see Property & listing details (booking engine)
PhotosProperty-level gallery for the booking engine; drag to reorder — the first photo is the cover (also used as the portfolio thumbnail)

An amber dot on Full integration means required partner fields are still missing; open that pill and complete the readiness checklist before enabling full feeds.

Edit Property Icon

Bookmark or hand off a link that opens Full integration directly: append ?propertyDetails=1 to the property edit URL — Deep Links — booking engine query params.

Property edit sidebar — Setup, Full integration, and Photos pills with Setup selected (example property AA-11-5D)

General Information Tab

On the Setup pill, the General Information section lets you update basic identification:

  • Property Name
  • Address — Google Places autocomplete when maps are configured; pick a suggestion to fill structured street, postal, city, and country fields. Below the field, the Exact Location map lets you drag the pin when the building entrance is offset from the geocoded point. If maps are unavailable, the control falls back to a plain text address.
  • Floor
  • Owner

Any changes made here will apply to future bookings but will not retroactively affect existing reservations.

Property General Info Tab

Property edit — address field in edit mode with Google Places autocomplete when maps are configured (example property AA-11-5D)

Photos pill

On the Photos pill, upload JPG/PNG/GIF/WebP images (up to 10). Each upload saves immediately. Drag thumbnails to reorder — the first photo is labelled Main and drives the portfolio cover thumbnail on the property row.

Property edit — Photos pill with Main cover badge and drag-to-reorder gallery (example property AA-11-5D)

Tags Tab

Tags are labels that help you organize and categorize your properties. When you add tags to a property, they automatically propagate to all units within that property.

To add a tag, click + Add Tag and select from your existing tags or create a new one. To manage your tag library, see Categories. Finance Select categories loads tag options from live listings via GET /listings/tags — see that note for how the API differs from this settings catalog.

Tags assigned here (and on units under Tags Tab) feed the Tags multi-select on the Portfolio toolbar, Select tags on Sales → Multicalendar / Pricing, and Select categories under Property & Listing in Finance → Other filters. Listing Types from the same settings page drive the Types toolbar control here and Select listing types on Sales.

Use Case Example: You might create tags like "Pet Friendly," "Furnished," "City Center," or "Student Housing" to make filtering and reporting easier.

Property Tags Tab

Contract Tab

The property Contract tab shows which .docx template resolves for new bookings on this building and lets you preview it without leaving Listings.

At the top, the effective contract card mirrors the backend fallback chain (unit → property → account) used when Vivin generates tenant PDFs:

Resolved source (English UI)Meaning
Uses this property's contractA property-scoped template uploaded under Settings > Contract templates applies to units here unless a unit has its own file.
Uses the account default contractNo property override — bookings inherit the account template (subtitle shows the filename and upload date when known).
No contract template resolvedNo .docx is available at any level — upload under Settings before expecting generated contracts.

The card shows the filename, optional upload date, and an eye control that opens an in-app PDF preview modal (sample variables filled). Upload or replace templates from Settings > Contract templates — this tab is read-focused for resolution and preview.

Property editor — effective contract resolution card (property-scoped template, example AA-11-5D)

Click the eye control to open the in-app PDF preview modal (sample variables filled):

Property editor — effective contract PDF preview modal

Effective-contract card captures refreshed 2026-06-19 04:00 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL VIVIN_DOCS_PROPERTY_ID=0af9c920-0b64-49ad-ac38-e2d28536ed4d npx tsx tools/capture-listings-effective-contract-card-screenshot.ts).

Scroll below the card for Contract Information (payment terms, confirmation/check-in requirements, fee defaults, and related fields). This guide groups those payment fields under Payments Tab because they define booking payment behaviour.

Property Contract Tab — effective contract card and Contract Information section

Payments Tab

This is one of the most important tabs, as it controls payment behavior for all bookings in this property.

Where it appears in the product

In the property sidebar, these fields live in the Contract Information section (scroll below the contract preview). This guide groups them under Payments Tab because they define confirmation/check-in requirements, due dates, cleaning fee timing, and tenant portal payments.

Confirmation Payments & Check-in Payments: You can modify or completely remove the default payment requirements. For example, you can uncheck "Confirmation Payments" entirely if you want tenants to pay everything at check-in.

Due Date: You can set a specific due date for this property (e.g., "Rent is due on the 5th of every month"). If you click Clear, the system will use the default due date defined in Payments.

Cleaning fee frequency: The Cleaning fee column in Contract Information appears only when Cleaning fee is on under Account Settings > Fees (account-wide fee visibility). On the property, check Cleaning fee to reveal the amount and Frequency dropdown; when the checkbox is off, frequency is not editable for that property.

When the cleaning fee is enabled for the property, use Frequency next to the amount to choose when that fee appears on the payment plan:

UI labelPayment plan behaviour
Every Month (default)One cleaning fee line per contract month (first/last months prorated like rent when applicable).
One-Time Fee at Booking ConfirmationA single cleaning fee line due at confirmation (uses booking creation date when it precedes move-in, otherwise move-in).
One-Time Fee at Move-inA single cleaning fee line due in the move-in month.

Selecting Every Month again clears a one-time mode (the product stores this as the default recurring setting).

Important

When you create a property, the cleaning fee frequency defaults to Every Month and cannot be changed during creation. Edit the property after creation in Contract Information to switch to a one-time mode.

When payment schedules are regenerated for a booking, Vivin reconciles cleaning fee rows to match the active mode — extra monthly lines are removed when you switch to one-time, and missing months are added when you switch back to Every Month. Rows that are already invoiced block destructive reconciliation; resolve those in Finance (and issue credit notes in your accounting system when needed) before changing mode on affected bookings — the same invoiced floor boundary applies to rent edits on those bookings.

Admin fee — fixed or by stay duration

The Admin fee row in Contract Information appears only when Admin fee is on under Account Settings > Fees. Check Admin fee on the property, then choose how the amount is determined for new payment plans on this property:

Mode (UI label)Behaviour
Fixed valueOne amount applies to every booking on this property (same field as the property wizard).
Per stay durationA tier table maps total stay length in days to an admin fee. The first tier always starts at 0 days; each additional tier must use a From day strictly greater than the previous tier. Stays at or above the last tier’s From day use that tier’s value until you add another row.

Use Add tier to add rows; remove any tier except the first with the trash control. The (i) tooltip beside Tiers summarizes the open-ended last tier. Save on the property sidebar is blocked while tier validation errors are shown (for example duplicate or non-increasing From day values).

Existing bookings

Changing admin fee mode or tiers on a property updates defaults for future schedule generation. Bookings that already have admin fee lines keep their stored amounts until you regenerate or adjust the plan in Bookings / Finance.

Property Contract Information — Admin fee enabled with Fixed value and Per stay duration mode options

Screenshot freshness

Per stay duration admin-fee tier table refreshed 2026-06-12 10:14 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL VIVIN_DOCS_PROPERTY_SEARCH=AA-11-5D npx tsx tools/capture-docs-enrichment-media.ts).

Property Contract Information — Per stay duration mode with tier table (From day, amount, Add tier, and stay-length range labels)

Property Contract Information — Admin fee tier editor close-up (From day ranges, amounts, Add tier, and stay-length labels)

Admin fee tier captures re-verified 2026-06-16 13:09 UTCPer stay duration tier table via capture-docs-enrichment-media.ts (property AA-11-5D); fixed vs tiered mode and tier table close-up via capture-listings-admin-fee-tiers-screenshots.ts (2026-06-11).

Property Payments Active: This is a critical toggle. When enabled, tenants can make payments through the Tenant Portal. When disabled, all payment functionality is blocked for tenants in this property.

Business Rule

If you disable "Property Payments Active," tenants will not be able to pay rent, deposits, or any other charges through the platform. Use this setting carefully, typically only when you are handling payments through an external system.

Property Contract Information — confirmation/check-in payments, due date, cleaning fee frequency dropdown, and Property Payments Active

Maintenances Tab

This tab allows you to automate ticket creation for check-ins and check-outs.

You can configure the system to automatically create a maintenance ticket whenever a booking in this property has a check-in or check-out. For each event type, you can define:

  • Responsible Team Member: Who should be assigned to the ticket
  • Priority: Low, Medium, High, or Critical
  • Category: The type of task (e.g., "Cleaning - Check-in," "Inspection - Check-out")
  • Description: A default message that will appear in the ticket

Use Case Example: You might configure an automatic "Cleaning" ticket to be created 1 day before every check-in, assigned to your cleaning team, with High priority.

On individual reservations, operators can opt out per booking when creating a manual stay: on Add booking, after you turn off Use unit contract rents and other contract details, Create check-in ticket and Create check-out ticket checkboxes appear when the property has that auto-create enabled (#1140). Each defaults on (same as the property). Unchecking skips automatic ticket creation for that booking only; the property rule stays unchanged for future reservations. When you keep Use unit contract rents and other contract details checked, Vivin follows today's property defaults with no per-booking override row. See FAQ — Skip automatic check-in/out tickets for one booking.

Property Maintenances Tab

Access Lockers Tab

This tab manages access codes and smart lock integrations for the property.

You can define access codes for two levels:

  1. Building Access: The code to enter the building itself
  2. Property Access: The code to enter the specific property or apartment

For each level, you can choose between:

  • Manual Code: A static code that you enter manually (e.g., "1234#")
  • Nuki Integration: If you have connected Nuki smart locks in Integrations, you can link a Nuki device here. The system will automatically generate and send temporary access codes to tenants.

Entrance Hint: You can also add a text hint to help tenants find the entrance (e.g., "Use the side door on the left").

Business Rule

The access codes and hints you configure here will be automatically included in the check-in email sent to tenants and will also be visible in the Tenant Portal.

Property Access Lockers Tab

WiFi

Near Access Lockers in the property edit sidebar, the WiFi section stores the network name (SSID) and password for this building. Operators with edit access can update both fields inline; in read mode the password is masked with show/hide and copy controls so you can share credentials with tenants without retyping. Leave either field empty only when WiFi is not provided for that property.

Use this when check-in emails, the Tenant Portal, or on-site support should reference the same WiFi details as your property record. Values are scoped to the property — configure unit-specific access separately under unit Access Lockers when locks differ per room.

Property edit sidebar — WiFi section with network name, masked password, and show/copy controls

Screenshot freshness

WiFi section capture refreshed 2026-06-06 (tools/capture-docs-enrichment-batch.ts).

Email Customization Tab

This tab allows you to personalize the automated emails sent to tenants for this specific property.

You can customize three types of emails:

  • Onboarding Email: Sent after the booking is confirmed
  • Check-in Email: Sent before the tenant's arrival
  • Check-out Email: Sent before the tenant's departure

For each email type, you can add a custom message that will be appended to the default template. This is useful for property-specific instructions (e.g., "Please note that parking is available in the garage on the right side of the building").

To manage the default email templates, see Emails.

Property Email Customization Tab

Change history

Near the bottom of the property edit sidebar, Change history records recent edits to key property fields by your team. On the property path, scroll the right-hand panel past operational sections such as Access Lockers and WiFi — the block sits above the Onboarding / Check-in / Check-out email customization tabs (clock icon in the section header).

UI elementMeaning
TitleChange history
Subtitle (property)Edits to key property fields by your team.
Subtitle (unit)Edits to this unit, channels, and pricing.
Each rowPlain-language description of what changed (for example contract timing, rent settings, access configuration, or admin fee tiers — tier updates may show a compact before/after breakdown in the line)
TimestampWhen the save occurred (locale-formatted date and time)
by …Operator display name when Vivin can resolve the editor’s email to a user on the account

Use it when you need accountability for contract, payment, or access changes without leaving Listings. The section is always visible: when nothing has been logged yet, it shows No changes recorded yet.

Standard setup only

Change history appears on the normal Listings property and unit setup sidebars. Edits made in the Vivin-internal Property Details / Listing Details layer (Booking engine details) are not listed here — use that editor’s Save workflow and partner exports for marketplace payload changes.

Booking-level audit

Per-booking milestone dates and field changes live under Bookings → booking detail → Contract Info → Check-in & Check-out → Changelog, not in this sidebar block. Both surfaces list operator-initiated edits only (#2093) — see FAQ — Booking Changelog scope (three-way table: booking Changelog vs Listings Change history vs Tools → Audit). See Bookings — Timeline (booking change log) (bookings-detail-contract-info-timeline.png) and Glossary — Change history.

Property edit sidebar — Change history with recent field edits, timestamps, and author (example property FS-43-5B)

The unit edit sidebar includes the same Change history block for listing-scoped field changes. Scroll the unit panel below Contract and channel sections until you see the same clock-icon header.

Unit edit sidebar — Change history with listing-scoped field edits, timestamps, and author (example unit FS-43-5B-R1)

Property and unit Change history captures re-verified 2026-07-08 00:15 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL npx tsx tools/capture-change-history-screenshots.ts).

Editing Units

To edit an existing unit, expand the property in the Listings module and click the pencil icon next to the unit you wish to modify.

Edit Unit Icon

The unit edit sidebar uses the same three pills as properties:

PillWhat it contains
SetupUnit general info, tags, access lockers, rent, contract, channels, calendar, and change history (sections below)
Full integrationUnit marketing copy, room fixtures, partner platforms, and per-platform Integration listings toggles — see Property & listing details (booking engine)
PhotosUnit gallery; drag to reorder — first image is the cover

Append ?listingDetails=1 to a unit edit URL to land on Full integrationDeep Links — booking engine query params.

Unit edit sidebar — Setup, Full integration, and Photos pills with Setup selected (example unit AA-11-5D-R1)

General Information Tab

Update the unit's basic details:

  • Unit Number — the identifier for this unit
  • Unit Type — the type of rental space (Room, Studio, Full House, Bed, etc.)
  • Monthly Rent — can be set as Fixed or Variable
  • Availability Date — the earliest date this unit can be booked from

Unit General Info Tab

The Availability Date field controls when the unit first appears as bookable. Set this to the date the unit will be ready to receive tenants:

Unit Availability Date Field

You can also set the Extra Charge per Tenant and Extra Deposit per Tenant values directly from the general tab — these define the additional amounts added when a booking exceeds the unit's base capacity:

Unit Extra Price per Tenant Field

Tags Tab

Add or remove tags for this specific unit. Unit tags are independent of property tags, allowing you to create more granular categorization (e.g., "Corner Unit," "Balcony," "Renovated 2024").

Access Lockers Tab

Similar to the property-level access codes, you can define a unit-specific access code here. This is useful when each unit has its own lock or smart lock device.

Unit Access Lockers Tab

Rent Value Tab

This tab allows you to configure whether the rent is fixed or variable.

  • Fixed Rent: The rent amount remains constant for all bookings.
  • Variable Rent: The rent can change based on season, demand, or other factors. You can define different rent amounts for different date ranges.

At booking level, Vivin may still store fixed monthly rent when this unit is variable but every contract month in the reservation span shares the same configured € amount — the listing stays variable for future stays. See Bookings — Fixed rent on a variable unit and FAQ — Fixed rent on variable unit.

Unit Rent Value Tab

Local rent cap

When Dual pricing / local rent cap is enabled on the account, the unit sidebar shows Local Rent Cap beside the rent amount (fixed or variable grid). This is the legal rent portion Vivin uses when splitting each monthly Rent line on new bookings; the remainder is scheduled as Others using the category configured in Account Settings.

RuleDetail
VisibilityAppears when dual pricing is enabled on the account, or when the unit already has a cap saved.
Create unit+ Create New → Unit requires Local Rent Cap€0.01 when dual pricing is on.
Valid rangeMust be greater than zero and less than the unit’s monthly rent (or the rent for that month when variable).
Existing bookingsChanging the cap on the unit does not alter bookings already created; caps are copied at booking create.

Set the cap in the unit Rent section of the edit sidebar (same area as Monthly Rent / variable month grid). Operators with dual-pricing bookings can adjust the frozen cap on the booking — see Bookings — Dual pricing.

Unit edit sidebar — Rent pricing with Local Rent Cap beside monthly rent (example unit AA-11-5D-R1)

Contract section

The unit edit sidebar includes a Contract block (above Change history and Channels) with the same effective contract card used on properties and on the full-page unit detail.

Resolution order for a unit:

Resolved source (English UI)Meaning
Uses this unit's own contractA unit-scoped .docx uploaded in Settings overrides property and account defaults for this row only.
Inherited from <property name>The parent property’s template applies (shown when the unit has no own file but the property does).
Uses the account default contractNeither unit nor property has an override — the account default from Settings applies.
No contract template resolvedUpload a template before contract generation can succeed for new bookings on this unit.

Use the eye control to preview the resolved template as PDF. Manage uploads from Settings > Contract templates.

Unit edit sidebar — effective contract card showing account default resolution (example unit FS-43-5B-R1)

When the unit has no own .docx but the parent property does, the card shows Inherited from <property name> with the property template filename and upload date:

Unit edit sidebar — effective contract card inherited from parent property (example unit AA-11-5D-R22 on AA-11-5D)

Unit inherited-contract card captured 2026-06-19 05:00 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL VIVIN_DOCS_PROPERTY_ID=0af9c920-0b64-49ad-ac38-e2d28536ed4d VIVIN_DOCS_LISTING_ID=e4473824-a3aa-4297-af3b-357cdb213112 npx tsx tools/capture-listings-unit-effective-contract-inherited-screenshot.ts).

Screenshot note

The account-default capture above uses the full-page unit detail Contract card (same resolution component as the unit sidebar). For a property-scoped tight crop and PDF preview modal, see Property Contract tab — effective contract card.

Channels Tab

Use the unit Channels tab to wire this unit to external marketplace listings after the platform is enabled on Account Settings > Integrations. Credentials, Pricing Markup, and account-wide Short-term iCal Max Date stay on Integrations; here you add per-unit external listing IDs, import URLs, and connection status.

For a portfolio-wide channel matrix (search, platform filters, Export with a VIVIN iCal column per row), use Sales > Channels. For a property/unit inventory CSV of the current Listings filters, use Portfolio toolbar — Export. Both surfaces read the same integration toggles; open the unit Channels tab when you are already editing one row.

Typical linking workflow

  1. Turn on the marketplace under Account Settings > Integrations and save credentials or integration email.
  2. Open the unit in Listings and select the Channels tab in the unit sidebar.
  3. For each enabled platform, enter the external listing ID (and iCal or API fields the card shows) so imports and calendar sync map to this row.
  4. Open the platform link from the tab when you need to confirm the live listing on Airbnb, Booking.com, or a mid-term channel.
  5. When onboarding many units, audit gaps from Sales > Channels or Listings → Export, then return to this tab for one-off fixes.

This tab shows, per connected channel:

  • Platform name (e.g., Airbnb, Booking.com, Idealista)
  • Link to the listing on that platform
  • Sync / connection status for that unit
Channex (channel manager)

Channex is provisioned differently from mid-term marketplaces: Vivin maps each unit to Channex property / room type / rate plan UUIDs via internal admin (channexMapping), not through self-serve external listing ID fields on this tab. When mapping exists, a Channex row can appear here like other platforms; enable the platform card under Settings > Integrations and contact Vivin support if ARI sync or booking imports are missing. Channex does not have a column on Sales > Channels.

Unit Channels tab — per-platform links and connection status in the unit edit sidebar

Viewing Unit Availability and Unavailability

Pair with other Listings sections

Calendar pairs with Sales — Multicalendar and Audit — Manual Blocks — edit holds here, triage portfolio-wide in Audit. Full pairing matrix: Listings section cross-reference.

When you open a unit in the Listings module, the Calendar section at the top of the unit sidebar is where you read and manage availability: booked nights, channel blocks, and manual holds. (Older internal wording sometimes called this an “Availability” view; in the English UI the heading is Calendar, with the subtitle about manually managing bookings or unavailability.)

This view shows:

  • Available Dates: Dates when the unit is ready to be booked
  • Unavailable Dates: Dates when the unit is blocked

Unavailability can come from three sources:

  1. Bookings: Dates when a tenant is occupying the unit
  2. Airbnb (or other platforms): Dates blocked by external platform calendars
  3. Manual Unavailability: Dates you have manually blocked

Adding Manual Unavailability

To manually block dates (for example, during renovations or personal use), follow these steps:

Step 1: Open the unit's detail view by clicking on it in the Listings module.

Step 2: In the unit sidebar, scroll to the Calendar section (combined calendar and list for bookings and unavailability).

Step 3: Choose a start and end date (the date-range control above the calendar), optionally enter a reason, then click Add unavailability — the English UI uses that exact label on the primary action next to Add booking. The block is saved as soon as the request succeeds; the form clears and the calendar refreshes.

The unit will now be blocked for those dates and will not appear as available in the Sales module or external platforms.

In the Calendar section, the calendar shows booked, channel-blocked, and manually blocked ranges together; new manual blocks appear in the unavailability list under the calendar once added.

Unit sidebar — Calendar section with date range, Add booking, Add unavailability, and list/month/year views

Reading the calendar

  • Hover a coloured span on the calendar to see the date range, whether the block is tied to a booking, an external channel / iCal sync, or a manual block, and any reason or guest-style label the product shows for that slice.
  • Short-term iCal blocks (for example Airbnb or Booking.com calendar imports) may show the platform logo on the block or list row when Vivin knows the integrationPlatform. Raw feed reasons such as CLOSED - Not available on Booking.com are normalized to Booking.com in the UI instead of the opaque calendar string.
  • Blocks imported from platforms that only expose an iCal feed (no deep API link) may appear with a platform or generic label rather than a tenant name — that is expected for calendar-only integrations.

Removing manual unavailability

  • Only manual unavailability rows you created from Add unavailability can be removed from this tab (use the delete/remove control on that row).
  • Booking and channel blocks are managed from their source (for example cancel or amend the booking, or adjust the external calendar); you cannot delete those rows as if they were manual blocks.

Reviewing manual blocks across the portfolio (Audit)

When you need a cross-property view of manual holds (for example before high season or after staff changes), open Tools → Audit (/audit) — the Manual Blocks tab lists manual unavailability with filters, sortable column headers (server-side sort on Unit, dates, Nights, Reason, creator, and Created), a Blocked nights per month chart, and infinite-scroll pagination so you can spot forgotten or overlapping blocks without stepping through every unit sidebar. Access uses the same Listings module permission as this workspace. See Audit module, Modules — Audit, Deep Links — Audit, and Glossary — Manual unavailability.

Walkthrough: open a unit sidebar → Calendar → optional reason → Add unavailability → confirm the block appears in the list.

Archived properties

Pair with other Listings sections

Archived properties drop from active Sales grids but Bookings historical rows remain — verify channel feeds before archiving. Full pairing matrix: Listings section cross-reference.

Use the Archived pill at the top of Listings (next to Portfolio) or open platform.vivin.app/listings/archived directly. Legacy bookmarks under /properties/archived redirect to the same route (see Legacy /properties URLs). Archived property is building-level inventory retirement — distinct from Delete Booking (reservation soft-archive) and Cancel booking; step-by-step: FAQ — Archive a property. Hub matrix: Common Workflows — Portfolio retirement decisions. Scope table: FAQ — Portfolio retirement decisions, Glossary — Archived property, and FAQ — Cancel Booking vs Delete Booking.

Tab / routePurpose
PortfolioActive properties and units in day-to-day operations (/listings).
ArchivedProperties you have archived — hidden from portfolio pickers and default Listings views, but still available for history, contracts, and unarchive. The tab badge shows how many archived properties you have.

The Archived table uses the same search, tag, type, and filter controls as Portfolio, and the same infinite-scroll loading behaviour (scroll near the bottom to load more archived properties). When nothing is archived yet, you see an empty state that explains archived units remain reviewable from the property editor.

Listings — Archived tab with empty state and link to unarchive from the property editor

When your account has archived buildings, the Archived pill shows a badge count and the list fills with property cards (same card layout as Portfolio).

Listings — Archived tab with populated property cards and Archived badge count (example Carcavelos Villa)

Archive and unarchive

  • Archive — Open a property in the Edit property sidebar (Portfolio tab), scroll to the danger zone at the bottom of the sidebar, and choose Archive. The app confirms before archiving; properties with active bookings may show an extra warning.
  • Unarchive — From the Archived tab, open the property sidebar and choose Unarchive in the same area. The property returns to Portfolio and to property pickers across the app.

Listings — Archived property edit sidebar with Unarchive in the danger zone (example Carcavelos Villa)

Archived tab captures refreshed 2026-07-08 01:10 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL npx tsx tools/capture-listings-archived-screenshots.ts — docs account now has archived properties; prior runs only had the empty state).

Archiving does not delete bookings or financial history; it removes the property from active portfolio workflows until you unarchive it.

Key Business Rules for Listings

Summary
  1. Properties must exist before units: You cannot create a unit without first creating a property.

  2. Owners must exist before properties: You cannot assign an owner to a property unless that owner has been registered in Settings > Owners.

  3. Tags propagate from property to units: When you add a tag to a property, all units within that property automatically inherit that tag.

  4. Cleaning fee frequency cannot be set during creation: When creating a property, the cleaning fee defaults to Every Month. Edit the property after creation to switch to One-Time Fee at Booking Confirmation or One-Time Fee at Move-in.

  5. Property Payments Active controls tenant portal payments: If this setting is disabled, tenants will not be able to make any payments through the platform for bookings in this property.

  6. Changes do not affect existing bookings: If you change the rent, payment terms, or other settings for a property or unit, those changes will only apply to new bookings created after the change. Existing bookings will continue using the values that were in effect when they were created.

  7. Access codes in check-in email and portal: Codes configured in the Access Lockers tab are included in the check-in email when that lifecycle message sends. The portal Home Entry codes card is separate — it requires Allow to see entry codes on Preferences → Tenant Portal, a sent check-in email, and an active stay window. See Tenant Portal — Entry codes (#2166).

  8. Manual unavailability blocks connected channels: For units linked to external platforms, manual blocks you save here keep those dates unavailable in Vivin and on connected calendars — treat them like operational holds, not just a local note. See also the Sales module for how availability stays in sync across channels.

Listings guide subsection index

Pair with other Listings module guide sections

This index pairs Listings portfolio, unit, and channel sections with Related subsections — use it when inventory disagrees with Sales availability, Bookings assignments, or Utilities Bills Included ceilings. Full pairing matrix: Listings section cross-reference.

SubsectionWhen to open itPair with
Understanding the Listings StructurePortfolio hierarchy and occupancy badgesOnboarding a New Property, Legacy /properties URLs
Portfolio toolbar: search, filters, and exportServer search, filters, CSV exportFinance — Property & Listing filters, Glossary — Server-driven search picker
Full-page unit detailBookmarkable /listings/:listingId workspaceDeep Links — Listings, Booking engine details
Creating a New PropertyNew building or locationSettings > Owners, Create New menu — Property
Creating a New UnitRentable space inside a propertySales — Channel Manager, Settings > Tenant categories
Importing from InlifeBulk partner inventory importAPI Reference — Full listing feeds, Create New menu — Inlife Import
Editing PropertiesProperty sidebar tabs and defaultsSettings > Contract, Tenant Portal
Editing Units — Channels TabPer-unit channel linksSales — Channel Manager, Settings > Integrations
Viewing Unit Availability and UnavailabilityCalendar blocks and holdsSales — Multicalendar, Audit — Manual Blocks, Manual block hygiene
Archived propertiesRetired inventory without deleting historyBookings module, Sales module
Deeper workflow readsStep-by-step procedures in this moduleCommon Workflows hub subsection index, Onboarding a New Property
Lockout catch-up after password recoverySign-in restored; module backlog accumulatedCommon Workflows — Lockout catch-up, Getting Started — Lockout catch-up, Resetting a Management User Password — Step 3
Pending manual receipt approvalRecorded bank transfers still pending until Approve paymentsCommon Workflows — Pending manual receipt approval, Finance — Pending manual payments, FAQ — Manual receipt still pending
Reject/revert mistaken receiptsDuplicate or wrong-booking receipts after ApproveCommon Workflows — Reject/revert mistaken receipts, Payment Allocation — Correcting mistaken receipts, Glossary — Credit note (payment reject/revert)
Notification row-click navigation/notifications row-click with listingId or propertyIdCommon Workflows — Notification row-click navigation, Notification triage — Step 4, Editing Properties, Full-page unit detail
Payment alert to receivables triageProperty Payments Active portal charges on listing bookingsCommon Workflows — Payment alert to receivables triage, Handling a Late Payment — Step 1, Notifications — Payment overdue alerts
Confirmation alert triageChannel import Upcoming alerts on go-live propertiesCommon Workflows — Confirmation alert triage, Processing a New Booking — Step 5b, Onboarding a New Property — Step 7
Portfolio segmentation by tenant categoryReview one tenant segment across modulesCommon Workflows — Portfolio segmentation, Settings > Tenant categories, Finance — Tenant category filter, Tenants — Tenant category filter
Finance debt receivables triageUnit sidebar debt indicators may disagree with portfolio Top debtors until ledger cleanup finishesCommon Workflows — Finance debt receivables triage, Finance — Finance debt receivables triage, FAQ — Finance debt receivables triage hub, Full-page unit detail, Payment alert to receivables triage (finance-overview-debt-aging-expanded-bucket.png, finance-overview-debt-aging-walkthrough-flow.mp4)
Finance Income status drill-downUnit sidebar debt is one booking — use Income → In debt for month-scoped payment linesCommon Workflows — Finance Income status drill-down, Finance — Income status drill-down, FAQ — Finance Income status drill-down hub, Full-page unit detail, Finance debt receivables triage (finance-overview-income-status-in-debt-modal.png, finance-overview-income-drill-down-flow.mp4)
Cash flow forecast drill-downUnit-level collections questions — Cash flow forecast lists portfolio-wide confirmed paymentsCommon Workflows — Cash flow forecast drill-down, Finance Income status drill-down, Finance — Income chart and cash flow forecast, FAQ — Cash flow forecast drill-down hub, Full-page unit detail, Rent Value tab (finance-overview-cash-flow-all-payments-modal.png, finance-overview-cash-flow-day-view.png, finance-overview-cash-flow-drill-down-flow.mp4)
Listings section cross-referencePer-section pairing matrixModule cross-reference, Sales guide subsection index

Listings section cross-reference

Use this table when one Listings section or control naturally leads into another module, workflow, or concept — each row links to the docs you should read before or after acting in that section.

Listings sectionPair with these docs
Understanding the Listings StructureOnboarding a New Property, Properties workspace
Portfolio toolbar: search, filters, and exportFinance — Property & Listing filters, Glossary — Server-driven search picker, Portfolio KPI review — Step 6, Settings > Categories — Listing tags
Full-page unit detailDeep Links — Listings, Booking engine details, Settings > Tenant categories
Creating a New PropertySettings > Owners, Create New menu — Property
Creating a New UnitSales — Channels tab, Processing a New Booking, Settings > Tenant categories, Bookings — Other filters tenant category
Importing from InlifeCreate New menu — Inlife Import, API Reference — Full listing feeds
Editing PropertiesSettings > Contract, Utilities module, Tenant Portal, Settings > Tenant categories, Notifications — Payment overdue alerts, Handling a Late Payment — Step 1
Editing Units — Channels TabSettings > Integrations, Integrations & Distribution
Viewing Unit Availability and UnavailabilitySales — Multicalendar, Audit module, Manual block hygiene
Archived propertiesFAQ — Archive a property, Bookings module (historical rows remain), Sales module (removed from active grids), Portfolio retirement decisions

Pair with other Listings module guide sections

Related below links this module to settings, concepts, workflows, and escalation paths. Pair Documentation map & escalation with Modules hub — Documentation map & escalation; pair Upstream & downstream workflows with Common Workflows — Workflow cross-reference. Topic-to-section pairing in sections above: Listings guide subsection index · Listings section cross-reference. Full hub matrix: Module cross-reference · Modules hub subsection index.

Documentation map & escalation

Pair with other Listings module guide sections
  • Modules hub — Hub pairing matrix across operator workspaces
  • Modules overview — Audit — Cross-portfolio review of manual availability blocks (/audit)
  • Deep Links — Listings paths and propertyDetails=1 / listingDetails=1 query flags
  • Glossary — Term definitions used across listings and channel workflows

Upstream & downstream workflows

Pair with other Listings module guide sections

Deeper workflow reads

Pair with other Listings module guide sections

Workflow reads pair with Common Workflows hub subsection index and Workflow cross-reference. Each workflow sub-guide reciprocates with [Deeper workflow reads](../modules/listings/index.md#deeper-workflow-reads) anchors on Module documentation hubs bullets — hub parity: Modules hub — Deeper workflow reads. Full pairing matrix: Listings section cross-reference · Module cross-reference.

Settings that shape Listings

Pair with other Listings module guide sections

Deeper concept reads

Pair with other Listings module guide sections

Operator modules (pairing surfaces)

Pair with other Listings module guide sections
Pair with other Listings module guide sections

Lockout catch-up after password recovery

Pair with other Listings module guide sections

Pending manual receipt approval

Pair with other Listings module guide sections

Reject/revert mistaken receipts

Check-out ledger cleanup before refund

Pair with other Listings module guide sections

Utility overage collections

Pair with other Listings module guide sections

Unit sidebar debt from utility overage lines pairs with Utilities bill posting and Finance collections. Hub parity: Common Workflows — Utility overage collections. Full pairing matrix: Listings section cross-reference · Module cross-reference.

Cancellation collections before void

Pair with other Listings module guide sections

Pre-cancel arrears pair with Cancelling a Booking before Step 5 frees unit nights. Hub parity: Common Workflows — Cancellation collections before void. Full pairing matrix: Listings section cross-reference · Module cross-reference.

Check-out collections before refund

Pair with other Listings module guide sections

Handling a Late Payment collections

Pair with other Listings module guide sections

Unit sidebar debt indicators pair with booking Payment Plan before Handling a Late Payment outreach — portfolio Top debtors ranks bookings, not units alone. Hub parity: Common Workflows — Handling a Late Payment collections hub. Full pairing matrix: Listings section cross-reference · Module cross-reference.

Check-out vs cancellation

Pair with other Listings module guide sections

Unit Calendar availability after early termination depends on lifecycle exit — policy void → Cancelling a Booking Canceled vs completed stay → Managing a Check-out Ended. Hub parity: Common Workflows — Check-out vs cancellation. Full pairing matrix: Listings section cross-reference · Module cross-reference.

Deposit missing on Finance Deposits

Pair with other Listings module guide sections

First check-out deposit triage after property go-live should clear Finance → Deposits toolbar date range when the departing stay falls outside the default ~3 months window. Hub parity: Common Workflows — Deposit missing on Finance Deposits. Full pairing matrix: Listings section cross-reference · Module cross-reference.

Notification row-click navigation

Pair with other Listings module guide sections

/notifications row-click with listingId opens the unit edit sidebar (or Full-page unit detail when the route is /listings/:listingId); propertyId opens the property edit sidebar — clear Deep links hidden by filters when the portfolio row is hidden. Hub parity: Common Workflows — Notification row-click navigation. Full pairing matrix: Listings section cross-reference · Module cross-reference.

Payment alert to receivables triage

Pair with other Listings module guide sections

When Property Payments Active is enabled on a property, unpaid portal charges surface payment overdue rows — row-click into Bookings and finish Handling a Late Payment — Step 1 before you change listing defaults account-wide. Hub parity: Common Workflows — Payment alert to receivables triage. Full pairing matrix: Listings section cross-reference · Module cross-reference.

Finance debt receivables triage

Pair with other Listings module guide sections

Unit sidebar debt indicators and Property Payments Active portal charges on listing bookings may disagree with portfolio Top debtors until ledger cleanup finishes. Hub parity: Common Workflows — Finance debt receivables triage. Full pairing matrix: Listings section cross-reference · Module cross-reference.

Finance Income status drill-down

Pair with other Listings module guide sections

Unit sidebar debt indicators show one booking — use Income → In debt for month-scoped payment lines or Debt Aging for portfolio rank. Hub parity: Common Workflows — Finance Income status drill-down. Full pairing matrix: Listings section cross-reference · Module cross-reference.

Cash flow forecast drill-down

Pair with other Listings module guide sections

Go-live property collections may skew Cash flow forecast month bars — reconcile on Finance → Overview after channel import. Hub parity: Common Workflows — Cash flow forecast drill-down. Full pairing matrix: Listings section cross-reference · Module cross-reference.

Confirmation alert triage

Pair with other Listings module guide sections

Upcoming Booking created / Payment received alerts on channel-linked units row-click into Bookings — finish Processing a New Booking — Step 5b and verify inventory on Onboarding a New Property — Step 7 before bulk-clear on /notifications. Hub parity: Common Workflows — Confirmation alert triage. Full pairing matrix: Listings section cross-reference · Module cross-reference.

New inventory to first booking handoff

Pair with other Listings module guide sections

Go-live properties need Onboarding a New Property — Steps 1–7 complete — especially portfolio verify on Step 7 — before Processing a New Booking — Step 1 duplicate check or Add booking. Hub parity: Common Workflows — New inventory to first booking handoff. Full pairing matrix: Listings section cross-reference · Module cross-reference.

Property setup to first arrival handoff

Pair with other Listings module guide sections

Confirmation to check-in handoff

Pair with other Listings module guide sections

Go-live properties need Processing a New Booking — Step 6 portal gates on first Upcoming reservation before Managing a Check-in — Step 1. Hub parity: Common Workflows — Confirmation to check-in handoff. Full pairing matrix: Listings section cross-reference · Module cross-reference.

Check-in to check-out handoff

Pair with other Listings module guide sections

Unit Calendar and sidebar departure bars on Ongoing stays signal when to switch from move-in prep to Managing a Check-out — Step 1. Hub parity: Common Workflows — Check-in to check-out handoff. Full pairing matrix: listings-section-cross-reference · Module cross-reference.

Check-out final utilities handoff

Pair with other Listings module guide sections

Unit-level Bills Included ceilings (see Bookings — Bills included ceiling) affect final-cycle utility overage math during departure week — pair Utilities Allocations with booking Payment Plan before refund. Hub parity: Common Workflows — Check-out final utilities handoff. Distinct from Utility overage collections (mid-stay mesh). Full pairing matrix: Listings section cross-reference · Module cross-reference.

Same-day turnover coordination

Pair with other Listings module guide sections

Unit Calendar and Bookings — Timeline view show back-to-back departure and arrival bars on turnover day — pair with hub Common Workflows — Same-day turnover coordination before you treat overlap as a duplicate import. Full pairing matrix: listings-section-cross-reference · Module cross-reference.

WhatsApp per-booking messaging

Pair with other Listings module guide sections

Go-live property tenant WhatsApp threads pair with Bookings → Communication after channel import bookings land — Listings calendar alone cannot reply. Hub parity: Glossary — WhatsApp per-booking messaging hub · Common Workflows — WhatsApp per-booking messaging. Full pairing matrix: Listings section cross-reference · Module cross-reference.

Bot reasoning (audit)

Pair with other Listings module guide sections

Go-live property bot threads after channel import. Hub parity: Glossary — Bot reasoning (audit) hub · Common Workflows — Bot reasoning (audit). Full pairing matrix: Listings section cross-reference · Module cross-reference.

ChatBot settings

Pair with other Listings module guide sections

Account Settings → ChatBot pairs with Communication thread review — go-live property bot threads after channel import. Hub parity: Glossary — ChatBot settings hub · Common Workflows — ChatBot settings. Full pairing matrix: Listings section cross-reference · Module cross-reference.

Rent reduction after invoicing

Pair with other Listings module guide sections

Variable-unit bookings may show fixed headline rent after equal-month inference — reopen Change monthly rent on live bookings when month-end repricing hits the invoiced floor after first export. Pair Bulk Hostkit invoicing for Issue credit notes (N). Hub parity: Common Workflows — Rent reduction after invoicing. Full pairing matrix: Listings section cross-reference · Module cross-reference.

Month-end invoicing (fixed date)

Pair with other Listings module guide sections

First month-end on new inventory after Onboarding a New Property pairs with fixed Invoice date before bulk Issue allocation on Finance → Transactions. Hub parity: Common Workflows — Month-end invoicing (fixed date). Full pairing matrix: Listings section cross-reference · Module cross-reference.

Bulk Hostkit invoicing

Pair with other Listings module guide sections

First month-end on new inventory may surface many Not issued rows — batch Issue allocation on Finance → Transactions with Hostkit pacing after go-live verification. Hub parity: Common Workflows — Bulk Hostkit invoicing. Full pairing matrix: Listings section cross-reference · Module cross-reference.

Directory list load failures

Pair with other Listings module guide sections

Portfolio and Archived first-fetch failures show Failed to load listings. Please try again. + Retry — distinct from toolbar filters or search that genuinely match zero properties. Pair Portfolio table loading (infinite scroll) with Onboarding a New Property — Step 7 go-live verify. Hub parity: Common Workflows — Directory list load failures. Full pairing matrix: Listings section cross-reference · Module cross-reference.

Occupancy KPI to block hygiene handoff

Pair with other Listings module guide sections

Unit Calendar mystery blocks without a rate change pair with hub Common Workflows — Occupancy KPI to block hygiene handoff before Sales → Pricing edits — row-click from Tools → Audit opens this sidebar. Hub parity: Common Workflows — Occupancy KPI to block hygiene handoff. Full pairing matrix: Listings section cross-reference · Module cross-reference.

Partly collected security deposit

Pair with other Listings module guide sections

Portfolio retirement decisions

Pair with other Listings module guide sections

Building Archive on Portfolio moves inventory to Archived properties — distinct from Delete Booking on one reservation. Hub parity: Common Workflows — Portfolio retirement decisions. Full pairing matrix: Listings section cross-reference · Module cross-reference.

Archive property (building-level)

Pair with other Listings module guide sections

Building Archive on Portfolio retires inventory to Archived properties without deleting bookings or Finance → Transactions rows — distinct from per-reservation Cancel / Delete. Hub parity: Common Workflows — Archive property (building-level). Full pairing matrix: Listings section cross-reference · Module cross-reference.

Portfolio segmentation by tenant category

Pair with other Listings module guide sections

Key glossary terms

Pair with other Listings module guide sections

API & companion guides

Pair with other Listings module guide sections

API bullets pair with API Reference hub. Full pairing matrix: Listings section cross-reference · Module cross-reference.

Module documentation hubs

Pair with other Listings module guide sections
  • Listings module — Property wizard, Channels tab, Archived inventory, and unit management (this page)
  • Utilities module — Bills Included ceiling model, Connections, AI bill upload, and tenant overage charges on payment plans (hub)
  • Operations module — Maintenance tickets, cash flows, check-in/out coordination, Draft ticket queues, and linked cash flows (hub)
  • Dashboard module — Post-login Today, Total debt, Vacant Units, and forecast KPI snapshot with bell notification triage (hub)
  • Analytics module — Month-range portfolio KPI charts (Overview, Revenue, Occupancy, ADR, RevPAR, Maintenance) with rankings and heatmaps (hub)
  • Properties workspace — Legacy /properties URL redirects into Listings (hub)
  • Booking engine details — Rich marketplace payload editor via the Full integration pill (hub)
  • Finance module — Portfolio ledgers (Overview, Income, Contract Values, Transactions, Payouts, Deposits) with payment approval and deposit settlement (hub)
  • Tenants module — Tenant directory, profile sidebars, With Debt segmentation, and table expand for linked bookings (hub)
  • Sales module — Portfolio availability, monthly rent editing, and channel manager connections (hub)
  • Inbox module — Portfolio-wide WhatsApp workspace with Dashboard bell Inbox sub-tab deep links (hub)
  • Notifications module — Full /notifications history with search, filters, and row-click navigation (hub)
  • AI Chat module — Vivin-internal AI Assistant using Landlord MCP tools for portfolio Q&A (hub)
  • Audit module — Portfolio-wide Manual Blocks and Discounts contract-value review (hub)
  • Account Settings — Workspace-wide financial policies, templates, integrations, and operational defaults (hub)
  • API Reference hub — Partner HTTP contracts, Swagger onboarding, and partial vs full feeds (hub)