Some of our enumerators keep on using older surveys, so they do not sync their devices and update their forms/surveys. Is there a way we can enforce survey updates, cancel uploads from older surveys or send messages to enumerators that they should sync/update their forms? Some enumerators are not that tech-savy and some are very remote, so syncing will not be a daily option for them. Thanks!
Does this request sound related to what you are after? Trying to warn the user if their last sync time is over a threshold.
You can prevent uploads from old surveys by changing the form state to closed, this only works if you are retiring a form and not if you want the users to sync to the latest definition.
If you knew or could set your form's / definition's life, you could include some calculations that compare the end date to the current date and disable the rest of the form and show a note telling them to sync to get a different form/updated definition. eg definitions are updated on the first of the month, so if today is 2025-03-02 and the version I have is from 2025-02-01, the calculation would check that today is before 2025-03-01, and as it is not, show the warning note and disable the rest of the form.
Do you use the default QR code from Central to configure devices? Those QR codes configure Collect to automatically request updates from the server every 15 minutes. If an update is available, it is downloaded.
If you do use those default settings, do you have a sense of why data collectors aren't getting updates? For example, @ahblake described that his users sometimes power up devices while offline so they would need a reminder to explicitly seek out connectivity and then initiate download.
Yes, I use the default QR code creator from Central, using the API. With my own device I notices that it automatically updates forms. So maybe some users indeed power up their devices without WiFi connection. I suspect this. I need to figure out. But building in a message in the form would indeed help to remind them. Thanks for the responses!
I build in your solution. It can work to some extent. However, I realised that this solution means that I have to update the form on the server side each X-days.
For example, if I do a calculation between Today and the form date and use a treshold value of -say- 7 days (so an update message appears if the difference between the current date and form date is > 7 days), it would mean that I have to update the form date on Central Server each 7 days. If not, the form update message keeps appearing in the enumerators form.... That is the drawback on this solution. So ideally, the form date (version) on Central Server is updated automatically each week if no updates are needed? I don't think this is possible. Any ideas on this?
Yes, it's not a perfect solution, as some data from an old form may be better than no data and it adds ongoing definition updates. You could also just have it display a big red warning note that the form is outdated but let them continue instead of preventing any use - which sounds like your implementation.
You could automate the process of publishing a new definition, but as far as I know, the form version is not available to the form for a calculation (but it is included with the submission record as below), so for your new date value you would have to either automate updating a value in the xlsxform or write out a new CSV that contains the date / update an entity value that contains the date and use this for the calculation. There is also a potential issue if the users' device has the wrong date...