Skip to main content

Kinesis Support

All the topics, resources needed for Kinesis.

FocusVision Knowledge Base

Survey Importer

The term Document Uploader refers to our Survey Importer feature in this entry. For information on uploading files to your installations, please see the File Manager. For information on the question type that allows respondents to upload files, see the File Upload Question Type entry.

Surveys can also be created using the Document Import feature. Here, surveys are programmed in a text document, but some features still must be programmed with the GUI. The primary advantage of using this method is that surveys can be authored when Internet access is unreliable or not available, or when a very short deadline or working environment creates a preference for a team approach.

1:  How to Import Files

To access the Survey Upload feature, click on ‘Import questions from file’ on the right-hand side of the My Survey Project page or click the  icon from the Survey Editor.

This will take you to a screen that looks similar to the following example. If there are already questions programmed in this survey, you will receive a warning message. Surveys built using the Upload feature must be started from scratch or existing questions will be deleted. The help file, , will provide extensive instructions for creating your survey document. Once the questions have been uploaded, click on ‘Browse’ to upload them from your computer.

Important: Remember that each time a file is imported it will override the existing survey structure.

2:  Document Import Syntax

The Document Import feature within Kinesis Survey allows for the entire structure of a survey to be imported via an external text file. The following documentation outlines the allowed survey elements, the proper syntax to use for each and several examples.

2.1:  Input Types

The following input types may be used to define acceptable values for a particular property:

expression
Any conditional logic expression, which usually returns TRUE or FALSE (e.g. $Q1==1 AND $Q2[2]==1).
question label
Any question label defined elsewhere in the import file.
number
Any number, usually an integer value.
text
An alphanumeric string of text.
csv
A list of values separated by a comma (e.g. "Basketball,Soccer,Football" or "50,20,,50,100")

Any bolded values within the documentation define defaulted values.

In general, line breaks are used to separate elements within the file. Any extraneous line breaks within a single element may cause errors upon import. Please refer to the sample import files and examples to see how line breaks are used properly within the syntax.

2.2:  Multi-line expressions

Expressions that carry over onto multiple lines must be written in the following form:

<<COND
<INSERT EXPRESSION HERE>
COND

For example:

logic: <<COND
if ($Q1[1]==1) return "GROUP A";
elseif ($Q1[2]==1) return "GROUP B";
else return "NO GROUP";
COND

2.3:  Comments

Comments may be inserted anywhere in the file using the following methods:

// Single line comment
 
# Another single line comment
 
/* This is a 
   multi-line comment */

You may wish to preface your document with a header using commenting. For example:

// ***********************************
// Survey Name: Client Branding Survey
// Survey ID: 85
//
// Author: John Smith
// Doc version: 2.1
// Notes: N/A
// ***********************************
/*************************************
 * Survey Name: Sports Activity Survey
 * Survey ID: 234
 * Job Code: SAS-2010
 * 
 * Author: John Smith <john.smith@domain.com>
 * Co-Author: Jane Doe <jane.doe@domain.com>
 * 
 * Change Log:
 *   09/11/2010 - Added Least-Filled Quota
 *   09/01/2010 - Initial Creation
 ************************************/

2.4:  Set Defaults

Defaults for the entire document may be defined at the top of the import file. If a property is defined at this level, it does not also need to be defined at the question level when setting the same value.

set defaults
<default property>: <property value>

2.4.1:  Default Properties

Name Value Description
required yes, no Determines whether all questions are required by default.
pagebreak yes, no Determines whether all questions contain a pagebreak by default.

2.4.2:  Example

set defaults
pagebreak: yes
required: yes

2.5:  Question Types

All questions follow the same general syntax:

<label>. <question text>
type: <question type>
<question property>: <property value>

Depending on the question type, they may also include choices and choice properties:

<choice value>. <choice text> 
<choice property>: <property value>

2.5.1:  Checkbox Question Type

<label>. <question text>
type: checkbox
<question property>: <property value>
<choice value>. [Other:] <choice text> 
<choice property>: <property value>

The Other: declaration is optional and if added will append an "Other" field onto then end of the choice.

2.5.1.1:  Question Properties
Name Value Description
condition expression This expression shows the question if true.
branchcondition expression This expression branches to the question label defined in property "branchto".
branchto question label The question label to branch to if property "branchcondition" evaluates to true.
defanswervalue number The choice id that should be used as the default value.
defanswercondition expression This expression returns a valid choice id, false or @ as the default value.
defansweralways yes, no Determines if defanswervalue or defanswercondition will be used.
prepopurl yes, no Marks question for prepopulation from URL.
prepopcsv yes, no Marks question for prepopulation from CSV.
required yes, no Marks question as required.
pagebreak yes, no Marks question to have a page break after it.
display always, never, nodefanswerfound Determines when the question should be displayed.
validate expression This expression shows the property "message" if true.
message text This is the text to display if the expression in property "validate" is true.
randmode randomize, randomrotate, randomrotatereverse Sets the randomization mode that will be used to randomize choices.
columns number The number of choice columns to display.
columnwidth number The width of the displayed choice columns.
randseq number (sequence ID) Assigns a random sequence ID to use for the randomization. (Random sequence must be defined elsewhere in the file)
printorder toptobottom, lefttoright Sets how to display answer choices in multiple columns
2.5.1.2:  Choice Properties
Name Value Description
condition expression This expression shows the choice if true.
randomize yes, no Determines if this choice will be included in the randomization.
quota number A simple quota to be placed on the choice.
customvalue number A custom value to be placed on the choice.
header text The header to display above the choice.
headerrandomize yes, no Marks the header to be randomized.
size number The width of in characters for an other field.
maxlen number The maximum length of an other field.
image text The default unselected image shown for the choice. Use filename as indicated in File Manager.
imageselected text The image shown for the choice when selected. Use filename as indicated in File Manager.
2.5.1.3:  Examples

