I’d use 2 datatypes, and an option set:
Options Set:
Question Type (e.g. short text, long text, number, date, date & time, image, file, yes/no etc.)
Data Types:
-
Question
- Question (text)
- Type (Question Type)
-
Response
- Question (Question)
- Type (Question Type)
- Response Text (text)
- Response Number (number)
- Response Date (date)
- Response Image (image)
- Response File (file)
- Response Yes/No (yes/no)
- Respondent (User/Contact etc.)
You can use a RG to show the questions, with the relevant input types for each question type.
Then you just need a way to access the input value of each input in a workflow…
I use a simple custom state list of texts, to store the value if each input along with the relevant question (or existing response), and then create or modify the responses when the submit button is clicked.