What the tree is built from
The organization chart in Quevell is not a separate structure to maintain alongside reality. The tree is built from one fact in the profile: who reports to whom.
The company marks one of its profile fields of the person kind as the manager field. Everybody who fills it in stands under the person they named; everybody who leaves it empty stands at the root. There is no separate hierarchy to forget to update — an HR system writing that field through the API moves the tree by itself.
The manager field
- Only a field of the person kind can be the manager field, and only one per company. Choosing a new one takes the title from the old.
- It is chosen and cleared by whoever holds the right to edit the chart. That is its own right, not part of configuring fields: one fact, one door.
- Nobody reports to themselves — such a value is refused on entry.
- A manager who left the company is no manager: their people rise to the root of the tree rather than hang under somebody who is not there.
Who sees it
The tree names every person in the company and draws the lines between them, which is a different level of knowledge than "my project colleagues". Viewing the chart is therefore a right that is granted; company administrators hold it by what they are.
Under a person's name the tree shows the values of profile fields flagged to appear on the chart — a job title, say. Only what is filled in is shown.
Cycles
A company where A reports to B and B reports to A is one careless evening away from any company. Such people are named beside the tree rather than silently dropped from it: a tree that quietly forgot four people is a tree nobody can trust, while a tree that names the four can be fixed. People in a cycle stand nowhere in the tree until the cycle is broken.
The chart in search
The tree answers QQL through two functions:
assignee in (myReports())— the issues of my direct reports;assignee in (myVertical())— the issues of everybody under me, any depth.
Both resolve for whoever runs the query: a filter saved by one manager shows another manager that manager's own people. People standing in a cycle report to nobody and hold nobody for these functions.
This is deliberate, instead of "your report was assigned an issue" notifications: a manager looks at their people's work when they choose to look, and nobody's inbox fills up by itself.
Teams are not the tree
Teams in Quevell live apart from the reporting lines: people assemble a team themselves, and it owes nothing to the management chain. The myTeammates() function answers by teams, not by the tree: everybody in every team you are in. Project rights do not follow from the tree either — they are granted by project roles, to a person or a group.
Offboarding
When somebody leaves, an administrator sees what they hold and hands all of it to a named successor in one step. The handover happens whole or not at all.
What moves: open assignments, open issues they are the reporter of, project roles, automation rules, personal pages and saved filters. Roles move rather than being copied: no personal role in those projects is left behind. Access through a group is a separate thread and a handover does not touch it — somebody who is in a group that holds a role in a project keeps seeing the project through the group. Where the successor already held a role in a project, theirs stands: a handover widens what somebody can reach and never lowers it.
Authorship never moves. Issues, comments and attachments stay signed by whoever made them, and an assignment on a finished issue stays too: it is the record of who finished it.
The tree then does what is described above: a deactivated manager stops being one, and their people rise to the root. Their manager field is not erased — if the person comes back, the lines return.