Hello! Today I am going to bring it back to the basics when it comes to dispatching. I have chatted about using a single form and controlling everything using conditional logic so that you do not need to maintain 2 different forms. There are, however, reasons why you would want to use two separate forms instead of just a single form. For example, using Conditional Logic. We do not have the ability to make a signature field read-only, but we can add that restriction to a signature question. This is handy if we do not want the person in the 2nd step to be able to interact with the signature. One of the most important parts to think about before really diving in is how to determine who is going to be receiving the form next. This can be determined using a dropdown list in the form allowing the user to pick who it goes to, or we can hard code this right into the Dispatch Destination if we know that it's always going to be going to the same person.
I already have group in my team called "All Users". I use this group in a data source to lookup who is logging into the form. I am going to set up the start of the form the same as this article: https://community.prontoforms.com/groups/community-home/digestviewer/viewthread?MessageKey=010c576f-9f3e-4ddc-acf6-0ade610c36ea
I am going to use a dropdown question for approvers so that you can pick who it goes to next. This list is going to be using a ProntoForms Group as a data source, I have added all the people that I want to be able to approve this form to the Group that I am using.
My form is going to be broken up into 4 sections: Technician Info (where we automatically capture the username of the person who launched the form), Customer Info (manual fields to input information), Approver Info (to pick the approver), and sign off (add your signature).
I am going to skip right into the Approver section of this form because that is one of the most important pieces to understand in this flow. We use the ProntoForms username to dispatch, and this is why I am using a User Group data source so that we have the username readily available.
Approver Section overview:
Approver Name Dropdown question:
You can see in the screenshot above that the drop down is pointing to my Approvers User List data source and then, along the bottom, I am pushing the Username into the following question "Approver Username". This question is the one that we will use in the dispatch destination to determine who gets the form next.
Now that the first form is complete, after adding in any additional information that you might want to collect, save and deploy! Next, I want to create the form where the actual approval happens. The magic behind Dispatching is that if the question labels match, the answer will carry forward automatically to the next form. To make things easy, you can make a copy of the form that you just built so that you know for certain that the question labels all match.
Hover your mouse next to the title of the form on the down arrow and select "Copy Form"
Create a copy with a new name, and append "Approval" to the end of the form name.
Now let us go edit the new form that we just created to make it a little easier to work with. When working with the Approval Form, the expectation is that all the questions will be answered already, however maybe we want to lock them down so that the next person does not have the ability to change them. I am going to change all the questions that are in the Approval form currently to be Read Only:
I am also going to hide the Approver section and all the questions not required for the approval.
The last thing I need to do in this form is to add a place for the Approver to approve it.
Next, we need to build our dispatch. Let us "save and deploy" the Approval form and navigate to the Destinations window and create a new Dispatch Destination.
I have adopted a nice and easy way to name destinations, making them very easy to find. For this use case I would use [DISPATCH][FormName][To Approver]
I am not going to discuss Filtering in this post. I’ll save that to be a topic on another post so we can skip to the "Dispatch Configuration" tab. This is the easy part :) Select your target form, which is the "Approval Form", and by using DREL we are going to pull out the Answer to ApproverUsername as the Target User:
And that is it! Click on Create at the bottom of the screen and it is ready to be hooked up to the first form that we created. Back in the Form Builder for the first form, I have added our new destination to it:
Now after Saving and Deploying, the forms are ready to go.
Moving over to the App now! Fill out the first form to completion, in my example, I am just going to use myself as the approver:
Once you submit the form, the dispatch will get triggered and the next form will go into the Inbox of the person you have indicated as the Approver.
In the Approval form, we can see that the first four questions are Read-only, the approval section is gone, and there is a new place for the approver to sign off, but it still has all the answers that the first-person input.
Now that we know that it is working as expected, I want to make sure that people are not able to start the process at the Approval step. To do this, go back into the Form Builder for the Approval form, go to the settings tab, and under Workflow Settings change the selection to Inbox (Dispatched Forms). This makes it so this form will not be seen in the overall forms list but will still dispatch.
This, in a long nutshell, is dispatching using a Data Destination. Do you use our dispatching in your forms for approval of some sort? If you’re not currently using dispatching, can you think of ways this may help your existing workflows? Let us know if you do or if you plan to build this sort of workflow into your current processes.
I am not going to discuss Filtering in this post. I'll save that to be a topic on another post so we can skip to the "Dispatch Configuration" tab. This is the easy part :) Select your target form, which is the "Approval Form", and by using DREL we are going to pull out the Answer to ApproverUsername as the Target User:
This, in a long nutshell, is dispatching using a Data Destination. Do you use our dispatching in your forms for approval of some sort? If you're not currently using dispatching, can you think of ways this may help your existing workflows? Let us know if you do or if you plan to build this sort of workflow into your current processes.