Answers to your questions

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.
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 web 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

What Android devices are supported for the SDK2 mobile application?

New Android devices are coming out all the time (there are 15,000 different types of Android devices available!), so it's difficult to say what is and is not supported. That said, there are several specifications that will ensure that SDK 2 runs well on your device. In general, look for the following when purchasing an Android device that plays well with SDK 2.


  • Memory: 4GB minimum, 8GB or higher recommended.

  • RAM: 1GB minimum, 2GB or higher recommended

  • Android OS: 5.0 minimum, 7.0 or 8.0 recommended

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



Here is a list of devices that the SDK team is able to support, should any issues arise.

  • BLU Tank Xtreme

  • BLU Life LX

  • Motorola Moto E

  • BLU Advance 4.0M

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
Get Friendly Support