In most cases you'll use aytm Logic to alter survey flow. Open a square bracket and type one of the following commands:
- [Skip to...]
- [Show if...]
- [Hide if...]
- [Hide text]
- [Mask by...]
- [Rev-mask by...]
- [Group...]
- [Glue...]
- [Exclusive...]
- [Show first/last...]
- [Sort by a-z...]
[Skip to...]
Diverts survey flow to the specified question if the destination will allow this respondent in. If the command contains a condition, the flow changes only if the condition is satisfied — otherwise the respondent proceeds to the next question. If multiple destinations are specified, the system checks which are available for this respondent and redirects them to a random available one. If none are available, the respondent continues normally.
-
[Skip to Q10]— forwards all respondents to Q10 after the question where this command is placed -
[Skip to Exit]— forwards all respondents to the end of the survey (counted as a valid complete) -
[Skip to Q10 if Q5A2]— forwards respondents to Q10 if they selected A2 on Q5 -
[Skip to Q10 if @influencer]— forwards respondents to Q10 if they were aliased "influencer" earlier in the survey -
[Skip to Q10:15]— randomly skips to any available question in the range Q10–Q15
[Show if...]
Modifies the visibility of a question or any part of it. [Show] unconditionally shows the element. [Show if ...] shows it only when the condition is met.
⚠️ Note: If a
[skip to...]targets a question with[show if...], respondents who don't satisfy the show condition will not be redirected — they'll proceed to the next question after where the[skip to...]is placed.
-
[Show]— unconditionally shows the element for all respondents (rarely needed, as questions are visible by default) -
[Show if Q5A2]— shows the element only if the respondent selected A2 on Q5
[Hide if...]
Modifies the visibility of a question or any part of it. [Hide] unconditionally hides the element. [Hide if ...] hides it only when the condition is met.
⚠️ Note: If a
[skip to...]targets a question with[hide if...], respondents who satisfy the hide condition will not be redirected — they'll proceed to the next question after the[skip to...].
-
[Hide]— unconditionally hides the element for all respondents -
[Hide if @influencer]— hides the element for all respondents aliased "influencer" -
[Hide if not @influencer]— hides the element for all respondents NOT aliased "influencer"
[Hide text]
Does not alter survey flow — instead, it prevents the text of an element from being shown to respondents. The text remains visible to researchers on the statistics page. Useful when you want to show only an image in a question title while keeping identifying text for analysis, or when feature labels in Conjoint don't make sense. Also allows you to bypass the system's requirement for non-empty elements.
-
[Hide text]— unconditionally hides element text for all respondents; text still appears on the stats page -
[Hide text if Q2]— hides element text if the respondent has seen Q2
[Mask by...]
A shortcut for showing only the items a respondent selected on an earlier question — without writing [Show if...] on every field. [mask by Q1] limits visible options to those the respondent selected in Q1.
[Rev-mask by...]
The reverse of [mask by...] — limits visible options to those the respondent did not select in the referenced question.
-
[rev-mask by Q1]— shows only options the respondent did not select in Q1 -
[mask by Q1 except Q2A5]— mask Q2 by Q1, but don't affect A5 in Q2. Also works withrev-mask. Ranges (Q2A5-7) and lists (Q2A1,7) can be used in the except phrase.
⚠️ Note: Both
[mask by...]and[rev-mask by...]match answers by their position number in the editor — not by literal text. Q1A1 selected means Q2A1 will be shown, regardless of wording. Keep items synchronized in order across questions, and adjust wording as needed.
[Group...]
Groups certain questions or batteries within the survey and controls how many batteries each respondent answers before exiting the group. If a respondent can't enter a battery (due to [hide] logic), the algorithm tries another until the maximum is reached or no batteries remain.
💡 Tip: Group logic can be placed in any field, but we recommend adding it to the first question or the beginning of the group.
-
[Group Q5-10 and Q11-12 and Q13-18 max 2]— three batteries defined; each respondent sees two randomly selected ones. After completing the requirement, they continue to Q19.
[Group... randfill]
By default, batteries with the least fills are preferred. Add randfill to use simple random assignment instead.
-
[Group Q5-10 and Q11-12 and Q13-18 randfill]— all three batteries shown in random order -
[Group Q5-10 and Q11-12 and Q13-18 max 2 randfill]— two batteries shown in random order -
[Group Q5-10 and Q11-12 and Q13-18]— all three batteries, prioritizing least-seen first
[Group... balance...]
Add the balance keyword to ensure node exposure is balanced across specified segments — by question, answer, or demographic traits. Spell out and/or in full; avoid shortcuts like . or , inside group logic.
⚠️ Note: Avoid listing more than 40 balance segments (or sample size ÷ 10) due to the discrete nature of response filling.
-
[Group Q6-9 and Q10-13 and Q14-17 balance Q5a8, Q5a9, Q4a2]— equal distribution of those answers across the three groups -
[Group Q6-9 and Q10-13 and Q14-17 balance gender = "f", gender = "m" max 1]— equal gender distribution; respondents see one random group -
[Group Q2 and Q3 balance gender = "f" and q1a1, gender = "f" and q1a2, gender="m"]— equal distribution across three combined segments
[Glue...]
When randomization is on, use [glue...] to keep specific elements together. Use , (AND) to preserve order, or . (OR) to keep elements together but randomize their order.
-
[glue Q1A2,3,4]— A2, A3, A4 appear together in that order -
[glue Q1A2.3.4]— A2, A3, A4 appear together in random order -
[glue Q10sq1,3]— subquestions 1 and 3 in Q10 go together in that order, regardless of randomization
[Exclusive...]
Prevents answer choices from being selected together in a checkbox (multi-select) question. Once an answer with [exclusive] is selected, restricted options are grayed out. Only other answers within the same question can be referenced — you cannot reference other questions, or make an answer exclusive to itself.
-
[exclusive all]— prohibits selecting any other option (like N/A) -
[exclusive Q1A1]— prohibits also selecting A1 in Q1 -
[exclusive Q1A2,3]— prohibits also selecting A2 and/or A3 in Q1 -
[exclusive Q1A1:A3 if PQ1A1]— prohibits also selecting A1–A3 in Q1 if the respondent answered A1 in PQ1
[Show first/last...]
Limits the number of items a respondent sees in a question.
-
[show first 3 Q1A]— of all items the respondent would see in Q1, shows only the top 3 -
[show last 4 Q2E if q1a1]— shows the last 4 entities in Topography question Q2, if the respondent answered A1 in Q1
[Sort by a-z...]
Sorts elements alphabetically. Use a-z for ascending order (0-00-01-1-2-3-a-ab-b-c...) or z-a for descending. Logic placement doesn't matter — it can be placed on any question. For more elaborate ordering, use sort elements by array.
-
[sort by a-z Q1A]— sorts answer options in Q1 alphabetically -
[sort by z-a Q1SQ]— sorts subquestion options in Q1 in reverse alphabetical order -
[sort Q1A by a-z except Q1A5]— sorts answers alphabetically but leaves A5 unaffected. Ranges (Q2A5-7) and lists (Q2A1,7) can be used in the except phrase.