
Grab a variable event
Each variable has a set of events that are triggered automatically when certain actions happen, such as:- a variable is displayed or hidden
- the variable is on the currently visible screen have populated their values with data that was saved before. This event is particular to loading a survey that was partially filled-in before.
- the variable changes its value, whether by the respondent filling in new data, or when another puzzle piece alters it
- When an event is triggered, all the actions associated with it are run.

Hide / Show a paragraph's text
The paragraphs, such as any other object type, are all displayed by default when going through a survey. With this puzzle piece you can control whether certain paragraphs are going to be hidden, or unhidden.
The smart puzzle piece for easy comparisons
This smart puzzle piece changes its layout based on the variable you select from the first dropdown.
If you select a list variable (single choice, multiple choice, slider, dropdown), then all the possible choices are automatically displayed as a dropdown, and you can select whether you want the value to be equal or not to a certain value you can select.
On the other hand, for checkboxes, short text, long text or hidden fields, it enables you to specify the value to evaluate against.

Get the stored value from a variable
All variables having names can store values, whether set by you through import(s) or by your respondents. Use this puzzle piece to get that value and use it for comparisons and making decisions.
Get a lists's selected item's label
This is very useful for lists, when you want to work with the selected text rather than the code stored in the background
Get the filled-in state of a variable, but if it is forcibly hidden, consider it filled-in by default
By default, variables are visible (except for hidden fields, GPS location, time and document generator). However, if you use the puzzle pieces that hide screens or individual objects, these variables may become hidden.
The question that comes into play at that point is whether checking if that variable is filled in (e.g. for the purpose of validating that everything that could have filled in on that screen, was filled in, so that the respondent may proceed to the next screen) will return that it is filled in when the ability to fill it in is no longer there.
On this case, this puzzle piece will always say “yes” if the variable is hidden.

Get a variable's filled-in state
By default, variables are visible (except for hidden fields, GPS location, time and document generator). However, if you use the puzzle pieces that hide screens or individual objects, these variables may become hidden.
The question that comes into play at that point is whether checking if that variable is filled in (e.g. for the purpose of validating that everything that could have filled in on that screen, was filled in, so that the respondent may proceed to the next screen) will return that it is filled in when the ability to fill it in is no longer there.
On this case, this puzzle piece will always return the actual state of a variable, without considering whether the respondent has the ability to fill it in.

Change a variable's value
Change any variable’s value programatically.
This is useful especially for hidden fields, when you need to precalculate some information about the respondent, to view it in the export right away. For instance, you could store into a hidden field a value representing whether the respondent has reached the last screen of your survey.

Check if a value is / is not a number
Useful for validating responses about age, weight, height, revenue, etc.
Check if a value is / is not a valid email address
Check whether a respondent’s answer is in a valid email format
Check if a value is longer / shorter than a fixed length
Check if a variable’s value is / is not longer / shorter than a specific length. A use case is to check whether the respondent has entered the correct number of digits for a social security number or zip code.
Hide a variable
Think about the reasons for hiding a variable like unique wrappings around a present. Each of them makes the present invisible, and to make it visible again, all wrappings must be removed.
If you try to apply the same reason twice, it won’t be applied again.
You can put any reason, such as “answered 1 to Q7″, “not needed on scenario 1″, “no reason whatsoever”, etc

Remove a variable's reason for being hidden
Think about the reasons for hiding a variable like unique wrappings around a present. Each of them makes the present invisible, and to make it visible again, all wrappings must be removed.
If you try to apply the same reason twice, it won’t be applied again. You can put any reason, such as “answered 1 to Q7″, “not needed on scenario 1″, “no reason whatsoever”, etc.
This function removes a hidden reason (or a wrapping, to go with the above paradigm). If you try to remove the same reason twice, nothing will happen.

Connect two lists together, making the first influence the second's visibility
When the respondent selects an item from the first list (“Likeliness to Recommend” in this case), then the corresponding item (based on its position) on the second list will be hidden or displayed.
This stacks well with randomization puzzle pieces. Keep in mind to first associate the lists and then to randomize them, otherwise the order will be unpredictable.

Connect lists, by making the item selected in each be hidden in the subsequent ones
This is useful for cascading lists. Such as in the first list you have items a1, a2, a3, a4, also a second single choice list with items b1, b2, b3, b4, and a third list with items c1, c2, c3, c4.
If option a1 is selected then in list #2 and #3 options b1 and c1 will be hidden. If afterwards, on list #2 option b2 is selected, then further on list #1 and #3, options a2 and c2 will be hidden.

Get a list variable
useful in connection with other puzzle pieces
Hide items from a list, based on their code
Think about the reasons for hiding a variable like unique wrappings around a present. Each of them makes the present invisible, and to make it visible again, all wrappings must be removed.
If you try to apply the same reason twice, it won’t be applied again. You can specify any reason, such as “answered 1 to Q7″, “not needed on scenario 1″, “no reason whatsoever”, etc.
This puzzle piece is looking at codes when selecting which item(s) will be hidden. Also, it is useful to have the codes in ascending order, so that every item having a code in an interval (such as from 1 to 5) will be taken into consideration.

