The Customer's Request
I have a customer who is doing a survey which requires the respondent to fill out a block multiple times for different products. My customer asked if I could put a block on repeat, and when they're finished, it would break the cycle flow and exit the survey. Note, this isn't a 'Loop and Merge' scenario - no input changes the survey block - it's the same every time.
Solution Overview
I opted for a solution where there are Batch Ids and the surveyor (an employee of the company - so there would be a level of instruction) would take the survey repeatedly, but in batches. Here was my solution: I am MORE than open to suggestions!
(Preface, this is a solution that I am still working on, and it may have kinks. I make sure that I state my confidence level before posting something that might not be correct, and this is one of those times that I admit that there may be a better way.)
Solution Details
I had a Survey Link with a query parameter `BATCH_ID`. If it was empty, It would go to a first, conditional block that would ask for the Batch Name, and then encode that into that BATCH_ID, and then assign it to itself, with the BATCH_NAME being the English version of the batch.
The respondent would fill out the block, and then at the very end, there were two choices: 'Continue Batch' or 'Start New Batch'. If they Continued, the current `BATCH_ID` would be included in the link, and the survey would open, decode the `BATCH_ID` and store the `BATCH_NAME` and `BATCH_ID` in the Embedded Data, and then the survey would go normally. If they hit 'Start New Batch', it would provide a link that would _not_ have a BATCH_ID, and they would be prompted for the Batch Name, and it would continue by generating the ID as above.
I had a hard time trying to figure out how to make that happen, but here is the thought process I went through, and how I explained it to my customer:
If you're making an Excel Spreadsheet, and you are manually entering this information in, a loop in a Qualtrics form would be like adding columns indefinitely. Your survey would only have as many rows as you had respondents, but it would be hard to slice and dice the data when you have hundreds of columns. Its far easier to analyze data which has a set number of columns, but an indefinite number of rows, and are grouped together by a batch Id. That really resonated with my customer, and so we're moving forward with the given approach.
Potential Flaws:
The introduction of nominal identifiers is an accident waiting to happen. If they say `Sally's Diner` as a batch, and then retake the survey and enter `Sallys Diner`, the omission of the apostrophe would obliterate any relationship between the surveys, creating two separate branches. To solve this, the Batch ID Generator strips out grammar, removes non-alphanumeric characters, and then produces the ID, but still, that wasn't solid enough of a defense for me.
One solution I'm playing with (this project is still open and being actively developed) is to, when a BATCH_ID is generated, ask for an Email Address of the Respondent, and then email them a link for them to return to if they need to continue the Batch after a certain period of time.
This may not be the best solution, and I am open to better approaches.
But the benefit of this is that the Customer will easily be able to filter, sort, and slice the data in their Dashboards by BATCH_NAME, and isolate that batch for individual analysis.