Trace or history of field value modification

Hi, dear all.
I assume that, before sending data on the server, an enumerator has changed (offline or/and online) twice or more times, a value of a given field (using ODKCollect): is there a way to have the trace or the history of the successives changed values?
In advance, thanks for your answers.
Kind regards,

Hi @Amal

Have you check out the form audit feature introduced on latest odk aggregate?

Not sure if it completely answers your question, what it does is logging behavior of enumerators .

Check it out at



1 Like

@dicksonsamwel is right that the audit log will provides a lot of information about when enumerators access certain questions but it does not provide the actual values saved in fields.

One technique you can use to retain access to the first value of fields (not full history) is to introduce a calculate field that saves the value of the desired field once. Here is a simple example:

type name label calculation
text first_name First name:
calculate orig_first_name once(${first_name})

If you really do need the full history, @Amal, it would be helpful to learn more about how you would use that information and how you might like it to be formatted. The challenge with something like this is making sure it's useful and not just an overload of data.

1 Like

Thanks to you for your replies, @dicksonsamwel and @LN.
@dicksonsamwel, the feature you suggest me does not completely answer my question, but, in addition of @LN's proposal, it solves partially my problem: thanks again.
in clinical trials studies, investigators need to know how many times enumerators have modified some fields's value, and why: then, in some cases, to ensure the data accuracy, we send another enumerator collect the concerned data:
that is why I would like to be able to provide them all these informations.
I am interested in only the eventual successives values before the actual saved one.
In advance, thanks.
Kind regards,