Skip to main content

Operations

First-time workspace setup

After Bookings (setup step 14) and Categories (setup step 9), use Tickets and check-in/out queues before your first turnover week — see Getting Started — Operations, tickets & cash flows (optional). Arrival workflow: Managing a Check-in. Complete Getting Started — Recommended Setup Sequence steps 1–12 first.

Finding your way in this guide

Start with Overview tab for portfolio scope, then Tickets Tab for maintenance work and Check-in & Check-out Tab for arrivals/departures. Expense rows: Cash Flows Tab. Dispatch board: Planning tab (permission Planning (schedule board)). Vivin internal timeline: Schedule tab (Vivin internal). Guide subsection map: Operations guide subsection index (tab sections + Related subsections). Habit-specific shortcuts live under Related below.

The Operations module centralizes day-to-day operational coordination across your properties.

Direct access

Open the Operations module at platform.vivin.app/operations. Tab routes include /operations/tickets, /operations/check-in-out, /operations/cash-flows, /operations/planning (Planning — when your role includes Planning (schedule board)), and /operations/schedule (Schedule is shown only to Vivin internal accounts; other roles keep normal module permissions). See Deep Links for all routes.

Tab URLs

Unknown Operations tab slugs redirect to /operations (Overview). Legacy bookmarks using check-in or check-out alone are rewritten to /operations/check-in-out when your role includes that tab. See Deep Links — Invalid, legacy, and mistyped URLs.

Pair with other modules

Open booking context from Bookings; settle tenant balances in Finance; verify keys and access in Listings. Paste the full sequential ticket ID (for example S259) in toolbar Search — see Tickets toolbar search. Portfolio lookups via AI Chat share the landlord tool catalogue — poll AI usage API (landlord_chat) when assistant volume spikes during turnover week. During turnover week, clear payment overdue alerts on arrivals or departures with Handling a Late Payment — Step 1 before key handover — scope unpaid move-ins by Bookings — Tenant categories or Tenants — Tenant category filter when portal rules differ by segment (Settings > Tenant categories). Owner-linked logins already see only their buildings on Tickets and Cash Flows (owner-scope-operations-tickets.png, owner-scope-ops-utilities-flow.mp4).

Directory refresh​

Pair with other Operations sections

If Tickets or Cash Flows needs a refresh, use Retry on that tab (or reload the page). Other Operations tabs stay usable.

When Tickets or Cash Flows needs a refresh, use Retry on that tab — or reload the page. Zero rows after a successful load means your filters matched nothing. See Glossary — Directory list refresh and FAQ — Directory list refresh.

Mobile and narrow layouts​

Operations uses two mobile patterns — do not confuse them:

PatternWhen it appliesWhat changes
Narrow viewportBrowser width below 768px (any device)Operations shows a fixed bottom tab bar instead of the desktop pill strip; floating + for quick ticket or cash-flow entry. Other modules keep their normal narrow-layout drawer (unless the phone-only rule below also applies).
Phone-only shellActual mobile phone user agent (iPhone, Android phone, etc.) and Operations module permissionRoute guard sends non-Operations URLs to /operations; the mobile menu lists Operations only. iPads/tablets and desktop browsers snapped narrow are not locked this way.

Phone-only operations shell​

When both conditions above match, field staff get a reduced shell focused on operational work:

BehaviourDetail
Route guardNavigating to Dashboard, Listings, Bookings, or other modules redirects to /operations. Exceptions: /settings/support and /settings/support/:ticketId still open for Support deep links.
SidebarThe mobile menu lists Operations (not the full desktop nav). Account and Logout remain at the bottom; a compact language control sits beside Logout.

Bottom tab bar (narrow viewport)​

On viewports below 768px, inside Operations:

ControlDetail
Tab switchingBottom tab bar for Overview, Tickets, Check-in & Check-out, Planning (when permitted), and Cash Flows.
Quick addFloating + on Tickets opens New ticket; on Cash Flows it opens Add cash flow. On Cash Flows, the modal may start in attachment-only mode when Preferences → Cash flows → Mobile quick add is On.
ScheduleNot on the bottom bar — use desktop width or bookmark /operations/schedule (Vivin internal only).
Planning (phone)On the bottom bar when your role includes Planning (schedule board) — pick a person, then review that day’s timed list. Full drag-and-drop dispatch stays desktop-first — see Planning tab.

Operations — Tickets tab on a phone with bottom tabs including Planning, plus the floating add control

Walkthrough (mobile phone): open /bookings → redirect to /operations, then switch the bottom tabs — Overview, Tickets, Check-in/out, Planning, and Cash-Flows (Planning appears when Planning (schedule board) is granted).

Roles without Operations permission keep the standard mobile drawer (subject to each module’s own access rules) and are not locked to /operations. Troubleshooting when field staff expected Bookings or Finance on a phone: FAQ — Phone shows Operations only and Glossary — Operations-only phone shell.

On mobile layouts where the full drawer is available, you may also see Install app at the bottom of the menu (home-screen PWA shortcut). That is separate from the Operations-only redirect — it does not unlock desktop modules on a phone. See Getting Started (narrow viewports) for install prompts, dismiss timing, and routes where prompts are suppressed (/login, /reset-password).

It brings together maintenance tickets, check-in/check-out planning, and operational cash flows so your team can manage work from one place. Those tickets are your organisation’s operational tasks on the portfolio — not Vivin support tickets to the Vivin product team (those live under Account Settings when your role has the Support permission). The Help & Support drawer Status menu stays open while you add a second workflow state — that filter is not the Tickets status picker on this module.

Operations Overview Dashboard

Overview tab​

Pair with other Operations sections

The default /operations view is an operational dashboard for maintenance and turnover planning. It combines ticket health, arrival/departure counts, and workload breakdowns in one scrollable page.

KPI cards (top row)​

Four compact cards sit in a 2×2 grid on the left (same visual pattern as the Dashboard KPI row). Each card is clickable and jumps to the relevant tab with a sensible preset:

CardHeadlineSubtitle (typical)Opens
Open TicketsCount of non-closed ticketsCritical/high split, or unassigned countTickets tab (clears the shared Overdue filter so you see the full open queue)
OverdueOpen tickets past their SLA due dateAverage days late among those tickets, or “No overdue tickets”Tickets tab with the shared Overdue filter on — see Overdue KPI card
Check-insArrivals todayTomorrow’s count, or This week total when tomorrow is zeroCheck-in & Check-out tab (check-in view, today filter)
Check-outsDepartures todaySame subtitle pattern as check-insCheck-in & Check-out tab (check-out view, today filter)

Hover each card’s info icon for the in-app definition. Open Tickets and Overdue are derived from the ticket list loaded for the Overview (open = not Completed or Cancelled). Check-ins and Check-outs use a server-side operations stats payload (bookings plus short-term iCal-style stays where applicable); canceled bookings are not counted in those arrival/departure buckets.

Operations Overview — Open Tickets and Overdue KPI cards side by side

Operations Overview — KPI strip with Overdue card highlighted in the portfolio summary

Overdue KPI card​

Click Overdue on Overview when you want the late maintenance queue without hunting for the toolbar toggle first. Vivin opens Tickets and turns on the same Operations-level Overdue filter used by the toolbar toggle and Other filters → Overdue only — one value drives the status cards, the Overdue chip, and the table.

What counts as overdue​

Overdue is one definition everywhere on Operations: the Overview card (count and average days late), the Tickets Overdue filter, the status-card recount while that filter is on, and the late badge on a row.

A ticket is overdue only when all of these are true:

  1. It is still open (not Closed or Cancelled).
  2. It has a priority (Critical, High, Medium, or Low) — not None.
  3. That priority has SLA hours filled in on Settings → Preferences → Ticket Priorities (a blank hours field means “no SLA”).
  4. Now is later than schedule date (or opened/created date when there is no schedule) plus those SLA hours.

Tickets with no priority, or a priority whose SLA hours are empty, are never overdue. They do not raise the Overview card, they do not appear in the Tickets overdue queue, and they do not pull average days late upward. Set a priority (and keep SLA hours on that tier) when you want the clock to start.

You do not type a custom due date on the ticket. Change Schedule, priority, or the account SLA hours to move the deadline. See Managing Ticket Priority and Glossary — Overdue ticket (SLA).

From Overview…What happens on Tickets
Overdue cardOverdue turns on. Status cards recount the overdue slice (Draft / Closed / Cancelled at 0). Toolbar shows Overdue + Clear all.
Open TicketsOverdue clears (if it was on). Status cards return to the full open queue for your other filters.

Use Clear all or the toolbar Overdue toggle to leave the late queue without returning to Overview. Details of how cards recount: Overdue filter and status cards.

Operations Tickets — opened from Overview Overdue with Overdue on (Draft/Closed/Cancelled at 0; Clear all + Overdue chips)

Operations Tickets — after Clear all from an Overview Overdue jump (full status counts; Overdue toggle off)

Walkthrough: on Operations → Overview, click Overdue → land on Tickets with the shared overdue filter on → Clear all to restore full status counts.
Cached check-in/out counts

Check-in and check-out headline numbers are served from the same precomputed cache pattern as Dashboard and Sales overview stats (refreshed on a short staggered schedule and invalidated after relevant mutations). They are meant to match the Check-in & Check-out tab for the same account; if you just changed a booking, allow a moment or refresh before comparing card totals to a filtered export.

Ticket volume trend​

To the right of the KPI grid, Ticket Volume Trend plots created vs closed tickets over time. Toggle Week (last 12 weeks) or Day (last 30 days). When closed exceeds created in a period, your backlog is shrinking for that window. Ask AI Chat (or WhatsApp Genius) for the same closed vs received ratio as a percentage over a named trailing window — for example last 60 days (ai-chat-maintenance-closure-rate-reply.png, ai-chat-maintenance-closure-rate-flow.mp4), last 45 days (ai-chat-maintenance-closure-rate-45-day-reply.png, ai-chat-maintenance-closure-rate-45-day-flow.mp4), last 50 days (ai-chat-maintenance-closure-rate-50-day-reply.png, ai-chat-maintenance-closure-rate-50-day-flow.mp4), or last 90 days (ai-chat-maintenance-closure-rate-90-day-reply.png, ai-chat-maintenance-closure-rate-90-day-flow.mp4). Enable Analytics on AI / MCP. That rate is not the Tickets Closed card (all-time completed) and not Staff Workload (open tickets now).

Lower panels​

Below the first row, Overview continues with:

  • Staff Workload — open tickets per assignee (plus an Unassigned line)
  • By Priority and By Category — distribution of open work
  • Activity — a scrollable recent ticket timeline (see below)

Activity panel​

The Activity card in the lower row is a read-only feed of the latest maintenance-ticket events across the portfolio (respecting the same property scope as the rest of the Overview until you change Other filters). Hover the panel’s info icon for the in-app definition.

Each row shows the ticket title, property (internal name when available), an optional actor line (who opened, assigned, or commented), and a relative time. Events are drawn from each ticket’s timeline when the API returns it; otherwise the product falls back to created / closed timestamps only.

