Maintenance and recurring tasks

One-off maintenance requests vs scheduled recurring work, and how each is verified.

On this page

Two modules cover the operational work of keeping a property running. Maintenance handles one-off requests (a tenant reports a leaking tap). Recurring tasks handle scheduled work (quarterly fire-alarm inspection, monthly cleaning visit).

Maintenance requests

A maintenance request records an issue on a property or one of its units, usually after a tenant reports it to you.

The flow

  1. Report: A team member opens Maintenance → New request and records the issue: the property, the unit if it applies, a title, a description and a priority. There is no tenant-facing portal, so a request is always entered by someone on your team.
  2. Assign: The request appears in the maintenance list. Assign it to an in-house technician or to a vendor, either by naming a person or by pointing it at a role.
  3. Resolve: The technician marks the work done and attaches completion proof, such as before and after photos.
  4. Review and close: The request runs through the approval steps below. Closing it records the total cost against the request.

The default approval workflow

Once the technician finishes, the request moves through a four-step approval chain (customizable in Settings → Workflows → Maintenance):

  1. Operator Action: the technician marks the work complete and attaches completion proof (photos/videos).
  2. PM Review: the Property Manager reviews the work, attaches the invoices, and enters the total cost (decimals accepted, e.g. 1,250.75).
  3. Accountant Review: the accountant verifies the invoices against the cost, optionally attaches an accounting statement, and approves or returns the request to an earlier step with a note.
  4. PM Confirmation: the Property Manager confirms the statement matches what was uploaded. Completing this step closes the request and records the total cost against it.

Closing a request does not create an expense entry for you. If you want the cost in your books, record it under Expenses.

Any reviewer can Return the request to any earlier step with a reason. The assignee of that step is notified and the history timeline records the round-trip.

Documents and the audit trail

Every upload appears in three places on the request page, each with a different job:

  • Task history (timeline): each completed step's entry lists what was uploaded there, prefixed with the slot name (e.g. "Invoices · march.pdf"). Reviewers see earlier steps' files immediately: the accountant sees the PM's invoices before approving.
  • Workflow documents, the live, organized view: one row per step's upload slot for the current cycle. When a step was returned and re-completed, the superseded files stay available under Previous versions, so you can see exactly what changed across decline rounds.
  • Evidence & notes: the permanent record, grouped by cycle (CYCLE #1, CYCLE #2, …). Reopening a request starts a new cycle; earlier cycles' evidence stays here.

Deleting media (admins)

Admins can permanently delete any uploaded file or note, including on closed requests (e.g. removing a wrong or sensitive upload). Use the trash icon on an evidence tile or a workflow document. Deletion removes the file from the request, the document archive, and storage, and cannot be undone.

Notifications

Each step transition fires inbox notifications to the relevant roles. The default workflow notifies the assignee on assignment and the coordinator on completion. Workspace admins can adjust which role gets notified at each step. See Workflows and approvals.

Recurring tasks

A recurring task template describes work that needs to happen on a schedule: "Inspect the fire alarms in Al-Olaya Tower every 90 days." The template auto-generates an actual task instance each time the schedule fires, assigned to whomever the template says.

Setting up a template

Open Recurring → New template. The form walks through four steps and shows a summary before you save:

  1. Basics: property, unit (or property-wide), task title and description.
  2. Schedule: the first occurrence date, how often it repeats (every N days, weeks, months or years), when it stops repeating, and when reminders go out. The next three dates appear under the fields, so you see the real schedule before saving.
  3. Assignment: who carries out the task, a role or a specific person. This step disappears entirely when the Team module is off for the workspace.
  4. Contract & renewal: optional. The service contract's amount, notes and document, plus the option to track when it expires.

Save. The first instance generates at the next scheduled date.

Repeating until a date, or forever

A recurring task can repeat forever or until a date. Forever is the default, and it is what every template you already set up does, so nothing has changed underneath you.

Repeats until on the Schedule step starts on Never. Switch it to On a date and pick the day the series stops. The date is included: "repeats until 30 June 2027" means the 30 June visit still happens and the one after it does not. Set it back to Never and the task repeats with no end again.

You can change your mind whenever you like. Shortening a schedule removes the tasks that were already scheduled past the new date, and extending it puts them back. A task somebody has already started work on is kept either way, so a date change never destroys an approval that is halfway through.

An end date in the past is allowed and saves without a warning. It is how you record an agreement that has already finished.

The contract expiry date suggests an end date. Fill in Contract expiry date on the Contract & renewal step and Repeats until switches to that same date, because the usual reason a visit schedule ends is that the agreement paying for it ended. It is a suggestion and not a rule. It only fills a field you have left alone, so it never overwrites a date you picked yourself, and you can change it or set it back to Never afterwards. Nothing rewrites it later, on that save or any save after it.

Both fields are independent. Repeats until is always on the Schedule step, whether or not you are tracking a contract, because when the work stops is a fact about the schedule.

Deciding a contract renewal

When the expiry date approaches, a renewal task asks one question: renew, or end it. What you answer also moves the schedule.

  • End contract stops the series on the contract's expiry date, not on the day you decide. Deciding in October that you will not renew an agreement running to 31 December leaves the October, November and December visits in place, because you are still paying for them. If you had already set an earlier end date yourself, that earlier date is kept.
  • Confirm renewal, with a new expiry date, carries the end date forward to the new date, but only if the two matched to begin with, meaning you accepted the suggested date. A template that repeats forever goes on repeating forever, and an end date you chose yourself stays where you put it.

Ending a contract does not archive the template. It stays where you can find it, and the visits still covered by the contract go ahead as scheduled. Once the end date has passed, its schedule line reads "Ended" with the date.

When an instance generates

Each generated task lands in the assignee's task list. They work through the checklist, attach photos, record any expenses incurred (e.g. a replacement part), and mark Complete. The recurrence rolls forward automatically.

What the Complete step asks for (which documents to attach and which fields to fill) is driven by your recurring-task workflow (Settings → Configuration → Workflows → Recurring task), not a fixed form: a workspace admin can add attachment slots or input fields to the operator step and they appear when completing. Whatever's captured shows in the task's Workflow documents, and any later review/approval steps (PM, GM) are approved or returned the same way as maintenance.

The Free plan caps recurring task templates at 10. Paid plans are unlimited.

Maintenance vs recurring: when to use which

Use caseModule
Leaky tap reported by a tenantMaintenance request
Quarterly fire-alarm testRecurring template
Mid-tenancy spot inspection scheduled by youRecurring template (one-off occurrence is fine)
Damage flagged at move-outMaintenance request
Annual property tax filing reminderRecurring template, once a year

Roles and permissions

There is no role called "Maintenance". Four boxes in the role editor decide who does what, and they are separate so a technician does not also get a manager's reach:

BoxWhat it lets someone doHeld by default
Complete maintenance workFinish a job and record what it tookOperator
Review maintenance workReview finished work, and see the jobs on their propertiesProperty Manager, General Manager
Manage maintenanceReassign a job to another role or person, and reopen a closed oneOperator, Property Manager, General Manager
Delete maintenance requestsDelete a request with its photos and invoices, permanentlyAdmin

Whoever holds the current step of the maintenance workflow can always act on that job, with or without these boxes: being handed a step is itself the authority to finish it.

Recurring templates are separate again, under Manage recurring tasks.

You can change all of this. See Roles and permissions and the Permissions reference.