Form Builder Help Guide Getting Started This guide covers the essential elements of a Strider form and introduces common functions that can be used to create your own customized form Last Updated: April 2016 Disclaimer The use of GPS devices, tablets and smartphones with MapItFast and associated AgTerra products The internal GPS in your device can be used independently from online services to automatically set location information in the app, which is recorded as latitude and longitude. GPS accuracy may be influenced by topology, environment and equipment. Furthermore, the accuracy of the maps used in MapItFast (and its associated products: Strider, SprayLogger and TrackItFast) are not guaranteed. Please use care when using MapItFast. MapItFast requires online data transfers for some features, such as accessing online maps and sharing exported files. Accessing these features over data network services may incur costs from your provider. If you use the app and data services on your tablet, you are responsible for any fees that your service provider charges. Your service provider is not the provider of MapItFast. AgTerra Technologies makes no representations, expressed or implied, as to data accuracy, completeness, validity or suitability. The end user assumes the entire risk as to the quality of the data. AgTerra shall not be liable regardless of the cause or duration, for any errors, inaccuracies, omissions, or other defects in, or untimeliness or unauthenticity of data; or for any delay or interruption in the transmission of data to the user; or for any losses, injuries or damages arising from its display or use. 2|Page S TABLE OF CONTENTS Overview & Resources 4 Basic Format 4 Excel formatting Necessary components Metadata 5 Behind-the-scenes data collection Question Types 5 Question types allowed in a form Appearance options Formatting Questions 15 Select-one and select-multiple questions Grouping questions on a single screen Repeat groups Skipping questions Hints 17 Add text to improve form useability Constraining Responses 18 Maintain uniform data with field contraints Formulas 18 Improve form functionality and data quality with formulas Settings Worksheet 19 Optional tab that allows for additional form customization Advanced Features 22 3|Page Overview & Resources There are various ways to build a form; this guide is based on XLSForm. The Strider interface is currently built following the ODK (OpenData Kit) platform and most forms built to work on ODK Collect will work on Strider. However, some features available on Strider are not available on ODK and vice versa, so forms will need to be tested. Any issues or questions should be directed to AgTerra Technologies, Inc. at email [email protected] or telephone 1-307-673-1050. AgTerra can provide form templates upon request. Below are some sample forms we have available: Weed Spray Tree Survey Rangeland Monitoring Seed Order Timesheet Expense Tracking Basic Format Forms must be uploaded to Strider in .xls format. To ensure that your Excel file is in this format, go to File → Save As, and select Excel 97-2003 Workbook from the file type dropdown menu. Each form must have a worksheet/tab called survey (all lower-case letters). This is where your questions will go. If the form is going to have any drop-down lists, a second tab is required – choices. A third, optional worksheet labeled settings may be used. More details on this worksheet are covered on Page 19. 4|Page Certain columns must be present in the workbook for the file to be valid. Optional columns allow for further control over the behavior of the entry. The following columns in pink are required in all forms; those in green are optional. type name label hint appearance relevant jr:count required constraint constraint_message TAB: survey Additional survey columns: calculation default choice_filter NOTE - All Excel formatting is ignored so dividing lines, shading, and font formatting can be used to make the file more readable. Metadata Metadata collects information that can be useful for identifying records as they are filled out and submitted. The user does not see these fields while filling out a form. type start end today deviceid subscriberid sim_serial phone_number TAB: survey name label start end today deviceid subscriberid simserial phonenumber Metadata is usually placed at the beginning of a form. Note that it is not necessary to fill out the label column for metadata fields. Question Types Question type determines how a field will be displayed in the form. Certain question types can be modified further using the ‘appearance’ column. These are described further on the next page. 5|Page Examples of allowed question types are listed below. Some questions can be given a different ‘look’ with the appearance column. If an appearance option is available, it is shown in the ‘appearance’ field below. An example of each question type is shown, both as it appears in the .xls form as well a screenshot of the question on the device. type Description appearance Description (Optional) text type text name some_text type integer A note appearance will increase the size of the text box, allowing for easier text entry when sentences are used. label hint required This is a basic fill-in-the-blank question. Please enter something – this will be the ‘title’ of your form This is a hint. Note you can enter up to 255 characters by default. If you want more (or less) you can define the number allowable. You can also ‘speak’ your answer if your device allows it. By the way, an answer to this question is ‘required’! yes type integer note Text input. Description appearance Integer (i.e., whole number) input. Only 9 digits allowed, no formatting such as ,+()etc. name tallyup counter Description Count up or down by tapping + or – on either side of the input line. label hint appearance Tally Counter Count up or down with a tap. A long press gives you 5 more. Or, enter a number. counter 6|Page type Description decimal name a_decimal label hint Enter a decimal: This question has a constraint so that the decimal must be less than the integer. Constraints are handy for the current input … but if you violate it you won't see the message until you swipe to the next page. type Description select_one [options] Multiple choice question; only one answer can be selected. Click here to learn about advanced select_one capabilities! type select_one yes_no Description Decimal input (15 digits allowed, including decimal) decimal type appearance appearance minimal compact autocomplete table list label/listnolabel constraint . <= ${tallyup} Description - Minimal appearance compresses selection options to a dropdown menu. - Compact arranges answer choices side by side. - Autocomplete allows for choices to be typed in or selected from a dropdown list. - Label and list-nolabel can be used in conjunction to create a table list when several questions have the same set of answers. Default Appearance name label hint select_example This is a select_one type question. In the type column you must include the name of a choices list that sets the available options. Choices lists are specified on the choices sheet. appearance 7|Page Minimal Appearance type name select_one yes_no select_example label This is a select_one type question. hint appearance This select_one question has a 'minimal' appearance. A drop-down list will appear when Select One Answer is tapped. minimal Compact Appearance type name select_one yes_no select_example label This is a select_one type question. hint appearance This select_one question has a 'compact' appearance. Choices are shown side-by-side on the screen. compact 8|Page Autocomplete Appearance type select_one weeds name weeds label hint appearance Big Pick List This question has an 'autocomplete' appearance. Select from big list or type new entry … the weed list here isn't that big, but you get the idea. autocomplete Table List Appearance type name label begin group table_list_example table-list group select_one level table_list_question_1 Question 1 select_one level table_list_question_2 Question 2 hint This group of questions has a 'table-list' appearance. appearance table-list A hint; 1 is low, 5 is high end group 9|Page Label/List NoLabel Appearance type name label hint appearance begin group table_list_example table-list group This group of questions has a 'table-list' appearance. field-list select_one level table_list_label 1 is low, 5 is high select_one level table_list_question_1 Question 1 select_one level table_list_question_2 Question 2 label list-nolabel list-nolabel end group type Description select_multiple [options] Multiple choice question; multiple answers can be selected. appearance minimal compact table list label/listnolabel Description All appearance options have the same functions as select-one question type. Note that most appearance options are available for both select one and select multiple questions. Autocomplete however, is only available for select one question types. Default Appearance type select_multiple a_b name select_multiple label hint Select multiple This is a select_multiple question. This field type allows for more than one option to be selected. appearance 10 | P a g e type Description appearance Description Display a note on the screen, takes no input. note Notes can be simple text or a combination of text and reference to previous fields as a way of summarizing data. The example below displays the results of a formula used earlier in the form. type note name calculate_output type label hint The sum of the integer and decimal: ${calculate} Just displaying the result of a calculated field here the two previous numbers added together. Lots more complex math is also possible. Description location (or geopoint) appearance appearance Description Collect GPS coordinates (Collects latitude, longitude, altitude, and GPS accuracy) This feature only works on a GPS-enabled device type name label hint appearance geopoint geopoint_test Record your location: You can capture latitude, longitude, altitude, and accuracy using your device GPS 11 | P a g e type Description image Take a picture (launches device camera); or select (launches browse) an image type image name photo type Description barcode type barcode label Take a picture: name barcode_test appearance annotate draw signature Description Annotate allows mark-ups to an image. Draw allows a sketch to be traced using finger or mouse. Signature brings up a signature line. hint appearance Take or choose a picture. You can also mark it up. annotate appearance Description Scan a barcode, requires that a barcode scanner app is installed. label hint Scan a barcode: You will need a barcode reader app installed. Collect a number or URL. appearance 12 | P a g e type Description date type date name date_test type label Enter a date: Description time type time Date input. name time_test appearance month-year year Description Select month and year or year only. hint appearance Defaults to today. appearance Description Time input. label Enter a time: hint appearance Defaults to now. 13 | P a g e type Description datetime type datetime appearance Description Date and time input. name datetime_test type label Enter a date and a time: Description calculate hint appearance Also defaults to now. appearance Description Perform a calculation. Calculate fields are not visible in a form, but can be seen in record details and reports. All available calculations are explained in the ‘Formulas’ section. type calculate name calculate_test label hint calculation ${a_integer}+${a_decimal} Email Submitted forms can also be sent to an email address as a report. One or more addresses can be manually entered (text question type), selected from a list (select_one or select_multiple), or hidden and automatically sent to a recipient when submitted (calculate). Construct examples for email recipients are shown below. 14 | P a g e type name text, select_one, select_multiple or calculate AUTO_EMAIL_ TO Email Report To Emails a copy of this report to entered email address when this form is submitted. text, select_one, select_multiple or calculate AUTO_EMAIL_ BCC Email Report To Emails a copy of this report to entered email address when this form is submitted. label hint If calculate is used, the following syntax is entered into the calculate column: if(1=1,’emailaddress’,’emailaddress’) To add more than two email fields to a form, simply add a unique AUTO_EMAIL_TO field. For example, if the first two fields are AUTO_EMAIL_TO and AUTO_EMAIL_BCC, the third email field can be AUTO_EMAIL_TO2. Formatting Questions Select One and Multiple Choice Questions Both ‘select one’ and ‘select all that apply’ questions can be used in a form. A second worksheet called choices must be added to the Excel workbook in order for these to be used. Here is an example of a select one question: type select_one yes_no TAB: survey name treatment label Treatment applied? List_name yes_no yes_no TAB: choices name label yes Yes no No Notice the question type ‘select_one list-name’ where ‘list-name’ must match a list from the ‘choices’ worksheet. Allow the selection of more than one answer with the select_multiple question type: type select_multiple weeds TAB: survey list_name weeds weeds weeds weeds name label treated_weeds Select all weeds treated: name Canada_thistle Common_burdock Common_tansy Dalmatian_toadflax label Canada thistle Common burdock Common tansy Dalmatian toadflax TAB: choices 15 | P a g e Grouping Questions Grouping questions allows you to apply rules to several questions. This feature can help organize your form so that it makes sense to the person filling it out. A common syntax used in the appearance column is field-list, which places all questions in a group on one page. You can group questions by sandwiching them between ‘begin group’ and ‘end group’ rows. type begin group text text text name employee_group name position supervisor label Employee Group Enter the employee Enter the employee’s job title. Enter the employee’s supervisor’s name. appearance field-list end group TAB: survey Notice you do not need an end group name or label, but you must have an end group for every begin group! To keep grouped questions on the same page, put field-list in the appearance column Repeat Groups Repeat groups are helpful anytime multiple sets of similar data need to be entered at one time. Repeat groups are created with a begin repeat and end repeat before and after the desired set of questions, just like regular groups. By default the user can enter as many repeat group entries as they wish, but this number can be constrained to a set number of entries using the specified syntax. type begin repeat begin group text text Text name employee_info employee_group name position supervisor label Employee Info Employee Group Enter the employee Enter the employee’s job title. Enter the employee’s supervisor’s name. appearance jr:count 3 field-list end group end repeat TAB: survey The jr:count column can be used to constrain a repeat group to a specific number of entries. You can put a number in this field or even reference an integer entered earlier in the form using the ${} syntax. 16 | P a g e Skipping Questions A great feature of Strider is the ability to skip a question based on the response to a previous question. This ‘skip logic’ improves form usability by making it dynamic and intuitive to a user’s responses. Skip logic is established using the ‘relevant’ column. The example above shows some convenient syntax that allows you to easily refer to previous fields: ${treatment} will be replaced with whatever was entered in the treatment question. type select_one yes_no select_multiple weeds name treatment treated_weeds label Treatment applied? Select all weeds treated: relevant ${treatment}=’yes’ TAB: survey These questions are not in a group or field list because the dependent question (treated_weeds) must be triggered by swiping to next page once the anchor question (treatment) has been answered. List_name yes_no yes_no TAB: choices name label yes Yes no No Note If relevance is based on a multiple choice question, use the following syntax: selected(${select_question}, 'optionD') Remember to use the value from the ‘name’ column of the choices tab when setting relevance! Hints Hints are easily added to any question by typing the desired text into the hint column of a form. This is a convenient way to add some extra instruction or clarification to a question. type text location name weather location Select_multiple weeds weeds label Weather GPS Location Weeds hint Describe the general weather conditions. This launches the GPS widget. Wait for a good satellite connection. Select all weeds observed within a 50-yard radius of location. TAB: survey 17 | P a g e Constraining Responses It is sometimes necessary to constrain responses to a question in order to maintain data consistency. For example, it wouldn’t make sense to have a response exceed the number 24 if the question pertained to daily hours. A custom constraint message can also be added to explain why a response is invalid. Some examples of constraints are shown below. type integer integer name hours units label Hours Worked Units text AUTO_EMAIL_TO Email Report To constraint . <= 24 . mod 4=0 Constraint_message Daily hours cannot exceed 24! Units must be in multiples of 4! regex(., '[A-Za-z0-9._%+]+@[A-Za-z0-9.-]+\.[A-Za- This isn't a valid email address z]{2,4}') TAB: survey Constraints can even be used in an email field to make sure an email address is entered correctly. Formulas Formulas are used in the constraint, relevant and calculate columns. Formulas are composed of functions and operators (+, -,*,div, etc). Calculates Strider can perform calculations using the values of proceeding questions. In most cases this will require use of a calculate question. For example, in the survey below we are calculating the amount of a chemical applied based on the user’s response to number of acres sprayed. type decimal calculate name acres_sprayed herb_amount label Number of acres sprayed? Tip shown is 20% of meal. calculation ${acres_sprayed} * 0.02 TAB: survey A calculate does not display to the user, so you can do calculations behind the scenes. A result can be displayed later in the form by using the ${} syntax in the ‘label’ column, making it a read-only field that the user can see but not modify. 18 | P a g e type note name herb_display label Gallons applied = ${herb_amount} TAB: survey It isn’t necessary to ‘hide’ calculations, however. Simply use a different question type, such as ‘decimal’ or ‘integer’, or if the calculation is a statement returning a string, use ‘text’. The formula evaluation functionality in Strider is provided by Javarosa. Some operators are listed here: Operator + * div = != < <= > >= or and mod Description Addition Subtraction Multiplication Division Equal Not equal Less than Less than or equal to Greater than Greater than or equal to or and Modulus (division remainder) Example ${number1} + ${number2} ${number2} - ${number1} ${number1} * 100 ${number1} div 4 ${price}=9.20 ${price}!=5.39 ${price}<6.76 ${price}<=6.75 ${price}>=7.00 ${price}>7.99 ${price}=9.80 or ${price}=9.70 ${price}>90 and ${price}<101 . mod 6 = 0 "/" has another meaning! Current entry must be divisible by 6 Settings Worksheet The settings worksheet is an optional feature that can be added to attach additional information to a form such as the form title, form ID, and form version. These fields are used to identify the form on the device and desktop. If an ‘instance_name’ field is used, each record will be given a unique name containing fields from the form. form_title form_id version instance_name ExampleForm2016 ExampleFormID_2016 01292016 concat(${some_text},' ',${today}) TAB: settings 19 | P a g e form_title: The name of the form presented to users. form_id: The name used to identify the form version: a version identification instance_name: this will replace the filled form name while it is still on the device. In this example, the form name will show the text entered in the field called ‘some_text’ followed by the date the form was saved. In the Strider app this will show up in the ‘Edit Forms on Device’, ‘Send Forms In’ and ‘Form Management’ menu options as the name of the form. A screenshot of the instance_name field is shown below: Instance_name Tips & Notes Uploading a Form - When you have built your form and are ready for testing, upload it to your Strider account, and download it to a device. If Strider Designing a Form - Keep in mind the device size and shape and how it will be used (i.e., indoors/outdoors; form filled all at once starting at the beginning, or portions prefilled; portrait or landscape or both; likely to be sent in at once or edited frequently after created; and so on. If not known, it’s best to design to the smallest form, such as a smartphone screen, and keep labels, hints, and groups/pages of questions short, to avoid unnecessary scrolling/swiping. Making changes to a form: When a form is uploaded, its database is saved to Strider. As long as this database is unchanged, a modified form can be uploaded to replace the previous version and all associated data will be saved. If the database is changed, however, a new form must be uploaded and any existing data copied over. The following lists some examples of changes that can be made without affecting the database structure as well as those that will require a new form. 20 | P a g e o WILL NOT change database structure: Making changes to labels, hints, rules, list choices, appearance, calculations, constraints, etc. Basically, changes made to any field besides the ‘type’ or ‘name’ column are acceptable. o WILL change the database structure: Adding or subtracting fields (including group and repeat group fields), changing field names or group names, changing the order of fields or field types, will change the database structure and require a new form. To test if your revised form ‘conforms’, try uploading it with the same form name and id with the previous version still in your account. You will get a message telling you if your upload was successful or not. If you receive an error, the form database was most likely changed and you will need to save it as a new form with new name, id and database or delete the old form. If most of the data fields are the same and you want to migrate data from an old form to a new one, use the Copy Data feature in Form Management. This feature will only copy data from matching fields, so any fields that don’t match will be left blank. Display previous answers: You can display a previous result in the label column using the syntax: ${prevresult} and adding any additional text. Repeat groups: At this time, only one level of repeat groups can be handled by Strider (i.e., you cannot have a repeat group within a repeat group) Syntax: Watch out for spaces. Use underscores for spaces in the names column of the survey sheet, and for choices in the lists on the choices worksheets. Also avoid special characters. It’s best to stick to alphanumeric and underscores for these fields; if not, test thoroughly before using. You are now familiar with basic XLS form constructs and capabilities. To learn about additional functions available in forms, refer to the Advanced Features pages below. Steps for uploading a completed form and managing forms in Strider can be found in the Strider Forms User Guide. Additional questions can be directed to AgTerra Technologies at 1-866-408-2675 or e-mail [email protected]. 21 | P a g e Advanced Features Cascading Selects Cascading selects help narrow down choices for select one questions. For example, a user could select a state and see only counties from that state, then select a county and only see cities in the selected county. When designed properly, cascading selects can make forms both easier to navigate and increase the accuracy of the data collected. A cascading select requires additional column(s) in the choices tab. An example of a cascading select is shown below. type name label choice_filter select_one states select_one county select_one cities state county city State County City state=${state} state=${state} and county=${county} TAB: survey list_name name label state county states states counties counties counties counties cities cities cities cities cities cities cities cities texas washington king pierce king cameron dumont finney brownsville harlingen seattle redmond tacoma puyallup Texas Washington King Pierce King Cameron Dumont Finney Brownsville Harlingen Seattle Redmond Tacoma Puyallup washington washington texas texas texas texas texas texas washington washington washington washington king king cameron cameron king king pierce pierce TAB: choices Note the additional columns in the choices tab, which are referenced in the choice_filter column in the survey tab 22 | P a g e How cascading selects work in a form: First selection establishes the state. Second selection is narrowed down to counties within the selected state. Third selection shows only the cities in the selected county. Data Pre-loading (Lookup Tables) Data pre-loading is an exciting new feature that allows you to load existing data into a form using CSV files. This allows for faster data entry into forms and helps to maintain data consistency. Saving the data in a separate CSV file also allows for larger data sets to be used, which may not be feasible in the form itself. The following are some scenarios in which CSV data can be useful: - Generating customer contact information after a customer name is selected from a list. - Calculating the amount of chemicals used in a tank mix spray by selecting the mix and amount applied. - Using cascading selects to narrow down a zip code by selecting a state and a city. 23 | P a g e Basic Setup In order for a form to correctly pull data from the CSV, it must contain syntax which references the desired CSV. The CSV, in turn, must contain the correct columns and naming conventions in order for the form to recognize it. The following is a simple example of how a zip code can be generated using cascading selects and data from a CSV file: .XLS File type select_one states select_one cities text name label appearance state State: search('zipcodes') city City: zip Zip Code: search('zipcodes','matches','stateid',${state}) TAB: survey list_name name label states stateid state cities zip_key city TAB: choices calculation Remember to reference the CSV in the choices tab! pulldata('zipcodes','zip_key','zip_key',${city}) Search functions in the appearance column tell the form which CSV file to use. If cascading selects are desired, the ‘matches’ or ‘contains’ syntax is required. If this is the case, the third component is the associated ‘_key’ or ‘id’ column, and the fourth component is the previous field that is being further narrowed down. Note - Minimal and autocomplete appearance can also be used. The pulldata function is used to populate a field (or fields) with data once a selection has been made in a previous question. This is how the formula works: pulldata(‘CSV name’,’column within CSV that will be shown in form’,’key or id column that will sort the data’,${previous field upon which data is based}) .CSV File zip_key city stateid state 82801 Sheridan 1 Wyoming 82716 Gillette 1 Wyoming 80301 Boulder 2 Colorado 80521 Fort Collins 2 Colorado 59102 Billings 3 Montana 59715 Bozeman 3 Montana File Name = zipcodes.csv Be aware of any capitalization when naming your CSV file. It must exactly match the name in your .xls form. A _key field is the unique identifier for a row of data. It can contain either numbers or text, but no spaces. An id field is used when there is a search function in the form and the column being searched contains duplicate values. This column should contain numbers. 24 | P a g e Much like cascading selects, the ‘city’ field shows only cities in Colorado when that state is selected. Once the city has been chosen, the zip code field will be populated with the corresponding data from the CSV file. Note that each of these questions must be on its own page so that a ‘swipe’ will trigger the next set of data. Importance of the Key column in a CSV It’s important to remember that pre-populated text must have a unique ‘key’ value to reference in the CSV. Therefore, the final select list should search using the ‘key’ column in the CSV. In this example, the city question is searching the zip_key CSV column and displaying choices from the city CSV column. It then uses the zip_key value chosen by the user to determine what to display in the zip text field. If the list were to search using a column without unique values (such as an ‘id’ column), the form wouldn’t know what text to pull and the pre-populated text box would be blank. User Editing of Pre-Loaded Data Because pulldata() function is a calculation, any data pre-loaded into a text field using this function is read-only. It will appear to users as though it is an editable text field, however any edits that are made will not be saved. The form will only use what it sees in the CSV. One way to allow editing of pre-loaded fields is to add once( at the beginning of a pulldata statement. This tells the form to only run the calculation once, making it editable after the data has been placed on the text line. There is a drawback however – if a user goes back in the form and changes a selection tied to that pulldata field, the data in that field will not update because the once() syntax only allows the calculate to run one time in that form. To make the Zip Code field editable, the calculation could be changed to read once(pulldata('zipcodes','zip_key','zip_key',${city})). This tells the form to run the calculation only one time and allow the user to change the data after the fact. Note – Any changes a user makes to pre-loaded data will not affect or update any data in the CSV. 25 | P a g e In order to maintain data integrity and still allow for user editing of pre-populated fields, it might be helpful to combine regular pulldata fields with once(pulldata( fields. For example, one page in the form could use the pulldata function to fill all relevant fields and the user would be instructed to review the fields for accuracy. If any fields required changes, the user could go to a new page with once(pulldata( fields where they would be able to overwrite the necessary fields and leave any correct data intact. CSV Data and the Strider Database When Strider gathers data from a submitted form, it saves pre-loaded ‘pulldata’ field values just as they appear in the form. Select lists, however, are handled differently. When a selection is made to a CSVassociated select list, Strider saves the ‘key’ or ‘id’ value to the database rather than the ‘label’ value. Therefore, if you need to see the ‘label’ value of a selected choice, it is a good idea to add a calculate field to the form that contains a pulldata function to generate the value from the ‘label’ column. .XLS File type name select_one state_search label states select_one cities city text zip calculate state State: search('zipcodes') City: search('zipcodes','matches' ,'stateid',${state}) Zip Code: state name TAB: survey list_name appearance name label states stateid state cities zip_key city calculation It is helpful to give the list a database name that makes it discernable from the pulldata field so you know which data field to use when building reports. pulldata('zipcodes','zip_key','zip_key',${city}) pulldata(‘zipcodes’,’state’,’zip_key’,${city}) Insert a new calculate field after the select list to generate the “true” value of the choice list selection. Remember to use the data field working off of the key column of your CSV. If you don’t, the form won’t know where to look and this field will be blank. TAB: choices 26 | P a g e The figure below shows how data will look in the Records page of the Strider website when a form is submitted. The calculated ${state} field can now be used in reports and data exports. The select-one ${state_search} field records the zip_key value. The ${state} calculate field records the state field. Uploading CSVs to Strider CSV files are uploaded after the .xls file has been uploaded to Strider. This is done by clicking the Associated Files link next to the appropriate form in Form Management. This will open a window that will allow you to upload your support CSV files to the form. 27 | P a g e
© Copyright 2026 Paperzz