Event kind (product data)What you typically see in the list
CreatedTicket opened (with opener when known)
ClosedTicket completed or cancelled
Status changedWorkflow move (for example Unassigned → In progress)
AssignedAssignee added or changed
CommentNew message on the ticket thread
File addedAttachment uploaded on the ticket

The feed keeps up to 30 events, newest first, grouped under Today, Yesterday, or a calendar date. The list scrolls inside the card (about 240px tall on desktop) so long histories do not stretch the page. When nothing matches the current filters, the panel shows No recent activity — widen property scope or create ticket activity on the Tickets tab, then return to Overview.

Operations Overview — Activity panel with grouped recent ticket events (opens, status changes, assignments, comments)

Walkthrough: on Overview, scroll to Activity, then scroll inside the timeline to scan recent ticket events (opens, status changes, assignments, comments).

Use Filters in the Operations tab bar to open the shared Other filters drawer. Property is a multi-select built on the server-driven search picker: open the control, type to search buildings on the server (debounced), and scroll the menu for more matches in chunks — the same paged pattern as Finance → Other filters → Property and Utilities → Select properties. With an active query, internalName matches rank above address-only hits before pagination — see Glossary — Picker search ranking. Add one building at a time; the menu stays open until you dismiss it. The placeholder shows All properties or a count such as 2 properties. Selected buildings appear as removable chips inside the drawer (desktop) and on tab toolbars on mobile (for example the Tickets filter row). Property scope applies across Overview, Schedule (Vivin internal), Planning (when permitted), Tickets, Check-in & Check-out, and Cash Flows until you clear selections — optional From / To dates in the same drawer further narrow Overview, Schedule, and Cash Flows. Those date fields use the same portalled calendar as Bookings → Other filters → Advanced dates so the month grid stays inside the viewport when the field sits near the bottom of the drawer. Export and deep ticket work still happen on the Tickets and Check-in & Check-out tabs.

Operators with Operations access (and without Listings) can still load the Property picker here — shared property/unit search APIs are gated by their own allowlists, not by the full Listings module. See Users — Role Permissions.

Operations — Other filters drawer, Property & date section with paged property picker open after server search (example AA-11-5D)

Operations — Other filters Property picker after server search (internalName matches ranked above address-only hits, example António)

Operations — Other filters drawer with a selected property chip under the Property control (example AA-11-5D; desktop drawer stays open)

Listing categories filter​

Under Property & date, Listing categories (when your account has listing tags) narrows every Operations tab that uses the shared drawer — Overview, Schedule, Planning, Tickets, Check-in & Check-out, and Cash Flows — to units (and their buildings) that carry the selected tags. Property tags are mirrored onto each unit’s listing tags, so one multi-select replaces picking buildings one by one when teams split work by neighbourhood, amenity, or cleaning zone.

BehaviourDetail
VocabularyChips from your account’s listing-tag catalog (Settings → Categories); the control is hidden when the account has no tags.
Combine with PropertySelected tags and selected buildings both apply — use tags for a team slice, then add Property only when you need a tighter building list.
Tickets / ScheduleTag filter is applied on the server with the rest of the ticket query.
Check-in & Check-out / PlanningTag filter narrows the loaded event / board slice in the browser (same as Stay type and related toggles).
ClearRemove individual chips, or use Clear all filters at the bottom of the drawer.

Operations — Other filters drawer showing Listing categories under Property & date

Operations — Listing categories multi-select open with tag checkboxes

Operations Check-in & Check-out — Alameda listing category selected (list narrowed; toolbar chip)

Walkthrough: on Operations → Check-in & Check-out, open Filters, choose a Listing categories tag, then review the narrowed handover list.

Seed tags under Settings → Categories and apply them on Listings — Tags before turnover week. Same listing-tag vocabulary as Finance → Other filters → Select categories and Sales.

Schedule tab (Vivin internal)​

Pair with other Operations sections

Schedule pairs with Listings — Maintenances tab for property-level maintenance context and Deep Links — Operations for Vivin-internal bookmark routes.

The Schedule tab (/operations/schedule) is available only when you are signed in with a Vivin internal operator account. Customer property managers and other tenant accounts do not see this tab; opening the URL directly is redirected back to the Operations overview.

It is a desktop-first timeline: maintenance tickets are grouped by property on the vertical axis, and each ticket is drawn as a horizontal bar across calendar days. The horizontal range starts from the ticket’s Schedule date when set, otherwise Scheduled at or Created at, and runs through the due date (or due at) when the ticket is still open, or through Closed at when it is completed or cancelled. Overdue tickets use a stronger warning tint; closed or cancelled tickets render in a muted grey. A coloured dot on each bar reflects priority (Critical, High, Medium, Low). Click a bar to open the same ticket detail sidebar used on the Tickets tab.

Toolbar

  • Today — scrolls the grid so the current date is centred when possible.
  • Day / Week — switches column width on the horizontal axis (pill control in the grid header, beside Today):
ModeColumn widthBest for
Week~34px per day (default)Scanning several months of ticket bars across many properties at once
Day~80px per dayAligning due dates, schedule dates, and Today when bars overlap on the week zoom

The grid covers roughly six months in the past through eighteen months ahead so you can plan seasonal work and long lead times. Use Filters in the Operations tab bar (same property scope as other tabs) to limit the chart to specific buildings when portfolios are large.

Property column

Each building keeps a sticky PROPERTY label on the left while you scroll the timeline:

LineWhat it shows
NameThe property’s internal name (for example Casa Bolívia VIII).
AddressStreet and city, truncated with an ellipsis when the column is narrow.
Ticket countHow many tickets sit on that row in the current window (for example 5 tickets).

All three lines stay fully readable in that sticky column. Today centres the current date; if the next scheduled jobs sit months ahead, the row can look empty around today while the label still identifies the building. Scroll forward (or use Day zoom) until the bars appear.

Schedule on phones

The Schedule tab is listed in the desktop tab strip for Vivin internal users. On narrow viewports, the bottom navigation used for Operations does not include Schedule — use a tablet or desktop width, or bookmark /operations/schedule, when you need this view in the field. See Mobile and narrow layouts for the full operations-only phone experience.

Operations Schedule tab — Week view with Casa Bolívia VIII name, address, and ticket count fully readable beside January check-in bars

The capture above uses Week mode after Filters → Property for Casa Bolívia VIII: the sticky label shows the name, Rua República da Bolívia…, and 5 tickets, with a BOLIVIA CHECK IN bar in January 2027. Each bar is coloured by priority (see the legend). Use Today to centre the current date, then scroll or switch to Day when you need wider columns.

Operations Schedule tab — Day view with wider columns, Casa Bolívia VIII label still readable, and the check-in bar spanning several days

Day mode (~80px per column) stretches the same check-in across more of the row so schedule and due dates are easier to align. The PROPERTY label stays on the left at the same height — you can still read the name, address, and ticket count while the calendar is zoomed.

Walkthrough: on Schedule, filter to one building, use Today, then Day / Week in the grid header — the property name, address, and ticket count stay readable while you scroll to scheduled check-in bars.

Planning tab​

Pair with other Operations sections

Planning pairs with Tickets (create and edit the same maintenance rows), Users — Role permissions (Planning (schedule board)), and Deep Links — Operations (/operations/planning). Contrast the Vivin-internal Schedule property timeline — Planning is a people × day dispatch board, not a multi-month property chart.

The Planning tab (/operations/planning) is a day dispatch board for maintenance work: columns are active team members, cards are tickets, and you drag work onto a person and time slot (or onto that person’s Tasks strip for a day plan without a clock time). It is off by default for every role — an administrator must enable Planning (schedule board) (operations.planning) under Users → Role permissions before the tab appears. Without that permission, the tab is omitted and /operations/planning redirects to the Operations overview.

Ask AI Chat for the path

Operators can ask AI Chat “Where do I assign cleaning work on turnover morning on the Operations Planning board?” — expect Operations → Planning, then open this tab (ai-chat-product-context-operations-planning-reply.png, ai-chat-product-context-operations-planning-flow.mp4). See FAQ — Genius / AI Chat product context.

Need the day dispatch board — people columns and drag-to-assign (not the multi-month property Schedule, and not the Tickets queue alone)? Ask AI Chat “Where do I assign cleaning work on turnover morning on the Operations Planning board?” — then open Operations → Planning (ai-chat-product-context-operations-planning-reply.png, ai-chat-product-context-operations-planning-flow.mp4). The assistant typically says Operations → Planning. Canonical route: /operations/planning (requires Planning (schedule board) permission).

AI Assistant — where to assign turnover cleaning on Operations Planning

Walkthrough: ask AI Assistant where to assign turnover cleaning on the Operations Planning board, then open Operations → Planning.

Planning is distinct from Schedule:

PlanningSchedule (Vivin internal)
Who sees itRoles granted Planning (schedule board)Vivin internal operators only
LayoutPeople columns × one selected dayProperty rows × multi-month timeline
Primary actionDrag to assign / time-block / replanScan ticket bars by building

Desktop board​

Operations Planning — Daily Planning board with person columns, timed appointments, To replan and Unscheduled panels

On desktop you get:

AreaWhat it does
Week strip + Today / date pickerChoose the day you are dispatching. Re-opening the tab always lands on today.
Daily Planning gridOne column per active property manager. Drop a card on a time row to create a timed Appointment, or on the column’s Tasks strip for an hourless day Task.
To replanAssigned tickets from earlier days that are still open — drag them onto today’s board to catch up.
UnscheduledOpen tickets with no responsible — the pool you drag onto a person to plan.

Cards show priority colour, property/unit context, and Task vs Appointment. Click a card to open the same Ticket details sidebar used on Tickets (edit status, schedule, assignee, cost allocation). Completed tickets stay visible but are not drag-resizable; cancel and done work leave the backlog.

Property scope from the shared Operations Filters drawer still applies — narrow the board when the portfolio is large.

Operations Planning — Ticket details sidebar opened from a Planning appointment card

Walkthrough: open Operations → Planning, review the day board and To replan panel, open a ticket card, then close the sidebar.

Phone and narrow layouts​

On phones, Planning joins the Operations bottom tab bar when permitted. The mobile layout is a single-person day list (person pills + timed cards) — use it to review someone’s load in the field. Drag-and-drop dispatch stays on desktop width.

Operations Planning on phone — person pills and Maria Silva’s timed day list

Tab order card

Personal Settings → Tab order lists Operations tabs you can reorder. Planning only appears in that card for some internal accounts today; grant Planning (schedule board) on the role matrix to show the tab on Operations itself. Prefer the Operations tab strip (or /operations/planning) over Tab order until your workspace shows a clear Planning label in the reorder list.

Tickets Tab​

The Tickets tab is a full maintenance management system. You can create, assign, and track tasks for any operational need: cleaning, repairs, inspections, tenant requests, and more.

Ask AI Chat where to open Operations Tickets

Not sure which Operations tab holds the maintenance queue? Ask AI Chat “Where do I open Operations Tickets to create and track maintenance work across my properties?” — then open Operations → Tickets (ai-chat-product-context-operations-tickets-reply.png, ai-chat-product-context-operations-tickets-flow.mp4). The assistant may say left menu and may use the Portuguese product term Tickets de manutenção; the English tab label is Tickets. Same-day person × time dispatch stays on Planning.

