On This Page:
Multi-page forms (no roles)
To create a multi-page form with a navigation toolbar, simply drag and drop forms from the palette into the flow. You can also drag in a New Form, edit it and create the form on the fly. Do not assign any roles to the steps as shown below.
You can set Form and Document actions as usual. Click Finish and try the flow.
A navigation toolbar is displayed and the user will be able to navigate back and forth between the various steps in the multi-page flow. Note that you cannot go forward to the next step until the current step is valid. will automatically enforce this constraint similar to the way forms cannot be submitted unless they are valid.
Role-based workflow
See the Patient Referral Workflow Tutorial for detailed, step-by-step instructions.
In a role-based workflow, you will assign one or more roles to one or more steps in the workflow. A step with roles can only be performed by an authenticated user who belongs to one of the assigned roles. Your administrator will have to create the required roles in advance. Once this is done, you will see the list of available roles in the properties for the step. Simply pick one or more roles as shown in the image below.
In this example, the second step can only be performed by a user with the role Doctor.
Sending a workflow step to a specific user
Sometimes, for example, when approving vacation requests or expense reports, you want the workflow to go to a specific person (the employee's manager rather than any manager). In this situation, roles are not appropriate since any user with the role Manager will be able to pick up and perform the pending request. In this situation, do not select any role and in the User field of the step properties, enter a template e.g. {ManagerId} as shown in the image below.
You must have a control in any previous step with the specified name, i.e. in the example shown, you must have a control in the Leave Approval form from the first step with name ManagerId. This control must be populated with the user id of the specific person that you want to route to. At run-time, will resolve the target user id using the data in the ManagerId control and will route the workflow to that specific user.
You can populate this control manually (via a drop down or by typing the user id) or preferably via a business rule that automatically pulls the information from a back end system. At this time, does not automatically provide this information; you will have to write a rule.
Using dynamic roles: determining the role at run-time
In some cases, the role is not known in advance. For example, you may have a workflow where the first step is a Purchase Order or a Loan Request and the second step is an approval; however the approval must be performed by a Manager if the amount is less than $1000 and a Supervisor otherwise. In this situation, do not select any role from the list of available roles. In the Role text field of the step properties, enter a template e.g. {ApproveRole} as shown in the image below.
You must have a control in any previous step with the specified name, i.e. in the example shown, you must have a control in the Order form from the first step with name ApproveRole. This control must be populated with the name of the specific role that you want to route to. At run-time, will resolve the target role using the data in the ApproveRole control and will route the workflow to that specific role.
You can populate this control manually (via a drop down or by typing the role) or preferably via a business rule that automatically sets the role depending on criteria such as order amount.
Looping between multiple users in a role
In some cases, you may want multiple actions taken during a step in the workflow. For example, consider an issue Tracking workflow where the first step is an Issue entered by an employee or a customer and the second step is Actions taken by support staff. There could be multiple actions before the issue is resolved; however all actions are performed by a member of the support staff. In this situation, you should select the appropriate role from the list of available roles or you can use a dynamic role as described above. In addition, make sure that the Save to Role and Save/Load checkboxes are checked. You should also make sure that Save/Load is enabled for the flow as a whole.
At run-time, a member of the support staff performs this step, takes an action and logs it in the workflow. While this user is performing the steps, other users in the Support-Staff role are locked out. When the user is done, he/she can click the Save button in the flow rather than the Continue or Finish button as shown below. This will place the step back into the Task List of all members in the Support-Staff role.
If you want to avoid users accidentally clicking the Continue/Finish button, place a Required control in the form such as a checkbox that must be checked before continuing to the next step. In this case, the Continue/Finish button will not be enabled until the checkbox is checked thereby preventing accidental clicks.
Viewing the status of an issue
Users can view the status of an issue using the Task List and its built-in search capabilities. You can search for any workflows that you have participated in. For all such workflows, you can view its history. The history can also contain annotations e.g. a brief summary of the last action taken.
Ad hoc workflow - pass steps between arbitrary users
In some cases, you may want multiple actions taken during a step in the workflow but in an ad-hoc manner. For example, consider a workflow to review a proposal. The first step is the Proposal entry and the second step is the Reviews. However, a number of users may review the proposal in any ad-hoc order. In this situation, you should leave the roles blank and use a dynamic User as described above. In addition, make sure that the Save to User and Save/Load checkboxes are checked. You should also make sure that Save/Load is enabled for the flow as a whole.
At run-time, will resolve the dynamic user id using a control in the form and the proposal will first be routed to that user. The user can make comments and decide to pass it on to a different reviewer. To do so, he/she selects the next reviewer from a control in the form e.g. a drop down and clicks the Save button in the flow rather than the Continue or Finish button as shown below. This will place the step into the Task List of the selected Reviewer.
If you want to avoid users accidentally clicking the Continue/Finish button, place a Required control in the form such as a checkbox that must be checked before continuing to the next step. In this case, the Continue/Finish button will not be enabled until the checkbox is checked thereby preventing accidental clicks.
Send the Workflow to an Anonymous Participant
Sending a workflow step to an anonymous user ( a person who does not have an account in your tenant) is a common workflow scenario. Some examples are:
- a Membership workflow that requires reference letters from an external person.
- a Purchase Order Approval requiring the customers review and signature.
- a workflow that is sent to an External Vendor for a Quote.
Imagine a Purchase Order workflow consisting of three steps:
- Step 1 is filled out by the company sales person. The sales person is logged into for this step.
- An email is sent to the customer with a link to Step 2 for the customer's review and signature. The customer is an anonymous user as they are not required to log into to perform this step. The workflow is suspended until the customer performs step 2.
- Step 3 routes the workflow back to the sales person for continued processing. The sales person is logged into for this step.
In the flow designer:
Step 1 contains an Email control, named ClientEmail, where the sales person enters the customer's email address.
Step 2 is the Email step. It is configured with the {clientemail} form field template . This step sends a task notification email to the customer's email address. The email contains a link to Step 2. When the customers clicks on the link, the flow is suspended until step 2 is completed.
The anonymous user receives the Task Notification email, clicks on the link and accesses the task without logging in, performs the anonymous step and clicks continue. The flow is routed back to the sales person who is an an internal, authenticated user.
The step(s) following the Email step are the ones the anonymous user sees. This step must not have values in the Role List, Role or User properties. If it did then the anonymous user would get an access denied error.
The email sent to the anonymous user is a Task Notification email that contains the special template {task.notify.url}. Without this, the anonymous user would not be able to access the flow.
The anonymous user can click the link again, it will give you an error.
- The flow navigates back to the task list of an internal user when the flow reaches a step with a Role or User configuration. Step 3 in our example is assigned the role of Sales.
Refer to the Flow Tutorial for step by step instructions to create the Purchase Order workflow described above and for more information about other features available in
Automated Step
Workflow data can be sent to an external processing system by adding a http Wait-Notify step to a flow. When the flow executes this step, it will be suspended until the external system replies.
For example, consider a Membership Renewal workflow consisting of three steps:
- The first step is the Membership Renewal form filled out by the member.
- The second Step uses http Wait-Notify to send the data to an external payment processing system. The flow suspends until that system replies.
- The third step sends the workflow back to a person to process the membership.
Rejecting a step: sending it back to the original user
In some cases, a workflow needs to go backwards. Non admin users can accomplish this by clicking a configurable Reject button on the form/flow where the user can select the step in the flow to go back to. Tenant and flow administrators use the task list and its built-in modify task feature to reject, reassign or abort tasks. Refer to Using the Task List for information about how these features work.