Synchronization of data across surveys

Dear colleagues,

We have got a challenge: while we are building a form and we wanted to update previously collected data (previous answer to similar question) for validation. For instance, if the respondent said his/her educational attainment is grade 8th during prior survey, his/her current response should be at least greater or equal to 8th grade during the subsequent round. So that we wanted the data collectors to remember his/her previous response to such questions. Could it be possible to pop up (give an reminding alert) previous answers for our data collectors while they are conducting an interview? I read that ODK 2. have such tools. but I do not know how to use ODK2.

Yes, it is possible
You can upload the previously collected data as csv file to the project you are in and use pulldata() function to extract previous data.
Here are the details of using pulldata() function.

Then, you can use constraint to restrict the responses upon pulled data.
Hope this helps you.

1 Like


I am trying to use the pulldata() function to refer to a previous survey, but nothing that I tried has worked so far.

In a first csv that I want to refer to (data collected from the first survey), we have one column called « project » (that I edited to « project_key »), one row per project.
The following columns refer to all the indicators that Caritas is informing. The names of the columns are the names of these indicators (e.g. « F101 »).
Since the different projects inform a subset of indicators, there are a lot of empty cells in this first csv.

In the survey that I am building now, we are gathering the target values for all these indicators, so that the same persons that filled the first survey (all the project managers), will be asked to submit data again for each project separately, and to give a target value for all the indicators for which they had previously given the 2018 values. What I want to do in this second survey is for each indicator, before they submit the target value, to add a note that will remind them what values they gave for this indicator in 2018.

For example, before I ask them for the F101 indicator’s target value, I first made a question of type calculate, in which the calculation column has the formula: pulldata(‘Caritas_SI_2018_final’, ‘F101_ann_tot’, ‘project_key’, ${project})
Caritas_SI_2018_final is the csv file containing the data for the 2018 indicators
F101_ann_tot is the column of this csv containing the annual values for the F101 indicator,
project_key is the column of the csv containing the unique project codes
and ${project} is the value of the projet that was just entered by the person submitting to this new survey.

I am really not sure what I’m doing wrong, if you could help with this I would appreciate it tremendously, as Caritas wanted this second survey done last week…
Thank you so much again for your help,


Hello everyone,

Is there any movement in this topic? I am also willing to use this kind of options for a beneficiary registration form:
Either it’s a new beneficiary and the user enter the data in the field ${name} ${gender} ${age}
Or this beneficiary participate in other activity of the same project and in that case i wish to look for his name in the previously answered form and just ask to confirm if it’s the same beneficiary

But it seems that pull_data may not work on enketo browser, while i’m using a theme-grid only available in enketo… Anyway, never saw it working so far.

Is anyone having an idea about it?

Little update, i did manage to make it work using the android App but then i have to give up on the Them grid option and the webform…

1 Like

Hi @Quentin,

Please be informed that Pull-Data works only with KoBoCollect (mobile app) and is not supported in Enketo.

Hi Kal-Lam,

I found a workaround using the question type select_one_from_file csvfile.csv (Works also with select_multiple_from_file.

More information can be found here: (And i justs realized you posted it ahah)

Thank you for follow-up!

1 Like

Hi Juliet,
as i am interested in something similar to your case, I was wondering:
did you solve your problem?
Could you share your example?

Many thanks!

1 Like

No, sorry, I never managed…

Hi @jude85,

Welcome back to the community! Would you mind having a look at the pull data (with a workout), It should help you understand the concept of the same. Additionally, you could also have a look at our support article on pull data here.

Have a great day!

1 Like