Introduction
There is a huge demand for converting paper based forms to electronic forms. I use the term "paper based" loosely. Really, what I mean is any form that is filled out by hand and submitted through any one of the following vehicles:
- Hand delivery (sneaker net)
- Fax
- Email with the form attached as a scanned document.
By-the-way, most Adobe pdf forms in use today fall into this category. The reason is not that Adobe doesn't have an adequate electronic forms processing environment, because Adobe does. Instead, it is because Adobe has not been as successful as Microsoft in engaging the community to use their suite. This post is not about comparing tools, but rather highlighting that there is significantly more to a form, than the form itself.
In the case of InfoPath, most of my clients come to me with the expectation of converting a paper form to an electronic form. Many people think that this is a trivial matter. It would be, but there are a variety of justifiable and implicit expectations that users have of electronic forms that are sometimes subtle and are often overlooked by the uninitiated. As I have become well versed with these issues, I have coined the phrase "InfoPath ecosystem" as a term to describe the bigger picture. (I should really be referring to it as the "electronic form ecosystem", but since I specialize in SharePoint and InfoPath, I use the product specific names.) The constituent parts of the model are:
- The Electronic Form (InfoPath)
- Launch & Landing pages
- Reporting
- Automated workflows together with apropos web pages
Figure 1 illustrates the InfoPath Ecosystem.

Figure 1: The InfoPath Ecosystem
1. The Electronic Form (InfoPath)
Some of the subtleties that people don't think of when they are converting "paper" forms to InfoPath forms are:
- Save vs Submit
Almost every project I have worked on, starts off with the clients telling me they want a very simple form. When I ask them do they want save functionality, they tell me no. I explain that once a form is submitted, the data should not be changed. After people start working with the form for a while, almost everyone asks me to add save functionality. By save, I mean the user is able to save the form for later modifications, and the recipients of the from are not notified yet. Furthermore, if there are any automated workflows that are supposed to run, they do not run, until the form is actually submitted. Once the form is submitted, the form imitator can go back and look at the form, but she can no longer modify the form.
- Intelligent pre-filling
People have little patience for filling out electronic forms. Even less so than paper forms. They get frustrated quickly. Therefore the forms need to pre-fill as much information as possible. For example, in a system where the user is logged in, a great deal of personal information can be pre-filled. InfoPath allows one to add sophisticated logic, which allows many of the form fields to be pre-filled with the most likely answers and furthermore make excellent guesses on things like dates and times.
- Intelligent hiding or disabling of controls
For example, the Submit button should be grayed out, until all required fields are filled in.
- Showing and hiding different portions of the form as a function of the user and the state of the form
For example, a process owner may have special privileges that an ordinary user does not have. Another example is to provide a preview page which shows a summary of all answers before the user submits the form. The preview page does not allow editing, it just shows the user the answers they have given to the form questions. This is similar to the Print Preview feature in many applications.
- Important Controls to make the user experience easy
For example, if the user needs to pick an answer from a very large number of choices such as all universities in the U.S. An ideal control for this is a text box with auto-complete. Marc Anderson and I worked on such a solution recently and we wrote companion blog posts on the subject. (See: Marcel's Post and Marc's Post)
All of the above mentioned, with the exception of the last item, can be implemented by a seasoned InfoPath power user. The last item requires a "middle-tier" developer who knows how to write Javascript, calls to Web Services and jQuery (or similar.)
2. Launch vs Landing Pages
You don't want to expose the uninitiated user to a native SharePoint Form Library or List. An example of a native form library is shown in Figure 2. It is too confusing. I have found that it is a good idea to provide a Launch page that provides instructions along with a launch button. Similarly you want to have a page where users can see what forms they own. By "owning", I mean forms that the user has saved, has submitted, is interested in tracking, or needs to take some action on. For simpler forms, one can use a single page for the purpose of launching and landing. For complex forms, one might want to create a distinct landing page for each stage of form's life-cycle. Figure 3 illustrates a combined launch & landing page that my team has created for new badge requests. In order to build these pages, the required technology is out-of-the-box SharePoint with a little bit of custom html that is saved in a Content Editor Web Part.

Figure 2: Is a screenshot of a Form Library that contains applications for carpools. To the uninitiated user, it is unfriendly and confusing. This is the reason we need to build a launch and landing page depicted in figure 3.
Figure 3: A screen shot of a Badge Request launch & landing page. This page shows the launch buttons, as well as a two nicely formatted
SharePoint lists that show all of my requests. In this case, I have no pending requests..
3. Reporting
The process owner often wants to go back and see summary statistics of the aggregate data. In its simplest incantation, this may be a simple list, but it often comes with dashboard requirements as well as nice charts and graphs. One can really go far here. The simplest thing to do is use custom SharePoint Web Part Pages with DataView Web Parts, Chart Web Parts, and Excel. There are numerous third party add-ons that can allow for very rich visualization and data analysis. Some examples are: Spotfire, Tableau (Visualization tools) and Knime (An open source tool that helps with data analysis.)
4. Automated workflows with apropos web pages
I have already alluded to the landing pages that one might use in a human intensive workflow. The workflows, whether reviewer, approval, sophisticated business processes, or just notification workflows can be messy to design and implement. The workflows should be carefully designed and documented. Generally I like to write down a traditional state diagram. These state diagrams resemble a directed graph from mathematics (See figure 4.) When it comes to implement the workflows, there are many options. SharePoint Designer Workflows is a free technology and can get you pretty far. I often use third party tools to help write the workflows, but they can be quite pricey. Both Nintex & K2 provide excellent workflow add-ons.
Figure 4: Directed graph that I use as my company logo (Mathft)
Conclusion
People often trivialize the design of electronic forms (in my case InfoPath forms.) Besides subtleties in the forms themselves, people often don't realize that there is an important ecosystem that is needed to make the forms easy to use, and the aggregate results easy to analyze.