Simple Example:

Q1. This is my question text.
type: checkbox
1. Choice 1
2. Choice 2
3. Choice 3

Complex Example:

Q1. This is my question text.
type: checkbox
required: yes
pagebreak: no
2. Choice 1
randomize: yes
50. Other: Choice 2
randomize: yes
99. Choice 3
exclusive: yes
quota: 100

Return to top

2.5.2:  Computational Question Type

<label>. <question text>
type: computational
<question property>: <property value>
2.5.2.1:  Question Properties
Name Value Description
condition expression This expression shows the question if true.
pagebreak yes, no Marks question to have a page break after it.
logic expression This contains the logic of the computational.
2.5.2.2:  Examples

Simple Example:

Q2. This is my question text.
type: computational
logic: return (25 * 100);

Complex Example:

Q2. This is my question text.
type: computational
logic: <<COMP
if ($Q1[1]==1) return "GROUP A";
else return "GROUP B"
COMP

Return to top

2.5.3:  Date Question Type

<label>. <question text>
type: date
<question property>: <property value>
2.5.3.1:  Question Properties
Name Value Description
condition expression This expression shows the question if true.
branchcondition expression This expression branches to the question label defined in property "branchto".
branchto question label The question label to branch to if property "branchcondition" evaluates to true.
defanswervalue number The choice id that should be used as the default value.
defanswercondition expression This expression returns a valid choice id, false or @ as the default value.
defansweralways yes, no Determines if defanswervalue or defanswercondition will be used.
prepopurl yes, no Marks question for prepopulation from URL.
prepopcsv yes, no Marks question for prepopulation from CSV.
required yes, no Marks question as required.
pagebreak yes, no Marks question to have a page break after it.
display always, never, nodefanswerfound Determines when the question should be displayed.
validate expression This expression shows the property "message" if true.
message text This is the text to display if the expression in property "validate" is true.
dateformat YYYY-MM-DD, YYYY.MM.DD,

YYYY-MM, YYYY.MM, MM-DD, MM.DD, MM/DD, MM/DD/YY, MM/DD/YYYY, MM/YY, MM/YYYY, MM.YYYY, MM.DD.YYYY, MM.DD, DD/MM/YY, DD/MM

Defines what date format will be requested from the panelist. This effects how the question type will be displayed to the panelist as well.
yearrangefrom number The first year to accept as valid.
yearrangeto number The last year to accept as valid.
monthrangefrom number (1-12) The first month to accept as valid.
monthrangeto number (1-12) The last month to accept as valid.
dayrangefrom number (1-31) The first day to accept as valid.
dayrangeto number (1-31) The last day to accept as valid.
2.5.3.2:  Examples

Simple Example:

Q3. This is my question text.
type: date

Complex Example:

Q3. This is my question text.
type: date
required: yes
pagebreak: no
dateformat: YYYY-MM-DD

Return to top

2.5.4:  Number Question Type

<label>. <question text>
type: number
<question property>: <property value>
2.5.4.1:  Question Properties
Name Value Description
condition expression This expression shows the question if true.
branchcondition expression This expression branches to the question label defined in property "branchto".
branchto question label The question label to branch to if property "branchcondition" evaluates to true.
defanswervalue number The choice id that should be used as the default value.
defanswercondition expression This expression returns a valid choice id, false or @ as the default value.
defansweralways yes, no Determines if defanswervalue or defanswercondition will be used.
prepopurl yes, no Marks question for prepopulation from URL.
prepopcsv yes, no Marks question for prepopulation from CSV.
required yes, no Marks question as required.
pagebreak yes, no Marks question to have a page break after it.
display always, never, nodefanswerfound Determines when the question should be displayed.
validate expression This expression shows the property "message" if true.
message text This is the text to display if the expression in property "validate" is true.
wholes number Sets the character length of the input field.
decimals number Increases input character length to account for given number of decimal spaces accepted.
minvalue number Minimum accepted number value
maxvalue number Maximum accepted number value
forceformat yes, no Forces the input to match exactly to the values set for the wholes and decimal attributes.
thousandseparator yes, no Adds thousands separator commas where necessary when storing the value to the database.
prefix text Text to display before the input field.
postfix text Text to display after the input field.
2.5.4.2:  Examples

