Create dynamic surveys with multiple choice | XM Community
Skip to main content

Hi, I am new to Qualtrics.

I am currently designing a survey with approximately 40 multiple-choice questions.

Each question has five choices. Each choice consists of one image (randomly selected from pool A), another image (from pool 😎, and two words (from pool C).

I would like to randomise the order of all questions as well as the order of choices within each question.

I plan to distribute 500 surveys, and I don’t mind generating them individually if needed. However, I’m wondering if there is a more efficient way to implement this.

For example, I could perform all the randomisation in Python and output the content of each choice in each question to a CSV file. Then, at the beginning of the survey, the respondent could enter a code or number, and Qualtrics would generate the corresponding version based on the CSV.

I’ve tried using “Supplemental Data” (but HTML text is not supported), Web Services (but couldn’t find a suitable JSON server, and creating 540 embedded data fields seems impractical), and JavaScript (but it doesn’t support replacing choice content effectively).

Do you have any recommendations for implementing this type of design in Qualtrics?

Hi ​@Ryan_in_Qualtrics9898 ,

 

Not sure how many images are in Pool A & B and how many words are in Pool C.

Pool question:

Create a question for each Pool.

For each question, using choice randomization, present only 1/2 of the total choices depending on the Pool.

Use JavaScript to hide the three Pool questions and to autoclick next button in Pool C’s question.

(With ChatGPT’s help on a bit of JavaScript.)

 

Actual question:

Create a fourth question that contain all the choices in Pool A to C.

For each choice, add choice display logic to display when the previous Pool question is displayed. 

For each question, using choice randomization, Display answers in a random order.

 

Use Loop & Merge to loop through 40 times to simulate 40 questions and randomise the loop order.

 

For illustration:

 

Qualtrics.SurveyEngine.addOnload(function()
{
/*Place your JavaScript here to run when the page loads*/
// For Pool questions
this.getQuestionContainer().style.display = 'none';
// For Pool C
const interval = setInterval(function () {
var nextButton = document.querySelector("#NextButton");

if (nextButton) {
nextButton.click();
clearInterval(interval); // stop polling
}
}, 50); // check every 50ms
});

 

For Pool A & B, 1. For Pool C, 2.

 

Choice display logic for actual question to display based on previous Pool question.

 


@Ryan_in_Qualtrics9898 ​@Chee Heng_SZ ,

Hello Ryan,

Your randomization setup sounds complex but totally doable with embedded data. You're on the right track with the Python + CSV approach.

For the embedded data challenge (which would normally mean creating hundreds of fields manually), you can use our free Embedded Data Generator. It's designed exactly for situations like yours - upload your Python-generated CSV and it'll bulk create all the embedded data fields you need for your 500 survey versions in just a few minutes.

Then just use piped text in your questions to pull the randomized content: ${e://Field/ImageA_Q1}, ${e://Field/Word1_Q1}, etc.

Available as both a Chrome extension(i.e. https://chromewebstore.google.com/detail/qualtrics-embedded-data-g/fkkmlmjhiehciaaodjghecnjojendgfo) and web version(i.e. https://piraiai.com/embedded-data-generator) at - https://piraiai.com/qualtrics-toolkit

- might save you hours of manual setup!

You can watch this demo video on how we convert the unstructured survey spec into Qualtrics survey in mins: 

Try Our Free Tools Now

While we're coordinating the demo, I encourage you to explore our free tools at piraiai.com/qualtrics-toolkit - no signup required! These can immediately add value to your current projects:

Perfect for Data Analysts:

  • QSF to Excel Converter - Extract and analyze survey structure data for reporting
  • CSV Comparator - Quickly compare datasets and identify differences
  • Embedded Data Generator - Bulk create embedded data fields for complex studies
  • Qualtrics API Toolkit - Transform complex API operations into simple CSV uploads
  • Chrome Extension Suite - Direct Qualtrics integration for streamlined workflows

Good luck with your survey!