Complex prototype with rich data capture

I’ve created some pretty complex Axure prototypes before, but I’m wondering if I’ve reached the limited of what is possible in Axure circa 2018.

Specifically, I want to create a multi-page survey that dynamically changes within and across pages based on information and decisions provided by the user.

This could include:

  • Adding new questions within and across pages based on data provided
  • Dynamically updating navigation to allow a user to jump around the survey
  • Capturing all data from multiple respondents (2 - 4 respondents)
  • Dynamically replacing words across the survey based on supplied information

I’m aware that Global Variables are the only method to achieve this, as they are the only persistent form of data/state storage across pages offered in both Axure 8 and 9.

I’ve read with interest the various forum posts on hacking JSON, connecting to Google Sheets, connecting to Databases via GET requests, somehow using Repeaters and concatenating multiple pieces of data into a single Global Variable (string manipulation). I’m not a coder, so many of these methods are difficult to use.

I’ve built smaller forms before (~5 - 10 pages) using Global Variables to great effect. However, the scale of the prototype I’m exploring makes this difficult. I’m estimating it could be upwards of 200+ Global Variables to capture all the data points for 2 - 4 respondents across multiple pages and multiple questions.

So my questions:

  • How many Global Variables is too many before Axure or the prototype crashes or otherwise fails?
  • Have I missed anything in ways of hacking persistent global data?
  • What is the largest complex survey that anyone has tried and were there any useful learnings?

Based on my readings and experience teaching Axure, I’m feeling that, without persistent data storage, this is a step to far in prototyping. I’ve read many comments by those that have some really amazing skills suggesting that a move back to coding is better for prototypes of this sort of complexity.

However, I just want to make sure I haven’t missed anything.

The general rule of thumb is 25, but Axure claims there is no actual limit. See the reference page for variables for more info:

Maybe… Not sure it would get you to your 200+ variables, but in terms of “native Axure” you could overload global variables with hashes or delimiters and represent multiple values in a single variable. Let’s say the first page of your survey has 5 questions: User Name (text field), Age (text field) and three multiple-choice questions (A-D answers). You could have a global variable, P1, that would get set with a value of “Joe Smith;36;D;B;A;” which could be later parsed with substring() or slice() functions. This should allow you to set dozens of responses to just one global variable. See for a list of supported javascript functions (applies to RP8 and I believe RP9 too.) Learn more about each one by Googling its name, as in “javascript substring” or “javascript get last char in string” etc. (Note these are built-in Axure “variable functions” and not javascript injection.) You can also find these functions by looking in the “Insert Variable or Function…” link in the “fx” dialog under “String” or “Math”.

…Well, this perhaps more coding than you’d want, but I’m not a coder and learned it easily enough for these kind of purposes.

This may not work so well if you have open-ended or essay questions in your survey, as the total char count of your global variables may get too long. Performance will vary depending on the participant’s browser and computer as this is all “client-side” processing. You could potentially “hash” a long paragraph if you are really only interested in some keywords, for example if Q15 contains “depressed” or “depression” or “sad” or “unhappy” etc.

A few years ago I had maybe 5 to 10 questions on 20 pages (one survey page following a “UI page” or task in a prototype) and then used a javascript hack to print the page to a PDF. Most questions were repetitive, asking user to rate ease, time, confusion, etc. I learned it was easier to just administer and score the surveys manually or from video (screen recording) adding in ad-lib comments from user.

What about something like Survey Monkey? Does it have to be done in Axure or as a prototype?

1 Like

Really appreciate the reply @mbc66 . After reading your thoughts, doing some more research and then talking with the client we’ve come to a different approach. Like you said, we are going to prototype the survey elsewhere and then use Axure for everything else. I attempted the overloading but don’t quite have a head for the programming so this seems like the best option! Thanks again.