Search
The search button at the top of every page opens one query, many registers. Press ⌘K (Ctrl+K on Windows) to open it from anywhere, or tap the search icon on a phone. Type a project name, a defect number or description, an Issued To company, a document, a room, or a person. All six are searched in a single call, and the results come back grouped by type.
Before you type, it shows your recent searches and the records you opened recently, plus shortcuts to Dashboard, Projects, Issued To, Reports and Users.
What's indexed today
Search covers six entity types:
- →Projects — by name.
- →Defects — by number or by anything written on them: the description, the location and the levels above it, the Issued To company, contact and email, who raised it (by name or email address) and who entered it, the classification, access notes, a linked work order and Cost To. Type a defect number such as ABC-042 and that defect comes first.
- →Issued To — by company name (excludes deleted companies).
- →Documents — by title or current-revision filename (active documents only), including company-level documents.
- →Locations — by name, shown with the full path (Building › Level › Unit › Room). On a desktop it opens that spot on the Wall Sheet; on a phone it opens the location, where you can log a defect right there.
- →Users — by first name, last name, or email.
Each group returns up to five results per query, so the list stays compact even on broad queries. RFIs and work orders aren't indexed in search — to filter them, use the inbox views inside the RFIs and Work orders modules. The defect and work order lists have their own search boxes that match every field; see Defects.
How matching works
Matches are case-insensitive substring (SQL ILIKE). A query for "smith" will match "Smith Construction", "ELLE SMITHSON", and bob.smith@example.com. The minimum query length is 2 characters — shorter queries return no results to avoid flooding the UI.
Tenant and project scope
Two layers of scope are always applied:
- →Tenant scope — every query runs inside your current organisation. You never see records from another tenant, full stop.
- →Project scope — Company Admins and Managers search across every project in the organisation. Everyone else sees projects, defects, locations and users only from projects they're a member of.
Documents follow the same rules as the documents register: you only find a document you could open there. Issued To companies are organisation-wide context and aren't filtered by project.
"Invite by email"
If your search query looks like an email address, no user matches, and your role has the user:invite permission, search adds an "Invite [email]" affordance at the end of the user results. Click it to open the invite flow pre-filled with that address.
The check is gated three ways: looks-like-email, no existing matches, and you have permission to invite. It won't appear if any of those fails.
Result grouping
Results return as one object with six named arrays (one per entity type). The UI groups them visually with a small header per type and a result count. Empty groups don't render — so a query that only matches users shows just users, with no empty Projects or Defects sections cluttering the dropdown.
What to read next
- →Roles & dashboards — the role gates that determine what surfaces a user can search across.
- →Projects — project membership is what scopes results for everyone below Manager.
- →Contractors — the Issued To list that search hits.