Form Template Versioning is an important thing to consider when implementing Youreka. One of Youreka's benefits is that users can quickly and easily manage templates, create new versions, and deploy those new versions to users in short order. Considering this, it can be critical to ensure that you have a sound process for managing the versions of your templates as new revisions are created. This article will be broken down into different sections, firstly describing how Youreka's out-box-version control works, as well as a demonstration of different ways to manage versions in your Salesforce environment.
- Out of the Box Version Control
- Custom Version Control
- Form Template Naming Conventions
- Form Template Version Field
- Auto Version Numbering
Out of the Box Version Control
Out of the box, Youreka provides some standard controls for ensuring that you are properly versioning Form Templates. In order to understand this, consider the following scenario.
Suppose you are responsible for creating Form Templates in your Salesforce environment. You begin by creating a Form Template called Sample Form Template. This template is currently Published, available on mobile, and being used by your end users. There are several form records that exist that are using this template.
Now suppose that you want to make a change to this form template (perhaps you want to add or remove some questions). You can make changes to this template by either clicking the Edit button in the middle of the screen, or by clicking the gear icon in the top right corner, and selecting Copy for New Version.
In both of these situations, Youreka will clone the existing Form Template, and create a new one. This new Form Template will have identical sections, questions, question values, discovery rules, and will even have the same name - with the word (copy) appended to the end of it. The new version will be in Drafting status, and you will be redirected to the template builder to make your edits.
The reason why this happens is that Youreka does not let you edit a Form Template that has existing Form records which rely on it. We do this to ensure that forms which have been filled out in the past are not disrupted by revisions that you make in the future. Instead, Youreka forces you to copy the current version, make your revisions in the version, and then publish this new version for your users. Because of this, you should consider Youreka's out-of-box version control to be a "day-forward" approach to revising form templates.
This is the baseline offering that Youreka provides, as it pertains to version control. With that said, Youreka customers should strongly consider implementing version control measures which go beyond what Youreka provides out of the box. Listed below are some of our favorite examples, ordered from simplest to most complex.
Custom Form Template Versioning
Form Template Naming Conventions
The simplest way to manage form template versions is to establish a naming convention that you intend to use, across all templates. This might include a version number or lettering system. See the GIF below as an example.
This approach is great because it requires no configuration or customization. All that is needed is an agreed-upon numbering system. From here, the forms administrator can simply rename the Form Template record, including the version number.
Form Template Version Field
Another options for organizing your form template versions is to create a custom field on the Form Template object to track the version number. An example can be seen below:
This approach is similar to Form Template Naming Conventions, except the version numbers are housed in separate field on the Form Template. The benefit to this is that end users do not see version numbers on Youreka Mobile when filling out their forms. In the example above, end users would only see the Form Template Name, as opposed to a version number as well. As you can see in the image below, the left version is a bit cleaner than the right, because of the absence of version numbers.
The version numbers can be managed manually, simply by entering in the version number in the version number field from a Form Template list view.
Auto Version Numbering
This final example demonstrates how to create a process that automatically sets version numbers on your Form Templates, whenever you clone them. There are a few configurations that must be made in Salesforce in order to get this working (and there are also several ways you can accomplish this - this is just an example).
The first configuration that could be made is a lookup on Form Template object to Form Template (Self Relationship). This allows us to create a tie from one Form Template to another. In the image below, you can see the relationship, which we called Original Version. In this example, we are using the lookup relationship to tie back to the original version (Version 1) of a form template. After setting this field, every clone operation that is done moving forward will maintain this relationship, effectively creating a tree/hierarchy/family of Form Templates and their related versions.
Because we've established this relationship, we can now use automation to set version numbers on each of the templates in the tree. In this example, we've chosen to use Flow, but it could just as easily be done by using apex as well.
In the flow above, we are collecting all Form Templates which share the same original version, ordering them by CreateDate, and then applying an incremental version number to each. Finally, we're updating all of the form templates in the collection, with their appropriate version number.
Considerations for Form Template Versioning
- Consider setting outdated Form Templates to status Inactive once a newer form template version is published. An inactive Form Template will still allow users to submit forms using that version, but will prevent users from creating new forms using that version. Form Template statuses are great at rolling out new form templates, and sunsetting old ones. Depending on your implementation, you might choose to automate the changing of these statuses.
There are obviously many ways to manage form template versions, and the method for doing so will depend on your Youreka implementation. The important thing to remember is that, no matter how to choose to do it, version control is important. It keeps you organized, it ensures that each version builds off of the one before it, and ensures that every team member is on the same page regarding which types of forms are being used at any given time.