How to counterbalance which story has which ending? | XM Community
Question

How to counterbalance which story has which ending?

  • 3 November 2019
  • 5 replies
  • 6 views

I'm creating a survey where people will read a story and answer a few questions about it. I need to make sure that each story is counterbalanced with each different ending- I have 6 stories and 6 different endings (and each story and ending should only be seen once). What would be the most straightforward way to do this? Trying to avoid creating several different versions of the survey.
Any help/input would be greatly appreciated! Thanks.

5 replies

Userlevel 7
Badge +6
Wherever the ending of the story exists, you need to separate that out from the rest, either through a separate question or in separate blocks (whichever works better for you). Then you can either use a randomizer block in the survey flow if using "blocks" to distinguish the various endings, or randomize the "question" within the block if you are using questions to randomize the endings.
@Akdashboard Thanks for the feedback! I'm thinking I'll need to go about this by adding different endings as questions, as I'd like the ending to be on the same page as the story and adding a separate block seems to put the new block on a different page. I also need to have the stories presented in a random order which makes me hesitate to add a bunch of new blocks.
I'm just still a little unsure about something- How would I go about ensuring that each ending is only viewed once?
Userlevel 7
Badge +6
You can do this a lot of different ways.

One way is to randomly set embedded data at the top of the survey flow, before any questions are show. The embedded data being set is the end of your story, with full HTML formatting. This way you can just pipe that embedded data into your survey where you want it and it will appear on the same page.

~~Give me a few minutes and I will put together a simple tutorial video to show how to do this (without sound, sorry... don't have the ability to record audio).~~

I couldn't make a video short enough, so instead I did a really easy example project with instructions of what to do. Upload the .qsf attached (new project, from file, upload file).
Thank you so much! I think i was trying to do this technique before based on something I found in a google search, but I've been having trouble getting it to work. I've attached an image of how I have the embedded data in my survey flow. For context, I include piped text from a text response the participant gives in the Intro block (the text being a name), and it seems like in order for the embedded text of the story endings to include the piped text of inputted names, it needs to be after the Intro block (but I'm not 100% sure). As such I don't have the embedded text of story endings right at the top but after the intro block.
The issue I'm running into right now is that it's only presenting one of the Conditions I specified, the same condition for every story. I'm not sure if this relates to the "Edit Count" option on the Randomizer- I keep resetting it to 1 but it keeps switching back to 2. Or maybe it's to do with how I inserted the text into the question? I used the same text to add the embedded data for every story- "${e://Field/Condition}"
I appreciate your help so much!! If you've already put together the video I'll just check it out and see if it addresses these issues.
Userlevel 7
Badge +6
Ok... so there are a few things to fix with your logic, but you are off to a good start.

1. You cannot set embedded data from question in the survey flow until after that block is completed (i.e. block with data to collect > embedded data block to set > block where you want to post the embedded data). You can get around this using JavaScript though. Just search the forum for how to do that. - Note, I'd recommend setting the question text collected to embedded data and then piping that embedded data into "Condition" in a similar way that you are piping question text.
2. You need to set your randomizer block to display "1" of the following elements evenly... not 6. The "Edit Count" button allows you to manually adjust how often a given block has been shown. I'd just ignore that for your use case.
3. Technically not NEEDED, but best practice is to make each embedded data name distinct so that you know which variable was used. (i.e. Condition1, Condtion2, Condition3, etc.). You can pipe all of them on the same line, but only 1 will show because only 1 will trigger because of the randomizer.


I think with a little JavaScript and adjusting how you setup your randomizer, you can do what you want.

I am not a pro at JavaScript, but this should get your started...

<<Qualtrics.SurveyEngine.setEmbeddedData('fieldName', newvalue);>>
fieldName = Emebedded Data you want to set
newvalue = the piped text of the question you are trying to pipe in.

Leave a Reply