Need the maintenance queue — create, assign, and track work across properties (not same-day person × time dispatch on Planning)? Ask AI Chat “Where do I open Operations Tickets to create and track maintenance work across my properties?” — then open Operations → Tickets (ai-chat-product-context-operations-tickets-reply.png, ai-chat-product-context-operations-tickets-flow.mp4). The assistant may say left menu and may use Tickets de manutenção; the English tab label is Tickets. Canonical route: /operations/tickets.

AI Assistant — where to open Operations Tickets for maintenance work

Walkthrough: ask AI Assistant where to open Operations Tickets for maintenance work, then open Operations → Tickets (reply may say left menu or use the Portuguese product term).

Tickets Overview

Understanding the Ticket List​

Each ticket in the list shows:

  • Title and description of the task
  • Property and unit it relates to
  • Priority (Critical, High, Medium, Low, or None when unset)
  • Category (e.g., Cleaning - Check-in, Plumbing, Electrical)
  • Assigned team member
  • Status — Unassigned, In Progress, Closed, or Cancelled on the list (plus Draft as a display label — see below). There is no Open status. The sidebar menu uses Completed for the same finished-work value the list labels Closed.
  • Due date and optional Schedule date (when the work is planned to start). When the ticket also has a clock time, the Schedule column shows that hour next to the date — see Schedule hour on the list

Which of those fields appear as table columns, and in which order, is your layout — teammates can keep a different view of the same queue. See Customize your ticket columns.

Customize your ticket columns​

Pair with Personal Settings

Column layout is a per-user preference on Personal Settings (/settings/personal). It does not change ticket data, filters, or anyone else’s table. Tab order on that same screen is a different card — Module tab order.

Each operator chooses which columns appear on Operations → Tickets and in which order. Open Account Settings → Personal Settings, then the Operations ticket columns card.

Column (English header)DefaultNotes
IDOnAlways visible — you cannot turn it off
TicketOnTitle (and description snippet). Hide it when you want more room for property and dates
Property / UnitOn
AssigneeOn
CategoryOn
StatusOnAlways visible — you cannot turn it off
CreatedOn
ScheduleOnDate, plus hour when one is set — Schedule hour on the list
DueOn
Internal noteOffLong free text from ticket resolution. Turn it on to read, sort, or scan notes in the list; filter With / Without works even when this column stays hidden

A small source icon stays after the first column. It is not in this list — you cannot hide or drag it.

ID and Status rows show Always visible and their switches stay off-limits. Drag the grip to reorder. Hidden columns sit at the bottom of the list. Click Save to apply. Reset to default restores the shipped layout immediately (including hiding Internal note again) — you do not need Save after reset.

Two people on the same account can keep different columns. If a new column ships later and you already saved a custom list, turn that column on or use Reset to default so it can appear.

See FAQ — How do I choose which columns I see on Operations Tickets? and Glossary — Operations ticket columns.

Ticket status (no Open)​

Tickets do not use an Open workflow value. On Operations → Tickets, the status strip is All, Unassigned, Draft, In Progress, Closed, and Cancelled.

To change status, open a row → Ticket details → Edit details (pencil) → Status. The menu has four choices — Unassigned, In progress, Completed, and Cancelled. Draft is not in that menu (it is a display label for far-future Schedule date). Duplicate can appear on a row for a merged report; it is not a menu choice.

What you seeWhereWhat it means
UnassignedList, KPI card, sidebar menuNo responsible person yet. Tenants see Received for the same ticket.
In Progress / In progressList and KPI card use In Progress; the sidebar menu says In progressAssigned work inside the 30-day window
Closed / CompletedKPI card and list badge say Closed; the sidebar menu says CompletedWork finished
CancelledList, KPI card, sidebar menuWill not be done
DraftList badge and KPI card onlyFar-future schedule — not a menu value
AllKPI card onlyEvery matching ticket, including Closed, Cancelled, and any Duplicate rows

Close the sidebar without saving when you are only checking the menu — status edits persist with the ticket (Saved automatically / Close).

Operations Tickets — hallway search with Unassigned row and status cards All, Unassigned, Draft, In Progress, Closed, Cancelled (no Open)

Operations Tickets — Ticket details Status menu: Unassigned, In progress, Completed, Cancelled (no Open)

Walkthrough: search Operations → Tickets for a hallway repair, open the row, choose Edit details, and read the Status menu — Unassigned, In progress, Completed, and Cancelled (no Open).

Draft status (far-future schedule dates)​

The Tickets tab can show a Draft badge on rows that are still Unassigned or In progress in the database but have a Schedule date more than 30 days in the future. This is a display-only label so long-lead work (for example seasonal deep cleans or move-in prep booked months ahead) does not look like an open operational queue item before it is actionable.

What you seeWhat it means
Draft badge on the rowSchedule date is 30+ days ahead; hover the badge for Scheduled 30+ days ahead — shown as Draft. Will become active as the date approaches.
Draft summary card / status pillCount of tickets in that far-future bucket; card title explains they are not yet actionable
Underlying status in the sidebarStill the saved workflow value (Unassigned or In progress) until you change it — Draft is not a separate API status you assign manually
Status filters and KPI cardsThe Draft, Unassigned, In progress, and related summary pills filter and count tickets by this display status, not the raw database value alone — a ticket saved as Unassigned with a schedule date 30+ days ahead appears only under Draft, not Unassigned, until the date moves inside the window

Operations Tickets — Draft summary card in the status strip and ticket list after filtering to far-future scheduled work

The capture shows the Draft KPI card (count of tickets with a Schedule date 30+ days ahead) in the same status strip as All, Unassigned, and In progress. Click the card to filter the table to that bucket; individual rows still show a Draft badge in the Status column when the schedule date qualifies, even though the saved workflow status remains Unassigned or In progress.

As the schedule date moves inside the 30-day window, the row returns to showing the real status (Unassigned, In progress, and so on). Use Schedule date when creating or editing a ticket if you want this behaviour; tickets without a schedule date are never shown as Draft.

You can filter the ticket list from the main toolbar (property, status, Source, Assignee, priority, Category, and search) to focus on what matters most to your team right now — include the Draft status pill when you want to review only far-future scheduled work. Source, Category, and Assignee stay open while you add another value — see Category stays open, Source stays open, and Assignee stays open. Status pills and the KPI strip share one display-status rule on the server (long-scheduled Unassigned / In progress rows bucket as Draft), so the row count on a pill always matches the tickets you see after the list reloads — you do not need a second client-side filter to reconcile badges with the table.

Walkthrough: click the Draft KPI card on Operations → Tickets, review filtered rows with Draft badges, then open a ticket sidebar to confirm the underlying workflow status and Schedule date.

The debounced Search box on Operations → Tickets is sent to GET /maintenance/page (same filter set as Export and the status summary cards). Matches are case-insensitive substrings on:

FieldExamples
Ticket IDSequential id shown on the row (for example S259, T27) — added in
TitleSubject line you typed when creating the ticket
DescriptionBody text in the ticket sidebar
CategoryMaintenance category value (for example cleaning_check_in)
Property internal nameBuilding label on the ticket row
Unit internal nameListing label on the ticket row (for example AA-11-5D-R2)
Listing room numberRoom number stored on the ticket’s listing snapshot

When several fields match, unit / room hits and property internal name hits share the top relevance tier — paste a unit code to surface room-scoped work first, or paste the building code when the task applies to shared space. Matches on title, description, or category alone rank below those unit/property hits. Property-level tickets (for example common area categories with no unit on the row) still match Property internal name and are no longer buried after every unit ticket on the first page. With an active Property filter chip and the default column sort, building-scoped rows (listingId null) float to the top of that property’s slice; choosing an explicit column sort (for example Title) orders purely by that column instead. On the row, property-level work shows the building internal name only in the location column (no -R / room suffix); unit-scoped tickets show a listing code such as AA-11-5D-R39 before the property name. Paste the full ticket ID (prefix + number, for example S259) when support or email references #S259 — partial numeric-only queries can match unrelated rows.

Operations Tickets — toolbar Search narrowed by sequential ticket ID (example S259)

Operations Tickets — toolbar Search narrowed by unit internal name (unit / room matches ranked first)

Operations Tickets — Other filters property chip scoped to AA-11-5D with a property-level row (building name only in the location column, example I1052)

Not in Tickets toolbar Search

Tenant note and Resolution description are not in the server search index — narrow with Property filters, paste the ticket ID, or scan title / description instead.

Tickets toolbar category filter​

The Category control on the Tickets toolbar lists every ticket type from Settings → Categories → Tickets — the same catalog as Other filters → Category. It is not limited to types that appear on the first page of the table. Scroll the menu to reach labels further down the catalog.

When the catalog is longer than a handful of types, Category becomes a searchable menu: type part of a label (for example clean) and matching letters highlight in the list.

BehaviourDetail
Open CategoryMulti-select. Options come from your Settings catalog, plus any label still stored on a loaded ticket (for example a type you renamed in Settings).
SearchWith many types, a search field overlays the Category control. Matches highlight in the list. Clear the query to see the full catalog again. Typing stays in that field after each tick — you do not have to click back in.
After you pickA chip appears under the toolbar (with Clear all). Status cards and the table recount to that type. The menu stays open with a check on the type you picked, so you can add another type without opening Category again.
ClearRemove the chip, or Clear all.

Operations Tickets — Category menu scrolled through the Settings catalog

Operations Tickets — Category search for clean highlighting Cleaning types

Operations Tickets — Maintenance selected in the Category catalog with a Maintenance chip

Walkthrough: open Category, scroll the Settings catalog, search clean, and pick Maintenance — the check and the rest of the catalog stay in the open menu.

Category stays open while you pick​

Open Category, then tick a type. The queue recounts and a chip appears under the toolbar; the menu stays open so you can tick a second type. You do not need to open Category again.

Search the queue first when you want a known row in view (for example hallway), then open Category. Tick Limpeza, then Maintenance. Both stay checked in the open list. Dismiss the menu when the chips look right — same stay-open habit as Source and Bookings — Select properties.

Operations Tickets — Category menu open over a hallway search, catalog still listing types

Operations Tickets — Category menu still open with Limpeza and Maintenance both checked

Walkthrough: on Operations → Tickets, search hallway, open Category, tick Limpeza, then tick Maintenance — the menu stays open.

Source stays open while you pick​

Open Source on the Tickets toolbar, then tick a channel. A chip appears under the toolbar; the menu stays open so you can tick a second channel. You do not need to open Source again.

ChannelWhat you get
Tenant portalTickets tenants opened in the portal
ChatbotTickets opened from the chatbot
Tenant (all channels)The generic tenant source — not a shortcut that also includes portal and chatbot
Internal TeamTickets your staff created
Automatic - Check-in/outAutomatic check-in and check-out prep tickets
Automatic - RecurringAutomatic recurring tickets

Tick Tenant portal, then Chatbot, when you want inbound tenant reports from both surfaces. Add Tenant (all channels) in the same open list if you also want the generic tenant source. For turnover prep, tick Automatic - Check-in/out, then Internal Team, so auto rows and staff-created work stay in one view. Dismiss the menu when the chips look right — same stay-open habit as Category and Assignee.

