Sales
After Integrations (setup step 12) and Listings (step 13), link units on Channels and monitor availability here — see Getting Started — Distribution & channels (optional). Complete core setup steps 1–15 before channel imports at scale. Workflow pairing: Modules — Setup sequence after go-live.
Start with Overview tab KPIs and availability charts, then open Multicalendar tab (availability timeline) for unit × time Gantt or Pricing tab (monthly rent grid) for bulk rent edits. Account credentials live under Channel Manager and Settings → Integrations. Guide subsection map: Sales guide subsection index (tab sections + Related subsections). Non-linear operator habits (Lockout catch-up, Pending manual receipt approval, Reject/revert mistaken receipts, Notification row-click navigation, Payment alert to receivables triage, Confirmation alert triage, Finance debt receivables triage, Finance Income status drill-down, Cash flow forecast drill-down, Partly collected security deposit, Portfolio segmentation by tenant category) have matching Related subsections below. Full pairing matrix: Sales section cross-reference · Modules — Module cross-reference.
The Sales module is where you review portfolio availability and rent levels, edit monthly prices in bulk, and manage channel manager connections to external platforms.
Open the Sales module at platform.vivin.app/sales. Primary tab routes include /sales/overview, /sales/multicalendar (Multicalendar — availability timeline), /sales/pricing (Pricing — monthly rent grid), and /sales/channels. Legacy bookmark /sales/calendar redirects to /sales/pricing. Bookmarks to /sales/channel-manager open the Channels tab. See Deep Links for all routes.
Any unknown Sales tab slug (without a documented legacy alias) redirects to /sales (Overview) so the address bar matches the tab you see. Legacy /sales/calendar redirects to /sales/pricing (the Pricing grid). See Deep Links — Invalid, legacy, and mistyped URLs.
Month-range KPIs live in Analytics; reconcile Overview heatmaps with Dashboard Vacant Units and Bookings → Timeline. When a dip looks tied to one listing type or tenant segment, use Select tags / Select listing types here first, then Bookings — Other filters tenant category and Finance — Tenant category filter — Portfolio KPI review — Step 6. During Portfolio KPI review — Step 7, pair occupancy/revenue reconciliation with AI usage API (landlord_chat, utility_bill_extraction) when assistant or utility-bill extraction volume should explain operational cost. Channel-imported reservations with unpaid schedules can surface payment overdue rows — row-click opens the booking for Handling a Late Payment — Step 1. Section-to-doc pairing: Sales section cross-reference. Hub tab matrix: Modules — Module cross-reference.
The module has four tabs: Overview (KPIs, occupancy forecast, and availability views), Multicalendar (unit × time Gantt without rent cells — route /sales/multicalendar), Pricing (listing × month grid with occupancy and monthly rents — route /sales/pricing), and Channels (integrations list and per-unit linking).
Current management builds (since #1747, merged June 2026) expose four Sales tabs: Overview, Multicalendar (/sales/multicalendar — unit × time Gantt without rent cells), Pricing (/sales/pricing — monthly rent grid), and Channels. Legacy bookmark /sales/calendar redirects to /sales/pricing. Older deployments that predate #1747 used a three-tab shell where the monthly rent grid lived at /sales/multicalendar — if you still see that layout, deploy a current build before following route-specific steps below.
Directory load failures
When the shared Sales data request fails on first load, the whole module shows a red alert card under the page header — Failed to load sales data. Please try again. — with optional server detail and a Retry button. All four tabs (Overview, Multicalendar, Pricing, Channels) are blocked until the fetch succeeds; this is not the same as filters that match zero listings.
A successful fetch with no rows for your search still shows the normal empty grid — not this error state. See Glossary — Directory list load failures and FAQ — list page load failures.
Mobile and narrow layouts
Sales uses the shared management bottom tab bar on viewports below 768px (same breakpoint as Operations):
| Pattern | When it applies | What changes |
|---|---|---|
| Bottom tab bar | Browser width < 768px | Fixed footer tabs switch between Overview, Multicalendar, Pricing, and Channels. The page adds bottom padding (pb-20) so grid content is not hidden behind the bar. |
| In-tab tab pills | Multicalendar, Pricing, or Channels active on narrow width | The sticky pill strip under the page header is hidden on these tabs. Each tab body renders its own salesTabRow — the same four tab pills repeated at the top so you can switch views without scrolling back to the module header. |
| Desktop | ≥ 768px | One sticky pill strip under the Sales header for all tabs; Multicalendar, Pricing, and Channels do not duplicate pills inside the tab body. |
On Channels, the in-tab row may also show platform icon chips on the right (your enabled marketplace integrations) beside the tab pills.

Narrow Sales layout is a responsive pattern — you can still open Dashboard, Bookings, and other modules from the mobile drawer. It is not the Operations-only phone route guard that locks non-Operations URLs on actual mobile phone user agents. See Operations — Phone-only operations shell.

Sales Overview full-page capture refreshed 2026-06-22 03:25 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL npx tsx tools/capture-sales-overview-tab-screenshot.ts — replaces a prior Retool editor leak).
Overview tab
Overview KPIs pair with Dashboard — Vacant Units and Analytics — Occupancy tab — segment dips with Bookings — Other filters tenant category. Full pairing matrix: Sales section cross-reference.
The Overview tab is the default /sales view. It combines a KPI strip, the same Occupancy forecast chart family used on the Dashboard, and an Availability over time workspace so you can see where units go free and how many listings are free on a given day.
KPI cards
| Card | What it shows |
|---|---|
| Occupancy rate | Share of listings with an active stay or block today (bookings plus unavailabilities such as manual blocks or short-term iCal), with occupied vs total counts. |
| Today | How many listings count as free rooms today, with optional subtitle segments for mid-term stays, short-term (for example Airbnb / Booking.com style) stays, and manual blocks when those buckets are non-zero. Refunded-but-active stays still count as occupied for this headline so the number matches the Dashboard Today card and Multicalendar Available now; other Overview KPIs (for example Revenue this month) keep using non-refunded booking sets. |
| Ending this month | Count of bookings whose move-out falls in the current calendar month. |
Most Sales → Overview metrics (occupancy rate, revenue, forecast bars, availability charts) come from a cached snapshot refreshed on a schedule. The Today / free rooms headline is the exception — it is recomputed live on each load so it always agrees with Multicalendar → Available now and the Dashboard Today card. After availability changes, refresh the tab before you compare Today with a chart that may still reflect the prior cache window. Preferences → Vacant Unit Preference (Include manual blocks) also applies to Today, Available Now, occupancy bars, and Multicalendar Available now / Date range filters — manual operator blocks no longer suppress those surfaces; OTA/iCal and booking-linked holds still do.
| Revenue this month | Expected rent for the current month, calculated proportionally for partial stays (not only full-month contracts). |
Use the info icons on each card in the product for the full in-app definitions.
Occupancy forecast
The wide chart on the right reuses the Occupancy forecast interaction from the Dashboard (past plus forward window, horizon controls, occupied counts and ADR context). See Dashboard — Occupancy Forecast for behaviour detail. For a month-end reconciliation pass that compares these KPIs with Analytics and Finance, use Portfolio KPI review.
Availability over time
Below the KPI row, Availability over time helps you spot when units go free and how many units are free in each bucket.
View modes
- Timeline — each listing is a row of horizontal bars showing continuous free periods (between bookings and blocking unavailabilities). Pick a horizon (7d, 15d, 1m, 3m, 6m) to set how far forward the axis runs. Hover a bar for dates; click the chart on a day to open a popover listing all free units that day (and open a listing from there when your role allows).
- Daily, Fortnightly, or Monthly — aggregated bar charts: each bar is how many listings are free for the entire day, fortnight, or month in that bucket. Use the period-count buttons (for example 30 Days or 6 Months) to change how many bars you see. Click a bar to highlight it and list the free units in that period.
Availability popover (partial load)
The free-unit list inside the day-click or bar-click popover loads in a second request after the main Overview KPIs and charts render. If that follow-up fetch fails, the popover shows Failed to load free units in red italic text while the rest of the tab stays usable — this is not the module-level Failed to load sales data card that blocks all four Sales tabs (see Directory load failures).
| What still works | What failed |
|---|---|
| KPI strip, Occupancy forecast, and availability chart | Only the unit names inside the open popover |
Close the popover (×), click another day or bar, or refresh the page after connectivity recovers. When the fetch succeeds but nothing is free in that bucket, the popover shows No free units in this period instead — that is a normal empty outcome, not an error.

Free-unit popover partial-load capture refreshed 2026-06-15 02:15 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL npx tsx tools/capture-sales-overview-free-units-popover-load-error.ts — GET /app-loader/sales/overview/free-units mocked to 503 after bar click).
See Glossary — Directory list load failures (Sales Overview popover row) and Portfolio KPI review when reconciling free-unit counts with Dashboard or Analytics.

The capture above shows the timeline-style availability view: coloured free windows per unit row, with the horizon selector in the header.

The second capture illustrates an aggregated availability mode (daily / fortnightly / monthly bar chart), including the view toggle next to the horizon controls.
Multicalendar tab (availability timeline)
Multicalendar pairs with Bookings — Timeline view and Audit module — same-day turnover: Glossary — Same-day turnover. Full pairing matrix: Sales section cross-reference.
The Multicalendar tab uses route /sales/multicalendar. It is a unit × time Gantt in the same family as Bookings → Timeline, but scoped to Sales filters and without rent cells — mid-term bookings, short-term channel blocks, and manual unavailabilities only.
Scale and navigation
- Day / Week / Month — switch the time axis granularity (same control family as Bookings Timeline).
- Today — jump the viewport to the current date.
- Listing axis — infinite scroll loads listing rows in batches as you scroll vertically.
- Booking bar click — opens the booking detail sidebar from Sales without leaving the module.
Filters mirror the Pricing toolbar so you can scope the same portfolio slice on both tabs: Search, Available now / Date range, Number of rooms (min/max on units registered per property, #2151), Select tags, Select listing types, and Select properties (server-driven picker with chips).
- Available now / Date range — Available now keeps listings vacant today (no active booking; manual blocks exclude the row unless Preferences → Vacant Unit Preference is Include manual blocks). Date range opens Start date and End date pickers: with both dates set, only listings free on every day from start through end remain; with only a start date, only listings free on that single day remain. The timeline refetches when dates change (debounced). See the same semantics on Pricing — Toolbar filters.


Multicalendar date-range filter captures refreshed 2026-06-18 01:05 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL VIVIN_DOCS_PROPERTY_SEARCH=AA-11-5D VIVIN_DOCS_DATE_RANGE_CAPTURE=both npx tsx tools/capture-sales-multicalendar-date-range-filter-screenshot.ts).



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

