Field Rules

Background

One of the primary goals in automating forms is to make it easier for the user to fill out the form while ensuring they enter complete data. Quik! helps you achieve both of these goals by enabling you to set field rules that guide the user through the form filling process. The simplest and most effective type of rule is to require certain fields to be filled out, while the most complex rules can include custom popups so users can choose an entire block of data to fill in with a single click. All field rules are set up at the account level. In other words, field rules created by a customer will only apply to forms generated using their account credentials.

NOTE: Use of field rules requires some familiarity with how Quik! fields are named - please consult the Quik! Field Definition Reference Guide prior to configuring field rules, and do not hesitate to contact Quik! support for training and assistance. Quik! does not typically create rules directly for customers/partners, but instead offers tools and training to help get you started.



Field rules can be set in two basic ways:

  1. At run-time by the Quik! Forms Engine software (requires software development)

  2. Using the Field Rules manager in the Quik! Forms Enterprise Manager website (https://qcc.quikforms.com/QFE/ManageFieldRules.aspx) (can be performed by a business analyst)

Types of Rules

The following field rules (also called "field attributes") can be set up to apply to: 

  • Full Field Name (i.e. "1own.FName" for the Owner 1 First Name field only)

  • Partial Field Name (i.e. set the partial field name to "Date" to create a rule for all fields that contain the word 'Date')

  • Base Field Name (i.e. "FName" for all first name fields) 

  • Role Name (i.e. "own" for all fields with the 'owner' role or "1own" for all fields belonging to 'owner 1') 

Field rules can be applied to all forms in your library or to specific Form IDs only. 

Field Attribute/Rule List



Attribute / Rule Type

Description

Attribute / Rule Type

Description

AttachFile

Places an attachment icon next to a field, allowing a user to upload an attachment file to that field

AttachTitle

Sets the title text of the attachment window for a field (i.e. "Please upload a copy of your ID here"). Must be set to a field which also has the "AttachFile" attribute assigned.

BackColor

Sets the background color of a field (hex color code)

Calc Override

When a field is calculated by combining other fields together (e.g. FullName is the combination of FName, MName, LName) then setting the Calc Override property to TRUE will cause the field to not be calculated and whatever value you supply to the field to be used instead (for more on Calculated Fields, see here)

Default Value

Sets a value that will always be displayed in a field upon generating the form (can be edited by the user)

FieldType

Set the field to a pre-determined field type (month, week, time, or email)

Format

Set the format of a field (i.e. phone numbers, dates, zip codes, etc.) using numbers, alpha and alphanumeric placeholders and default characters.

  • Use a for alphabetic letter placeholders

    • Example: Use the format aa-aaaa if sending over data like “ABLSPD” to make it appear like AB-LSPD on the form.

  • Use # for numeric placeholders (Do not use # for Date fields. See below instructions for Date fields.)

    • Example: Use the format (###) ###-#### if sending over data like "8001234567" to make it appear like (800) 123-4567 on the form.

  • For Date fields:

    • When sending over a date without a timestamp, you can use either of the following formats:

      • MM/dd/yyyy

      • MM-dd-yyyy

    • When sending over a date with a timestamp, you can use either of the following formats:

      • MM/dd/yyyy should be used when including a timestamp after the date field (e.g. 08/19/2017 12:17:55 -0400).

      • yyyy-MM-dd when including a timestamp before the date field (e.g. 2017-08-19 12:17:55 -0400).

Hidden

Adds a field to the form as a Hidden HTML input type. Often used for internal tracking such as assigning a Transaction ID and passing data to the form so it can be submitted without showing the data to any users.

Mask

Causes the characters a user types into a field to be displayed as stars (similar to how passwords are displayed when logging into a website)

ReadOnly

Setting a field as ReadOnly will not allow a user to edit the value in it - it can only be read

RegEx

Set a Regular Expression rule for the field - a sequence of characters used to define a search pattern for that field

Required

Setting a field as Required creates a red outline around the field, highlighting it's importance on a form, and will not allow a user to submit the form until the field has been populated

RequiredByRefField

This is a conditionally required field. Setting a field to RequiredByRefField will only require the user to populate this field when another field name has a value.

RequiredByRefFieldValues

This attribute requires the RequiredByRefField property to be set. If RequiredByRefField is set, this optional setting determines the value in which the field becomes required.

Semi-Required

Sets the field to required on the first submit event only. Similar to Required, but instead of outright blocking a user from submitting a form until the field has been populated, the user will be able to submit the form the second time they click 'submit', even if the Semi-Required field is not filled out. The first 'submit' block essentially acts as a reminder to optionally fill out the Semi-Required fields.

Visibility

Sets the visibility of a field. Unlike the Hidden attribute the field must exist on the form and is not added at run-time.

AltDataButton

Adds an alternate data button next to the field (for more about Alt Data Buttons, see here)

DropDownList

Converts a text field into a drop-down list of values. If set, users must select one of the displayed values when filling out the form.

NOTE: Enter the list of values separated by commas.

NOTE: In order to create a blank value, begin the list with a comma (e.g.: ",Income,Balanced,Growth & Income" would result in a list of values that are blank when the form first loads, and then would appear in reverse order within the drop down). It would look like this:

NOTE: In order to apply a 'Required' rule to a DropDownList field, follow above example to begin list with a comma (in order to load the field with blank value).

OptionalEsignField

This DocuSign configuration allows you to set signature fields as optional during the E-Sign process.

To configure in the Quik! Forms Enterprise Manager:

  1. Specify a field name

  2. Choose Attribute Type: OptionalEsignField

  3. Enter Attribute Value: true

To configure programmatically: Refer to this article: https://efficienttech.atlassian.net/wiki/spaces/QAG/pages/137920520

Configuring Field Rules with the Quik! Forms Enterprise Manager

You can configure field rules using the user interface within the Quik! Forms Enterprise Manager. This user interface offers a graphics-based way to assign the field rules listed above, with no coding required. Please note that this approach still requires knowledge of how fields are configured on a form, as well as how Quik! defines field names. Quik! offers training on how to configure field rules using the Quik! Forms Manager.

Under 'Manage Field Rules', you will see 4 different ways to add new field rules:

  1. By Partial Field Name (NOT tied to a Quik! Field Definition)

  2. By Base Field Name (tied to a Quik! Field Definition)

  3. By Role Name (can include a role number if desired, or leave blank to assign rule to all fields with that role on the form(s))

  4. By Full Field Name (the most specific setting- assigns rule to a complete Quik! Field such as 1own.Fname for Owner 1 First Name only)


After selecting desired approach, implementing a field rule follows the same basic steps, listed below:



  1. Enter target field/role - enter the partial field name, choose the base field name, choose role name (and optionally, role number), or full field name to which you will be assigning the rule to. Field names and roles can always be found by launching a form, right-clicking on the field you need, and selecting "inspect". The field name will be displayed in the Elements window in your browser.


  2. Choose attribute type - select what type of field rule you are applying to the field. Each attribute is described in the table above.


  3. Enter attribute value - depending on which attribute type was selected, you will next enter the value you wish to assign. For example, if you wish to make your target field hidden, after selecting 'Hidden' in step 2, now select the 'True' value to apply this rule. 


  4. Recipient Type (optional for routing rules)- this step is intended for ViaForms users only, allowing the attribute to only apply to a specific route or recipient. If not using ViaForms, disregard this step.


  5. Click the 'Add Rule' button.


  6. Repeat steps 1-5 to add multiple rules at once.


  7. When finished adding rules, you may choose to apply these rules to a specific form in your library, or globally to all forms. To apply to a specific form, select the form company in the drop-down menu, then select the form you wish to add the field rule to with the green '+' button. To apply to all forms in your subscribed libraries, skip this step.


  8. When finished, click the 'Add Rules' button at the bottom of the page to create the rules.


  9. Scroll to the top of the page. Your new rule has now been added to your account in Test mode. This rule can be tested on form groups by selecting which group you want to test, and clicking the 'Test Forms' button. This will open the form with your rules in place, allowing you to see how the rules work on the form.


  10. After testing the rules, if you are satisfied with the results, you may choose to change the Status of your rule(s) from Test to Active when you are ready to implement the rules. Change the status, and click the 'SAVE' button to save the new status of the rules. Alternatively, if you have several rules in Test status that you would like to activate all at once, you may click the 'Activate' button to do so.


  11. You may always change the status of a rule back to Test, Inactive, or even delete the rule by changing the status and saving, or clicking the red '-' button, respectively.



Configuring Field Rules Programatically

Everything that can be done in the Field Rules manager website can be done in software code instead. The advantage of setting field rules in code is:

  1. Field rules set in code overrides the Field Rules manager settings (e.g. if you set a field as read-only in the Field Rules manager and then in code set it to not read-only, the field will not be read-only)

  2. Rules can be changed in real-time based on the logic of your code (e.g. maybe you want fields to be set read-only by default but unlock them for a specific step in your workflow)



 There are several ways to configure field rules programatically within the Quik! Forms Engine. All associated methods are listed and described below:



Method

Description

Method

Description

SetFieldPropertyByFieldName

Set all the fields of a given partial or full field name (e.g. "Date" or "1own.FName") to a property setting (e.g. read only, hidden, required, etc.)

SetFieldPropertyByRole

Set all the fields of a given role (e.g. "1own") to a property setting (e.g. read only, hidden, required, etc.)

AddFieldToForm

When adding a field to a form for prefilling data, you may also set the attributes of that field as well with AddFieldToForm (for more on this method, see here)

LoadXML

When adding a field to a form for prefilling data, you may also set the attributes of that field as well with LoadXML (for more on this method, see here)



There are also properties associated with using the Field Rules manager:



Property

Description

Property

Description

FieldAttributesManagerOff

When set to TRUE, this property tells the Quik! Forms Engine to ignore all rules created in the Quik! Forms Enterprise Manager, and only apply those created programatically. (Default is False)

FieldAttributesManagerTest

When set to TRUE, all forms generated will only use field rules that are currently in Test status. This is useful for testing how new field rules work before going live with them. (Default is False)



Other Notes & Known Issues

There are a few known issues with the Manage Field Rules user interface. They are described below:

  • Quik! does not currently support blank records in drop-downs. The field will default to the first value listed when displayed on the form.


  • Quik! does not currently support rule editing. To change a rule, it must be deleted, then re-created with desired changes, and saved as a new rule.


  • The Field Rules page performance may be slowed as more rules are added. Users will have to log out and log back in if and when the page crashes.


  • It is not recommended to create rules for fields that are not defined in the Quik! Field Definition (i.e. random field names like txt1.1.10.2). As the name of an undefined field may change when a form is updated, the rule may be lost or incorrectly assigned. It is recommended to only create rules for fields named within the Quik! Field Definition.


  • Every checkbox and radio button on a Quik! form has a field name and value. For creating field rules for checkboxes and radio buttons, the field name entered should be the exact field name from the Quik! Field Definition - only include the part of the field name after"QuikRadio<formID#>.". The value of a checkbox is the "Value" attribute of the target checkbox. 

    For example, say Form ID 38002 has a field for 3 possible Government ID types (Driver's License, Passport, and Other), and each is represented by a checkbox that a user may check. The 3 checkboxes are all part of the same field called "QuikRadio38002.1own.GOV.IDType", and each box has a value (Other = 0, Driver's License = 1, and Passport = 2). If you wanted to make a rule that the Passport box is always checked when launching the form, you would make the rule by selecting "Default Value", assigning it to the field "1own.GOV.IDType", and entering an attribute value of 2. The resulting field would look like this when the form is opened:

For help regarding Quik! Forms and the Quik! API
Email: support@quikforms.com | Phone: (877) 456-QUIK