Below I describe two general approaches. (Unfortunately, there is no obvious way to check if the user had previously answered a certain question, it is hidden behind the scenes.)
One approach is to use *switch and create separate programs for asking questions and showing answers.
Here is the example: goals one program | GuidedTrack
(Note that saving data between programs works only in Run mode but not in Preview mode, please use
https://www.guidedtrack.com/programs/6770qms/run to see the example in action)
This approach could be used to show the old answer for every question like this: main: questions and answers. Run mode link.
Another approach is more complicated but can give you a lot of flexibility. It is to use a third-party application (Airtable) for storing and retrieving the data.
Here are two sample programs to save goals and to read them. Here is a link to join the Airtable I used for this example.
I used email as a key but a better option would be probably to generate a random number and use it as a key for retrieving data. Unfortunately, there is no way to get access to GuidedTrack participant ID from inside the program so we have to use this hacky solution for it.
We also have a guide for GuidedTrack and Airtable integration that covers main points (especially if you are not familiar with Airtable) but is not quite polished yet.
For goals one program
For main: questions and answers