Multicalendar 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-sales-multicalendar-tags-types-toolbar-screenshot.ts). The Pricing tab uses the same Select tags / Select listing types controls — see Toolbar filters and export.

Pricing tab (monthly rent grid)
Pricing grid pairs with Listings — Rent Value tab — respect invoiced floor (rent) before lowering cells. Full pairing matrix: Sales section cross-reference.
The Pricing tab uses route /sales/pricing (the pill label reads Pricing in the English UI). It is the listing × month workspace: each row is a unit, each column is a calendar month, and cells show rent with occupancy blocks (bookings and unavailabilities) drawn behind the prices. Legacy bookmark /sales/calendar redirects to /sales/pricing.


Reading the grid
- Row label (first column) — The sticky left column shows the unit (listing) internal name only (for example
AA-11-5D-R2). Property/building names are not repeated on every row; use Select properties chips, Search, and Select tags when you need building context. - Bookings appear as coloured spans in the month cells (active reservations).
- Manual blocks and other unavailabilities use distinct styling so you can tell them from mid-term stays and short-term/channel blocks.
- Short-term iCal imports (for example Airbnb or Booking.com calendar feeds) use the pink Short-term tint. Hover a block to read dates and a platform label; raw feed text such as
CLOSED - Not availableon Booking.com imports is shown as Booking.com in the tooltip (same normalization as the unit Calendar in Listings). - Rent is shown in each cell; cells without an explicit monthly override still reflect the listing’s configured rent where applicable.
- Custom monthly overrides use the teal rent label; default inherited rent stays neutral grey until you set an explicit month price.
- Recently edited cells (same browser session, after Apply on Edit Price) get a light blue background so you can spot which units and months you just changed before you scroll away or refresh. The highlight is session-only — it clears on a full page reload and does not mean the price is unsaved.
Grid legend
Below the toolbar, a Legend strip decodes occupancy colours, rent anomalies, and the current-day marker on the grid:
| Legend item (English UI) | Meaning |
|---|---|
| Mid-term | Blue-tinted cell background — mid-term stay occupancy in that month. |
| Short-term | Pink-tinted background — short-term or channel-style blocks. |
| Manual block | Amber-tinted background — manual unavailability (not a paid booking). |
| Vacant | White / neutral cell — no booking or block covering that month. |
| Large change vs adjacent months | Amber ring around a rent cell when the month’s price jumps sharply versus neighbouring months on the same row — investigate before publishing or syncing channels. |
| Today | Red vertical line across the grid — current calendar date for orientation when scrolling wide ranges. |
The legend is read-only reference text; it does not filter rows. Large change rings are persistent until rents normalize or you edit the outlier month. Session blue highlights after Edit Price → Apply are separate — they show what you changed in the current browser session only (see Reading the grid above).

Toolbar filters and export
Use the toolbar above the grid to narrow the row set:
- Search — matches tenant, listing, email, property label, and related text on the row.
- Available now / Date range — Available now keeps listings that are vacant today. Date range uses Start date and End date pickers: with both dates set, only listings free on every day from start through end remain; with only a start date, only listings free on that single day remain.


Pricing date-range filter captures refreshed 2026-06-18 01:05 UTC (VIVIN_DOCS_SALES_TAB=pricing VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL VIVIN_DOCS_PROPERTY_SEARCH=AA-11-5D VIVIN_DOCS_DATE_RANGE_CAPTURE=both npx tsx tools/capture-sales-multicalendar-date-range-filter-screenshot.ts).
- Min rent / Max rent — optional € range pill; clear with the control beside the pill when set.
- Number of rooms — optional min / max on how many units (listings) are registered under each property (#2151). Opens a popover like the rent-range pill; invalid min > max shows an inline error. Sent to the listings directory as
minRooms/maxRoomsand pairs with the same filter on Bookings → Other filters → Advanced. - Select tags / Select listing types / Select properties — multi-select chips. Select listing types filters by the same type labels configured under Settings > Categories. Select properties uses a server-driven property picker (search + infinite scroll over properties, not a single upfront list). Use Clear all (when filters are active) to reset search, view, rent range, rooms range, tags, types, and properties in one action. See Glossary — Listing type (filter) and the captures below (Pricing grid) and on the Multicalendar tab (timeline Gantt).



After you pick tags and listing types, removable chips render under the legend strip while the grid refetches:

Pricing 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-sales-pricing-tags-types-toolbar-screenshot.ts).
Select properties uses a server-driven search picker: open the control, type to search property names on the server (debounced), and scroll the menu to load more matches in chunks. Each row shows the internal property code with the address on a second line. Selected properties appear as removable chips in the toolbar.
Export downloads the currently filtered grid as CSV or Excel from the Export split button. Open Export, then choose CSV or Excel (.xlsx). The file reflects search, Available now / date range, rent range, tags, and properties active on the tab — not only the rows currently scrolled into view.
If the export fails, Vivin shows a toast (Failed to export.) — retry after checking filters or connectivity. See Glossary — Export and download failures.

Listing grid loading (infinite scroll)
The Pricing row list is server-paged like Listings and Bookings: the first request loads an initial batch of units, and scrolling near the bottom of the grid fetches the next batch automatically (no Load more button).
- Scroll for more — When you approach the bottom of the pricing grid, the next batch loads. While the request runs, skeleton rows appear at the bottom (listing label plus month cells).
- Filters reset the list — Changing search, Available now, date range, rent range, tags, or properties clears the grid and starts again from the first batch. Export always reflects the full filtered result set, not only rows currently on screen.

Bulk price editing
- Click individual cells, drag to select a rectangle of cells (multiple units and months), or click a month column header to select that month for every listing row currently loaded in the filtered grid.
- When you release the mouse (or after a column-header click), the Edit Price popover opens for the selection. Choose Set price (replace the cell value) or Adjust by (add or subtract euros), enter the amount, and choose Selected cells only or All months (fix price).
- Click Apply to persist; the grid refreshes with updated monthly rents. Use Cancel to discard the selection without saving.
- After a successful Apply, affected cells keep a pale blue tint for the rest of the session so you can audit a bulk pass without re-opening Edit Price.
Column-header selection respects the active Select properties / tag filters and infinite-scroll rows already on screen — narrow the portfolio first when you want a seasonal repricing pass across a subset.


Rent changes made in the Pricing grid apply to future pricing for that unit and month. They do not retroactively change rent on existing bookings that already fixed their rent at creation.
Time-on-axis availability (today vs upcoming)
For a time-on-axis view of bookings and blocks without month rent cells, use one of these surfaces:
- Sales → Multicalendar (
/sales/multicalendar) — portfolio Gantt with Day / Week / Month scale, Sales toolbar filters, and booking-bar click into detail (see Multicalendar tab). - Sales → Overview → Availability over time — per-unit free windows or aggregated bar charts (see Overview tab).
- Bookings → Timeline — dense unit × time Gantt across the whole portfolio when you need the Bookings module context (for example Only bookings toggle and contract workflows).
- Overview — account-level KPIs plus Availability over time charts (aggregated or per-unit free windows).
- Multicalendar (
/sales/multicalendar) — unit × time Gantt without rent cells, scoped to Sales filters; click a booking bar to open booking detail. - Pricing (
/sales/pricing) — month cells with rent and bulk Edit Price workflows. - Bookings Timeline — portfolio Gantt from the Bookings module when you need Bookings-specific toggles and navigation patterns.
Channel Manager
Channels pairs with Settings > Integrations and Listings — Channels tab — imported bookings with unpaid schedules surface payment overdue rows. Full pairing matrix: Sales section cross-reference.
The Channels tab connects Vivin to external booking platforms so availability and pricing stay aligned across marketplaces you enable in account settings.

Connected platforms
The grid lists platforms your account has turned on under Settings > Integrations that also appear as Sales channel columns in the product today: Inlife, Uniplaces, RoomLess (Spacest), Spotahome, Housing Anywhere, the Vivin booking engine, Erasmus Life Lisboa, Airbnb, and Booking.com — only enabled integrations appear as columns you can filter and act on.
Channex, Edu Portugal, Idealista, and Coliving can be enabled under Settings > Integrations and affect bookings, Finance filters, and per-unit Listings > Channels links, but they do not currently render as columns on Sales > Channels. For Channex ARI sync and mapping, see Integrations — Channex; use Listings > Channels (and Vivin support for UUID mapping) rather than this grid.
How calendar synchronization works
When a booking is created in Vivin (manually or imported), the corresponding dates are blocked on other connected channels according to your integration rules. When a booking is created on an external platform and imported into Vivin, those dates are reflected here and blocked elsewhere as configured.
Setting up a new integration
- Go to Settings > Integrations
- Enable the platform and complete its setup (API keys, iCal URLs, or linking flows as guided)
- Return to Sales > Channels to link each unit to its external listing where required
See Integrations for platform-specific steps.
Enabling an integration does not automatically map every unit — you still link listings in Channel Manager (and satisfy each platform’s requirements) before sync is meaningful.
Toolbar filters and export
Above the grid, use Search units, Select properties, and the Filter by platform control (only platforms enabled in Settings > Integrations appear as columns). Export downloads the currently filtered rows as CSV or Excel (vivin-channel-manager-YYYY-MM-DD.csv / .xls). Export failures surface as a toast — see Glossary — Export and download failures.
Search units is debounced (~1 second) and matches the unit’s internal name, property label, tenant or email fields on the row, and stored platform external ids on enabled integrations (for example an Airbnb listing id or Uniplaces external key). Paste an OTA id when you know the link but not the Vivin unit code. Pricing search does not include integration ids — use Channels when you are hunting by marketplace reference.