Simple Example:

Q4. This is my question text.
type: number

Complex Example:

Q4. This is my question text.
type: number
wholes: 5
decimals: 2
minvalue: 0
maxvalue: 100
postfix: %
required: yes
pagebreak: no

Return to top

2.5.5:  Pulldown Question Type

<label>. <question text>
type: pulldown
<question property>: <property value>
<choice value>. <choice text>
<choice property>: <property value>
2.5.5.1:  Question Properties
Name Value Description
condition expression This expression shows the question if true.
branchcondition expression This expression branches to the question label defined in property "branchto".
branchto question label The question label to branch to if property "branchcondition" evaluates to true.
defanswervalue number The choice id that should be used as the default value.
defanswercondition expression This expression returns a valid choice id, false or @ as the default value.
defansweralways yes, no Determines if defanswervalue or defanswercondition will be used.
prepopurl yes, no Marks question for prepopulation from URL.
prepopcsv yes, no Marks question for prepopulation from CSV.
required yes, no Marks question as required.
pagebreak yes, no Marks question to have a page break after it.
display always, never, nodefanswerfound Determines when the question should be displayed.
validate expression This expression shows the property "message" if true.
message text This is the text to display if the expression in property "validate" is true.
randmode randomize, randomrotate, randomrotatereverse Sets the randomization mode that will be used to randomize choices.
randseq number (sequence ID) Assigns a random sequence ID to use for the randomization. (Random sequence must be defined elsewhere in the file)
2.5.5.2:  Choice Properties
Name Value Description
condition expression This expression shows the choice if true.
randomize yes, no Determines if this choice will be included in the randomization.
branchto question label Defines the question label to branch to.
quota number A simple quota to be placed on the choice.
customvalue number A custom value to be placed on the choice.
header text The header to display above the choice.
2.5.5.3:  Examples

Simple Example:

Q5. This is my question text.
type: pulldown
1. Choice 1
2. Choice 2
3. Choice 3

Complex Example:

Q5. This is my question text.
type: pulldown
required: no
pagebreak: yes
1. Choice 1
randomize: yes
2. Choice 2
randomize: yes
3. Choice 3
quota: 100

Return to top

2.5.6:  Radio Question Type

<label>. <question text>
type: radio
<question property>: <property value>
<choice value>. [Other:] <choice text>
<choice property>: <property value>

The Other: declaration is optional and if added will append an "Other" field onto then end of the choice.

2.5.6.1:  Question Properties
Name Value Description
condition expression This expression shows the question if true.
branchcondition expression This expression branches to the question label defined in property "branchto".
branchto question label The question label to branch to if property "branchcondition" evaluates to true.
defanswervalue number The choice id that should be used as the default value.
defanswercondition expression This expression returns a valid choice id, false or @ as the default value.
defansweralways yes, no Determines if defanswervalue or defanswercondition will be used.
prepopurl yes, no Marks question for prepopulation from URL.
prepopcsv yes, no Marks question for prepopulation from CSV.
required yes, no Marks question as required.
pagebreak yes, no Marks question to have a page break after it.
display always, never, nodefanswerfound Determines when the question should be displayed.
validate expression This expression shows the property "message" if true.
message text This is the text to display if the expression in property "validate" is true.
randmode randomize, randomrotate, randomrotatereverse Sets the randomization mode that will be used to randomize choices.
columns number The number of choice columns to display.
columnwidth number The width of the displayed choice columns.
header text The header to display above the choice.
headerrandomize yes, no Marks the header to be randomized.
randseq number (sequence ID) Assigns a random sequence ID to use for the randomization. (Random sequence must be defined elsewhere in the file)
printorder toptobottom, lefttoright Sets how to display answer choices in multiple columns
2.5.6.2:  Choice Properties
Name Value Description
condition expression This expression shows the choice if true.
randomize yes, no Determines if this choice will be included in the randomization.
branchto question label Defines the question label to branch to.
quota number A simple quota to be placed on the choice.
customvalue number A custom value to be placed on the choice.
header text The header to display above the choice.
headerrandomize yes, no Marks the header to be randomized.
size number The width of in characters for an other field.
maxlen number The maximum length of an other field.
image text The default unselected image shown for the choice. Use filename as indicated in File Manager.
imageselected text The image shown for the choice when selected. Use filename as indicated in File Manager.
2.5.6.3:  Examples

Simple Example - Radio Question with three choices.

Q6. This is my question text.
type: radio
1. Choice 1
2. Choice 2
3. Choice 3

Complex Example - Radio Question with three choices. Question is required and has no page break after. Two choices are randomized, one choice has a quota and all choices have custom values.

Q6. This is my question text.
type: radio
required: yes
pagebreak: no
2. Choice 1
randomize: yes
50. Other: Choice 2
randomize: yes
99. Choice 3
quota: 100

Return to top

2.5.7:  Extratext / Info Question Type

