aytm Logic Reference Guide
Aytm logic is a syntax that can be used to power up your surveys. You can customize respondents’ survey experience using simple logic such as [show if] or [mask by] commands, or you can take it to the next level and create complex random path assignments, pipe responses or custom text, and even assign and calculate hidden values. Download this article as a PDF.
How do I use aytm logic?
Aytm logic is written in [square brackets] and can be used in most text input fields in the survey editor. Turn on aytm logic autocomplete to be guided with suggestions by the platform as soon as you open a square bracket [ .
Can I use multiple logic brackets in one field?
Yes, there is no limit to how many aytm logic statements within their own brackets can be used in a field. If there are multiple sets of [Show if…] and/or [Hide if…] logic, they will be evaluated sequentially and will have AND logic applied between them. However, we recommend simplifying to one [Show/Hide if…] logic set.
Examples of aytm Logic
Statement |
What it does |
[Show if Q1SQ1A1] |
Show if selected A1 at SQ1 of Q1 |
[Show if Q2A1 or Q3A1-2] |
Show if selected (A1 at Q2) OR (A1 or A2 at Q3) |
[Show if Q4A6pv=1] |
Show if 6th item at Q4 was ranked first |
[Mask by Q5] |
Show corresponding items selected at Q5 |
[Q6R] |
Pipe the response from Q6 |
[Q7Ri] |
Pipe the image associated with response from Q7 |
[Q8A3c] |
Pipe the open-ended comment from A3 at Q8 |
[“products” if Q9Rn>=2] |
Pipe “products” if selected 2+ items at Q9 |
[Group Q4-5 and Q6-7] |
Randomize the order (Q4-5) and (Q6-7) are shown |
[Hide Text] |
Hide all text in field from respondents |
References
Syntax |
Represents |
When to Use |
Q# |
Question |
Reference question |
SQ# |
Sub-Question |
Reference sub-question (Matrix-based questions) |
A# |
Answer |
Reference answer option |
E# |
Entity |
For Quadrant and Topography questions, reference entity |
R |
Response |
Return response given at reference question; for checkbox, will separate multiple selections by “and” with commas as applicable |
P |
Position |
Return rank order (Reorder, Side-by-Side) |
V |
Value |
Return data point, such as R (response) or P (position), as numeric |
N |
Number |
For checkbox (multi-select), return the number of options selected |
C |
Comment |
Reference OE (open end) text box/field |
I |
Image |
Reference image associated with term |
X |
Expand |
For image, enable expanded image formatting |
S |
Scroll |
For image, enable vertical scrolling formatting |
‘ ’ or “ ” |
Text |
Single or double quotes for inputs to read as text (non-numeric) |
@... |
Alias |
Create hidden alias for question or answer; can reference in logic |
Delimiters/Operators
Syntax |
Represents |
When to Use |
and |
And |
Combine terms with requirement of meeting both criteria |
: |
And |
Represent a range of terms with a delimiter of “and” |
, |
And |
Separate terms with a delimiter of “and” |
or |
Or |
Combine terms with requirement of meeting either criteria |
- |
Or |
Represent a range of terms with a delimiter of “or” |
. |
Or |
Separate terms with a delimiter of “or” |
not |
Not |
Apply inverse meaning to immediately following term |
= |
Equal |
Check if two terms are equal |
!= |
Not Equal |
Check if two terms are not equal |
> |
Greater Than |
Check if first term is greater than second term |
>= |
Greater Than or Equal To |
Check if first term is greater than or equal to second term |
< |
Less Than |
Check if first term is less than second term |
<= |
Less Than or Equal To |
Check if first term is less than or equal to second term |
… if … |
If Conditional |
Define conditional criteria to be met for logic to apply |
( ) |
Logic Term |
Define compound logic terms grouped by parenthesis |
Commands
Syntax |
Function |
When to Use |
Show if … |
Show Item |
Show question, sub-question, or answer if logic condition met |
Hide if … |
Hide Item |
Hide question, sub-question, or answer if logic condition met |
Hide if 1=1 |
Always Hide |
Always hide question, sub-question, or answer |
Hide Text |
Hide Text |
Hide text of question, sub-question, or answer |
Skip to … |
Skip To |
Skip to specified question if logic condition met |
Mask by … |
Hide Items If Not Selected |
Hide items not selected at prior question; Applies to all options, including “Other” and “None” options so use with caution |
Rev-Mask by … |
Show Items If Not Selected |
Hide items selected at prior question; Applies to all options, including “Other” and “None” options so use with caution |
Group … |
Randomize Question Order |
Specify questions or sets of questions to be rotated and presented in a random order, commonly referred to as “nodes” See also Balance, Max, RandFill for optional sub-commands |
Max …. |
Set Max Number Of Nodes To Assign |
In Group logic, optional command to limit the maximum number of nodes to be answered by any given respondent; by default, least fill assignment is used with “Max” limit to prioritize assigning nodes that have been answered by fewer total respondents |
RandFill |
Pure Random Assignment |
In Group logic, optional command to use pure random assignment to nodes instead of the default least fill assignment |
Balance … |
Balance |
In Group logic, optional command to balance nodes by specific subgroup criteria; separate subgroups by “,” (comma) |
Sort by a-z / Sort by z-a |
Sort Items From A to Z or Z to A |
Sort answer options or sub-questions from A to Z or Z to A Must specify question number and if elements to be sorted are answer options (e.g., Q1A) or sub-questions (e.g., Q1SQ) |
Sort … by … |
Sort Items By Array Order |
Sort answer options or sub-questions according to array of values Must specify question number and if elements to be sorted are answer options (e.g., Q1A by…) or sub-questions (e.g., Q1SQ by…) |
Glue … |
Keep Items Together |
Specify a set of question answer options or sub-questions to be kept together, or glued, when UI randomization is used Separate by “:” or “,” (AND term) to keep glued items in order Separate by “-” or “.” (OR term) to randomize order of glued items |
Show first # … |
Show First # Items |
Show only the first specified number of answer or sub-questions Combine with UI randomization to randomly show subset of items |
Show last # … |
Show Last # Items |
Show only the last specified number of answer or sub-questions Combine with UI randomization to randomly show subset of items |
Rand #:## |
Generate Random Number |
Generate a random whole number from the specified range For this value to be stored in the dataset for later reference, it needs to be assigned to a variable (e.g., [randvar = rand 1:100]) |
Scoring Calculations
Calculations can be performed and stored using custom variables. These calculations can use values based on survey responses, other custom variables, and/or any other specified value.
Syntax |
Function |
When to Use |
+ |
Addition |
Add a value to another value |
- |
Subtraction |
Subtract a value from another value |
* |
Multiplication |
Multiple a value by another value |
/ |
Division |
Divide a value by another value; creates fractional value (decimal) |
** or ^ |
Exponential |
Raise a value to the power of another value |
exp |
Euler’s Number (ex) |
Raise Euler’s number (e) to the power of a specified value; |
Arrays
Arrays are a type of variable that can hold multiple data points (up to 500) in one collection. Items in an array are often referred to as “elements” and can be numeric and/or alphabetic in nature. Arrays can be overwritten to apply desired functions below (e.g., custarray = sort custarray).
Syntax |
Function |
When to Use |
<< |
Add |
Add an element, numeric or text, to an array; separate multiple elements by comma |
|# |
Array Element |
Return array element in specified position |
= shuffle |
Randomize |
Randomize order of elements of specified array |
= reverse |
Reverse Order |
Reverse the order of elements of specified array |
= sort |
Sort |
Sort the order of elements of specified array in ascending order. Sorts individual numbers from least to greatest followed by letters from “A” to “z” where capitalized letter are sorted before lowercase letters (e.g., “1”, “10”, “100”, “11”, “Apples”, “Kiwi”, “apples”, “kiwi") |
= reverse sort |
Reverse Sort |
Sort the order of elements of specified array in descending order. Functions opposite of “sort” as above. Sorts letters from “z” to “A” where lowercase letters are sorted before capital letters followed by individual numbers from greatest to least (e.g., “kiwi”, “apples”, “Kiwi”, “Apples”, “11”, “100”, “10”, “1”) |
= unique |
Remove Duplicates |
Remove all duplicate elements of specified array |
in |
Find Exact Element |
Search for exact element within specified array; must match within the array completely and element in full (e.g., “apple” to “apple”) |
like |
Find Within Element |
Search for element within specified array that matches completely and element at least in part; (e.g., “apple” within “red apple”) |
PDF version
Save a copy of this information for reference - download the PDF.
Additional Resources
- Check out our other articles on ways to use aytm Logic.