Filter by platform is a dropdown anchored next to Search units. All shows every enabled platform column; each other option lists a platform name only (no counts in the menu). Pick a platform to narrow the grid to units that have an active link on that marketplace (externalId set — same semantics as a green Connected / View cell).
Column header counts — In the sticky grid header, each platform column shows a small number under the platform name. That figure is how many currently filtered rows have an active integration on that column — it updates when you change Search units, Filter by platform, or Select properties chips. It is not a fixed account-wide total; scope the grid first when you need a building-specific link count.

Column header counts capture re-verified 2026-06-22 01:20 UTC (tools/capture-docs-enrichment-3005.ts).
Select properties uses the same server-driven search picker as Pricing: open the control, type to search buildings on the server, and add one or more properties. Leave the picker empty to include all units in the account.
After you add buildings, removable chips render on a second row directly under the Channels toolbar (internal property name on each chip; × removes one building without clearing Search units or the platform filter). The grid, infinite scroll batches, and Export all respect the scoped property list — changing search, platform filters, or property chips resets pagination from the first batch so rows from a previous filter do not linger on screen.
The open picker menu is the same control as on Pricing (server search + infinite scroll; each row shows internal code and address):

The Channels unit table uses the same infinite scroll pattern as Pricing: an initial batch loads first; scrolling near the bottom fetches more rows with skeleton placeholders while the next page is in flight. Changing search, platform filters, or properties resets the list from the first batch (exports still include every row that matches the filter).

The skeleton row pattern on Channels matches Pricing (listing label plus platform cells); only the column layout differs. If the Channels-specific capture is unavailable in your checkout, the same loading UX appears on Pricing — see the screenshot in Pricing tab (monthly rent grid) above.
Each export row includes:
| Column | Content |
|---|---|
| Unit Name | Listing label (internal name, public name, or listing id) |
| VIVIN iCal | Per-unit outbound iCal feed URL: {your Core API host}/ical-integration/listings/{listingId}/iCal.ics — the same URL pattern you can copy from the grid actions column or when linking a unit in the integration modal |
| Platform columns | One column per enabled integration (for example Airbnb, Booking.com) — Yes / external id when linked, No when not; Excel exports may hyperlink View URLs for Airbnb / Booking.com iCal setups |
Use the VIVIN iCal export column when you need a spreadsheet of subscribe links for OTAs or tools that accept iCal (VRBO, Tripadvisor, custom middleware) without opening every unit in Listings. The feed respects Short-term iCal Max Date and other availability rules configured on the account.
Copy iCal (per row) — The trailing actions column on the on-screen grid holds a Copy iCal control (clipboard icon) for every unit. Click it to copy that row’s outbound feed URL to the clipboard; success and failure surface as toasts (VIVIN iCal link copied / Could not copy the iCal link). The URL is the same {Core API host}/ical-integration/listings/{listingId}/iCal.ics pattern as the export column and the Airbnb / Booking.com wizard step 2 field — use Copy iCal for one-off pastes; use Export when you need many links at once.

Copy iCal column capture refreshed 2026-06-21 19:15 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-sales-channel-copy-ical-column.ts).

When a unit is not linked on a platform, the cell shows No Integration; click View on a connected cell (or the equivalent control on your enabled platforms) to open the per-unit linking dialog without leaving the grid:

Airbnb and Booking.com (iCal two-way setup)
For Airbnb and Booking.com, clicking a No Integration cell opens a dedicated iCal wizard instead of a single URL field. The modal walks through three steps:
| Step | What you do |
|---|---|
| 1 | Paste the platform’s private iCal export URL from their calendar / availability settings, then click Integrate so Vivin stores the inbound feed. |
| 2 | Copy Vivin’s outbound feed URL (…/ical-integration/listings/{listingId}/iCal.ics) and add it on the OTA as an imported calendar (for example named Vivin Calendar). |
| 3 | Click Sync to pull future unavailabilities from the platform calendar into Vivin. While the request runs, the button shows Syncing…; success and failure surface as toasts so you know whether the import finished without closing the modal. |
The in-modal note explains that Vivin imports all unavailabilities from the platform calendar (including manual blocks), so the OTA calendar should only reflect availability you want exported.