<label>. <question text>
type: info
extratext: <extra text content>

2.5.8:  Ranking Question Type

<label>. <question text>
type: ranking
<question property>: <property value>
<choice value>. <choice text>
<choice property>: <property value>
2.5.8.1:  Question Properties
Name Value Description
condition expression This expression shows the question if true.
branchcondition expression This expression branches to the question label defined in property "branchto".
branchto question label The question label to branch to if property "branchcondition" evaluates to true.
defanswervalue number The choice id that should be used as the default value.
defanswercondition expression This expression returns a valid choice id, false or @ as the default value.
defansweralways yes, no Determines if defanswervalue or defanswercondition will be used.
prepopurl yes, no Marks question for prepopulation from URL.
prepopcsv yes, no Marks question for prepopulation from CSV.
required yes, no Marks question as required.
pagebreak yes, no Marks question to have a page break after it.
display always, never, nodefanswerfound Determines when the question should be displayed.
validate expression This expression shows the property "message" if true.
message text This is the text to display if the expression in property "validate" is true.
randmode randomize, randomrotate, randomrotatereverse Sets the randomization mode that will be used to randomize choices.
showrank yes, no Shows the numeric rank next to the choice text.
scores csv Scores associated with each choice id.
minselect number The lowest acceptable count of choices selected.
maxselect number The highest acceptable count of choices selected.
randseq number (sequence ID) Assigns a random sequence ID to use for the randomization. (Random sequence must be defined elsewhere in the file)
2.5.8.2:  Choice Properties
Name Value Description
condition expression This expression shows the choice if true.
randomize yes, no Determines if this choice will be included in the randomization.
2.5.8.3:  Examples

Simple Example:

Q7. This is my question text.
type: ranking
1. Choice 1
2. Choice 2
3. Choice 3

Complex Example:

Q7. This is my question text.
type: ranking
required: no
pagebreak: yes
minselect: 2
1. Choice 1
randomize: yes
2. Choice 2
randomize: yes
3. Choice 3

Return to top

2.5.9:  File Upload Question Type

<label>. <question text>
type: upload
<question property>: <property value>
Name Value Description
maxuploads integer (1-50) The max number of files a respondent is allowed to upload. Must be a valid number, 1 or greater.
typesallowed expression Comma separated list of allowed filetypes
2.5.9.1:  Example
Q1. Question text
type: upload 
maxuploads: 1 
typesallowed: jpg,png,gif

2.5.10:  Slider Question Type

<label>. <question text>
type: slider
<question property>: <property value>
2.5.10.1:  Question Properties
Name Value Description
condition expression This expression shows the question if true.
branchcondition expression This expression branches to the question label defined in property "branchto".
branchto question label The question label to branch to if property "branchcondition" evaluates to true.
defanswervalue number The choice id that should be used as the default value.
defanswercondition expression This expression returns a valid choice id, false or @ as the default value.
defansweralways yes, no Determines if defanswervalue or defanswercondition will be used.
prepopurl yes, no Marks question for prepopulation from URL.
prepopcsv yes, no Marks question for prepopulation from CSV.
required yes, no Marks question as required.
pagebreak yes, no Marks question to have a page break after it.
display always, never, nodefanswerfound Determines when the question should be displayed.
validate expression This expression shows the property "message" if true.
message text This is the text to display if the expression in property "validate" is true.
slidertype single, dual, range Determines the type of slider.
displayvalue yes, no Determines if the selected value in the slider will be displayed in an additional box.
minvalue number The minimum value allowed.
maxvalue number The maximum value allowed.
length number The length (in pixels) of the slider.
ticksize number The spacing the slider moves to per interval.
tickmarks number The spacing for the tick marks on a slider.
minlabel text The text displayed for the minimum label.
maxlabel text The text displayed for the maximum label.
animate yes, no If set to "yes", the slider box wil slide smoothly when clicking tickmarks on the slider to change the response.
showtickmarks yes, no Determines whether the tickmarks are displayed.
2.5.10.2:  Examples

Simple Example:

Q8. This is my question text.
type: slider

Complex Example:

Q8. This is my question text.
type: slider
slidertype: dual
required: yes
pagebreak: no

Return to top

2.5.11:  Text Question Type

<label>. <question text>
type: text
<question property>: <property value>
2.5.11.1:  Question Properties
Name Value Description
condition expression This expression shows the question if true.
branchcondition expression This expression branches to the question label defined in property "branchto".
branchto question label The question label to branch to if property "branchcondition" evaluates to true.
defanswervalue number The choice id that should be used as the default value.
defanswercondition expression This expression returns a valid choice id, false or @ as the default value.
defansweralways yes, no Determines if defanswervalue or defanswercondition will be used.
prepopurl yes, no Marks question for prepopulation from URL.
prepopcsv yes, no Marks question for prepopulation from CSV.
required yes, no Marks question as required.
pagebreak yes, no Marks question to have a page break after it.
display always, never, nodefanswerfound Determines when the question should be displayed.
validate expression This expression shows the property "message" if true.
message text This is the text to display if the expression in property "validate" is true.
size number Sets the text field width.
maxlen number The number of characters the text field can hold.
2.5.11.2:  Examples