Unhide items from a list, based on their code
Think about the reasons for hiding a variable like unique wrappings around a present. Each of them makes the present invisible, and to make it visible again, all wrappings must be removed.
If you try to apply the same reason twice, it won’t be applied again. You can put any reason, such as “answered 1 to Q7″, “not needed on scenario 1″, “no reason whatsoever”, etc.
This puzzle piece is looking at codes when selecting which item(s) will be hidden. Also, it is useful to have the codes in ascending order, so that every item having a code in an interval (such as from 1 to 5) will be taken into consideration.
This puzzle piece removes a hidden reason (or a wrapping, to go with the above paradigm). If you try to remove the same reason twice, nothing will happen.

Hide items from a list, based on their position
Think about the reasons for hiding a variable like unique wrappings around a present. Each of them makes the present invisible, and to make it visible again, all wrappings must be removed.
If you try to apply the same reason twice, it won’t be applied again. You can put any reason, such as “answered 1 to Q7″, “not needed on scenario 1″, “no reason whatsoever”, etc.
This puzzle piece is looking at items positions when selecting which item(s) will be hidden. It stacks well with randomization puzzle pieces. Keep in mind to first hide the lists and then to randomize them, otherwise the order will be unpredictable.

Unhide items from a list, based on their position
Think about the reasons for hiding a variable like unique wrappings around a present. Each of them makes the present invisible, and to make it visible again, all wrappings must be removed.
If you try to apply the same reason twice, it won’t be applied again. You can specify any reason, such as “answered 1 to Q7″, “not needed on scenario 1″, “no reason whatsoever”, etc.
This function removes a hidden reason (or a wrapping, to go with the above paradigm). If you try to remove the same reason twice, nothing will happen.
This puzzle piece is looking at items positions when selecting which item(s) will be unhidden. It stacks well with randomization puzzle pieces. Keep in mind to first hide the lists and then to randomize them, otherwise the order will be unpredictable.

Randomize items from a list, based on their code
Randomly change the order of a list’s items, only for items having the corresponding codes in an interval (between 1 to 5, in this case)
This puzzle piece is looking at codes when selecting which item(s) will be hidden. Also, it is useful to have the codes in ascending order, so that every item having a code in an interval (such as from 1 to 5) will be taken into consideration.

Limit the maximum number of checks for a variable
In the case you have a multiple choice variable with many items (for example, 5), and you don’t need more than a certain number (let’s assume 4) items to be checked at any single time, this puzzle piece helps you capture the case when the respondent fills in more than that number.In many cases, this is used to display a specific message or hide a set of screens.

Mark a list item to have a ``none of the above``-like behavior
For a multiple choice list, this puzzle piece lets you define what happens when the respondent presses a certain item.
For example, if the list has the items: “a”, “b”, “c”, “d”, “e” and “none of the above”, and this puzzle piece is assigned to the “none of the above” item, when it is checked, it unchecks all the other items.
While it is checked, if any other item (“a”, “b”, “c”, “d” or “e”) is checked, then it will trigger whatever puzzle pieces you’ve added to its statement area.
This is usually used to display a particular message or hide screens.

Check if the audio / video clips have / have not been played
Useful for validating that all media content (audio and video) has been played all the way by the respondent. Usually used when advancing through the screens, to make sure the respondent is fully aware of all the content you’ve made available.
Connect two grids and make the first's row / column visibility influence the corresponding row / column in the second grid
This works similarly to connecting two lists together, but doing the same for responsive grids. When a variable on a row / column has been selected, the row / column on which it sits will be taken into consideration.
At that point, on the corresponding grid, that same row / column will be hidden or unhidden. This stacks well with randomization puzzle pieces. Keep in mind to first associate the grids and then to randomize them, otherwise the order will be unpredictable.

Randomize a grid's columns position
Randomly change the order of a grid’s columns, only for columns having their position in a specific interval (between 1 to 5, in this case)
Randomize a grid's rows position
Randomly change the order of a grid’s rows, only for rows having their position in a specific interval (between 1 to 5, in this case)
Hide / Unhide a specific column / row from a responsive grid
Think about the reasons for hiding a variable like unique wrappings around a present. Each of them makes the present invisible, and to make it visible again, all wrappings must be removed.
If you try to apply the same reason twice, it won’t be applied again. You can put any reason, such as “answered 1 to Q7″, “not needed on scenario 1″, “no reason whatsoever”, etc
Hide or Unhide a row or column from a grid. The variable taken as a parameter must be inside a grid, thus this puzzle piece will affect it.

Get the current time and date, according to the respondent's device
Use the local device (phone, tablet, laptop, desktop) to get the current date. Useful together with the puzzle piece to change a variable’s value, to change the value for a time variable.