SONA, Qualtrics, Pavlovia

Hello, I am brand new to SONA, Qualtrics, and Pavlovia, and need to make all three work together.

What I need to happen: Participants sign up via SONA, go to Qualtrics to fill out the consent form (I’ve been told that there’s no clean way to do consent via Pavlovia since the ‘forms’ option only works remotely?), then I need Qualtrics to send my participants pseudo-randomly to one of the 8 conditions, the participant will complete the experiment in Pavlovia.

My experiment has 8 conditions. I have made the 8 experiments and set them up in Pavlovia already. For Qualtrics, I have a block with the consent form. If they accept, they move on, if they decline it is terminated. I have 8 blocks each with a single question “You will be redirected to the study, please turn on your volume.” and the answer choice “Click here to begin” is embedded with one of the 8 Pavlovia URLs. The image below only shows the first two blocks, but I will have 8 total.

Question 1: Will the above work the way I think it will? That they will click accept, and then be sent to one of the blocks psedu-randomly? I have seen other forum posts on this site that do the same thing with the randomizer in survey flow, but used embedded data instead. However, I was not sure how embedded data works in Qualtrics and my randomization was not dependent on any prior information about participants so I thought this may be simpler?
Question 2: How do I go about making sure the participants receive credit when they finish the Pavlovia experiment? I see in SONA I have the option to have credit automatically granted or I can grant it manually. It would be ideal that the participant finishes the experiment in Pavlovia and then credit is magically granted. However, I’m not sure how I would make that work? Would I need to redirect the experiment back to Qualtrics that way when Qualtrics is terminated SONA knows the experiment is complete? How will it know which participant is which?

I apologize for the blatant lack of knowledge on all three of these platforms. I was given this task with a very short deadline to figure it all out and get it all up and running. Any advice is appreciated!


I doubt that you should have 8 different Pavlovia experiments. I use the randomizer to set an embedded variable when I send to Pavlovia.

Hopefully some of your answers are in the following document.

Thank you for this document. It is really helpful. Why should I not have 8 Pavlovia experiments?
It is an auditory task in which each participant runs 1 of the 8 conditions. Each condition is made up of 4 categorization tasks. Before each of the 4 tasks, the participants receive a specific type of feedback or exposure. Each different condition has the tasks in a different order, with different feedback schedules. I had asked about the best way to set this up with the Psychopy builder in a different forum, and was told it would make the most sense to create each condition in a separate builder and then have Qualtrics randomize the conditions. Would there be a better way to do this? It’s probably too late now to redo it, as I have already created the 8 separate files and have to have this up and running Thursday, but would be good to know for future experiments. Thanks!

Having set it up that way, there’s no point in changing it now, but in principle you should be able to customise the way an experiment runs based on variables. The main reason to do it this was is the same reason to try to reuse routines as much as possible within an experiment. If you need to make a change you have to do it eight times, and it’s difficult to be confident that you haven’t accidentally introduced unwanted differences between the conditions.

It can, however, be a pain if there are a lot of different media files to be downloaded for each condition. Downloading files on the fly can trip up if you reach your trials too soon.

Thank you so much for all of the information, I appreciate all the work you’ve put in making these files! Luckily I was able to just copy and paste routines from one builder to another to make it easy.

Your document has been extremely helpful. I have one question. Since I have the 8 conditions, and therefore 8 different recruitment URLs, how would I include all of them in the Qualtrics survey termination redirect box?

You need to set the name of the experiment folder as an embedded variable in Qualtrics

Sorry, I’m not sure I quite understand. I have my 8 conditions currently as 8 separate experiments, that why I’d have 8 separate URLs to put into my Qualtrics study to randomize. So they are not all in a single folder together. If necessary to carry the participant ID from qualtrics to Pavlovia, I can change it so all 8 conditions are in a single folder and then re-upload. I had tried that originally, but was having issues figuring out how to tell qualtrics which of the conditions to run since the URL was the same. It also seems no matter how many times I make the study inactive and active again, I never get \html on my URL.

Each experiment does need to be in a different folder.

Experiments tend to now run from the root rather than an html folder.

You could have eight custom endings in Qualtrics or have the folder name as an embedded variable, e.g.${e://Field/experiment}?participant=${e://Field/participant}&session=${e://Field/ResponseID}&group=${e://Field/group}&researcher=${e://Field/researcher}

Thank you. I’ll look up some videos on how embedded variables work in qualtrics so I can try that.

I have a set of slides on my website called Qualtrics variables and randomisation that might help.