Simple Example:

Q9. This is my question text.
type: text

Complex Example:

Q9. This is my question text.
type: text
maxlen: 50
size: 80

Return to top

2.5.12:  Text Area Question Type

<label>. <question text>
type: textarea
<question property>: <property value>
2.5.12.1:  Question Properties
Name Value Description
condition expression This expression shows the question if true.
branchcondition expression This expression branches to the question label defined in property "branchto".
branchto question label The question label to branch to if property "branchcondition" evaluates to true.
defanswervalue number The choice id that should be used as the default value.
defanswercondition expression This expression returns a valid choice id, false or @ as the default value.
defansweralways yes, no Determines if defanswervalue or defanswercondition will be used.
prepopurl yes, no Marks question for prepopulation from URL.
prepopcsv yes, no Marks question for prepopulation from CSV.
required yes, no Marks question as required.
pagebreak yes, no Marks question to have a page break after it.
display always, never, nodefanswerfound Determines when the question should be displayed.
validate expression This expression shows the property "message" if true.
message text This is the text to display if the expression in property "validate" is true.
rows number The number of text rows to show before scrolling.
cols number The number of columns to show before wrapping to a new line.
charlim number The maximum number of characters to accept.
2.5.12.2:  Examples

Simple Example:

Q10. This is my question text.
type: textarea

Complex Example:

Q10. This is my question text.
type: textarea
rows: 4
cols: 80
charlim: 100

Return to top

2.6:  Structure Types

Structure types are additional elements, such as question groups and tables, that consist of individual questions. These require a "start" and "end" tag.

2.6.1:  Question Groups

start group
<group property>: <property value>

<questions>

end group
2.6.1.1:  Group Properties
Name Value Description
condition expression This expression shows the question if true.
branchcondition expression This expression branches to the question label defined in property "branchto".
pagebreak yes, no If set to yes, will force a pagebreak at the end of the group.
randmode randomize, randomrotate, randomrotatereverse Sets the randomization mode that will be used to randomize the group.
randseq number (sequence ID) Accepts a random sequence ID (must be defined elsewhere in the file)
2.6.1.2:  Examples

Simple Example:

start group

Q11. This is my question text
type: radio
1. A
2. B
3. C

Q12. This is my question text
type: radio
1. A
2. B
3. C

end group

Complex Example:

start group
randmode: randomize
condition: $Q1[1]==1

Q11. This is my question text
type: radio
1. A
2. B
3. C

Q12. This is my question text
type: radio
1. A
2. B
3. C

end group

Return to top

2.6.2:  Form Tables

<form question text>
start form
<form property>: <property value>

<questions>

end form
2.6.2.1:  Form Properties
Name Value Description
condition expression This expression shows the form table if true.
width number, percentage Sets the width of the entire form table.
showheader yes, no Determines whether the form table header is displayed.
showqtext yes, no Determines whether the question text header is displayed.
masterheader text Text to display in the form table header.
qtextwidth number Sets the width of the question text above the table.
qtextalign left, center, right Sets the text alignment of the question text.
qtextvalign top, middle, bottom Sets the vertical text alignment of the question text.
qwidth number Sets the width of the column containing the questions.
qalign left, center, right Sets the text alignment of the column containing the questions.
qvalign top, middle, bottom Sets the vertical text alignment of the column containing the questions.
validate expression This expression shows the property "message" if true.
message text This is the text to display if the expression in property "validate" is true.
2.6.2.2:  Examples

Simple Example:

Please fill out the following fields  

start form 

Q13a. First Name: 
type: text 

Q13b. Last Name 
type: text 

end form

Complex Example:

Please fill out the following fields  

start form 
width: 330 
condition: $Q1[5]==0 
masterheader: Your info  

Q13a. First Name: 
type: text 
size: 40  

Q13b. Last Name 
type: text 
size: 40  

Q13c. Address: 
type: text 
size: 40  

Q13d. Zip Code: 
type: number  

Q13e. Email address: 
type: text 
required: no 
size: 40 
validate: <<COND   
	(!strpos($Q13e,"@") OR   
	!strpos($Q13e,".") OR   
	strpos($Q13e," ") OR   
	strlen($Q13e)<8) AND    
	$Q13e!="" 
COND 
message: Please enter a valid email address.  

end form

Return to top

2.6.3:  Matrix Tables

<matrix question text>
start matrix
<matrix property>: <property value>

start row <row #>
<row property>: <property value>
end row <row #>

start column <col #>
<column property>: <property value>
end column <col #>

<questions>

