Hierarchies are groups of users, and are structured like a tree. Hierarchies can be created both in Itslearning through the UI as through IMS-ES, but Hierarchies created trhough the UI cannot be changed in IMS-ES. This is because these Hierarchies do not have a SyncId, and this cannot be assigned later on. The only exception to this is the main organization, as it needs a SyncId as a parent Hierarchy.

Hierarchies have the following properties:





Unique identifier for this Hierarchy.

(also known as Synchronization Identifier)

Required, max length is 255.


The Title of the Hierarchy, this is what will be shown in Itslearning.

Required, max length is 64.


A description of the Hierarchy, this property is not really used in Itslearning.


The SyncId of the parent Hierarchy, the Hierarchy one level above.



Type of the Hierarchy, can only be read. (see below)


True/False if the Hierarchy will be visible in searches, for example when selecting users to send an email to.


The Course that is attached to this Hierarchy, or null if none.


An external identifier (LegalID) of an organisation. Can be sets only for hierarchies with the type 'School' or 'Site'.

Max length is 50.

Group Types

With the introduction of CourseGroups in IMS-ES, all IMS-ES groups have a GroupType. This type can be the following:

  • Site (the main organisation, cannot be changed)
  • School (also known as organisation)
  • Hierarchy
  • Course
  • CourseGroup

In the IMS-ES template CourseGroups have their own objects, and A Course is always linked to a Hierarchy object (which will therefore have the Course group type). These Group types cannot be set when a Hierarchy is already created. When creating a Hierarchy, you have the option to specify that the Hierarchy is a school, see below. Otherwise the Hierarchy will be of type Hierarchy. When you add a Course to a Hierarchy, the type will become Course.

Creating a Hierarchy:

As with creating a user, when you are creating a new Hierarchy the SyncId must always be given. The other properties can be set later on, or when defining the object:

var newHierarchy = new Hierarchy(“syncId”)
Title = “Title”,
Description = “Description”,

If the Hierarchy needs to be defined as a School (an organisation) the following constructor can be used:

var newHierarchy = new Hierarchy(“syncId”, true)
Title = “Title”,
Description = “Description”,
LegalId = "legal_id",


In the IMS-ES Template the following functions are connected to a Hierarchy:

  • CreateHierarchy
  • CreateHierarchies
  • ReadHierarchy
  • ReadHierarchies
  • ReadHierarchiesFromUser
  • UpdateHierarchy
  • UpdateHierarchies
  • ReplaceHierarchy
  • ReplaceHierarchies
  • ChangeHierarchyIdentifier
  • ChangeHierarchyIdentifiers
  • DeleteHierarchy
  • DeleteHierarchies