# Navigation flows

**Category:** App Studio

**Version:** 1.0

**Last Updated:**  March 02, 2026

**Author:** Any2Info

***

### Description

The **Navigation Flows** module defines how incoming parameters of dashboards are populated during navigation.

It allows configuration of:

* Incoming parameters when a dashboard is opened from the Viewer menu.
* Parameters passed when navigating between dashboards.
* Dynamic value assignment based on static values, user context, variables, control values, drillthrough context, or scanned input.

Navigation Flows are configured in the **App Studio** section and apply exclusively to dashboards.

***

### Scope

* Applies only to **dashboards**.
* Supports navigation from:
  * Viewer menu (initial dashboard selection).
  * Dashboard actions (button clicks, control events, etc.).
* Navigation to forms is supported at runtime, but **Navigation Flows are not configurable for forms**.

***

### How It Works

#### 1. Starting Dashboard (Viewer Menu)

Each dashboard that can be opened via the Viewer menu can be configured in the Navigation Flows module.

When selecting a dashboard inside the module, two sections are available:

* **Actions**
* **Parameters**

The **Parameters** section corresponds directly to the configured incoming parameters of the selected dashboard.

Incoming parameters themselves are defined in the dashboard configuration (via the dashboard ellipsis menu under *Incoming Parameters*).

***

#### 2. Navigation Between Dashboards

Navigation between dashboards is configured via the **Actions** section.

An action can:

* Navigate to another dashboard.
* Navigate to the same dashboard (useful for applying new parameter values).
* Pass parameter values from the source dashboard to the target dashboard.

This enables scenarios such as:

* Filtering a dashboard based on a selected record.
* Opening a detailed dashboard from a summary view.
* Refreshing the current dashboard with a more specific context.

***

### Configuration Sections

### Parameters

The Parameters section allows configuration of how incoming parameters are populated.

For each incoming parameter, the following can be configured:

| Setting           | Required | Description                                                                                     |
| ----------------- | -------- | ----------------------------------------------------------------------------------------------- |
| Parameter         | Yes      | The incoming parameter defined on the target dashboard.                                         |
| Description       | No       | A descriptive label explaining the purpose of the parameter mapping. Intended for the designer. |
| Value Source Type | Yes      | Defines how the parameter value is determined.                                                  |

***

#### Value Source Types

**Static**

Uses a fixed value. Requires manual entry of the value.

**User**

Uses the signed-in username. Behaves identically to the **User** type in Fixed Filters.

**UserId**

Uses the signed-in user ID. Behaves identically to the **UserId** type in Fixed Filters.

**Variable**

Uses a selected application variable. Behaves identically to the **Variable** type in Fixed Filters.

**Control**

Uses the value from a specific control on the source dashboard.\
The control must be explicitly selected during configuration.\
The control’s current runtime value will be used as the incoming parameter value.

**Drillthrough**

Uses the unique row identifier from a grid-like control that triggers navigation.\
This type is intended for drillthrough scenarios where a user selects a row and navigates to a detail dashboard.\
The unique identifier of the selected row becomes the parameter value for the target dashboard.

**Scanned Tag**

Triggers a scan action at runtime.\
The scanned result becomes the parameter value.

If scanning fails or is aborted, the dashboard will not open.

***

### Actions

The Actions section defines navigation behavior from a dashboard.

An action can:

* Navigate to any other dashboard.
* Navigate to the current dashboard.
* Pass parameter values from the source dashboard to the target dashboard.

Actions can be attached to:

* Dashboard-level actions.
* Control-level actions within dashboards.

When configuring navigation between dashboards, parameter mappings can use:

* Static values.
* User context.
* Variables.
* Control values.
* Drillthrough context.
* Scanned values.

***

### Execution Behavior

Navigation Flows execute:

* When a dashboard is opened from the Viewer menu.
* When navigation occurs between dashboards using configured actions.

***

### Runtime Behavior & Error Handling

#### Required Parameter Missing

If a required incoming parameter does not receive a value:

* No data will be loaded.
* The user will see messages indicating that required parameters are missing.

#### Undefined or Unset Values

If a parameter value resolves to undefined:

* An empty value is used.

#### Scanned Tag Failure

If scanning fails or is aborted:

* The dashboard will not open.

***

### Supported Navigation Scenarios

* Dashboard → Dashboard
* Dashboard → Same Dashboard (context refinement / re-filtering)
* Multiple dashboards can navigate to the same target dashboard.
* A dashboard can have multiple outgoing navigation actions.

***

### Limitations

* Only dashboards are supported.
* Navigation Flow configuration does not apply to forms.
* No conditional branching logic is supported within parameter assignment.
* No loop detection or recursion handling is enforced.
* If required parameters are unresolved, the dashboard will not load data.

***

### Typical Use Cases

* Opening a detail dashboard from a summary dashboard (drillthrough).
* Filtering dashboards based on selected records.
* Enforcing user-context filtering.
* Passing control input values to another dashboard.
* Scanning a tag before opening a dashboard.
* Re-opening the current dashboard with a refined parameter set.

***

### Changelog

| Version | Date          | Change                               |
| ------- | ------------- | ------------------------------------ |
| 1.0     | March 2, 2026 | Initial documentation version added. |