Assignee stays open while you pick​

Open Assignee on the Tickets toolbar, then tick a teammate. A chip appears under the toolbar; the menu stays open so you can tick a second teammate. You do not need to open Assignee again.

The menu lists people you can assign maintenance work to (the name as it appears on tickets). Tick the first name, then a second name. Both stay checked in the open list. The queue shows tickets assigned to any of the people you picked. Dismiss the menu when the chips look right — same stay-open habit as Source and Category.

Ticking names here only filters the list. It does not change who is assigned on a ticket — open the ticket sidebar to change the assignee.

Filters → Responsible is a different control: one person at a time. Use toolbar Assignee when two teammates should stay in one view.

Unassigned tickets stay on the Unassigned status card. They are not an option in this menu.

Check-in & Check-out Responsible is a different control on a different tab (names already on a handover). Audit → Created by is a different control on Manual Blocks (who created a hold). If your role only shows tickets assigned to you, the queue stays scoped to you.

Open Filters in the Operations tab bar to use the Other filters drawer for finer control on the Tickets tab (property and listing-category scope is shared with other Operations tabs — see Overview and Listing categories filter):

  • Property (multi-select) — add buildings one at a time; clear individual selections from the dropdown or use Clear all filters at the bottom of the drawer. The property list uses natural numeric sort on internal names (for example Room 2 before Room 10). Selected buildings appear as removable chips inside the Other filters drawer (desktop) and on the Tickets toolbar (mobile).
  • Listing categories — multi-select listing tags under Property & date when you want a team or neighbourhood slice without picking every building.

Operations Tickets — mobile toolbar with removable property filter chip after Other filters (example property AA-11-5D)

  • Optional created date range (From / To) in the Property & date block
  • Source, Category, and Responsible — multi-select in this drawer, matching the Tickets toolbar lists. Leave a control empty for all. Drawer Source labels match the toolbar channels (Tenant (all channels), Tenant portal, Chatbot, Internal Team, plus automatic check-in/out and recurring). Category uses the same Settings catalog as the toolbar Category filter. When the account has no category catalog, Category is a single text box. Toolbar Source, Category, and Assignee menus still stay open while you add another value
  • Scheduled time — All, With, or Without a clock time on the ticket (same vocabulary as Check-in & Check-out — Scheduled time). See Schedule hour on the list
  • Internal note — All, With, or Without resolution text on the ticket (same All / With / Without pattern as Scheduled time). See Internal note filter and sort
  • Overdue only — show tickets whose due date is before today (same control as the toolbar Overdue toggle — see Overdue filter and status cards)

Operations Tickets — Other filters drawer with Overdue only enabled

The capture shows the drawer title Other filters, the Property & date block, and the Ticket filters section including Overdue only (with the toolbar Overdue chip active on the list behind the drawer).

Schedule hour on the list​

The Schedule column shows the planned start date. When the ticket also has a clock time, that hour appears next to the date (for example Feb 01 15:00). The list and Planning use the same rule: a day task with no hour stays date-only — it is not treated as having a scheduled time.

The Tickets table defaults to Unassigned and In Progress. Long-lead jobs (a Schedule date more than 30 days ahead) sit under Draft. Click the Draft card when you want those rows in view — check-in and check-out prep with a clock time still shows that hour.

Search a building first when you want a known house in the list (for example Bolivia for Casa Bolívia VIII). Open Draft, then read the Schedule column.

Operations Tickets — Draft list for Casa Bolívia VIII with Schedule hours such as 15:00 next to the date

Other filters → Scheduled time narrows the queue the same way as Check-in & Check-out:

ChoiceWhat you see
AllEvery matching ticket, with or without a clock time
WithOnly tickets whose Schedule column shows an hour
WithoutTickets with no clock time — unscheduled rows (a dash in Schedule) and day tasks without an hour

With and Without are a complete split: a ticket appears in one or the other, never both. Status cards recount with the list. Combine Scheduled time with drawer Source, Category, or Responsible (multi-select), or use the toolbar menus when those filters are already open.

Operations Tickets — Other filters drawer with Scheduled time All, With, and Without on Ticket filters

Operations Tickets — Other filters Scheduled time set to With, Casa Bolívia VIII timed rows still in the list

Walkthrough: on Operations → Tickets, search Bolivia, open Draft, read hours on Schedule, then Filters → Scheduled time — With keeps timed rows; Without hides them. Search hallway for a row whose Schedule is a dash.

Operations Tickets — hallway repair with no clock time: Schedule shows a dash

Internal note filter and sort​

Pair with column layout

Turn the Internal note column on under Personal Settings → Operations ticket columns when you want to read or sort notes in the table. The Other filters → Internal note control works even when that column stays hidden.

The ticket Internal note is the resolution text your team saves while closing or updating work — it is not visible to tenants, and it is not the booking Internal Notes chat thread.

Other filters → Internal note (under Ticket filters, below Scheduled hours) narrows the queue the same way as Scheduled time:

ChoiceWhat you see
AllEvery matching ticket, with or without a note
WithOnly tickets that have a non-blank Internal note
WithoutTickets with no note (empty or whitespace-only counts as no note)

With and Without are a complete split: a ticket appears in one or the other, never both. Status cards and the toolbar Filters badge recount with the list. Clear all in the drawer (or clearing the filter) returns to All.

When the Internal note column is visible, click its header to sort A→Z, then Z→A, then clear the sort — same cycle as other sortable columns. Blank notes sort last in both directions. If you turned on Show Notes instead of Ticket, the header still sorts the same note field under the Notes label.

Operations Tickets — Other filters drawer with Internal note All, With, and Without on Ticket filters

Operations Tickets — Other filters Internal note set to With (1 Active filter)

Operations Tickets — Filters toolbar badge showing one active filter after Internal note With

Operations Tickets — table headers with Internal note sorted ascending

Walkthrough: on Operations → Tickets, open Filters → Internal note, choose With (badge counts the filter), then sort the Internal note column when it is visible.

See FAQ — How do I find tickets that have an internal note? and Glossary — Internal note filter (Operations Tickets).

Operations — Tickets tab with status summary cards, toolbar, and ticket table

Overdue filter and status cards​

Use the toolbar Overdue toggle (or Other filters → Overdue only) when you want the late queue only. The same Operations-level value turns on when you click the Overview Overdue KPI card — there is one overdue control for the module, not a separate Overview preset. Vivin applies that filter server-side to both the ticket table and the status summary cards (All, Unassigned, Draft, In progress, Closed, Cancelled), so a non-zero card always opens rows that match the active overdue slice. The rows in that slice are the same tickets the Overview card counts: open work past the SLA due date, not unprioritized tickets whose schedule date is already in the past.

When Overdue is…What you should see
OffCards count the full filtered set (property, category, assignee, and so on) — including Draft, Closed, and Cancelled when those exist.
OnCards recount only overdue tickets. Draft, Closed, and Cancelled drop to 0 (overdue work is open SLA work). All equals the sum of the open overdue buckets you still see (typically Unassigned + In progress). The toolbar shows an Overdue chip and Clear all.

Click a card whose count is greater than zero while Overdue is on — the table below stays in the overdue slice and shows that status. If a card reads 0, there is nothing to open for that combination.

Operations Tickets — status cards with Overdue off (full portfolio counts)

Operations Tickets — status cards with Overdue on (Draft/Closed/Cancelled at 0; All matches open overdue buckets)

Walkthrough: on Operations → Tickets, turn Overdue on, confirm status cards recount to the overdue slice, then clear the filter.

Pair with Status-card priority chips (including None) when you also narrow by priority inside a status card, and with Overview → Overdue KPI card when you jumped here from Overview (operations-overview-overdue-opens-tickets.png, operations-overview-overdue-card-flow.mp4). Ask AI Chat (or WhatsApp Genius) for the same whole-account status totals when you want a count without scanning the table — turn Overdue off first so the cards match Genius All. Enable Maintenance on AI / MCP (ai-chat-ticket-status-counts-reply.png, ai-chat-ticket-status-counts-flow.mp4).

Status-card priority chips (including None)​

Each status summary card (All, Unassigned, Draft, In progress, Closed, Cancelled) shows a compact priority grid under its total: Critical, High, Medium, and Low, plus None when that status bucket includes tickets with no priority set. The chip counts on a card always add up to the card total — so you can reconcile the headline number with the priority mix without opening every row. Ask AI Chat (or WhatsApp Genius) for the same All-card chips when you want the mix without scanning the table (ai-chat-ticket-priority-counts-reply.png, ai-chat-ticket-priority-counts-flow.mp4). Ask for the Unassigned card chips when you want only tickets with no assignee (ai-chat-ticket-unassigned-priority-counts-reply.png, ai-chat-ticket-unassigned-priority-counts-flow.mp4). Ask for the Draft card chips when you want far-future scheduled work (ai-chat-ticket-draft-priority-counts-reply.png, ai-chat-ticket-draft-priority-counts-flow.mp4). Ask for the In progress card chips when you want only currently assigned active work (ai-chat-ticket-in-progress-priority-counts-reply.png, ai-chat-ticket-in-progress-priority-counts-flow.mp4). Ask for the Closed card chips when you want all-time completed tickets (ai-chat-ticket-closed-priority-counts-reply.png, ai-chat-ticket-closed-priority-counts-flow.mp4). Ask for the Cancelled card chips when you want all-time cancelled tickets (ai-chat-ticket-cancelled-priority-counts-reply.png, ai-chat-ticket-cancelled-priority-counts-flow.mp4).

Operations Tickets — All status card priority grid including the None chip

Click a priority chip to filter the table to that priority inside the current status card (and other active filters). Choosing None lists only tickets whose priority is unset; the toolbar shows a None filter chip and Clear priority so you can leave the filter without resetting the whole status card.

Operations Tickets — list filtered to None priority with toolbar None chip and Clear priority

Walkthrough: on Operations → Tickets, open the All card priority grid, click the None chip, then review the filtered list and toolbar None / Clear priority controls.

Use None when you are clearing backlog that never received a priority (for example imported or auto-created rows) before you assign Critical–Low from the ticket details sidebar or Settings → Ticket priority triage rules. Priority icons on the chips match the same bar icon used in the ID column and on Planning cards.

Due dates in the list use human-friendly labels where it helps — for example Today, Tomorrow, Yesterday, or an overdue count — so the queue is easy to scan without reading raw dates.

Tickets list loading (infinite scroll)​

The ticket table is server-paged like Listings and Bookings: the first request loads about 10 rows, and scrolling near the bottom fetches the next batch (about 5 rows per request). A small loading line appears under the table while the next page is in flight.

BehaviourDetail
Filters and searchToolbar pills, Other filters, and debounced Search are sent to the server on every change — the list resets from the first batch when you adjust them.
SortColumn sort (for example Due, Created) is also server-side; changing sort reloads from the top.
Status summary cardsThe All, Unassigned, Draft, In progress, and related KPI pills at the top use server-side counts for the current filter set — including the toolbar Overdue toggle — so card totals match the table even when you have not scrolled through every loaded page yet. See Overdue filter and status cards.
ExportCSV / Excel downloads the full filtered ticket set from the server — not only the rows already scrolled into the on-screen list (see the export note below).

