User Guide · Version 1.0 · 2026

Everything you need to know

A complete, practical guide to every feature in Endulo — from your first project to advanced team workflows.

1. Getting Started

1.1 Creating an Account

Visit endulo.com and click "Get Started". Enter your name, email, and password. After registration, check your email for a verification link — you must verify your email before you can log in.

1.2 Logging In

Go to endulo.com/login and enter your email and password. After five failed attempts within 15 minutes, your account is temporarily locked; wait 15 minutes and try again. If you have scheduled your account for deletion, signing in shows only the screen to cancel it (16.15).

The Endulo logo above the sign-in and sign-up forms (and the password-reset and email-verification pages) takes you to the endulo.com home page.

1.3 Personal Space vs. Organization

When you first log in, Endulo creates a Personal Space — a private workspace that belongs only to you. It is always available even if you have no organization. A Personal Space has no Time, Team or Resources pages.

An Organization is a shared workspace for a team or firm: shared projects, team management, and time tracking across its members. You can create one with New organization at the foot of the sidebar's organization switcher, or accept an invitation from a colleague. You can belong to several organizations at once.

1.4 Organization Setup

The first time an administrator opens a new organization — after their own welcome, which asks for an avatar and a theme — a short wizard asks three things: the organization's core business hours (which days it works and from when to when), its leave types (a suggested set, added in one click), and a public holiday calendar for your country. Each step can be skipped, and everything it sets can be changed later (Section 16.9). When it finishes, it takes you to Settings → General.

1.5 Switching Organizations

Click the organization name at the top of the sidebar. A dropdown shows all organizations you belong to and your Personal Space. Choosing another switches the whole app to it — projects, team, time and every other page then show that organization's data. Under the name, the switcher shows your role in the active organization (or "Personal space"). An organization scheduled for deletion stays in the list, marked Scheduled for deletion, and opens on its locked screen (Section 16.14).

Your workspaces

Studio Ionescu & Partners

Admin

Active

Arh. Popescu SRL

Architect

Personal Space

Owner

New organization

The switcher names your organization from the moment the page paints — it never shows "Select Org" while the page loads. Beside the name sits the organization's logo if one has been uploaded (or the generated avatar it chose under Settings → General); an organization with no logo shows a plain building mark, never a random picture.

1.6 Navigation Overview

The sidebar on a desktop and the bottom bar on a phone (Section 21.1) are your main navigation. The sidebar holds:

  • Home — the page you land on, with stats, tasks, and deadlines (Section 2)
  • My Work — your own tasks across all projects (Section 6)
  • Time — log your hours and read them back, filtered, on the Hours tab (Section 10)
  • Workspaces — Documents, Projects, Permits, Tasks, Clients, Resources, Vendors & Brands, and Collaborators
  • Team — members, teams, and invitations (Section 15)
  • Notifications — alerts and updates, with an unread count (Section 14)

Settings sits at the foot of the sidebar (Section 16). An entry your role cannot open is not shown at all (Section 16.4).

This guide is also a page of its own, at endulo.com/manual. Every numbered subsection there has its own link, made from its number with the dots turned into dashes: endulo.com/manual#16-4 opens Section 16.4, Roles, and a link to a whole chapter still opens at the chapter's start.


2. Home

Home is the page you land on after login.

2.1 Stat Cards

Four cards across the top show:

  • Active Projects — the projects you can see that are not closed. Click it to open the Projects page.
  • Due This Week (blue) — your tasks due between today and the end of the week. Click it to open My Work.
  • This Month (green) — your tasks completed since the first of the month.
  • Overdue (red) — your tasks past their due date. While it is above zero the card is ringed in red. Click it to open My Work.

All four — like the Upcoming Deadlines list — count only active projects: closing a project (or moving it to the trash) removes its phases and tasks from these numbers.

The three that count tasks count your own tasks — the ones assigned to you — in every shape, general work included (Section 6.7): a week spent renewing the printer contract reads as a full week here, not an empty one. So they describe the same work as the My Tasks list beneath them and the My Work page two of them open. A role whose Tasks are Hidden sees only Active Projects (Section 3.3.1). Active Projects counts the projects you can see: for a role holding Can see all projects that is every project in the organization, and for one without it, the projects you are on the Project Team of (Section 4.2). "Due This Week" here means everything due from today to the end of the week, today and tomorrow included, because Home has no separate Due Today card. Overdue follows the rule in Section 6.2: due before today, and never a task you have finished.

Every widget on this page is drawn from that same set of projects, so the page cannot count four and then list two: the stat cards, My Tasks, Recent Projects, and Upcoming Deadlines all describe the projects you can see.

Active Projects

12

Due This Week

4

This Month

28

Overdue

2

2.2 My Tasks

A quick list of up to five open tasks assigned to you, ordered by due date; View All opens My Work. Each row shows the task's Reference, its title, its project, a priority badge and the due date, which turns red once the task is overdue. Only tasks where you are the assignee appear — unassigned tasks and tasks assigned to teammates are not shown, and tasks from closed projects are excluded. This matches the My Work page. Clicking a task opens it where it lives: the project's phase board, with the phase holding it open and its row scrolled to and lit — exactly as a Reference followed from search lands. A general task assigned to you is in the list like any other, reading General where a row would name a project, and opening the Tasks page rather than a phase board it does not have.

My Tasks

View All

Site analysis — Building A

Ionescu HQ

HighTomorrow

Structural load calculations

Popescu Villa

MediumFri

Permit submission package

Office Tower B

High12 May

Client presentation deck

Ionescu HQ

LowYesterday

2.3 Recent Projects

The four most recently updated projects. Each row names the project in full, shows a progress bar of its completed tasks out of all its tasks (with the count, e.g. 7/12), and its deadline; click a row to open the project. A project with no tasks, or a role whose Tasks are Hidden, gets no progress bar. View All opens the Projects page. Click the configure icon (sliders) to choose up to 3 custom parameter fields to display beneath each project card — useful for surfacing the data most relevant to your workflow (e.g., "Contract Value", "Client Area", "Typology").

Recent Projects

View All

Residence Popescu

7/12
15 Jun

Ionescu HQ

18/24
30 Sep

Office Tower B

3/8
1 Aug

Casa Vladescu

1/6
20 Dec

2.4 Upcoming Deadlines

In the right-hand column, a calendar-style list of the next deadlines across your projects — project deadlines and phase deadlines — in date order, each with its day, month, type badge, name and project. A phase whose deadline has already passed and which has not started is listed too, at the top, with a red Overdue chip (Section 3.3): the most urgent date on the list is the one already missed. It leaves the list as soon as the phase starts or its deadline moves. A role with Phases Hidden sees project deadlines only.


3. Projects

3.1 Creating a Project

Go to Workspaces → Projects and click New Project. Fill in:

  • Project Title — required.
  • Project Code — required; a short identifier, explained below.
  • Project No. — optional unless the code is shared (below).
  • Deadline — the target completion date.
  • Client — pick one of your organization's clients, or click New to add one (name, type, email, phone) and select it in one step. The Client section is shown only to a role that can see Clients.
  • Brief Template — pre-populates the Project Brief with sections and fields; your organization's default template is preselected. Offered only to a role with Brief at Editor, and only when templates exist (Section 8.2).
  • Parameters — your organization's project parameters, for a role that can edit parameters; any marked required must be filled before the project is created (Section 9).

Creating a project puts you on its Project Team automatically, as an individually added member — a new project is never sightless to its maker. You can remove yourself afterwards from the project's Team tab like any other individually added member.

Project Code is required. A new project cannot be created without one — it is how the project is identified in every list, so the Create button stays disabled until the field is filled. The field types in uppercase and stops at 12 characters, and what is stored is exactly what you see: trimmed and uppercased. So "gav", "GAV " and "Gav" are all stored as the same code, and search, generated documents and the project card all agree on it.

Projects created before this became a requirement keep working with no code — they load and save normally, and nobody has to go back and fill them in. But once a project has a code, it cannot be saved with the field emptied.

If the code is already in use, you are told. When you leave the Code field, the other projects in your organization already using that code are named right underneath it, each as GAV 001/2026 · Full title, with closed ones marked "Closed". Sharing a code is not an error: a repeat client keeps the same code across every project they commission. It is not free either — it makes the project number required, on your project and on theirs, which the next section explains. Naming them happens while the form is still open, so you find out before pressing Save rather than after. The same check runs when you edit the code on the project's Cover tab — the project you are editing is never counted against itself, and projects in the trash are not counted at all. The comparison ignores case and spacing, so typing "gav" finds the project stored as "GAV".

A shared code makes the project number required — on both projects. Two projects using the same code are told apart by nothing but their numbers, so the moment the code you typed is already in use, Project No. stops being optional and is marked required. The same goes for the projects already using it: any of them carrying no number gets its own number field right there in the list, and you fill those in before saving. That is deliberate. The older project was created back when nothing else used the code, so nobody ever asked it for a number — and it is the one nothing can identify once yours exists. However many of them there are, they all get a field — closed ones included, since they are still listed and still identified by their code.

And the numbers have to differ. Two projects reading "GAV 001/2026" are as impossible to tell apart as two reading "GAV", so a number already carried by a project sharing the code is refused, and two of the inline fields cannot be given the same number either. The field that repeats another is outlined in red and Save stays disabled until it is changed. Two existing projects that already share a number are left alone — neither of them was given a field here, and refusing your save over something you cannot reach would strand you; they are settled the next time one of them is edited.

Everything is saved in one go: your project and the numbers you supplied for theirs land together, or nothing does. An existing project is never changed except by a number you typed into the field the form put in front of you. If the code is not shared, nothing changes — the number stays optional and no extra fields appear. The rule holds wherever the code is edited, in the New/Edit Project panel and on the project's Cover tab, and opening either of them on a project that already has a code runs the check straight away — so a pair that has been ambiguous for months is settled the next time one of them is edited.

How a project is named on screen. Project cards and the project page header lead with the project's code — bold, uppercase, monospaced — with the project number in smaller grey text beside it, and the full title in grey underneath, shortened to two lines. Hover the title to read it in full. The code and the number always appear together: a repeat client keeps the same code across every one of their projects, so the number is what tells two of them apart. A project with no code shows its title in the leading position instead, exactly as before. The client portal is unaffected — clients see the full project title only.

Design Development
POP-RES-01001/2026Residence Popescu
Design Phase
Familia Popescu
15 Jun

The full name, wherever you are choosing or filing a project. Where you are picking a project out of several, or a page is telling you which one a record belongs to, it is named in full, on one line: GAV 001/2026 · Full title. That covers a project's own card and page header, Home's Recent Projects, a client's project list, a team member's per-project cards, search results, the assistant's project cards, and the time log. The drop-downs that pick a project — a meeting, logging time, filing a document, generating one from a template — are all the same picker, reading the same way: code and number leading, the title in grey after them, one line per project, the full title on hover. The document and template pickers list projects by code, so the order matches what you are reading, with the codeless ones at the end; the meeting and Log Hours pickers lead with the projects touched most recently. A very long title (say, a full legal parcel description) is shortened to its first 60 characters with an ellipsis, so the line stays readable; the code and the number are never shortened. The text a picker's row is matched against when you type into it stays on this reading too. So a project you know as "GAV" is findable as "GAV" wherever you are telling projects apart, and its number is there to say which GAV it is.

Code and number, on the Calendar. Where a chip names something else and the project is only the context around it, the project is named by its code and number, and its title is left off. A meeting chip on the Time calendar reads GAV 001/2026: Site visit, a project deadline beside it reads GAV 001/2026: project deadline, and a phase deadline reads GAV 001/2026: Concept design deadline — so the part that varies, the meeting's or the phase's own name, gets the width. Inside your organization the code and number are the name: they are what you say to each other and what is written on the drawings, and the number tells two projects of the same repeat client apart. A project with no number reads as its code alone. A meeting filed under no project keeps its bare title, and opening any meeting still shows the bare title in its title field. A project with no code — only a legacy one, since the field is required now — falls back to its title, shortened to 60 characters as everywhere else. The same shortened reading travels wherever the meeting goes: into the entry your phone's calendar shows through the Calendar Feed, and into the invitation email a participant receives, its subject line, its meeting line and the calendar file attached to it. Clicking the chip names the project in full, title included.

Code and number, wherever a project is context. The same rule holds on every screen where a row is about something else and only names its project: the task rows on the Tasks page, the project line on My Work's cards and rows, on Home's My Tasks and on a colleague's task table in Team, the project on each Documents card and at the top of a document's page, the project under each of Home's Upcoming Deadlines, and the project on the assistant's task results. There the project reads GAV 001/2026 and nothing more; hover it to see the title. Where the project is the subject — its own card and page header, Home's Recent Projects, a client's project list, a colleague's per-project cards — or wherever you are choosing one — the project pickers, search, the Log Hours and Export pickers — the title stays, because there it is how you recognise a project before you know its code.

3.2 Project Card Columns

On the Projects page, click the sliders icon (top-right of the project list) to open the column configurator. Check up to 3 custom parameter fields to display on every project card. Your selection is saved per-browser.

Every card also shows the project's next meeting from the calendar, under its deadline, with a dash when there is none (Section 10.3).

3.3 Project Phases

Phases are the structured workflow inside a project. To view or update them, open a project and click the Phases tab. A new project starts with no phases: add them one at a time with Add Phase, or all at once with Apply Template, which copies a phase template's phases onto the project (see Applying Templates with Auto-Dates). The copies are a snapshot — editing the template later does not change projects it was already applied to. A new organization starts with one template, Standard Architectural Workflow: Concept & Research, Schematic Design, Design Development, Construction Documents, Bidding & Permits, and Construction Administration.

Each phase has: name, category, estimated weeks, planned start, deadline, assigned collaborators/vendors/resources, and optional dependency. A phase is not started, started, or completed — read from its Started on and Completed on dates (below); there is no separate phase status to set.

  • Concept & ResearchCompleted


  • Schematic DesignIn Progress


  • Design DevelopmentPending


  • Construction DocumentsPending


  • Bidding & PermitsPending

An Empty Phase Library or No Templates

Add Phase opens on From library, your organization's phase library (Settings → Phases). If the library is empty, the dialog says so and offers New phase, which opens the form to describe the phase yourself. If you can manage the organization, the form also carries Also save to the phase library, ticked by default: the phase is added to this project and to the library in one go, so the library fills as you work. If the phase is added but saving it to the library is refused, a message says so and the phase stays on the project. Everyone else is not sent to a Settings page they cannot open: the dialog names who can add phases to the library, up to three colleagues by name and then "and N others".

On a project with no phases yet, Apply Template is offered even when your organization has no phase templates. With none, someone who can manage the organization gets the template form in the dialog: a name and the library phases to put in it, ticked from a list; Create and apply makes the template and applies it to this project with the start date above, and keeps it for the next project. If the template is made but applying it is refused, a message says so and the template waits in the list to be applied. If the phase library is empty too, the dialog says a template is made from library phases and how to add one. Everyone else sees who can make phase templates, named the same way.

A phase can also carry a short abbreviation (SD, DD) — phases applied from a template take the catalog phase's abbreviation, and you can set or clear it in the phase's edit form. When a phase has one, its card on the Phases tab shows it in small grey monospace just before the name, in the same type as a task's Reference — though unlike a Reference it is not copied when clicked; clicking it opens the phase like the rest of the header. A phase without one shows its name alone.

Duration, Planned Start, Deadline, Started On, Completed On

These are independent facts and editing one never rewrites another. Estimated weeks is your estimate of how long the work takes. Planned start is optional: leave it empty and the phase follows the previous phase on the timeline; set it to plan a break after the previous phase or a deliberate overlap. Deadline is the date the phase was promised — it never changes the estimate; instead the timeline shows when the plan disagrees with the promise (Section 18.4). Clearing any of these fields in the edit form clears the saved value. Completed on is recorded automatically when the phase is marked complete, and can be adjusted or cleared in the edit form. It is the day you completed it, read on your own clock: a phase finished at half past midnight opens showing that day, not the one before.

Started on sits beside it in the edit form and is the day the phase was started. Start a phase from its card's ⋮ menu with Start, which records today; Mark not started in the same menu clears the start while the phase is not completed. Started on can also be adjusted in the edit form, or cleared while the phase is not completed, but it cannot be in the future or after Completed on. Starting or un-starting a phase is recorded in the project's Activity feed and sends no notification. Both controls need permission to edit phases. On a closed project the card's Start and Mark not started are frozen like completion, but a completed phase's dates can still be corrected in the edit form: Started on can be set (even if it was empty), moved or cleared, and Completed on can be moved to another day but not cleared, since clearing it would un-complete the phase. A phase that is not completed keeps every date frozen until the project is reopened.

