How to program that keeps track of the number of times we visit an enumerator?

Hi All,

We are hoping to use ODK collect on android tablets. We have multiple interviewers (/enumerators) who will administer a questionnaire over the phone and log responses in the app.

We wish that enumerators can phone a participant multiple times (up to a maximum of 5) if the phone is busy/no reply on the first attempt.

How can this be achieved without multiple submissions for the same participant?

Best wishes


would you mind to add information why not posting at if you use ODK collect?
And add some more details:

  • Do you need to work with more than one enumerators and with more than one device on the same case (after contact)?
  • Why do you need to enter data already before reaching the person by phone?
  • Could later additional entry for one case also be done on the server?
    Kind regards

thank you for your response. How do i share this post on the

Yes i need to work with multiple enumerators with a tablet per enumerator.
I am hoping to have a call log, so the enumerator attempts to contact a participant but there i no answer, i want this no answer to record for attempt 1, then the enumerator will attempt again the following day, if it is no response then they will attempt the day after that until either they successfully reach the participant OR they reach a maximum of 5 calls,

I am not sure I what your 3rd point is referring to, Can you rephrase?



Hi @cp622,

You could control this by following the instructions outlined below:

Preliminary Preparations:

  • You should have 5 variable (along with the other survey variables required for your survey) that captures the attempts as well (like: attempt_1, attempt_2, attempt_3attempt_5.
  • Deploy your survey and get the same in the Collect android app (whether it be KoBoCollect or ODK Collect).

Data Collection:

  • Open the blank form. Call the respondent. If the respondent is not available, fill you blank form (marking first attempt was made).
  • Press the save button (numbered as 1 in the image below) and then press the back key (numbered as 2 in the image below):
  • You should now see a dialogue box with Save Changes and Ignore Changes.
  • Press `Save Changes’.
  • You should now see a list of forms being saved under the Edit Saved Form. This should include both the complete forms as well as the incomplete forms. It’s difficult to distinguish between the same unless and until you provide a specific name for the completed ones. However, an easier way to solve this problem is by looking at the Send Finalized Form.

    Sync all the completed forms with the KoBoToolbox server by entering the Send Finalized Form. Those forms that were synced with the KoBoToolbox server now shows up in the View Sent Form while those incomplete forms are seen in Edit Saved Form.
  • You could now go back to complete the incomplete survey by selecting the form from within the `Edit Saved Form’.

Have a great day!

1 Like

Hi Kal Lam,
Thank you so much for your detailed response, i have been testing this out all day yesterday.

with some initial trouble trying to get the skip logic right we were able to manage to get this working nicely. Iwas going to upload a screen capture video but it does not permit mp4 file extension so instead is the call log syntax we usedCall_log_v10.1.xlsx (9.9 KB) .

thank you very much for your help


Hello @cp622,
if you allow, few additional hints:

  • You might add a minimum constraint for the date.
  • And a minimum for the call number

There is a KoBo limit here to control call number increase: You may start with 4 even. But then next time enter 2. Which would hide previously entered 3 & 4 and delete these data on save/validation.

Hello @Kal_Lam,
this might be a more general question: How to create and control an increasing integer number? (May be let’s go with extra topic?)
I tried around, scanned posts (e.g. around unique ID creation), but could not find a solution. So, expert hints would be highly appreciated.
I tried the following easy example,
Call_log_v10.4.xlsx (9.7 KB)
It works in Preview, but cannot be deployed as circular dependency. (And cannot control increment by 1, you can increase by more)
Thanks in advance and keep healthy

Hello @wroos

Thank you for this, that is a really good point, i am not sure whether our training manual would prevent this. what do you think we could do to prevent this?

Best wishes


Hi @wroos

Looking at the form, I am a bit confused at the logic you want to create

The NumberLast (NL) is calculated based on the NumberNext (NN) and the form is also logically organized with NL coming before NN. That is where I am lost, could you clarify what exactly you want to achieve.

On the second issue, the response to NL is dependent on NN yet NN is based on a skip logic that refers to NL.

This form however works on preview :slight_smile:





Hello @stephanealoo
Thank you for your input, the goal is to have a maximum of 5 call attempts (if necessary), so if the first call is ‘no reply’ then the enumerator will save the survey and call again tomorrow. When they make the second call they enter call_attempt=2 and then proceed with call if it is successfully answered, or save it if is another ‘no reply’,
Any suggestions is appreciated


Hi @cp622
I worked on your form differently to account for the following

  1. The call attempt number is auto computed (@wroos I don’t know whether this answers your previous question :wink:)
  2. Date and time of first attempt are automatically recorded
  3. Subsequent attempt dates can only be equal or greater to previous and not in future
  4. An attempt cannot be made within an hour of the previous attempt (new to your form)

See the form here Recording_CallAttempts1.xlsx (13.8 KB)

The screenshot for the excel is here

Use the earlier instructions given by @Kal_Lam to execute in data collection


1 Like

Dear @stephanealoo,
sorry for delayed response.
I was looking for a possibility to record the last value before a new value is entered. This would allow for example to ensure sequencing numbers etc… I played around (see short xls example). But I am afraid this is not possible with KoBoToolbox,
Any solution (or workaround) would be great.

If the case is saved, there might be a solution approach with ODK. Remember Last Saved Value (but this is for 2 form instances)
Kind regards