If this list needs a refresh — Use Retry on the directory refresh card, or reload the page. See Glossary — Directory list refresh.

Users without See all maintenances still see only tickets assigned to them; the same infinite-scroll rules apply to that scoped list.

Use Export on the Tickets toolbar to download whatever matches your current filters, search, and sort — not only the tickets visible in the first on-screen page.

Open Export, then choose CSV or Excel (.xlsx). Vivin loads the full filtered ticket set from the server when you start the download (including closed and cancelled tickets that match the filter), then builds the file once that data is ready. On large accounts you may see a brief Exporting… state on the button while the export fetch runs; the on-screen list itself stays paginated for everyday browsing. Downloads use a dated filename: vivin-tickets-YYYY-MM-DD.csv or vivin-tickets-YYYY-MM-DD.xlsx. If nothing matches the current filters, the app shows a no data warning instead of an empty file.

Each row includes the main ticket fields (for example ID, title, description, status, priority, property, unit, category, assignee, due date, schedule date, tenant note, resolution description, overdue yes/no, created, and closed timestamps — with column labels following your interface language.

The Schedule Date column uses the localized header from Tickets → Export (English Schedule Date) — not a raw field or i18n key. It sits between Due Date and Overdue and carries the ticket’s scheduleStart value (blank when the ticket has no schedule). Far-future schedule values still drive the Draft display status on the list; the export always writes the underlying timestamp when one exists.

Operations Tickets — Export menu (CSV / Excel) on the Tickets tab; download reflects current filters and sort

Operations Tickets — CSV export column slice highlighting Schedule Date between Due Date and Overdue

Walkthrough: Operations → Tickets → Export → CSV — confirm the localized Schedule Date header between Due Date and Overdue.

Creating a Ticket​

Click + New ticket (toolbar) or New ticket to open the ticket creation modal.

Add Ticket Modal

Fill in the following fields:

  • Title — a short, descriptive name for the task (required, max 255 characters). Leaving it blank and clicking Create ticket shows Title is required under the field and does not create a row. The API also rejects empty titles on POST /maintenance, and both create and update reject titles longer than 255 characters.
  • Property and Unit — where the task needs to be done. Both pickers are server-paged: open Property to search and scroll for buildings (large portfolios load in batches instead of one dropdown dump). After you choose a property, Unit lists only that property’s listings with the same search-and-scroll pattern. Common area ticket categories hide Unit because the task applies to shared space, not a single listing. You do not need the Listings module permission to fill these pickers when creating or filtering tickets — Operations (and other module) roles on the shared picker allowlist can search properties and units without opening Listings.
  • Category — the type of task (configured in Settings > Categories > Tickets). Ticket category options load from a dedicated maintenance-settings route so Operations roles can populate Category without Account Settings access.
  • Priority — Critical, High, Medium, Low, or leave unset (None on status-card chips and filters until you choose a level)
  • Assigned To / Responsible — the team member responsible
  • Schedule Date / Schedule Time — when the task should run (optional)
  • Description — detailed instructions or notes for the assignee (required in the modal)

Add ticket modal — Title is required validation after Create ticket with an empty title

Walkthrough: New ticket → fill Description and Property → Create ticket with a blank Title → red Title is required under the field → Cancel (no row created).

Click Create ticket to save. The assigned team member will receive a notification when a responsible user is set.

Assignment email See ticket​

When you set (or clear) a Responsible user on a maintenance ticket, Vivin can email that person about the assignment (and related unassigned-ticket alerts). Those messages include a See ticket button that opens /operations/tickets?ticket=<ticketId> — the Tickets tab with this ticket’s Ticket details sidebar already open. After the sidebar loads, the query param drops from the address bar so you stay on /operations/tickets.

Use the button from your mailbox when a colleague assigns work mid-shift — you land on the same sidebar you would open by clicking the row in the table. Bookmark or paste the same URL pattern when handing off a specific ticket in chat. This path is for Operations maintenance tickets only; Vivin product-support assignment emails use a different See ticket link into the Help & Support surface.

Operations Tickets — Ticket details sidebar opened from an email See ticket deep link

Operations Tickets — Ticket details fields after opening from a See ticket deep link

Walkthrough: open Operations → Tickets, follow a See ticket deep link, and review the ticket details sidebar.

Route reference: Deep Links — Ticket email deep link. FAQ: See ticket from a maintenance email.

Automatic check-in/out tickets and unit moves​

Automatic check-in/out tickets (source automatic check-in/out) carry a PROPERTY / UNIT value on the Tickets list so Operations can dispatch to the right room. When you Change unit on a booking before check-in, Vivin re-points active automatic tickets to the new unit in the same save. Search or filter by property / title (for example a cleaning check-out label) and confirm the unit column after a move.

Operations Tickets — Cleaning Check out search results with PROPERTY / UNIT column for AA-11-5D rooms

Ticket details sidebar​

Click any row in the Tickets table (or a bar on the Schedule timeline) to open the Ticket details panel on the right. This is where operators edit the live ticket — distinct from Vivin support tickets under Account Settings.

The sidebar typically includes:

  • Header — title, source (tenant portal, chatbot, property manager, automatic check-in/out, and similar), and created / closed timestamps
  • Inline fields — status, priority, category, assignee, property and unit, due date, schedule date, and description
  • Cost allocation — split repair or service cost across Owner, Tenant, and Internal buckets, link operational cash flows, and review totals before you save (see Linking cash flows to a ticket below)
  • Tenant note — optional free-text note visible to the tenant when the ticket originated from or is shared with the tenant portal (placeholder: Note visible to tenant). Use it for instructions or status the tenant should read on the portal.
  • Resolution description — optional internal-only note for how the issue was resolved (placeholder: Internal note — not visible to tenant). Record vendor names, root cause, or handover context for your team without exposing it on the tenant-facing side. Not included in the Tickets toolbar search index.
Tenant note vs resolution description

Tenant note is the only free-text field on the ticket that tenants may see when the ticket is shared with the portal. Resolution description never appears on the tenant side — use it for internal handover, vendor references, or root-cause notes your team needs after close.

  • Files — attach photos or documents; use Add file for evidence
  • Timeline — chronological audit trail for this ticket (newest first). Each row is a plain-language line from the ticket’s change log (for example Ticket created by …, status or priority updates, assignee changes, and comment-related events) with a locale-formatted timestamp. The Tickets list API omits these entries for performance — open the ticket sidebar (or refresh after an edit) so the detail request loads entityChangeLogEntries. When nothing is logged yet, the panel shows No activity recorded yet.

Operations — Ticket details sidebar, Timeline panel with change-log rows and timestamps

The capture shows a ticket with multiple logged events (creation, status or assignee updates, and related workflow lines). Scroll the sidebar to Timeline after opening a row — it sits below Files and above the sticky Update control. When a ticket has no change-log rows yet, the panel shows No activity recorded yet. instead of an empty list.

Linking cash flows to a ticket​

The Cost allocation panel in the ticket sidebar connects maintenance work to the Cash Flows ledger:

ControlPurpose
AllocationDropdown — classify who bears the cost (Owner, Tenant, Internal, and other values configured for your account).
HoursOptional labour hours (stepper + free-text field) for time-based jobs.
Total amount€ headline on the right — when one or more cash flows are linked, this is the signed net of those rows (inflows add, outflows subtract). When nothing is linked yet, the figure follows the ticket’s stored total.
+ Add cash flowOpens Add cash flow with this ticket pre-selected (maintenanceRequestId filled). Save the new expense from the modal; it appears in the linked list and on the Cash Flows tab.
Linked rowsEach linked entry shows category (amber chip), date, and amount (green for inflow, red for outflow). Click a row (or press Enter / Space when focused) to open the same Cash flow detail sidebar used on the Cash Flows tab — preview attachments, edit fields, or review payment method without leaving the ticket.
Info icon on a rowHover or focus the i control for a tooltip with type, payment method, supplier, description, and attachment count.

Linked cash flows persist on the ticket record. The Tickets list API may omit full cashflows arrays for performance — opening the ticket sidebar (or refreshing after you add a link) loads the complete set from GET /maintenance/:id.

Operations — Ticket details Cost allocation panel with linked cash flow row and signed total

Walkthrough: open a maintenance ticket, review Cost allocation with a linked cash flow row and signed total, then click the row to preview the cash flow detail sidebar.

Use the sticky Update control at the bottom to persist edits. Closing the panel returns you to the list without leaving the Operations module.

Operations — Ticket details sidebar with status fields, cost allocation, and Update action

Operations — Ticket details sidebar scrolled to Tenant note and Resolution description fields

Operations — Ticket details sidebar with Resolution description field focused (internal-only)

Managing Ticket Priority​

Priority levels have configurable default SLA deadlines set in Settings → Preferences → Ticket Priorities. For example, Critical tickets might have a 1-day deadline while Low tickets might have 7 days. Vivin adds those hours to the ticket’s Schedule date (or opened/created date) to compute the due date used by Overdue. There is no separate due-date field on the ticket — change Schedule, priority, or the account SLA hours. Tickets with no priority yet appear under the None chip on status-card priority grids until you set Critical–Low in the sidebar; until then they stay out of the overdue count.

Keyword → priority rules, Exception Rules, and optional AI suggestions from past tickets live on Settings → Ticket priority (/settings/ticketPriority) — used when the tenant chatbot triages new maintenance tickets. How matching, exceptions, and the life-safety floor combine: How priority is decided. Confirmed AI runs meter as ticket_priority_analysis on the AI usage API.

Cost Tracking​

Each ticket supports cost tracking from report to resolution:

  • Record the cost of repairs or services directly on the ticket.
  • Attach photo evidence and notes for full context.
  • Track the workflow status from initial report through to completion.
  • View cost history per property or vendor for budget planning.
Business Rule

Tickets without an assignee appear in the Unassigned tab on the Dashboard. Managers should review unassigned tickets daily and delegate them promptly.

Automatic Ticket Creation​

You can configure the system to automatically create tickets when check-ins or check-outs occur for a property. This is set up in the Maintenances Tab of the Property edit view (see Maintenances Tab).

For example, you might configure an automatic "Pre-arrival Cleaning" ticket to be created 2 days before every check-in, assigned to your cleaning team with High priority.

Per-booking opt-out

On Add booking, operators can skip automatic CI/CO tickets for one reservation without changing the property rule — turn off Use unit contract rents and other contract details on the rent step, then uncheck Create check-in ticket and/or Create check-out ticket. Marketplace POST /bookings cannot send this skip — imported stays follow the property rule — Creating Bookings — Maintenance tickets. See Glossary — Per-booking maintenance ticket opt-out and Bookings — Creating a New Booking.

Check-in & Check-out Tab​

Pair with other Operations sections

The Check-in & Check-out tab provides a chronological list of tenant arrivals and departures across your portfolio, grouped by event date. Use the Check-ins / Check-outs pills at the top of the list to show only arrivals or only departures (counts on each pill reflect your current search, responsible filter, and date quick filter). Each row shows tenant, property/unit, scheduled date and time, responsible assignee, guest count, turnaround gap (when a same-unit check-out precedes a check-in), and whether a check-in/out email was sent.

Before you hand over keys or release a deposit, confirm unpaid move-in or departure-week charges are not still open — payment overdue rows on /notifications row-click into the related booking; continue with Handling a Late Payment — Step 1 or open Bookings → Payment Plan from the row. When the blocker is a security deposit shortfall (Partial Paid on depositStatus), also triage on Finance → Deposits — see Glossary — Deposit lifecycle status.

Check-in &amp; Check-out tab — date quick filters, search, responsible filter, Filters, and Export on the toolbar

Check-ins only — weekly arrival planning with Next 7 days (same framing as Managing a Check-in):

Operations — Check-in &amp; Check-out tab, Check-ins pill with Next 7 days and grouped arrival rows

Empty Next 7 days on Check-ins

If Check-ins + Next 7 days shows no rows, widen the horizon with Custom (for example the next 14 or 30 days) or switch to Check-outs to review departures in the same window.

The alias workflows-operations-check-in-out-planning-view.png is kept for workflow pages that reference the same framing.

Check-outs only — departure planning with Check-outs + Next 7 days (same toolbar as check-ins; rows show move-out dates and turnaround context). Use this pill when you are running the Managing a Check-out workflow instead of mixing arrivals and departures in one list.

Operations — Check-in &amp; Check-out tab, Check-outs pill with Next 7 days and grouped departure rows

Empty Next 7 days on Check-outs

If Check-outs + Next 7 days shows no rows, your portfolio may simply have no departures in that window — widen the horizon with Custom (for example the next 14 or 30 days) or switch back to Check-ins to compare same-day turnovers on shared units. Short-term iCal imports can surface as pseudo Booking.com Reservation (or similar) departure rows even when no mid-term booking check-out exists in the window — see Glossary — Short-term iCal pseudo check-in/out. Export still downloads whatever slice your filters match.

For each event, you can see:

  • Tenant name and email
  • Property and unit (listing)
  • Event type (Check-in or Check-out)
  • Scheduled date and time (when recorded on the booking)
  • Responsible assignee for the handover
  • Turnaround — hours between a prior check-out and the next check-in on the same unit (when applicable)
  • Platform — short-term channel when relevant

This view is the primary coordination tool for your operations team. Use it to:

  • Plan cleaning schedules — identify which units need preparation before an arrival
  • Coordinate key handovers — ensure someone is available to meet each tenant
  • Spot back-to-back bookings — units with a check-out and a check-in on the same day require same-day turnover coordination (cleaning, keys, deposit timing on departure); see FAQ — How do I handle same-day turnovers?

Toolbar​

ControlPurpose
SearchMatches tenant name, unit (listing) name, tenant email, or property internal name (client-side on the loaded slice; debounced). See Check-in & Check-out toolbar search.
ResponsibleMulti-select teammates already named on a handover. The menu stays open after each tick — see Responsible stays open.
Today / Tomorrow / Next 7 days / CustomLimits which event dates appear in the list; Custom opens a from–to range picker.
FiltersOpens the Other filters drawer (Property, Listing categories, and check-in/out-specific toggles below).
ExportDownloads the currently filtered rows as CSV or Excel.

Responsible stays open while you pick​

Open Responsible on the Check-in & Check-out toolbar, then tick a teammate. A chip appears under the toolbar; the menu stays open so you can tick a second teammate. You do not need to open Responsible again.

The menu lists names that already appear on a handover in this tab (arrivals and departures) — not every user under Settings. Tick the first name, then a second name. Both stay checked in the open list. The Check-ins / Check-outs pill counts update with the chips. Dismiss the menu when the chips look right — same stay-open habit as Tickets — Source and Tickets — Assignee.

Tickets toolbar Assignee is a different control: it filters maintenance work by who can be assigned, not handover names on this tab.

Filters → Assigned responsible is a different control: All, With, or Without answers whether a handover has any assignee. Use Without for unassigned rows — marketplace POST /bookings leaves Check-in responsible and Check-out responsible empty until you assign a teammate on Contract Info (Creating Bookings — Check-in responsible). Named Responsible chips never match those rows.

Other filters (Check-in & Check-out)​

Open Filters in the tab toolbar. The drawer title is Other filters. Property and Listing categories use the same shared Property & date controls as other Operations tabs (see Listing categories filter). Besides that portfolio scope, the Check-in & Check-out section includes:

FilterOptionsUse when
Stay typeAll, Mid-term, Short-termFocus on long-stay vs iCal/short-stay bookings.
Explicit event dateAll, With, WithoutFind bookings that have (or lack) a stored check-in/out date on the reservation.
Scheduled timeAll, With, WithoutFind events with (or without) a scheduled time of day.
Assigned responsibleAll, With, WithoutWhether a handover has any assignee. Marketplace imports land as Without until Contract Info names a teammate. For which teammates, use toolbar Responsible instead.

Active drawer choices combine with search, responsible chips, and the date quick filter. Use Listing categories when cleaning teams own neighbourhood or amenity tags instead of rebuilding the Property multi-select every morning. Use Clear all filters at the bottom of the drawer to reset drawer-only fields.

Operations Check-in &amp; Check-out — Other filters drawer with Stay type Mid-term selected

Operations Check-in &amp; Check-out — Other filters drawer with Stay type Short-term selected (iCal pseudo rows such as Booking.com Reservation visible in the list)

Export​

Use Export on the Check-in & Check-out toolbar when you need a spreadsheet of the same slice you are reviewing (view toggle, search, responsible filter, date quick filter, and Other filters all apply before download).

Open Export, then choose CSV or Excel (.xlsx). Filenames are operations-check-in-out-YYYY-MM-DD.csv or operations-check-in-out-YYYY-MM-DD.xlsx. If nothing matches the current filters, the app shows a no data warning instead of an empty file.

Operations Check-in &amp; Check-out — Export menu (CSV / Excel); download reflects current filters

Typical export columns include Booking ID (first — Vivin booking UUID;, Type, Tenant, Tenant Email, Listing, Date, Time, Responsible, Guest Count, Turnaround, Email Sent, and Platform. Short-term iCal pseudo rows can leave Booking ID blank — filter Other filters → Stay type → Mid-term when you need UUID-backed handovers for offline join keys.

Operations Check-in &amp; Check-out — CSV export column slice highlighting Booking ID as the first column before Type and Tenant

Walkthrough: Operations → Check-in & Check-out (Next 7 days + Mid-term) → Export → CSV — confirm Booking ID is the first column.
tip

Review this tab at the start of each week: set Next 7 days (or Custom for your planning window), scan Turnaround for same-day turnovers, then Export for offline handoff to cleaning or front-desk partners.

The debounced Search box filters the currently loaded check-in and check-out rows (after your date quick filter and Other filters). Matches are case-insensitive substrings on:

FieldExamples
Tenant nameDisplay name on the handover row
Tenant emailContact email on the booking
Unit / listing nameInternal listing label (for example AA-11-5D-R2)
Property internal nameBuilding label when the property name matches

When several fields match, unit / listing name hits are ranked above tenant name or email, and tenant hits above property-only matches — paste a unit code to surface the right handover first within each date group. See Glossary — Directory search ranking.

Operations Check-in &amp; Check-out — toolbar Search narrowed by unit internal name (unit matches ranked first)

Cash Flows Tab​

Pair with other Operations sections

Operational expenses here are not tenant receipts — reconcile tenant payments in Finance; categorize lines with Settings > Categories — Cash flows. Ask AI Chat (or WhatsApp Genius) for total outflow and average cost per unit over a named month (ai-chat-operational-cost-summary-reply.png, ai-chat-operational-cost-summary-flow.mp4), for June 2026 as another named settled month (ai-chat-operational-cost-summary-june-reply.png, ai-chat-operational-cost-summary-june-flow.mp4), for April 2026 as a third named settled month (ai-chat-operational-cost-summary-april-reply.png, ai-chat-operational-cost-summary-april-flow.mp4), for the category split (ai-chat-operational-cost-by-category-reply.png, ai-chat-operational-cost-by-category-flow.mp4), for the June 2026 category split (ai-chat-operational-cost-by-category-june-reply.png, ai-chat-operational-cost-by-category-june-flow.mp4), or for remaining totals after excluding a category by its exact Cash Flows name (ai-chat-operational-cost-exclude-category-reply.png, ai-chat-operational-cost-exclude-category-flow.mp4), including excluding Maintenance as a different exact name (ai-chat-operational-cost-exclude-maintenance-reply.png, ai-chat-operational-cost-exclude-maintenance-flow.mp4), and excluding Manutenção in June when that month’s Cash Flows name is Portuguese (ai-chat-operational-cost-exclude-manutencao-june-reply.png, ai-chat-operational-cost-exclude-manutencao-june-flow.mp4), and excluding uncategorized in June when you want remaining totals after dropping that other exact Cash Flows name (ai-chat-operational-cost-exclude-uncategorized-june-reply.png, ai-chat-operational-cost-exclude-uncategorized-june-flow.mp4), and excluding maintenance in April when you want remaining totals after dropping that month’s exact Cash Flows name (ai-chat-operational-cost-exclude-maintenance-april-reply.png, ai-chat-operational-cost-exclude-maintenance-april-flow.mp4), and excluding maintenance and uncategorized in April when you want remaining totals after dropping both exact names (ai-chat-operational-cost-exclude-maintenance-uncategorized-april-reply.png, ai-chat-operational-cost-exclude-maintenance-uncategorized-april-flow.mp4), and for 1–15 April 2026 as a custom half-month window (ai-chat-operational-cost-summary-april-first-half-reply.png, ai-chat-operational-cost-summary-april-first-half-flow.mp4), and for 16–30 April 2026 as the other custom half-month window (ai-chat-operational-cost-summary-april-second-half-reply.png, ai-chat-operational-cost-summary-april-second-half-flow.mp4), and for February 2026 as a fourth named settled month (ai-chat-operational-cost-summary-february-reply.png, ai-chat-operational-cost-summary-february-flow.mp4), and for 1–14 February 2026 as a custom February half-month window (ai-chat-operational-cost-summary-february-first-half-reply.png, ai-chat-operational-cost-summary-february-first-half-flow.mp4), and for 15–28 February 2026 as the other custom February half-month window (ai-chat-operational-cost-summary-february-second-half-reply.png, ai-chat-operational-cost-summary-february-second-half-flow.mp4), and for January 2026 as a fifth named settled month (ai-chat-operational-cost-summary-january-reply.png, ai-chat-operational-cost-summary-january-flow.mp4), and for March 2026 as a sixth named settled month (ai-chat-operational-cost-summary-march-reply.png, ai-chat-operational-cost-summary-march-flow.mp4), and for May 2026 as a seventh named settled month (ai-chat-operational-cost-summary-may-reply.png, ai-chat-operational-cost-summary-may-flow.mp4). Enable Analytics on AI / MCP. That summary is not Finance income and not the Dashboard cash-flow forecast.

The Cash Flows tab (also called Operational Cash Flows) tracks day-to-day operational expenses that are not tied to a specific booking — for example, supplies purchases, contractor invoices, building repairs, or administrative costs.

Operations Cash Flows List

Operations Cash Flows — month chips, Custom, Category, and Supplier on the toolbar

Cash Flows date quick filters​

The Cash Flows toolbar includes month chips plus Custom, next to Search, Category, and Supplier. The same chips appear on narrow viewports under the summary cards.

ControlWhat it does
Month chips (for example Jun 26, Jul 26, Aug 26)Limit the list and summary cards to that calendar month. Labels use the signed-in locale (short month + two-digit year).
CustomOpens a from–to range picker. The first time you choose Custom (or switch into it from a month chip), the range starts empty (Start date – End date) so you can click a start day, then an end day, without the previous month filling both fields.
Clear on the range triggerOn desktop, when a custom range is set, use the Clear control on the date trigger to wipe the from–to values and pick again. Re-clicking Custom while it is already selected only re-opens the picker — it does not discard a range you just chose.

Active Other filters (shared Operations drawer) still combine with this date window. Export downloads the same filtered slice.

Operations Cash Flows — Custom selected with empty Start date / End date before picking a range

Operations Cash Flows — Custom range applied on the toolbar (from–to dates)

Walkthrough: on Operations → Cash Flows, switch from a month chip to Custom (empty Start date / End date), pick a from–to range, and review the filtered list.

Cash Flows list loading (infinite scroll)​

The cash-flow ledger uses the same chunked pattern as the Tickets tab: about 20 rows load first, then about 5 more per scroll near the bottom of the table. A loading line appears under the list while the next batch fetches. Changing search, Other filters, or sort reloads from the first batch.

If this list needs a refresh — Use Retry on the directory refresh card, or reload the page. See Glossary — Directory list refresh.

Export on this tab downloads the full filtered cash-flow set from the server — not only the rows already scrolled into the on-screen list (same habit as Tickets → Export).

Each cash flow entry shows:

  • Title and description of the expense
  • Amount
  • Date
  • Property it relates to
  • Cost allocation category — how the expense is classified for reporting

The debounced Search box is sent to GET /cashflow/page (same filter set as the infinite list and Export). Matches are case-insensitive substrings on:

FieldExamples
Unit / listing nameInternal listing label stored on the cash flow (for example AA-11-5D-R2)
TitleShort label you typed when creating the entry
DescriptionLonger notes in the cash flow sidebar
Property internal nameBuilding label on the row

When several fields match, unit / listing name hits are ranked above title, description, or property-only matches — paste a unit code to surface expenses tied to that room first. See Glossary — Directory search ranking.

Operations Cash Flows — toolbar Search narrowed by unit internal name (unit matches ranked first)

Comprehensive Cash Flow Dashboards​

The Cash Flows tab provides detailed financial visibility:

  • Per property, unit, or portfolio — track every euro in and out in real time.
  • Detailed cost allocation — assign operational expenses (maintenance, cleaning, supplies, contractor fees) to specific properties, units, or tenants.
  • Supplier and contractor cost history — track spending per vendor over time for better negotiation leverage.
  • Exportable reports — generate cash flow statements and cost reports for owners, investors, and accountants.

Use Export on the Cash Flows toolbar the same way as on tickets: pick CSV or Excel (.xlsx). Vivin loads the full filtered cash-flow set from the server when you start the download (matching your current filters, search, and sort), then builds the file — you do not need to scroll the infinite list first. On large accounts you may see a brief wait while the export fetch runs; the on-screen list stays paginated for everyday browsing. Filenames are cashflows-YYYY-MM-DD.csv or cashflows-YYYY-MM-DD.xlsx. If nothing matches the current filters, you get a no data warning instead of a file.

Operations Cash Flows — Export menu (CSV / Excel) on the Cash Flows tab; download reflects current filters and sort

Spreadsheet columns are, in order: Date, Description, Category, Supplier, Invoice #, Tax ID, Property, Created by, Method, Type, and Amount. Outflows appear as negative amounts. Invoice # and Tax ID mirror the supplier invoice fields on the cash-flow detail (blank when the entry has no invoice metadata) so accounting exports can join supplier invoices without re-opening each row.

Operations Cash Flows — CSV export column slice highlighting Invoice # and Tax ID between Supplier and Property

Walkthrough: Operations → Cash Flows → Export → CSV — confirm Invoice # and Tax ID sit between Supplier and Property on the downloaded file.

Cost Allocation​

When you create or edit a cash flow entry, you can assign it to a cost allocation category:

Cash Flows Cost Allocation Dropdown

Cost allocation allows you to categorize operational expenses for reporting purposes. For example, you might create categories like "Cleaning Supplies," "Plumbing Repairs," "Administrative," or "Insurance." This makes it possible to generate reports showing where your operational budget is being spent.

Business Rule

Cost allocation categories are configured in Settings > Categories > Others Items Categories. Create your category structure before adding cash flow entries so that all expenses are consistently classified.

Adding a Cash Flow Entry​

To record an operational expense, click Add Cash Flow (desktop toolbar) or the floating + on a narrow viewport, then fill in:

  • Type — outflow or inflow
  • Amount
  • Date of the expense
  • Property — which property this expense belongs to
  • Category / Supplier — when your account uses those lists
  • Description — any additional context
  • Files / Images — attach receipts or invoices before you save (see Multi-file attach on Add Cash Flow)

On desktop, the Add Cash Flow modal includes the Files / Images dropzone in the same form as the amount and property fields — you do not need to save first to attach a receipt.

Operations — Add Cash Flow modal with empty Files / Images dropzone

Operations — Add Cash Flow modal after attaching a receipt (thumbnail preview, Tap to add more)

On narrow viewports, the modal can open in attachment-only (quick add) mode when Account Settings → Preferences → Cash flows has Mobile quick add (attachment only) by default On. Capture the receipt first, then use Fill in all details now (or edit the row later / run AI Invoice Analysis).

Operations — Add Cash Flow on mobile in attachment-only quick mode

Cash Flow Detail Modal

Multi-file attach on Add Cash Flow​

Pair with other Cash Flows sections

Multi-file attach pairs with Adding a Cash Flow Entry, Attaching Documents to a Cash Flow, and AI Invoice Analysis after the row is saved.

Use Files / Images on Add Cash Flow when a supplier invoice spans more than one photo or you want the receipt and a signed quote on the same ledger line.

ActionWhat happens
Click the dashed dropzoneOpens the file picker (images, PDFs, and other invoice formats your device can choose).
Drag and drop onto the dropzoneAdds the file(s) without opening the picker — the border highlights while you hold a file over the zone.
After the first attachmentThumbnails appear with a remove (×) control; Tap to add more stays under the row so you can click the zone again for a second file.
× on a thumbnailRemoves that file only — it does not reopen the picker.
Cancel / close the modalClears any files you attached in this draft so the next Add Cash Flow opens empty.

You can attach several files before Create Cash Flow. Common patterns: invoice photo + bank transfer confirmation, or a phone HEIC plus a PDF from email. Vivin does not require a narrow file-type filter in the picker — if your phone or scanner exports an unusual invoice format, try attaching it here the same way you would on the cash-flow detail sidebar.

Operations — Add Cash Flow with two receipt thumbnails and Tap to add more

Operations — Add Cash Flow dropzone highlight while dragging a file over Files / Images

Walkthrough: open Add Cash Flow, attach a receipt, add a second file with Tap to add more, then review the multi-file dropzone (demo cancels without saving).

Attaching Documents to a Cash Flow​

Every cash flow entry supports file attachments — use this to keep receipts, contractor invoices, and supplier quotes directly alongside the expense record.

  • While creating — use Files / Images on Add Cash Flow (desktop multi-file dropzone above, or mobile quick-add).
  • After saving — open a cash flow row to the Cash Flow Details sidebar and use Add file under Files:

Cash Flow Attachments

Having receipts attached directly to each cash flow entry makes audits, owner reports, and expense reconciliation significantly easier — everything is in one place.

AI Invoice Analysis (Cash Flows)​

When a cash flow has an image or PDF attachment, use AI Analysis on the Files row to extract supplier, invoice #, tax ID, date, and amount from the document and apply them to the cash-flow fields.

Operations — Cash Flow Details sidebar with AI Analysis on an attached supplier invoice

  1. Open Operations → Cash Flows and select a row that has an invoice photo or PDF.
  2. Click AI Analysis.
  3. Choose Sonnet 4.6 or Opus 4.8, read the attachment count and token / USD estimate, then Analyze & apply — or Cancel.

Operations — AI Invoice Analysis modal with model choice and cost estimate

Walkthrough: open a Cash Flow with an invoice attachment, AI Analysis, review the estimate, then Cancel (or Analyze & apply when intentionally refreshing fields).
Field apply rules

Extracted values replace blank or differing fields. The description is filled only when empty — existing operator text is never overwritten. Bulk selection on the Cash Flows table can run the same analysis across multiple rows (first batch per run); confirm estimates before you start.

AI usage metering

Each confirmed analysis records cashflow_invoice_analysis in ai_usage (internal USD). Poll GET /ai-usage/summary?feature=cashflow_invoice_analysis. Distinct from Utilities — AI Invoice Reader (utility_bill_extraction), which extracts property utility bills — not operational cash-flow attachments.

Key Business Rules for Operations​

Summary
  1. Unassigned tickets need immediate attention. Tickets without an assignee are visible on the Dashboard's Unassigned tab. Managers should delegate these daily to ensure nothing falls through the cracks.

  2. Ticket categories must be configured first. Before creating tickets, set up your category taxonomy in Settings > Categories > Tickets Categories. This ensures consistent classification across your team.

  3. Automatic tickets reduce manual work. Use the property Maintenances tab to configure recurring check-in and check-out tickets. This eliminates the need to manually create preparation tasks for every turnover.

  4. Cash flows are separate from booking payments. The Cash Flows tab tracks operational expenses, not tenant payments. Tenant payments are tracked in the Finance module.

  5. Cost allocation categories drive expense reporting. Consistently applying cost allocation categories to cash flow entries enables accurate property-level expense reporting and owner statements.

  6. Supplier cost history aids negotiation. Track spending per vendor over time to build leverage for contract renegotiations and identify cost-saving opportunities.

Operations guide subsection index​

Pair with other Operations module guide sections

This index pairs Operations tab sections with Related subsections — use it when turnover week tickets disagree with Bookings context or Finance tenant receipts.

SubsectionWhen to open itPair with
Directory refreshTickets or Cash Flows needs a refreshGlossary — Directory list refresh, FAQ — Directory list refresh
Mobile and narrow layoutsBottom tab bar or phone-only redirectFAQ — Phone shows Operations only, Glossary — Operations-only phone shell, Deep Links — Operations, Getting Started — Mobile phones (operations-only shell)
Overview tabPortfolio KPI cards and ticket summaryDashboard module, Analytics — Maintenance tab, Portfolio KPI review — Step 5, Listing categories filter (operations-other-filters-listing-categories-selected.png, operations-listing-categories-filter-flow.mp4), Overdue KPI card (operations-overview-overdue-kpi-card.png, operations-overview-overdue-opens-tickets.png, operations-overview-overdue-card-flow.mp4), Ticket volume trend (ai-chat-maintenance-closure-rate-reply.png, ai-chat-maintenance-closure-rate-flow.mp4, ai-chat-maintenance-closure-rate-45-day-reply.png, ai-chat-maintenance-closure-rate-45-day-flow.mp4, ai-chat-maintenance-closure-rate-50-day-reply.png, ai-chat-maintenance-closure-rate-50-day-flow.mp4, ai-chat-maintenance-closure-rate-90-day-reply.png, ai-chat-maintenance-closure-rate-90-day-flow.mp4)
What counts as overdueOverview Overdue vs Tickets Overdue — same SLA clockOverdue KPI card, Preferences — Ticket Priorities, FAQ — Why is Overview Overdue lower than tickets that look late?, Glossary — Overdue ticket (SLA) (operations-overview-overdue-kpi-card.png, settings-preferences-ticket-priorities-card.png)
Listing categories filterTag-scoped Operations work (teams / neighbourhoods)Settings → Categories, Check-in & Check-out — Other filters, Finance — Property and listing filters
Schedule tab (Vivin internal)Vivin-internal maintenance calendar; sticky PROPERTY labels (name, address, ticket count)Listings — Maintenances tab, Deep Links — Operations, operations-schedule-tab-week-view.png, operations-schedule-tab-day-view.png, operations-schedule-tab-ticket-bar-detail.mp4
Planning tabDay dispatch board (people × time)Users — Role permissions, Deep Links — Operations, Managing a Check-in — Step 2, Managing a Check-out — Step 2, Same-day turnover coordination
Tickets TabMaintenance work queue, ticket status (no Open), Draft display status, toolbar Category filter (including Category stays open), Source stays open, Assignee stays open, Schedule hour, Internal note filter and sort, Overdue filter and status cards, None priority chips, and Assignment email See ticketBookings — Tickets tab, Settings > Categories — Tickets, Ticket status (no Open) (operations-tickets-status-unassigned-row.png, operations-ticket-detail-status-picker.png, operations-ticket-detail-status-picker-flow.mp4), Schedule hour, Internal note filter and sort (operations-tickets-other-filters-internal-note.png, operations-tickets-other-filters-internal-note-with.png, operations-tickets-filters-badge-internal-note.png, operations-tickets-internal-note-column-sorted.png, operations-tickets-internal-note-filter-flow.mp4), Overdue filter and status cards, None priority chips, Assignment email See ticket
Customize your ticket columnsHide or reorder Tickets table columns for your user (ID / Status always on; Internal note off by default)Personal Settings — Operations ticket columns, FAQ — How do I choose which columns I see on Operations Tickets?, Glossary — Operations ticket columns
Assignment email See ticketOpen a maintenance ticket from mailbox See ticketDeep Links — Ticket email deep link, FAQ — See ticket from a maintenance email, Ticket details sidebar (operations-tickets-email-see-ticket-deep-link.png, operations-tickets-email-see-ticket-sidebar.png, operations-tickets-email-see-ticket-flow.mp4)
Linking cash flows to a ticketSupplier spend on a maintenance ticketFinance — Transactions tab, Glossary — Ticket linked cash flows
Check-in & Check-out TabArrivals, departures, and turnover week; Responsible stays openManaging a Check-in, Managing a Check-out, Notifications — Payment overdue alerts, FAQ — Does picking a second responsible teammate close the Check-in & Check-out menu?
Cash Flows TabOperational expenses (not tenant receipts)Finance module, Settings > Categories — Cash flows, Cash Flows date quick filters, Multi-file attach on Add Cash Flow (operations-cashflows-add-modal-multi-attachments.png, operations-cashflows-add-attachments-flow.mp4), AI Invoice Analysis (cashflow_invoice_analysis)
Key Business Rules for OperationsTicket vs support semantics and SLA habitsUsing in-app support, Listings — Maintenances tab
Deeper workflow readsStep-by-step procedures in this moduleCommon Workflows hub subsection index, Managing a Check-in
Lockout catch-up after password recoverySign-in restored; module backlog accumulatedCommon Workflows — Lockout catch-up, Getting Started — Lockout catch-up, Resetting a Management User Password — Step 3
Pending manual receipt approvalRecorded bank transfers still pending until Approve paymentsCommon Workflows — Pending manual receipt approval, Finance — Pending manual payments, FAQ — Manual receipt still pending
Reject/revert mistaken receiptsDuplicate or wrong-booking receipts after ApproveCommon Workflows — Reject/revert mistaken receipts, Payment Allocation — Correcting mistaken receipts, Glossary — Credit note (payment reject/revert)
Notification row-click navigation/notifications row-click before turnover-week prepCommon Workflows — Notification row-click navigation, Notification triage — Step 4, Check-in & Check-out Tab
Payment alert to receivables triagepayment overdue before key handover on arrivals/departuresCommon Workflows — Payment alert to receivables triage, Handling a Late Payment — Step 1, Notifications — Payment overdue alerts
Confirmation alert triageUpcoming confirmation alerts before turnover prepCommon Workflows — Confirmation alert triage, Processing a New Booking — Step 5b, Managing a Check-in — Step 1
Portfolio segmentation by tenant categoryReview one tenant segment across modulesCommon Workflows — Portfolio segmentation, Settings > Tenant categories, Finance — Tenant category filter, Tenants — Tenant category filter
Finance debt receivables triageUnpaid move-in lines may block handover while Total Debt stays high — triage Debt Aging after PendingCommon Workflows — Finance debt receivables triage, Finance — Finance debt receivables triage, FAQ — Finance debt receivables triage hub, Check-in & Check-out Tab, Pending manual receipt approval (finance-overview-debt-aging-expanded-bucket.png, finance-overview-debt-aging-walkthrough-flow.mp4)
Finance Income status drill-downUnpaid move-in lines may appear in wrong-month In debt segment — verify Payment Plan firstCommon Workflows — Finance Income status drill-down, Finance — Income status drill-down, FAQ — Finance Income status drill-down hub, Check-in & Check-out Tab, Tickets Tab (finance-overview-income-status-in-debt-modal.png, finance-overview-income-drill-down-flow.mp4)
Cash flow forecast drill-downMove-in collections may lag Cash flow forecast month bars until Transactions are approvedCommon Workflows — Cash flow forecast drill-down, Finance Income status drill-down, Finance — Income chart and cash flow forecast, FAQ — Cash flow forecast drill-down hub, Cash Flows Tab, Check-in & Check-out Tab (finance-overview-cash-flow-all-payments-modal.png, finance-overview-cash-flow-day-view.png, finance-overview-cash-flow-drill-down-flow.mp4)
Operations section cross-referencePer-tab pairing matrixModule cross-reference, Bookings guide subsection index

Operations section cross-reference​

Use the sections above for this module. Related pages are linked from Related below when present, or from Modules.

Pair with other Operations module guide sections

Related below links this module to settings, concepts, workflows, and escalation paths.

Documentation map & escalation​

  • Modules hub — Hub pairing matrix across operator workspaces
  • Using in-app support — Vivin product tickets distinct from internal Operations maintenance tickets; drawer Status stays open while you add a second workflow state
  • Glossary — Term definitions used across turnover and ticket workflows
  • FAQ & Troubleshooting — When Operations tabs fail to load or mobile redirect surprises field staff
  • Get Help & Support — Escalate when ticket or cash-flow permissions block access

Upstream & downstream workflows​

Deeper workflow reads​

See Upstream & downstream workflows above for the same guides.

Pair with other Operations module guide sections

Bookmark routes pair with Management Frontend Deep Links and Create New menu.

Settings that shape Operations​

Deeper concept reads​

  • Tenant Portal — Tenant-submitted maintenance requests; portal Received is Unassigned here
  • 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
  • Booking Lifecycle — Computed Upcoming → Ongoing → Ended / Canceled status model, list filters, and Timeline
  • Integrations & Distribution — Short-term iCal imports surface as channel-labelled pseudo check-in/out rows on Check-in & Check-out
  • Services Marketplace — Fulfilment or damage tickets when portal Request Service orders need operator follow-up
  • Landlord MCP — External automation for ticket and cash-flow writes gated by operations.module
  • Tenant MCP — Booking-scoped maintenance tools that create or escalate tickets from tenant channels

Operator modules (pairing surfaces)​

Operator habit hubs​

Day-to-day operator habits (lockout catch-up, pending receipts, payment triage, handoffs, and related playbooks) live on the Common Workflows habit hub.

Deep-link anchors for habit hubs

Lockout catch-up after password recovery​

Pending manual receipt approval​

Reject/revert mistaken receipts​

Check-out ledger cleanup before refund​

Utility overage collections​

Cancellation collections before void​

Check-out collections before refund​

Handling a Late Payment collections​

Check-out vs cancellation​

Deposit missing on Finance Deposits​

Notification row-click navigation​

Payment alert to receivables triage​

Finance debt receivables triage​

Finance Income status drill-down​

Cash flow forecast drill-down​

Confirmation alert triage​

New inventory to first booking handoff​

Property setup to first arrival handoff​

Confirmation to check-in handoff​

Check-in to check-out handoff​

Check-out final utilities handoff​

WhatsApp per-booking messaging​

Bot reasoning (audit)​

ChatBot settings​

Rent reduction after invoicing​

Same-day turnover coordination​

Occupancy KPI to block hygiene handoff​

Partly collected security deposit​

Month-end invoicing (fixed date)​

Bulk Hostkit invoicing​

Portfolio segmentation by tenant category​

Directory list refresh​

When a list needs a refresh instead of showing rows, use Retry or reload the page. Zero rows after a successful load means your filters matched nothing — widen filters or clear search.

See FAQ — Directory list refresh and Glossary — Directory list refresh.

Key glossary terms​

API & companion guides​

Module documentation hubs​

  • Operations module — Hub for maintenance tickets, cash flows, check-in/out coordination, Draft ticket queues, and linked cash flows (this page)
  • Bookings module — Full reservation lifecycle with sidebar Tickets and Communication tabs (hub)
  • Finance module — Portfolio ledgers with payment approval and deposit settlement (hub)
  • Listings module — Property wizard, Maintenances tab, and unit management (hub)
  • Dashboard module — Post-login Today, Total debt, Vacant Units, and forecast KPI snapshot (hub)
  • Analytics module — Month-range portfolio KPI charts with Maintenance tab (hub)
  • Utilities module — Bills Included ceiling model, Connections, and tenant overage charges (hub)
  • Sales module — Portfolio availability, monthly rent editing, and channel manager connections (hub)
  • Inbox module — Portfolio-wide WhatsApp workspace (hub)
  • Notifications module — Full /notifications history with row-click navigation (hub)
  • AI Chat module — AI Assistant for portfolio Q&A (hub)
  • Audit module — Portfolio-wide Manual Blocks and Discounts contract-value review (hub)
  • Properties workspace — Legacy /properties URL redirects into Listings (hub)
  • Booking engine details — Rich marketplace payload editor via the Full integration pill (hub)
  • Tenants module — Tenant directory, profile sidebars, and With Debt segmentation (hub)
  • Account Settings — Workspace-wide financial policies, templates, integrations, and operational defaults (hub)
  • API Reference hub — Partner HTTP contracts and partial vs full feeds (hub)