A phase also starts on its own when the work does: the first of its tasks to leave Pending — moved to In Progress, Blocked or Completed from the phase board, the list, the task window, My Work, the bulk bar or the assistant, or by a partner firm on a joint project — sets Started on to that moment. Anyone allowed to move the task starts the phase this way; no permission to edit phases is needed. A toast names the phase with an Undo button that clears the start again (a move on another firm's joint project gets the toast without Undo, since the phase is theirs), and the assistant says in its reply when it has started one. The start is recorded in the Activity feed with the task that started it, and nobody is notified. A phase already started or completed, or one on a closed project, is left as it is, and moving a task between other statuses never starts a phase you marked not started.

A phase completed without ever being started takes its start from the hours logged on it or its tasks: Started on becomes the first day anyone logged hours there. With no hours logged it stays empty, whoever completes it — you, a partner firm or the assistant. Phases recorded before phases started themselves were given a start the same way, from the first hours logged or the first task completed, whichever came first; a phase with neither was left empty.

The start is what the Project Review and the catalog averages measure a phase from, so a phase never started is left out of them.

When the Plan Disagrees with the Dates

The Phases page says so on its own, in two places, and only while it is true.

  • The plan ends after the project deadline. One line at the top of the page names the date the phase plan ends (the latest phase deadline), the project deadline, and the gap between them — for example, "The phase plan ends on 25 Aug 2027, 7 months after the project deadline of 21 Jan 2027." Ending on the deadline day counts as fitting. A project with no deadline never shows the line, and neither does a plan whose phases have no deadlines.
  • A phase is overdue and not started. A phase whose deadline is already behind today, and which has neither started nor been completed, carries a red Overdue chip beside its date. A phase due today is not overdue yet. Start the phase, or move its deadline, and the chip goes.

Nothing is stored and no notification is sent: both are read from the dates and statuses as they are now, so fixing the plan clears them on the next load. The same overdue phases are listed in Home's Upcoming Deadlines (Section 2.4).

Hours Logged

Each phase card shows the hours logged on that phase beside its estimate — for example 12.5h — and the toolbar at the top of the Phases page shows the project's total, 38h logged. An hour counts toward the phase it was logged on; hours logged on a task with no phase chosen count toward the task's phase. Hours logged on the project with neither a phase nor a task in one count in the total and on no phase, so the phase figures can add up to less than the total, never more. A phase with no hours shows nothing, and so does a project. The figures are everyone's hours, so they are shown only to a role with the Can see everyone's hours Extra (Section 16.4); without it the page shows no hours at all. They are hours only — no cost or rate is shown.

Project Review

A closed project shows a short review at the top of its Phases page, so the office learns from it before quoting the next one. One row per phase gives its estimated weeks (the project's own estimate where one was set, otherwise the one the phase was created with), its actual weeks — from the day it was started to the day it was completed — and the hours logged on it. The last column says whether it completed by its deadline: On time, or how late, for example 2 weeks late; a line above the table names the phases that completed after their deadline, and by how much. A phase missing an actual start or end is compared on nothing, since a guessed duration would read like a real one, and its row says what is missing. No start date means the phase was completed without ever being started: set Started on in the phase's edit form and the review measures it, without reopening the project. The Close dialog offers the same date before the close (Section 3.4), so the gap can be filled at that moment instead. Not completed means the phase was never completed: reopen the project to complete it. A short line under the table repeats where each is fixed. The Hours column follows the same rule as the hours on the phase cards: shown only to a role with the Can see everyone's hours Extra (Section 16.4). No cost or rate is shown. Reopening the project takes the review away.

Phase Dependencies

A phase can be set to depend on another phase — meaning it logically starts after the dependency completes. Set this in the phase edit modal ("Depends on" dropdown). Circular dependencies are rejected automatically. A "↳ after [Phase Name]" badge appears on dependent phases.

Phase Completion Gating

A phase can only be marked complete when all configured gates pass:

  • Gate 1 — Required Tasks: Any task marked "Required for completion" must be done before the phase can close.
  • Gate 2a — Required Project Brief Fields: Specific per-project brief fields (see Section 8) must have values before the phase can close. Configure in the phase edit modal under "Required Project Brief Fields".
  • Gate 2b — Required Global Parameters: Specific org-level project parameters (see Section 9) must have values. Configure in the phase edit modal under "Required Project Parameters".

If a gate blocks completion, Endulo shows exactly which tasks or fields are missing.

Completed Phases Refuse New Tasks

A completed phase accepts no new tasks. On the phase board its inline "Add a task" row is simply not there — never shown disabled — and marking the phase incomplete brings it straight back. The header's Add task dialog does not offer a completed phase at all; a project with no phases yet, or whose phases are all completed, says exactly that and creates the task with no phase, which puts it in that project's No phase group. Asking the assistant to create a task in one — or moving an existing task into one — is refused with a message naming the reason and the remedy: mark the phase incomplete first. The rule is also enforced on the server, so a phase completed from another tab refuses an add row that was still on screen. Everything else is untouched: tasks already inside a completed phase stay fully editable, movable out of it, and deletable.

The No Phase Group

Not every task on a project has a phase yet. After the last phase on the phase board sits a group called No phase, holding the project's tasks that are not filed in any phase — work you know about but have not placed, or work that belongs to the project and to no one phase of it. It has its own task list, exactly like a phase's: the same rows, the same sort, the same selection and bulk bar, and its own inline add row at the bottom, which creates a task on this project with no phase. It opens on arrival whenever it holds anything and stays shut when it is empty.

It is a group, not a phase, and it is drawn so as not to be mistaken for one: a dashed mark where the completion toggle would sit, a count where the progress bar would, and no dates, no category, no dependency and no menu. Nothing in it can be marked complete, it has no bar on the timeline, and a client reading the portal never sees it. It is not called Backlog on purpose — that word says unscheduled, and a task here may be due tomorrow.

To file a task in a phase, drag it there. On a desktop, a grip appears at the left of a task row when you hover it; pick the row up by the grip and drop it on any phase card — the card lights up as you cross it — and the task is filed in that phase. Drag a row out of a phase and drop it on the No phase group to unfile it. A completed phase refuses arrivals exactly as it refuses new tasks, and the move is undone with a message saying so. The task's Reference never changes, and nobody is notified — moving a task is not assigning it. On a phone, where nothing is dragged, use the phase field described next.

Or set the place in the Task details window. Open a task's details (the Task details entry on its menu, or the Note badge) and under the title sit Project and Phase. The project list has General at the top, then every live project you may see; the phase list has No phase at the top, then the phases of whichever project is chosen. Choose a phase to file the task, No phase to unfile it, General to pull the task out of its project altogether, or another project to move it there. Changing the project empties the phase, because a phase belongs to exactly one project. A completed phase is offered only when it is the phase the task is already in, and a closed project only when it is the project the task is already on.

Moving a task changes nothing else about it: its reference stays the same, nobody is notified — a move is not an assignment — and hours already logged against it stay where they were logged, so no budget moves.

Required for completion needs a phase. The flag exists to hold up a phase's completion, so on a task with no phase the Mark as required entry is not on the menu at all, and the Task details window does not offer its checkbox either — clear the Phase field there and the checkbox goes as you clear it, not at the next open. When a task leaves its phase — by drag or by either control — the flag is cleared in the same save, so no phase is ever held up by a task that is no longer in it.

Applying Templates with Auto-Dates

When applying a phase template to a project, you can set a Project Start Date. Endulo calculates each phase's deadline by cascading: Phase 1 starts on the start date, its deadline is start + estimated weeks. Phase 2 starts from Phase 1's deadline, and so on. This creates a realistic timeline in one action.

Phase Documents

In a phase's dropdown menu (three-dot), click New Document to create a document pre-linked to that phase. The document form opens with the phase already selected, saving a step.

Task References

Every task has a Reference — a short, permanent name like T-1482. It exists for the sentence you say down a phone or type into a message Endulo will never see: one token naming one task. The Reference leads the task's row on the phase board, in both the list and the board view, and it leads the task everywhere else it is named: the cards and rows on My Work, the My Tasks list on Home, and a colleague's task table on their team page — in small grey monospace beside the title. Where a task is shown with its project, both are on screen at once — the Reference names the task, the project keeps its own name below it — so you can see at a glance that T-1482 belongs to GAV 001/2026.

Click a Reference to copy it. Anywhere it appears, clicking puts it on your clipboard and a confirmation appears at the bottom of the screen — nobody should be retyping a number off a phone screen.

Type a Reference into search and you land on the task. The command palette takes it in whatever form you read it out — T-1482, t1482, T 1482, #1482, or a bare 1482 — and matches it exactly on the number, so 1482 finds T-1482 and never T-11482. Titles still match as they always did, so a search that looks like a Reference and is also somebody's title returns both. A bare number carries no letter and so may one day name more than one kind of thing; results are grouped by kind, under their own headings, so you choose in one glance rather than being sent somewhere on a guess. A number nothing carries simply finds nothing. Search normally waits for two characters before it looks inside names — a single letter would match half the office — but a Reference is exempt, because it is looked up exactly rather than searched for: type 7 and you get T-7 and nothing else.

Task results show their Reference beside the title, and clicking one takes you to the project's phase board with the containing phase already open, the task's row scrolled to and lit for a moment — no scanning the board for it. Copying the Reference from a search result works there too: click the T-1482 on the row rather than the row itself. The address you land on names the task, so it can be pasted to a colleague; arriving at a phase board without one behaves exactly as it always has.

The assistant speaks References. Say one to it and it names exactly one task — "mark T-1482 as done" needs no search — and every task in an answer it gives carries its Reference, clickable to copy like anywhere else. See Section 20.12.

When a task is assigned to you, the notification names it by its Reference too: "T-1482 · "Depunere DTAC" in "Casa Verde"", so the work arrives already sayable. Assigning several tasks in one gesture still sends one notification naming the count (see Section 14.3) — the tasks themselves carry their References on My Work.

On a joint project a Reference crosses the firm boundary read-only: it belongs to the owner firm's sequence, both firms read the same token on the same task, and a staffed partner user can see it, copy it, and search for it exactly as described here — see References across the boundary in Section 16.11.

A Reference is minted when the task is created and nothing afterwards changes it — move the task to another phase or another project and it keeps the same one, because a Reference names the work rather than where the work sits. Numbers are counted per organization, so every organization starts at T-1 and yours stay short. They are never reused: a deleted task's number stays spent, so a gap (T-13 then T-15) is normal rather than a sign something is missing. Tasks created before References existed were numbered in the order they were created, so every task has one.

References are internal vocabulary — a client reading the portal is never shown one, and a role whose Tasks access is Hidden has no task surface and so sees no Reference. (If such a member is handed work anyway — the assignment picker flags them rather than refusing — the notification still names the task.)

Task Status

Every task is To Do, In Progress, Blocked, or Done, and each of those carries a colour the whole app agrees on: To Do is neutral, In Progress reads as information, Blocked as a warning, Done as a success. Wherever a task's status can be set — the status cell on a phase board, the status control on a My Work row — that colour shows as a small dot beside the name, so the thing a list is scanned by can be read at a glance rather than word by word. It is one control, and it behaves the same on both pages.

To Do
In Progress
Blocked
Done

Click it and the menu opens inside the page — solid, above the row, with the status currently set ticked and every option carrying its own dot. Typing the first letter of a status jumps to it, so b reaches Blocked without the mouse. Choosing one applies it at once: the row changes as you let go, before the server has answered, and the control stays open to a second change rather than greying out. Choosing the status already set changes nothing. The numbers derived from status — a phase's progress bar and its task counts, the due-date groups and badges on My Work — are read from the server rather than from the row, so they catch up a moment later. If a save is refused, the row returns to the status it had and says why — see When an Edit Does Not Save, below.

On a phone the same control opens a sheet from the bottom of the screen instead of a menu: all four statuses as full-width rows sized for a thumb, titled Status, the current one ticked. It is the same gesture the board view uses to move a card.

A role that reads tasks but cannot edit them sees the dot and the name with nothing to open — the colour is information, not a permission.

When an Edit Does Not Save

Every edit you make on a task row is applied the moment you make it, before the server has answered — the status, the priority, the due date, the assignee. Almost always the server agrees and nothing more happens: a save that worked says nothing at all.

When it does not agree — your role may not edit tasks, the task was deleted from under you, the connection dropped — the cell goes back to the value it had and a message appears at the bottom of the screen naming the field and the reason: Could not save the due date — you do not have permission to perform this action. A value that appeared and then reverted with no explanation was the old behaviour and was indistinguishable from a bug.

On My Work the message leads with the task's Reference — T-1482: could not save the status — … — because that page gathers tasks from every project into due-date groups and columns, so which row changed its mind is a real question. On a phase board it is left out: you are looking at one phase and just clicked one row. On either board view — My Work's and the phase board's — a refused drag moves the card back to the column it came from as the message appears, rather than leaving it sitting in the wrong column until the page catches up.

The Task details window speaks differently, because it is holding something. Opening a task's details gives you the whole task on one surface: its Title, Status, Priority and Due date, then Project and Phase (see The No Phase Group), Assignee, the required for this phase to be completed checkbox where the task has a phase, a Notes box and, if your organization has defined any for tasks, the task's Parameters underneath a divider that reads Parameters. Everything is saved by the one Save button, in a single action — so a refusal is one answer about one gesture, and there is no way to end up with the notes saved and the parameters not. Only what you actually changed is sent, which is why a refusal can usually name the one field.

Clicking a task's title on a phase board opens this window — on a phone, tapping it does. The title is not edited on the row: renaming a task happens here, in the Title field, so a click meant to open a task can never start renaming it instead. The row's status, priority, due date and assignee controls stay one click on the row. A role that can read tasks but not edit them sees the title as plain text, with nothing to open.

Logging hours from a task. Below the task's fields the window has a Log hours button. It opens the same form as Time → Hours, with the project, phase and task already filled in — you type the date, the hours and a note. The task is offered there even when somebody else holds it. Once hours are logged on the task, the window shows the total above the button and, under it, who logged them, each person with their own total; the figures refresh as soon as you log. With no hours logged only the button shows. The figures are everyone's hours, so they are shown only to a role with the Can see everyone's hours Extra (§16.4); a role without Projects at Viewer cannot log hours anywhere and sees no button. On a partner firm's task the hours you log are your own firm's (§16.11), so the window shows the button and no figures.

The window carries those fields wherever it opens from, including a phase board whose row edits most of them inline — the row stays the quicker way there for status, priority, due date and assignee, and the window is the only way anywhere else, and the only way to rename. That is the whole point of it for a general task, which has no phase board to be edited on: its title, status, priority, due date and assignee are reachable here and nowhere else.

The Assignee field offers whoever can actually be given the task. Under General that is every member of the organization: general work belongs to the office, and there is no Project Team to be on. Under a project it is that project's Project Team — plus any partner firm's people staffed on a joint project, and, if your role manages teams, the Not on this project's team section below, where choosing somebody adds them to the Project Team and hands them the task in one gesture. Assigning from here raises the bell for the person you chose, exactly as assigning anywhere else does.

It is the one field in the window your role can be without. Seeing who is on a project belongs to the Team area, so a role that edits tasks but does not include Team has no Assignee field here at all — not a greyed-out one. The row you opened the window from still names the assignee, so nothing is hidden from you but a change that would have been refused.

Changing the Project keeps the assignee rather than quietly dropping them. The picker still offers them even when the project you moved to has not got them on its Project Team — and then Save refuses the move and says so: This task's assignee is not on the Project Team of "Casa Verde". Unassign the task first, or add them to that Project Team. Both ways out are in this window: unassign in the same picker, or, if your role manages teams, add them from that picker's second section. It is the same rule that refuses dragging an assigned task onto another project's board — one rule, two doors. (This applies to open tasks; a finished task's assignee is history and moves with it.)

When that save is refused, the window stays open with everything you typed still in it, and the reason appears in a red banner across the top: Could not save the change — you do not have permission to perform this action. (It names the notes specifically when the task has no parameters to save.) Nothing is closed and nothing is refreshed, so you can copy what you wrote, or fix the problem and press Save again. Before, the window closed on a refusal exactly as it did on a success, and the notes you had just typed went with it.

Deleting a single task that is refused leaves the row where it is and says so. Deleting several from the bulk bar reports differently: a line appears above the task table counting how many of the selection could not be deleted — 3 of 12 tasks could not be deleted. — in the same place a refused bulk assign or bulk priority change already reports, because two buttons an inch apart should not speak in two different ways.

Quick Task Add

The last row of every phase's task table is an inline add row: type a title and press Enter, or simply click or tab anywhere outside the row — both save the task. Using the row's own priority, due date, or assignee pickers (including choosing inside their dropdowns) keeps the draft open, so you can set those before the task is created — the assignee picker is the project's Project Team, exactly as it is on a saved row. Escape discards the draft. Clicking away from an empty row does nothing, and the priority/date/assignee values you set stick around for the next quick-add. If a save fails (for example on a lost connection or expired session), an error toast appears and the typed title stays in the input so nothing is lost.

Add Task from the Header

With the Quick Actions preference enabled (Settings → Profile, see 16.1) and a role that can edit tasks, an Add task button sits in the header on every page, desktop and mobile. It opens a dialog, and what it asks for is only two things: where — General, the first entry of the project list, or one of the projects below it (closed ones are not offered) — and a title.

The phase is optional. Pick a project and the phase list offers that project's uncompleted phases in board order, with No phase at the top; leave it there and the task lands in that project's No phase group, ready to be filed later. A completed phase refuses new tasks, so it is not offered. A project with no phases yet says so, and one whose phases are all completed says that instead — two different situations, two different messages — and neither is a dead end any more: the task is simply created with no phase. Pick General and there is no phase at all, because a general task belongs to the office rather than to a project.

Priority, due date, assignee, and notes are optional. The assignee list is the chosen project's Project Team, with the Not on this project's team section for roles that also manage the team and the usual "no task access" flag beside anyone whose role cannot see tasks (see Who a Task Can Be Assigned To; the assignee field appears only for roles that can view the team — member names are a Team read, exactly as on the phase board). Under General it is everyone in the organization, because general work has no Project Team to be on. The assignee field waits for a project to be picked, because who can be assigned depends on which project it is. Changing the project resets the phase choice and the assignee — both belong to the project — and keeps everything else you filled in.

The task is created exactly as it would be from the phase board — an assignee is notified the same way — and on success the dialog closes and a message offers a link to that project's phase board, or to the Tasks page for a general task, while you stay on the page you were on. The dialog opens blank every time; nothing is preselected or remembered. Without the preference, or without task-editing rights, the button simply is not there.

Shared projects. If another firm has shared a project with yours and you are on it with the Contributor grade, the project list also offers it, under a heading naming the firm that owns it — one heading per firm, after your own projects. A shared project you can only view is not listed, because you could not add a task to it. On a shared project the phase is required: tasks on another firm's project always go in a phase, so the phase list starts at Select a phase rather than No phase, and a shared project with no open phases says there is nowhere to add the task. The assignee list is both firms' people on that project, each named with their firm — the same list the task form on the shared project's own page offers. The task is created exactly as it would be from that page, carrying the owning firm's Reference, and the message on success links to the shared project's page, open on the new task.

Bulk Task Actions

Tick the checkboxes next to a phase's tasks (or the header checkbox to take all of them) and the bulk bar appears: assign, set priority, mark done, delete. The whole selection is saved in one action, so assigning several tasks at once sends the new assignee a single notification naming the count rather than one per task (see Section 14.3). Selection is per phase.

Who a Task Can Be Assigned To

An open task's assignee is always on the project's Project Team (§4.1). Every assignee picker in the app — the phase board's assignee cell, its inline quick-add row, the bulk bar's Assign to…, the header's Add task dialog and the Task details window — offers that team and nothing else, and the server refuses an assignee who is not on it whichever way the request arrives, the assistant included. A general task is the one exception, and only because there is no project: it has no Project Team, so anyone in the organization may hold it. Moving a task onto a project is held to the same rule as dragging it there — if its assignee is not on that project's team, the move is refused rather than the person quietly dropped. Unassigning is always available, and assigning yourself works exactly like assigning anyone else: you have to be on the team.

If the person you want is not on the team, the picker does not leave you at a dead end. A role that also manages the team (Team at Editor) sees a second section below the team, headed Not on this project's team, listing the organization's remaining members and saying that choosing one adds them to the Project Team. Choosing one does exactly that: they are added as an individually added member, and then the task is assigned — two ordinary gestures in one motion, each still under its own permission. A role without Team at Editor sees no second section, because staffing a project is not its authority.

A project with nobody on its team says so in the picker rather than showing an empty menu — and the add section is still offered to those entitled, so an empty Project Team is a starting point and not a wall. A role that can edit tasks but cannot view the team (Team Hidden) sees neither section and is told why: who is on a project is a Team read.

Moving a task to another project obeys the same rule. An open task carrying an assignee cannot be moved into a phase of a project that person is not on — the move is refused and names both ways forward: unassign the task first, or add them to that Project Team. It is not unassigned for you, because stranding work as a side effect of a drag is exactly what the Keep Choice contract (§4.1) exists to prevent. Moves within one project are unaffected, and a done task moves freely.

The "no task access" badge (§3.3.1) sits beside names in both sections. Done tasks are untouched by all of this: a completed task keeps whoever it was assigned to, even after that person leaves the Project Team, and their name still shows on the row.

3.3.1 Who Can See Phases and Tasks

Phases and Tasks are two Feature Areas in the Roles editor (Settings → Roles), each on its own Access Level — Hidden, Viewer, or Editor. Tasks is nested under Phases, and the two are graded independently.

Phases. A role whose Phases are Hidden does not have the phase board at all: no Phases tab on any project, an access notice rather than a board if someone types the address, no timeline, no current-phase line on the project cards, and no phase deadlines among the upcoming deadlines on Home. Phases at Viewer reads the whole board and changes nothing on it — no Add Phase, no Apply Template, no editing or deleting, no reordering by drag, and the complete/incomplete mark reads as a symbol rather than a button. Phases at Editor restructures the board, and also covers the phase gallery in the client portal and the images filed against a phase.

Tasks. Tasks sit inside phases, and grading them separately is the point. Phases at Viewer with Tasks at Editor is the everyday case: an employed architect who edits and moves tasks on a board they cannot restructure, with the phases readable so their work has its context. Tasks at Viewer reads every task and edits none: the status still shows its colour dot and its name — colour is information, not an edit affordance — but with nothing to open, and the title is plain text that opens nothing, no priority, date or assignee picker, no checkboxes and no bulk bar, and no quick-add row. Tasks Hidden means no tasks at all: no task list under a phase (a sentence says so, so a phase is never mistaken for an empty one), no board view, no task counts or progress bars anywhere, no My Work in the navigation, and no colleague's workload page.

Because of Upward Implication, any level on Tasks raises Phases and Projects to at least Viewer — an area is only reachable through the areas that contain it, so there is no such thing as a task editor who cannot open the board the tasks sit on.

Where else this reaches. Tasks are tasks wherever they appear: a task's custom parameters follow the Tasks area like the task itself, the Time page's task picker is empty for a role whose Tasks are Hidden (hours still log against a project or a phase), and the global search returns no tasks. On My Work, Tasks at Viewer reads the board and the list without moving anything — the status shows its colour dot and its name with nothing to open, and the cards do not drag.

Assigning to someone who cannot see tasks. The assignee picker marks any member whose role has Tasks Hidden with a small "no task access" badge. They are still selectable — who is doing the work is your decision — but the badge says plainly that the task will not appear anywhere that person can look. The badge sits beside the name in both of the picker's sections, on the Project Team and among the members not on it (see Who a Task Can Be Assigned To).

Admin holds both areas at Editor automatically.

3.4 Closing and Reopening a Project

A finished project is closed, not deleted: open the project card's three-dot menu and choose Close project, then confirm. Closing is manual and reversible — the same menu offers Reopen project on a closed project, and so does a Reopen project button beside the Completed or Closed badge at the top of the project page, so you never have to go back to the Projects list to reopen one. Both ask for the same confirmation, and nothing else about the project changes. Close, Reopen and Edit appear only to people whose Role can edit projects; without that the card has no menu (or only Delete permanently, for a Role that can delete).

The confirmation knows what it is asking. There is exactly one Close dialog, and it adapts to the phases as they stand: when every phase is completed it asks Close this project as completed?; when phases remain it says Not every phase is completed, so the project will be closed as uncompleted. You are never asked to classify the outcome yourself.

The dialog lists what is still open. Beneath the question, under Still open, it names what the close leaves behind, each line only when it applies and with its count: a live client portal (it stays open, read-only, after the close — tick Switch the portal off when closing to turn it off in the same click, if your Role can manage the portal); client approvals still pending (they stay pending until the project is reopened); phases not completed (the closed-project review will skip them — Open Phases takes you there); and permits still awaiting a response (no overdue reminder is sent for them once closed). It only informs: nothing on the list stops the close. Open tasks are not listed — they drop out of My Work on their own. You see only the lines for areas your Role can open, and with nothing open the dialog looks exactly as it did before.

The dialog names the phases the review won't measure. Under Not measured in the review it lists every completed phase that has no start date — it was completed without ever being started, so the review can't measure how long it took — with the line No start date — the review won't measure it. If your Role can edit phases, each one gets a Started on field, filled in with the phase's planned start when that day is before it was completed, otherwise empty; it takes no date in the future or after the day the phase was completed. Setting it is optional and nothing on the list stops the close: on confirm, the dates you entered are saved first and then the project closes, and a phase left empty closes unmeasured and reads No start date in the review. If a date is refused, the dialog says why and the project stays open. Both the card's Close project and the close prompt show the list.

Completing the last phase offers to close. The moment you mark the last remaining uncompleted phase complete, a prompt asks All phases are complete. Close the project as completed? It is the same Close dialog, so it lists anything still open and any phase the review won't measure, says that the project's phase completion will be frozen, and appears only if your Role can edit projects. Accept and the project closes as Completed on the spot. Choose Not now and it simply stays open with all phases done — a perfectly legal state — and nothing asks again unless a last phase completes again (un-complete a phase and complete it back, for instance).

You never choose what the closure is called — the system does. A closed project whose phases are all completed reads Completed (a green badge on its card and on the project page header); a closed project with unfinished phases reads Closed (a neutral badge). Reopening removes the badge. Open projects carry no lifecycle badge at all.

Closed projects leave the default list. The Projects page opens on the Active filter; switch the filter to Closed to see them. A closed project is dimmed on its card, keeps everything it had, and stays out of Home's numbers, My Work, the quick task dialog, and the document picker — exactly the places that offer live work. Its obtained permits still send their expiry notice; only the overdue notice stops (Section 5.2).

Closing freezes phase completion. On a closed project the complete/incomplete mark on the phase board cannot be toggled, and a completion change is refused however it is attempted. Click or tap the mark and it says why, offering Reopen project to people whose Role can edit projects. Reopening the project unfreezes it. The dates a completed phase records are not frozen with it: they can be corrected in the phase's edit form (Section 3.3). Deleting a closed project (from the same menu) is what actually removes it — and that is a separate, permanent act.

Closing turns the Client Portal read-only. The client's link keeps working, but the portal says This project is complete and takes no more comments or approval answers (§17.11). Reopening brings them back.

3.5 The Activity Feed

Every project's Cover carries an Activity card: what happened on the project while you were away. It fills itself from what people do in the app — nobody writes updates. It records who created or edited which task (named by its Reference and title, e.g. T-42 · "Site survey"), who moved which phase to which status, who added, renamed, reordered or removed phases or applied a phase template, and who uploaded which project document. It covers every door a gesture can come through — the phase board, the bulk bar, the task window, the assistant. What the client does in the Client Portal lands here too: their comments and their answers to approval requests, marked as the client's (Section 17.12). The ten most recent entries show, and the rest fold under Show N earlier entries; the card keeps the latest 100, and says so once it holds that many. A new project shows no card until something has been done on it, and a General Task — one on no project — has no feed to land in.

You only see what you could already open. An entry about tasks is withheld from a role with Tasks Hidden, an entry about phases from a role with Phases Hidden, a document upload from a role with Documents Hidden, and the client's portal activity from a role with the Client Portal Hidden — so the feed never names something your role cannot open.

On a shared project the same card is the record both firms read, each entry naming the firm beside the person; on a project only your firm works on, the firm is left out because it would say nothing. The firm conversation (the Comments card) stays on shared projects only — see Comments and activity under Partner Firms. A partner firm reads the record from the day the project was shared with it; what your firm did on the project before that is never shown to them, and the client's portal activity reaches them only when your firm turns on Client activity in the sharing terms. A client's entry is the client's, not a second firm's, so it does not turn the firm on beside your own entries.


4. Project Team, Collaborators, Vendors & Brands

  • Team tab: the Project Team — who works this project.
  • Collaborators tab: link external firms — structural engineers, MEP consultants, and more — from your organization's Collaborators directory. Add Collaborator asks for the firm, its role on this project (one of your collaborator types), and optional notes; Remove in a row's menu unlinks it.
  • Vendors & Brands tab: which vendors the project buys from and which brands it uses — the whole project, or one phase at a time. Two independent lists: sourcing a vendor never requires naming a brand, and specifying a brand never requires naming a vendor.

4.1 The Project Team

The Project Team is the set of people working a project: everyone in the organization teams currently assigned to it, plus members added individually — one deduplicated roster, not two lists. The roster is resolved live, so someone who joins an assigned team appears on the project immediately, and each person appears once with a badge saying why they are on it: via which team(s), "Individual", or both.

The Team tab manages both halves under the same grants as the Team workspace: Team at Viewer (team:view) reads the roster, Team at Editor (team:manage) assigns and removes teams and adds and removes individual members. Add Member offers the organization members not yet on the Project Team; adding one is how a project's staffing says "the Structural team plus Ana".

Removing someone depends on how they are on the team. An individually added member has a remove control. A person carried by an assigned team has no individual remove — there is no exclusion list, so taking them off the project means removing that team from the project, or removing the person from that team in Team Management.

Keep Choice. Every way off a Project Team is chosen, never silent, because an open task's assignee is always on the Project Team. Removing a team from a project opens the Keep Choice dialog listing every member that team carries: each row is a checkbox, and checked means the person stays on the project as an individually added member. Rows for members holding open tasks on the project arrive pre-checked and name the count; unchecking such a row states inline that those open tasks become unassigned. A member another assigned team or an individual row already retains simply says they stay — there is no choice to make for them. Removing an individually added member is the one-pairing case: with open tasks the confirm names the count and the unassignment, without them it is a simple confirm. Done tasks are untouched by all of it and keep their assignee as history. The same contract holds on the Team Management side — removing a person from a team, deleting a team, and removing a member from the organization all pass through it (§15.4, §15.5).

The Project Team is who a task can be assigned to. Every assignee picker offers this roster and the server accepts nobody else, so work is never handed to someone who cannot see the project — see Who a Task Can Be Assigned To in §3.3. That is also why the Add Member gesture appears inside the picker itself for roles that manage the team: discovering a missing colleague mid-assignment adds them here and assigns in one motion, rather than sending you to this tab and back.

Notifications addressed to a project's members reach everyone on the Project Team — individually added members get the project's bell entries exactly as team-carried ones do.

4.2 Project Visibility

Which projects you see is your Project Team membership. For a role that does not hold Can see all projects (§16.4.2), Projects at Viewer means the projects you are on the Project Team of — nothing narrower and nothing wider. Your project list contains exactly those, closed ones included on the same terms: a closed project is one of yours or it is not, and closing it does not change the answer.

The whole project goes with it. Visibility is decided once, at the project, and covers everything inside — the Cover, the brief, the phases and their tasks, the norms, the documents filed against the project, its collaborators and vendors, its team, its budget, its parameters, and its client portal. Seeing a project is one question, not eleven, so there is no state where a project's tab strip is open to you and its contents are not.

Following a link to a project you are not on does not read as broken. The page answers with a notice saying You're not on this project's team and telling you what to ask for — a project manager or an administrator adds you, and the page opens. It is deliberately not a "not found" and deliberately not an empty page: the project exists, a colleague said its name, and the app says so. A project id belonging to another organization is a different thing entirely and still reads as not found.

A role holding Can see all projects — and every administrator, who holds it automatically — sees every project in the organization exactly as before, with no notice anywhere.

Joining an organization team that is assigned to a project puts you on that project immediately, so team membership is the fastest way to widen what someone sees. Creating a project puts you on it (§3.1), and every way off a Project Team passes through the Keep Choice dialog (§4.1), so nobody's project list shrinks silently.

Areas of their own still name projects, and they name yours. The document library is an organization-wide grant — a document is yours to read because your role reads Documents, not because you are on a project — so every document you could read before is still listed. What changes is the project label on the row: it appears on the documents filed against your projects and nowhere else, and the project pickers that file a document offer your projects only (§7.8). A client's page lists the client's projects that are yours, while the client's status badge and project count stay whole, because those are facts about the client rather than a way to read its projects (§13.3).

The rest of the app reads the same list. Search returns your projects and the tasks inside them and nothing else — typing a colleague's project abbreviation finds nothing, and so does a task Reference (T-1482) belonging to a project you are not on. Home counts and lists the projects you can see, in every widget on it (§2.1). A project's Timeline opens with the project or not at all (§18). The Log Hours form on the Time page offers your projects and the tasks on them, and the save accepts nothing else — a picker and a save that disagreed about which projects are yours would be worse than either on its own. And the assistant answers with your visibility (§20.1): it lists and searches your projects, and asking it directly about a project you are not on is answered with the same sentence the page gives, not with the project's status and not with "not found".

What deliberately does not narrow. Team workload, team capacity, and Manager View keep answering organization-wide: those are oversight grants, and a role given one was given the whole board on purpose. Meetings stay as they are, because being invited to one is what concerns you, whatever project it belongs to. Home's widgets keep answering with the rights of whoever defined them. And My Work is already exactly your tasks — the assignment rule in §4.1 guarantees every open task you hold is on a project you are on.


5. Project Norms & Permits

Link building codes and regulations from your org's Resources library under the Norms tab with Link Resource. Each linked norm has a compliance status: Pending → Analyzed → Implemented → Inapplicable — change it with the dropdown directly on the norm card. Each card can also carry project-specific notes (+ Add notes).

If a resource has task templates defined, linking it to a project automatically generates tasks in the matching phase; such norms show an auto-tasks badge. A notification is sent to Project Team members (not the entire org), or to the roles holding Tasks at Editor when the Project Team is empty — tasks were generated, so the people told are the ones who can act on tasks.

5.1 Who Can See a Project's Norms

Norms is a Feature Area of its own in the Roles editor (Settings → Roles), on the Hidden / Viewer / Editor scale. A role whose Norms are Hidden does not have them at all: no Norms tab on any project, and opening the address directly answers with an access notice saying the role does not include this section — never a page reading "no regulations linked yet", so "hidden" and "empty" never look alike. Norms at Viewer reads the linked norms and their notes and changes nothing: the compliance status shows as a badge rather than a dropdown, and there is no Link Resource button, no unlink, and no notes to edit. Norms at Editor links, unlinks, edits notes, and changes compliance statuses. The picker of resources still available to link needs Resources at Viewer as well, since the list it shows is your Resources library. Admin holds it at Editor automatically.

An empty Norms tab acts where you are. If nothing is linked yet and your Resources library has nothing to link either, someone with Norms at Editor, Resources at Viewer and Resources at Editor gets an Add a norm button that opens the same form as the Resources library; the norm is added to the library and linked to this project in one go. If the norm is added but the link is refused, a message says so and the norm waits in the library to be picked. Everyone else who finds the tab empty is not sent to a page they cannot use: the tab names who can help, up to three colleagues by name and then "and N others" — the people who can link norms (Norms at Editor with Resources at Viewer), or, if you can link but the library is empty and you cannot add to it, the people with Resources at Editor.

5.2 Permits

The Permits tab, next to Norms, records the approvals a project needs from outside authorities — the Urbanism Certificate, the approvals and agreements it names (fire safety, public health, environment, the utility providers…), the Building Permit. Click Add permit and choose its permit type; the list is your firm's own (Settings → Types, §16.7). If the type you need is not there and you are an Admin (or any role that can manage the organization), pick + New permit type … at the bottom of the list, type its name and click Add (or press Enter): the type is added to your firm's list and selected straight away, and its usual issuer and other details can be filled in later in Settings. The same rule as in Settings applies — a name already used, in any capitalisation, is refused where you typed it and nothing is created. Everyone else sees a line under the picker naming who can add permit types — up to three colleagues by name and then "and N others" — and if the list is still empty the dialog says so, with the same names, instead of opening the form. The same type may be added to a project more than once — two electricity connections, or a second attempt after a refusal, are each their own permit.

A permit has a status: Required → In preparation → Submitted → Additions requested → Obtained, or Refused, or Not applicable. The issuer is pre-filled from the type's usual issuer and can be changed for a project outside your usual county. Optionally set the phase it is needed for and a responsible person from your organization. Once Submitted (or Additions requested, or Refused) the dialog asks for the submission date, the authority's registration number and the response expected by date — pre-filled as the submission date plus the type's typical response days when the type has one, and yours to change. Once Obtained it also asks for the issue date, the permit number, an optional valid until date and any conditions the permit came with. A field you have filled in stays on the permit when its status moves on — a refused permit keeps its submission date — and stays visible in the dialog. A free-text notes field and an optional fee (RON) are always there. Every optional field can be emptied and saved to clear it.

The tab lists the project's permits with their type and issuer, status, phase, responsible person, the date that matters for their status (the expected response while waiting at the authority, the validity once obtained), the permit number and the fee. Deleting a permit is a soft delete, like the rest of the app. A permit whose type has since been deactivated keeps it, badged inactive, and its dialog still offers that type rather than silently changing it. Permits are internal to your firm unless you choose otherwise: on a joint project they reach the partner firm only when you turn on Permits in the sharing terms, and then read-only (§16.11). They are never shown on the Client Portal, and they are not written to the project's activity log.

Each permit's status is flagged when it needs attention, against today's date. Overdue (red) marks a permit that is Submitted or Additions requested whose response-expected-by date has passed — a response due today is not yet overdue. Expiring soon (amber) marks an Obtained permit whose valid-until date falls within the next 30 days, today included. Expired (red) marks an Obtained permit whose valid-until date has passed; it is a flag worked out from that date, not a status you set — the permit stays Obtained. A permit with conditions recorded is badged With conditions (blue); hover it to read them. Above the list, filter by phase (including "No phase") and by status.

Permit notifications. Two of those flags also arrive on the bell, without anyone having to open the tab: once when a permit's response goes overdue, and once when an obtained permit is 30 days from expiring (its valid-until date falls within the next 30 days). They are the app's only notifications raised by time passing rather than by someone doing something, so they come from a check the app runs once a day, early in the morning — a permit that goes overdue today is noticed the next morning. Each is sent to the permit's responsible person when one is set, and otherwise to the project's team members whose role can see Permits (or, on a project with none, to whoever can edit permits). Each goes out once: a permit left overdue does not remind you every day. Changing the permit's response expected by date re-arms the overdue notice, and changing its valid until date re-arms the expiry notice — the new date is noticed afresh when it comes round; any other edit re-arms nothing. Closing the project stops the overdue notice but not the expiry one: a closed project is no longer waiting on an authority, but a permit it obtained can still lapse, so an obtained permit on a closed project still warns 30 days before its valid-until date. A permit already expired when it is recorded never gets an expiry notice, because it was never about to expire. Once you deal with the permit, its notice clears itself: an overdue notice clears when the response arrives (the permit is marked Obtained or Refused), when the response expected by date moves to today or later or is removed, or when the permit is marked Not applicable or moved back before submission; an expiring notice clears when the permit is renewed with a valid until date more than 30 days away, when that date is removed, or when the permit leaves Obtained. A permit that simply runs out keeps its expiring notice — expiring is not dealing with it. A cleared notice stays on the bell, greyed, with the reason (Resolved: permit marked Not applicable), and no longer counts as unread (Section 14.6). Clicking either notification opens the project's Permits tab. Both belong to the Permits notification group (Section 14.7) and are bell-only, never emailed.

Tasks for a permit. The work of getting a permit stays ordinary tasks. Each permit on the tab has an Add task button, which opens the usual Add task dialog already filled in: the permit's project, the phase the permit is needed for, a title naming the permit ("Obtain …") and the permit's responsible person as the assignee. Every one of those can be changed before you click Create task; a phase that has since been completed is left empty, and a responsible person who is not on the project's team is not filled in (the dialog says so). The task is linked to the permit: the permit lists its open tasks — each with its reference, title, assignee and due date, leading to the task on its phase board — and the task shows a permit chip naming the permit on its phase-board row, which leads back to the permit on the Permits tab. After creation the task's phase and the permit's are independent, so the work can sit in the phase where it happens. Changing a permit's status — Refused or Not applicable included — never touches its tasks. Deleting a permit keeps its tasks and removes their link; moving a task to another project removes its link too, because a permit belongs to one project. Add task needs Tasks at Editor, the open-task list needs Tasks at Viewer, and the permit chip is not shown to a role whose Permits are Hidden.

The scanned permit. When a permit is obtained, upload its scan on the permit itself: click Upload scan under the permit's type on the tab and choose the PDF (up to 20 MB). The scan becomes a document of the project, of the type Aviz / Acord, titled after the permit type and its number, filed under the phase the permit is needed for — so it also sits in the project's Documents with everything else, and it is shared exactly like any other document: on the Client Portal only if you share it there, and with a partner firm on a joint project under the same Documents sharing term. Scanned permit opens that document in one click, from the tab and from the Permits page. Uploading again (Replace scan) adds a new version of the same document rather than a second one; its earlier versions stay in the document's history. Deleting the document from Documents unlinks it from the permit, which offers Upload scan again. Uploading needs both Permits at Editor and the right to create documents; anyone missing either sees no upload button, and the link is shown only to roles that can view documents. New organizations start with the Aviz / Acord document type; existing ones were given it when the feature arrived. Like any default type it can be renamed, and the scans stay filed under it.

The Permits page. Workspaces → Permits, beside Projects, lists every permit across the projects you can see in one table — for the Monday-morning question: what is waiting at an authority, what is overdue, what is about to expire. Each row names the project by its code and number (for example GAV 001/2026) — its title is left off so the row stays readable, and hovering the code shows it — then the permit type and issuer, its status with the same flags as the tab, the phase it is needed for, the responsible person and its key date; the project links to that project's Permits tab, which is where a permit is edited. Filter by status — any single status, or At an authority for Submitted and Additions requested together — and by standing: Needs attention (any flag), Overdue, Expiring soon or Expired. Both filters are kept in the address, so a filtered view can be bookmarked or sent to a colleague. Project Visibility holds here as everywhere (Section 4.2): a project you are not on the Project Team of contributes no rows and no counts, unless your role has Can see all projects. Closed and deleted projects are left out. The Workspaces index shows a Permits tile counting the same set.

Asking the assistant. The same question can be asked in the chat: "what permits are still missing on Casa Verde?", "is anything overdue or expiring this month?". The assistant reads the same permits as this page, with the same flags and the same two filters, on one project or across every project you can see — see Section 20.1 — and names each permit's project the same way, by code and number. It judges each flag on your own today, the date it is told (§20.26), so just after midnight it agrees with this page.

5.3 Who Can See a Project's Permits

Permits is a Feature Area of its own in the Roles editor, under Projects beside Norms, on the Hidden / Viewer / Editor scale. With Permits Hidden there is no Permits tab on any project and no Permits entry or tile under Workspaces, and opening either address answers with an access notice. Permits at Viewer reads the tab and the Permits page and changes nothing: there is no Add permit button, no edit and no delete. Permits at Editor records, edits and deletes permits; uploading a permit's scan also needs the right to create documents, since the scan becomes a document of the project. New organizations start with Viewer at Viewer and Architect and Project Manager at Editor; Admin holds it at Editor automatically. When Permits arrived, every existing role that could see Norms was given Permits at Viewer, and every one that could edit Norms at Editor, so nobody had to edit each role before the tab appeared.


6. My Work & Tasks

My Work is your personal task board — all tasks assigned to you across all projects, and any general task assigned to you, which reads General where a row would name a project. The office's own list of every task, across every person, is the Tasks page in Section 6.6. Both need Tasks at Viewer or above: a role whose Tasks are Hidden has no My Work entry in the navigation, and reaching the address answers with an access notice rather than an empty board (see Section 3.3.1).

Where a row's title leads. Clicking a task's title opens that project's phase board with the containing phase already open, the row scrolled to and lit for a moment — the same arrival a Reference typed into search gives you, and the same one the bell gives you when a colleague hands you a single task. There is one address for arriving at a task on a project, whichever firm owns it: a task on a joint project another firm shares with you opens that project's Phases tab on the task, exactly as your own firm's opens its phase board. A general task is the one that lands elsewhere, because it has no board — its title opens the Tasks page narrowed to General, where its row is waiting.

6.1 Board View

My Work opens in List view; switch to Board with the List / Board tabs at the top right. The board groups tasks into status columns: To Do, In Progress, Blocked and Done. Drag a card to another column to change its status. On a phone the board shows one column at a time, chosen by tabs carrying each column's count, and a card's ⋮ button opens a Move task sheet listing the other statuses. Each card shows the task's title, its project, its priority badge and its due date — red when overdue. Blocked marks a task that cannot progress until something outside it is resolved; blocked tasks still count as open and keep their due dates.

To Do

3

Structural review

Ionescu HQHigh

Permit documentation

Office Tower BHigh

3D model update

Casa VladescuLow

In Progress

2

Site analysis report

Ionescu HQHigh

Client presentation deck

Ionescu HQMedium

Blocked

1

Fire safety approval

Office Tower BHigh

Done

2

Initial concept sketches

Popescu VillaMedium

Contract review

Office Tower BHigh

6.2 When a Task Is Due

Sorted by due date, the list groups tasks into Overdue, Due Today, Due Tomorrow, This Week, Later, No Due Date, and Completed. The badges along the top of the page count the same buckets, so a group heading and its badge show the same number — with one deliberate exception: the Completed badge counts everything you have ever finished, while the group beneath it shows a window of it. Section 6.2.2 explains why.

Two rules decide the grouping. A due date is a date, not an appointment: a task due today stays in Due Today until midnight and only then becomes Overdue, whatever time of day is stored on it. And a finished task is never late: completing a task moves it out of every due bucket into Completed, however long ago it was due. "This Week" means the days after tomorrow up to the end of the current Monday–Sunday week; anything beyond that is Later.

The same two rules are used everywhere a task's timing is shown — the red due date on a row, the Overdue filter, the cards on Home, and the workload badges on the Team page — so a task reads the same way on every screen. The bell reminds the assignee too: the morning before a task is due, and the first morning after its day has passed (Section 14.8).

Completed opens closed. Every group starts open except Completed, which starts collapsed — the page is what you still have to do, and a long history of finished work should not be what you scroll past to reach it. Click any group heading to open or close it; whichever way you leave Completed is remembered on that browser, so a member who wants their finished work in front of them opens it once. The one exception: clicking the Completed badge asks for exactly that work, so under that filter the group opens on arrival however you left it — the page would otherwise be a single heading with nothing under it. You can still close it from there.

6.2.1 Table / List View

List view is where My Work opens. Its Sort control orders the list by Due Date (the default, which gives the groups above), Priority, Created or Project; the last three render one flat list rather than due-date groups. The Sort control appears in list view only — the board is ordered by its columns.

Each row's status is the same control the phase board uses, and behaves identically: the colour dot and the name closed, the app's own menu open, first-letter typeahead, a bottom sheet on a phone, and the dot and name alone for a role that may read tasks but not edit them. Choosing a status changes the row immediately — the title strikes through the moment you pick Done — while the badges along the top and the due-date group the task belongs to follow a moment later, once the save is confirmed. A refused save puts the row back to its previous status.

6.2.2 The Completed Window

My Work shows the work you completed in the last 30 days. Older finished work is neither deleted nor hidden for good: one button widens the window a step at a time — 30 days, then 90, then 365, then all time. It is labelled with the window it will show next rather than with the word "older" — Show last 90 days, then Show last 365 days, then Show all time — so it never quietly changes what it does; this guide calls it Show older for short. In list view the Completed group heading names the window it is showing, reading Completed · last 30 days and, at the last step, Completed · all time.

The window is carried in the address like the filter and the sort, so a widened window survives a refresh and can be shared as a link; the plain address is the plain 30 days.

Show older sits in three places, all driving the same window: on the Completed group heading in list view, on the Done column's heading in board view — which the phone board's Done tab inherits — and at the foot of the list wherever no Completed heading renders, under a line saying that completed work older than the window you are in is hidden. That third place covers the Priority, Created and Project sorts, which render one flat list, and a due-date list whose Completed group came back empty — so there is still a way out when nothing recent qualifies. It is offered only when there is older work to show, it goes away at all time, where there is nothing wider left, and it stays away under a filter that shows no finished work at all — To Do, In Progress, Blocked or Overdue. Pressing it opens the Completed group if you had left it closed, since you have just asked to see the work.

The Completed badge still counts everything. The badge along the top answers "how much have I ever finished"; the group beneath it answers "what did I just finish". So the badge may read 847 with 12 in the group under it — the labels are what keeps that from being a contradiction. Clicking the badge filters to Completed, and the window applies there too, with Show older available.

A task finished before Endulo recorded completion dates has no date to place it in a window, so it counts as old: it is outside the 30 days and comes back at all time, which drops the window rather than widening it.

A colleague's task list on their Team page is not windowed — it shows their completed work in full, because that page is about someone's output and has nowhere to widen from.

6.3 Filtering

The filter menu narrows My Work by status: All Tasks, To Do, In Progress, Blocked, Done or Overdue. The Total, Blocked and Completed badges along the top apply the matching filter when clicked.

If your firm has defined task parameters, three more controls appear. Filters opens a Filter by parameters panel with one field per parameter; set the values you want and press Apply Filters (a count on the button shows how many are active, and the panel's clear button removes them). Columns, in list view, picks parameters to show as extra columns; Card Fields, in board view, picks parameters to show on the cards. Your choice of columns and card fields is remembered on that browser.

The status filter, the sort, the view, the parameter filters and the completed window are all carried in the address, so you can bookmark a filtered view or send it to a colleague and they open the same view.

6.4 Required Tasks

Tasks marked "Required for completion" block phase completion until done. Mark a task with Mark as required in its row's ⋮ menu (and remove the flag with Remove required flag). The option is offered only on a task filed in a phase, since the flag gates that phase's completion; a task that leaves its phase loses the flag.

6.5 Task Priority

A task has one of three priority levels — Low, Medium or High — or none. Set it when creating or editing a task, or change it in place in the priority cell of a row on the phase board or the Tasks page. The badge appears on My Work's rows and cards, and My Work's Priority sort orders the list by it.

LowMediumHigh

6.6 The Tasks Page

My Work answers "what am I doing". The Tasks page — under Workspaces, beside Projects, Clients and Documents — answers "what is the office doing". It is one flat list of every task you may see, project work and general work together, and it needs the same Tasks permission at Viewer or above: a role whose Tasks are Hidden has no Tasks entry in the navigation, sees no general task anywhere, and is answered with an access notice if it reaches the address.

It is not a second My Work: My Work is the per-person screen, laid out for a phone, and this is the per-office screen, laid out for a desk. It is not a backlog either — half its rows are scheduled, in progress or done, and a backlog is the set of work that is none of those.

All workAnyoneOpenAny priorityAny timeNew task
T-1482Structural reviewTechnical designION 004/2026AnaIn Progress12/03/2026
T-1490Permit documentationPermittingOTB 002/2025MihaiBlocked28/02/2026
T-15013D model updateVLA 011/2026UnassignedTo DoNo date
T-1506Renew the printer contractGeneralAnaTo Do05/04/2026

What a row shows. The task's reference (T-1482) leads, then the title with its phase underneath in smaller type, then a chip carrying the project's abbreviation and number — or General for a task that belongs to no project — then the assignee, the status, the priority and the due date. A task filed in no phase shows no phase line; the row stands on its own.

Editing in the row. Every row edits in place, exactly as a row on the phase board does — it is the same row. Change a task's status, priority, due date or assignee in its own cell and it saves at once; if the change is refused, the cell goes back to what it was and a message says which field and why. Marking a task Done clears its overdue red straight away. Clicking a task's title — a project task's or a general task's — opens its Task details window here on the page, the same window the phase board opens, and that window edits the whole task: its title, status, priority, due date, assignee, place, notes and parameters. The row's ⋮ menu offers Task details, Mark as required on a task filed in a phase, Delete behind the same confirmation the board asks for, and — on a project task — Open in phase board, which takes you to the task on its project's Phases tab with its phase (or No phase) open and the row lit. Dragging tasks between phases and selecting several at once stay on the phase board. Editing a task never costs you your place, your filters or your scroll in the list.

Reassigning in the row. Each row's assignee menu offers the people that task can go to. A general task belongs to no project, so its menu offers everyone in your organization. A project task's menu offers that project's team — never another project's — and, if your role can manage teams, the rest of the organization under Not on this project's team: choosing one of them adds them to the project's team and assigns the task in one step. If the person a task already holds is no longer on its team, they stay on the menu under Currently assigned, so opening the menu never quietly drops them. Each menu reads its project's team when you open it. If your role edits tasks but cannot see the Team area, the menu offers only Unassign and says why, as on the phase board.

An edited row stays put. With a filter on — say, In progress — a task you mark Done stays in its row showing Done, so you can see the change took and undo a mis-click. The same holds for a task you hand to a colleague while the list is filtered to your own work. It leaves the list the next time the list is read: when you change a filter or the sort, or come back to the page.

A role that reads tasks but does not edit them sees every row as plain text, with no menu and nothing to open. Arriving on the page from a link that names one task — a general task on Home's My Tasks, or one found in search — scrolls to its row and lights it for a moment; nothing opens until you click. New task opens the same Add task dialog the header's quick action opens, blank, with nothing preselected; the new task appears in the list as soon as it is created.

What it opens on. Every open task, sorted by due date with undated tasks last. Finished work is history and appears only when the status filter asks for it — choose Done to see finished work alone, or Any status to see everything together.

Filters. Across the top: project (pick as many as you like, listed by abbreviation, with General at the top whenever the office has general work), assignee, status, priority and due. Narrowing to General alone is the office's general list — every general task in the organization, assigned or not. The assignee menu offers only people actually holding work you can see, plus Unassigned when something is unassigned. Filters and the sort are carried in the address, so a view can be bookmarked or sent to a colleague; Clear filters empties them and leaves the sort where you put it.

What the page can see. Every row on a project obeys Project Visibility (Section 4.2): a project you are not on the Project Team of contributes no rows and does not appear in the project filter at all. A general task is on no project, so there is nothing for Project Visibility to be about — the Tasks permission is the whole of the gate, and everyone who sees tasks sees all of the office's general work. Closed and deleted projects are left out too — a closed project's work is finished, and reopening one brings its tasks back. The project filter lists exactly the projects carrying work you can see, so a project with no tasks on it is not offered. The Workspaces index counts the same set on its Tasks tile.

6.7 General Tasks

Not all of an office's work belongs to a project. Renewing the printer contract, preparing a competition bid, chasing the accountant, booking a training day — none of it sits on a project, and filing it under whichever project happened to be open makes that project's board and its logged hours lie.

A general task is a task that belongs to the organization and to no project. It is a task in every other respect: it has a reference (T-1482), a title, notes, a status, a priority, a due date, an assignee and whatever task parameters your firm has defined. It is not a different kind of record and it is not a separate list — it is a row on the Tasks page like any other, carrying General where a project task carries its abbreviation.

Creating one. Pick General — the first entry of the project list — in the header's Add task dialog or in the Tasks page's New task button, type a title, and save. There is no phase to choose, because there is no project to have phases.

Who sees one. Anyone whose role has Tasks at Viewer or above sees every general task in the organization; Tasks at Editor creates and edits them. There is no new permission and no visibility setting: general work is the office's, and the office is the unit that owns it. A role whose Tasks are Hidden reaches none of it. A partner firm never sees a general task — partner work is built out of joint projects, and a general task is on none — and neither does a client reading the portal.

Assigning one. Anyone in the organization can hold a general task, because there is no Project Team to be on. They are told on the bell exactly as they would be for project work, and the notice says General where it would name a project.

On My Work. A general task assigned to you appears on your board like any other, reading General where a row would name a project. Its title leads to the Tasks page narrowed to General, where its row edits in place and its title opens its details — exactly as a project task's title leads to that project's phase board.

Moving between the two. Open a task's details and change its Project field: General pulls a task out of its project, and picking a project puts it on one. The task's reference never changes, nobody is notified, and hours already logged against it are left exactly where they were logged.

It counts everywhere work is counted. Every number the app gives about somebody's workload includes their general tasks: Home's three task cards, My Work's badges, the workload badges beside a name on the Team page, and the open/overdue/blocked counts on a colleague's profile. Where such a number is broken down by project — the Projects tab of a member's profile — General is one more group in the list, carrying its own open-task count and leading to the Tasks page narrowed to General. It is a group and not a project: the Active projects card above it counts projects only. Without this a member buried in office work would read as free, which is the one thing these numbers exist to prevent.

Finding one. The command palette finds a general task by its title or by its reference, exactly as it finds a project task, and the result reads General underneath the title where a project task reads its project. Clicking it opens the Tasks page narrowed to General, with the row scrolled to and lit for a moment — the same arrival a project task gets on its phase board, on the page a general task has instead of one. Edit it in the row, or click its title to open its details; if your role reads tasks but does not edit them, the row is lit and opens nothing.

Where a general task does not appear. Not on the Calendar: the calendar shows meetings, leave, holidays and project and phase deadlines (Section 10.3), and no task of any kind has ever been on it — a general task's due date is read on the Tasks page, on My Work and in the assistant's answers. Not on a partner firm's screens, because partner work is built out of joint projects and a general task is on none. Not on the client portal. And not in the hours report's project rows yet — logging hours against General is its own piece of work.


7. Documents

The Documents library under Workspaces → Documents holds the organization's files — drawings, specifications, permits, contracts, reference material. It has two tabs, Documents and Templates, each with its count; templates are covered from §7.11.

7.1 Uploading Documents

Go to Workspaces → Documents and click "New Document". Give the document a title (required), choose a document type and a project, and optionally attach a PDF of up to 20 MB — the button reads Upload & Create when a file is chosen and Create Document when not. A PDF can also be uploaded later from the document's page (§7.3). Every new document starts in Draft. The project dropdown is the same one the meeting and Log Hours forms use — code and number leading, the title in grey after them, one line per project; hover a row to read a full title that has been shortened. The project stays optional here: pick "No project (standalone)" for an organization-level document that belongs to no project. The same picker appears when generating a document from a template ("Use in project"), where a project is required — the Add to project button stays disabled until one is chosen. Which projects it offers is Project Visibility's question, answered in §7.8.

7.2 Document Types

Admins define document types under Settings → Types, in the Document Types section. Each type can specify which custom parameters are required.

Deactivate and Delete are two different things. Deactivating a type retires it from new use: the type stays, every document already filed under it keeps it, and that document's dropdown still lists it — marked inactive — so re-saving never quietly drops the type. Deleting a type says the term never existed, and is permitted only while nothing live references it; if something does, you are told how many records use it and pointed at Deactivate, which is usually the verb you meant. Default types are ordinary types: rename, deactivate or delete them like any other — they are starting suggestions, not locked system entries.

This is how every type list behaves — document types, resource types, vendor categories, collaborator types, parameter categories, parameter disciplines and permit types (§16.6, §16.7). Vendor categories are a tree, so both verbs read on the whole branch: deactivating a category retires its subcategories with it, and deleting one is refused while any vendor under it still uses it. Vendor categories are also the one list you do not own all of — the platform categories in it belong to the product and neither verb is offered on them (§16.7).

7.3 Automatic Versioning

Every file upload creates a new version; the previous file is kept. Open a document and use Upload in its File card to attach a PDF — the button reads Replace once a file is attached. The card shows the current file with a Download button and a preview of the PDF beneath it. Click Versions on the File card to see the full history: each version's number, date, uploader and file size, with Open to view that version. Uploading and replacing are offered only while the document is a Draft. The same File card appears in the Document Drawer (§7.10).

7.4 Auto-population from Project Brief

When you create a document and select a project, Endulo automatically pre-fills document parameter fields that have a matching slug in the project brief. This saves re-entering data already captured in the project's data sheet.

7.5 Phase Auto-Link

When creating a document via a phase's "New Document" action, the form pre-selects that phase and displays a context badge showing which phase it belongs to.

7.6 Written Content

Besides (or instead of) an uploaded PDF, a document can hold text content written directly in the app: open the document and use Edit in the Content card. The editor supports headings, bold/italic, and lists. Long content displays in its own scrollable area, so the document header and actions stay visible while you read.

7.6.1 Parameter Tokens

While writing, press the + Parameter toolbar button or type {{ to insert a live parameter token as a colored chip. The picker offers, grouped: built-in project fields (project title/code/number/deadline, client name, client legal name, client CUI/address/email/phone, organization name, today's date), project parameters, Project Brief fields, and document parameters. Two of those groups follow their own Feature Area: the Project parameters group is absent for a role whose Parameters are Hidden, and the Brief fields group for a role whose Brief is Hidden — with no value from either resolved into a token. The client tokens follow Clients the same way. The document stores a reference, not a value — when the underlying value changes, every document showing that token updates automatically. In the saved document, chips display the current value on a highlighted background; a token whose value is not set shows a warning-styled chip with the parameter name.

7.6.2 Export to PDF

The Content card's Export PDF button opens an A4 print view with all token values resolved and rendered as plain text. Use the browser's print dialog and choose "Save as PDF". Values are resolved at export time, so the PDF reflects current data.

7.7 Document List Actions

Every document moves through a short lifecycle:

DraftCompletedArchived
  • Draft — being worked on: files can be uploaded and replaced, content written, and the details edited.
  • Completed — finalized. Its file and content are read-only; Return to Draft reopens it.
  • Archived — closed. It stays in the library and can be restored to Draft at any time.

In the Documents list, click a document's title to open it. The three-dot menu on each card offers View, Edit (on a Draft), Fill (on a document made from a template, unless archived — §7.15), the status changes the document's current status allows, and Delete, which asks for confirmation. From Draft you can Mark as Completed or Archive; from Completed, Return to Draft or Archive; from Archived, Restore to Draft. Status changes happen in place — the badge updates and a confirmation toast appears, without leaving the list. The document's own page offers the same changes as buttons beside its title.

Documents

New Document

Contract Popescu

Contract

Completed

22 May

Ofertare Arhitectura

Offer

DraftFill

21 May

Tema de Ofertare

Brief

Draft

19 May

Memoriu Tehnic

Technical

Archived

15 May

Each card shows the title, the status badge, the document type, a Fill badge on a Draft made from a template, the project's code and number (§7.8), who created it and when it was last updated. Above the cards, a search box matches document titles, and two menus filter by status (All Status, Draft, Completed, Archived) and by document type (All Types or any active type). They combine, and the count beside them shows how many documents match. All statuses are listed by default, archived documents included.

7.8 Which Project a Document Names

Reading documents is an organization-wide grant: Documents at Viewer opens the library, and the library holds the organization's documents, whichever project they were filed against. Project Visibility (§4.2) does not take documents away from you — it decides which of them say a project's name.

For a role without Can see all projects, a document filed against a project you are on carries that project's abbreviation and number on its row and on its page, exactly as before — hover them for its title. A document filed against a colleague's project is listed just the same, with no project label on it: the document is yours to read, the project's identity is not. The same holds for the template fill panel — a document whose project is not yours resolves none of the project's fields, and they are typed in by hand, exactly as they are for a role whose Parameters are Hidden (§9.8).

The pickers follow: the project dropdown on New Document, on a document's edit form, and on "Use in project" offers the projects you are on, and the server refuses any other — so what the picker offers and what the save accepts cannot disagree. A role whose Projects are Hidden is offered no project at all and reads no project label anywhere, which is the stricter answer and unchanged.

7.9 Dates on a Document Screen, and Dates on Paper

Documents write a date two ways, and the line between them is whether it gets printed.

On screen, a document date is written like every other date in the app. The Documents list, a document's page and its version history, the template list, and a project's Documents tab all say 28 Aug, or 28 Aug 2025 when the date is not in the current year (§16.12). A list of documents is a list like any other, so the Updated column on a document row and a date on a project row are written identically for the same day.

On paper, a date keeps the numeric form your paperwork expects: 28/08/2026. That is the form substituted into the document itself — the today's date and project deadline tokens in written content (§7.6.1), the same two fields when a document is generated from a template, and whatever those resolve to when the document is exported to PDF (§7.6.2). Nothing about generated output changed here.

So a contract carries 28/08/2026 on its signature line while the row that lists that contract says 28 Aug. Both are deliberate: the first is your firm's document, the second is a screen.

7.10 Document Drawer

On a project's Documents tab, clicking a document card opens the Document Drawer — a panel sliding in from the right that shows the same view as the document's page: its status and type with the status buttons, its details, and the File card with the PDF preview and version history. A document made from a template that is not archived has a Fill button in the drawer's header (§7.15). Full page opens the document's own page in a new browser tab. The drawer belongs to the project tab; in the Documents library, a document's title opens its page directly.

7.11 Document Templates

Templates are master PDFs — contracts, offer letters, briefs — that can be copied into any project with fields pre-filled from that project's data. They live on the Templates tab of Workspaces → Documents, which has its own search box.

A template's PDF is one of two kinds, shown by a badge on its row:

  • Fillable — a PDF with named form fields (AcroForm), made in Adobe Acrobat or similar. Endulo detects the fields when the file is uploaded and can fill them in the app.
  • Flat PDF — an ordinary PDF without form fields. It is downloaded, filled by hand and uploaded again.

Creating one. Click New Template, enter a title (required), optionally choose a document type, and use Upload PDF template to attach the file; Create Template saves it and the row shows the Fillable or Flat PDF badge. A row also shows its type, a PDF badge when a file is attached, and its creation date. Its buttons are Map fields (shown once the template has a PDF), Use in project, and a delete button that asks for confirmation.

7.12 Mapping Template Fields

On a Fillable template, click Map fields. A Field Mapping panel opens under the row, listing every form field detected in the PDF by its technical name. For each field set:

  • Label — the readable name shown when the document is filled, for example "Client Name".
  • Data source — where the value comes from: project title, code, number or deadline; client name, CUI, address, email or phone; organization name; today's date; or Manual input, which the person filling the document types in.
  • Req. — makes the field required: a filled PDF cannot be generated while it is empty.

Click Save mapping to keep it. The mapping can be changed at any time and does not alter documents already generated. If the save fails, the error appears at the top of the panel and the panel stays open with your edits intact. Done closes the panel.

Field Mapping

Done

client_name

Client Name
Client name

project_title

Project Title
Project title

date_signed

Date Signed
Today's date

total_fee

Total Fee
Manual input
Save mapping

7.13 Fill Prompts for Flat PDFs

A Flat PDF has no form fields to map, so Map fields opens a Fill Prompts panel instead. Use Add prompt to describe each thing the person filling the document must supply — "Enter the client's CUI", "Sign and date" — with the same label, data source and required settings as a mapped field, then Save mapping. The prompts are shown when the document is filled, as a checklist beside the template download (§7.15).

7.14 Using a Template in a Project

Click Use in project on a template row, choose the project, and click Add to project. A project is required, so the button stays disabled until one is chosen; the picker is the one described in §7.1 and offers the projects described in §7.8. On a project's own Documents tab, From template does the same thing the other way round: choose the template in the Add from template dialog and click Add to project.

Endulo then:

  • creates a new Draft document in the project, with the template's title and type, linked to the template;
  • copies the template's current PDF as version 1 of the new document;
  • pre-fills every field whose data source is project data, and stores those values with the document.

You are taken to the project's Documents tab. A document made from a template carries a Fill badge while it is a Draft — a reminder that manual fields may still need completing.

7.15 Filling a Document

Open Fill from a document's three-dot menu in the library, or from the Document Drawer's header. The Fill Document panel slides in with two groups:

  • Auto-filled from project — the fields mapped to project data, each labelled with its source and already holding the project's value. Review or override any of them.
  • Manual fields — the fields set to Manual input, as form fields to complete; a required one is marked with a red asterisk.

Values you entered before are shown again the next time you open the panel.

For a Fillable document, click Generate filled PDF at the bottom. If a required field is empty, the panel names the missing fields and generates nothing. Otherwise Endulo writes the values into the PDF's form fields, saves the result as a new version of the document, and the list and drawer update straight away.

For a Flat PDF document there is nothing to generate: the manual group is headed Fill prompts and serves as your checklist, beside a Download template button. Fill the PDF by hand in Acrobat or similar, then upload the completed file on the document's page (§7.3).

An archived document cannot be filled.

Fill Document

Auto-filled from project

Client Name

Client name
Familia Popescu

Project Title

Project title
Residence Popescu

Date

Today's date
22/05/2026

Manual fields

Total Fee *

Enter amount…
Generate filled PDF

8. Project Brief

The Project Brief is a per-project parametric data schema — a structured data sheet that lives alongside each project. Think of it as the project's digital specification card.

Each project can have a completely different set of fields. A residential project might define "Client Area (sqm)", "Number of Units", and "Facade Typology" — an infrastructure project might define "Road Length", "Municipality", and "Soil Classification". Neither set of fields appears on any other project.

8.1 Defining the Brief

Inside any project, open the Brief tab. A role with Brief at Editor (Section 8.5) clicks Edit Structure to add sections and fields directly, and Done to return to filling values in. Fields support these types: text, number, area (m²), boolean (yes/no), enum (dropdown), date, URL, and calculated (formula referencing other numeric fields).

Calculated fields use standard math expressions (e.g., floor_area * unit_cost) and update automatically when referenced fields change. Every field change is logged in an audit trail showing who changed what and when.

8.2 Brief Templates

Admins can create reusable brief templates under Settings → Brief Templates. A template defines sections and typed fields that can be applied to any project. One template can be marked as the default for new projects.

8.3 Required Brief Fields for Phase Gating

Any brief field can be designated as required for a phase to close (Gate 2a). Configure this in the phase edit modal — the field must have a value before the phase is marked complete. A role whose Brief is Hidden is not offered brief fields when configuring the gate; the gate still holds for it, and completing such a phase tells it how many required project fields are still empty without naming them.

8.4 Brief Values on Documents

Brief field values auto-populate matching document parameter fields by slug when a document is created for that project. This follows the brief's own area: a member whose role has Brief Hidden fills those fields in by hand, and the Brief group does not appear in the document editor's parameter token picker.

8.5 Who Can See the Brief

The Project Brief has its own Feature Area in the Roles editor (Settings → Roles), called Brief, on the Hidden / Viewer / Editor scale. A role whose Brief is Hidden does not have the brief at all: no Brief tab on any project, and opening the address directly answers with an access notice saying the role does not include it — never an empty brief, so "hidden" and "empty" never look alike. Brief at Viewer reads the whole brief and changes nothing in it: values are shown as text rather than as click-to-edit fields, there is no Edit Structure button, and no template can be applied. Brief at Editor edits the sections, the fields, and the values. Applying a brief template when creating a project is a brief write and so follows Brief at Editor too — a role that can create projects but has Brief at Viewer is not offered the Brief Template picker. Admin holds it at Editor automatically.


9. Custom Parameters

This is one of Endulo's most powerful systems. Understanding it well will unlock flexible, customized workflows for your firm.

9.1 Inspiration from Revit

Endulo's parameter system is directly inspired by how Revit handles shared parameters.

In Revit, you define a parameter once — its name, data type, and discipline — and then assign it to specific categories (Walls, Doors, Rooms, Sheets, etc.). Each element in those categories stores its own independent value for that parameter. The definition is shared; the values are per-element.

Endulo applies the same philosophy at the practice management level:

  • Define a parameter once, at the organization level (name, type, discipline, group).
  • Assign it to any combination of entity types — projects, tasks, documents, vendors, brands, collaborators, clients, resources — or to individual records.
  • Store independent values on each entity. A "Contract Value" on a project is that project's contract value — a "Contract Value" on a vendor is that vendor's own contract value.

The key benefit: your parameter vocabulary is defined once and applied consistently everywhere, rather than duplicating definitions across entity types.

9.2 Two Parameter Systems

Endulo has two complementary parameter systems, each solving a different problem:

Global Parameters (Settings → Parameters) Defined once at the organization level. Used for data that is consistent across many entities — the same "Contract Value" field appears on every project, or the same "Insurance Expiry" appears on every vendor. These parameters live in your org's shared vocabulary.

Project Brief Parameters (per-project, see Section 8) Defined inside each project individually. Used when different projects have fundamentally different data needs — a residential project and an infrastructure project should not share the same field schema. Brief parameters exist only within the project they were created for.

Think of Global Parameters as your firm's standard parameter set, and Project Brief as the project-specific data sheet.

9.3 Multi-Entity Assignment

Parameters are free by default: creating one in Settings → Parameters does not tie it to any entity type. You decide where it applies afterwards, in two ways that coexist.

Global scope. In the catalog, click a parameter's scope chevron (Set global scope) and check one or more entity types — Project, Task, Document, Vendor, Brand, Collaborator, Client, Resource. The parameter then appears on every record of each checked type, labelled global, and the catalog row shows a badge for each type it is scoped to. On the Projects, Vendors and Brands lists, globally scoped parameters are also offered as filters. If a toggle fails to save, the error is shown inside the scope popover and the checkbox stays as it was — the change is only real once it sticks.

Per-instance activation. Any parameter can also be added to one specific record. Open a vendor, brand, collaborator or resource's edit form and scroll to its Parameters section, or open a project's Parameters tab, then use Add parameter or Apply template (Section 9.9). A parameter added this way appears only on that record.

Examples:

  • "Client Reference Code" → scoped to Projects and Documents — the same field, capturing the client's internal reference, appears on both.
  • "Insurance Expiry Date" → scoped to Vendors and Collaborators — track expiry for all external parties in one place.
  • "Revision Number" → scoped to Documents only — document-specific.

A project's Parameters tab is a flat list of the parameters active on that project. Parameters globally scoped to Project appear there automatically with the global label and cannot be removed from this view; parameters added to this project alone can be removed. Fill the values in on the page and click Save values. A Project Brief field linked to a catalog parameter shows that parameter's project value in the brief as well.

9.4 Cascade

A parameter can carry a Cascade to children flag. When it does:

  • You set the value once on the project.
  • The project's tasks and documents inherit the project's value for that parameter.
  • The task or document shows the inherited value read-only, badged Inherited. It cannot be overridden there.
  • Change the value on the project, and its tasks and documents reflect the new value — no re-entry.

This is the Endulo equivalent of Revit's type parameters, where changing a type-level value propagates to all instances of that type.

Settings → Parameters no longer offers a control to set or clear the flag: it was removed when parameters became free of an entity type. Parameters that already carried it keep cascading; a new parameter never does.

9.5 Parameter Types

  • Text — free-form string
  • Number — numeric value with optional unit
  • Boolean — yes/no toggle
  • Enum — dropdown from a predefined list of options
  • Date — the app's own date field (§16.12); a value is displayed the way every other date on a screen is, 28 Aug or 28 Aug 2025 (§16.12), because a vocabulary your firm defines for itself should read like everything else
  • URL — validated web link
  • Formula — calculated from other numeric parameters (expressions like: floor_area * rate)
  • Lookup — references another entity (projects, clients, vendors, team members)

9.6 Parameter Groups and Disciplines

Parameters can be grouped under a Group Name (for visual organization in forms) and tagged with a Discipline (Architectural, Structural, MEP, Urbanism). These are organizational aids — groups appear as section headings in forms, disciplines help filter large parameter sets.

Both lists are edited under Settings → Types. No two categories, and no two disciplines, may share a name — capitalisation does not make them different. Renaming a category or a discipline takes effect everywhere immediately — every parameter filed under it keeps its filing, section headings and filters pick up the new name, and the category still counts as in use when you try to delete it. To retire one without disturbing existing parameters, deactivate it: it stops being offered on new parameters and stays where it is on the old ones.

Both lists start with suggestions — the four disciplines, and whatever categories you add — and they are yours from then on. Deleting every entry leaves the list empty and it stays empty; nothing puts the defaults back.

9.7 Required Parameters

A parameter can be marked Required at the definition level — the create/edit form for that entity will enforce a value before saving. Additionally, specific parameters can be designated as required for a phase to close (Gate 2b), independent of the global required flag.

9.8 Who Can See a Project's Parameters

A project's parameter values are the Parameters Feature Area in the Roles editor (Settings → Roles), on the Hidden / Viewer / Editor scale. A role whose Parameters are Hidden does not have them at all: no Parameters tab on any project, no parameter block on the project Cover, no parameter columns or filters on the projects list and Home, and opening the address directly answers with an access notice rather than an empty panel. Parameters at Viewer reads the values as text — no Save, no template to apply, nothing to add or remove. Parameters at Editor activates parameters, applies templates, and fills the values in.

Three consequences worth knowing. Creating a project no longer fills in required project parameters unless the role holds Parameters at Editor, so someone who has the area fills them in afterwards. A document created from a template stops auto-filling fields sourced from a project parameter for a role whose Parameters are Hidden — those fields are typed in by hand, and the Project parameters group does not appear in the document editor's token picker. And a cascading parameter (Section 9.4) stops flowing down for that role too: the inherited value on a task or a document is the project's value under another name, so it follows the project, and the child's own values are untouched.

This governs a project's values only. The parameter vocabulary itself — Settings → Parameters, and the templates beside it — stays with Organization at Editor, and parameters on a task, document, vendor, collaborator, client, or resource keep following that entity's own Feature Area. The Project Brief is the other neighbour: a brief field linked to a catalog parameter is read and written with the brief, under Brief, because it is a brief field the reader navigates to under the brief's name.

An empty Parameters tab acts where you are. If nothing is active and the catalog is empty too, someone with Parameters at Editor and Organization at Editor gets an Add a parameter button that opens the same form as Settings → Parameters; the parameter is added to the catalog and activated on this project in one go. If it is created but activating it is refused, a message says so and it waits in the catalog to be added. Everyone else is not sent to a Settings page they cannot open: the tab names who can help, up to three colleagues by name and then "and N others" — the people with Parameters at Editor for a reader, or the people with Organization at Editor for an editor facing an empty catalog.

9.9 Managing Parameters

Go to Settings → Parameters (Organization at Editor). The Custom Parameters catalog is one list, which you can narrow by category and by discipline; each row shows the parameter's type, a Required badge when it is required, and a badge for each entity type it is globally scoped to (Section 9.3). Creating or editing a parameter sets its name, type, category, discipline and the Required field flag — plus the options of a Dropdown List, the expression of a Formula, or what a Lookup looks up from. Use the edit button to change them. The parameter type cannot be changed after creation (it would corrupt stored values); archive and recreate instead.

Parameter Templates, below the catalog, are named flat lists of parameters — a kit for a project type or a workflow. Create one, then toggle any catalog parameter on or off in it. Templates are universal: apply one from any entity's Parameters section or from a project's Parameters tab to activate all its parameters at once.

Archive and delete. Archiving a parameter soft-deletes it — the confirmation says how many existing records hold a value for it; those values are preserved but hidden, and the field no longer appears in forms. Archived parameters are listed under Show archived, where Restore brings one back and Delete removes it permanently along with all its stored values — this cannot be undone.

If a save on this page fails — a scope toggle, a template's parameter list, or a PDF template's field mapping — the error is shown in place and the editor stays open, so nothing is silently lost.

9.10 When a Parameter Save Is Refused

Parameters are usually saved alongside something else — a vendor's details, a document's title, a new project — and they are written after that record is. What happens when the parameter half is refused depends on where the record stands.

Editing something that already exists — a vendor, a collaborator, a resource, a document — keeps the form open and shows the reason in the banner at the top: The vendor was saved, but its parameters were not — you do not have permission to perform this action. The record's own details did save. Pressing Save again re-sends both halves and creates nothing, so retrying is safe.

Creating something cannot keep the form open: the record has already been created by the time its parameters are written, so a second Save would create a second one. The form closes and a message at the bottom of the screen says both halves plainly — The vendor was created, but its parameters were not — … — naming the record as existing so nobody goes looking to create it again. Open it and fill the parameters in. On a new project the Project Brief template is reported the same way and separately, since it is a different half: The project was created, but its Project Brief template was not applied — …

A project's Parameters tab has nothing to preserve — the values you typed stay on screen — so a refused Save says Could not save the parameters — … at the bottom of the screen and leaves the panel exactly as it is. It deliberately does not reload: reloading would fetch the old values and present them as though the server had accepted them.


10. Time Tracking

The Time page has five tabs — Calendar, Hours, My Leave, Team and, for a role with Manage Leave, Manage. The tab you are on is kept in the page's address, so refreshing the page or sending someone the link opens the same tab. A link to a tab you cannot see — Hours when your role's Projects are Hidden, or Manage without Manage Leave — opens on Calendar instead. The Hours tab was called Log Hours until it learned to read your hours back; an old link or bookmark to Log Hours opens Hours.

10.1 Logging Hours

Go to Time and click the Hours tab. The Log Time form sits at the top. Fill in: project, phase (optional), task (optional), date (which defaults to today, read on your own clock), hours (decimals accepted — 1.5 is ninety minutes; the form steps in quarter hours, up to 24), and a description. Click Log to save. A task's own window opens this same form with its place filled in (see Logging hours from a task in §3.3). The project dropdown is the same one the meeting form uses — code and number leading, the title in grey after them, one line per project; hover a row to read a full title that has been shortened. Somewhere to put the hours is required, so there is no "No project" row here: the Log button stays disabled until a row is chosen. The dropdown offers the projects you can see (§4.2) and the phase and task pickers beside it the phases and tasks on them, and the save accepts nothing else — hours land on work you are part of. A joint project you are staffed on appears in the picker beside your own, with its phases and your assigned tasks on it; the entry is saved in your own organization, under your own rates and schedules — see Hours stay home in §16.11.

General hours. The first row of the project dropdown is General — the office's own work, belonging to no project: renewing the printer contract, preparing a competition bid, an hour with the accountant. It is a choice, not the absence of one, so picking it fills the field like any project and the Log button enables. Choosing General hides the Phase dropdown, because a phase lives inside a project and General has none, and the Task dropdown offers the General Tasks assigned to you (§6), so hours can land on the task they were spent on. A task is optional there as everywhere: general admin time with no task is still logged. General hours count against no phase budget, so office overhead never distorts a project's cost, and an entry row for them reads General where another row names its project. The assistant logs them too — "log two hours on the printer contract" reaches the same place.

Picking a project brings up a Phase dropdown, loading briefly while the project's phases are fetched. It is optional and defaults to "No specific phase", listing the phases in project order; a completed or not-yet-started phase says so after its name and stays choosable, so hours can be logged retroactively on a phase that has since closed. Picking a phase narrows the task dropdown to that phase's tasks; leaving it on "No specific phase" offers every task assigned to you on the project. The three fields keep each other consistent: picking a task fills in its phase, changing the phase clears a chosen task that does not belong to it (and choosing "No specific phase" clears it too, since a task always carries its phase onto the entry), and changing the project resets phase and task together. A project with no phases shows no phase dropdown and logs exactly as before, and a role whose Phases are Hidden logs against the project alone.

The week strip. Above the form, a strip shows your week Monday to Friday: for each day, the hours you logged against the hours your work schedule asks of it (5.5/8h), with a bar that fills as the day does. Today is outlined. A public holiday reads Holiday, a day of your approved leave reads Leave, and a day your schedule leaves free — a part-time week — reads Day off, so none of them looks like a gap; hours you did log on such a day still show. The arrows move the strip to the previous or next week, and This week brings it back. Click a day to open the log form for that date, then pick the project and hours; the strip updates as soon as you log. If your role cannot view schedules, the strip measures you against the office's default week.

10.2 Viewing Your Log

Under the form, the Hours tab reads your hours back. It opens on your own hours for this month — the question most often asked — and a row of filters above the list changes what it covers:

  • The period: four shortcuts — This month, Last month, This quarter and This year — or a From and a To date in the app's date fields. The end may not fall before the start; while it does, the dates say so and the list stays on the last period that made sense.
  • Projects: the same projects the Log Time form offers, named by code and number with the title after, led by the same General row. Tick as many as you like; none ticked is All projects.
  • Phases and Tasks: offered once a project is chosen, for the chosen projects the way the form offers them — the project's phases, and the tasks assigned to you on it — and coupled the same way: ticking a phase narrows the tasks to that phase. General offers tasks and no phases, since general work sits in no phase. With one project chosen the lists are flat; with several, each list is grouped under the project's name, so two phases called the same thing on different projects are never confused. Changing the projects drops any chosen phase or task that no longer belongs, so a filter never silently matches nothing.
  • Members, only with the "Can see everyone's hours" Extra (Section 16.4) — see §10.5.

Every filter is kept in the page's address, so refreshing the page, or sending someone the link, opens the same view. "My hours on BA2 so far" is: tick BA2 under Projects, then press This year. You can also ask the assistant — "how many hours have I done on BA2 this year?" — and it answers with the same figures and a link to this view (§20.23).

The total, and where the hours went. Between the filters and the list, the Total of the hours that match leads, beside the number of entries — reading zero when nothing was logged in the period, since "nothing was logged" is an answer, not an error. Under it a short breakdown shows where the filtered hours went: one row per project, each with its hours, its share of the whole and a thin bar the length of that share. General is a row like any project's, listed first. Once exactly one project is chosen the rows become that project's phases, in the order of its phase board, with a No phase row for hours logged against the project alone. Tap a row to narrow the filters to it: tapping BA2 chooses BA2 alone, and the breakdown turns into BA2's phases; tapping a phase then narrows to that phase. The filters and the page's address change exactly as if you had ticked the choice yourself, so the list below follows and the link can be shared. A row that would change nothing — the phase you are already on, or No phase, which is not a filter — reads but does not tap. The rows are the figures the exported workbook's Summary prints for the same filters (§10.5), so the screen and the file never disagree. With "Can see everyone's hours", a By member switch appears beside the breakdown — see §10.5.

Under the breakdown the entries themselves follow, newest first unless you sort them otherwise (below), each showing its date, project, hours, and description. The project is named by its code and number — the title appears when you point at it — since the row is about the hours, not the project; a project with no code shows its title, and General hours read General. Under the project, an entry's phase and task appear in muted text — combined on one line as "Phase — Task" when the entry has both. A period with nothing logged says no hours were logged for those filters. The total and the list are the same numbers the exported workbook prints for the same filters (§10.5), because both are built from one report. No rate or cost appears anywhere on the tab.

Your own entries are listed on every project you ever logged on, even one whose Project Team you have since left, so your record of your own work stays whole — and such a project still narrows the tab: tapping it in the breakdown, or opening a link that names it, shows your own hours on it rather than everyone's on every project. A project, phase or task you can neither see nor ever logged on is not a filter you can use; an address naming one shows a notice instead of a list. Delete one of yours with the trash icon.

Sorting and Show more. The Sort button above the list orders it by Date, newest first (the default), Project (General first, then by code and title), or Hours, longest first — handy for finding your longest days. A holder of "Can see everyone's hours" looking at more than one member also gets Member, which reads the list person by person. Within a project, a member or the same number of hours, entries stay newest first. The sort is kept in the page's address beside the filters, so a refresh or a shared link keeps it, and changing a filter keeps it too. It only orders the screen: Export downloads the filtered hours in the workbook's own order (§10.5), whatever the list is sorted by. A long list shows its first 25 entries with a Show more button underneath that reveals the next 25, and says how many of the total are showing; the Total and the entry count always cover every entry the filters match, not only the ones on screen.

Editing an entry. Click the pencil icon on one of your rows to edit it in place. The row turns into the same fields the form above uses — phase, task, date, hours, and description — with the project shown but fixed: an entry never moves to another project, or in or out of General; log a new one instead. A General entry edits through the same row, with no phase dropdown and its own General Tasks in the task one. The phase and task pickers follow the same rules as the form (picking a task fills in its phase, changing the phase clears a task that does not belong), and the phase or task the entry already carries stays offered even when the current lists no longer include it — a task since unassigned, say — so it can be kept or cleared but is never moved silently. The tick saves, the cross (or Escape) cancels, and saving with nothing changed simply closes the row. Hours must stay above zero. Only one row edits at a time, and only your own entries carry the pencil and the trash: a colleague's entry, which only a holder of "Can see everyone's hours" is ever shown, is read-only and says who logged it.

Your hours · This month

01/04/2026 – 30/04/2026 · 4 entries

11h

Total

Structural drawings

Residence Popescu · Foundation details

3.5h

21 Apr

Client presentation

Ionescu HQ · Slide deck prep

1.0h

21 Apr

Permit documentation

Office Tower B · DTAC documentation

4.0h

20 Apr

Concept sketches

Casa Vladescu · Initial massing study

2.5h

14 Apr

10.3 Calendar & Meetings

The Time section opens on a Calendar tab with month, week, and day views. It shows five kinds of events: your meetings (blue), approved leave (amber), public holidays (grey), project or phase deadlines (light blue) for projects you are on, and your own open tasks. Every time on the calendar is written the same way, two digits on each side of the colon: a meeting at five reads 17:00, never a bare 17 that could pass for a count, and the hour axis of the week and day views reads the same.

Your tasks on the calendar. Each open task assigned to you appears as an all-day event on the day it is due, named by its Reference and title — T-1482 · Draw the stair section. It is drawn in a light grey while the day is still to come, and in red once the day has passed; an overdue task stays on the day it was due rather than moving to today, so the calendar shows when it was meant to be done. Click a task to go to it: a project task opens its phase board with the task in view, and a General Task opens the Tasks page on General with the task's editor open. The back button returns you to the calendar, with its project filter still set. The tasks are the ones My Work lists — General Tasks and tasks on a partner firm's joint project you are staffed on included — less the finished ones: a completed task leaves the calendar, and so does every task on a closed project. With the project filter set, only that project's tasks show and General Tasks drop out. Tasks appear only on your own calendar: looking at a colleague's, through the person picker or their team profile, shows none of theirs. The legend names both colours, Task and Overdue task. Your Calendar Feed does not carry tasks (see 19).

Hiding your tasks. If the tasks make the calendar too busy, untick Task in the legend above the calendar; tick it again to bring them back. The choice is saved on your account rather than in the browser, so hiding tasks on your phone hides them at your desk too. Tasks are shown until you hide them. On a colleague's calendar the Task box is greyed out, with the note Tasks show only on your own Calendar, since no one else's tasks are ever shown there.

Users whose role holds Meetings at Editor can add a meeting by clicking a time slot or the Add Meeting button: title, date, start time, duration, participants from the organization's members, physical or online location, an optional linked project, and an optional recurrence (weekly, every two weeks, or monthly, with an end date; occurrences are created up to six months ahead). The project dropdown names each project the way the rest of the app does — code and number leading, the title in grey after them, one line per project; hover a row to read a full title that has been shortened. Pick "No project" for an internal meeting that belongs to none. A project without a code is listed by its title. While picking a time, participants who already have a meeting or approved leave in that slot are flagged with a warning — the meeting can still be created; conflicts never block scheduling.

What a click on the calendar fills in. Clicking a time slot in the week or day view opens the form at that hour, an hour long — the default. Dragging across a range opens it at the length you drew instead, rounded to the nearest duration the picker offers (30, 45, 60, 90, 120, 180 or 240 minutes): a drag from 09:00 to 11:00 opens at two hours, one from 09:00 to 10:15 opens at an hour and a half, and the shortest drag the grid allows opens at half an hour. A range drawn exactly halfway between two of the durations takes the longer one, so the meeting covers the time you drew. A day cell in the month view, and the all-day strip above the week and day grids, name a day and not an hour: those open at 09:00, an hour long, and the time is yours to change.

Invited participants receive an in-app notification and an email with a calendar attachment they can add to Google Calendar or Outlook. All three name the meeting the way its chip on the Calendar is named — the project's code and number leading, then the meeting's own title, GAV 001/2026: Site visit — so the entry that lands in a mail calendar matches the line in the email that carried it, and a meeting filed under no project keeps its bare title. Updates and cancellations send the same. A meeting moved to another project is named by its new one on the next invitation, and a meeting that only moves in time keeps its name between versions, so the entry in your calendar is updated rather than duplicated. When an edit changes who is invited, each person hears what happened to them: a member added by the edit receives an invitation — not an update to one they never got — a member kept on the meeting receives the update, and a member taken off receives a cancellation, so the event clears from their mail calendar too. A participant who muted the Meetings group receives neither channel. Editing one occurrence of a recurring meeting asks whether to change only that meeting or this and future meetings. Once a meeting is cancelled, its invitation clears itself from each participant's bell, greyed, with Resolved: meeting cancelled (Section 14.6). A recurring meeting is one invitation for the whole series, so cancelling one occurrence leaves it standing; it clears once no occurrence still to come is left. Someone added to a single occurrence was invited to that one alone, so theirs clears when that occurrence is cancelled.

Everyone sees their own calendar and meetings they are invited to — Meetings can never be Hidden, because your own calendar is yours whatever your role. Users whose role carries the "Can see all calendars" Extra (managers) can switch the calendar to any member and can edit or cancel any meeting. Meetings also appear automatically in your personal iCal feed subscription (see section 19).

One project's meetings. The project filter above the calendar (it needs Projects at Viewer) narrows it to one project: every meeting filed under that project, whoever is invited to it, beside the project's own deadlines and the public holidays. Leave is a person's, so it is not shown while the filter is on, and neither is the picker for whose calendar to view — the calendar is the project's then, not anyone's. Anyone who can open the project sees all its meetings this way, invited or not, the same answer the project's Cover gives. The filter is kept in the page address (/time?project=…), so a filtered calendar can be linked and shared; choosing All projects goes back to your own calendar. A link to a project you cannot open shows your own calendar instead, with a line saying so.

A project's next meeting comes from the calendar. A project's card on the Projects page shows its Next meeting: the earliest meeting filed under the project that has not started yet and has not been cancelled, with its date and time. It is read from the calendar, never typed — the project form has no next-meeting date to fill in — so every screen gives the same answer the calendar does. A cancelled meeting is never shown as the next one, two meetings on the same day show the earlier, and a repeating meeting shows its next occurrence. Anyone who can open the project sees it, invited or not. The card shows a dash when there is none.

The Cover's Meetings section. A project's Cover tab lists its meetings in a Meetings section: the Next meeting, the three After that, and Past — collapsed, click it to open — with the five most recent. Each line gives the meeting's title, date and time, and where it is (the address, the link, or just Online / On site). A repeating meeting is listed once: at its next occurrence while it has one, and once it is over, at its last. Cancelled meetings stay on the list, under their own date, greyed out and marked Cancelled — so a meeting that was planned and called off never simply disappears. A cancelled meeting is never shown as the next one: one falling before the next meeting is listed just under it in Next (or under No upcoming meeting when nothing upcoming is taking place). A repeating meeting cancelled from a date on reads as one line, Series cancelled from 14 Oct, rather than one line per week; a single occurrence that was skipped while the series goes on has its own line. Cancelled lines never take the place of a meeting: they are listed only between the meetings shown, or all of them when there are fewer meetings than the list holds. Anyone who can open the project sees all of it, invited or not. Click a meeting to open it in the calendar's own meeting window — you can change or cancel it there if the calendar would let you (you organized it, or your role has "Can see all calendars"); otherwise it opens read-only. A cancelled line opens too, always read-only — even for its organizer — with its title, time, place, description and participants, and Cancelled on 12 Oct saying when it was called off; a Series cancelled from line opens the first meeting that was cancelled. Show all opens the Calendar filtered to the project (above), where every meeting on it that is still taking place is — the Calendar does not show cancelled ones. With nothing upcoming, a role with Meetings at Editor finds a Schedule meeting button where the next meeting would be, which opens the meeting form with the project already filled in; once saved, the Cover shows it. On a joint project, a partner firm member staffed on it reads the same list on their Cover, read-only — no line opens — and without Show all, while the owner firm shares meetings (Section 16.11), and the same next meeting on the project's card; with meetings not shared, neither shows.

10.4 Leave Management

The My Leave tab shows your leave balances per type (allocated, carried over, used, pending) and, under My Requests, your own requests — only yours, whatever your role. Time & Leave can never be Hidden for that reason: your own leave is yours. Administrators see the rest of the organization on the Manage tab, never here. Click Request Leave to file one — that button needs the "Can request leave" Extra: leave type, start and end dates, and an optional note. Working days are counted against your work schedule and the organization's public holidays. You can cancel your own pending or approved requests; a cancellation releases the days back to your balance.

The Team tab (needs Team at Viewer) shows who is on leave today and all upcoming approved leave across the organization, with names. The Manage tab (needs Time & Leave at Editor) holds the organization-wide pending approval queue and other members' balances. Answering a request — approving or declining it — is the "Can approve leave" Extra, which a team lead can hold without configuring any leave policy. A new request notifies everyone who can approve leave; as soon as one of them decides it — or the requester cancels it while it is still pending — every approver's copy clears itself on the bell, greyed, with the decision and who made it (Resolved: approved by Ana Pop), so two people never handle the same request (Section 14.6).

10.5 Exporting Hours

The Export button sits beside the period shortcuts on the Hours tab (§10.2), and it downloads exactly what the tab is showing: the same period, members, projects, phases and tasks, as one Excel workbook named hours-<organization>-<start>-<end>.xlsx. The Time page stays where it is. There is no separate export dialog: to export a different period or a narrower set, change the filters first — the file you send a client then matches the screen you checked it on.

With the "Can see everyone's hours" Extra (Section 16.4), the filters gain a Members picker. The tab still opens on your own hours; tick colleagues to add theirs, or choose All members for every member of the organization. Colleagues' entries join the list read-only, each saying who logged it. While the tab covers more than one member, the breakdown (§10.2) gains a By project / By member switch: By member lists each member's hours instead — the Summary's member totals, leaving out anyone who logged nothing in the period — and tapping a member narrows the tab to that member, whose hours then break down by project again. The switch is kept in the page's address too, so a refresh keeps it. Without the Extra there is no picker and the hours are your own; an address that names another member — a link edited by hand, say — shows a notice saying you can see only your own hours, and who in your organization can see everyone's, never an empty list that would read as "they logged nothing". The Extra widens who the hours cover, never which projects: a colleague's hours are included only on the projects you can see — the ones you are on the Project Team of, every project with "Can see all projects", and a joint project you are staffed on — and an entry on a project outside your sight is simply absent, from the list, the total and the workbook alike. Your own hours are always all there, on every project, so leaving a Project Team never loses you your own past hours. Narrowing to a project you have left therefore shows your own hours on it and nobody else's, and the tab says so under the total rather than letting them pass as the team's. General hours are outside that bound: they sit on no project, so there is no project sight to judge them by, and a holder sees every member's General hours — which is also what makes the organization-wide total add up.

The workbook covers the members' hours in the period, narrowed to what you chose, and nothing else. It has two sheets. Summary opens with the organization's name, the period and four lines naming the chosen members, projects, phases and tasks — or "All" for a filter left alone — then a table of hours per project with one column per member covered (every member of the organization when All members was chosen, so a colleague who logged nothing reads as a column of zeros), a total column and a total row. General is one of those rows, sorted first, so the office's overhead is read at the top against everything under it. When exactly one project is chosen, the table is that project's phases instead, in the order of its phase board, with a "No phase" row for entries logged against the project alone; choosing General, alone or beside a project, keeps the table on projects, since General has no phases to break down. Entries lists one row per entry — date, member, project code, project title, phase, task, hours, description — sorted by date, then member, then the order they were logged in, with a total row; the workbook keeps that order whatever the tab shows. Dates are real date cells shown DD/MM/YYYY and hours are numeric cells with two decimals, so the file sorts, filters and sums in Excel or Numbers whatever language they speak; totals are values, not formulas. An entry logged against a project alone has empty phase and task cells; a General entry writes General in the project title cell and leaves the project code and phase cells empty; and a closed project or a joint project since detached is still named by its code and title. An empty period downloads a workbook whose totals read zero — "nothing was logged" is an answer, not an error. The workbook carries hours only, never rates or cost.


11. Resources

Resources are organization-level reference items — standards, regulations, technical references, materials — that are not tied to a single project. They live in one shared library, read by everyone whose role has Resources at Viewer.

11.1 Adding a Resource

Go to Workspaces → Resources. The page has two tabs: Norms & Regulations and Materials. On the first, click Add Norm and fill in type, an optional code (e.g. P118-99), title, description, a File URL (PDF) and an External URL — the document is linked by its address, not uploaded — and tags; custom parameters can be filled in once the resource exists, by editing it. The types offered start as Norm, Regulation and Technical Reference and are fully configurable by admins (Settings → Types → Resource Types). On the Materials tab, Add Material records a material — title, code or reference, external URL, description, tags — and ticks the vendors that supply it; a role whose Vendors are Hidden sees no vendor section there. Adding, editing and deleting resources needs Resources at Editor.

Norms & Regulations8

Add Norm

SR EN 1992-1-1: Concrete Structures

Norm

Law 50/1991 on Building Permits

Regulation

Thermal Insulation — SR EN 13163

Norm

Acoustic Design Guide — Mar 2026

Technical Reference

11.2 Linking to Projects (Norms)

Resources are linked to projects via the project's Norms tab. Each linked norm shows a compliance status dropdown: Pending, Analyzed, Implemented or N/A (inapplicable). A newly linked norm starts at Pending.

11.3 Task Templates on Resources

A resource can carry task templates — a list of tasks to create whenever it is linked to a project. Each template specifies a task name, a description and a target phase category. When a resource with templates is linked to a project, tasks are created in the background (within about 15 minutes) in the project's first phase of the matching category, or its first phase when none matches; a project with no phases gets none. A notification is sent to Project Team members, or to the roles holding Tasks at Editor when the Project Team is empty. On the project's Norms tab, a norm whose resource carries templates shows an auto-tasks badge. The resource form has no field for editing templates.


12. Vendors & Collaborators

12.1 Vendors

Go to Workspaces → Vendors & Brands. The page has two tabs: Vendors (companies you buy from) and Brands (the manufacturers whose products those vendors carry). Each vendor has: name, one or more categories, brands/manufacturers, CUI/CIF, Trade Register number, VAT payer status, contact details, showroom locations, search tags, and custom parameters.

The Catalogue. The Vendors tab is not empty on the day you sign up. Above every organization sits the Catalogue — a shared directory of suppliers that every organization reads and none of them edits. A Catalogue vendor (marked with a small open-book icon beside its name) states what the company is: name, legal name, CUI, Trade Register number, VAT status, website, logo, address and map pin, showrooms, and categories from the platform category tree. Those facts are the same for every firm and cannot be edited here — the edit panel shows them and offers no field for them; there is no correction gesture and no way to hide or delete a Catalogue vendor. What your office thinks of the supplier is yours alone: notes, tags, the brands you link it to, favourites, custom parameters, and its links to your projects. Write any of those and the vendor quietly becomes one of yours — there is no Add step for a Catalogue vendor, and nothing you write about it is visible to any other organization. If a Catalogue fact is wrong, record the right one in your notes.

A vendor you add yourself (Add Vendor) is entirely your own: the same form, the same card, the same map pin, the same filters, and every field editable. Both kinds appear in one list, one grid, one map and one search — the only thing that separates them is the Mine chip.

Vendor cards are deliberately compact: logo, name, category badges, phone, the brands the vendor carries, and website — every card has the same size. A brand name on a card is a link to that brand's page (Section 12.3), which is the same link read from the other end. Fiscal data (CUI, VAT status) and origin countries are kept in the edit form and filters rather than on the card. Tags are entered in the form and work as extra search keywords (the search box matches them), but are not displayed on cards.

Vendors, collaborators, and clients each have two names: the name (the market/brand name, shown everywhere in the app) and an optional Legal Name (the officially registered company name, in the Legal section). The ANAF lookup fills the Legal Name, CUI, Trade Register number, address, and VAT status — it never overwrites the brand name (it only prefills it when the name is still empty). On the client detail page, a Refresh from ANAF button updates the Legal Name the same way; for vendors and collaborators the lookup lives in the add/edit form.

Phone numbers on vendors, collaborators, and clients (including client contact persons and the quick-add New Client panel in the project form) are normalized automatically to a single standard format (+40712345678) when you leave the field or save — pasted numbers like "+(40) 745 239 200", "0745 239 200", or "0040745239200" all become the same canonical form. Numbers that don't look like phone numbers are left as typed. Saving normalizes the field whether you clicked Save, pressed Enter, or never left the field at all, so the rule holds in every browser — if the save then fails, the form reopens showing the normalized number.

Vendor logos are derived automatically from the vendor's website (fetched at high resolution so they stay sharp). For businesses without a website (or when the derived logo is wrong), upload a custom logo while editing the vendor — it takes precedence over the website-derived one, and removing it falls back to the website logo. The same custom-logo option exists for collaborators (edit form) and brands (edit form on the Brands tab or on the brand's own page). PNG or JPEG, max 2MB.

Favorites — dual system:

  • Office Picks (shield icon, gold): marked by admins/managers to signal officially endorsed vendors — negotiated contracts, proven track record. Visible to everyone with a shield badge on the card. Admins/managers click the shield icon directly on the card (next to the bookmark icon) to toggle it.
  • My Favorites (bookmark icon): each user maintains their own private watchlist. Click the bookmark on any card to add/remove. A small number next to the bookmark shows how many people saved that vendor — quick social proof of which suppliers the office actually relies on. Use the "My Favorites" chip filter at the top of the list to see only your bookmarked vendors.
  • Filter chips above the vendor grid: All · Mine · Office Picks · My Favorites · 3D Assets. All is the whole Catalogue plus your own vendors; Mine narrows to the suppliers your office actually works with — the ones you added yourself, and the Catalogue vendors somebody here has written a note, a tag, a favourite, a parameter or a project link on. Every chip combines with the category, brands, origin country, zone and search filters. Use the ANAF Lookup section in the vendor form to auto-fill legal data from the Romanian tax authority (same flow as Clients — see 13.1a).

Brands / Manufacturers: Each vendor can be associated with one or more brands (e.g. Knauf, Saint-Gobain, Baumit) — pick them in the vendor's edit form. Use the Brands filter button in the vendor toolbar to filter the vendor list by one or more brands — showing vendors that carry any of the selected brands. Brands are a directory of their own on the Brands tab of the same page, and each one has a page of its own; see Section 12.3.

3D / material assets flag: Each brand can be marked "Brand provides 3D models or material assets" in its edit form. Vendors linked to at least one such brand display a cube icon (box outline) next to their name on the card. Use the 3D Assets chip filter above the vendor grid to show only those vendors — useful for quickly finding suppliers who provide downloadable 3D models, material maps, or CAD files for design work.

Origin country filter: Use the Origin Country filter button in the toolbar to filter the vendor list by one or more countries of origin. A vendor matches if at least one of its brands has that country among its origins — e.g. selecting "Italy" shows every vendor that carries any brand originating from Italy, even if that brand also originates from other countries. This filter works alongside the Category, Brands, and Zone filters.

Category filter: The category filter in the toolbar opens a collapsible tree — root categories are listed first, and the chevron next to a category expands its subcategories for narrower filtering. Selecting a category matches vendors tagged with it or any of its subcategories (picking "Flooring" also finds vendors tagged only "Parquet").

Address field: As you type in the Address field, address suggestions appear from Google Places — select one to fill in the formatted address and set the vendor's coordinates instantly with rooftop-level accuracy. If you type an address without selecting a suggestion (or it arrives via ANAF auto-fill), it's geocoded automatically in the background instead.

When the address changes: Whether you edit the address yourself or an ANAF lookup brings back a different one, the vendor's old map pin is cleared when you save — you are never shown a pin that is already known to be wrong — and the new address is queued for geocoding. Cancelling the form leaves the pin where it was. The pin reappears at the new location once the background job runs (within about 15 minutes). A lookup that returns the same address leaves the pin exactly where it is. If ANAF has no address on file for that company, the lookup leaves your stored address and its pin untouched — a blank answer from ANAF means "nothing on record", never "delete what you have". The same holds for the Legal Name and Trade Register number: an ANAF lookup fills them in when ANAF has them, and leaves whatever you already entered when it doesn't.

When geocoding can't place the address: Two different things can go wrong, and they are treated differently.

If the map service answers and says it knows no such place, the vendor stays pinless — asking again would get the same answer, so nothing is retried. The vendor's card shows a crossed-out map-pin icon next to its name, and opening the vendor spells it out under the Address field: the address could not be found, check it for typos or missing detail. Fixing the address and saving queues a fresh attempt.

If the map service doesn't answer at all (an outage, a quota limit, a misconfigured key), the address is tried again automatically — after 15 minutes, then an hour, then four hours. An outage that ends inside that window costs you nothing but a delayed pin. If all the attempts run out, the vendor gets the same crossed-out pin icon, and the note under the Address field says the map service could not be reached and that the address itself may be fine. That note carries a Try again link, which queues a new attempt straight away — you do not have to touch a perfectly good address to get another go.

A vendor that is merely waiting on its first lookup shows no warning at all; the icon means an attempt has finished without a pin, not that one is still running. Showrooms get the same note under their own address, without the link — saving the vendor re-queues them anyway. In every case the vendor keeps its address and stays off the map until an attempt succeeds.

Showrooms / other locations: Besides the main address, a vendor can have any number of extra locations (showrooms, warehouses, depots) — add them in the edit form under "Showrooms / Other Locations", each with a label (e.g. "Showroom Baneasa") and its own autocompleted address. Showrooms appear on the map as smaller secondary-colored pins; a toggle above the map shows or hides them. Addresses typed without selecting a suggestion are geocoded in the background. A Catalogue vendor's showrooms are the Catalogue's: they appear on the map like any other, and the edit panel lists them without offering to change them.

Zone / location filter: Use the Near... button in the toolbar to filter vendors by proximity. Type a city or address, choose a radius (10 / 25 / 50 / 100 km), and press Apply — only vendors whose address has been geocoded and falls within that radius are shown. If the place you typed can't be found, the filter says "Location not found"; if the lookup service itself is unreachable, it says "Location lookup unavailable — try again shortly", so a service outage is never mistaken for a bad address. Or click Use my current location to center the filter on your device's GPS position (requires browser location permission). Vendors without geocoded coordinates are hidden when the zone filter is active.

Map view: Use the grid/map toggle in the toolbar to switch between the card grid and a map. The map shows all currently filtered vendors with known coordinates as pins, and automatically zooms to fit them. The grid, the map's pin list, the "N of M have a known location" counter and the global search all read the same filtered set — switching to the map never changes the answer, and a Catalogue vendor is in it exactly when your own would be. A list on the left of the map mirrors the same filtered vendors — click an entry to pan the map to that vendor and open its popup. Click a pin's popup to see the vendor's name and address, and click Edit to open it in the edit panel. Vendors without geocoded coordinates don't appear on the map.

Vendor categories are hierarchical (Category → Subcategory → Sub-subcategory, any depth) and managed by admins under Settings → Types → Vendor Categories. The tree you see is two trees read as one: the platform categories, which come with the product and are shared by every organization, and then your own beneath them. You add, rename, activate/deactivate, delete and drag-and-drop to reorder your own — add root categories and nested subcategories the same way — and none of that is offered on a platform category (§16.7). Drag the grip handle (⠿) on any row to change its position within the same level; root categories and subcategories can each be reordered independently. The order set here is reflected in all vendor category dropdowns and filters across the platform. In the vendor form, categories are picked from a searchable dropdown: the selected categories appear in the closed field, and opening it shows the tree with checkboxes (collapsed by default, branches containing a selected category expand automatically, and the search box filters and expands matching branches). Vendors can be tagged with categories at any level of the tree. If the tree is empty — no platform categories and none of your own — the vendor and brand forms do not send you to Settings: someone who can manage the organization gets a name field and Add in the form itself, and the new category is added to the list and ticked on the record; everyone else sees who can add vendor categories, up to three colleagues by name and then "and N others". Renaming a category takes effect everywhere immediately — vendors keep their assignments, and every dropdown, filter, and badge shows the new name.

Vendors on a project. Link vendors from the project's Vendors & Brands tab, under Vendors. A link names the project and, optionally, one phase. Leave it on Whole project for a general contractor or anyone working across the job — nothing is filed under an arbitrary stage. Or choose Specific phases and tick as many as apply: a vendor working three phases is added in one gesture and appears as three separate links, so its involvement in each stage can be read and removed on its own. The list is grouped by phase, with the project-wide ones first. A phase's own Assignments → Vendors panel adds, lists and removes the links for that phase.

A link carries no status. Considering / Selected / Contracted was removed rather than made optional — it was set once in four months, on the value it was created with — so nothing on the screen asks you to maintain a field your office does not use. A status returns if somebody asks for one. Estimated and contracted amounts live on the link and are edited only from the Budget tab, which is switched off in this version.

If your role's Phases are Hidden, the links are still listed and the phase names are not: the phase-level ones are grouped under On a phase, and new links can only be added for the whole project.

At Vendors at Viewer the lists read and offer nothing to change — no Add and no remove, on either half of the tab, and none in a phase's Assignments → Vendors and Brands panels either (ADR 0017: a control that cannot succeed is withheld, never shown greyed out).

Brands on a project — see 12.3a. Specifying a brand is a separate list on the same tab and a separate record: it carries no money, no status, and no vendor.

12.2 Collaborators

Go to Workspaces → Collaborators. External professionals (structural engineers, MEP consultants, surveyors, landscape architects, etc.) who are not org members: a collaborator has no login and cannot open the platform — the record is your team's reference. Each one has a firm name, a logo, one or more types, specializations (free tags such as "Seismic" or "HVAC"), contact details (phone, email, contact person, address, website), and notes. Collaborators also support CUI/CIF, Trade Register number, VAT payer status, and ANAF Lookup (same flow as Clients — see 13.1a).

Mihai Dumitru & Asociații

Structural Engineer
ConcreteSteelSeismic
+40 721 123 456
office@dumitru-struct.ro
dumitru-struct.ro

Ana Constantin MEP

MEP Consultant
HVACElectricalPlumbing
+40 733 987 654
ana@constantin-mep.ro
constantin-mep.ro

Collaborator types are managed by admins under Settings → Types → Collaborator Types — fully editable, no locked defaults.

Link collaborators to projects in the project's Collaborators tab.

12.3 Brands

Go to Workspaces → Vendors & Brands and pick the Brands tab. A brand is a maker whose products you specify — Equitone, Knauf, Baumit — and it is a full record beside a vendor rather than a label on one: name, the legal name of the company behind the mark, logo, categories, website, address and map pin, phone, email and contact person, showroom locations, search tags, notes, countries of origin, the 3D-assets flag, and custom parameters.

The Catalogue holds brands too. The same shared directory that fills the Vendors tab fills this one. A Catalogue brand (marked with a small open-book icon beside its name) states what the maker is: name, legal name, logo, website, countries of origin, the 3D-assets flag, categories from the platform category tree, address, map pin and showrooms. Those facts are the same for every firm and cannot be edited here — the edit panel shows them and offers no field for them, and there is no correction gesture and no way to hide or delete a Catalogue brand. What your office thinks of the maker is yours alone: notes, tags, favourites, custom parameters, the vendors you link it to, and the projects you specify it on. Write any of those and the brand quietly becomes one of yours — there is no Add step for a Catalogue brand, and nothing you write about it is visible to any other organization. If a Catalogue fact is wrong, record the right one in your notes.

A brand has a page of its own. Click a brand card to open it. The page shows everything above, its showrooms with their own map verdicts, its custom parameter values, and — the reason it exists — the vendors carrying that brand, so choosing Equitone leads you to who sells it. Edit and My Favorites sit at the top of the page; Delete sits beside them for a brand your office typed, and is withheld on a Catalogue one. A vendor's own edit form is where its brands are chosen, so the link reads from both ends.

Brands and vendors share one category tree. There is no separate list of brand categories: both are tagged from Settings → Types → Vendor Categories, so filtering "Facade panels" on either tab is the same question asked of the maker and of the seller. The Brands tab carries the same toolbar the Vendors tab does — search, the collapsible category tree, Origin Country, Near... with a radius, custom-parameter filters, and a grid/map toggle with a Showrooms switch — and the same chip row: All · Mine · Office Picks · My Favorites · 3D Assets. All is the whole Catalogue plus your own brands; Mine narrows to the makers your office actually works with — the ones you added yourself, and the Catalogue brands somebody here has written a note, a tag, a favourite, a parameter, a vendor link or a project specification on. Origin Country and 3D Assets read a Catalogue brand's own countries and flag, so a maker found in the Catalogue filters exactly as one you typed.

The vendor–brand link reads across both layers. The Catalogue records which of its vendors carry which of its brands, and those pairs are shown on both cards and on both pages like any other. They are not yours to unlink: in a vendor's edit form a Catalogue pair is ticked, marked with the open-book icon and not editable, while the brands you add to that vendor are ticked beside it and are yours to change. Linking a Catalogue brand to one of your vendors is a private write, so it is also the moment that brand becomes one of yours. A vendor's 3D assets badge and the 3D Assets chip read the same annotation, so a vendor carrying a Catalogue brand with 3D assets is badged and selected alike.

Who can read and write brands. Brands are part of the Vendors & Brands area (Section 16.4.1). Vendors at Viewer reads the tab, the brand pages, and brand results in search; Vendors at Editor adds, edits and deletes brands and uploads their logos. Marking a brand an Office Pick is Organization at Editor, the same as for a vendor. A role with Vendors Hidden reaches no brand anywhere — no tab, no page, no search result, no answer from the assistant — and that includes every Catalogue brand.

12.3a Specifying brands on a project or a phase

Specification is the record that a project — or one phase of it — uses a brand. It is a design decision, and it is deliberately independent of Sourcing, the record of who the project buys from: you can write down that the facade phase uses Equitone months before anybody knows which distributor will supply it, and specifying a brand never requires naming a vendor anywhere on the project. The reverse holds too — a vendor is sourced without naming a brand.

Specify brands from the project's Vendors & Brands tab, under Brands. Like a vendor link, a specification names the project and, optionally, one phase. Leave it on Whole project for a material chosen for the building rather than for a stage; or choose Specific phases and tick as many as apply — a brand used in three phases is added in one gesture and appears as three separate rows, each readable and removable on its own. The list is grouped by phase with the project-wide rows first, beside the vendor links. A phase's own Assignments → Brands panel adds, lists and removes the specifications for that phase.

The product name is refined in place. Each row carries an optional free-text product name — "Natura N251, 8mm" beside the brand Equitone. Write the brand alone when that is all that is decided, and fill the product name in on that same row later: the edit control on the row (and the Add a product name… link when it is empty) sharpens the decision you already recorded rather than leaving a second row beside the first. Emptying the field clears it. There are notes on the row too, edited the same way.

A specification carries no money and no status. Estimated and contracted amounts belong to the commercial link, not the design one, and there is no Considering / Selected / Contracted ladder here for the same reason there is none on a vendor link.

Who can read and write specifications. Both lists on the tab are read by Vendors at Viewer and written by Vendors at Editor — one switch for vendors and brands alike (Section 16.4.1). If your role's Phases are Hidden the rows are still listed with their phase names withheld, grouped under On a phase, and new specifications can only be added for the whole project.

A Catalogue brand is specified like any other. Specifying one on a project is a private write, so the brand becomes one of yours at that moment and the specification is yours alone — no other organization sees it.

Brands are no longer a settings list. They used to be managed under Settings → Types alongside document types and collaborator types. They are not a vocabulary, so they left that page: everything about a brand is now done on the Brands tab and on the brand's own page. Existing brands kept their names, logos, countries of origin and 3D-assets flags.

12.4 Custom Parameters on Vendors, Brands & Collaborators

Your org can define custom parameter fields for vendors, brands and collaborators (Settings → Parameters → Vendor / Brand / Collaborator). These appear on cards and forms, and support filtering in the list.


13. Clients

13.1 Client Directory

Go to Workspaces → Clients to manage your client directory. Each client has: name, type (company / individual), CUI/CIF (fiscal code for companies), Trade Register number, VAT payer status, address, website, and a list of contacts.

Adding, editing, and deleting clients needs Clients at Editor (Section 15.2); at Viewer the directory reads without those buttons. A delete that cannot complete keeps the card in the grid and says why at the bottom of the screen — a client never silently disappears from the list while still existing on the server.

13.1a ANAF Lookup

When adding or editing a company-type client, use the ANAF Lookup section at the top of the form to auto-fill legal data from the Romanian tax authority. Enter the CUI in the lookup field and press Tab — the firm name, address, Trade Register number, and VAT payer status are filled automatically. After auto-fill, all fields remain editable. On the client detail page, a "Refresh from ANAF" button re-fetches current data using the stored CUI.

If ANAF has nothing on file for a field, the lookup leaves whatever you already entered — a blank answer from ANAF means "nothing on record", never "delete what you have". This holds for the Legal Name, address, Trade Register number, and VAT status alike, both in the form and on the Refresh from ANAF button. The brand name is never overwritten at all; it is only prefilled while still empty.

13.2 Contacts

A client's contact details live in one place: its Contacts list. In the client form, add each contact with name, role, phone, and email, and tick Primary contact on one of them — ticking it on another moves it there, so a client has one primary contact. Editing a client opens the form on its saved contacts; removing a row from the list and saving removes that contact.

The primary contact is the one the app names for the client: its email and phone are shown on the client's card in the directory, on the project's Cover, and in document fields (client email and client phone). If no contact is marked primary, the oldest contact is used. On the client's page, the Contact Information card lists every contact with the primary one first and marked Primary, followed by the address and website.

There is no separate Email or Phone field on the client form any more. The quick-add New Client panel (project form and Cover) still asks for an email and phone; they become the new client's primary contact, named after the client. Clients created before this change had their old email, phone, and contact person moved into the list as the primary contact — skipped where an identical contact was already listed, and added as an ordinary contact where another contact was already primary.

13.3 Client Status

A client's status is derived from their projects — nobody sets it, and there is no status field on the client form. A client with no projects reads Potential (a prospect); a client with at least one open project reads Active; a client whose every project is closed reads Former. Creating, closing, reopening, or deleting projects updates the badge on its own. Deleted projects do not count.

PotentialActiveFormer

The status shows as a color-coded badge — green for Active, yellow for Potential, neutral for Former — and the client list filters on exactly these three values, using the status dropdown next to the search bar. The client detail page lists the client's projects with their lifecycle badges, so why a client reads Former is visible at a glance.

The list of projects is yours; the status and the count are the client's. For a role without Can see all projects (§4.2), the Projects card on a client's page lists that client's projects you are on the Project Team of, and the card is absent when none of them are. The badge above it and the count on the client's card do not narrow with it: they are derived from every project the client has, so a client reads Active or Former to everyone who can read clients, and two colleagues never see the directory disagree with itself. A role whose Projects are Hidden reads the status and the count and no project list at all.

13.4 Project Count

Each client card shows a badge with the number of projects linked to that client, giving a quick sense of the relationship depth.

13.5 Linking Clients to Projects

When creating or editing a project, select the client from the dropdown, or press the New button beside it to add a client without leaving the form (the email and phone you give there become the client's primary contact) — the New button appears only for a role with Clients at Editor, since it creates a client; picking from the list needs only Clients at Viewer. In that quick-add panel, pressing Enter saves the new client and selects it — it never submits the project itself, so a half-typed client is never lost to an accidental project save. Closing the panel — with Cancel or the New button — discards what you typed, so reopening it always starts empty rather than pre-filled with an abandoned entry. The same panel on the project's Cover tab behaves identically. Cancel is unavailable while a client is being saved, because the save can no longer be called back at that point. The client's name appears on the project card and on the Client Portal's cover.


14. Notifications

14.1 Notification Center

Click the Notifications entry (the Bell icon) in the sidebar, or in the bottom navigation on a phone. A red badge shows the unread count — it refreshes about once a minute while the tab is open, and immediately when you read or clear notifications.

14.2 Notification Types

Task assigned to you, leave requested, leave approved, leave declined, norm tasks generated, client portal comment received, client responded to an approval request, meeting invitations, updates, and cancellations, and — on joint projects — new comments, phase status changes, severance notices (a detach or partnership end starting the notice period, and the severance itself landing), and partnership notice-period proposals and answers. Four more are raised by time passing rather than by anyone's action: a permit whose response is overdue, an obtained permit 30 days from expiring (see Section 5.2), and the two task reminders — a task of yours due tomorrow, and one whose due date has passed (see Section 14.8).

Each notification shows the avatar of the person who triggered it where applicable.

Notifications3

Mark all read

Task assigned to you

"Obtain building permit" in "Casa Verde"

2 min ago

Meeting invitation

Maria: Site walkthrough (14 Mar 2026, 10:00 - 11:00)

5 min ago

New comment from Ion Popescu

On phase: Detailed Design

3 hours ago

Tasks generated from norm

4 task(s) created from "P100-1/2013 seismic design"

1 day ago

Leave request approved

Your leave from 2 April 2026 to 6 April 2026 has been approved.

2 days ago

A date inside a notification's text always carries its year — Your leave from 28 August 2026 to 4 September 2026 has been approved — rather than being shortened the way a date on a screen is (§16.12). A notification is stored exactly as it was written, so a shortened 28 Aug read months later would have no year left to recover. Meeting invitations differ only in shape: their time label is the one written in Romania's timezone beside the calendar file's exact time (14 Mar 2026, 10:00 - 11:00), and it carries its year too.

14.3 Task Assignments

You are told when a colleague hands you a task — on the bell only, no email, since the task also appears on your My Work page. You are told when the assignee changes to you: re-saving you onto a task you already hold sends nothing, and assigning a task to yourself is silent. Assigning several tasks at once produces one notification, not one per task (9 tasks assigned in "Casa Verde"), and a single assignment names the task — and opens the project's phase board on it, with the containing phase already open and the row lit. A batch opens the board without singling a row out, because its wording names no one task; on a joint project a batch opens the project instead, where a partner firm's overview of what is shared with them is. Nobody is notified when a task is taken away from them. Assignment notifications belong to the Tasks & deadlines group, so muting that group silences them along with norm-generated tasks.

On a joint project the assignment crosses the firm boundary: a task assigned to a partner firm's staffed member bells them under their own organization, with the project badged with the owner firm's name (in "Casa Verde" (Atelier Nord)) and a link to the joint project, arriving on the task's phase; a partner contributor assigning to someone at the owner firm bells them the ordinary way. Assignments between colleagues of one firm are unchanged.

14.4 Contextual Scoping

Notifications for project-specific events — norm tasks generated, client portal comments, a client's answer to an approval request — are sent only to the project's Project Team (Section 4.2) — members carried by an assigned team and individually added members alike — not the entire organization. Norm tasks additionally fall back to every role holding Tasks at Editor when the Project Team is empty — tasks were generated, so the people told are the ones who can act on tasks; the client portal notifications do not, so put someone on the Project Team of any project whose portal is open. The two client portal notifications are narrowed further: they reach only the project members whose role includes the Client Portal area, since both link to the portal management page and a notice about a section you are refused is a trace of it rather than a message. If nobody on the project's teams holds it, they go to everyone in the organization who does, Admins included, rather than to nobody at all. A client's comment never lands nowhere. On a joint project whose partner firm may run the portal, both also reach the partner's staff on the project whose own role can view the Client Portal (§17.13). Permit notifications go to the permit's responsible person when one is set; otherwise to the project members whose role can see Permits, falling back to every role holding Permits at Editor when no member can (Section 5.2).

Wherever a notification is addressed to the roles holding an area, Admins always count among them — an Admin receives it even in an organization created before that area existed, matching the rule that Admin holds everything automatically.

Joint projects notify both firms (see Section 16.11): a new comment or a phase status change on a joint project reaches the owner firm's project members and the partner firm's staffed members, whichever firm acted. Each person is notified under their own organization — a partner user reads the project badged with the owner firm's name — and never about anything the sharing terms do not show them. Severance rings the bell too: a detach or a partnership end starting a notice period tells the affected firm's admins, the severance landing tells both firms, and a notice-period proposal or its answer tells the other firm's admins. All of these belong to the Projects & documents group; muting it silences them like any other member of the group.

14.5 Navigation

Click a notification to navigate to the related item. An assignment notification opens the project's phases page — for either firm, arriving on the task itself when the assignment named one. Joint comment and phase status notifications open the project page for both firms. Permit notifications open the project's Permits tab. A task reminder opens the task itself: the project's phase board arrived on the task, or, for a General Task, the Tasks page with the task open.

14.6 Marking as Read

Click a notification to mark it read. Use "Mark all as read" to clear all.

Some notifications mark themselves read once what they were about has been dealt with — today, the two permit notifications (Section 5.2), a leave request once someone has decided it (Section 10.4), a meeting invitation once the meeting is cancelled (Section 10.3) and a task reminder once it is no longer true (Section 14.8). A resolved notification stays in the list, greyed, with a line saying why — Resolved: permit marked Not applicable — and stops counting toward the unread badge. Notifications from before this was introduced never resolve on their own; they age out like any other.

Several notifications about the same subject — a permit's overdue and expiring notices, say, or a task's two reminders — fold into one row showing the newest title and how many there are (2 notifications · 1 unread). Click the row to open it and see each notification underneath; opening it marks nothing read, so each one is read the way a single notification is. Notifications about no particular subject — a task assigned to you, a comment — never fold, however alike they look. The unread badge counts the notifications, not the rows.

14.7 Notification Preferences

Under Settings → Profile → Notifications, switch off the notification groups you don't want: Tasks & deadlines, Leave requests, Projects & documents, Meetings, Permits, Task reminders. Muted notifications are not delivered at all — not on the bell and not by email, including meeting invitations and their calendar attachments — and they are never created for you rather than merely hidden. Everything is on by default.

14.8 Task Reminders

The assignee of an open task is reminded of its due date on the bell, twice at most: due tomorrow on the morning of the day before, and overdue on the first morning after the due day has passed. Each is sent once per task. Both are raised by the daily check that also raises the permit notices, early in the morning, and the due day is the date chosen on the task — a task due 28 August is "due tomorrow" on 27 August wherever you are reading from.

A reminder names the task by its Reference and title and where it is (T-1482 · "Depunere DTAC" in "Casa Verde" — due 28 August 2026), and opens the task (Section 14.5). Both reminders about one task fold into one row (Section 14.6). They go on the bell only, never by email.

Reminders cover tasks that are open — blocked ones included — assigned, dated and on a project that is not closed; General Tasks are reminded about like any other. A completed or unassigned task, one with no due date, and a task on a closed project raise nothing. A task whose date is already past when it is saved, or when reminders first reach it, gets one overdue reminder the next morning; a reminder a missed morning did not send arrives the morning after. A task that becomes due tomorrow later in the day than the morning check gets no "due tomorrow" reminder.

A reminder never goes on saying something that is no longer true. It marks itself read, with the reason (Section 14.6), when its task is completed or deleted — deleting its phase deletes it too — when the task is unassigned or handed to someone else — including when its assignee is taken off the Project Team or removed from the Organization — when its due date is moved or removed, and when its project is closed or deleted: Resolved: task reassigned, Resolved: due date moved to 4 September 2026. Moving the due date or changing the assignee also starts the reminders afresh, so the next morning's check reminds about the new date, or reminds the new assignee — a task handed over while overdue reaches its new owner as overdue the next morning. Other edits — the title, the priority, marking it blocked — change nothing. Reopening a completed task starts its reminders afresh too, since completing it resolved them; reopening a closed project sends no reminder already sent again.

On a joint project, a partner-firm member assigned a task is reminded exactly like anyone else. The reminder arrives under their own firm, names the project with the owner firm's name beside it (in "Casa Verde" (Studio Ionescu)), and opens the same task on the same phase board. Muting Task reminders in their own profile stops these reminders too.

Reminders belong to their own group, Task reminders: muting it in Settings → Profile (Section 14.7) stops both, while "Task assigned" — in Tasks & deadlines — still arrives. A muted reminder is never created, so unmuting later does not bring old ones back.


15. Team & Roles

The Team page is where you manage everyone who has access to your organization — its members, their roles, pending invitations, and teams.

15.1 Inviting Members

Go to Team and click Invite Member. Enter the person's email and choose their role. Pending invitations appear under Pending Invitations on the Team page and can be cancelled or resent at any time before acceptance — resending extends the expiry and keeps the original email link valid.

The invitee receives an email with a link to create their account or accept the invitation. If they are not logged in when they open it, they are prompted to log in (or create an account) with the invited email and are brought back to accept automatically. That prompt is sized for a phone — an invitation is opened from an inbox, usually by somebody who has no account yet, and the device it is opened on is a phone — so both its buttons are big enough for a thumb. Logged-in users also see a banner at the top of the app listing any pending invitations addressed to their email, with an Accept button — no email link needed. An invitation into an organization that is scheduled for deletion can no longer be accepted, and is left out of that banner (Section 16.14).

15.2 Roles and Access

Four default roles: Viewer → Architect → Project Manager → Admin. Roles are managed under Settings → Roles (Organization at Editor). Viewer, Architect, and Project Manager are fully customizable there — rename them, set each Feature Area, switch Extras on — and new roles can be created from scratch with New Role. Access is granted per Feature Area on the Access Level scale — Hidden, Viewer, Editor — with Extras beside it for the authorities that do not follow from the scale (Section 16.4). The Admin role is not customizable: it always holds everything the product has — including areas and Extras added after your organization was created — so there is nothing to edit, and it cannot be modified or renamed. The roles page shows Admin at the full count, every Feature Area at its top level and locked. Every other role holds exactly what has been granted to it, nothing more.

RoleWhat they can doRestrictions
ViewerViewer on every area; can request leaveEditor nowhere
ArchitectEditor inside a project; vendors, documentsNo Extras; Team and Organization read-only
Project ManagerThe Architect's areas, plus Team at Editor and every projectOrganization Hidden bar inviting members
AdminEditor on every area, and every Extra—

An Access Level governs both reading and editing, and the same vocabulary describes every area of the app. Projects at Viewer is what opens Home, the project list, and a project's page; Team, Collaborators, Vendors & Brands, and Documents at Viewer open their sidebar pages and the matching tab on a project — one area each, whichever way you reach it. Inside a project, the tabs are graded independently of one another: Phases for the board, the timeline, and phase images and Tasks for the tasks on it and My Work (Section 3.3.1, which is also where the everyday combination lives — Phases at Viewer with Tasks at Editor, editing tasks on a board you may read but not restructure), Brief for the Project Brief (Section 8.5), Norms (Section 5.1), Permits (Section 5.3), Parameters for a project's values (Section 9.8), and Client Portal (Section 17.0). Cover — a project's title, code, number, deadline, and next meeting (read from the calendar, Section 10.3) — is the identity a project page always shows, so it offers Viewer and Editor and never Hidden; a role at Cover Editor renames a project and sets its deadline and does not thereby rearrange its phases or decide who works on it. At Cover Viewer the page has no Edit button at all — the identity reads as text, and a control the role's save would be refused on is not offered in the first place. Creating and deleting a project are two of the three Extras on the Projects row: "Can create projects" and "Can delete projects"; the third, "Can see all projects", is about which projects the row shows (Section 16.4.2).

Across the workspace lists it reads the same way. Clients, Collaborators, Resources, Documents, Vendors & Brands, and Team at Viewer open their pages; the same area at Editor adds, edits, and deletes on them — including creating, editing, filling, and deleting documents, and assigning or unassigning a team on a project. Viewer means the page without its writing controls: on the client directory the New, Edit, and Delete buttons simply are not there for a role at Viewer, rather than present and refusing. Managing members and invitations is Organization at Editor, with one exception carved out as an Extra: "Can invite members" grows the team without touching settings, and it works with Organization left Hidden.

Custom parameters follow whatever they are attached to, in that thing's own area. Parameters on a task follow Tasks, on a document Documents, and on a vendor, brand, collaborator, client, or resource that area — so a member whose Vendors are Hidden cannot read a vendor's or a brand's parameters either. A project's parameters are their own area, Parameters (Section 9.8), and the Project Brief is its own area, Brief, one area over (Section 8.5). The catalogues themselves — Settings → Parameters, Settings → Phases, Settings → Brief Templates, and the field mapping of a PDF template — stay with Organization at Editor: an area governs a project's values, not your organization's vocabulary.

The Time page follows the same rule. Projects at Viewer is what gives it an Hours tab, since hours are always logged against a project. Within it, Team at Viewer gates the team leave overview, the "Can request leave" Extra gates filing a request, "Can approve leave" gates approving and declining, "Can see everyone's hours" widens the hours export to the organization's members (bounded by your own project visibility — Section 10.5), and Time & Leave at Editor gates the Manage tab — the pending queue, other members' balances, and balance adjustments — and the leave types, policies, and holiday calendars on the Settings → Time and leave tab. Your own work schedule needs nothing — everyone reads theirs; the organization default work schedule, another person's schedule, and anyone's hourly rate need Organization at Editor. (There used to be a separate Schedules row in the role editor; it is gone, and a custom role that edited the default schedule through it without Organization at Editor no longer can.) Time & Leave and Meetings can never be Hidden — your own calendar, your own leave, and your own time log always load, whatever your role.

Finding a project in search. The command palette matches projects on their title, their code, and their number — typing GAV or 001/2026 finds the project just as typing its title does. Each project result reads the way its card does: the code in bold monospace, the number beside it, the title in grey.

Finding a task in search. The palette matches tasks on their title and on their Reference — see Section 3.3 for the forms a Reference can be typed in and where clicking a task result lands you. Every shape a task can take is found: a task filed in a phase, a task on a project and in no phase, and a general task, which belongs to no project and reads General under its title where the others read their project (Section 6.7). A general task has no phase board, so clicking it opens the Tasks page narrowed to General with the task's row lit.

Typing it the way you say it. The command palette ignores diacritics, in what you type and in what it finds: santier finds Șantier, and locuinta finds locuință, whichever way the ș or ț was typed into the name. Once you have typed four letters it also forgives a typo in a name — Popsecu finds Popescu. A name that only comes close is listed after every name that actually contains what you typed, so it never pushes a real match off the five rows a section shows. Codes and project numbers are never guessed at: GAB does not find GAV, because a code one character off is a different project. (This is the palette's search. The filter boxes on the Projects and Documents pages, and the assistant, still match diacritics exactly.)

Global search obeys the Access Levels section by section: projects and tasks need Projects and Tasks, documents Documents, vendors and brands Vendors & Brands (one switch answers for both), collaborators Collaborators, and resources Resources. A role with one of those Hidden gets no results from that section rather than a hidden peek at it — a search is a reading of an area, one answer at a time.

It obeys Project Visibility too (Section 4.2): the projects section returns your projects, and the tasks section the tasks inside them. Without Can see all projects, typing a colleague's project abbreviation finds nothing, and neither does a Reference naming a task on a project you are not on. A general task is on no project, so there is nothing for Project Visibility to be about: everyone whose Tasks are at Viewer or above finds all of them. The other sections are areas of their own and are unchanged — a document, a vendor, a brand, a collaborator, and a resource belong to the organization rather than to a project.

The calendar shows your own meetings, leave, holidays, and deadlines to any member. Opening someone else's calendar needs the "Can see all calendars" or "Can see team workload" Extra. Creating a meeting is Meetings at Editor; editing or cancelling one needs either "Can see all calendars", or to be its organizer while holding Meetings at Editor. The client portal's comments and approval-request sections read at Client Portal at Viewer and are managed at Editor (Section 17.0), and the Gantt timeline reads with Phases at Viewer.

Logos follow whatever they are attached to: Vendors at Editor for a vendor's or a brand's logo, Collaborators at Editor for a collaborator's, and Organization at Editor for the organization's own. Your profile photo is always yours to change. Reading the brands directory needs Vendors at Viewer and nothing else — brands left Settings → Types, so the two-key reading they used to need went with it (Section 12.3).

A refused page says so. When a role does not include an area, the page renders an access notice — "You don't have access to this", with a line saying your role does not include that section — and not an empty list and not an error with a Try again button. A refusal is not something a retry fixes, and "hidden" and "empty" must never look alike: an empty page always means there is genuinely nothing there. A record that belongs to another organization is the separate case, and reads as nonexistent rather than as refused.

A refused action says which action. A control you are allowed to see but not to use reports in one sentence naming what you tried and why it was refused: Could not update the role — you do not have permission to perform this action. The gesture comes first because a row often carries three of them — a member's role, their leave policy, and Remove all sit inches apart — and a message saying only that permission was missing leaves you guessing which button spoke. The reason is repeated exactly as the server gave it, so a refusal ("you do not have permission") and a failure ("something went wrong, please try again") stay distinguishable: one means stop, the other means try again. Document deletes and status changes, document content saves, role, leave policy and member removal, resending and revoking an invitation, a quick-added task, uploading or removing a vendor's, collaborator's or brand's logo, and a refused parameter save on any form or on a project's Parameters tab (§9.10) all speak this way, matching how a refused task edit already reported (§3.3, When an Edit Does Not Save).

15.3 Hourly Rates

Admins can set an hourly rate (RON/hr) per team member in the Organization Members list: click the rate on a member's row to edit it inline. Rates are stored with effective dates — history is preserved when you update a rate. Pay data is administrative: the rate column is shown only to roles with Organization at Editor, and other members never receive it.

15.4 Teams

Create named teams (e.g. "Structural", "Design"). Members can belong to multiple teams. Teams are assigned to projects via the project's Team tab — assigning one is Team at Editor, while Team at Viewer reads who is on a project and is offered nothing to change.

Removing a person from a team is a Keep Choice (§4.1), because team membership is what carries them onto every project the team is assigned to. The dialog lists those projects: each row is a checkbox, checked keeps the person on that project as an individually added member, rows where they hold open tasks arrive pre-checked naming the count, and unchecking such a row states that those open tasks become unassigned. A project where another assigned team or an individual row already retains them says they stay.

Deleting a team runs the same contract across every person-and-project pairing the team touches, grouped by project — the biggest removal gesture follows the same rules as the smallest, so deleting a team never silently strips anyone from a project or orphans their work.

15.5 Removing Members

The Organization Members list on the Team page shows every active member with their name, email, role badge, and leave policy. For roles with Organization at Editor, each row other than your own has a three-dot menu to change the member's role, set their leave policy, or remove them.

Organization Members4

Invite
A

Andrei Ionescu

andrei@studio.ro

Admin
M

Maria Constantin

maria@studio.ro

Project Manager
R

Radu Popa

radu@studio.ro

Architect
E

Elena Dinu

elena@studio.ro

Viewer

To remove a member, click the three-dot menu on their row and select Remove from team. This is the one removal with no keep to offer — the person is leaving the organization, so the dialog names their open tasks per project and states that confirming unassigns them. They leave every team and every Project Team; completed tasks keep them as assignee, so history stays intact. Access is revoked immediately on confirm.

15.6 Transfer Ownership

If you are the only admin and want to leave the organization, first transfer the admin role to another member — Leave Organization is refused until you do. Go to Settings → Ownership & deletion and click Transfer beside Transfer Ownership. Select the new admin from the dropdown and confirm.

Wherever these safeguards count admins — the only-admin check on leaving, the last-admin check when changing a member's role or removing them, and the role granted by Transfer Ownership — an admin is a member whose role holds Organization at Editor, and the Admin role always counts, even in an organization created before an area existed, matching the rule that Admin holds everything automatically. An admin whose own account is scheduled for deletion (16.15) does not count: they are about to go, so two admins cannot each leave, step down or delete their account counting on the other.

15.7 Manager View

Members whose role carries the "Can see team workload" Extra on the Team area (Admin and Project Manager by default) can open any colleague's profile from the Team page by clicking their name. The profile centralizes that person's activity:

  • Stat cards: open tasks, overdue, blocked, due this week, active projects, and meeting hours in the current week. Overdue and blocked counts are highlighted so overload is visible at a glance.
  • Tasks tab: all tasks assigned to the member, filterable by status.
  • Projects tab: every active project the member is on the Project Team of (Section 4.2) — added individually or carried by one of its assigned teams — with their open task count and the nearest phase deadline. Being on the team is what counts, not holding a task there: a member with no tasks yet on a project is still involved in it.
  • Calendar tab: the member's meetings, approved leave, public holidays, and project deadlines in one calendar.

The Team page itself shows compact workload badges (open, overdue, blocked, on leave) next to each member for holders of that Extra. Users can always open their own profile. The Extra is offered from Team at Viewer up, and can be switched on for any role under Settings → Roles.


16. Settings

Every member opens Settings from the Settings entry at the foot of the sidebar. The page is one strip of tabs in two labelled groups. First comes your organization's name, followed by its tabs — General, Time and leave, Roles, Phases, Types, Parameters, Brief Templates, Partnerships, Assistant, and Ownership & deletion. A divider follows, then Your account with Profile: the first group changes the firm for everyone, the second changes only you. A long organization name is cut short with an ellipsis; hover over it (or move to it with the keyboard) to read it in full. The strip shows only the tabs your role lets you use: a tab you could not use is not offered at all. Ownership & deletion and Profile are always there, so a member with no settings of the organization's to manage sees just those two. In a personal space the groups stay, holding the tabs that apply there. Settings opens on the first tab you have — General for an administrator, Time and leave for someone who manages leave without managing the organization, Profile for everyone else; it never opens on Ownership & deletion. Profile is also still in the menu under your avatar in the header, which is how you reach Settings on a phone: the bottom bar has no Settings entry, and the tab strip scrolls sideways when it is wider than the screen.

If you open a settings page your role does not include — from a link a colleague sent, or by typing its address — Settings no longer drops you silently on Profile. The page says it is not part of your role, why it is kept to a few roles, and names the colleagues who can change it: up to three by name, then "and N others" (for example "Ana Pop, Ion Stan, Maria Dinu and 2 others can change these settings"). For General, Roles, Phases, Types, Parameters, Brief Templates, Partnerships, and Assistant those are the people with Organization at Editor; for Time and leave, anyone with Organization at Editor or Time & Leave at Editor. You are never named yourself. Every screen in the app that has to send you to someone else names them by this same rule.

16.1 Profile

Update your display name and profile picture; the change takes effect immediately. To change your email address, click Change next to the email field, enter the new address and your current password — a confirmation link is sent to the new address, and the email only changes once you click it (the old address gets a notice). Sign in with the new address afterwards. To change your password, click Change Password under Security, enter your current password and the new one twice; a new password needs at least 8 characters. The Security part is shown only to an account that signs in with a password. The Profile page also hosts your notification preferences (see 14.7), the iCal calendar feed, and a Quick Actions toggle (off by default) — enabling it adds an Add task button to the header on every page, immediately and without a reload, for creating a task in any project without leaving where you are (see "Add Task from the Header" under Project Phases). The preference is saved on your account: it follows you across devices and across your organizations. The Download my data or delete account link at the foot of the page leads to Your account, where you can download what the app holds about you (16.17) or delete your account (16.15).

16.2 General

A role with Organization at Editor updates the org name and logo under Settings → General (the tab the sidebar's old Organization link opened). General holds the name and logo and nothing else: leaving, transferring ownership and deleting the organization are on their own tab (16.10). The logo appears beside the organization's name in the sidebar and in the header of the Client Portal. General, Roles, Phases, Types, Parameters, Brief Templates, Partnerships, and Assistant all need that level, and a role without it is not shown those tabs; there is no reading of your organization's settings short of managing them, which is why the Organization row is Hidden or Editor and never Viewer. Time and leave is the one tab with a gate of its own (16.9).

16.3 Phase Catalog & Templates

Go to Settings → Phases to manage the phase catalog (reusable phase definitions) and phase templates (named sequences of catalog phases). New organizations start with six standard phases and a "Standard Architectural Workflow" template — these are ordinary entries like any you create yourself: rename them, edit their abbreviation, description, category, or estimated weeks, and delete any you don't need. The whole catalog is fully editable. Drag catalog phases (by the grip handle, with pointer, touch, or keyboard) into your firm's preferred order — the order persists and a newly added phase appends at the end. Catalog order is presentational only: rearranging it changes no template's phase sequence and no project. Editing or deleting a catalog phase or template never affects existing projects — phases are copied as a snapshot when applied. Before a catalog phase is deleted, the confirmation dialog states how many phase templates currently reference it (deleting removes it from those templates) and reminds you that existing projects are unaffected.

A phase template is a named sequence of catalog phases, applied to a project to give it its phases. Click New Template to create one — a name and an optional description — and keep as many as your practice needs (for example "Standard Residential" or "Interior Only"). Add Phase on a template searches the catalog and adds the phase you pick; Create new phase at the foot of that list adds a new catalog phase and puts it in the template in one step. Drag a template's phases by the grip handle to reorder them, and remove one from the template with its remove button — the catalog phase itself stays. A template's phases show the category and estimated weeks of their catalog phase, because they are that phase: editing a catalog phase, its name included, changes every template that uses it, and still never a project.

Standard Residential

5 phases

1

Concept

Pre-Design

2–3 weeks
2

Design

Design

6–10 weeks
3

Permitting

Approval

4–8 weeks
4

Construction

Execution

12–24 weeks
5

Handover

Closeout

1–2 weeks

Once at least two closed projects have used a catalog phase, its row shows how long it actually took on average and across how many projects — for example "Took 6.3 weeks on average across 3 closed projects". Only phases that came from that catalog phase through a template count, and only those with both an actual start and an actual end; open projects are left out, and a phase used by just one closed project shows nothing, so one odd project never sets the estimate. Click Use this to set the catalog phase's estimated weeks to that average, rounded to half a week (the rounded figure appears beside the button when it differs). Only the catalog changes: projects that already have the phase keep their own estimate, and the next template you apply uses the new one. The line disappears once the estimate matches. Estimated weeks accept half weeks (for example 6.5), both in the catalog and on a project's phases.

16.4 Roles

Go to Settings → Roles to customize role names and access. Click New Role to build a role from scratch, rename any role except Admin, and delete a role you created once no member holds it. The four roles every organization starts with — Admin, Project Manager, Architect, and Viewer — cannot be deleted, and no two roles may share a name. The editor mirrors the structure of the app itself rather than a list of permission names: one row per Feature Area — the areas a member navigates. Projects comes first, with Cover, Brief, Phases (with Tasks nested inside it), Norms, Parameters, and Client Portal underneath; then Documents, Vendors & Brands, Collaborators, Team, Clients, Resources, Organization, Time & Leave, and Meetings beside it. Click a parent row's title to fold its children away. Changes apply immediately to every member holding that role.

Access Level. Every row carries one choice on a three-step scale: Hidden, Viewer, Editor. Hidden means the area does not exist for that role — no tab, no screen, no mention on a card, and typing the address directly answers with an access notice rather than an empty page, so "hidden" and "empty" never look alike. Viewer reads the area and changes nothing in it. Editor reads and edits it; Editor always includes Viewer, which is why there is no "edit but not see" state to build. Someone who should work in an area is given Viewer or Editor — never an exception that pierces Hidden.

Not every row offers all three, and the reason is always the area itself. Cover — a project's title, code, and dates — is offered at Viewer or Editor only: a project page you can open always shows at least the project's identity. Meetings and Time & Leave cannot be hidden either, because your own calendar and your own leave are yours whatever your role. Organization has no reading short of managing it, so it is Hidden or Editor. And the Projects row itself carries Hidden or Viewer only: it is the gate on the project list and the project page, while editing what is inside a project belongs to the rows nested under it.

Extras. An Extra is a named authority that does not follow from the scale, switched on one at a time beside its area — it exists exactly where a real authority does not follow from Editor or Viewer, and folding it into the scale would either widen Editor or lose the distinction. Each one hangs off its area at one of three attachment points, and the editor says which:

  • A Standalone Extra is reachable at any Access Level, Hidden included: "Can create projects" and "Can delete projects" on Projects, "Can sign documents" on Documents, "Can invite members" on Organization, "Can approve leave", "Can request leave" and "Can see everyone's hours" on Time & Leave. This is how a partner signs drawings they do not upload, a project manager grows the team without touching settings, a team lead approves leave without configuring leave policy, and a manager exports the office's hours on the projects they can see without reading anyone's rate.
  • A Viewer Extra is offered from Viewer up and stays switched off — and says so — while its row is Hidden: "Can see team workload" on Team, "Can see all calendars" on Meetings, "Can see all projects" on Projects (Section 16.4.2). Reading a colleague's workload presupposes reading the Team area at all, so hiding Team withdraws it, and seeing every project presupposes seeing a project at all; Meetings can never be Hidden, so its Extra is always on offer.
  • An Editor Extra would be offered only at Editor and imply it. The attachment point exists; no Extra in the product uses it today.

Extras and Hidden. Hiding an area withdraws only what hangs off its levels, so a Standalone Extra survives its area being Hidden — and that is the point of it. "Invites members without managing the organization" is a role you build exactly one way: leave Organization Hidden and switch "Can invite members" on.

Upward Implication. An area is only reachable through the areas that contain it, so selecting Editor on Tasks raises Phases and Projects to at least Viewer, and the editor says which rows it raised. It reaches ancestors and never the granting row itself, which is why a Standalone Extra on a top-level area stays reachable with that area Hidden. A child may still exceed its parent — Phases at Viewer with Tasks at Editor is the everyday employed-architect role, editing tasks on a board they may read but not restructure. Setting a row to Hidden clears everything nested under it, after a confirmation naming exactly what goes, so no grant is left stranded under an area nobody can reach.

What the app enforces. Every Feature Area in the editor is enforced, and so is every Extra — every switch here is one the app acts on (Sections 8.5, 3.3.1, 5.1, 9.8, 16.4.1, and 17.0). "Can see all projects" was the last one still ahead of its enforcement, and it is not any more: with it off, a role's Projects at Viewer means the projects its members are on the Project Team of (Sections 4.2 and 16.4.2). Cover was the last area to land: it now means the project's identity and nothing else — the title, the abbreviation, the number, the deadline, the next meeting. A role at Cover Editor renames a project and sets its deadline — the next meeting is read from the calendar, not set on the project; it does not thereby rearrange the phases, rewrite the brief, set what the project is worth, or decide who works on it. Every project page still shows at least the project's identity, whatever else the role has, which is why Cover offers Viewer and Editor and never Hidden. Creating and deleting projects stay their own Extras on the Projects row, and closing a project (and reopening it) — reversible, and a fact about the project itself — goes with Cover editing.

What Hidden takes away everywhere else. Hidden reaches past the tab it removes. The sidebar and the mobile bar drop the entry, and the Workspaces index drops the tile and its count with it — a count is a reading of an area too. Home draws only on projects, so a role whose Projects are Hidden is told so once rather than shown a page that reads as an office with nothing in it, and the Time page keeps its calendar and its leave and loses the Hours tab, since hours are always logged against a project. Search returns nothing from a Hidden area. And the assistant obeys the same rules as the screens: every question it can answer names a Feature Area, so a role that has no Projects, no Tasks, or no Team gets a refusal rather than the answer, and asking in prose is never a way around the editor.

Which client a project belongs to follows Clients the same way. A role whose Clients are Hidden reads projects with no client on their cards, no client card on the Cover, and no client picker when creating or editing one — and a project it saves keeps the client it already had, untouched. Searching by a client's name finds nothing for that role either, on the projects list and through the assistant, since a search is a reading of the name one answer at a time.

Role card badges. Each role card badges the domains the role reaches, in the same words as the editor, and a legend above the cards says so on the screen itself. A dark badge means Editor on every Feature Area in that domain. A dark badge carrying a count — Projects 3/7 — means Editor on some of them, and says how many out of how many. A light badge means the role holds something there but edits none of it: reading the domain, or an Extra such as "Can invite members". A domain the role does not have at all carries no badge, because Hidden is an absence rather than a state to draw. Extras never count toward the number: signing documents is an authority beside the scale, not a step along it, so a role that signs drawings but uploads none still badges Documents light. This is why the default Project Manager badges Organization light — it invites members without managing settings — where before the areas were split it badged dark, which read as though it managed the organization. Admin shows every badge dark.

Admin is the exception to all of it. It holds everything the product has automatically, including areas and Extras added later, so its rows are shown at their level and locked, and there is nothing to edit.

What changed for an organization that already existed. Your existing roles arrived at the Access Levels that match what each one could do before the areas were split apart: a role that could edit projects reads Editor on Brief, Phases, Tasks, Norms, and Parameters, and a role that could only view projects reads Viewer on them. Nothing anyone can do changed — the levels describe the access the role already had, in finer words, and a role you had narrowed stays narrowed. Nothing changes for a role until you narrow it yourself. New organizations get the same shapes when their four roles are created.

Client Portal is the one exception: the split granted it to nobody but Admin, because sharing a project outward is a decision to make on purpose rather than one to inherit from being able to edit. The default roles carry it now — the Project Manager runs the portal (Client Portal at Editor), the Architect reads it (Viewer), and the Viewer has none. New organizations start that way. An existing organization's Project Manager and Architect were given the same only where the role still stood exactly as it was created; a role you had changed was left as you left it, so grant the portal to it here if you want it there. That is enforced as well as stored (Section 17.0).

One thing to check. Assigning a team to a project used to come with project editing; it now comes with Team at Editor, which is the point — seeing who is on a project and deciding who is on it are different authorities. The default Architect role edits projects and reads the team without managing it, so an Architect can no longer add or remove a team on a project. If that is work your architects do, set Team to Editor on that role under Settings → Roles; it takes one click and applies immediately. That is the only re-pointing that changes what an existing role can do — every other area was granted the finer access automatically when the areas were split apart.

One other thing may have changed, and only for an unusual role. If you had built a role that could manage something without being able to view it — Clients manageable and not viewable, say — that role now reads Editor there, seeing included. Editor includes Viewer on this scale, so that combination has nowhere to sit on it, and the alternative was to take away editing you had granted on purpose. No role gained the ability to change anything it could not change before.

Architect

4 members
Edit
ProjectsHiddenViewer
CoverViewerEditor
BriefHiddenViewerEditor
PhasesHiddenViewerEditor
TasksHiddenViewerEditor
DocumentsHiddenViewerEditor
TeamHiddenViewerEditor
OrganizationHiddenEditor
Can sign documents
Can invite membersworks with Organization Hidden

16.4.1 The libraries beside a project. Documents, Vendors & Brands, Collaborators, and Team are one Feature Area each, whether you reach them from the sidebar or from a tab on a project. There is no separate setting for "this project's vendors": a role whose Vendors are Hidden has no Vendors entry in the sidebar and no Vendors & Brands tab on any project, and typing either address answers with an access notice. That tab holds both of a project's links — the vendors it buys from and the brands it uses — and one switch reads and writes both; a phase's Assignments panel loses its Vendors and Brands tabs to the same setting. Brands answer to the same row. One switch reads and writes both halves of the directory — whoever manages suppliers manages makers — so there is no second setting to keep in step with the first, and a role with Vendors Hidden reaches no brand from the sidebar, a project tab, search, or the assistant. A role with Team at Viewer reads who is on a project — the teams and their members — and is offered nothing to change: no Add Team button and no remove, because a control that cannot succeed says less than none at all. Team at Editor assigns and unassigns teams, on a project and in Team Management alike.

16.4.2 Which projects a role sees. Projects at Viewer decides whether a role has projects at all; the "Can see all projects" Extra beside it decides which — every project in the organization, rather than only the ones the member is on the Project Team of (Sections 4.1 and 4.2). It is a Viewer Extra: offered from Projects at Viewer up, and switched off and unavailable while Projects is Hidden, because seeing every project presupposes seeing a project at all. Admin holds it automatically, like everything else. New organizations start with it switched on for Project Manager and off for Architect and Viewer — a fresh office begins with its architects seeing the projects they are on, and its managers seeing the whole board. Every existing role that could already see projects arrived with it switched on, so nobody's project list is shorter than it was: this is a choice your organization now makes per role, not one made for it. Switching it off takes effect immediately: members of that role then see the projects they are on the Project Team of, their project list narrows to those, and a project they are not on answers with the notice described in Section 4.2 rather than opening. Switching it back on restores the whole board with no other change.

16.5 Global Parameters

Go to Settings → Parameters to define your organization's shared parameter vocabulary. See Section 9 for a full explanation.

The catalog is one list, filtered by category and discipline, with Parameter Templates beside it; creating, editing, archiving and restoring a parameter are described in Section 9.9. A parameter's type cannot be changed after it is created, and archiving keeps every stored value.

16.6 Document Types

Go to Settings → Types and open the Document Types section. Once document parameters exist (Settings → Parameters), each type's name opens on click, and you choose there which of those parameters documents of that type must carry — the document form will not save a document of that type until they are filled in. Toggle types active or inactive: an inactive type stops being offered on new documents, but every document already filed under it keeps it and still offers it — marked inactive — when you edit that document, so re-saving never quietly drops it. Delete or rename any type, including defaults: they are starting suggestions, not locked system entries. Deleting is refused while anything still uses the type; you are told how many records use it and pointed at Deactivate, which is usually the verb you meant. No two types may share a name, whatever the capitalisation.

16.7 Vendor Categories / Collaborator Types / Resource Types / Permit Types

Configure the dropdown options used in vendor, collaborator, and resource forms, and the kinds of permit your projects need, under Settings → Types. All defaults are editable and deletable — they are starting suggestions, not system locks. Vendor categories are the exception, and only in part: see Platform categories below. Each list is a section of its own, and the page opens with every section closed: a closed section is one row — its name, a line saying what it is for, and a badge counting its entries (Vendor Categories counts every category in the tree, subcategories included; the parameter section shows Categories N · Disciplines M) — so all six fit on one screen. Click anywhere on a section's row, or press Enter or Space on it, to open or close it; several can be open at once. The list's add button (Add type, Add Category, and so on) sits at the top of an open section, just above its rows. Closing a section loses nothing — a half-typed rename is still there when you open it again. The open sections are kept in the page's address (?open=permit-type, or several separated by commas), so a refresh keeps them open and a link can land straight on one list. Every list supports drag-and-drop reordering: grab the grip handle (⠿) at the left of any row and drag it to the desired position. The new order is saved immediately and reflected everywhere that list is used (forms, dropdowns, filters). For vendor categories the reorder is per-level: root categories are reordered among themselves; subcategories are reordered within their parent group.

Platform categories. Vendor categories arrive filled: the tree opens on a set of categories that come with the product — Doors, Finishes, Construction, Lighting, MEP, Bathroom, Kitchen, Office, Outdoor, Wellness, Windows, Fabrics, Software, and a Furniture branch — rather than on an empty list or on nine generic defaults. They are shared by every organization and are the vocabulary the shared vendor directory is tagged in, so no one firm can change them: a platform category is marked with a platform badge and carries no controls at all — no rename, no deactivate, no delete, no drag handle, and no way to add a subcategory under it. Nothing is greyed out; the controls are simply not there, because a button that could only fail says less than no button.

Your own categories sit beneath the platform ones in the same tree — one merged list in every picker, every filter and this editor, the platform's first and yours after them — and all five gestures work on them exactly as described here. A name of yours may repeat a platform one: both are kept and both are shown, and a vendor tagged with one is not tagged with the other. New organizations are seeded no categories of their own at all: you start from the platform tree and add your practice's words to it. If a platform category is one your practice never touches, there is nothing to hide it with today — tell us, and it becomes a per-organization setting rather than a copy of the tree.

Renaming a vendor category takes effect everywhere immediately — vendors keep their assignments, and every dropdown, filter, and badge shows the new name. Deactivating a vendor category of your own deactivates its entire subtree — an interior design studio can switch off "Construction materials" once and every subcategory under it disappears from pickers and filters. Reactivating the parent brings the whole branch back. Vendors already tagged with a deactivated category keep their assignment. Deleting a category is refused while any vendor still uses it or a subcategory under it — the message names how many and points at Deactivate. Every list on this page follows the same two verbs (§7.2).

Names are unique within each list. Two document types cannot both be called "Site Plan", and capitalisation does not make them different — "site plan" is the same name. This applies to every list on the page and to renaming as well as adding; you are told which entry already holds the name. Vendor categories are the one exception, and only in part: the name must be unique among siblings, so two different parent categories may each have a "General", but one parent cannot have two — and the platform's categories are a separate list from yours, so a name of yours may repeat one of theirs.

Permit types. The kinds of approval your projects need from outside authorities — the Urbanism Certificate, the approvals and agreements it names (fire safety, public health, environment, the utility providers…), the Building Permit — are your firm's own list, Permit Types, on the same page. It starts empty, for new and existing organizations alike: add the kinds your practice deals with. It behaves like every other list here — add, rename, drag to reorder, deactivate, delete, and no two types may share a name whatever the capitalisation. Click a permit type's name to open three optional details: the usual issuer (e.g. "County Fire Department"), issuer notes (address, counter hours, what to bring) and the typical response time in days, shown as a badge beside the name once set. Change any of them and click Save details; empty a field and save to clear it. Deleting a permit type is refused while any permit on a project still uses it (Section 5.2); deactivate it instead to stop offering it while those permits keep it.

Brands are not on this page. They used to be, and they left it: a brand is a record with categories, an address, contact details and a page of its own, not one of your organization's vocabularies. Manage them on the Brands tab of Workspaces → Vendors & Brands (Section 12.3). Vendor categories stay here, and brands are tagged from that same tree.

16.8 Brief Templates

Go to Settings → Brief Templates to create reusable per-project data schemas (sections + typed fields). One template can be set as the default for new projects. Applying a template to a project copies all sections and fields — subsequent edits to the template do not affect existing projects.

16.9 Time and leave

Configure the organization's default work schedule (work days, flexible start window, hours per day), leave types, leave policies, and subscribed public holiday calendars under Settings → Time and leave. It used to be part of the General page; it is a tab of its own now, and the old /settings/time address leads to it. The tab answers to two gates, and each part is shown to its holder: the default work schedule is Organization at Editor; the holiday calendars, leave types, and policies are Time & Leave at Editor. So a role that manages leave without managing the organization reaches the tab and sees the leave parts only, and a role with Organization at Editor alone sees the work schedule only. A personal space has no Time and leave tab.

16.10 Ownership & deletion

The last tab of the organization's group, Settings → Ownership & deletion, holds the actions that change who belongs to the organization or end it. They used to sit at the bottom of General as a red Danger Zone; they have their own tab so that changing the logo never puts a delete button in front of you.

  • Leave Organization: removes your access immediately. Every member can leave, so every member sees this tab. Not available if you are the only admin.
  • Transfer Ownership: grants admin role to another member. Shown only to roles with Organization at Editor.
  • Download everything: the whole organization — every project's files, spreadsheets of its records, and the full data — as one ZIP, emailed to you as a link (16.16). Shown only to roles with Organization at Editor.
  • Delete Organization: schedules the organization for deletion. Nothing is erased that day: the organization is locked for every member at once, and permanently erased by the first nightly run after 30 days, on the date and time the confirmation states. Until then an admin can restore it (16.14). Requires typing the org name to confirm. Shown only to roles with Organization at Editor.

A member without Organization at Editor sees Leave alone, with the colleagues who can transfer or delete the organization named below it. A personal space has no Ownership & deletion tab: it belongs to your account alone, so it can be neither left, handed over nor deleted.

Wherever these safeguards count admins — the only-admin check on leaving, the last-admin check when changing or removing a member, and the role granted by Transfer Ownership — an admin is a member whose role holds Organization at Editor, and the Admin role always counts, even in an organization created before an area existed, matching the rule that Admin holds everything automatically. An admin whose own account is scheduled for deletion (16.15) does not count: they are about to go, so two admins cannot each leave, step down or delete their account counting on the other.

16.11 Partnerships

Two firms can form a Partnership — an organization-level handshake made once and reusable for future joint work. Go to Settings → Partnerships (managing partnerships is Organization at Editor; the tab does not exist in a personal space, since partnerships are between firms).

Inviting. Enter the email address of an admin at the other firm and choose a Notice Period from the presets — 7, 14, 30, 60, or 90 days (default 30). The notice period is the severance term both firms agree to at the handshake. The invitation expires in 7 days; a pending invitation can be resent (extending the expiry while keeping the original emailed link valid) or revoked, which kills the emailed link on the spot.

Accepting. The recipient opens the emailed link, logs in with the invited email address, and accepts on behalf of an organization — choosing which one, if they hold Organization at Editor in several. Personal spaces cannot enter a partnership, an organization cannot partner with itself, and two firms cannot hold two active partnerships at once. Accepting activates the Partnership immediately with the agreed notice period; declining leaves nothing shared between the firms. A revoked, declined, or expired link explains itself politely and leads nowhere. Every one of those pages, and the log-in prompt a recipient who is not signed in sees first, is sized for a phone: the link arrives by email and is opened wherever the email is read.

Managing. Both firms see the same section: invitations they have sent (an expired invitation stays listed with an Expired badge until it is resent or revoked, so resending is always reachable), active partnerships (partner firm, notice period, start date), and ended partnerships kept as history. Ending a partnership is unilateral — either firm's admin, no consent needed — and is a soft end: timestamped, visible to both firms, never deleted. Ending winds down the whole relationship predictably: every active joint attachment enters its notice period simultaneously, on the partnership's agreed notice period, and the other firm's admins are notified; pending attachment proposals simply die at zero cost, and an attachment already in its notice period keeps the countdown it has (see Severance below).

Changing the notice period. The agreed notice period changes only by mutual consent. Either firm's admin proposes a new preset from the Active partnerships table (Propose change); the other firm's admins are notified and see the proposal beside the current value, with Accept and Decline. Only acceptance writes the new period; the proposer can revise or withdraw an unanswered proposal at any time, at zero cost, and cannot answer their own. A notice countdown already running keeps its original end date — a renegotiation applies to detaches from then on, never to a window already open.

Joint projects. An active Partnership makes projects shareable, one at a time and by consent each time. On a project's Cover, the Partner firms card (proposing is Projects at Editor) lets the owner firm propose attaching a partner firm, picked from its active Partnerships. The proposal carries the joint mode and the sharing defaults; nothing about the project — not even its title — is visible to the partner before they accept, and the proposer can withdraw a pending proposal at any time, at zero cost.

The partner firm answers from its own Projects page, where pending proposals appear at the top for holders of Projects at Editor, naming the proposing firm and the partnership's notice period. Declining leaves nothing shared. On acceptance the project appears in the partner firm's main project list as a first-class row badged joint · with the other firm — the same badge the owner's list shows with the roles reversed, and the same dual-firm badge both firms see on the project header — and an All / Ours / Joint filter appears on both firms' project lists whenever there is joint work to separate. Joint projects count on both firms' Home pages. The project keeps exactly one owner: the partner-side row is participation, not ownership. While a joint attachment is active, the owner cannot delete the project — the partnership's notice protection cannot be bypassed by deletion.

Sharing terms. Beyond the fixed baseline, what crosses the boundary is governed by seven sharing toggles on each attachment, set by the owner firm. Documents (default on): partner users get a Documents tab on the joint project, where they see the project's documents and download their PDFs; Contributors can upload a PDF of their own (a title and a file — the owner's document types are not offered across the boundary). With the toggle off there is no tab at all, rather than an empty one. Financials (default off): partner users see project budget figures only — the project budget and each phase's allocated budget — never rates, quotes, or anything of the client beyond its name. Meetings (default on): partner users see the project's Meetings section on their Cover — the next meeting, the three after it and the five most recent past, cancelled ones marked, each with title, time, and where, never the owner's attendee list. Phase structure (default off): Contributor-grade partner users may add, edit, reorder, and remove phases from the joint project's Phases tab. Client activity (default off): partner users see what the client did in the Client Portal — the client's comments and approval answers in the Activity feed, and the Client last visited line on the Cover — but only those whose own role at their own firm can view the Client Portal; two keys, your toggle and their firm's role, and a partner without the second sees nothing more. Partner may run the portal (default off): the partner firm runs the project's Client Portal with you — its photos, PDFs, which phases the client sees, and invites — from a Client Portal tab on the joint project (§17.13). Turning it on turns Client activity on too, and that line stays on while it is. Permits (default off, on every existing joint project too): every staffed partner user, Contributor or Viewer, gets a read-only Permits tab on the joint project listing its permits — type, issuer, status and its flags (Overdue, Expiring soon, Expired, worked out by the same rule your firm sees), the phase each is needed for, who at your firm is responsible, the submission, response, issue and validity dates and numbers, and the conditions. Your firm's notes on a permit never cross. The fee shows only while Financials is also on, and the scanned permit opens only while Documents is also on — without it the row says a scan is on file, so the partner knows to ask. A task raised from a permit carries the permit's chip on the partner's phase board too, naming the permit's type and leading to its row on the partner's Permits tab; while the toggle is off the partner's task says nothing about a permit at all — no chip, no hint that one exists. Partners cannot add, edit or delete a permit, and permit notifications, the Workspaces Permits page and the assistant stay your firm's alone. A holder of Projects at Editor at the owner firm edits the toggles in place on the Partner firms card — on a pending proposal or an active attachment — and changes take effect immediately; other Cover readers see the same lines read-only. Partner users get the same story from a read-only Sharing card high on the joint project's Cover, directly under the project's identity, so both firms always know exactly what is shared. A toggle change on an active joint project is recorded in the Activity feed, visible to both firms.

Staffing and grades. The owner attaches the partner firm, never its people. The partner firm staffs the joint project itself, from its own member list, on the joint project's Team tab (staffing is Projects at Editor at the partner firm): each staffed person carries a per-project grade — Contributor (works within what the sharing terms allow) or Viewer (reads only) — changeable or removable at any time. The owner firm never sees the partner's member directory, only the resulting roster, shown under the Partner firms card on the Cover with each person's grade. There is no mapping between the two firms' roles; the grade is the whole story.

What the partner sees. A staffed partner user opens the joint project from their own project list and gets the fixed baseline: title, code, deadline, phase structure and statuses, tasks, comments, the combined two-firm roster, and the project's activity feed — plus whatever the sharing toggles open: a Documents tab, a Permits tab, the Cover's Meetings section (the owner's own list, read-only), and budget figures, each present only while its toggle is on. Where the project references the owner's records, the partner sees a name label only — the client is a name, never a link into the owner's client list. Everything organization-level at the owner firm — clients, vendors, type lists, teams, roles, rates, settings, and each firm's time entries — is unreachable for partner users regardless of grade; that hard floor no sharing toggle can open. The client portal sits on it too unless you let the partner firm run it, and even then switching the portal off and regenerating its link stay yours. An unstaffed partner-side user sees nothing of the project beyond its list row: opening it answers with an access notice naming staffing (or, for a holder of Projects at Editor, just the staffing surface, so a project manager can staff people — themselves included — before anything else is shown).

The same chrome, a shorter strip. A staffed partner opens the joint project and finds the app's own furniture: the project header, and a tab strip under it. The strip is shorter than the owner firm's — Cover, Phases, Permits while the permits toggle is on, Documents while the documents toggle is on, Team, and Client Portal while the partner may run the portal — because the sharing terms open fewer surfaces, which is exactly what anyone at your own firm sees when their role has Feature Areas Hidden, not a second kind of interface. Cover is where you land, and it reads as a sentence — what this project is, what is shared with me, what we have said, what has happened, when we meet. In that order: the project's identity (its client as a name, its deadline, and the project budget where that toggle is on), the read-only Sharing card, the firm conversation, the activity card, and the Meetings section the toggle opens — the same list the owner's Cover shows (Section 10.3), read-only. Meetings stays a section of the Cover rather than becoming a tab, as it is on the owner's side: a joint project that looked different would break the same-interface promise. The project budget is one figure on the identity line for the same reason — a number is not a surface. Phases is the work — the project's phases and the tasks under them — at an address of its own, so it can be bookmarked, linked, and returned to. Permits is the owner firm's permits on the project, read-only, as the permits toggle shares them; its table scrolls sideways inside its own box on a phone. Documents is the project's documents, found where documents live on every other project, with the Contributor's upload on it. Team is the combined two-firm roster, grouped by firm, with each partner-side person's grade — part of the fixed baseline, so it is there whatever the toggles say; a partner-side holder of Projects at Editor also finds the staffing surface there, beside the roster it changes, which is what the Team tab is at either firm. A surface the sharing terms do not open has no tab, so the strip never offers something it will then refuse — and a surface you reach anyway, by typing an address, following an old link or keeping a bookmark from before the owner firm turned a toggle off, answers with a sentence naming sharing, never a page-not-found and never a sentence blaming your own role. Two sentences, because there are two truths: a surface the owner firm could share — permits, documents, the client portal — tells you to ask them, and this opens; the surfaces of the owner's project that never cross at all — the project brief, the norms, the collaborators, the vendors and brands, the parameters and the budget page — say so plainly, because sending you to ask for a setting that does not exist would waste your time. (The project budget figures still reach you where the financials toggle opens them: they are a number on the Cover, not that page.) What never changes is that a firm with no partnership on a project at all still finds nothing there: that rule hides the project itself, and it is not about tabs. A partner-side user who is not staffed gets no strip at all: an unstaffed colleague gets the access notice naming staffing, and a holder of Projects at Editor gets the staffing surface alone, so the one gesture available to them is not buried among tabs that would every one of them refuse. On those same surfaces that never cross, though, even an unstaffed partner-side reader is told about sharing rather than about staffing — being staffed would not open the project brief, so promising that it would would send you round a loop.

References across the boundary. A task on a joint project carries the same Reference — T-1482 — for both firms: it is minted from the owner firm's sequence, because the task belongs to the owner's project, and it reads the same on both screens. A staffed partner user sees it leading every task row on the joint project's Phases tab and on the task's own edit panel, in the same small grey monospace, and clicking it copies it exactly as anywhere else (Section 3.3). Phases on that tab are collapsible, like the owner's board: the first unfinished one opens on arrival, and clicking a phase's name opens or closes it.

Typing a Reference resolves it across the boundary too. The command palette answers a staffed partner user with the joint tasks it names, under a heading naming the owner firm — Tasks · Atelier Nord — kept separate from your own firm's results and never displacing them; a bare number works here as it does at home. Titles match the same way, so part of a task's name finds it too. Joint projects answer to their name, code, or number in the same firm-headed way, for anyone at the partner firm whose project list already shows them. Opening a joint task result lands you on the joint project's Phases tab with its phase open and the row lit for a moment — the same arrival the owner gets on their board, at the same kind of address — and the assignment notification that named T-1482 lands there too, rather than on the project page for you to scan.

Because Reference numbers are counted per organization, the same number can name one of your own tasks and one on a joint project at once, and if you work with two owner firms it can name three. All of them are shown, each under its own heading, so whose T-1482 you are opening is something you read rather than something you guess. Your own role at your own firm still decides what you see: a role with Tasks Hidden gets no joint task results and one with Projects Hidden gets no joint project results, whatever a partnership grants. Staffing is the gate for tasks — an unstaffed partner-firm member finds the joint project by name, as their list already shows it, and learns nothing of its tasks. A severed joint project drops out of search at the moment its page does; a closed one stays findable, exactly like a closed project at home; a deleted one is findable by nobody.

A joint project's phases are listed with a No phase group after them, exactly as the owner's board has one, whenever the owner has filed a task on the project without choosing a phase. It lists those tasks and nothing else — the group is not a phase, so it carries no dates, no status and no budget, and the Add task button is not on it, because a task added from the Phases tab names the phase it goes in. The rows themselves behave like any other: a Contributor edits them and advances their status from here.

What a contributor can do. A partner user with the Contributor grade works on the joint project from the Phases tab: adding and editing tasks (title, description, status, priority, due date, assignee), clicking a task's status badge to advance it, moving phases through their statuses (Start, Complete — subject to the same completion gates the owner's board enforces — and Reopen), and commenting on phases. When the documents toggle is on, a Contributor also uploads PDF documents, from the Documents tab; when the phase-structure toggle is on, a Contributor also adds, edits, reorders, and removes phases. A Viewer-grade partner user is offered none of these controls, and the server refuses the writes regardless of what a client sends. Tasks on a joint project can be assigned to anyone on the combined roster, from either side: the owner's assignee picker gains a Partner firm section listing the staffed partner members, and the partner's task form offers the whole roster. A task assigned to a partner user appears on that person's My Work like any other task, and its status can be changed from there; clicking its title opens the joint project's Phases tab on that task.

Hours stay home. A staffed partner user logs time on the joint project from their own firm's Time page: the joint project appears in the Hours tab's project picker beside the firm's own projects — whatever the person's grade, since logging your own hours is your firm's record, not a project edit — with the project's phases and the person's assigned tasks on it. The entry is saved in the logger's own organization, referencing the joint project across the boundary, so the logger's own rates, schedules, leave, and payroll math apply, untouched. Neither firm ever sees the other's hours — no total and no per-person figure crosses the boundary, on any surface — and after the project is later detached, each firm's existing entries stay valid and visible at home, keeping the project's name on them. The assistant is a second way to log the same hours: ask it to log time on the joint project and it applies exactly the Time page's rules, saving the entry in your own firm (§20.17).

Notifications across the boundary. Joint-project events ring in both firms: a new comment or a phase status change — whichever firm made it — notifies the owner's project members and the partner firm's staffed members, and a task assignment notifies its assignee whichever side they are on. Every notification lands under the recipient's own organization, so a partner user reads it on their own bell with the project badged with the owner firm's name, linking to the joint project. Nothing behind an off sharing toggle or the hard floor is ever notified across the boundary, and the notification mutes (Section 14.7) apply to partner users exactly as at home.

Comments and activity. The comments on a joint project are one conversation on the project's phases, written by both firms and — where a Client Portal exists — including the client's portal comments, each entry labeled with the firm it came from (or Client). The owner reads and writes this conversation from a Comments card on the project's Cover (writing is Phases at Editor), the partner from the Cover of the joint project (writing is the Contributor grade). Beside it, an Activity card on both firms' pages records what either firm did on the project — who created or edited which task (named by its Reference and title), moved which phase to which status, added, renamed, reordered or removed phases, uploaded which document, commented where — plus the changes to what is shared and the severance record, each entry attributed by person and firm, so joint work is never anonymous and both firms read the same record. It covers every door a gesture can come through, the assistant included. Every project keeps this record (see 3.5 The Activity Feed); on a joint project it is the one both firms read, the partner from the day the project was shared. The ten most recent entries show, and the rest fold under Show N earlier entries; the card keeps the latest 100, and says so once it holds that many. Each reader sees only what they could already open: an entry naming something the sharing terms do not open — a document upload with the documents toggle off — is withheld from partner readers, so the feed can never leak a surface the tabs do not; and at the owner firm an entry about tasks, phases or documents is withheld from a role with that area Hidden, so Hidden leaves no trace here either.

Severance. A joint attachment ends with dignity, never overnight. The owner firm detaches the partner unilaterally from the Partner firms card on the Cover (Detach, Projects at Editor): the attachment enters its notice period — the days the partnership agreed at the handshake, frozen at that moment — the partner firm's admins are notified, and nothing changes for the partner until the window closes: staffed users keep exactly the access the sharing terms gave them, contributors keep working, hours keep being logged. Both firms see the countdown — the owner under the attachment on the Cover, the partner as a banner naming the end date and the days left, shown on every tab of the joint project so a countdown that matters is never behind a tab they are not on. The sharing toggles are frozen for the duration. If the partner firm's admin consents to the detach (the banner's Consent to immediate severance — an Organization at Editor act, since the notice protection belongs to the firm, not to a grade), severance takes effect immediately instead. Otherwise the notice expires on its own: a scheduled job moves the attachment to severed and access ends, and both firms are told. Ending the whole Partnership is the same wind-down applied to every active attachment at once. A severed attachment stays on the owner's Cover as history, badged Severed. While an attachment is active or in its notice period the owner cannot delete the project, so the notice protection cannot be bypassed by deletion.

The Severance Fork. Whenever a joint attachment severs — the notice expiring, the partner firm consenting to an immediate cut, or the owner firm being erased after its deletion (16.14) — the partner Organization automatically receives a closed record copy of the project, so each firm walks away holding the full record of the joint work. It arrives on its own, within minutes, as a first-class closed project in the partner firm's own project list, with a banner naming the firm the work was done with and the client. The partner's admins get a notification when it lands.

What the copy contains is exactly what the partner could see, and nothing else: the project's title, code, number and deadline; every phase with its dates and statuses; every task with its description, status, priority, due date and assignee, including the ones the owner had filed in no phase, which arrive in the copy's own No phase group; the whole conversation, each comment keeping the author's name and firm as it was written; and — if the documents toggle was on — the shared documents, whose files are re-uploaded into the partner firm's own storage rather than linked back to the owner's. Budget figures come across only if the financials toggle was on. Anything the sharing terms withheld, and everything behind the hard floor — the owner's clients, vendors, type lists, teams, rates, the client portal, the Project Brief, the other firm's hours — is simply not in the copy. Meetings and permits are left out on purpose even where their toggles showed them: the copy is the record of the work, not an archive of the other firm's calendar or of its dealings with the authorities. A permit's scan that was shared as a document still comes across, as a document.

Nothing in the copy points back at the owner firm's records. Where the shared project referred to one, the copy carries the plain-text label instead: the client is a name in the banner, each document's type is the label the partner's document list showed. The copy is the partner firm's outright — their project, their task numbers, closed from birth, editable and deletable by them like any other closed project, and untouched by anything the owner firm does afterwards. The owner keeps the severed attachment as history and nothing more.

Task numbers in the copy. The copy's tasks are numbered from your own firm's sequence, because the other firm's numbers would collide with yours. That means a task number quoted inside a copied comment — "blocked by T-1482" — refers to the task as it was numbered at the other firm, not to whatever T-1482 happens to be in your Organization. The banner says so, and every task in the copy shows its original number beside its new one, written was T-1482 in small grey type: that is how you find which task a copied comment meant. Comments themselves are never edited — a transcript says what was said, numbers included. The original number is a note of provenance and nothing more: search, the command palette and every link resolve by the copy's own number only. Tasks anywhere else in the app have no original number, because they were never renumbered. A partner firm scheduled for deletion. While either firm of a Partnership is scheduled for deletion (16.14), every joint project between them behaves as if that firm had left it: the scheduled firm's people drop off the roster, out of the assignee pickers and out of the project's notifications, and a project it owns disappears from the partner's project list and My Work. A proposal or a detach request from a scheduled firm is no longer listed for an answer. The other firm's own side keeps working. Nothing is detached, severed or copied — a notice period already running still ends on its date — so restoring the organization brings every joint project back exactly as it was.

16.12 Theme & Language

Switch the app's theme with the theme toggle in the header (its icon is a sun, a moon, or a palette, after the theme in use): Studio, the default, a warm neutral; Dark; and Light. The choice is remembered in this browser. On very large screens (e.g. 4K monitors at 100% OS scaling) the interface scales up automatically so text and controls stay comfortably readable.

The interface is written in English, and only English. There is no language selector — not in your profile, not in the public navigation bar — and nothing in the app changes the language it is written in. Romanian is not offered, and no other language is; a second one would be a substantial piece of work rather than a setting being switched on, and nothing here promises when or whether it happens.

Dates, numbers, and amounts are written in English too — 28 Aug, 1,234.5, RON 1,500 — on every screen, for every firm, regardless of what your computer's regional settings say. Two colleagues looking at the same deadline always read the same date. Dates stay day-first and the week still starts on Monday, so 10/08/2026 is the tenth of August, exactly as 10.08.2026 was. A date is written in one of three ways, and only where it is going decides which: drawn on a screen, printed on paper, or written to you. Each is described below.

The numeric form is for paper, not for screens. A date written 28/08/2026 appears in one place only: inside a document the app generates for you, where your own paperwork expects it (§7.9). Every screen your firm works on — including the screens that list those documents — writes 28 Aug.

Typing a date: the field is ours, and it reads DD/MM/YYYY. Where you enter a date rather than read one, the box is the app's own control rather than the browser's, so it says 28/08/2026 for everyone on every machine. A browser set to US English used to paint that same box month-first, on a page writing every other date day-first — so 05/08/2026 meant 5 August to one colleague and 8 May to another, and nothing in the app decided which. Now nothing about your computer changes it. The box says DD/MM/YYYY when it is empty, so the order is stated rather than guessed at.

It is forgiving about how you type and tidies up afterwards. 28.8.26, 28-08-26, 28/8/2026 and plain 28082026 all mean 28 August 2026, and the field rewrites itself in full as soon as you leave it. A two-digit year lands in this century up to 49 and the last one from 50. Something it cannot read — 31/02/2026, or a word — puts the previous date back rather than saving a guess, and where a field has a limit (an end date that may not fall before its start, say) a date outside that limit is refused whether you typed it or picked it.

A calendar sits at the end of the field. Click the calendar button to open it — beside the field on a desk, sliding up from the bottom on a phone, at a size you can tap. The week starts on Monday. Arrow keys move day by day, Enter chooses, Escape closes, and a screen reader announces the field and the grid, so a date can be set without a mouse. Clear date under the calendar empties the field, and so does deleting what is in the box.

Every date field in the app is this one. A project's Deadline, the phase board's task due dates and the Add task dialog, a phase's Planned start, Deadline, Started on and Completed on, the start date a phase template is applied from, a joint project's phase deadlines and task due dates, leave requests, a meeting's date and the date a repeating meeting runs until, logging and editing hours, and the date fields your own firm defines — a date in a document you fill in, and a date parameter you added yourself. They all read DD/MM/YYYY, they are all forgiving in the same way, and they all carry the same calendar. A field your firm invented behaves exactly like one that came with the app.

Times are still the browser's own, and that is deliberate. The start time on a meeting, the earliest and latest flexible start in Time settings, and the core business hours set when an organization is created use your browser's own time control. A time cannot be misread the way a date could — 14:30 is half past two whatever machine shows it — so there was nothing to take over, and nothing is planned to.

A date leaves its year off when it is this year. A deadline falling in the current year is written 28 Aug; the same deadline in any other year is written 28 Aug 2025. There is one form rather than two, so the year you see is always telling you something — and a task's due date in a list, on its card, in the detail panel and on a badge is written identically for the same value. Where a date carries a time of day, the year is always written: 28 Aug 2026, 14:30.

A date close to today is named rather than written. A task due today says Today, one due tomorrow says Tomorrow, and a date just gone says Yesterday; anything else inside the coming week is named by its weekday — Fri — and everything further out is written the ordinary way, 28 Aug. It is one ladder wherever it appears, so a task never reads Today on Home and Tomorrow on My Work. And it is worked out on your clock rather than the server's, which is what makes the two agree: opening Home at one in the morning still says Today for a task due that day, where it used to say Tomorrow because the server had not reached midnight yet. For a moment the page writes the plain date before your browser has answered; it settles to the word immediately.

A label that names a month rather than a day says so the same way. The Gantt scale writes Aug 2026 over each of its columns, and the deadline tile on Home prints AUG with the day underneath it. Both come from the same vocabulary as every other date, so a month reads the same wherever it appears.

Anything written to you rather than drawn on a screen spells its month out: 28 August 2026. Two places use this form, for two different reasons. The Client Portal uses it throughout (§17.9) — a client reading a project you have shared is not on your staff, the page reads as correspondence rather than as an internal tool, and a spelled-out month cannot be misread whatever country the reader is in. And anything the app stores or sends uses it: the text of a notification, an emailed message, and the answers the assistant gives. Those always carry a year, because they outlive the moment they were written — a notification saying 28 Aug would still be saying 28 Aug next March, with nothing left on screen to work the year out from. Meeting invitations keep their own label, described below, which carries a year as well.

Your country still matters — it decides which public holidays load, whether ANAF lookup applies, and how a phone number is normalized. It no longer decides how a date or an amount is punctuated: amounts group thousands with a comma, put the decimal after a dot, and name the currency before the figure, which is the opposite of the convention on a Romanian invoice. The one exception is meeting emails and calendar invitations, whose time labels are written in Romania's timezone next to the exact time carried by the calendar file itself.

16.13 Assistant

Settings → Assistant shows how your organization is using the assistant this month and sets the Personal Ceiling (§20.11). Seeing it and changing it both need Organization at Editor: what each colleague has used is not for everyone to read. The tab does not exist in a personal space, which has one seat and so nothing to share or limit.

AI Allowance this month. How many AI Credits the organization has used of its total — one share of 200 credits for every active member, so the line also says how many seats were counted — as a bar and a percentage, and the day it renews. The figure is in credits, never in money. When it is used up, the page says that the assistant will not answer anyone in the organization until it renews; only Endulo can raise an allowance. If Endulo has added extra credits for this month, the line says how many: they are already in the total, count from the next question, and do not carry over into the next month.

Personal Ceiling. The most one member may use in a month, in shares: two unless someone has changed it. Type a whole number of shares, from 1 to 100, and Save — the field shows what that comes to in credits — or switch off Limit each member's monthly use to remove the ceiling, so any member may use the whole allowance. A change applies from each member's next question: lower the ceiling below what someone has already used and their next question is refused with the ceiling message; raise it or remove it and they can ask again straight away. A question already being answered is never cut off.

Use this month. Every member with the credits they have used this month, heaviest first, and — while there is a ceiling — how much of it each has used, with Reached beside anyone the assistant will now refuse. Credits spent by someone who has since left are shown on a Former members line, because they still count against the allowance.


16.14 When an organization is scheduled for deletion

Deleting an organization (16.10) schedules it for deletion rather than erasing it. Erasing happens only in the nightly run, at 03:00 UTC, so the erase date is the first nightly run once 30 days have passed since the moment it was scheduled: an organization scheduled on 15 October at 14:30 is erased on 15 November at 03:00 UTC. Every email and screen states that date and time, in UTC, and it is when the erasure really happens — never sooner. There is no button that erases it sooner.

Everyone is told. Every member is emailed at once, naming who scheduled the deletion and the erase date, so a deletion nobody meant is noticed the same day. Every member is emailed again if it is restored.

It is locked for everyone. From the moment it is scheduled, nothing in the organization can be read or changed — not by an admin either — and every page of it shows a locked screen in its place. An admin sees the erase date, Restore organization, and Download everything, which takes the whole organization away as a ZIP without restoring it (16.16). Everyone else sees the erase date and the names of the admins who can restore it. Someone already working in it when it is scheduled gets the locked screen on the next page they open. The assistant is not offered while it is locked. Invitations into it can no longer be accepted, and they disappear from the banner of pending invitations; no new ones can be sent.

Members are moved. Anyone who was working in the organization is moved to another organization they belong to — never to one that is itself scheduled for deletion. Someone with no other organization stays on the locked screen. The organization stays in the switcher, marked Scheduled for deletion, so choosing it always brings back the locked screen and the names of who to ask.

Outside the app it is absent. The Client Portal links of its projects stop working and answer exactly like a link that never existed (17.2). Its events drop out of every member's Calendar Feed (19.1). Partner firms see their joint projects with it as if it had left them, while their own side keeps working (16.11). Its own background work — such as the tasks a newly added norm generates, or placing an address on the map — waits rather than runs. The one exception is what is owed to a partner firm on a fixed date: a notice period still ends when agreed, and the partner still receives its record copy.

Restore brings everything back. An admin's Restore organization clears the schedule. Projects, documents, tasks, members and their roles are exactly as they were, because nothing was removed; each member can switch back to it from the switcher. Portal links work again at the same address, the Calendar Feed carries its events again, joint projects return to the partner firms, and the background work that waited runs.

A reminder three days before. Three days before the erase date, the organization's admins get one more email: the last chance to restore it. It is sent once; if the organization is restored and later scheduled again, the new schedule gets its own reminder.

On the erase date it is erased. The nightly run at the erase date permanently erases the organization; until that run, an admin can still restore it. First, each joint project it owned is ended exactly as when a firm leaves: the partner firm's access is severed and it receives its record copy of the project (16.11), so its tasks and comments there are not lost; if a copy cannot be made that night, nothing is erased and it is tried again the next night. It erases every file it stored — its logo, vendor, brand and collaborator logos, documents and their versions, phase images, portal files and covers, and approval images — and then all of its records. It cannot be brought back after that. A logo that another organization still uses, such as a vendor or brand logo shared through the catalogue, is kept. If any file cannot be deleted that night, nothing is erased and it is tried again the next night, so no file is ever left behind without its record. The members' own accounts are not affected: they keep their other organizations. An export of it that an admin downloaded beforehand is deleted from storage too; the copy on the admin's own computer is theirs.

16.15 Deleting your account

At the foot of Profile a quiet Download my data or delete account link opens a page of its own, under Your account. Deleting your account schedules it for deletion: it is permanently erased by the first nightly run (03:00 UTC) once 30 days have passed, and the page states that date and time, in UTC, before you confirm. You confirm by typing your email address. You are then signed out at once, on every device, and get an email with the erase date — if you get one you did not ask for, sign in and cancel.

What goes with it. Your personal space, and any organization where you are the only member, are scheduled for deletion together with your account; the page lists them before you confirm. An organization with other members is not deleted with you.

When it is refused. If you are the only person who can manage an organization that has other members (Organization at Editor), the page refuses and names that organization, with a link to its Ownership & deletion tab: make someone else an administrator there (Transfer Ownership, 16.10) or delete the organization first, so nobody is left without one. An administrator whose own account is already scheduled for deletion does not count as someone who stays, so two administrators cannot both delete their accounts and leave the organization with nobody.

Changing your mind. Signing in during the 30 days shows only one screen: the erase date, Cancel deletion, Sign out, and Download my data (16.17), so you can take your data with you before it is erased. Nothing else in the app is reachable until you cancel. Cancel deletion brings your account back exactly as it was, and with it every organization that was scheduled together with it; you land on your Home page.

While it is scheduled. Colleagues no longer find you when they assign a task, add people to a project or a team, staff a joint project, or invite people to a meeting, and you receive no notifications or notification emails. Work you already have keeps your name: your tasks, comments, logged hours and meetings show you as before.

On the erase date it is erased. The nightly run at the erase date first erases your personal space and every organization scheduled with your account, exactly as any organization is erased (16.14), and then your account; until that run, signing in can still cancel it. Your photo is deleted from storage, and your name, email address, password, calendar link and every setting are erased. You can never sign in to it again, and every session it still had ends. Your email address is free again: you, or anyone holding it, can register a new account with it later. If your photo, or an organization going with your account, cannot be deleted that night, nothing about you is changed and it is tried again the next night.

What each firm keeps. The work you did for a firm stays with that firm, under Former member: your tasks, comments, logged hours, uploaded documents and images, and approval requests read "Former member" wherever they appear, including in the project activity and the Client Portal. Your hours stay in the firm's hours report, in a column of their own under "Former member", so its totals do not change, and the assistant credits you used stay on its Former members line (16.13). You are no longer a member of any organization, exactly as if you had left each one: you are gone from its member list, teams and project teams, your unfinished tasks become unassigned so someone else can take them, and your finished tasks keep "Former member" as who did them. What you wrote is not changed — only your name is gone from it.

16.16 Downloading everything

An admin can take the whole organization away as one ZIP file: Settings → Ownership & deletion → Download everything. The same button sits on the locked screen of an organization scheduled for deletion (16.14), so a firm can leave with its work without restoring it first. It needs Organization at Editor.

The request returns at once. The ZIP is put together in the background, and when it is ready a link is emailed to you, and only to you; if it cannot be built, you are emailed that instead. While one of your exports is being built the button waits, so repeated clicks do not queue copies. The tab shows your last export: being built, ready with its link and the date it lasts until, or failed.

What the ZIP holds.

  • Projects: a folder per project, named by its code, number and title, holding its documents (the current PDF, and earlier versions in a Versions folder), its phase images in a folder per phase, and the files shared on its client portal, each under its own name. Two files with the same name in one folder are kept apart, as Plan.pdf and Plan (2).pdf. Documents that belong to no project are in Documents without a project.
  • Spreadsheets: tasks, time entries, clients, contacts, vendors and collaborators, one CSV file each. Names and addresses with commas, quotes, line breaks and diacritics come out intact, and dates are written as 2026-10-14, which no spreadsheet misreads. If Excel shows each row squeezed into one column — it does on a computer whose list separator is a semicolon — open the file with Data → From Text/CSV instead of double-clicking it.
  • data.json: the full data, table by table, for importing into another system. Client portal links and other secrets are left out.

A file that a record names but storage no longer holds is listed in a Missing files text file rather than stopping the export. A very large organization arrives in several parts, each a ZIP with its own link: unpack them into the same folder.

The link. It opens only when you are signed in as yourself: a forwarded email is useless to anyone else, and someone signed out is asked to sign in first. It keeps working while the organization is scheduled for deletion. It lasts 7 days, after which the nightly run deletes the file, and you can ask for a fresh one. It stops working if you are no longer an admin of the organization, and the file is deleted as soon as the organization is erased.

16.17 Downloading your data

Anyone can download what the app holds about them, whatever their role: Download my data is on the Your account page, reached from the Download my data or delete account link at the foot of Profile (16.1). It is on the screen you see when your account is scheduled for deletion too (16.15), so you can leave with your data before it is erased.

It works like Download everything (16.16): the request returns at once, the ZIP is built in the background, and a link is emailed to you alone; if it cannot be built you are emailed that instead. One export of yours is built at a time — an organization export you asked for counts too — and the page shows your last one: being built, ready with its link and the date it lasts until, or failed.

What the ZIP holds. The same layout as an organization's export — files, spreadsheets and JSON.

  • Spreadsheets: your profile (each field and its value), the organizations you belong to with your role and the date you joined, and your notification settings — which groups notify you and which you muted.
  • Personal space: everything in your personal space, as an organization export holds it — its projects with their documents, versions, phase images and portal files, and its spreadsheets.
  • Organizations: a folder per organization, holding what is about you there: the tasks assigned to you, the hours you logged, your leave requests and leave balances (with the days granted or taken off by hand), and the comments you wrote on project phases. An organization whose joint project you worked on through a partnership has a folder too, holding the tasks and comments of yours that live there.
  • data.json: the same records in full, organization by organization. Passwords, calendar links and other secrets are left out.

What it never holds. An organization's documents — its PDFs, versions, phase images and portal files — stay with the organization, even the ones you uploaded yourself: they are the firm's and its clients' records, and only an admin can take them, with Download everything. Hourly rates are never included either, not even your own. Both are left out by the export itself, not by a setting, so no request can include them.

The link. It opens only when you are signed in as yourself, and it lasts 7 days, after which the nightly run deletes the file and you can ask for a fresh one. It keeps working while your account is scheduled for deletion; once the account is erased, the file is deleted.


17. Client Portal

The Client Portal is a private link for your client. They follow phase progress, see images and PDFs, comment, and answer approval requests, without an account. Once the project is closed, the link stays open but read-only (§17.11). The same sentence opens the project's Client Portal tab.

17.0 Who Can Use the Portal

The Client Portal is its own Feature Area. Sharing a project outward is a decision to make on purpose rather than one to inherit from being able to edit a project, so it is graded on its own: the default Project Manager runs the portal (Editor), the default Architect reads it (Viewer), and the default Viewer has no Client Portal tab at all. When the areas were split apart the portal was granted to nobody but Admin; the defaults above came later, and reached an existing organization's Project Manager and Architect only where the role still stood as it was created — a role an Admin had changed kept its portal Hidden. Any role's access is set under Settings → Roles.

A role whose Client Portal is Hidden does not have the portal at all: no tab, and typing the address answers with an access notice saying the role does not include this section. Nothing about the share reaches such a role anywhere else either — a client's comment and a client's answer to an approval request are announced only to the project members whose role includes the portal, since a notification linking to a page you are refused is a trace of a section rather than a message.

Client Portal at Viewer reads the share and changes nothing in it: whether the portal is active, when the client last viewed it, the theme, whether a cover photo and a password are set, whether comments are allowed, the phase gallery, the client-facing PDFs, the approval requests and their answers, and the comments the client left. It cannot activate or deactivate the portal, change any setting, upload or remove anything, ask for an approval, or mark a comment read. The share link itself is not shown to it — and not merely left undrawn: the link never leaves the server for a role that may not share. The link is the ability to share the project — anyone holding it can pass it on — so it belongs to the roles holding Client Portal at Editor, which is the whole reason this area is not inherited. A Viewer is told as much in place of the link.

Client Portal at Editor does all of it, including opening the portal in the first place: a portal is created on first visit to the tab, and minting its link is an edit, so a viewer opening the tab on a project nobody has shared yet is told no portal has been opened rather than causing one to exist.

One boundary drawn on purpose: the images filed against a phase in the portal's phase gallery stay on Phases at Editor, because they are the phase's own record and are reached from the phase board too. The PDFs published to the client, and the switch deciding whether a phase appears in the portal at all, are the portal's. A role can hold either without the other — an architect who adds renders to a phase but does not decide what the client sees is exactly the shape this split allows.

Admin holds it at Editor automatically.

17.1 Accessing Portal Settings

Open a project and click the Client Portal tab. A portal is created automatically on first visit by a role that can manage it. It starts inactive: the link does not work until you activate it.

17.2 Activating the Portal

Toggle Portal access on. Clients with the link can open the project in any browser. Toggle it off to deactivate: the link stops working at once, and turning it back on revives the same URL. The link also stops working while the organization is scheduled for deletion, answering like an unknown link, and works again at the same address if it is restored (16.14). Once the client has opened the portal, the card also shows when they last viewed it.

Portal access

Clients with the link can view this project.

17.3 Password Protection

The portal is open to anyone with the link until you set a password in the Password protection card. Clients then see a password prompt before viewing. You can set a new password or Remove it at any time. A browser that has already entered the password stays let in for up to 30 days, even if you change the password meanwhile.

Studio Ionescu & Partners

Residence Popescu

Enter password
View Project

17.4 Appearance

Choose Light or Dark theme. The theme applies to this portal only and changes nothing else in Endulo. Upload a cover photo (JPEG/PNG/WebP, max 20 MB) for a full-bleed hero at the top, about 70% of the screen high, with the project title over it. Replace or remove the cover at any time.

Appearance

Theme

Light Dark

Cover photo

Upload cover photo

JPEG, PNG or WebP — max 20 MB

17.5 Phase Gallery

The Phase gallery on the Client Portal tab lists every phase of the project. Click Add images on a phase to upload images for it — JPEG, PNG or WebP, max 20 MB each, several at once. Each image takes its file name as its title: click the title to rename it, or click under it to add a caption, which the client sees with the image. The arrows on a thumbnail move it earlier or later in the phase, and the trash icon deletes it. On a desktop these controls appear when you hover over the image; on a phone they are always shown.

One image per phase can be set as the cover: click the star on it, and click again to unset. The cover opens that phase's section in the client view, full width above the gallery, with its title and caption over the bottom edge; it is not repeated in the gallery below. A hero render or an aerial view works well here.

Design

Design
Add images

Star an image to use it as the full-bleed cover for this phase.

CoverHero Render
Floor Plan
Section A

When a phase has exactly two gallery images (the cover not counted), the client view shows a Compare button above them. It switches to a comparison slider the client drags left and right to reveal one image over the other; Gallery switches back. It suits before/after renders, day and night studies, or two design options.

Each phase's header also carries an eye icon — Hide from portal / Show in portal — and an Upload PDF button for client-facing PDFs filed against that phase. PDFs for the whole project (permits, contracts, general drawings) go under Project documents, and the client finds them in a strip near the top of the portal. A phase appears in the client view only while it is shown and has a description or at least one image. A phase's description is written on the project's Phases tab.

17.6 Client Comments

Toggle Allow comments in the Client Comments section to enable the commenting feature. The client then finds a Leave a comment link at the bottom of each phase (it shows the number of comments once there are some); they enter their name and a message — no account required. When a comment is submitted, the project's team members get a notification and an email — unless they muted the Projects & documents group, which now silences both.

The section lists every comment, with unread ones marked New; click the check mark beside one (Mark as read) to mark it read.

To answer a comment, click the Reply arrow beside it in the Client Comments section, write your reply and click Send reply. The reply joins the same phase's thread on the portal, and the client sees it signed with your name and your firm — Ana Pop, Studio Nord. On a joint project the partner firm's replies are signed the same way with its own name, so the client always knows who spoke for which firm (§17.13). Replies are listed with the client's comments, marked Reply, and never count as new.

17.7 Sending an Invite Email

Use the "Send invite by email" form to email the portal link directly to a client. The client receives an email from your firm with a View Your Project button that opens the portal. You can send it again at any time; the link only changes when you regenerate it (§17.8). The portal has to be active first — until it is, Send is disabled and the form says "Activate the portal before sending an invite."

Send to lists the contacts of the project's client that have an email address, the primary contact first. Picking one fills in their email and name; click Send. Pick Someone else to type a name and an email address instead. If your role can manage clients, tick Save as a contact of [client] to add that person to the client's contacts as you send — the name is then required, and nothing is added when a contact already has that email.

Send invite by email

Send to

Send

A project with no client linked shows "No client is linked to this project" with a Link a client button, for roles that can edit the project and view clients. Choose the client and click Link; the invite then offers its contacts. You can still type an address without linking one. A partner firm running the portal always types the address: your client's contacts are not shared with them.

17.8 Regenerating the Link

Click "Regenerate", under the share link, to create a new URL and immediately invalidate the old one. Use it when a link has travelled further than it should: anyone holding or having bookmarked the old link can no longer open the portal.

17.9 What the Client Sees

  • Sticky header with your firm's name and logo and the project title — transparent over the cover photo, frosted as the client scrolls. On a desktop it carries a Print button for a paper copy
  • Full-bleed cover photo (if uploaded), with the project title, the client's name and how many phases are completed
  • The project's PDFs, if any, in a strip under the title
  • Alternating phase sections with phase number watermark, each with its status and an Updated date, and an Updated tag on a phase that has changed since the client's previous visit
  • The phase's cover image, then its description and gallery
  • Image gallery with lightbox and keyboard navigation. Tapping a thumbnail opens the picture over the whole screen; on a phone the close button and the two arrows are sized for a thumb, because the portal is the page most likely to be opened on one — from an email, on site, by somebody with no Endulo account
  • Before/after comparison slider when a phase has exactly two gallery images
  • Scroll progress bar, and a phase dot navigator on wide screens
  • A "Leave a comment" link at the bottom of each phase (if comments are allowed)
  • An "Action required" banner at the top when there is a pending approval request

Every date on the page — a phase's Updated line, the date on a comment — is spelled out in full: 28 August 2026, always with its year (§16.12). The portal is the one place a reader may not be in your country, and a spelled-out month is read the same way everywhere.

S

Studio Ionescu & Partners

Residence Popescu

Prepared for Familia Popescu

Residence Popescu

2 of 3 phases completed

01 — CONCEPT

Concept Phase

Site analysis, brief definition, feasibility study.

02 — DESIGN

Design Development

Schematic drawings and engineering coordination.

03 — PERMITTING

Permitting

In Progress

17.10 Client Approval Requests

Architects can send formal approval requests through the Client Portal settings page. Two types are supported:

Phase sign-off: the client reads the title and description, enters their name, optionally adds a comment, then clicks "Approve" or "Request revision". No options to choose from.

Design option selection: the architect creates 2–4 options (each with a label and optional image). The client selects their preferred option, enters their name, optionally adds a comment, and clicks "Approve" or "Request revision".

Only one approval request is shown to the client at a time (the oldest pending one), with who asked for it — Requested by Ana Pop, Studio Nord — whichever firm on a joint project asked. Once a client responds, the team receives a notification ("portal_approval_responded"). The architect sees all requests with their status, and who asked, in the Client Portal settings page. A pending request can be deleted with its trash icon; an answered one stays in the list with the client's name, comment and chosen option.

To create a request: go to the project's Client Portal tab → "Approval Requests" section → click "New request". Fill in the type, title, optional phase link, and description. For design options, add option labels and upload images (JPEG/PNG/WebP, max 10 MB each).

17.11 When the Project Is Closed

Closing a project does not switch its portal off. The link keeps working, but read-only: a This project is complete banner sits under the title, and the phases, photos and PDFs stay exactly as they were. Comments and approval answers stop — the comment button and the approval banner are gone, and an answer sent from a page left open since before the close is refused. A pending approval request is not cancelled; it simply waits. Reopen the project and everything comes back as it was: the comment button (if comments are allowed), and the oldest pending request in its banner, unanswered and unchanged. To take the portal down altogether, turn Portal access off (§17.2).

17.12 Client Activity on the Cover

What the client does in the portal reaches the project's Cover, not just your notifications. A comment and an answer to an approval request each become an entry in the project's Activity card, attributed to the name the client typed and marked as the client's — Maria Popescu · Client approved "Schematic Design", requested revisions to "Facade options", commented on "Concept Design". A design-option answer names the option chosen. These entries follow the Client Portal: a role with the Client Portal Hidden does not see them. A partner firm on a joint project sees them only when you turn on Client activity in the sharing terms on the Partner firms card, and then only its staff whose own role can view the Client Portal.

Visits are not feed entries. Instead, once the client has opened the portal, the Cover shows one Client last visited line, with the date and time, under the project's deadline — to roles that can see the Client Portal, and to partner staff on the same two keys as the entries. A portal nobody has opened yet shows no line.

17.13 A Partner Firm Runs the Portal

On a joint project you can let the partner firm run the portal with you: turn on Partner may run the portal in the sharing terms on the Partner firms card (§16.11). Turning it on also shares Client activity, which stays on while the partner may run the portal.

Two keys decide who at the partner firm gets what — your toggle, and their own role at their own firm. Partner staff whose role can view the Client Portal get the same Client Portal tab you have, read-only. Those who are Contributors on the project and whose role can edit the Client Portal run it: they upload and remove gallery photos and client-facing PDFs, choose which phases the client sees, copy the share link and send invites. Partner staff whose role keeps the Client Portal Hidden get no tab at all.

Some things stay with your firm whatever the toggle says: switching the portal off, regenerating its link, its appearance (theme and cover photo), and its password. On the partner's tab these read as settings, not controls, with a line saying your firm keeps them. Your own tab adds a line under its description — [Partner firm] can also run this portal. — for as long as that is true.

Talking to the client. The same partner staff also answer the client: they reply to the client's comments and send approval requests from the tab, exactly as you do (§17.6, §17.10). The client sees every reply and every request signed with the person and their firm — yours and theirs alike. A client's comment and a client's answer to an approval request reach the partner's staff on the project whose own role can view the Client Portal, beside your own team, for as long as the partner may run the portal.

Turning the toggle off stops the partner firm's next change and nothing else: the photos, PDFs and phase choices they made, the invites they sent, and their replies and approval requests stay on the portal, still signed with their firm. A request they left open is yours to answer for — the client can still respond to it, and you can delete it from the Approval Requests section. Your firm owns everything on it either way.


18. Gantt Timeline

18.1 Accessing the Timeline

The timeline has no tab of its own. Open the project's Phases tab and scroll past the phase board: the chart sits at the bottom of that page, under a Timeline heading. The view is read-only, and it reads with the board above it — a role whose Phases are Hidden reaches neither (Section 3.3.1). On a project with no phases the heading is still there, saying that none are defined yet.

18.2 Reading the Chart

The chart shows all project phases as horizontal bars on a time axis. Phase bars are colored by category:

  • Concept: primary color
  • Design: secondary color
  • Documentation: accent color
  • Permitting: warning color
  • Construction: success color
  • Administration: neutral color

Bar patterns indicate status: solid = completed, diagonal stripes = in progress, semi-transparent = pending.

A red vertical line marks today. A yellow vertical line marks the project deadline (if set). Each phase with its own deadline also carries a dark vertical tick on its row — the phase deadline marker.

18.3 Date Derivation

A bar's length always comes from the phase's estimated duration; its deadline never reshapes the bar — it judges it (see 18.4). The start is: the actual start date if work has begun → the phase's Planned Start if one is set → cascaded from the previous phase's end. Every phase occupies time in the sequence, so a pending phase queues behind the previous phase whatever that phase's status. Set a Planned Start to insert a break after the previous phase (an authority review, a client decision) or to deliberately overlap phases running in parallel.

The end is: the actual completion date for completed phases; for phases still open, the planned end (start + estimated weeks, using the estimatedWeeksOverride when present). An in-progress phase that outlives its estimate keeps growing to today until someone closes it — and pushes every later phase's derived start along with it. A phase with no estimate uses its deadline as the planned end, or 4 weeks as a last resort.

18.4 Overrun Warnings

Two thresholds judge every bar. The segment past the phase's planned end renders in the warning color — the estimate is blown, the promise still stands. The segment past the phase's deadline renders in the error color — the promise is blown. Once a bar has grown past its planned end, a thin marker shows where the plan said it would stop. This applies to phases still running, to plans that are infeasible before they start (start + duration already past the deadline), and to phases completed late — the overrun history stays visible.


19. Calendar Feed (iCal)

19.1 What It Is

Endulo can generate a personal iCal feed containing all your project deadlines, phase milestones, and meetings across all organizations you belong to — except an organization scheduled for deletion, whose events leave the feed until it is restored (16.14). You can subscribe to this URL in Google Calendar, Apple Calendar, Outlook, or any other calendar app. The feed is one-way: your calendar app reads from it on its own schedule, and nothing you enter or edit in that app flows back into Endulo.

19.2 Getting Your Feed

The quickest way: on the Time page, Calendar tab, click "Add to your calendar" — available to every member regardless of role. A dialog opens with the one-click subscribe links and the feed URL; the feed is created automatically the first time, so there is no separate generate step.

The same panel also lives in Settings → Profile, under a "Calendar Feed" heading, where clicking "Generate calendar feed" creates it if you don't have one yet. Both places show the same short panel: a one-sentence intro, then on a wider screen two columns — the "Add to Google Calendar" and "Add to Apple Calendar" buttons and the feed URL with its copy button on the left, one large "Scan with your phone" code on the right (on a narrower window the code drops below the buttons). On a phone it is one column and the code is not shown. The notes on how quickly changes appear (19.4) live here in the manual rather than in the panel.

19.3 Subscribing

One-click links: "Add to Google Calendar" opens Google Calendar with your feed pre-filled; "Add to Apple Calendar" opens your Apple Calendar app's subscribe flow directly (iPhone or Mac). Apple Calendar fetches the feed over an encrypted connection, so no "insecure connection" warning should appear — if you do see one, you are on an old link: reopen this section and tap the button again to get a fresh one. For Outlook or any other calendar app, copy the feed URL and paste it into the app's "Subscribe to calendar" or "Add calendar from URL" feature. Subscribing needs no Endulo login on the device — the secret token in the URL is the authentication.

Scanning from a computer: with the app open on a desktop or laptop, both places also show one large QR code under a "Scan with your phone" heading, captioned "iPhone or Android", to the right of the buttons (on wider screens only — on a phone the buttons are the right path). Point either phone's camera at it: the code opens the subscribe page described below, which shows the one right action for the phone in your hand — an iPhone gets the Apple Calendar button, an Android phone the Google Calendar button. There is one code rather than one per phone so nothing has to be chosen or told apart before scanning. The code is drawn in the browser and holds the same feed token as the URL beside it, so treat a screen showing it like the URL itself; after a Regenerate it is redrawn for the new token, and a photo of the old one leads to "This link is no longer valid". A phone with no Google account, or one running only Outlook or Exchange, still adds the feed from a computer: copy the feed URL and paste it into that calendar service's "Subscribe" or "Add from URL" option, and the phone picks it up through the account it syncs.

The subscribe page: the code above opens a small public page for phones, at the address "/subscribe/" followed by your feed token (the same token as in the feed URL, so treat the address the same way). Opened on a phone it shows the one right action for that phone. On an iPhone or iPad: a single "Add to Apple Calendar" button. On an Android phone: a single "Add to Google Calendar" button, with a note explaining that the subscription is made on your Google account and then appears in Samsung Calendar or any app that syncs that account, once the calendar is switched on for sync in the Google Calendar app — Android has no other path, so landing in a browser on Google's page is the step working, not the wrong app opening. On a computer: both buttons and the feed URL. Under the main button, "Not this phone?" reveals the other options. The page needs no Endulo login; a token that has been regenerated, or was never valid, shows "This link is no longer valid" instead.

Events included:

  • Phase deadlines (one-day event on the deadline date)
  • Phase start dates (if a startedAt date is set)
  • Project deadlines
  • Meetings you organize or are invited to (timed events)

A meeting entry is named the way its chip is named on the Calendar in the app: the project's code and number leading, then the meeting's own title — GAV 001/2026: Site visit. A meeting filed under no project keeps its bare title. The deadline and milestone entries keep their older bracketed form, [Full title] Concept design deadline.

19.4 How Quickly Changes Appear

The calendar app polls the feed URL on its own schedule. Google Calendar refreshes subscribed feeds periodically — a change can take up to a day to appear. Apple Calendar can refresh more often. Meeting invitations also arrive instantly by email with an attachment that adds the meeting to your calendar, so individual meetings have a fast path regardless of feed refresh timing.

19.5 Security

The feed URL contains a secret feed token unique to your account. Treat it like a password — anyone with the URL can see your calendar events. If the URL is ever exposed, go to the Calendar Feed card in Settings → Profile and click "Regenerate", the small button under the feed URL (regeneration lives only there, not in the Calendar tab dialog). This immediately invalidates the old URL and creates a new one — every existing subscription breaks and stops updating, so you must re-subscribe in each calendar app with the new URL. The app warns you before regenerating.


20. AI Assistant

20.1 What the Assistant Can Do

The AI assistant (the chat icon in the sidebar) can both answer questions about how to use Endulo and query live data from your organisation's projects. It can also make changes on your behalf — and before every change it shows you what it is about to write and waits for you to approve it (§20.24). Capabilities:

Read-only queries:

  • List all your active projects
  • Get the full status of a project: phases, task counts (total / completed / in-progress / pending), and deadlines
  • Search projects by name, code, or client
  • Search tasks by title, or look one up by its Reference (T-1482), across all projects
  • Show your open tasks across all projects, including whether any are overdue
  • List overdue tasks across the projects you can see, or for a specific project
  • Show how many open tasks each team member currently has (team workload)
  • List permits on one project or across the projects you can see, with their status and flags — what is still missing (Required or In preparation), what is waiting at an authority, what is overdue, expiring soon or expired (Section 5.2)
  • Read this user guide, a subsection at a time, to answer a question about how to use Endulo (§20.22)
  • Read back the hours you have logged — the total and where they went, for a period and for projects, phases or tasks, with a link to the same view on the Hours tab; a colleague's hours only with Can see everyone's hours (§20.23)

Write actions, each needing the Access Level of the area it writes:

  • Update a task's status (mark as pending, in progress, or completed) — Tasks at Editor
  • Update a task's assignee, due date, priority, or description — Tasks at Editor
  • Create a new task inside a project phase — Tasks at Editor

Assignment through the assistant obeys the same rule as the pickers: an assignee must be on the task's Project Team, and asking for anyone else is answered with a sentence saying so rather than done. The assistant cannot add someone to a Project Team — that is the project's Team tab (§4.1).

  • Mark a project phase as started, completed, or reopened — Phases at Editor

Write actions available to everyone:

  • Log hours worked against a project, phase, or task (for the current user) — no Access Level beyond the Projects the hours are logged against, exactly as on the Time page, so a Viewer can log her own hours through the assistant

Every read of your organisation's data names a Feature Area too — projects and their identity need Projects at Viewer, phases Phases at Viewer, tasks and workload Tasks at Viewer, the member list Team at Viewer, permits Permits at Viewer, and a project's client name Clients at Viewer — so asking in prose is never a way around the Roles editor. Reading this guide needs nothing: it is the same text anyone can open at /manual. If your role does not include what an action needs, the assistant says so and names the action it could not run; it never pretends the feature does not exist. Ask someone whose role holds that area at Editor, usually a Project Manager or Admin.

The assistant sees the projects you see. Project Visibility (§4.2) applies to it exactly as it applies to the pages: without Can see all projects, the projects it lists and searches are the ones you are on the Project Team of, the tasks it finds are the tasks inside them, the permits it lists are the permits on them, and the phases and tasks it can change belong to them. Asked directly about a project you are not on, it answers with the same sentence the page shows — you're not on this project's team — rather than reporting a project that plainly exists as missing. Team workload is the exception, because the Extra behind it was granted as oversight, and your own open tasks are another: they are yours to be told about wherever they are.

20.2 Rich Results

When the assistant calls a tool, the response includes a visual card — a clickable project list, a phase progress breakdown, a task list with priority indicators, a team workload chart, or a permit list with each permit's status and flags — followed by the assistant's commentary. Clicking a project row opens that project directly.

20.3 How to Use It

Click the chat icon in the sidebar (or press ⌘K / Ctrl+K from anywhere in the app) to open the assistant panel. Type your question in plain language. Examples:

  • "What projects are active right now?"
  • "How is the Florescu House project going?"
  • "Which of my tasks are overdue?"
  • "Who has the most open tasks on the team?"
  • "Are there any overdue tasks on the Ionescu Office project?"
  • "What permits are still missing on Casa Verde?"
  • "Is any permit overdue or expiring this month?"

When you have a project open, the assistant is automatically aware of which project you're viewing and you can refer to it as "this project" or "the current project".

20.4 Voice Input

On supported browsers (Chrome, Edge), a microphone button appears next to the send button. Click it to speak your question — the transcript will fill the input field for you to review before sending. Click the microphone again to cancel early. The browser will ask for microphone permission on first use.

20.5 Voice Readout

A speaker icon in the assistant panel header toggles voice readout on and off. When enabled, the assistant reads its text response aloud using your browser's built-in text-to-speech after each reply finishes streaming. Click the speaker again to stop playback mid-sentence.

20.6 Suggested Follow-Ups

After each assistant response that includes live data (projects, tasks, workload), a row of quick-send chips appears above the input box. Clicking one sends that question immediately without typing. The chips update with each reply and disappear once a new conversation turn starts.

20.7 Slash Commands

Type / in the input box to see a list of instant commands. Use arrow keys to navigate and Enter to send:

  • /tasks — your open tasks
  • /overdue — all overdue tasks in the organisation
  • /projects — list active projects
  • /status — status of the current project (when viewing one)
  • /workload — team workload overview

20.8 Conversation History

Your conversation is saved in the browser and restored when you reopen the panel. To start fresh, click the trash icon in the panel header.

20.9 Stop Generation

While the assistant is responding, a red stop button replaces the send button. Click it to interrupt the response early.

20.10 Where the Assistant Sits

On a desk-sized screen (1024 pixels wide and more) the assistant docks as a panel on the right, beside the page rather than over it: the page moves over to make room, so nothing you need is hidden behind it. There is no dimmed background, and clicking on the page does not close it — you can read an answer and follow its steps in the app at the same time. It stays open as you move between pages, and it comes back open after a reload, or the next day, if you left it open. It closes only when you press its close button, ⌘K / Ctrl+K, or Ask AI again.

On a narrower screen — a phone or a small tablet — the assistant opens over the page instead, as a full-width panel on a phone. Tapping outside it closes it, and it always starts closed when a page loads.

For more room, press the pop-out button in the docked panel's header (the square with an arrow, shown on desk-sized screens only). The assistant opens in its own browser window — the chat alone, full height — which you can resize, or drag beside the app or onto a second monitor. Your conversation comes with it, and the docked panel closes. There is only ever one assistant window: pressing pop-out again brings the same window forward, and while it is open, Ask AI and ⌘K / Ctrl+K in any Endulo tab bring it forward instead of docking the panel. Some browsers do not let one window raise another, so if it does not come to the front, switch to it yourself. Voice, slash commands, follow-up suggestions, copy, clear and the AI Allowance all work in it exactly as in the panel.

The pop-out follows the Endulo tab you last used. Whichever tab you last navigated in or clicked into is the one it follows, so with several tabs open, clicking into an older one is enough to switch it — you do not have to navigate. When that tab is on a project, "this project" in the pop-out means that project, exactly as it does in the docked panel, and the suggested questions match that tab's page. The window's header says what it is following: Following: and the project's name, or Following: no project when the tab is not on a project — then name the project when you ask about one. On a project page that shows only an access notice, it reads Following: a project. If you close the tab it was following, it goes back to the tab you used before that, or to no project when none is left.

Links in the pop-out open in that same tab. Clicking a project or permit in a result card, or a link the assistant wrote in its answer, opens it in the Endulo tab the pop-out is following, and the pop-out stays on your conversation. That tab tries to come to the front; if your browser does not allow it, the page has still changed there, so switch to it yourself. When no Endulo tab is open, the link opens in a new tab. Links in the docked panel, and in the assistant on a phone, open in place as before.

To return, press Pop back in in the window's header: the window closes and the panel docks again in the tab you popped it out from. Closing the window any other way also returns every tab to normal, and the next ⌘K docks the panel with the conversation the window left behind.

20.11 AI Allowance and Personal Ceiling

Assistant use is measured in AI Credits, worked out from what each question actually cost to answer, so a short question uses less than one that searches several projects. Your organization has a monthly AI Allowance: one share for every active member, pooled, so colleagues who ask a lot draw on what others leave. A pending invitation or a removed member is not a seat; when someone joins mid-month, their share is added at once. The allowance renews on the 1st of each month (00:00 UTC).

Inside the allowance, each member has a Personal Ceiling: the most one person may use in a month, two shares unless your organization changes it, so nobody empties the pot alone. In an organization of one or two, two shares is already the whole allowance, so the ceiling changes nothing.

Below the message box, the assistant shows how much of what you may use this month is used, as a percentage of the limit that will stop you first, and when it renews. It is never shown as money. A question already being answered always finishes, even if it takes you past a limit; the next one is refused. When your organization's allowance is used up, the assistant says so and when it renews. Before it renews, only Endulo can raise it, by adding extra credits for the current month: the assistant answers again from your next question, and the extra credits do not carry over into the next month. When you reach your Personal Ceiling, it says that you have reached your own monthly limit, when it renews, and who in your organization can raise it.

Someone with Organization at Editor sees the whole organization's use this month, member by member, and changes or removes the Personal Ceiling under Settings → Assistant (§16.13).

20.12 Naming a Task by its Reference

Every task has a Reference — T-1482 — and the assistant speaks it. Say one and it names exactly one task: "mark T-1482 as done" needs no search and leaves no room for the assistant to pick the wrong "DTAC one". It takes the Reference in whatever form you read it out — T-1482, t1482, T 1482, #1482 or a bare 1482 — the same forms the search box takes, because there is nothing stricter to remember in the chat than in the box. Everywhere a task can be named to the assistant takes one: marking it done, changing its assignee, due date, priority or description, and logging hours against it.

Asking about one works the same way: "what is T-1482?" searches by the Reference rather than by title, matching exactly on the number, so 1482 finds T-1482 and never T-11482. A number that is also somebody's title returns both, the exact match first. Titles still work exactly as they did — a task you can only describe is still found by describing it.

The assistant answers with References too. Every task it lists carries one on its card, clickable to copy exactly as it is everywhere else, and a task it just changed or created is confirmed by its Reference — so the sentence you read back is the sentence you can send to a colleague. A task the assistant creates for you is named by the Reference it was minted with, which is how you learn what to call it.

A Reference nothing carries is answered plainly: the assistant says it found no such task and changes nothing, rather than acting on whichever task has the nearest-looking title. A Reference from another organization is the same answer — References are counted per organization, so another firm's T-1482 is not a task here — with one exception: a task on a joint project you are staffed on (§16.11) is named by the owner firm's Reference, never renumbered into yours, and it reaches you exactly as it does in the search box (§20.25). Because each firm counts its own, your firm and the owner firm can both have a T-12; when a Reference you name could be either, the assistant does not pick one. It changes nothing, lists both — each with its title, its project's code and number, and the firm it belongs to — and asks which you meant (§20.17). And naming a task by its Reference gives no one any reach they did not already have: a role whose Tasks are Hidden gets the same refusal it gets for every other task question, and a role at Viewer on Tasks is still refused the write.

20.13 General Tasks in an Answer

Everything the assistant reads about tasks includes general work (Section 6.7): "what are my open tasks", "what is overdue", and a search by title or Reference all reach a general task as readily as a project one. On the card it names, a general task reads General where a project task reads its project and its phase, so a listing of your week shows office work beside project work rather than hiding it. Writing works the same way — marking one done, changing its assignee, due date, priority or notes — and naming one by its Reference needs nothing extra, because a Reference names the work in every shape and never changes when the shape does.

Narrowing a question to one project excludes general tasks, because a general task is on no project: "what is overdue on Florescu" answers about Florescu alone, and "what is overdue" answers about everything.

20.14 Updating Task Status

Say "mark T-1482 as done", or "mark [task name] as done" if you do not have the Reference to hand. Given a Reference the assistant goes straight to that task; given a title it searches first, and if several tasks match it asks which one you mean. Nothing changes yet: the assistant shows an approval card naming the task and its status before and after, and the status changes only when you click Approve (§20.24). The result card then confirms the change and names the task by its Reference.

20.15 Updating Task Details

You can ask the assistant to change a task's assignee, due date, or priority. Examples:

  • "Assign the permit task to Stefan"
  • "Set the due date on the design review to 15 August"
  • "Change the priority of the foundation inspection task to high"

For assignment by name, the assistant will look up the team member first. Naming the task by its Reference — "assign T-1482 to Stefan" — skips the search for the task itself. Nothing changes until you approve: the approval card lists only the fields that will change, each as it is now and as it will be — the assignee by name, or Unassigned when you clear it, and a cleared due date as No due date (§20.24).

20.16 Updating Phase Status

Say "mark the [phase name] phase as started/complete/reopened". The assistant looks up the project and phase, then shows an approval card naming the phase, its project by code and number, and the status before and after — Pending → In Progress for a start — and the status changes only when you approve (§20.24). Examples:

  • "Start the Design Development phase on the Florescu project"
  • "Mark the Permits phase as complete"

20.17 Logging Time

Say "log [N] hours on [project]" and optionally include a phase, task, or date. Before anything is logged, the approval card shows the hours, the day — today on your own clock when you named none, and a day such as "yesterday" or "last Friday" counted back from it (§20.26) — the project or General, the phase and task if any, and the description; the entry is recorded for your account when you approve (§20.24). Logging time needs no permission beyond the project, so a Viewer sees the same card as everyone else. Examples:

  • "Log 3 hours on the Ionescu Office project"
  • "Log 2.5 hours on the design phase of the Florescu project for yesterday"

The task can be named by its Reference: "log 2 hours on T-1482". A phase or task you name has to belong to the project you named. If it doesn't, the assistant says so and logs nothing rather than filing the hours against something on another project.

If your firm is a partner on another firm's joint project and you are staffed on it, you can log hours on it here too — "log 2 hours on Vila Lac", optionally naming one of its phases or tasks. A joint task is named by the owner firm's Reference, and named on its own — "log 2 hours on T-12" — its hours go on its own joint project. If your firm has a T-12 as well, nothing is logged and no approval card appears: the assistant lists both tasks, each with its project's code and number and its firm, and asks which you meant; once you say, it logs against that one, with the usual card. The rules are the Time page's (§16.11): staffing is all it takes, whatever your grade; a joint project that has been deleted, or one you are not staffed on, is refused as if it did not exist; a closed one still takes late hours. The approval card names the project by its code and number with Joint Project of the owner firm beside it, and adds Hours are recorded in your firm. [Owner firm] does not see them. — the entry is saved in your own firm, under your own rates and schedule, and never appears in the owner firm's hours, nor in anything the assistant tells them.

20.18 Creating Tasks

Say "create a task [title] in the [phase] phase of [project]". The assistant will look up the project and phase, then create the task. You can also say "assign it to me" and optionally add a due date. Before the task exists, the approval card shows its title, where it will go (General, a project, or a project and phase), its priority — Medium when you named none — its due date, and whether it is assigned to you; nothing is created until you approve (§20.24), so a denied card spends no Reference. Once approved, the result card confirms the task name and phase, and leads with the Reference the new task was minted with — that is what to call it from now on.

The assistant creates all three shapes a task can take (Section 6.7), and what you say decides which. Name a project and a phase and the task is filed in that phase. Name a project alone — "add a task to the Florescu project to chase the survey" — and it lands on the project with no phase, in the No phase group at the end of its board. Name neither — "add a task to renew the printer contract" — and it is a general task, belonging to the office and to no project; the card then confirms the Reference with no phase beside it. The assistant will not invent a project for work you did not put on one. A phase you name has to belong to the project you named: if it does not, the assistant says so and creates nothing.

Assigning works the same way in each shape, with one difference: a project task can only be assigned to somebody on that project's Project Team, and a general task can be assigned to anyone in the organization, because there is no Project Team to be on.

20.19 What the Assistant Cannot Do

The assistant can update task status and fields, mark phases as started or complete, create tasks in any of their three shapes, and log time and read it back. It cannot delete data, change project settings, or manage documents. Editing or creating tasks needs Tasks at Editor and marking a phase needs Phases at Editor, so a role at Viewer on those areas asking for them is told so by name. Logging time is the exception: your own hours are your own data, so any member can log them — exactly as they can on the Time page.

On another firm's joint project you are staffed on, the assistant finds its tasks and logs your hours (§20.17) — and does nothing else. Its tasks, phases and status belong to the firm that owns the project, so asking the assistant to change a joint task's status, assignee, priority, due date or description, to mark one of its phases started or complete, or to create a task on it is refused straight away, with no approval card, in a sentence naming the task, the project's code and number and the firm it belongs to — "T-12 "Plan de situație" is on VL 007/2026, a Joint Project of Birou Ionescu" — never as "not found". Make the change on the project's Phases tab if your firm's access allows it (§16.11), or ask the owner firm. If your own firm also has a task with that Reference, the assistant first asks which one you meant, as it does when logging time.

Note: project budgeting features (budget tab, vendor quotes, fee tracking) are temporarily disabled in this version of the app. If asked about them, explain that they are not currently available.

20.20 Prompt Caching

To reduce API costs, the AI assistant's system prompt is written so the AI provider can cache it. It carries this guide's table of contents, not the guide itself — the assistant reads the subsections it needs when you ask (§20.22). Nor does it repeat what each of the assistant's tools does: that description is sent once, with the tools themselves. After the first request, repeated context is served from cache at roughly 90% lower cost per token. Cache hits are tracked alongside regular token usage.

The cached part holds nothing specific to you or your organization, so one cache entry serves everyone rather than one per person. Your role, the project you currently have open and today's date (§20.26) are sent separately, outside the cached part — the assistant still knows all three.

20.21 Where Your Questions Go

What you ask the assistant, and the project data it reads to answer, is processed in the European Union and kept by no one. Every question goes through OpenRouter's EU service: it is handled in the EU and passed only to AI providers running in the EU, and every request requires zero data retention, so the provider keeps neither your question nor its answer. The assistant uses GLM 5.3 Flash, an open-weight model, and Mistral Large 3 when GLM cannot answer; both run in the EU.

There is no route outside the EU. If no EU service can answer — the AI provider is down, or briefly over capacity — the assistant says The assistant is unavailable right now instead of answering from somewhere else. Try again later; nothing you asked has been sent anywhere else.

What each question cost is recorded against the firm you are working in when you ask it, for the month — not against every firm you belong to. If you belong to two firms, a question asked in one is that firm's alone; working on a partner firm's project counts against your own firm. The record holds how many questions you asked and what they cost, never what you asked.

20.22 Answers from the User Guide

When you ask how to do something in Endulo — where a setting lives, how a feature works, what a screen is for — the assistant reads the part of this guide that covers it and answers from that, in its own words. While it reads, the panel shows Reading the user guide. A question that spans two areas, such as inviting a partner firm and giving them access to a phase, is answered from both subsections.

The assistant does not carry the whole guide with every message. It knows the guide's table of contents — every numbered subsection, like 16.4 Roles — and reads only the one or two a question needs, which is what keeps a question about your data, or a request like "mark T-1482 done", from paying for documentation it never uses, and makes your firm's AI Allowance (§20.11) last longer.

Under an answer from the guide, the panel names where it came from: one chip per subsection the assistant read, such as From the guide: 16.4 Roles. Click it — or reach it with Tab and press Enter — to open that subsection of this guide in a new tab, to check the answer or read the full instructions; the conversation stays where it was. The chips are drawn by the panel from what the assistant read, not written by the assistant, so they cost nothing from your AI Allowance. An answer from the guide shows no data card and no suggested follow-ups (§20.6), since there is no data to follow up on.

If no part of the guide covers your question, the assistant says so plainly rather than answering from the nearest-sounding subsection. Anyone can ask, whatever their role: the guide is the same text that /manual shows.

A subsection is paid for in the message that reads it, not in every message after it. Once you ask something new, what the assistant read earlier is reduced to a note of which subsections it was — say, read 16.4 Roles — so a long conversation does not keep carrying guide text it has already used. If a follow-up needs the details again, the assistant reads that subsection again, and you may see Reading the user guide a second time. Nothing changes in the panel: the conversation you scroll back through still shows every earlier answer as it was.

20.23 Asking About Your Hours

The assistant reads back the hours you have logged, not only logs them. Ask "how many hours have I done on BA2 this year?", "where did my hours go last month?" or "how much General time did I log this quarter?" and it answers with the total and where the hours went — by project with General first, or by phase when you asked about one project — and a link that opens the Hours tab on the Time page (§10.2) on exactly the same filters. The figures are the ones that tab and its Export show for those filters, because the assistant reads the same report; following the link shows you the numbers it quoted. While it reads, the panel shows Reading hours, and the answer comes with a card showing the total, each row with its share, and the link.

It starts where the Hours tab starts: with no period named it means this month, and with nobody named it means you. Name a period in words — this month, last month, this quarter, this year — or give two dates; a period in words is worked out on your own today (§20.26), so late on the last day of a month it is still that month; narrow it to projects, General, phases or tasks the way the tab's filters do. It needs Projects at Viewer, the same as the Hours tab.

Your own hours are always yours to ask about, on every project you logged them on — a project whose team you have since left included. A colleague's hours are another matter, and the rules are the tab's: only someone holding Can see everyone's hours (§10.5) can ask about them, and then only on projects they can see themselves, plus everyone's General hours. Asking about the team's hours on a project you have left, the assistant tells you its figure is your own hours alone there, rather than passing it off as the team's. Such a member can ask "who worked on GAV last month?" and get the answer broken down by member. Anyone else naming a colleague is told they can read only their own hours and who in the firm can see everyone's — never a total of zero, which would wrongly say that colleague logged nothing.

The answer is hours only: no rate or cost is ever read or shown.

20.24 Approving a Change

When you ask the assistant to change anything — a task's status or details, a phase's status, a new task, or hours logged — it does not change it straight away. The chat shows an approval card describing exactly what will be written, and nothing happens until you answer it.

Because the card is where you confirm, the assistant does not ask "shall I?" in the chat first: when your request is clear it goes straight to the card, so a "yes" never costs you a message. It asks in the chat only when your request leaves something open — which task or which project you mean, or a value you did not give.

The card names things the way the rest of Endulo does: a task by its Reference and title, a project by its code and number — or General for work on no project — with the phase beside it, and a colleague by name. What it shows depends on the change:

  • A task's status — the status as it is now and as it will be, such as To Do → Done (§20.14).
  • A task's details — only the fields that change, each old → new: the assignee (Unassigned when cleared), the due date (No due date when cleared), the priority, the description (§20.15).
  • A phase's status — the phase, its project, and the status before and after, such as Pending → In Progress (§20.16).
  • A new task — its title, where it goes, its priority, its due date, and whether it is assigned to you (§20.18).
  • Hours — how many, which day, the project or General, the phase and task if any, and the description (§20.17).

On a joint project a task or phase card adds one line naming the partner firms that will see the change — Visible to Atelier Popescu, or several firms — because a wrong change there is read outside your firm at once (§16.11). It names only firms that actually see the record: a partner firm that has staffed nobody on the project, or one the project is no longer shared with, is not listed. There is no such line on your firm's own projects or on General work, and none on hours, which a partner firm never sees.

The card is drawn by Endulo from the records themselves, the same lookup the change will use, not written by the assistant, so what you read is what will happen. If a task or phase cannot be found, or you cannot reach it, or the change cannot be made — a phase already started, a phase you name that belongs to another project — the card says so before you click and offers no Approve.

  • Approve makes the change. Endulo checks again at the moment you click, so if a colleague changed the record in the meantime, the change is made against it as it now stands, and anything that no longer applies is refused rather than applied. The assistant then tells you what was actually written — including that the phase started, when the task was the first in its phase to leave To Do (§20.14).
  • Deny writes nothing. The card turns to Not changed, and nothing is sent to the assistant, so a denial costs no AI Credits.
  • Typing instead counts as Deny. If the card got it wrong, just write the correction — "no, T-1483" — and send it: the waiting card greys out as Not changed, and the assistant reads your new message knowing the change was not made. The message box is never locked while a card waits.

When one request asks for several changes — "create tasks for the survey, the measured drawings and the permit pack" — each change gets its own card, and you can approve or deny each one on its own. With two or more cards waiting that show a change, an Approve all button under them approves those at once; it appears once every card has finished checking, and it never approves a card you did not see described. A card that shows why the change cannot be made, or that could not be checked, offers only Deny, so Approve all answers Deny for it. Nothing goes back to the assistant until every card in the reply has an answer; then it all goes together, once, and the assistant tells you in one reply what was written and what was not. Until then an approved card says it is waiting for your answer on the others; while the change is being made it says so, with a spinner. Typing instead while some cards are still waiting counts as Deny for those, and for any you approved alongside them.

If an approval does not go through — the connection drops, or the page reloads before the change is made — the card says it has not gone through and that nothing has been changed, and a line under the reply says the same, with Try again beside it. It is not lost: your next message sends the approval first, and the change is made before the assistant reads what you wrote.

Approving is not a second question: the reply after you click is the same message finishing, so it counts once against your Personal Ceiling (§20.11), and an approved change is made even if the allowance ran out between the card appearing and your click.

If your role cannot make the change — editing or creating tasks, or marking a phase — there is no card to click first: the assistant tells you straight away that you lack the permission, and names it (§20.1). Logging your own hours needs no permission, so everyone, a Viewer included, gets the card. An old card in a conversation you return to is never applied later — a card you did not answer before moving on stays Not changed.

20.25 Joint Work in an Answer

If your firm is a partner on another firm's joint project and you are staffed on it (§16.11), the assistant reads your work there the way the pages beside it already do. "What are my open tasks" includes the joint tasks assigned to you, exactly as your My Work board does (Section 6) — an unassigned task on the project is not yours, so it is not listed, and a closed or deleted joint project drops out. A search by title or Reference reaches any task on a joint project you are staffed on, assigned or not, exactly as the search box does. A joint project you are not staffed on is not searched at all: the assistant shows you nothing of a project whose page would show you an access notice.

A joint task always says whose it is. Its card names the project by its code and number and adds the owner firm beside it — BD 2026-003 · Atelier Nord — and the assistant names the firm when it talks about the task, because a joint task's Reference is the owner firm's numbering, not yours: your firm's T-12 and the owner's T-12 are two different tasks.

Changing a joint task's status or details, or creating a task on a joint project, stays on the project's own pages.

20.26 Today's Date

The assistant knows what day it is, on your own clock. With every message the chat sends your browser's time zone, and the assistant is told today's date and weekday in that zone — Today is Friday, 2026-10-09 (time zone Europe/Bucharest) — but not the time of day. So "log an hour for today" lands on today, and "yesterday", "last Friday" or "next Monday" mean the days you mean: an hour logged at half past midnight in Bucharest is filed on the day that has just begun, not on the one the server, which keeps UTC, is still in. Travelling, you are answered in the zone your browser is in now.

The same date is used throughout one answer: what the assistant is told, the day Log Time files hours on when you name none (§20.17) — on the approval card as well as in the entry it writes — the day a task is judged overdue on (a task due today is not overdue yet, as in §6.2), and by how many days, the day a permit's flag is judged on (§5.2), and the month, quarter or year a question about your hours means (§20.23) are all worked out once per message from the same value, so they never disagree. If your browser sends no time zone, or one Endulo does not recognise, the assistant falls back to UTC quietly rather than failing — for the first hours after midnight in Romania that is still yesterday, so name the date if it matters.


21. Using Endulo on Your Phone

Endulo runs in the browser on a phone — there is no app to install — and it is designed for a desk. That is a deliberate choice rather than an unfinished one: nobody runs a practice from a phone, and a settings page on a phone is a cramped version of the same page you use on a laptop. What a phone is for is a short list, and those pages are held to a floor: the public pages anybody reaches without an account; the four pages that arrive by email — the client portal, an invitation to join a firm, a partnership invitation, and the calendar-feed subscribe page; and the handful of things you do between desks — Home, My Work, your notifications, the Time page, and the phase board a notification opens on the task it is about. On those pages nothing is wider than your screen, no name is cut short (a task's title, a project's name and number, a person's name wrap onto a second line rather than ending in an ellipsis, though a description or a comment preview may still be shortened), every control is big enough for a thumb and none of them waits for a mouse to hover (a link inside a sentence is the deliberate exception — it keeps the height of the line it sits in, because a fingertip-sized one would prise the sentence apart), and a table that drops its column headings gives each value its own label. Everywhere else — a project's tabs, the Gantt, the libraries, Team, Settings, a dashboard — you get the desktop screen on a small display: cramped, but working. Where something is genuinely too wide — a table, a tab strip, the Gantt — it scrolls inside its own box rather than dragging the whole page sideways with it. Nothing tells you a page is desk work; if a page is hard to work on from a phone, the page shows you that better than a notice could.

The rest of this section is what the product actually does differently on a phone.

21.1 Bottom Navigation

The sidebar is replaced by a bottom navigation bar with five destinations: Home, My Work, Workspaces, Team, and Notifications. The Notifications icon shows your unread count.

21.2 My Work Board

In board view, the four status columns become tabs — tap a status to see its tasks. Drag-and-drop is disabled on touch screens; instead, tap the menu button on a task card and choose "Move task" to change its status. The list view stacks each task into a two-line card with the status, priority, and due date controls beneath the title; tapping the status opens the same bottom sheet the phase board's task rows open.

21.3 Calendar

The Time page calendar opens in a week-list view on phones, which is easier to read than the month grid. You can switch to the month view from the toolbar. The person filter and Add Meeting button work as on desktop, and the Task box that hides your tasks (see 10.3) sits above the calendar on phones too.

21.4 Tables Become Cards

Leave request tables and phase task tables display as stacked cards on phones, with the same inline editing (status, priority, due date, assignee) available by tapping each field. The task list on a person's profile in Team stacks the same way.

On the two task tables the column headings go with the table, so each value on a stacked row carries its own small label above it — the same words the column heading says — and a row never reads as a line of unlabelled words. The task's title and the project it belongs to name themselves and carry no label. A leave request stacks differently: it is not a reflowed table but a card, and its status badge, date range and day count are told apart by where they sit. Dates and figures are punctuated exactly as they are on a desktop; the device changes nothing about them.

Wide tables elsewhere in the app scroll sideways inside their own container. A table you can scroll is not a broken page — the whole row is there, it simply does not fit at once.

21.5 Forms and Dialogs

Create and edit dialogs open full-screen on phones, with the action buttons pinned to the bottom of the screen above the keyboard. The buttons that confirm and cancel are always reachable, so you are never trapped in a half-finished edit.

21.6 Project Pages

The project tab strip scrolls sideways, fades at the edge to show there is more, and automatically brings the active tab into view. The Gantt timeline keeps a narrow phase-name column and scrolls horizontally. Task selection checkboxes and action menus are visible without hovering. Phase reordering by drag works on a touch screen, as does reordering the phase catalog in Settings. The two tree editors — the Project Brief and Settings → Brief Templates — are the exception: their rows are dragged by a mechanism no touch screen fires, so rearranging a Brief is a desktop gesture.

In the Project Brief editor, the Add subsection and Add parameter buttons lose their text on a phone and keep their icons — a row carrying both words needs a third line, and the tree's rows cannot grow one. Both are still named to a screen reader and on a long press.

21.7 Client Portal

The client portal is phone-friendly — clients can read phase updates, browse image galleries, leave comments, and respond to approval requests from any device, with every control sized for a thumb. The print button is available on desktop only.

21.8 What Is Not Promised

There is no Endulo app to install, on any store, and nothing works offline — the browser is the app, and a connection is required. Tablets are not designed for either: a tablet gets the desktop layout, which is usually what you want on one. Nothing is designed for a folding phone's cover screen, though it is close enough to a phone's width to get the same treatment as a side effect.

Ready to bring order to your practice?

Join architecture firms already using Endulo to run projects with precision.