Skip to main content

Objective Types (Strategic Objectives)

N
Written by Nina Hancock

Overview

Objective Types is a system that allows organizations to categorize objectives into named types (e.g., Company Objective, Initiative, Department Goal). Each type has a scope — either Strategic or Individual — and can be configured with a color, a set of administrators, and rules about which other types can act as parents in the objective hierarchy.

This feature enables organizations to model multi-level goal structures where strategic objectives sit above individual-level ones, and where creation and edit permissions are controlled per type.


Key Concepts

Scope

Scope

Description

Strategic

Org-level objectives. Managed by type administrators. Can have zero collaborators.

Individual

Personal objectives tied to a specific person. Must always have at least one collaborator (the owner is added automatically on creation).

There can only be one Individual-scoped type per organization. There is no limit on Strategic types.

Type Hierarchy

  • Each type can define which other types are allowed as parent types (link_parent_types).

  • A type can only link to parents at the same or higher scope level (Strategic ≥ Individual). An Individual type cannot be the parent of a Strategic type.

  • An individual type always has itself as an allowed parent (self-link, enforced automatically).

Administrators

  • The administrators field, is a filter that defines who can administer a given Strategic type.

  • If administrators is left empty, the type is open by default — anyone can pick it when creating a new objective (edit rights then come only from being a collaborator).

  • Admin authority cascades downward: if a person is an admin of type A, and type B has A as an allowed parent type, that person also becomes an implicit admin of type B.


Configuration (Admin)

Location: Admin → Objectives administration → Objective Types

Only users with the OBJECTIVES_ADMIN role (or superusers) can create, edit, or delete objective types.

Fields

Field

Required

Notes

Name

Yes

Must be unique per organization. Max 100 characters.

Description

No

Free text, describes the purpose of the type.

Color

Yes

HEX color used as a visual badge for the type.

Scope

Yes

Strategic or Individual. Not editable on an existing Individual type.

Owner

Auto

Set to the creating user. Read-only in the form.

Administrators

No

People filter (JSON). Strategic types only. Leave empty to allow everyone to pick this type.

Allowed parent types

No

Determines which types can be set as parents. Only types at the same or higher scope level are shown.

Constraints and Validations

  • Deleting a type is blocked if any objectives are currently assigned to it. The error message shows how many objectives use the type.

  • Individual scope: only one per organization is allowed. The form defaults new types to Strategic.

  • Link parent types: a type cannot link to a parent type at a lower scope level (e.g., a Strategic type cannot have an Individual type as a parent).

  • When editing an Individual type, the self-link in link_parent_types is always preserved automatically (enforced on create and update).

Visual Hierarchy Graph

The admin page includes a link graph (D3-rendered) showing how types are connected through their allowed parent relationships. Clicking a node in the graph opens the edit modal for that type.


Where Objectives Appear in the UI

Section

What is shown

Who can see it

Company → Objectives → Strategic Objectives

Strategic objectives, grouped by type

Admins of the ObjectiveType, or users with the OBJECTIVES_ADMIN role

Company → Objectives → Overview – All

All objective types (Strategic + Individual)

Based on chain of command

Company → Objectives → Overview – My team / reports / objectives

Individual-scoped objectives only

Based on chain of command

Profile → Objectives

Individual objectives of the profile owner

Owner, their managers, and admins

Profile → Sidebar panel "View strategic objectives"

Strategic objectives of the org, grouped by type

Only if a collaborator of the objective is in the viewer's chain of command

Note: The Strategic tab on the Company Objectives page is only rendered when the current user has at least one accessible strategic type (via admin rights or collaborator subtree). It is hidden entirely if neither condition is met.


Edit Permissions

Who can edit a given objective depends on its scope:

Individual Objectives

Who

Can edit?

Collaborator on the objective or any ancestor in the tree

✅ Always

Manager or admin of any collaborator on an ancestor (individual scope only)

✅ Yes

OBJECTIVES_ADMIN

✅ Yes, all individual objectives

Strategic Objectives

Who

Can edit?

Collaborator on the objective or any ancestor in the tree

✅ Always

Admin of the ObjectiveType (direct, via owner, or via administrators filter match)

✅ Yes, objectives of that type only

Admin of any ancestor type (via link_parent_types cascade)

✅ Yes, by inherited admin authority

OBJECTIVES_ADMIN

✅ Yes, all strategic objectives


Creation Permissions

Who

Can create?

Any authenticated user

Can create Individual objectives

Admin of a Strategic type (direct, owner, or filter match)

Can create objectives of that Strategic type

Admin of a parent type (via link_parent_types cascade)

Can create objectives of descendant Strategic types

OBJECTIVES_ADMIN

Can create objectives of any type

Types with no administrators filter are open by default — any user can pick them when creating a new objective.


Collaborator Behavior by Scope

Behavior

Individual

Strategic

Default collaborators at creation

Owner auto-added

None (empty by default)

Minimum collaborators

1 (mandatory — enforced automatically)

0 (allowed)

Collaborator grants edit on subtree

✅ Yes

✅ Yes

If an Individual objective has no collaborators (e.g., after a type change from Strategic to Individual), the owner is automatically set as a collaborator to maintain the ≥ 1 constraint.


Adding children as a collaborator (non-admin)

A user who is only a collaborator on a strategic objective — but not an admin of any ObjectiveType — has edit access to that objective and can use the "+" button to add children. However, the type assigned to the new child is determined by computeDefaultType, which selects from userEditableObjectiveTypes (the types the current user is allowed to create objectives for). Because a pure collaborator has no admin rights, userEditableObjectiveTypes is empty and computeDefaultType returns null — the child is created with no type assigned (treated as Individual by default).

Expected behavior for a collaborator-only user adding a child to a strategic objective:

Action

Expected result

Add child via "+" button

✅ Allowed — edit access granted via collaborator inheritance

Child inherits a strategic type

❌ No — userEditableObjectiveTypes is empty; child is created without a type

Manually assign a strategic type to the child

❌ No — the type picker only shows types the user can create

Assign the Individual type to the child

✅ Yes — if the Individual type has no administrators restriction

By design: being a collaborator on a strategic objective grants edit access, but does not grant the ability to create objectives of strategic types. Creating strategic-typed objectives requires being an admin of that type.

Did this answer your question?