end matrix
2.6.3.1:  Matrix Properties
Name Value Description
condition expression This expression shows the table if true.
width number, percentage Sets the width of the entire table.
cellpadding number Sets the cellpadding for the entire table.
columnwidths csv Accepts pixel lengths or percentages for each column in the table.
transpose yes, no Determines whether the table is transposed.
showqtextheader yes, no Determines whether the question text header is displayed.
qtextheaderalign left, center, right Sets the text alignment of the question text header.
showleadinglabels yes, no Determines whether the leading labels are displayed.
leadinglabelalign left, center, right Sets the text alignment of the leading labels.
leadinglabelwidth number Sets the width of the leading labels.
masterheader text Text to display in the master header.
ratingheader csv The rating header text to use.
mirrorheaders yes, no Determines whether the headers are mirrored, or display at the bottom of the table.
repeatheaders number Sets how many times to repeat the headers within the table structure.
labelrollmode straight, independent, matrix Sets how to roll the question labels generated for the table. The value "straight" will roll the row labels incrementally, "independent" will roll each column in the table separately, and "matrix" will append "r" plus the current row number and "c" plus the current column number (e.g. Q5r1c1, Q6r1c2, Q5r2c1, Q6r2c2)
rolllabelsindependently yes, no DEPRECIATED: Use the "labelrollmode" tag.
trailinglabelalign left, center, right Sets the text alignment of the trailing labels.
trailinglabelwidth number Sets the width of the trailing labels.
choiceheaderalign left, center, right Sets the text alignment of the column choices.
choiceheaderwidth number Sets the width of the column choices.
validate expression This expression shows the property "message" if true.
message text This is the text to display if the expression in property "validate" is true.
rowrandomizationmode randomize, randomrotate, randomrotatereverse Sets the randomization mode that will be used to randomize the rows.
rowrandseq number (sequence ID) Assigns a random sequence ID to use for the randomization of the rows.
columnrandomizationmode randomize, randomrotate, randomrotatereverse, sortalpha Sets the randomization mode that will be used to randomize the columns.
columnchoicerandomizationmode randomize, randomrotate, randomrotatereverse, sortalpha Sets the randomization mode that will be used to randomize the choice columns.
columnrandseq number Assigns a random sequence ID to use for the randomization of the columns.  
columnchoicerandseq number Assigns a random sequence ID to use for the randomization of choices in the column.
2.6.3.2:  Row Properties
Name Value Description
label text The text that will be used for the row label.
trailinglabel text The text that will be used for the trailing row label.
condition expression This expression shows the row if true.
randomize yes, no Determines whether the row is included in the randomization.
other yes, no Inserts an other field into the row label.
2.6.3.3:  Column Properties
Name Value Description
condition expression This expression shows the column if true.
randomize yes, no Determines whether the column is included in the randomization.
validate expression This expression shows the property "message" if true.
message text This is the text to display if the expression in property "validate" is true.
sumup none, total, remaining, both Inserts a corresponding field onto the bottom of the table for running totals or remaining values.
choicewidths csv Accepts pixel lengths or percentages for each column in the table.
choicealignments csv (left, right, center) Sets the text alignments to use for the choice columns.
choiceconditions csv (expressions) Sets the conditions for the choice columns. Shows the choice column if the expression returns true.
choicerandomizations csv (yes, no) Sets whether the choice columns are randomized.
width number Sets the column width.
2.6.3.4:  Examples

Simple Example:

This is the table question text.

start matrix 

start row 1 
label: Row 1 label
end row 1 

start row 2 
label: Row 2 label 
end row 2 

start row 3 
label: Row 3 label
end row 3 

start row 4 
label: Row 4 label 
end row 4 

start row 5 
label: Row 5 label 
end row 5  

14a. This is my question text.
type: checkbox 
1. Choice 1
2. Choice 2
3. Choice 3 

end matrix

Complex Example:

This is the table question text.

start matrix 
showqtextheader: no 
showleadinglabels: yes 
labelrollmode: independent 

start row 1 
label: Row 1 label
trailinglabel: Tasty! 
condition: $Q1[1]==1 
end row 1 

start row 2 
label: Row 2 label
end row 2 

start row 3 
label: Row 3 label
condition: $Q1[2]==1 
randomize: yes 
end row 3 

start row 4 
label: Row 4 label
end row 4 

start row 5 
label: Row 5 label 
condition: $Q1[3]==1
randomize: yes 
end row 5  

start column 1
condition: $Q6==1
end column 1

start column 2 
choicewidths: 120,100,80,
choicealignments: center,left,left
choiceconditions: $Q1[1]==1,,$Q1[2]==1
choicerandomizations: no,no,yes
end column 2  

14Aa. This is my first column question text.
type: text
size: 60

14Ba. This is my second column question text.
type: checkbox 
1. Choice 1
quota: 50 
2. Choice 2
3. Choice 3
exclusive: yes  

end matrix

Return to top

2.7:  Other survey elements

2.7.1:  Advanced Quota Filters

