What are workflow options, how does it work?
In some cases, you need to process requests with a certain workflow. For example, a colleague might submit a leave of absence, expense reimbursement or some other request that needs to be approved. Or maybe you want to keep track of the status of an order that a customer places through a form.You could add a status dropdown option to each form, but users who submit the request should not be allowed to set this status field themselves. And usually they also shouldn't be allowed to change their submitted form entry anymore when it's being reviewed. Finally, in the case of processing requests, we would like to keep someone up to date of the status of their request.
In Papyrs, you can enable Workflow options for any online form (see Online Form Widgets) that you build. When you enable Workflow options:
- An additional Status field is added to form. This status field works like a Choice input field, but is not visible when someone submits a form. Instead, it has a default value that is set by an administrator.
- Then, whenever a form is submitted, the person responsible for processing the requests can review the request and change the Status of the request. The administrator can also set in which state the user is still allowed to modify their request (if at all).
- Whenever the Status field of a request is changed, a notification is sent to the user who submitted the form, to inform them of this change (see Notifications).
How do I enable workflow options?
To enable workflow options, open the Form properties dialog for additional form options. You can find this dialog by clicking Edit on the submit button of a form:The dialog looks like this:
Now click Enable workflow. The following options will appear:
Here you can set the states you want to be able to use for the Status field. The default is: Pending, Reviewing, Accepted & Rejected, but you can choose whatever you want. You can also select the default state. This is the value to which the Status field will be set after a user submits a form. Finally, you can use the checkboxes to specify in which state the user is allowed to edit their form submissions (if at all).
Working with multiple status levels or approval steps
With Form Workflows we try to strike a balance between flexibility on the one hand, and simplicity on the other. By keeping the interface simple we allow workflows to be created by anyone, without the need for any codes or technical knowledge. Although we don't support using any codes to program custom business rules for this reason, we think handling most common workflows should be possible.
In some cases, workflows can become a bit more complex. For example when a request needs to be approved in multiple steps or by multiple people. In this case we suggest the following simple solution:
Let's say a request needs to be approved by a "supervisor" first, and then by another person in HR. To handle this workflow, we simply expand the number of possible statuses to express the various stages in the approval process. We can set the following statuses, for example:
Pending Supervisor Approval (as default status) Denied Supervisor Approved, Pending HR Approval Approved by Supervisor & HR
Whenever a new request is submitted, or when its status changes, form managers are automatically notified (if they are subscribed to email notifications for the form). Depending on the status, they can see which records they need to take action for. It's also easy to view all records and filter them by status (see Form Reports), so each form manager can quickly get a list of records with the status of the step they are responsible for approving. In this example, the "supervisor" would change the status from Pending Supervisor Approval to either Denied or Supervisor Approved, Pending HR Approval. In that state, the HR person can then change the status to either Denied or Approved by Supervisor & HR.
We could use the same technique if the workflow doesn't involve multiple people, but rather multiple steps. Let's say an order request first needs to be approved, and then needs to be paid. We could then use:
Pending Approval (as default status) Denied Approved, Pending Payment Approved & Paid