Skip to main content

🧭 Learning Path Navigation

The navigation field of the learningPath object provides a flexible entry point for retrieving navigation-related data within a Learning Path.
This field accepts several optional arguments, allowing the API to adapt to different navigation scenarios based on context and interaction mode.
All arguments are optional and designed to work together to support various navigation use cases in a single, unified entry point. However, some limitations do apply — please refer to the description of the navigation field in the API schema for details on usage constraints and compatibility between arguments.

📚 Navigation Types

The NavigationType enum defines the overall structure of the navigation response. Each type targets a different use case:
STEP_NAVIGATION requires the currentStepEdgeRid argument and is the only mode that supports REVIEW navigation mode.

🧭 Navigation Modes

The NavigationMode enum defines how the user is interacting with the Learning Path content. It influences what kind of navigation data is returned and how the system interprets user intent. Here are examples of different navigation implementations, as demonstrated in our learner area.

🧩 Reconstructing Hierarchical Relationships

Due to limitations in how GraphQL handles recursive structures, the navigation field returns all NavigationItem objects as flat array entries. This means hierarchical relationships (such as Training → Module → Activity) are not nested in the API response. To reconstruct this structure on the client side, each NavigationItem includes a navigationPath field. This field provides the hierarchical relationship of each item in the form of a colon-separated list of edgeId values, representing the item’s path through the Learning Path. Here is an example of the getLearningPath query using navigationType: FULL_NAVIGATION:
Please find below an explanation of the navigationPath field structure, which allows you to reconstruct parent-child relationships between navigation items: In this format:
  • The last value always represents the current item’s edgeId.
  • The preceding values reflect the item’s parent hierarchy.
Using this structure, you can rebuild the full nested view of the Learning Path on the client side.