start quotafilter
<quota property>: <property value>
end quotafilter
2.7.1.1:  Advanced Quota Filter Properties
Name Value Description
name text Defines a name for the quota filter.
description text Defines a description for the quota filter.
quota number Defines the quota limit.
condition expresssion Increments the quota count if this expression returns true.
closesurvey yes, no Determines whether to automatically close the survey when this quota becomes full.
email yes, no Determines whether to send an email when this quota becomes full.
emailto text If the "email" property is set yes, defines which email address to send the email to.
gauge yes, no Determines whether to show the visual quota gauge in the Quota Manager.
2.7.1.2:  Example
start quotafilter
name: Quota Filter A
quota: 100
condition: $Q1[1]==1
end quotafilter

Return to top

2.7.2:  Nested Quotas

You must specify all affected questions in each nested quota set using one or more comma separated question labels in the question property. Each quota cell definition must be defined using an identifier which is composed of the choice positions of the affected questions. For example, a nested quota comprising of questions: "Q1,Q2,Q3":

  • choice 1 of question 1 (Q1)
  • choice 4 of question 2 (Q2)
  • choice 3 of question 3 (Q3)

The resulting identifier would be: "1/4/2". The numbers in the identifier correlate with the position of the questions in the question property. To address the total quota, use the identifier "total".

start nestedquota
<quota property>: <property value>
end nestedquota
2.7.2.1:  Nested Quota Properties
Name Value Description
name text Defines a name for the nested quota.
description text Defines a description for the nested quota.
quota number Defines the quota limit.
questions text Defines the question set included in the nested quotas.
condition expresssion Increments the quota count if this expression returns true.
closesurvey yes, no Determines whether to automatically close the survey when this quota becomes full.
email yes, no Determines whether to send an email when this quota becomes full.
emailto text If the "email" property is set yes, defines which email address to send the email to.
gauge yes, no Determines whether to show the visual quota gauge in the Quota Manager.
soft yes, no If set to yes, quota will not terminate respondent when full.
watch yes, no If set to yes, adds quotas to watch list.
2.7.2.2:  Example
start nestedquota
questions: Q1,Q2,Q3
start quotacell 5/6/3
name: FOO
quota: 50
description: BAR
soft: yes
watch: yes
emailto: you@yourdomain.com
closesurvey: no
end quotacell
start quotacell 5/6/2
quota: 50
end quotacell
start quotacell total
quota: 100
end quotacell
end nestedquota

Return to top

2.7.3:  Random Sequences

start randomsequence <seq #>
<random sequence property>: <property value>
end randomsequence <seq #>
2.7.3.1:  Random Sequence Properties
Name Value Description
name text, New random sequence Defines a name for the random sequence.
description text Defines a description for the random sequence.
elements number Sets the total number of elements.
anchors csv Defines which elements to anchor in the sequence order.
runtime yes, no Determines whether the random sequence is set automatically upon survey entry or from within a custom computational using the "set_random_sequence" function call.
randmode randomize, randomrotate, randomrotatereverse Sets the randomization mode to use for the random sequence.
linkgroup csv Defines which elements are linked and always display together.
2.7.3.2:  Examples

Simple Example:

start randomsequence 1
elements: 5
end randomsequence 1

Complex Example:

start randomsequence 1
name: My Random Sequence
elements: 5
anchors: 4,5
linkgroup: 1,2
randmode: randomrotate
end randomsequence 1

Return to top

2.7.4:  Rotational Groups

start rotationalgroup
<rotational group property>: <property value>
end rotationalgroup
2.7.4.1:  Rotational Group Properties
Name Value Description
groups csv (group IDs) Determines which group IDs are used within the rotational group.
displaygroups number Sets how many groups to actually display to respondents.
name text, New rotational group Defines the name of the rotational group.
anchors csv (group IDs) Defines which group IDs to anchor in the rotational order.
randseq number (sequence ID) Assigns a random sequence ID to the rotational group.
randmode randomize, randomrotate, randomrotatereverse Sets the randomization mode to use.
2.7.4.2:  Examples
start rotationalgroup
groups: 1,2,3
anchors: 3
end rotationalgroup

Return to top

2.8:  Sample import files

The following sample files borrow syntax from the examples listed above. You may view each file to see how the import syntax appears in a typical document. Or, right-click to save and import directly into a new survey to see exactly how all elements and properties get inserted into the survey application. Remember that when importing a document into a survey that any existing elements will be overwritten and lost.

2.8.1:  Simple Example

// Kinesis Survey - Simple Example 

Q1. This is my question text.
type: checkbox
1. Choice 1
2. Choice 2
3. Choice 3

Q2. This is my question text.
type: computational
logic: return (25 * 100);

Q3. This is my question text.
type: date

Q4. This is my question text.
type: number

Q5. This is my question text.
type: pulldown
1. Choice 1
2. Choice 2
3. Choice 3

Q6. This is my question text.
type: radio
1. Choice 1
2. Choice 2
3. Choice 3

Q7. This is my question text.
type: ranking
1. Choice 1
2. Choice 2
3. Choice 3

Q8. This is my question text.
type: slider

Q9. This is my question text.
type: text

Q10. This is my question text.
type: textarea

start group

Q11. This is my question text
type: radio
1. A
2. B
3. C

Q12. This is my question text
type: radio
1. A
2. B
3. C

end group

