This article will outline some possible alternatives to using the Ditto feature which has been discontinued:
Background on the Ditto feature:
- Ditto was a mobile app setting. If enabled, each time a user opens a new submission, it is pre-populated with every answer they included in their last form submission. This feature was built for V1 forms (now retired) and provided limited support for V2 forms.
- The Ditto feature was implemented in the mobile app back when V2 forms were not yet available (ie. things like conditional logic, repeatable sections, etc.. were not available in forms).
The Downsides of Ditto
- The legacy Ditto feature, when combined with conditional logic, led to unexpected behaviour that could result in data being filled in fields that conditional logic makes inaccessible, generating bad data.
- It was not possible to control if users could use Ditto or not, or which forms they could use ditto on; some customers found this problematic for forms that have a compliance purpose, as it allowed users to re-use data that should not be re-used.
- It was not possible to control which fields would be filled by Ditto, which meant that when a user is using Ditto to simply copy top-level information about a job, it copied more information than was wanted.
Evaluating Alternatives to Ditto
In most cases where our customers have been making use of Ditto, we have found that Ditto has been used as a way to make up for an inefficient form or workflow design that requires a lot of manual data entry from end users. Replacing the gains in efficiency that Ditto provided may simply mean making better use of the many features ProntoForms provides for building forms that are more efficient for users to fill.
While adopting these features might take a bit of form building work, the result will typically be a form that collects more consistent, higher quality data and is more enjoyable for your end users to interact with.
The features that work best for you will depend on how your end users are using forms in the field. Understand how your forms are being used, and what environment your users are working in.
[ top ]
Reducing Manual Data Entry
Sometimes, just choosing the correct question types and question settings will reduce the amount of typing required so that users can fill a form more efficiently. Whether or not you were using Ditto, these are great features to create forms that are faster to use.
These controls allows users to select items from a list rather than needing to type them.
These controls allow users to quickly enter numbers without using the keyboard.
Voice to Text
Many question types, such as the text area, allow users to leverage the mobile device's microphone an transcribe spoken words into written text. This may be more efficient that typing when answering longer questions.
Leverage OCR (optical character recognition) to take a picture of any text that might be hard to type, like serial numbers or other data from a data plate. The text can be easily transferred into the field.
[ top ]
Auto-Filling Fields to Reduce Repetitive Data Entry
Ditto is typically being used to pre-fill answers in a form. While Ditto fills ALL answers, in most cases, that isn't actually the desired result; only some questions need to be copied. There are a number of ways to build a form that more intelligently fills fields. The best solution will depend on what you are trying to accomplish.
Does a question typically have the same answer every time the form is used? Many question types support setting default values, which pre-fill answers when the form is opened by the end user. They can be modified by the user if the value is not read-only.
Data Sources and Populating Answers
Are there a limited number of ways the question can be answered? Or are users typing out related sets of information, like contact info, addresses, or their employee information?
A common practice is to add data which is commonly filled into a form into a Data Source, and use the data source to drive the answers being filled in on a form. For example, you could use a dropdown at the beginning to select something like job type, and have that selection fill in default answers for many other questions in the form. Learn more about populating answers from a data source.
If the data that needs to be filled is about the user (for example, which department they work in, their employee number) you can set up a User Data Source, which complies information about ProntoForms users, including any information on their user profile.
If questions should be pr-filled in only certain scenarios, Conditional Logic rules can be added to the form to set values of questions in a form. For example:
IF Question1 Equals <some answer>
THEN Question2 Is Set To <Answer you wish to be pre-filled in>
Are your users repeatedly submitting the same form, multiple times a day, for the same job/site visit? A common example of this submitting a form for every asset on a job site. In this case, you might be using Ditto to repeatedly fill the same job information for each asset.
In order to eliminate needing to copy this information, consider turning multiple submissions into one submission. Repeatable Sections are a good solution for collecting data about a variable number of things (assets, parts, labor, etc) for a single job. Any header information for those line items can be collected once in the form, in a regular section; only the unique data needs to be entered into a repeatable section.
Repeatable sections can also be pre-filled by a data source. For example, when you choose a job location, all assets for that location can be pre-filled.
Repeatable sections also provide a more structured and visually attractive experience for mobile users, and they significantly reduce your form-building time.
[ top ]
Workflow Alternatives to Ditto
In cases where the data changes more often than it makes sense to build into a form, some workflow alternatives may eliminate the need for ditto.
Dispatch or Bulk Dispatch
If the same data needs to be re-used for a number of form submissions, and this is known in advance, an administrator (or a user with the correct permissions for a formspace) could dispatch the data from the web portal.
End users simply launch the forms from the "Inbox" of the mobile app rather than the "Forms" area. Keep in mind that users will need to reconcile where they have network connectivity to receive the dispatches.
Dispatch a single form with unique data. This can be done through the web portal (with the data manually typed by someone, or copied/pasted from another source), or triggered by another system through the API (allowing the other system to provide the data so it does not need to be typed).
Bulk Dispatch allows an administrator to fill a spreadsheet with dispatches and send them out to users. Use the capabilities of Excel to copy values across multiple dispatches.
The dispatch destination easily replicates most of the functionality of Ditto, with some added benefits.
Set up your forms with a Dispatch Destination that is set up to dispatch "to the source form", so that all your forms can use the same Dispatch Destination. The destination will take all data in the original submission, copy it into a dispatch and send it to a user in their Inbox.
Some ideas to refine this process:
- Add a question to the end of your form like "Start a new copy". Add a filter to the destination so that it only triggers if that question equals "Yes", so that users control if they get a copy of the data or not.
- Set up your dispatch destination to only carry forward certain data. For example, you may want only the header information about a job to be carried forward.
A key limitation of the dispatch destination is that users must be working online to get the copy that is dispatched to them.
Get Help Choosing an Alternative
The best solution of the options listed above will vary by the form and use case. Please feel free to reach out to our customer support team (1-888-282-4184, email@example.com) if you have any questions. Alternatively, you can provide feedback for feature requests directly to our product team here: