In the early 2000s, Microsoft launched InfoPath to help businesses automate forms and streamline the data collection process. As one of the co-inventors of the application, I hold four patents related to InfoPath and am intimately familiar with the product’s ins and outs. I continue to help many people who must still use InfoPath but thrive on helping people easily migrate off this sunsetted product.
This Microsoft Infopath & Sharepoint guide will cover:
- all InfoPath basic components and tasks
- step-by-step how to on InfoPath templates
- the pros and cons of Microsoft’s replacement product PowerApps
- expert tips for choosing a new forms solution
- how to easily migrate your existing forms and legacy data
- InfoPath FAQs
Launched by Microsoft in the early 2000s, InfoPath is an application that enables the creation of user-designed form templates without coding. Form creators can use InfoPath to design and distribute forms and direct where to store the data from people who’ve completed the form. The forms can be published on a company intranet or on the internet for anyone inside or outside the company to access.
InfoPath forms can have functions like submitting expense reports or timesheets, gathering approvals for documents or projects, inventory management, submitting information about potential customers, or uploading files or photos. Form creators can include business logic and rules, as well as validate the content of form fields before submitting them. Forms can pull data from many sources before they display it. For example, if a user is identified, their address can be added to the form from a database and their employee information from SharePoint.
Different users can view a form in a variety of ways depending on their level of access, the time of day, data submitted by previous users, or other factors. Additionally, forms can also be designed to be viewed in a browser on smartphones or other mobile devices.
InfoPath and SharePoint
With InfoPath, you can store form templates in a centralized Sharepoint document library. SharePoint and SharePoint Services (other Microsoft applications) allow the templates to be stored on SharePoint and displayed in a web browser. There are a number of ways the two programs are integrated. The main ones are:
- SharePoint Foundation is the default storage location for data submitted through InfoPath form (it can be stored as a list forms or in a form library).
- InfoPath forms hosted on a SharePoint site can be sent as an HTML page to a web browser.
- A form library on SharePoint has InfoPath templates as its designated document type.
Prior to the current version (InfoPath 2013), there was InfoPath 2010, InfoPath 2007, and InfoPath 2003. Until 2015, InfoPath was part of Microsoft Office 365. At that time, the product was released as a stand-alone application (however, it still requires an Office 365 subscription). InfoPath is only available for use with Windows OS devices.
InfoPath Form Components
InfoPath consists of three main parts: Designer, Filler, and Forms Services. One part is for creating forms are created, and the other two are related to the function of filling out forms filled. Here’s a breakdown of the parts:
- Sharepoint Designer: The WYSIWYG interface that’s used to create forms, build the layout, determine how the data will be submitted (e.g. over the web or via email), and create connections to data sources for data that will be shown when a form is displayed, and where user data will be stored when the form is submitted.
- Filler: Allows someone to fill out forms created in InfoPath. If InfoPath is on a PC, an InfoPath form will appear in the Filler interface. If not, the form will open in the default browser.
- Forms Services: A server technology that ensures a form stored on a SharePoint Foundation server will display properly in a web browser. InfoPath Forms Services requires Windows SharePoint Services 3.0 and is available in the Microsoft Office SharePoint Server 2007 Enterprise CAL and also, separately, in Microsoft Office Forms Server 2007.
The Current State of InfoPath
Microsoft announced in 2016 that it is discontinuing the application, making 2013 the final version. The client software will still be supported through July of 2026. That same year, Microsoft also announced an application called PowerApps, which is now their designated Microsoft Infopath replacement.
Some Common InfoPath Tasks
An InfoPath form template is an XML document that defines the layout and editing behavior, enforces rules to ensure data consistency, and provides the routing information that indicates where to store the data. The display information, connection information, and form information are all stored separately. This storage decision allows the appearance and the data storage data to be changed without affecting business logic in the form of the structure of the data captured.
Basic Steps to Create a Template
- Make a plan.
When creating an InfoPath template, the first step is to plan the design of the form. Ask these questions to guide the plan:
- How will it be used?
- What data will need to be displayed?
- What will the form look like?
- What style will the tables have?
- What data will be collected?
- Are any parts of the form read-only?
- Will the form be a single page or have multiple pages?
- If multiple pages, will data entered into a page affect what appears on pages that follow?
- Select a template type.
Under the File tab in Designer, there are a number of categories: Popular Form Templates, Advanced Form Templates, InfoPath 2007 Form Templates, and Template Parts.
- Choose a layout.
Each template type has a default layout, or the creator can customize the position of the on-screen elements.
- Add data connections.
These connections will determine where the submitted data is stored, and where any data displayed comes from when the form is viewed.
- Add fields and controls.
Fields are where data is stored. Controls are where users input their data, whether via typing or by selecting from displayed items.
- If desired, add views (pages).
Views will present versions of the form to different users based on factors that the form creator can control.
- Add rules and business logic to respond to conditions, inputs, and business needs.
Rules can display messages, set a value in a field, get data or store data, change views, or open another form. Conditions can include calculations, user roles, the status of a field, what value is entered, and more.
- Publish the template to make the form available to users.
Use the InfoPath publishing wizard to publish the form. Note: Some forms may have compatibility issues when converting to web forms. InfoPath will provide notifications if this happens.
A task form is a generic name for a form that allows a task to be completed. That task could be signing up for an email list; collecting data from customers, partners, vendors, or suppliers; or gathering insurance claim information.
An approval form template will create a workflow that allows a number of users to approve actions, documents, or the status of a project. Workflows can be affiliated with websites, such as a form that allows someone to submit feedback about their experience. Specific instructions can be found on Microsoft’s site.
Email a Form
One option for getting data that users entered into a form is to have it emailed. Form data sent via email can’t easily be compiled with other data, so use this if no other options are available.
Collecting data via email is accomplished by creating a submit data connection, then add the email address of where the form will be submitted. Detailed instructions can be found on Microsoft’s site.
Add an InfoPath Form to a SharePoint Document Library or Update an Existing InfoPath Form in a SharePoint Library
- Open InfoPath, click File, click New, then click SharePoint List.
- Enter the web address of your SharePoint site in the Data Connection Wizard, then click Next.
- To use an existing list: In InfoPath click Customize an existing SharePoint list then select the desired list, click Finish.
- To create a new list: Click Create a new SharePoint list, enter a name for the list, click OK, and click Finish.
- The form will appear as a default two-column SharePoint table. Modify the layout, rules, and validation to meet your needs. Adding new fields to the InfoPath form will create new columns in the SharePoint list.
- Dynamic behavior can be added with control rules (for example rules validate that a date has the correct format or that a ZIP code is numeric).
- To add a rule, click Home tab, then in the Rules group, click Add Rule.
- Once all changes are made, click the File tab, then Quick Publish. When prompted to save the list, click OK.
Transform InfoPath Forms Into PowerApps
Because of foundational differences in the way InfoPath and PowerApps manage data and business rules, there is no easy way to convert existing forms from InfoPath to PowerApps. All forms will have to be recreated in PowerApps. If an organization only has a few forms or only simple ones, the effort required is small, but for more complex forms it’s a tough slog. Microsoft has some information on their website, which is fairly generic.
PowerApps is missing some key functionality found in InfoPath. Some areas where PowerApps falls short include:
- Offline Form Completion: If there’s no internet connection, PowerApps forms can’t be filled out.
- External Users: PowerApps allows only recognized users within an organization (verified by a directory) to access and fill out forms. Therefore, forms they can’t be sent to vendors or customers.
- Data source: PowerApps doesn’t use XML, making it less flexible.
- Printing: PowerApps doesn’t allow forms to be printed.
InfoPath Tip, Tricks, and Best Practices
There are a number of ways to improve performance and the overall user experience when designing a form or template.
Performance Improvement Tips
- Keep the form as simple as possible to perform the required function. Avoid nested tables and nested repeating elements. A flat structure will load faster and save faster.
- Be thoughtful about what data is retrieved when the form is opened. The more data that’s retrieved, the longer the form takes to load.
- It’s better to have many form views (each with a small amount of business logic, and conditional formatting) instead of a single view that contains all of the template’s business logic.
- Filter data before it arrives to the form so that it doesn’t load unneeded data.
- Avoid multiple data connection queries.
- Don’t use custom code if there are rules available for the desired function.
- Delete unused fields when updating a form.
- Store photos and large files elsewhere rather in the form or a SharePoint Environment.
- Frequent server posts that occur in a form will result in poorer performance.
- Unless the formatted text is absolutely required, avoid Rich Text Boxes as they create excessing formatting data.
User Experience Tips
- Design with the user in mind. Make sure the fields flow in a logical order and are easy to read.
- Be thoughtful about the length of the form. A multipage form may be easier for users than one long-form.
- If a user’s data is available, load that information when the form is accessed.
- Enable submit functionality in the form template, even if the form is auto-submitting.
- Think mobile-first. As more people look at forms on mobile devices, make sure they are able to fill them out without a struggle.
Rules and Business Logic Tips:
- Give rules descriptive names. Things like “Rule 16” or “Submit Rule” is generic and not helpful for anyone else who looks at the template. Consider names like “Skip page 3 if UserAge field is less than 21” or “Require manager approval if TotalExpenses values are greater than or equal to limit.”
- Group rules by conditions. If more than one rule uses the same condition, then you’ll only have to edit the condition once if it changes.
- If rules don’t have conditions, make them separate actions to ease reordering them.
- Add rules that are “stop processing rules.” If the data in the form doesn’t require rules to be run, add a rule that looks for that. For example, if time cards don’t need manager approval if there’s no overtime, add a rule that stops the form from being sent to the manager.
- InfoPath provides default names whenever an element is added, such as Field1 or Button3. Form creators should always change these default names to describe the function of the field or control to make it easier on anyone else who has to work on the form. Since the InfoPath field name is used as column headers in SharePoint lists, it will help anyone who looks at SharePoint easily understand what’s in each column.
There are many user forums for form creators to use when they have questions. Some of the most established are InfoPath Dev, started in 2003, and VisualSP, founded in 2005 by Asif Rehmani. Of course, Microsoft has numerous support pages; a web search for the topic in question is the most efficient way to find those pages.
The same Sharepoint Support sources can help answer questions about creating templates. Some sites have downloadable document templates, but those downloads will have to be customized for most uses; because creating them in InfoPath is easy, it might be less effort to start from scratch.
InfoPath themes change the appearance of the form without changing the layout or the function. Those who aren’t visually-oriented may find that themes will help forms look better. Themes are available on the Page Design tab in InfoPath Designer.
The Technologies Behind InfoPath
Behind the scenes, InfoPath uses an XML (Extensible Markup Language) paradigm. It’s not necessary to understand how XML and the related standards InfoPath uses work, but an explanation of what each does is below.
XML: The data outputted by an InfoPath form is formatted in XML. Many programs can read XML data, so the collected data is easy to migrate and share. XML allows complex and flexible data structures, which gives InfoPath forms the ability to gather complex and diverse data from users. Custom XML data tags can be used, allowing forms to collect any kind data desired. The form’s formatting information is separated from the data collected from users, so changing the look of the form is simple.
Document Object Model (DOM): Used to map where form elements appear when the form is displayed.
Extensible Stylesheet Language Transformation (XSLT): Information about how the form is displayed is stored in an XSLT file. So a form’s appearance can be changed without affecting the data or business logic. XSLT creates browser-ready forms.
XML Schemas: The data entered into a form is validated via schemas. For example, a schema can ensure that there are no letters in a numeric-only field, or that required fields are not blank. This ability allows a form creator to enforce business rules.
Extensible Hypertext Markup Language (XHTML): Formats any part of the form that requires rich text.
XML Path Language (XPath): Connects related form parts, such as a control to the field it affects, or a label to the thing it describes. XPath can also link related fields on the document so that when the form is submitted it can be processed in a particular order.
XML Signatures: Allows the form to collect digital signatures, if desired.
Code, Scripts, and APIs in InfoPath
Advanced users can also use Microsoft.Office.InfoPath namespace components to create forms that incorporate business logic in code rather than via InfoPath components.
How Data is Stored and Accessed
The data gathered in a form can be stored in a SharePoint list or form library, in a database, sent to a web service, or emailed to any valid address. Form data sent via email can’t easily be complied with other data, but form data in a database or on SharePoint can.
Data displayed on a form can come from SharePoint or a database, or by interfacing with web services.
InfoPath can communicate with web services via these common protocols:
- Simple Object Access Protocol (SOAP)
- Web Services Description Language (WSDL)
- Universal Description Discovery and Integration (UDDI)
InfoPath allows form creators to set permissions for forms and for form templates. Setting form permissions is a useful tool to ensure that only the right users can access it. Setting template permissions will guarantee that only authorized people can make updates to the template.
What InfoPath Can’t Do
While InfoPath is a powerful tool, it falls short in some areas.
- The palate of Designer hasn’t kept up with the times, so forms have a dated look.
- There’s no mobile app for Designer, so all templates must be created on a computer.
- In some cases, form creators need to work with a server administrator in order for a form to be made available to users.
- When customizing a SharePoint list, some standard controls are not available (including repeating table, repeating section, optional section, choice group, and choice section).
The Future of InfoPath
Since Microsoft is terminating support for the products, InfoPath’s future is bleak. While the app will continue to work for a few more years, like most orphan products, there won’t be much effort put into the program so improvements and upgrades will be unlikely. Therefore it makes sense to start looking at alternative options now, especially if a lot of forms need to be converted.
Alternatives to InfoPath exist. Microsoft is recommending PowerApps as mentioned earlier. Other options, each with its own strengths and weaknesses, include (but are not limited to):
- Nintex Workflow
- Nitro Studio
- Pronto Forms
- Go Canvas
- Survey Monkey
|Where Your Data Is Stored|
|Customers store data (completely private)||no||no||no||yes||no||no||no|
|Vendors stores or sends your data through their cloud||yes||yes||yes||no||yes||yes||yes|
|Store data directly to customers data stores||no||no||no||yes||no||no||no|
|Support federated authentication||yes||no||no||yes||yes||no||no|
|HIPAA compliant||yes||yes||no||yes||no||yes||on demand|
|GDPR compliant||yes||no||no||yes||yes||yes||upon request|
|Live Data Connectors (native)|
|Query from Salesforce||no||no||no||yes||no||no||limited|
|Query from SharePoint libraries and lists||no||no||no||yes||no||no||limited|
|Query from Google Sheets||no||no||no||yes||no||no||yes|
|Query from SOAP web services||no||no||no||yes||no||no||limited|
|Query from REST web services||no||no||no||yes||no||no||limited|
|Submit to Salesforce||no||no||no||yes||no||via Zapier||limited|
|Submit to SharePoint libraries and lists||no||no||no||yes||no||no||limited|
|Submit to Google Sheets||no||no||no||yes||no||via Zapier||yes|
|Submit to SOAP web services||no||no||no||yes||no||via Zapier||no|
|Submit to REST web services||no||no||no||yes||no||via Zapier||no|
|Infopath Integration and Migration|
|Works with Microsoft InfoPath||no||no||no||yes||no||no||no|
|Has built in Infopath migration tools||no||no||no||yes||no||no||no|
How to Painlessly Transition from the InfoPath Plstform to a New Forms Solution
There are many options to replace InfoPath for creating forms. Formotus is one solution that provides a seamless InfoPath migration tool that enables you to turn your existing InfoPath form into rich mobile business apps that run on any iOS, Android or Windows 10 device. Watch this video below to see how quick and easy it is.
Formotus keeps the document-centricity of InfoPath, unlike many other forms services that store the data directly in a database, losing the relationship to the business logic and form layout. One of Formotus’ easy-to-use tools converts most existing InfoPath into forms that will preserve the same layout, business logic, and data connections as the InfoPath form. The resulting form uses responsive design so it will look good on both mobile devices and computers. Click here to start a free trial of Formotus team plan with Infopath support.
What are some common InfoPath controls and elements?
Text Box: A generic term for control where users can enter text.
Rich Text Box: Allows the entered text to be formatted (bold, colors, embedded tables, etc.).
Date Picker: The user can choose a date from a calendar so the format will be correct.
Checkbox: The user can select or ignore a single item, such as “Add me to your email list.”
List Box: Allows the user to select one option from a list. The list appears in a window that may be scrollable (depending on the length of the list versus the size of the window). Generally, a list box is used if the list has eight or more items.
Multiple-Selection List Box: Similar to a list box, but it allows the user to select multiple items.
Drop-Down List Box: Allows a long list of items to be displayed without taking up much screen space.
Plain List, Bulleted List, and Numbered List: Formatting options for an item displayed in a list.
Option Button: Also know as a Radio button, it allows users to assign a variable value to an item such as providing their opinion on an interaction (e.g. 1-7), or to select a single item from a list. An Options button is generally used if the list has seven or fewer items.
Section: The generic name for a group of related controls.
Optional Section: A section that isn’t required to be filled out for the form to be submitted.
Repeating Section: Allows users to add as many items as needed, such as a list of dependents on an insurance application, or a list of past positions on a job application.
Repeating Table: Similar to a repeating section, but in a tabular format, useful for entering outlays on an expense report, for example.
File Attachment: Allows users to upload a file to the form.
Picture Control: Similar to the file attachment, but for pictures.
Hyperlink: A link to an external website or to another form.
Expression Box: Also known as Calculated Value, an Expression box is used for showing the results of calculations that need to appear as text. For example, when a form displays information about items selected, an expression box can be used to display the total price or the total number of items. The result of the calculation isn’t saved in the form, but refreshed dynamically in the form layout.
Combo Box: A text box attached to a list box that allows users to select from a list or enter their own option if their choice isn’t on the list.
Choice Group: This element controls mutually exclusive sections on a form. For example, if a user needs to pick the option of ordering a Mac or Windows computer.
Choice Section: The option picked in the choice group will drive what displays in the choice section. Continuing with the example above, if Windows is chosen, then the choice section will show the available computers that run that OS.
Person/Group Picker: Also know as a Contact Selector, a picker allows a user to enter or choose a person or group from a list residing on a SharePoint site; the entry will be validated by the form.
External Item Picker: An element that allows the form to pull data from an external data source. If the form is stored on a SharePoint site, and also retrieves data from a database, then the database is considered an external data source.
What’s the difference for a user viewing a form in an InfoPath Filler vs a web browser?
The experiences are similar. The only difference is that in a browser window, toolbars appear across the top and bottom of the form. The toolbars display options for saving, closing, printing, and updating the form that is shown in menus in the Filler app. Brower based forms have more limited functionality than InfoPath Filler forms which run in the InfoPath client application.
What’s the last version of SharePoint that supports InfoPath?
Microsoft SharePoint 2010.
What if I can’t post a template on a SharePoint or other server myself?
Depending on the company policy and security needs, some form creators must publish the template to a shared location on their corporate network, then contact a server farm administrator for assistance making it available on the server.
Administrator approval is required in the following scenarios:
- The form template has managed code.
- The form template requires a Full Trust security level (this allows the forms to have full access to the system resources on users’ computers, like files and settings).
- The template uses data connections that are managed by an administrator.
- The form template is mobile-enabled.
If administrator approval is required, the Publishing Wizard walks through preparing the template for hand-off to an administrator.