Answers to your questions

Can I put special characters in the variable names of my forms?

No :)

This is especially important to remember for our friends who work in languages other than English where lots of special characters - like accents and apostrophes - are commonly used. These characters can be used in the question labels, but not in the 'name' column of your XLSForm.

If you have any other questions about how to build an XLSForm that is supported by SDK, feel free to reach out by clicking 'Support' in the bottom right!
Back to Top

Are my dashboards updated with real time data?

Great question! In most cases, dashboards configured in SDK are updated in real-time, whenever the data arrives safely on our servers. In some more complex dashboards that take over 30 seconds to query, we cache the dashboard so that you don't have to wait too long to make use of your data. This means that the dashboard is not perfectly real-time, but it's very close (within 5 minutes of real-time). If you're curious if your dashboard is real-time or cached, reach out and we'll let you know!
Back to Top

How do metadata date types work?

Some of our customers request that we build their form to collect metadata about the device it's being submitted from. The most common metadata type's are:

  • 'start' collects the time that the surveyor started to complete the form

  • 'end' collects the time that the surveyor finished completing the form


These metadata date types will collect the date and time that the device is set to, not the date and time that our servers are set to. Sometimes this causes what looks like a date discrepancy in the dataset when the data in the 'created_at' column (which is the date and time the record is created on our servers) differs from the 'start' and 'end' columns, often because of the time zone difference between SDK servers and the location of the device used to collect data.

A common issue we have seen is when surveyors remove the battery from their phone to conserve battery life. In many cases when the battery is removed the device resets to January 1 at 12:00 AM. Typically this adjusts itself when the surveyor connects to the internet, however if any records were created before an internet connection was found, those records would contain this incorrect date. If you are seeing a date discrepancy, please check the date and time set on the surveyors device. If something else seems amiss, click 'Support' in SDK and let us know - we're here to help!
Back to Top

How are data encrypted in SDK?


  • Transport level encryption -- this means we encrypt the data "wire-to-wire" from the handset to the server. It is encrypted using the SHA2 hash algorithm. You can read more about it here: https://en.wikipedia.org/wiki/SHA-2

  • Encryption at rest -- once the data reaches our database, it is encrypted on the hard drive automatically. We host our platform on Amazon Web Services which has pretty considerable security measures implemented out of the box. The encryption used is the AES-256 cipher algorithm. You can read more about it on Amazon's site here (along with more specific technical details): https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.Encryption.html

Back to Top

Can you recover data after my project has been deleted?

Yes! If you've have ended your contract with Secure Data Kit, we will delete your project(s) after you have confirmed that all data has been downloaded. At that point the data will no longer be available for you to access with your SDK login. However, if you need to access your data after your contract has ended, we can recover it and send it to you as a CSV for a $200 fee.
Back to Top

How do I display images in my form with SDK?

With SDK1, you can display images in your form by following the instructions below. This requires that you add image files directly to each Android device.

Create and upload an XLSForm with references to images:



  • In your XLSForm, add a column called 'media::image' in the 'survey' and/or 'choices' tab

  • In the 'media::image' column, type the name of the image file that you would like to display in that label. You can display images in your XLSForm within question labels and choices labels.

  • Upload the XLSForm to SDK

  • Get the Blank Form on your Android device