After a link exists, clicking the cell again opens manage view: Connected summary, read-only platform iCal link with Copy and Sync, and Delete integration to remove the mapping.
Use Sync in the initial iCal wizard (step 3) and from manage (connected Airbnb / Booking.com cells — read-only platform iCal row with Copy + Sync beside Delete integration) whenever the OTA calendar changed outside Vivin. You do not need to delete and reconnect first. While Sync runs, the button shows Syncing…; success and failure surface as toasts in both views.
Use Sync after you finish step 2, after editing blocks on the OTA, or from manage when you need a fresh import. New bookings created in Vivin still propagate to other channels through the normal integration rules; Sync is for importing blocks and reservations already on the platform feed.
Manual unavailability
When you add manual unavailability on a unit in Listings, those dates are treated like other blocks for availability and, where integrations apply, propagate to external calendars. See Adding Manual Unavailability.
Sales guide subsection index
This index pairs Sales tab sections with Related subsections — use it when availability heatmaps disagree with Dashboard vacant units, Bookings — Timeline, or Analytics KPI charts. Full pairing matrix: Sales section cross-reference.
Sales section cross-reference
Use this table when one Sales tab 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.
Related
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: Sales guide subsection index · Sales section cross-reference. Full hub matrix: Module cross-reference · Modules hub subsection index.
Documentation map & escalation
Documentation-map bullets pair with Introduction — Section cross-reference and FAQ — Section cross-reference. Hub parity: Modules hub — Documentation map & escalation. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Modules hub — Hub pairing matrix across operator workspaces
- Glossary — Term definitions used across sales and availability workflows
Upstream & downstream workflows
Workflow bullets pair with Common Workflows — Workflow cross-reference. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Onboarding a New Property (section cross-reference; Deeper workflow reads; hub) — Channels linking step after Settings integrations are enabled
- Processing a New Booking (section cross-reference; Deeper workflow reads; hub) — First reservation after pricing and channel linking
- Cancelling a Booking (section cross-reference; Deeper workflow reads; hub) — Verify availability on Overview after a reservation is canceled
- Managing a Check-out & Deposit Refund (section cross-reference; Deeper workflow reads; hub) — Multicalendar overlap checks before same-day turnover departures
- Entering Monthly Utility Bills (section cross-reference; Deeper workflow reads; hub) — Monthly supplier bills after occupancy dips on Overview heatmaps
- Portfolio KPI review (section cross-reference; Deeper workflow reads; hub) — Reconcile Sales heatmaps with Analytics and Dashboard occupancy signals
- Handling a Late Payment — Step 1 (section cross-reference; Deeper workflow reads; hub) — Collections on channel-imported bookings with unpaid schedules; upstream path from Notifications — Payment overdue alerts
- Manual block hygiene (workflow) (section cross-reference; Deeper workflow reads; hub) — Audit pass when Multicalendar shows unexpected holds
Deeper workflow reads
Workflow reads pair with Common Workflows hub subsection index and Workflow cross-reference. Each workflow sub-guide reciprocates with [Deeper workflow reads](../modules/sales/index.md#deeper-workflow-reads) anchors on Module documentation hubs bullets — hub parity: Modules hub — Deeper workflow reads. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Onboarding a New Property — Channels linking after Settings integrations in Step 5 (section cross-reference; Deeper API reads; hub)
- Processing a New Booking — Multicalendar overlap checks on the first reservation (section cross-reference; Deeper API reads; hub)
- Portfolio KPI review — Reconcile Overview heatmaps with Analytics and Dashboard in Step 7 (section cross-reference; Deeper API reads; hub)
- Manual block hygiene — Audit when Multicalendar shows unexpected holds (section cross-reference; Deeper API reads; hub)
- Managing a Check-out & Deposit Refund — Multicalendar overlap before same-day turnover departures (section cross-reference; Deeper API reads; hub)
- Cancelling a Booking — Verify availability on Overview after a reservation is canceled (section cross-reference; Deeper API reads; hub)
- Handling a Late Payment — Channel-imported bookings with unpaid schedules from Channels tab (section cross-reference; Deeper API reads; hub)
- Entering Monthly Utility Bills — Occupancy dips on Overview heatmaps after monthly bill ingestion (section cross-reference; Deeper API reads; hub)
Settings that shape Sales
Settings bullets pair with Account Settings — Tab cross-reference. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Settings > Integrations — Enable platforms before the Channels tab can link units
- Settings > Categories — Listing tags and types used by Select tags / Select listing types filters
- Settings > Tenant categories — Segment definitions when Step 6 weak metrics tie to tenant profile, not listing type — pair with Bookings — Other filters tenant category and Finance — Tenant category filter
- Settings > Preferences — In-app notifications — Account-wide channel or booking alerts before you triage
/notifications - Settings > Emails — Lifecycle and payment Communication Rules for channel-imported reservations
Deeper concept reads
Concept reads pair with Concepts hub subsection index and Concept cross-reference. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Integrations & Distribution — Distribution, booking engine, and calendar strategy (section cross-reference; hub)
- Tenant Portal — Where tenants pay and view schedules for units you price here (section cross-reference; hub)
- FAQ — Tenant contract signing blocked — No PDF yet, mandatory Your Details gates, category locks, or Lease purpose; portal signing vs paper upload on Contract Info
- Payment Allocation — Two-layer receipts, invoiced-floor rent edits, and credit note reject/revert warnings (section cross-reference; hub)
- Booking Lifecycle — Computed Upcoming → Ongoing → Ended / Canceled status model, list filters, and Timeline (section cross-reference; hub)
Operator modules (pairing surfaces)
Module hub bullets pair with Modules — Module cross-reference. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Bookings — Timeline view — Bookings-module Gantt with Only bookings and rent cells (complements Multicalendar)
- Dashboard — Account-wide KPIs not duplicated on the Sales Overview strip
- Finance — Payments, deposits, and receivables detail
- Listings — Property and unit setup, rent defaults, and manual unavailability
- Audit — Cross-portfolio manual blocks when heatmaps show unexpected unavailability
- Audit — Discounts tab — Cross-portfolio discounted rents when Overview heatmaps dip after rate changes
- Analytics (KPI workspace) — Portfolio Revenue, Occupancy, ADR, and RevPAR trends (complements Sales Overview heatmaps)
- Notifications module — Full
/notificationshistory when channel imports trigger payment or booking alerts - Notifications — Payment overdue alerts — Operator Payments category rows when imported reservations have unpaid schedules
- Property & listing details (booking engine) — Rich copy and amenities partners ingest from full feeds after you price here
Navigation & bookmarks
Bookmark routes pair with Management Frontend Deep Links and Create New menu. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Create New menu — Quick path to Unit setup when a channel row needs linking
- FAQ — Permission denied toast — Red You do not have permission to perform this action. toast when RBAC blocks a save; fix in Users → Role Permissions
Lockout catch-up after password recovery
Operational backlog after sign-in recovery pairs with Resetting a Management User Password — Step 3. Hub parity: Common Workflows — Lockout catch-up after password recovery. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Common Workflows — Lockout catch-up after password recovery — Hub matrix when sign-in was restored and channel linking or pricing grids were delayed
- Getting Started — Lockout catch-up after password recovery — Canonical operational backlog mesh
- Channel Manager — Reconcile stale channel rows after lockout-delayed credential setup
- Notification triage — Clear integration alerts before multicalendar review
- Pending manual receipt approval — Occupancy heatmaps may disagree with Finance until Pending receipts clear
Pending manual receipt approval
Receipt approval pairs with Finance — Pending manual payments and Bookings — Transactions tab. Hub parity: Common Workflows — Pending manual receipt approval. Full pairing matrix: Sales section cross-reference · Module cross-reference.
-
Common Workflows — Pending manual receipt approval — Hub matrix when Overview KPIs lag until Approve payments confirms recorded transfers on channel bookings
-
Finance — Pending manual payments — Amber Pending chip on Finance → Transactions
-
Overview tab — Occupancy and Today KPIs that may not refresh until pending receipts are approved
-
Bookings — Transactions tab — Per-row Approve payment on imported reservations
-
Portfolio KPI review — Step 7 — Reconcile Sales grids with Dashboard after pending clearance
-
FAQ — Pending manual receipt approval hub — Symptom table for Approve payments / amber Pending
Reject/revert mistaken receipts
Receipt cleanup pairs with Finance — Row actions on in-payment rows and Bookings — Row actions on in-payment rows. Hub parity: Common Workflows — Reject/revert mistaken receipts. Full pairing matrix: Sales section cross-reference · Module cross-reference.
-
Common Workflows — Reject/revert mistaken receipts — Hub matrix when duplicate channel receipts inflated occupancy-linked debt before cleanup
-
Finance — Row actions on in-payment rows — Portfolio reject/revert after Sales KPI triage
-
Payment Allocation — Correcting mistaken receipts — Two-layer model and credit note follow-up
-
Pricing tab (monthly rent grid) — Reconcile rent edits after mistaken receipt cleanup on invoiced months
-
Portfolio KPI review — Month-end reconciliation when Sales and Finance disagree after receipt cleanup
-
FAQ — Reject/revert mistaken receipts hub — Symptom table for Reject / Revert / Issue credit notes
Check-out ledger cleanup before refund
Duplicate-transfer cleanup pairs with Reject/revert mistaken receipts and Managing a Check-out. Hub parity: Common Workflows — Check-out ledger cleanup before refund. Full pairing matrix: Sales section cross-reference · Module cross-reference.
-
Common Workflows — Check-out ledger cleanup before refund — Hub matrix when channel booking duplicate receipts inflate occupancy-linked debt before refund week
-
Reject/revert mistaken receipts — Reject / Revert duplicate before Ready To Refund
-
Managing a Check-out — Step 6 — Canonical departure-week duplicate cleanup before refund
-
Common Workflows — Check-out collections before refund — Real arrears contrast (tenant did not pay)
-
Finance — Transactions Tab — Revert duplicate on channel bookings
-
Managing a Check-out — Departure settlement on OTA bookings
-
FAQ — Check-out ledger cleanup before refund hub — Symptom table for phantom In Debt / Ready To Refund blocked when tenant paid once
Utility overage collections
Occupancy KPIs stay high while utility overage In Debt accumulates after bill posting — pair Multicalendar review with Finance collections. Hub parity: Common Workflows — Utility overage collections. Full pairing matrix: Sales section cross-reference · Module cross-reference.
-
Common Workflows — Utility overage collections — Hub matrix when channel bookings carry utility overage In Debt after monthly bill cycle
-
Portfolio KPI review — Step 7 — Month-end overage arrears sign-off with Sales occupancy
-
Finance — Contract Values tab — In Debt drill-down after Multicalendar review
-
Entering Monthly Utility Bills — Step 4 — Upstream posting before collections
-
Handling a Late Payment — Step 1 — Collections after overage posts
-
FAQ — Utility overage collections hub — Symptom table for unpaid utility overage on Payment Plan after bill posting
Cancellation collections before void
Pre-cancel arrears on channel bookings pair with Cancelling a Booking and Handling a Late Payment. Hub parity: Common Workflows — Cancellation collections before void. Full pairing matrix: Sales section cross-reference · Module cross-reference.
-
Common Workflows — Cancellation collections before void — Hub matrix when channel booking pre-cancel arrears block policy void before Multicalendar frees nights
-
Cancelling a Booking — Step 2 — Settle OTA booking before Step 4
-
Handling a Late Payment — Steps 1–4 — Collections on channel imports
-
Finance — Transactions Tab — Approve settlement before void
-
Common Workflows — Check-out collections before refund — Departure-week contrast
-
FAQ — Cancellation collections before void hub — Symptom table for In Debt blocking Cancel booking until Payment Plan settles
Check-out collections before refund
Channel booking departure-week arrears pair with Managing a Check-out and Handling a Late Payment. Hub parity: Common Workflows — Check-out collections before refund. Full pairing matrix: Sales section cross-reference · Module cross-reference.
-
Common Workflows — Check-out collections before refund — Hub matrix when channel booking departure-week arrears block Ready To Refund
-
Managing a Check-out — Step 6 — Settlement before Multicalendar frees nights
-
Handling a Late Payment — Steps 1–4 — Collections on channel imports
-
Finance — Transactions Tab — Approve departure-week receipts
-
Multicalendar tab — Availability after settlement and refund
-
Common Workflows — Check-out ledger cleanup before refund — Duplicate channel receipt contrast
-
Common Workflows — Cancellation collections before void — Pre-cancel void contrast
-
FAQ — Check-out collections before refund hub — Symptom table for rent/fee In Debt blocking Ready To Refund before deposit release
Handling a Late Payment collections
Channel-import bookings with unpaid schedules pair with Handling a Late Payment after Finance debt receivables triage. Hub parity: Common Workflows — Handling a Late Payment collections hub. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Common Workflows — Handling a Late Payment collections hub — Hub matrix when channel booking receivables need collections Steps 1–6 (
finance-overview-income-chart-debt-aging.png,bookings-detail-payment-plan-tab-schedule.png) - Bookings — Payment Plan tab — Channel-import schedules behind arrears
- Finance debt receivables triage — Top debtors for channel-sourced debt
- Handling a Late Payment — Steps 1–4 — Collections on OTA-import arrears
- Processing a New Booking — Unpaid confirmation on Upcoming imports
- Pending manual receipt approval — Pending on channel settlement transfers
- Common Workflows — Cancellation collections before void — Pre-cancel void on channel bookings
- FAQ — Handling a Late Payment collections hub — Symptom table for triage surface → collections step pairing
Check-out vs cancellation
Channel-import departures on Multicalendar need lifecycle exit routing — policy void → Cancelling a Booking frees availability via Canceled status; completed stay → Managing a Check-out Ended. Hub parity: Common Workflows — Check-out vs cancellation. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Common Workflows — Check-out vs cancellation — Hub matrix: channel booking exit routing (
sales-multicalendar-week-view.png,bookings-list-canceled-tab.png) - Multicalendar tab (availability timeline) — Calendar bars after Canceled vs Ended
- Manual block hygiene — Stale holds after either exit path
- Managing a Check-out — Step 7 — Completed channel stay closure
- Cancelling a Booking — Step 5 — Availability restore after policy void
- Bookings — Check-out vs cancellation — Reservation sidebar status filters
- FAQ — Check-out vs cancellation — Symptom table for lifecycle exit routing
Deposit missing on Finance Deposits
Channel-import departures on Multicalendar do not show deposit portfolio rows — cross-check Finance → Deposits and clear toolbar date range when booking Deposit tab data exists but lifecycle cards are empty. Hub parity: Common Workflows — Deposit missing on Finance Deposits. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Common Workflows — Deposit missing on Finance Deposits — Hub matrix (
sales-multicalendar-week-view.png,finance-deposits-date-range-clear-flow.mp4) - Multicalendar tab (availability timeline) — Departure bars before Finance deposit triage
- Bookings — Deposit tab — Per-booking deposit vs portfolio row
- Managing a Check-out — Deposit missing on Finance Deposits — Step 5 refund triage after clearing range
- Portfolio KPI review — Deposit missing on Finance Deposits — Month-end sign-off at Step 7
- FAQ — Deposit missing on Finance Deposits — Symptom table for toolbar date range triage
Notification row-click navigation
Channel-import /notifications row-click usually lands on Bookings first — open Channel Manager or Multicalendar tab when the alert cites availability or linking gaps after you verify booking context. Hub parity: Common Workflows — Notification row-click navigation. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Common Workflows — Notification row-click navigation — Hub matrix (
notifications-row-navigate-to-booking-detail.png,notifications-row-navigation-flow.mp4) - Notifications module — Notification row-click navigation — Canonical
/notificationsrow-click pairing - Dashboard — Notification row-click navigation — Bell General vs full
/notificationsrow-click - Bookings — Notification row-click navigation — Booking sidebar when alert carries
bookingId - Tenants — Notification row-click navigation — Tenant profile when alert carries
tenantId - Listings — Notification row-click navigation — Property or unit sidebar when alert carries
listingIdorpropertyId - Operations — Notification row-click navigation — Turnover-week alerts that row-click into Bookings first
- Utilities — Notification row-click navigation — Overage payment overdue alerts after bill cycle
- Inbox — Notification row-click navigation — Bell Inbox
linkdeep-link vs General row-click - Analytics — Notification row-click navigation — Month-range KPI charts after row-click opens booking context
- AI Chat — Notification row-click navigation — Verify assistant-cited alerts by row-click before Overview reconciliation
- Audit — Notification row-click navigation — Discounts / Manual Blocks month-end review after row-click
- Legacy
/propertiesURLs — Notification row-click navigation — Legacy bookmarks that land in Listings during alert triage - Booking engine details — Notification row-click navigation — Engine-sourced alerts before Full integration payload edits
- Channel Manager — Per-unit linking after channel-import alert row-click
- Multicalendar tab — Availability timeline after booking-context verify
- Notification triage — Step 4 — Row-click before Step 5
- Payment alert to receivables triage — Ongoing/Ended payment overdue row-click
- Confirmation alert triage — Upcoming Booking created / Payment received row-click
- Portfolio KPI review — Step 7 — Reconcile Sales grids after alert triage
- FAQ — Notification row-click navigation — Target field order (
link,bookingId,tenantId,listingId,propertyId)
Payment alert to receivables triage
Channel-imported reservations with unpaid schedules surface payment overdue rows — row-click into Bookings and finish Handling a Late Payment — Step 1 before you lower Pricing or treat Overview occupancy dips as availability gaps. Hub parity: Common Workflows — Payment alert to receivables triage. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Common Workflows — Payment alert to receivables triage — Hub matrix (
notifications-row-navigate-to-booking-detail.png,notifications-row-navigation-flow.mp4,finance-overview-debt-aging-walkthrough-flow.mp4) - Notifications module — Payment alert to receivables triage — Payments category row-click entry
- Dashboard — Payment alert to receivables triage — Total Debt KPI after alert row-click
- Bookings — Payment alert to receivables triage — Payment Plan / Transactions on opened booking
- Finance — Payment alert to receivables triage — Overview → Debt Aging after single-booking triage
- Tenants — Payment alert to receivables triage — With Debt cross-check on tenant profile
- Listings — Payment alert to receivables triage — Property Payments Active portal charges on listing bookings
- Operations — Payment alert to receivables triage — Unpaid move-in lines before key handover
- Utilities — Payment alert to receivables triage — Utility overage lines behind overdue alerts
- Inbox — Payment alert to receivables triage — payment overdue on General before WhatsApp chase
- Analytics — Payment alert to receivables triage — Revenue trend may lag until receivables clear
- AI Chat — Payment alert to receivables triage — Validate assistant debt answers after receivables triage
- Audit — Payment alert to receivables triage — Discounts review when receivables lag behind goodwill lines
- Legacy
/propertiesURLs — Payment alert to receivables triage — Collections on bookings tied to redirected properties - Booking engine details — Payment alert to receivables triage — Engine-sourced schedules behind overdue alerts
- Overview tab — Occupancy KPIs that may lag until receivables clear
- Pricing tab (monthly rent grid) — Avoid rent cuts while debt from imports remains open
- Notification row-click navigation — Row-click on
/notificationsbefore KPI read - Pending manual receipt approval — Amber Pending before collections sign-off
- Confirmation alert triage — Contrast Upcoming vs Ongoing/Ended alerts
- Handling a Late Payment — Step 1 — Canonical receivables triage on channel imports
- Portfolio KPI review — Step 7 — Reconcile Sales with Dashboard after triage
- FAQ — Payment alert to receivables triage — Alert-type contrast table
- FAQ — Payment alert to receivables triage hub — Channel-import schedules behind overdue alerts symptom table
Finance debt receivables triage
Channel-import booking schedules may inflate receivables until you finish alert triage and open Finance → Overview → Debt Aging. Hub parity: Common Workflows — Finance debt receivables triage. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Common Workflows — Finance debt receivables triage — Hub matrix (
finance-overview-income-chart-debt-aging.png,finance-overview-debt-aging-walkthrough-flow.mp4) - Payment alert to receivables triage — Single-booking alert triage before portfolio surfaces
- Finance — Finance debt receivables triage — Debt Aging Top debtors canonical surface
- Pending manual receipt approval — Clear amber Pending before Top debtors sign-off
- Dashboard — Finance debt receivables triage — Total Debt headline vs Finance drill-down
- Bookings — Finance debt receivables triage — Payment Plan on opened booking
- Handling a Late Payment — Finance debt receivables triage — Debt Aging on Step 1 before outreach
- Portfolio KPI review — Finance debt receivables triage — Month-end Top debtors on Step 7
- FAQ — Finance debt receivables triage hub — Symptom table for four-surface triage
- Overview tab — Channel KPIs that lag behind cleared receivables
- Channel Manager — Import schedules behind overdue alerts
Finance Income status drill-down
Channel-import schedules may inflate Scheduled segments — reconcile Income chart before month-end Top debtors sign-off. Hub parity: Common Workflows — Finance Income status drill-down. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Common Workflows — Finance Income status drill-down — Hub matrix (
finance-overview-income-status-in-debt-modal.png,finance-overview-income-drill-down-flow.mp4) - Finance debt receivables triage — Debt Aging Top debtors when payment-line modal is not enough
- Finance — Income status drill-down — Stacked Income chart canonical surface
- FAQ — Finance Income status drill-down hub — Symptom table for segment vs Debt Aging
- FAQ — Finance Income status drill-down — Paid / Scheduled / In debt segment-click habit
- Portfolio KPI review — Finance Income status drill-down — Month-end Income reconciliation on Step 7
- Sales — Finance debt receivables triage — Channel-import schedules behind high receivables
- Portfolio KPI review — Finance Income status drill-down — Month-end segment reconciliation on Step 7
Cash flow forecast drill-down
Channel-import collections may lag Income → Paid — reconcile Cash flow forecast All payments before month-end sign-off. Hub parity: Common Workflows — Cash flow forecast drill-down. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Common Workflows — Cash flow forecast drill-down — Hub matrix (
finance-overview-cash-flow-all-payments-modal.png,finance-overview-cash-flow-day-view.png,finance-overview-cash-flow-drill-down-flow.mp4) - Finance Income status drill-down — Paid / Scheduled / In debt segments — not collections history
- Finance — Income chart and cash flow forecast — Canonical Cash flow forecast chart surface
- FAQ — Cash flow forecast drill-down hub — Symptom table for collections vs Income / Dashboard
- FAQ — Cash flow forecast drill-down — Month / Day bar-click habit
- Portfolio KPI review — Cash flow forecast drill-down — Month-end collections reconciliation on Step 7
- Channel Manager — Import schedules behind collections timing
- Sales — Finance debt receivables triage — Channel-import schedules behind high receivables
Confirmation alert triage
Upcoming Booking created / Payment received alerts on channel-linked units row-click into Bookings — finish Processing a New Booking — Step 5b and verify Channel Manager linking before you bulk-clear /notifications during import bursts. Hub parity: Common Workflows — Confirmation alert triage. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Common Workflows — Confirmation alert triage — Hub matrix (
notifications-row-navigation-flow.mp4) - Notifications module — Confirmation alert triage — Canonical inbox pairing
- Bookings — Confirmation alert triage — Transactions / Contract Info on Upcoming imports
- Dashboard — Confirmation alert triage — Post-login Upcoming alert backlog on bell
- Tenants — Confirmation alert triage — Tenant Info / Category on confirmation-week clusters
- Listings — Confirmation alert triage — Channel import bookings on go-live properties
- Operations — Confirmation alert triage — Turnover prep after confirmation receipts approved
- Utilities — Confirmation alert triage — First bill cycle after go-live alerts
- Inbox — Confirmation alert triage — WhatsApp thread after Payment received row-click
- Analytics — Confirmation alert triage — Upcoming alerts during month-end KPI review
- AI Chat — Confirmation alert triage — Assistant-cited confirmation backlog before bulk mark-read
- Audit — Confirmation alert triage — Month-end Discounts review after confirmation receipts approved
- Legacy
/propertiesURLs — Confirmation alert triage — First alerts after legacy redirects land in Listings - Booking engine details — Confirmation alert triage — White-label Upcoming alerts before payload sync
- Channel Manager — Per-unit linking for first import bookings
- Multicalendar tab — Verify availability bars after confirmation triage
- Notification row-click navigation — Row-click on
/notificationsbefore mark-read - Payment alert to receivables triage — Contrast Upcoming vs Ongoing/Ended payment overdue
- Pending manual receipt approval — Payment received alert until Approve payments
- Processing a New Booking — Step 5b / Step 6 — Canonical confirmation gates
- Onboarding a New Property — Confirmation alert triage — First confirmation alerts on go-live (Step 7)
- Notification triage — Confirmation alert triage — Steps 4 / 5 path
- FAQ — Confirmation alert triage — Alert-type table and bulk mark-read guard
- FAQ — Confirmation alert triage hub — Channel-import Upcoming alerts before Channels linking symptom table
New inventory to first booking handoff
Channel-linked go-live inventory pairs Onboarding a New Property — Step 5 and Step 7 Multicalendar tab verify before Processing a New Booking — Step 1 on first channel import. Hub parity: Common Workflows — New inventory to first booking handoff. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Multicalendar tab — Overlap check before first import
- Channel Manager — Platform links before first channel row arrives
- Listings — New inventory to first booking handoff — Portfolio verify after property wizard
- Bookings — New inventory to first booking handoff — First Upcoming on new inventory
- Onboarding a New Property — Step 7 — Upstream go-live Multicalendar pass
- Processing a New Booking — Step 1 — Duplicate check before Add booking
- Common Workflows — New inventory to first booking handoff — Hub matrix (
listings-module-overview.png,bookings-add-booking-modal.png,workflows-onboarding-property-wizard.mp4) - Confirmation alert triage — Channel-import Upcoming alerts
- Property setup to first arrival handoff — Downstream arrival week
- FAQ — New inventory to first booking handoff — Symptom table for property wizard → first reservation
Property setup to first arrival handoff
Channel-linked go-live inventory pairs with Onboarding a New Property — Step 5 and Step 7 Multicalendar tab verify before Managing a Check-in — Step 1. Hub parity: Common Workflows — Property setup to first arrival handoff. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Multicalendar tab — First reservation overlap check on new inventory
- Channel Manager — Platform links before first channel import arrives
- Listings — Property setup to first arrival handoff — Portfolio verify after property wizard
- Onboarding a New Property — Step 7 — Upstream go-live Multicalendar pass
- Managing a Check-in — Step 1 — Downstream arrival-week entry
- Common Workflows — Property setup to first arrival handoff — Hub matrix (
listings-property-edit-access-lockers-tab.png,workflows-operations-check-in-out-planning-view.png,workflows-onboarding-property-wizard.mp4) - FAQ — Property setup to first arrival handoff — Symptom table for go-live → first arrival week
Confirmation to check-in handoff
Channel-import Upcoming reservations need Processing a New Booking — Step 6 portal gates before Multicalendar turnover overlap checks (~7 days out). Hub parity: Common Workflows — Confirmation to check-in handoff. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Multicalendar tab (availability timeline) — Overlap check after confirmation closes
- Confirmation alert triage — Channel-import Upcoming alerts before Channels linking
- Bookings — Confirmation to check-in handoff — Contract Info portal gates on Upcoming imports
- Processing a New Booking — Step 1 — Duplicate/overlap check on shared units
- Common Workflows — Confirmation to check-in handoff — Hub matrix (
bookings-detail-contract-method-of-payments.png,workflows-operations-check-in-out-planning-view.png,booking-lifecycle-status-tabs-flow.mp4) - Managing a Check-in — Step 1 — Downstream arrival-week entry (~7 days out)
- Pending manual receipt approval — Step 5b confirmation receipts before handoff
- FAQ — Confirmation to check-in handoff — Symptom table for Upcoming → arrival week
Check-in to check-out handoff
Channel Ongoing bookings on Multicalendar entering departure week need Managing a Check-out — Step 1 — distinct from channel Upcoming overlap checks in Confirmation to check-in handoff. Hub parity: Common Workflows — Check-in to check-out handoff. Full pairing matrix: sales-section-cross-reference · Module cross-reference.
- Multicalendar tab (availability timeline) — Departure-week turnover overlap on Ongoing channel rows
- Bookings — Check-in to check-out handoff — Channel booking departure planning
- Operations — Check-in to check-out handoff — Check-outs pill for channel departures
- Managing a Check-in — Step 4 — Upstream keys handed over
- Managing a Check-out — Step 1 — Downstream departure-week entry
- Common Workflows — Same-day turnover coordination — Channel same-day overlap
- Common Workflows — Check-in to check-out handoff — Hub matrix (
operations-check-in-out-check-outs-next-7-days.png,bookings-timeline-view.png) - FAQ — Check-in to check-out handoff — Symptom table for Ongoing → departure week
Check-out final utilities handoff
Channel bookings entering departure week on Multicalendar need final utility overage settlement before Managing a Check-out — Step 6 — distinct from occupancy-only Multicalendar review. Hub parity: Common Workflows — Check-out final utilities handoff. Full pairing matrix: sales-section-cross-reference · Module cross-reference.
- Multicalendar tab (availability timeline) — Channel departure-week turnover with utility settlement backlog
- Portfolio KPI review — Step 7 — Month-end Missing + departure utility sign-off with Sales occupancy
- Bookings — Check-out final utilities handoff — Channel booking Payment Plan overage lines
- Utilities — Check-out final utilities handoff — Canonical bill posting upstream
- Entering Monthly Utility Bills — Step 4 — Upstream overage posting verification
- Managing a Check-out — Step 6 — Settlement before deposit release
- Common Workflows — Check-out final utilities handoff — Hub matrix (
utilities-allocations-review-flow.mp4,analytics-kpi-occupancy-tab.png) - FAQ — Check-out final utilities handoff — Symptom table for final utility overage blocking refund
WhatsApp per-booking messaging
Channel-import tenant message backlog pairs with Bookings → Communication during Multicalendar review — bell Inbox alone lacks channel booking context. Hub parity: Glossary — WhatsApp per-booking messaging hub · Common Workflows — WhatsApp per-booking messaging. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Common Workflows — WhatsApp per-booking messaging — Hub matrix (
bookings-detail-communication-tab-whatsapp-thread.png,inbox-module-overview.png,inbox-module-triage-flow.mp4) - Glossary — WhatsApp per-booking messaging hub — Surface table + per-guide/module mesh reciprocal hub
- Dashboard — WhatsApp per-booking messaging — Bell Inbox sub-tab vs General on post-login scan
- Notifications — WhatsApp per-booking messaging — Canonical
/notificationsmessage alert rows - Bookings — WhatsApp per-booking messaging — Communication tab composer with Payment Plan context
- Inbox — WhatsApp per-booking messaging — Cross-booking triage and bell Inbox sub-tab
- Tenants — WhatsApp per-booking messaging — Tenant profile after Inbox name click
- Finance — WhatsApp per-booking messaging — Collections outreach with Transactions visible
- Operations — WhatsApp per-booking messaging — Maintenance ticket threads on Communication
- Listings — WhatsApp per-booking messaging — Go-live property tenant threads after channel import
- Utilities — WhatsApp per-booking messaging — Utility overage bill questions on Communication
- Analytics — WhatsApp per-booking messaging — Month-end message backlog during KPI review
- AI Chat — WhatsApp per-booking messaging — Assistant-cited threads before operational follow-up
- Audit — WhatsApp per-booking messaging — Month-end communication review after Discounts audit
- Legacy
/propertiesURLs — WhatsApp per-booking messaging — Legacy bookmarks during message triage - Booking engine details — WhatsApp per-booking messaging — Engine-sourced tenant threads before payload sync
- Connected platforms — Channel import bookings that generate tenant threads
- Notification row-click navigation — Channel-import alerts before Multicalendar review
- Common Workflows — Notification row-click navigation —
New WhatsApp message from …on/notificationsvs bell Inbox - Notification triage — WhatsApp per-booking messaging — Message pings on bell Inbox /
/notifications - Handling a Late Payment — WhatsApp per-booking messaging — Collections outreach on Step 3
- Managing a Check-in — WhatsApp per-booking messaging — Arrival-week threads before Step 4
- Managing a Check-out — WhatsApp per-booking messaging — Departure settlement on Step 6
- Processing a New Booking — WhatsApp per-booking messaging — Confirmation follow-up on Step 6
- Cancelling a Booking — WhatsApp per-booking messaging — Void outreach before Step 4
- Entering Monthly Utility Bills — WhatsApp per-booking messaging — Overage bill questions on Step 4
- Portfolio KPI review — WhatsApp per-booking messaging — Month-end message backlog on Step 7
- Manual block hygiene — WhatsApp per-booking messaging — Blocked-date questions on Step 3
- Onboarding a New Property — WhatsApp per-booking messaging — First tenant threads on Step 7 go-live
- Using in-app support — WhatsApp per-booking messaging — Self-serve Inbox / Communication before filing
- Resetting a Management User Password — WhatsApp per-booking messaging — Lockout-delayed bell Inbox after Step 3
- FAQ — WhatsApp per-booking messaging hub — Channel-import tenant message backlog during Multicalendar review symptom table
Bot reasoning (audit)
Channel-import bot backlog during Multicalendar review. Hub parity: Glossary — Bot reasoning (audit) hub · Common Workflows — Bot reasoning (audit). Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Common Workflows — Bot reasoning (audit) — Hub matrix (
bookings-detail-communication-tab-bot-reasoning-expanded.png) - Glossary — Bot reasoning (audit) hub — Surface table + per-guide/module mesh reciprocal hub
- Bookings — Bot reasoning (audit) — Canonical Communication Reasoning control
- ChatBot settings — Read-only audit vs editable persona / IF/THEN
ChatBot settings
Account Settings → ChatBot pairs with Communication thread review — channel-import bot backlog during multicalendar review. Hub parity: Glossary — ChatBot settings hub · Common Workflows — ChatBot settings. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Common Workflows — ChatBot settings — Hub matrix (
settings-chatbot-tab-overview.png,settings-chatbot-status-bot-connected.png,settings-chatbot-save-rule-flow.mp4) - Glossary — ChatBot settings hub — Surface table + per-guide/module mesh reciprocal hub
- ChatBot settings — Persona, IF/THEN rules, Status Bot pairing
- Glossary — Bot reasoning (audit) hub — Thread audit after rule changes
Rent reduction after invoicing
Multicalendar review during rate changes may surface live bookings where Change monthly rent is blocked by exported invoice totals — repricing starts on Bookings → Contract Info, not the calendar grid. Pair Bulk Hostkit invoicing for Issue credit notes (N). Hub parity: Common Workflows — Rent reduction after invoicing. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Common Workflows — Rent reduction after invoicing — Hub matrix (
bookings-detail-change-monthly-rent-modal.png,bookings-rent-reduction-invoiced-floor-flow.mp4) - Bookings — Changing contract dates and rent — Contract Info repricing entry point
- Bookings — Contract Values tab — Per-line Edit amount under the same floor
- Finance — Invoiced floor and rent edits — Why edits start on the booking, not Finance → Transactions
- Multicalendar tab — Availability vs booking-sidebar repricing
- Processing a New Booking — Rent reduction after invoicing — Confirmation month already invoiced on Step 3
- Handling a Late Payment — Rent reduction after invoicing — Collections goodwill after Step 4
- Portfolio KPI review — Rent reduction after invoicing — Month-end repricing sign-off on Step 7
- Cancelling a Booking — Rent reduction after invoicing — Settlement repricing during Step 2b
- Managing a Check-in — Rent reduction after invoicing — Pre-move-in goodwill
- Managing a Check-out — Rent reduction after invoicing — Departure-week goodwill adjustments
- Notification triage — Rent reduction after invoicing — Row-click to invoiced booking on Step 4
- Entering Monthly Utility Bills — Rent reduction after invoicing — Month-end bill cycle on Step 5
- Manual block hygiene — Rent reduction after invoicing — Hold cleanup on Step 5
- Using in-app support — Rent reduction after invoicing — Self-serve before filing tickets
- Resetting a Management User Password — Rent reduction after invoicing — Lockout-delayed repricing after Step 3
- FAQ — Rent reduction after invoicing hub — Multicalendar review surfacing invoiced-floor repricing blocks symptom table
Same-day turnover coordination
Multicalendar Week scale on one unit row confirms departure and arrival bars on the same calendar day — pair with hub Common Workflows — Same-day turnover coordination before you treat overlap as a duplicate import or lower Pricing. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Common Workflows — Same-day turnover coordination — Hub matrix (
sales-multicalendar-tab.png,bookings-timeline-day-week-month-and-sidebar.mp4) - Multicalendar tab — Sales-scoped overlap without rent cells
- Bookings — Timeline view — Operator Gantt with rent cells
- Operations — Check-in & Check-out — Next 7 days week lists entry
- FAQ — Same-day turnovers — Visual overlap step in numbered habit
- Glossary — Same-day turnover — Distinct from channel double-book
- Cancelling a Booking — Same-day turnover coordination — Incoming Upcoming import on freed unit after Step 5
- Entering Monthly Utility Bills — Same-day turnover coordination — Departure-week final overages on turnover units during Step 4
- Manual block hygiene — Same-day turnover coordination — Timeline overlap after Step 4 hold cleanup
- Notification triage — Same-day turnover coordination — Arrival/access alerts on turnover week via Step 4
- Portfolio KPI review — Same-day turnover coordination — Multicalendar turnover gaps on Step 7 sign-off
- Resetting a Management User Password — Same-day turnover coordination — Lockout-delayed turnover ticket catch-up after Step 3
- Using in-app support — Same-day turnover coordination — Turnover coordination blocked — New Support Ticket modal
- Handling a Late Payment — Same-day turnover coordination — Outgoing In Debt vs incoming move-in on Step 1
Occupancy KPI to block hygiene handoff
Multicalendar mystery blocks without a rate change pair with hub Common Workflows — Occupancy KPI to block hygiene handoff before Pricing edits — upstream Portfolio KPI review — Step 3 surfaces the dip. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Common Workflows — Occupancy KPI to block hygiene handoff — Hub matrix (
sales-multicalendar-tab.png,audit-manual-blocks-filter-scroll.mp4) - Multicalendar tab — Availability timeline without rent cells
- Manual block hygiene — Step 4 — Per-unit hold edit after row-click
- Portfolio KPI review — Step 7 — Post-hygiene Dashboard reconciliation
- Glossary — Manual unavailability (manual block) — Hold vocabulary
- Managing a Check-in — Occupancy KPI to block hygiene handoff — Timeline overlap from stale holds on Step 1
- Managing a Check-out — Occupancy KPI to block hygiene handoff — Calendar bars persist after Step 7
- Cancelling a Booking — Occupancy KPI to block hygiene handoff — Availability not restored on Step 5
- Entering Monthly Utility Bills — Occupancy KPI to block hygiene handoff — Dashboard vs Analytics vacancy mismatch on Step 5
- Notification triage — Occupancy KPI to block hygiene handoff — Vacant Units vs Analytics on Step 1
- Resetting a Management User Password — Occupancy KPI to block hygiene handoff — Lockout-delayed KPI review after Step 3
- Using in-app support — Occupancy KPI to block hygiene handoff — Calendar edit blocked after block hygiene
- Handling a Late Payment — Occupancy KPI to block hygiene handoff — Vacant Units vs Multicalendar holds on Step 1
- FAQ — Occupancy KPI to block hygiene handoff hub — Symptom table for Multicalendar mystery blocks
Partly collected security deposit
Deposit shortfalls pair with Finance — Deposits status summary cards and Bookings — Deposit tab. Hub parity: Common Workflows — Partly collected security deposit. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Common Workflows — Partly collected security deposit — Hub matrix when Paid on the deposit is above zero but below Amount
- Finance — Deposit lifecycle status cards — Partial paid card for portfolio triage (#2091)
- Finance — Deposit status filter — Other filters → Deposit status → Partial paid on Bookings and Finance (#2090)
- Operations — Tickets toolbar search — Paste the full sequential ticket ID (for example
S259,T27) in toolbar Search (#2074) - FAQ — Find a ticket by its ID — Paste the full sequential ticket ID (for example
S259,T27) in Operations → Tickets toolbar Search (#2074) - FAQ — Skip automatic check-in/out tickets for one booking — Turn off Use unit contract rents and other contract details on Add booking to reveal CI/CO ticket checkboxes (#1140)
- FAQ — Manual payments after Delete Booking — Delete Booking hides manual/provider_platform rows on Finance → Transactions; vIBAN and credit card stay visible (#1897)
- FAQ — Communication or Tickets load failure — Tab-scoped Refresh (Communication) or Retry (Tickets); other booking sidebar tabs stay usable
- Glossary — Directory list load failures — First-fetch directory failures show Retry / Try again; distinct from filter-empty states and booking-sidebar tab errors
- Bookings — Deposit tab — Partially paid badge and remaining helper on a single reservation
- FAQ — Partly collected security deposit — Distinct from Partial Paid rent on Payment Plan
- Finance — Deposit lifecycle status cards — Deposit lifecycle status row (#2091)
- Glossary — Deposit lifecycle status —
depositStatuspill vocabulary (Partial Paid vs rent Partial Paid) - Finance — Deposit lifecycle status cards — Deposit lifecycle status row on Finance → Deposits; click Partial paid for collection shortfalls (#2091)
- Manual block hygiene — Partly collected security deposit — Partial paid card when debt KPIs stay high after holds cleared (Step 5)
- Resetting a Management User Password — Partly collected security deposit — Lockout-delayed deposit triage after Step 3
- Using in-app support — Partly collected security deposit — File Finance module tickets when partial filter or badge behaviour is wrong
- Entering Monthly Utility Bills — Directory list load failures — Utilities tab Retry on bill entry (Step 2)
- Handling a Late Payment — Directory list load failures — Receivables directory Retry on collections triage (Step 1)
- Managing a Check-in — Directory list load failures — Check-in & Check-out Retry on arrival-week planning (Step 1)
- Notification triage — Directory list load failures — /notifications Try again before alert row-click (Step 2)
- Resetting a Management User Password — Directory list load failures — Directory Retry after lockout catch-up (Step 3)
- Using in-app support — Directory list load failures — Support inbox Retry before filing tickets
Month-end invoicing (fixed date)
Multicalendar month-end rate review does not replace saving fixed Invoice date in Settings → Invoicing before Finance → Transactions bulk Issue allocation. Hub parity: Common Workflows — Month-end invoicing (fixed date). Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Common Workflows — Month-end invoicing (fixed date) — Hub matrix (
settings-invoicing-invoice-date-toggle.png,finance-transactions-fixed-invoice-date-banner.png,finance-transactions-bulk-toolbar-fixed-invoice-date-banner.png) - Invoicing — Default invoice date — Account-wide toggle + Save
- Common Workflows — Bulk Hostkit invoicing — Issue allocation after fixed date is saved
- Multicalendar tab (availability timeline) — Pricing review vs fiscal document date on export
- Finance — Month-end invoicing with a fixed date — Amber toolbar beside Issue allocation
- Processing a New Booking — Month-end invoicing (fixed date) — First-month bulk export after confirmation (Step 6b)
- Handling a Late Payment — Month-end invoicing (fixed date) — Collections batch during Step 6b
- Portfolio KPI review — Month-end invoicing (fixed date) — Step 7 sign-off mesh
- Notification triage — Month-end invoicing (fixed date) — Alert cleanup before bulk Issue allocation (Step 5)
- Entering Monthly Utility Bills — Month-end invoicing (fixed date) — Finish Missing data + overage Pending (Steps 4b–5)
- Manual block hygiene — Month-end invoicing (fixed date) — Clear stale holds before Issue allocation (Step 5)
- Using in-app support — Month-end invoicing (fixed date) — Self-serve before filing wrong-date tickets
- Resetting a Management User Password — Month-end invoicing (fixed date) — Lockout-delayed month-end export after Step 3
- FAQ — Month-end invoicing (fixed date) hub — Multicalendar month-end review vs fixed Invoice date before bulk export symptom table
Bulk Hostkit invoicing
Multicalendar month-end rate review does not replace Finance → Transactions bulk Issue allocation — Hostkit pacing applies on the ledger toolbar. Hub parity: Common Workflows — Bulk Hostkit invoicing. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Common Workflows — Bulk Hostkit invoicing — Hub matrix (
finance-transactions-bulk-selection-bar.png,settings-invoicing-hostkit-series.png) - Common Workflows — Month-end invoicing (fixed date) — Fixed Invoice date before bulk Issue allocation
- Settings > Invoicing — Hostkit invoice series — Required FR code before Issue allocation
- Finance — Invoice automation — Bulk Issue allocation / Invoice selected toolbar
- Finance — Issuing credit notes (integrated invoicing) — Issue credit notes (N) after invoiced Reject / Revert
- Multicalendar tab (availability timeline) — Rate review vs fiscal bulk export
- Finance — Bulk Hostkit invoicing — Transactions toolbar reference
- Processing a New Booking — Bulk Hostkit invoicing — First-month Issue allocation after confirmation (Step 6b)
- Handling a Late Payment — Bulk Hostkit invoicing — Collections month-end mesh (Step 6b)
- Portfolio KPI review — Bulk Hostkit invoicing — Step 7 month-end sign-off
- Managing a Check-in — Bulk Hostkit invoicing — Move-in Pending mesh (Step 6b)
- Managing a Check-out — Bulk Hostkit invoicing — Departure-week mesh (Step 6b)
- Onboarding a New Property — Bulk Hostkit invoicing — First month-end on new inventory
- Cancelling a Booking — Bulk Hostkit invoicing — Settlement bulk export (Step 6b)
- Notification triage — Bulk Hostkit invoicing — Alert cleanup before bulk export (Step 5)
- Entering Monthly Utility Bills — Bulk Hostkit invoicing — Finish Missing data + overage Pending (Steps 4b–5)
- Manual block hygiene — Bulk Hostkit invoicing — Clear stale holds before Issue allocation (Step 5)
- Using in-app support — Bulk Hostkit invoicing — Self-serve Hostkit pacing before filing tickets
- Resetting a Management User Password — Bulk Hostkit invoicing — Lockout-delayed month-end export after Step 3
- FAQ — Bulk Hostkit invoicing slow — Hostkit HTTP 429 pacing and refresh-before-reissue habit
- FAQ — Bulk Hostkit invoicing hub — Multicalendar month-end review vs bulk Issue allocation Hostkit pacing symptom table
Directory list load failures
When the shared Sales first fetch fails, all four tabs show Failed to load sales data. Please try again. + Retry under the page header — distinct from filters that match zero listings. Pair Directory load failures with Manual block hygiene — Step 5 reconcile after hold cleanup. Hub parity: Common Workflows — Directory list load failures. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Common Workflows — Directory list load failures — Hub matrix (
dashboard-partial-data-load-failure.png) - Directory load failures — Whole-module Retry blocks all four tabs
- Overview — Availability popover partial load — Failed to load free units in popover only — charts still render
- Manual block hygiene — Directory list load failures — Sales list Retry on Step 5 reconcile
- Portfolio KPI review — Step 7 — Multicalendar / Pricing after module loads
- FAQ — Directory list load failures — Whole-module vs empty grid
- FAQ — Directory list load failures hub — Shared Sales tabs Retry vs Multicalendar popover partial load symptom table
- Glossary — Directory list load failures hub — Surface table + per-guide/module mesh reciprocal hub
Portfolio segmentation by tenant category
Segment filters pair with Settings > Tenant categories and Portfolio KPI review — Step 6. Hub parity: Common Workflows — Portfolio segmentation by tenant category. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Common Workflows — Portfolio segmentation by tenant category — Hub matrix when availability heatmaps cluster on one tenant segment
- Bookings — Other filters — Tenant category on reservations behind multicalendar blocks
- Finance — Tenant category filter — Ledger segmentation when weak metrics look segment-specific
- Tenants — Tenant category filter — Profile-count cross-check before segment-wide pricing changes
- Settings > Tenant categories — Integration defaults and portal gates by segment
- Portfolio KPI review — Step 6 — Optional month-end segment pass on weak occupancy metrics
Key glossary terms
Glossary rows pair with Glossary cluster cross-reference. Full pairing matrix: Sales section cross-reference · Module cross-reference.
-
Glossary — End-of-Booking cost split — Charge Time → End of Booking splits daily overage across every occupied unit; still-staying roommates stay in the denominator (#2111)
-
Operations — Property-level ticket search — Property-name matches share the top relevance tier with unit hits; building-scoped rows float first under an active Property filter (#2089)
-
Glossary — Change history — Operator-initiated edits on Listings setup and Bookings Changelog; create-time defaults excluded (#2093)
-
FAQ — Booking Changelog scope — Operator-initiated edits only; create-time defaults excluded (#2093)
-
Glossary — Archived booking ledger visibility — Delete Booking hides manual/provider_platform rows on Finance → Transactions; vIBAN and credit card stay visible (#1897)
-
Bookings — Provider platform payment — Non-rejected provider platform in-payment blocks Delete Booking until Reject or assign (#2076)
-
FAQ — Delete Booking on integration reservation — Clear pending provider platform in-payment with Reject or assign before soft-archive (#2076)
-
Listings — Property edit sidebar pills — Setup / Full integration / Photos pills on property and unit edit sidebars; replaced the old Go to details shortcut (#2082)
-
Glossary — Finance tenant category cache refresh — Recategorizing a tenant on Tenants → Tenant Info force-refreshes Finance caches so Contract Values, Overview, and Deposits filters match within seconds (#2088)
-
FAQ — Finance tenant category filter parity — Finance Other filters drawer lists segments on cached bookings only; mirror Bookings / Tenants when a segment is missing
-
FAQ — Assign tenant category for direct booking — Add booking has no category field; assign on Tenants → Tenant Info or + Create New → Tenant before contract mail
-
Glossary — SIMAR water contract ID — SIMAR (Loures e Odivelas) water bills use Cód. Local in Connections — not Nº de Contador; leading zeros stripped (#2110)
-
FAQ — SIMAR water bill property match — Cód. Local in Connections — not Nº de Contador; strip leading zeros (#2110)
-
Glossary — Per-booking maintenance ticket opt-out — Add booking checkboxes skip automatic CI/CO tickets for one reservation only; property rule unchanged (#1140)
-
FAQ — Cancel Booking vs Delete Booking — Cancel for real stays with settlement; Delete soft-archives mistaken/test rows (#1897 / #2076)
-
Glossary — Archived property — Archive retires a building to Listings → Archived without deleting bookings; distinct from Delete Booking (reservation soft-archive) — Listings — Archived properties
-
FAQ — Portfolio retirement decisions — Archive property (building) vs Cancel booking vs Delete Booking (reservation soft-archive) — three-way decision table
-
Same-day turnover — Coordinate check-out/check-in on one unit via Multicalendar and Bookings Timeline
-
FAQ — Archive a property — Edit property sidebar Archive / Unarchive on Listings; building-level — not Delete Booking or Cancel booking
-
FAQ — Same-day turnovers — Check-out + check-in on one unit same day: Operations → Check-in & Check-out, Timeline / Multicalendar, turnover tickets
-
Notification row navigation —
/notificationsrow-click opens the related booking detail -
FAQ — Notification row-click navigation — On
/notifications, row click marks unread then openslink,bookingId,tenantId,listingId, orpropertyId(first match); Dashboard bell General rows stay in-panel unlesslinkis set -
FAQ — Phone shows Operations only — Mobile phone user agent locks operators with Operations access to
/operations; iPads and narrow desktop browsers keep the full module list -
Invoiced floor (rent) — Mid-month repricing blocked below exported rent after Finance invoices
-
FAQ — Bulk Hostkit invoicing slow — Vivin paces Hostkit API calls and retries HTTP 429 during bulk Issue allocation / Invoice selected; refresh Transactions before re-issuing
-
Tenant category — Tenant segment filter on Bookings and Finance when Sales heatmaps dip for one cohort, not one listing type
-
Credit note (payment reject/revert) — Accounting follow-up when rejecting mistaken receipts during KPI reconciliation
-
FAQ — AI token usage — Poll GET /ai-usage / GET /ai-usage/summary with management JWT;
landlord_chat+utility_bill_extraction; no management UI screen yet -
FAQ — Automatic check-in email — Trigger matrix, 15-day cutoff, paper upload vs portal signing, Nuki-only toggle, Send / Resend on Contract Info
-
FAQ — WhatsApp and email per booking — Bookings → Communication tab when tenant chatbot is enabled; Inbox for portfolio-wide triage
-
FAQ — Deposit missing on Finance Deposits — Default ~3 months date range; clear or widen before triaging older move-outs or dispute row actions
-
FAQ — Pending manual in-payment on /notifications — Alert persists until Approve payments clears Finance or booking Transactions
-
FAQ — Uncovered Debt KPI — Finance Total Debt minus deposit offsets; pair with Debt Aging and In debt drill-down
-
FAQ — Dashboard Total Debt subtitle — Post-login Total Debt card headline vs >15 days subtitle; ongoing bookings only
-
FAQ — Analytics (KPI workspace) — Portfolio KPIs vs Sales/Listings/Dashboard; load-failure Try again
-
FAQ — Reject or revert an incoming payment — Reject pending rows or Revert confirmed ones; Finance → Transactions uses Reject selected bulk-only; modals warn about credit notes when Finance already invoiced
-
FAQ — Finance Income status drill-down — Overview Income chart (Paid / Scheduled / In debt); click a segment for month-scoped payment-line modal; Debt Aging for booking-level receivables
-
FAQ — Bookings that owe money — Top debtors and overdue buckets on Finance → Overview; Total Debt KPI is not a table
-
FAQ — Fixed rent on variable unit — Variable listing + equal rent every contract month → booking stores fixed headline Monthly rent; payment plan unchanged
API & companion guides
API bullets pair with API Reference hub. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- API Reference — iCal feeds — Outbound
…/ical-integration/listings/{listingId}/iCal.icsbehaviour behind Copy iCal and Export - API Reference — Listings & Availability — Partial partner pulls that reflect pricing and availability edited here
- API Reference — Webhooks & Notifications — Partner HTTP
unavailability.*andbooking.*callbacks when Channels sync changes calendar blocks - AI usage API — Internal LLM token ledger (
GET /ai-usage/summary) during Portfolio KPI review — Step 7; no management UI screen yet
Module documentation hubs
Module hub bullets pair with Modules — Module cross-reference. Full pairing matrix: Sales section cross-reference · Module cross-reference.
- Sales module — Portfolio availability, monthly rent editing, and channel manager connections (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)
- Listings module — Property wizard, Channels tab, Archived inventory, and unit management (hub)
- Properties workspace — Legacy
/propertiesURL 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)
- Inbox module — Portfolio-wide WhatsApp workspace with Dashboard bell Inbox sub-tab deep links (hub)
- Notifications module — Full
/notificationshistory 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)
Key business rules
-
Blocked dates propagate by integration rules. New bookings and manual blocks should prevent double bookings across the channels you connect; exact behaviour depends on the platform and mapping.
-
Pricing grid edits are forward-looking. Changing a month cell updates future rent for that slot; existing bookings keep the rent agreed when they were created. After Finance invoices a month, lowering that booking's net below the exported total is blocked by the invoiced floor — use credit notes in your accounting system when you truly need a lower invoiced amount. See FAQ — Lower rent below invoiced.
-
Integrations are configured in Settings first. The Sales Channels tab surfaces status and linking for platforms already enabled on the account.
-
Overview vs Multicalendar vs Pricing vs Bookings Timeline. Use Overview for account KPIs and aggregated availability charts; use Multicalendar (
/sales/multicalendar) for a unit × time Gantt with Sales filters; use Pricing (/sales/pricing) for month-by-month rent and bulk Edit Price passes; use Bookings Timeline when you need the Bookings module Gantt and its toggles.