Skip to main content
Version: FP V2 (upcoming)

Endflow and Redirection

The endflow component controls what happens when a form flow finishes—such as redirecting the user to a specific page, item, or closing a modal. You can set endflow globally for the entire form or within a specific trigger.

When to Use​

Use endflow to define what should happen after a form is completed, either for the whole form or for specific triggers (e.g., after a certain action).

How It Works​

  • Global Endflow: Placed at the root of the form JSON, applies to the entire form.
  • Trigger-Specific Endflow: Placed inside a trigger, overrides the global endflow for that trigger.
  • If no endflow is set, the form will automatically choose an action (see Default Behavior).

Default Behavior (If No Endflow Defined)​

  1. Redirect to the first predefined item in the Items Array (if available).
  2. Redirect to a newly created item from the form's triggers.
  3. Redirect to the starting item (the item on which the form was initiated).
  4. Redirect to the dashboard (fallback).

Global Endflow​

Define at the root of your form JSON. Applies to the entire form unless overridden by a trigger.

Options:

  • redirect: (string) The redirection target. See Endflow Commands.
  • redirect_uri: (string) Used with redirect: "uri" to specify a custom URI.
  • closeModal: (boolean) If true, closes the modal after form completion. Ignores other endflow commands.

Example:

{
"endflow": {
"redirect": "item"
}
}

This redirects the user to the starting item after form completion.

Trigger-Specific Endflow​

Set inside a trigger to override the global endflow for that action.

Options:

  • endflow: (boolean) Ends the form when the trigger is activated.
  • endflow_redirect: (string) Redirection target for this trigger (see Endflow Commands).
  • closeModal: (boolean) Closes the modal after this trigger. Ignores other endflow commands.
  • relevantForItems: (JSON Query) See JSON Query. Determines which items are relevant for the endflow. If not set, all items are considered relevant.

Example:

{
"submit": {
"triggers": [
{
"then": {
"endflow": true,
"endflow_redirect": "itemkey.item1"
}
}
]
},
"endflow": {
"redirect": "uri",
"redirect_uri": "/item/12345"
}
}

In this example, the trigger ends the form and redirects to item1. The global endflow would redirect to a specific URI if the trigger is not used.

Endflow Commands​

Use these values for redirect or endflow_redirect to control navigation:

  • back: Return to the previous page (useful in multi-page forms).
  • dashboard: Redirect to the dashboard (main menu).
  • item: Redirect to the starting item (the item the form was started from).
  • uri: Redirect to a custom URI (must set redirect_uri). Only available in global endflow.
  • itemkey.[item]: Redirect to a specific item defined in the form's flow. Replace [item] with the unique item key.
  • closeModal: Close the modal after form completion (can be used as a property or as a command).

Usage Examples​

Redirect to Previous Page​

{
"endflow": {
"redirect": "back"
}
}

Redirect to Dashboard​

{
"endflow": {
"redirect": "dashboard"
}
}

Redirect to Starting Item​

{
"endflow": {
"redirect": "item"
}
}

Redirect to a Specific URI​

{
"endflow": {
"redirect": "uri",
"redirect_uri": "/specific-path"
}
}

Redirect to a Specific Item by Key​

{
"endflow": {
"redirect": "itemkey.newItem"
}
}

Close Modal on Completion​

{
"endflow": {
"closeModal": true
}
}