Add images directly to your Android device via Android File Transfer



  • Install [Android File Transfer](https://www.android.com/filetransfer/) on your computer

    • Enable 'MTP mode' on your Android device
    • Go to the 'Settings' app

    • Search 'MTP'

    • Click 'Media device (MTP)' (may be slightly different on different devices)

    • Make sure 'Media device (MTP)' is checked, which will allow you to transfer media files from your computer directly to your device

  • Have your images ready in a folder named '[form_title]-media', named consistently with the file names referenced in your XLSForm

  • Connect your Android device to your computer via USB

  • Open Android File Transfer

  • Drop the folder with your images in them in the /odk/forms folder.

  • File out your form and check that the images appear as intended


Notes



  • After adding the files directly to your Android, you *may* need to restart your SDK application or your device if the images do not show as intended the first time.

  • If you make a form change, you **must remove the outdated form from your device before getting the new form on your device** in order for the images to work as intended. When a new form with the same form_title is added to the device, SDK will automatically append a version number on the end of the form_title to differentiate between the two forms. This will break the intended connection to the images.

Back to Top

Can I have multiple ODK-based applications on my mobile device?

It's important that you only have one odk-based application installed on your mobile device: SDK. Other odk-based applications have been known to cause issues with one another when installed on the same device. If you have multiple odk-based applications on your device, you may encounter errors, be unable to submit data, or even lose data.

If you realize you have multiple odk-based applications installed on your device and you've already begun to collect data, DO NOT DELETE THE APP until you are sure that all collected data is safe on the SDK server. If you think you've submitted all the data but can not see it on the server, follow the instructions in this FAQ.

Our team is available to help you troubleshoot any issues or recover data, however we cannot be held responsible for any issues that arise if you had multiple odk-based applications installed on your device. Any troubleshooting done as a result of this error will be done at our hourly rate.

SDK Forms are often compatible with other ODK-based mobile data collection applications, so if for any reason you are unable to to remove an ODK-based mobile data collection application, you can likely use that application for your SDK data collection needs by configuring the device to point to SDK's servers.
Back to Top

What's the difference between the XLSForm types 'string' and 'text'?

Typically in XLSForm we choose to use 'string' when you're prompting to have your users type in a text box. The reason for this is because it saves the data as varchar(255), which is a very efficient way to store a lot of text. The limitation here is that you are constrained to 255 characters.

There is a workaround, and that is the 'text' type. A 'text' type presents itself the same as a 'string' on the user facing form itself, but is not limited by a certain character length. The downside here is that the data is saved a little less efficiently in the database, so it could cause queries to run slower than if the data was classified as a 'string.' This really only presents itself as an issue in significantly large databases, and in most cases will go unnoticed.

If you have any questions about how to build your XLSForm efficiently for future database querying, reach out to your SDK support contact and we'll be happy to assist you!
Back to Top

I submitted data from the SDK mobile app, but I can't find it on the SDK web app! How can I submit these records to the web app when I no longer see them on my device?

Secure Data Kit was built to store your submissions safe and sound, either on your mobile device or on our cloud servers. Even after SDK submits a record to the server, the record is still stored as a backup on your device in case they're needed.

If you think you have records on your device that never made it to the server for any reason, we can help you recover them. Follow the steps below and our support team will be in touch:

  • Access Android's file system by following these instructions: https://www.wikihow.com/Access-Android-System-Files

  • Find the folder titled 'ODK' and copy it to your computer

  • Zip up the 'ODK' folder

  • Submit a ticket by clicking 'Report Issue' when logged in to www.securedatakit.com (click you name in the upper right, and then select 'Report Issue' from the dropdown.

  • Fill out the form describing your issue, and be sure to attach the zipped ODK folder

  • A SDK team member will reply to your request with an estimated time of completion

Back to Top

What packages are supported in SDK's R reporting functionality?


PackageVersionPackageVersionPackageVersion
abind"3.3.0"acepack"3.3.0"AER"3.3.0"
akima"3.3.0"alr4"3.3.0"ape"3.3.0"
aplpack"3.3.0"arm"3.3.0"assertthat"3.3.0"
backports"3.3.0"base64enc"3.3.0"BB"3.3.0"
bdsmatrix"3.3.0"BH"3.3.0"biglm"3.3.0"
bit"3.3.0"bit64"3.3.0"bitops"3.0.2"
blob"3.3.0"bmp"3.3.0"brew"3.3.0"
car"3.3.0"catdata"3.3.0"caTools"3.0.2"
cellranger"3.3.0"checkmate"3.3.0"chron"3.3.0"
coda"3.3.0"coin"3.3.0"colorspace"3.3.0"
commonmark"3.3.0"CompQuadForm"3.3.0"covr"3.3.0"
coxme"3.3.0"crayon"3.3.0"curl"3.3.0"
data.table"3.3.0"date"3.3.0"DBI"3.3.0"
DBItest"3.3.0"deldir"3.3.0"DEoptimR"3.3.0"
desc"3.3.0"devtools"3.3.0"dfoptim"3.3.0"
dichromat"3.3.0"digest"3.0.2"doBy"3.3.0"
doParallel"3.3.0"downloader"3.3.0"dplyr"3.3.0"
dynlm"3.3.0"e1071"3.3.0"effects"3.3.0"
evaluate"3.3.0"expsmooth"3.3.0"fBasics"3.3.0"
fit.models"3.3.0"fontBitstreamVera"3.3.0"fontLiberation"3.3.0"
fontquiver"3.3.0"foreach"3.3.0"forecast"3.3.0"
formatR"3.0.2"Formula"3.3.0"fracdiff"3.3.0"
fTrading"3.3.0"fts"3.3.0"functional"3.0.2"
gamm4"3.3.0"gdata"3.3.0"gdtools"3.3.0"
geosphere"3.3.0"GGally"3.3.0"ggplot2"3.3.0"
ggplot2movies"3.3.0"git2r"3.3.0"gmailr"3.3.0"
GPArotation"3.3.0"gplots"3.3.0"gridBase"3.3.0"
gridExtra"3.3.0"gss"3.3.0"gtable"3.3.0"
gtools"3.3.0"heplots"3.3.0"hexbin"3.3.0"
highr"3.0.2"Hmisc"3.3.0"hms"3.3.0"
HSAUR"3.3.0"HSAUR2"3.3.0"htmlTable"3.3.0"
htmltools"3.3.0"htmlwidgets"3.3.0"httpuv"3.0.2"
httr"3.3.0"hunspell"3.3.0"igraph"3.3.0"
igraphdata"3.3.0"influenceR"3.3.0"irlba"3.3.0"
iterators"3.3.0"itertools"3.3.0"jpeg"3.3.0"
jsonlite"3.3.0"kableExtra"3.3.0"kernlab"3.3.0"
knitr"3.3.0"labeling"3.3.0"latticeExtra"3.3.0"
lavaan"3.3.0"lazyeval"3.3.0"leaps"3.3.0"
lintr"3.3.0"lme4"3.3.0"lmtest"3.3.0"
lubridate"3.3.0"magrittr"3.0.2"mapproj"3.3.0"
maps"3.3.0"maptools"3.3.0"markdown"3.0.2"
matrixcalc"3.3.0"MatrixModels"3.3.0"memoise"3.3.0"
MEMSS"3.3.0"mi"3.3.0"mime"3.0.2"
minqa"3.3.0"misc3d"3.3.0"mitools"3.3.0"
mlbench"3.3.0"mlmRev"3.3.0"mnormt"3.3.0"
modeltools"3.3.0"MPV"3.3.0"multcomp"3.3.0"
munsell"3.3.0"mvtnorm"3.3.0"nloptr"3.3.0"
NMF"3.3.0"nortest"3.3.0"numDeriv"3.3.0"
officer"3.3.0"openssl"3.3.0"optextras"3.3.0"
optimx"3.3.0"ordinal"3.3.0"orientlib"3.3.0"
pbivnorm"3.3.0"pbkrtest"3.3.0"pcaPP"3.3.0"
PerformanceAnalytics"3.3.0"permute"3.3.0"pkgconfig"3.3.0"
pkgKitten"3.3.0"pkgmaker"3.3.0"PKPDmodels"3.3.0"
plogr"3.3.0"plotrix"3.3.0"plyr"3.3.0"
png"3.3.0"poLCA"3.3.0"polycor"3.3.0"
praise"3.3.0"prettyunits"3.3.0"progress"3.3.0"
proto"3.3.0"psych"3.3.0"purrr"3.3.0"
quadprog"3.3.0"quantmod"3.3.0"quantreg"3.3.0"
R6"3.0.2"randomForest"3.3.0"Rcgmin"3.3.0"
Rcmdr"3.3.0"RcmdrMisc"3.3.0"RColorBrewer"3.3.0"
Rcpp"3.0.2"RcppArmadillo"3.3.0"RcppEigen"3.3.0"
Rcsdp"3.3.0"RCurl"3.3.0"readr"3.3.0"
readxl"3.3.0"registry"3.3.0"relimp"3.3.0"
rematch"3.3.0"ReporteRs"3.3.0"ReporteRsjars"3.3.0"
reshape"3.3.0"reshape2"3.3.0"rex"3.3.0"
rgexf"3.3.0"rgl"3.3.0"rJava"3.3.0"
RJSONIO"3.0.2"rlang"3.3.0"rmarkdown"3.3.0"
R.methodsS3"3.3.0"RMySQL"3.0.2"rngtools"3.3.0"
robust"3.3.0"robustbase"3.3.0"R.oo"3.3.0"
Rook"3.3.0"roxygen2"3.3.0"rpf"3.3.0"
RPostgreSQL"3.0.2"rprojroot"3.3.0"rrcov"3.3.0"
rstudioapi"3.3.0"rticles"3.3.0"RUnit"3.3.0"
R.utils"3.3.0"rversions"3.3.0"rvest"3.3.0"
rvg"3.3.0"Rvmmin"3.3.0"sandwich"3.3.0"
scales"3.3.0"scatterplot3d"3.3.0"selectr"3.3.0"
sem"3.3.0"semTools"3.3.0"setRNG"3.3.0"
sfsmisc"3.3.0"shiny"3.0.2"sp"3.3.0"
SparseM"3.3.0"stabledist"3.3.0"StanHeaders"3.3.0"
stringdist"3.3.0"stringi"3.0.2"stringr"3.0.2"
strucchange"3.3.0"survey"3.3.0"survival"3.3.0"
svglite"3.3.0"svUnit"3.3.0"tcltk2"3.3.0"
testthat"3.3.0"TH.data"3.3.0"tibble"3.3.0"
tidyr"3.3.0"timeDate"3.3.0"timeSeries"3.3.0"
tis"3.3.0"tree"3.3.0"tseries"3.3.0"
TTR"3.3.0"ucminf"3.3.0"uuid"3.3.0"
vcd"3.3.0"vegan"3.3.0"viridis"3.3.0"
viridisLite"3.3.0"visNetwork"3.3.0"whisker"3.3.0"
withr"3.3.0"XML"3.3.0"xml2"3.3.0"
xtable"3.0.2"xts"3.3.0"yaml"3.0.2"
zip"3.3.0"zoo"3.3.0"DBI"3.0.0"
RMySQL"3.0.0"base"3.3.0"boot"3.2.1"
class"3.2.2"cluster"3.2.5"codetools"3.2.2"
compiler"3.3.0"datasets"3.3.0"foreign"3.2.2"
graphics"3.3.0"grDevices"3.3.0"grid"3.3.0"
KernSmooth"3.2.1"lattice"3.2.1"MASS"3.2.2"
Matrix"3.3.0"methods"3.3.0"mgcv"3.2.3"
nlme"3.2.5"nnet"3.2.3"parallel"3.3.0"
rpart"3.2.1"spatial"3.2.2"splines"3.3.0"
stats"3.3.0"stats4"3.3.0"survival"3.2.5"
tcltk"3.3.0"tools"3.3.0"utils"3.3.0"
Back to Top

Can I turn off downloads and submissions for forms in my project?

Yes, you can! The ability to mark a form downloadable and/or submittable is available to admins of the organization your project is a part of. If you are not your organization's admin, please contact them to make this change. First, let's define the terminology:


  • Downloadable: Your blank form can be downloaded onto a users and filled out. Setting Downloadable to 'No' prevents new devices from downloading the form.

  • Submittable: Records created by filling out blank forms can be submitted to the server. Setting Submittable to 'No' prevents new and existing local records from being submitted to the server.

  • Visible (SDK2 app only): Your blank form is visible on the home screen of the SDK2 application. Setting Visible to 'No' will hide this form from the home screen, but does not prevent local records from being submitted to the server.



We use different terminology for this to help differentiate between our two apps: the legacy SDK application (available on Android only), and SDK2 (available on both Android and iPhone). Please follow the instructions based on the applications being used in the field.

Make a form not downloadable or submittable on SDK (legacy app):



  • First, navigate to the Dataset Settings page by clicking the 3 little dots next to your dataset, and choosing 'Settings'

  • Next, toggle the dropdown next to either 'Downloadable?' or 'Submittable?' and change to 'No.'

  • Click 'Save' at the bottom of the Settings page to save this new setting.



Make a form invisible on SDK2:



  • First, navigate to the Dataset Settings page by clicking the 3 little dots next to your dataset, and choosing 'Settings'

  • Next, toggle the dropdown next to 'Visible' to 'No.'

  • Click 'Save' at the bottom of the Settings page to save this new setting.

Back to Top

Supported Devices and Minimum System Requirements

Secure Data Kit has two mobile applications available, each with different device requirements. Please speak with your contact at Secure Data Kit to get a recommendation for which application is best for your project and the devices you have available.

Secure Data Kit — available on iPhone and Android.


Minimum System Requirements

  • RAM — 2GB or higher with at least 250 MB of *available* RAM (memory)

  • Storage — 1GB minimum with at least 100 MB of *available* storage

  • Apple OS — iOS 10 or higher

  • Android OS — Android 6 or higher


Supported Android Devices — These are the devices that the Secure Data Kit team develops for and tests on. If you use one of these devices, we can guarantee support and will be available to troubleshoot and fix issues should they arise.

  • Samsung J7, as long as minimum system requirements above are met

  • Motorola Moto E 2nd Generation, as long as minimum system requirements above are met


Supported iOS Devices — These are the devices that the Secure Data Kit team develops for and tests on. If you use one of these devices, we can guarantee support and will be available to troubleshoot and fix issues should they arise.

  • iPhone 6 or higher, as long as minimum system requirements above are met

  • iPad 2nd generation or higher, as long as minimum system requirements above are met


If you choose to use another mobile device that is not on our supported list, we highly recommend that you test the device prior to using it in the field to ensure you feel confident. If any issues arise using a device that is not on our supported list, our team will do our best to help you but we cannot guarantee that the mobile application will work on a device not listed above and are not responsible for if issues can not be resolved. If you would like to see if an additional device can be approved for our supported device list, we can do that for a fee.

Secure Data Kit Legacy Application — available on Android.


Minimum System Requirements

  • RAM — 2GB minimum

  • Storage — 1GB minimum

  • Android OS — 5.0 minimum

  • Battery Life — 2,500 mAh minimum (the higher the mAh, the longer lasting battery)


Supported Android Devices — These are the devices that the Secure Data Kit team develops for and tests on. If you use one of these devices, we can guarantee support and will be available to troubleshoot and fix issues should they arise.

  • BLU Tank Xtreme, as long as minimum system requirements above are met

  • BLU Life LX, as long as minimum system requirements above are met

  • Motorola Moto E 2nd Generation, as long as minimum system requirements above are met

  • BLU Advance 4.0M, as long as minimum system requirements above are met

  • ASUS ZenPad 8.0 Z380M, as long as minimum system requirements above are met


If you choose to use another mobile device that is not on our supported list, we highly recommend that you test the device prior to using it in the field to ensure you feel confident. If any issues arise using a device that is not on our supported list, our team will do our best to help you but we cannot guarantee that the mobile application will work on a device not listed above and are not responsible for if issues can not be resolved. If you would like to see if an additional device can be approved for our supported device list, we can do that for a fee.
Back to Top

How can I add a user to my project in SDK?

There are many different types of users. Organization Admins and Project Admins can add users to projects. If you have a different user role, please contact your Organization or Project admin to either grant you a new role or add the new user on your behalf.
To add a new user:
- Navigate to the project that you’d like to add a new user to.
- Scroll down to the ‘Users’ section of the project.
- Click ‘Add New User’ in the upper right of the user section.
- Enter the user’s details, and select ‘Add User and Send Invitation.’
Back to Top

Does SDK support forms in multiple languages?

Yes! If the SDK team is handling form development for you, and you plan on creating a form with multi-language support, please notify the SDK team at the start of your project.
The SDK team will begin developing your mobile forms in English first, and once all forms have been tested and approved the SDK team will send you an excel file that your team can input translations in.
Back to Top