Form Chaining Overview

   Journey Manager (JM) The transaction engine for the platform. |   System Manager / DevOps |  All versions This feature is related to all versions.

The type of UI flow mentioned in form bundles is often referred to as form chaining. Its possible to configure a collaboration job to have one task created per one step and still implement chaining between the steps. The redirectNext is both a step and an action attribute. If you want to the form chaining to be used within steps, set the step attribute redirectNext to true. To allow the form chaining from one action to another, set the action attribute redirectNext to true.

Let's look at the customer onboarding collaboration job. The job definition's additional products step configuration is shown below.

{
  "name": "Additional Products",
  "type": "",
  "shareExtractData": true,
  "allFormsEditable": true,
  "showPreviousForms": true,
  "redirectNext": true,
  "actions": [
    {
      "name": "Credit Cards Application",
      "type": "Job Task Assign",
      "preCondition": "$formDataMap.productCreditCards == 'true'",
      "redirectNext": true,
      "properties": [
        { "name": "Task Assign Email",  "value": "$formDataMap.emailAddress" },
        { "name": "Task Form Code",  "value": "onboard-credit-cards" },
        { "name": "Task Message",  "value": "Please complete the Credit Card Application form." },
        { "name": "Task Subject",  "value": "Complete Credit Card Application" },
        { "name": "Task Input XML Prefill",  "value": "$func.startSubmissionXml()" },
        { "name": "Task Type",  "value": "Anonymous" }
      ]
    },
    {
      "name": "Insurance Application",
      "type": "Job Task Assign",
      "preCondition": "$formDataMap.productInsurance == 'true'",
      "redirectNext": true,
      "properties": [
        { "name": "Task Assign Email",  "value": "$formDataMap.emailAddress" },
        { "name": "Task Form Code",  "value": "onboard-insurance" },
        { "name": "Task Message",  "value": "Please complete the Insurance Application form." },
        { "name": "Task Subject",  "value": "Complete Insurance Application" },
        { "name": "Task Input XML Prefill",  "value": "$func.startSubmissionXml()" },
        { "name": "Task Type",  "value": "Anonymous" }
      ]
    },
    {
      "name": "Appliction Confirmation",
      "type": "Job Task Assign",
      "preCondition": "$formDataMap.productInsurance == 'true' || $formDataMap.productCreditCards == 'true'",
      "properties": [
        { "name": "Task Assign Email",  "value": "$formDataMap.emailAddress" },
        { "name": "Task Form Code",  "value": "onboard-confirmation" },
        { "name": "Task Message",  "value": "Please sign to complete Application bundle." },
        { "name": "Task Subject",  "value": "Confirm Application Bundle" },
        { "name": "Task Input XML Prefill",  "value": "$func.startSubmissionXml()" },
        { "name": "Task Type",  "value": "Anonymous" }
      ]
    },
    {
      "name": "Review Wait",
      "type": "Job Task Wait"
    }
  ],
  "routes": [
    { "name": "Default",  "nextStep": "Application Delivery" }
  ]
},

Here, you can see the steps has "redirectNext": true. The first 2 Task Actions,Credit Card Application and Insurance Application Forms, have redirect next "redirectNext": true. The last Action Application Confirmation does not have a redirectNext attribute or "redirectNext": false. The Triage form is filled in, depending upon the user selection in the triage form and the either or both Credit Card and Insurance preCondition will evaluate to true.

Lets assume that the both products selected. The user submits the triage form it chains to the Credit Card. The order for the next available form is determined by the order of the Action in the Step that is Triage Form > Credit Card > Insurance > Confirmation. The form chaining continues to the confirmation page. However at the confirmation page it breaks the chaining flow and goes to the Application Confirmation form's - Submission Confirmation page. At this page the user can download a combined PDF receipt.

Change of User

Form chaining can happen only when the current user has access to newly created tasks:

  1. Anonymous Forms the email address needs to stay the same.
  2. Authenticated task either:
    • the current user is assigned to the new task
    • the task is assigned to a group that the current user belongs to
    • group tasks are claimable are also required to be claimed by the current user.

When there is a change of assignment that does not meet the conditions above, additional tasks cannont be openned by the current user. The current form stops chaining and goes to the forms submission confirmation page.

Legacy Mode

There is an legacy UI flow that was in earlier revisions of form bundles 4.2 did not load the next available form, that is did not perform form chaining.

When a user submits the submission the user is then presented with a list of forms on the forms submission confirmation page, one for each form that they were to completed.

Note

We recommend to use the form chaining because it provides a better user experience.

Next, learn about a form bundle.