This feature is part of Moodle Workplace, which is available through Moodle Partners.
Organisation structure is a combination of three Moodle Workplace features: departments, positions and jobs.
We can use departments and positions hierarchies to define any organisation structure and define all reporting lines, assigning jobs to employees in any department with any position.
Having an organisation structure can help the tenant administrator to:
- Create dynamic rules that automatically do something based on a users position or department (for example, enrol them in an induction course)
- Create custom reports that have a specific department (or position) as their audience
- Filter/search lists of users within the organisation based on their position and department
- Create team managers by assigning jobs with "global manager" or "department manager" positions to users
Having a manager position means that:
- Your team list is displayed on your dashboard
- You are able to allocate your team members to programs and certifications without any capabilities (if enabled in the position settings)
- You are able to view custom reports on your team members without any capabilities (according to configured report audience settings)
- You can receive notifications about completions/overdue certifications (if enabled in the position settings)
Departments and positions
Departments and positions can be grouped together into frameworks. There can be different use cases for the frameworks - they can be used to create completely isolated sets of departments, for example one framework could be based on physical location and another one on a team within an organisation. Frameworks can also represent sub-divisions of a big organisation.
Both position and department structures can be hierarchical, however it is more likely that the organisation would have only one of them hierarchical and another one as a flat list.
Positions have additional properties that are called "Global manager" and "Department manager". See the following example for an explanation:
Adding new departments
Departments must be created inside a department framework. If there are no department frameworks created at this point, click on "New framework" to create a new one.
Click in the "+" icon to add a new department inside the framework. Notice that all departments also have a "+" icon: by clicking on it, a sub-department will be created.
Adding new positions
Positions must be created inside a position framework. If there are no position frameworks created at this point, click on "New framework" to create a new one.
Click in the "+" icon to add a new position inside the framework. Notice that all positions also have a "+" icon: by clicking on it, a sub-position will be created.
Each position can have different roles and permissions to the users that have these job positions assigned to.
These are the available permissions:
- Allocate users to programs/certifications
- View user reports
- Receive notifications
These permissions can be assigned to Managers, Department leads or both.
A person with the manager job will be considered a manager of anyone in a lower position, regardless of their departments.
A person with the department lead job will be considered a manager on anyone in the same department or sub-department, regardless of their position.
Example 1: Organisation structure hierarchy based on positions
The company chooses to store their hierarchy in the "Positions" tree. The CEO is the top position, underneath are the CTO and CFO. Managers of several technical teams are under the CTO, and members of these teams are under these managers. This means that there are separate positions in the hierarchy for "Members of team A" and "Members of team B". The same company uses departments as physical locations (countries, cities or rooms). They may or may not have a hierarchy. In this structure all positions that have "children" will be marked as a "Global manager". This will allow people who hold jobs in these positions to see everybody in the positions below them as their team. It's probable that the CEO does not need to "Receive notifications" from everybody in their company but they may need to see reports on them.
Example 2: Organisation structure hierarchy based on departments
In this company departments represent different divisions and teams inside the company. Their structure is hierarchical. There are several positions, such as "Facilitator" and "Staff member". The "Facilitator" position has the "Department manager" checkbox enabled. When people get assigned jobs in different departments, the facilitators will be able to see everybody from their department as their team.
It's possible to create more complex structures with hierarchies in both positions and departments, and also positions that are both "Global manager" and "Department manager".
When the organisation structure is defined, the tenant administrator can assign jobs to different users. As shown in the examples above, when somebody is assigned a job that has manager permissions they are able to see other users from their team.
One user can have multiple jobs and be part of multiple teams.
A job represents the current job that an employee is performing, consisting of a position within a department. Actual employees' jobs can change over time, people can be promoted or transferred from one department to another. However once a job is created it is not possible to change its department and position. It is also not recommended to delete any jobs (unless they were created by mistake). Instead, the tenant administrator should set the "End date" on the current job and create a new job in the new position or department. Most reports will only show "current jobs" (i.e. those that are active at this moment in time) and automatically hide past jobs. However for historical purposes it is very useful to keep a history of all jobs that employees have had.
Permissions to be a team manager or allocate users to programs are always taken from the current user's jobs (when current date is between job's start and end date).
Automation and integrations
To create departments and positions in bulk you can use Migrations tool. There are CSV importers available and via both web and CLI interfaces. Import wizard allows to specify how columns in the CSV file should be mapped to the properties of departments and positions. Only name is required, the smallest working CSV file can have only one column
It is also possible to use Web Services:
Parameters descriptions are available inside Moodle itself - see Using web services
The Upload users tool was enhanced in Moodle Workplace and it includes functionality to assign users jobs in bulk or change existing jobs (set the end date).