Randomize Columns or Questions or create Question pool

I am working on an inspection app. My company produces over 300 parts. To perform a certain type of audit on the processes used to create those parts, I would like to do 2 things:

  1. Randomize the questions for the auditor. For instance, “Check parts for burr.” and tomorrow “Check parts for bad paint.” Basically pull questions from a pool of questions.
  2. Certain questions that would fade out over time. I work in the auto industry. If we find a defect (“Bad Paint”), we want to track our process over 30 days to make sure that our updated procedure prevents recurrence of the defect. So is there a way to make this question ask for the given time period and then be randomized again?

If these are possible, some points in the right direction to find the answer.


Yes this is certainly possible, sounds like an awesome process! You will need 3 tables, one for tracking assets, one for your question pool and one for tracking the individual checklist items for each asset. The tracking table will be a child table to the asset table.

The question pool table will contain all of the questions that could ever be displayed. In that table you could have 1 date column (to track whether a question will be tracked over 30 days) and 1 virtual column. The date column that will populate today’s date when the question starts a 30 day cycle. The virtual column will be a yes or no column with this formula:

if ( and([DateColumn]>today()-30), isnotblank([DateColumn])), true, if(randbetween(0,1)=1, true, false))

This virtual column acts as a flag so your app can query the questions when it generates a list for the inspection. It will set all questions that are being tracked for 30 days as true and then randomly pick questions from the rest of the list.

Next you would have a asset table that will track the status of the overall inspection for each asset. When a user views the details of an asset, they can chose to “start inspection” by clicking a button “Start Inspection”. This will start a grouped action with these components:

  1. Set asset status to “generating checklist”

  2. An action that is “execute an action on a set of rows” with a formula of this action would look something like this.

select(questionpool[ID], [virtualcolumn]=true)

This action will reference an action in the question pool table to copy records to a tracking table that will act as a child table to the asset table. The column used as a reference back to the asset table will be populated with a formula that performs a lookup of any asset that is of status “generating checklist”.

  1. Set asset status to “started Inspection”

Hopefully that helps. Let me know if you run into any roadblocks.


I will keep you posted. Thanks for the pointers.