How to carry forward the statement randomization order, but also limit options displayed | XM Community
Skip to main content

We are working on a client brand funnel, where we first ask levels of familiarity to various companies (matrix) and then follow items (e.g. reputation, consideration, etc, all matrix) about only the companies they are somewhat familiar with.

We have multiple needs here (and since the project is client-approved, they’d be hard to change). First, the order of the companies in the first funnel item (familiarity) should be randomized, so there’s no display order effect. And, we want the follow-up items to follow the same order as the familiarity/first item (so it’s consistent for the respondent to follow).

 

Next, in the follow-up items, we only want to display the companies that the respondent is somewhat familiar with - problem is, familiarity is a 6-point scale, where the top 4 are ‘somewhat familiar’ or higher (and would move forward), and there are 2 scale points that are not acceptable and we would not carry-forward that company name to future items.

 

We’re running into an issue where we can’t seem to both preserve a randomized order from the first question onto the follow-up items AND displaying future statements based on multiple acceptable/multiple not-acceptable response options.

 

From what we’re found, carry-forward the statements from the familiarity item to the later ones WILL keep the randomization order, but only allows us to choose to display/not display companies in the list based on 1 answer choice (can be “x is selected” or “y is not selected”, but NOT “y nor z (2 choice) are not selected”).

We’ve also tried building the later brand funnel items in a static mode and using individual display logic for each company to tie back to familiar/not back in the familiarity item - but this doesn’t let us follow the same randomization pattern that was used in the original familiarity item, and they were either static (as we programed them) or random in their own, unmatching way (if we turned on randomization for that individual question).

 

We can’t seem to find any other community posts or javascript suggestions that address the problem of needing to display based on multiple acceptable (or not display based on multiple unacceptable) answer options, while still keeping the randomization consistent across multiple items.

Does anyone have any suggestions at all? (hopefully besides making 24 versions of the block in all the orders and having to manually collapse them back down in data cleaning...)

Here’s an example picture I drew up, to show the kind of question format we’re talking about. The first item would show the 4 companies in a random order, but for the follow-up questions (in the next block for visuals), we want the company order to be the same, but only carried forward if respondents selected Yes or Maybe in the first question (ie, if they selected No or Unsure, that particular company name would not carry forward to the remaining items)

 

Hi @egaleza LONG MESSAGE ALERT!!!

I have created a set up which works fine for your use case.

It resolves both your caveats - 

STEP 1: I have created randomization without the statement randomization with the help of embedded data.

Let’s say you have 4 choices/companies i.e., A, B, C, D; in the first question. And we will get those values from the embedded data Rank 1, Rank 2, Rank 3, Rank 4 respectively. Rank 1 can have any of the 4 values (refer the above image) which will be picked up randomly by randomizer element. Remember to tick off the ‘evenly present elements’ box and assign randomizer value as 1.

STEP 2: Repeat Step 1 for all the other companies. Refer below images.

We don’t want to have same company values for multiple options so to avoid this we will add a branch logic for every embedded data.
This will ensure that every option is unique. Repeat this for Rank 3 and Rank 4 as well.
Similarly Rank 3 embedded data will have 2 logic conditions.
Similarly Rank 4 embedded data will have 3 logic conditions.

 STEP 3: Add your question block after the whole branch logic setup.

STEP 4: 

Create a matrix question as required. Pipe text the embedded data as the 4 statements. The 4 statements will be randomly picked every time as the branch logic in the survey flow will do its work at the backend.

I know the verbatim of the scale point may not make sense but wanted to replicate your use case as you said the question has 6 point scale. 

STEP 5: 

Create the follow-up question as required with the same answer choices/statements using embedded data. It will have the same order as shown in the first question. Add display logic to this question saying ‘display only if Extremely Unfamiliar and Somewhat Unfamiliar is not selected. Add OR operator between the logic sets for different statements.’

STEP 6:

Add display logic on the choice/statement level saying “display only if Extremely Unfamiliar and Somewhat Unfamiliar is not selected.” Repeat the same logics for other statements as well. Refer below image.

 

THE END!

Please let me know if it worked for you.


@egaleza

This can be done with JavaScript:

  1. Use JS to save the order of statements to an embedded data field
  2. Make sure the statements are added in the same order in the follow-up questions (it would be best to copy the first question, then modify it for the follow-up questions)
  3. Add display logic to the statement in the follow-up questions
  4. Use JS to reorder the statements in the follow-up questions

JS for first question:

Qualtrics.SurveyEngine.addOnload(function() {
var stmtOrder = ];
jQuery("#"+this.questionId+" tr.ChoiceRow td:nth-child(2) input").each(function() {
stmtOrder.push(this.name.split("~"))2]);
});
Qualtrics.SurveyEngine.setEmbeddedData("stmtOrder", stmtOrder.join(","));
});

JS for follow-up questions:

Qualtrics.SurveyEngine.addOnload(function() {
var tb = jQuery("#"+this.questionId+" tbody");
jQuery.each("${e://Field/stmtOrder}".split(",").reverse(), function(i,val) {
tb.prepend(tb.find(""name$=\\~"+val+"]").closest("tr"));
});
});

 


Leave a Reply