Skip to main content




Contracts are sub-objects of Persons objects. They contain the person's employment details. Each person object can have zero, one, or multiple contracts. Each contract specifies a single term/position of employment, including job title, start date, end date etc. Contract fields, which you define in the Persons import script must be mapped onto the Contract schema in Source mappings.

To get started, View a person's contracts. Or, Map person/contract fields.

Contracts include Departments as sub-objects, which you define in the Departments import script.

Current contract data is determined by the latest snapshot. See Snapshots.

You can use contracts in the following ways:

  • In Conditions of Business rules, to narrow the scope of a business rule.

  • In target system mappings and/or account scripts

  • In Sub-permissions, to dynamically select sub-permissions based on the contract(s) that are currently in-conditions of the associated business rule.


A contract is Active if the current date falls between the contract's StartDate and EndDate.

When the Person status of a business rule is set to Active, all of a person's active contracts are used in Contract conditions—not only their Primary contract.


A contract is Inactive (also called Past) if the current date does not fall between the contract's StartDate and EndDate.

Inactive contracts are only used in business rule conditions if the rule is set to apply to Inactive persons.

Primary contract

If a person has only one contract, that contract is the primary contract. If a person has more than one contract, the primary contract is determined by the primary contract determinant (see Set the primary contract determinant).

If the primary contract determinant would select an Inactive contract for a person's primary contract, HelloID attempts to choose the next closest match which is Active. If a person has no active contracts, then their primary contract will be an inactive contract.


Custom contract fields can be selected as the primary contract determinant, but only for fields which contain string data.

Primary contracts are used in the following ways:

  • The primary contract's manager field determines the person's Primary manager, if the primary manager option is set to From Primary Contract.

  • You can access the primary contract in PowerShell using the shortcut $person.PrimaryContract. instead of having to index into the array (.contracts[0].).

  • Primary contracts determine who becomes the main person in Automatic merges.