Please fill out the following fields  

start form 

Q13a. First Name: 
type: text 

Q13b. Last Name 
type: text 

end form

This is the table question text.

start matrix 

start row 1 
label: Row 1 label
end row 1 

start row 2 
label: Row 2 label 
end row 2 

start row 3 
label: Row 3 label
end row 3 

start row 4 
label: Row 4 label 
end row 4 

start row 5 
label: Row 5 label 
end row 5  

Q14a. This is my question text.
type: checkbox 
1. Choice 1
2. Choice 2
3. Choice 3 

end matrix

2.8.2:  Complex Example

// Kinesis Survey - Complex Example 

Q1. This is my question text.
type: checkbox
required: yes
pagebreak: no
2. Choice 1
randomize: yes
50. Other: Choice 214
randomize: yes
99. Choice 3
exclusive: yes
quota: 100

Q2. This is my question text.
type: computational
logic: <<COMP
if ($Q1[1]==1) return "GROUP A";
else return "GROUP B"
COMP

Q3. This is my question text.
type: date
required: yes
pagebreak: no
dateformat: YYYY-MM-DD

Q4. This is my question text.
type: number
wholes: 5
decimals: 2
minvalue: 0
maxvalue: 100
postfix: %
required: yes
pagebreak: no

Q5. This is my question text.
type: pulldown
required: no
pagebreak: yes
1. Choice 1
randomize: yes
2. Choice 2
randomize: yes
3. Choice 3
quota: 100

Q6. This is my question text.
type: radio
required: yes
pagebreak: no
2. Choice 1
randomize: yes
50. Other: Choice 2
randomize: yes
99. Choice 3
quota: 100

Q7. This is my question text.
type: ranking
required: no
pagebreak: yes
minselect: 2
1. Choice 1
randomize: yes
2. Choice 2
randomize: yes
3. Choice 3

Q8. This is my question text.
type: slider
slidertype: dual
required: yes
pagebreak: no

Q9. This is my question text.
type: text
maxlen: 50
size: 80

Q10. This is my question text.
type: textarea
rows: 4
cols: 80
charlim: 100

start group
randmode: randomize
condition: $Q1[1]==1

QA11. This is my question text
type: radio
1. A
2. B
3. C

QA12. This is my question text
type: radio
1. A
2. B
3. C

end group

start group
randmode: randomize
condition: $Q1[1]==1

QB11. This is my question text
type: radio
1. A
2. B
3. C

QB12. This is my question text
type: radio
1. A
2. B
3. C

end group

start group
randmode: randomize
condition: $Q1[1]==1

QC11. This is my question text
type: radio
1. A
2. B
3. C

QC12. This is my question text
type: radio
1. A
2. B
3. C

end group

Please fill out the following fields  

start form 
width: 330 
condition: $Q1[5]==0 
masterheader: Your info  

Q13a. First Name: 
type: text 
size: 40  

Q13b. Last Name 
type: text 
size: 40  

Q13c. Address: 
type: text 
size: 40  

Q13d. Zip Code: 
type: number  

Q13e. Email address: 
type: text 
required: no 
size: 40 
validate: <<COND   
	(!strpos($Q9E,"@") OR   
	!strpos($Q9E,".") OR   
	strpos($Q9E," ") OR   
	strlen($Q9E)<8) AND    
	$Q9E!="" 
COND 
message: Please enter a valid email addres.  

end form

This is the table question text.

start matrix 
showqtextheader: no 
showleadinglabels: yes 
labelrollmode: independent 
rowrandseq: 1

start row 1 
label: Row 1 label
condition: $Q1[1]==1 
end row 1 

start row 2 
label: Row 2 label
end row 2 

start row 3 
label: Row 3 label
condition: $Q1[2]==1 
randomize: yes 
end row 3 

start row 4 
label: Row 4 label
end row 4 

start row 5 
label: Row 5 label 
condition: $Q1[3]==1
randomize: yes 
end row 5  

start column 1
randomize: yes
end column 1

start column 2 
choicewidths: 120,100,80
choicealignments: center,left,left
choiceconditions: $Q1[1]==1,,$Q1[2]==1
choicerandomizations: no,no,yes
end column 2  

Q14Aa. This is my first column question text.
type: text
size: 60

Q14Ba. This is my second column question text.
type: checkbox 
1. Choice 1
quota: 50 
2. Choice 2
3. Choice 3
exclusive: yes  

end matrix

start quotafilter
name: Quota Filter A
quota: 100
condition: $Q1[1]==1
end quotafilter

start randomsequence 1
name: Method 2 sequence
linkgroup: 1,2,3
element: no
element: no
element: no
element: no
element: yes
end randomsequence 1

start rotationalgroup
groups: 1,2,3
anchors: 3
end rotationalgroup

2.9:  How To Import Files

When your are ready to import either sample file above or one that you have created, the Document Import feature can be accessed from the link shown below or from the  icon within the Survey Editor.

Important: Remember that each time a file is imported it will override the existing survey structure.

  • Was this article helpful?