Linking ODK collector with Kobotoolbox server

Kindly help me to connect odk collector and odk-x tools with kobotoolbox server

Hi @oichirobert,

Thank you for the query. First of all, we would like to request you to use the KoBoCollect mobile application to collect data and submit the collected data in the KoBoToolbox server. This is because, KoBoCollect application is for KoBoToolbox while the ODK Collect is for the ODK and you may sometimes face compatibility problems.

However, it isnā€™t that its not possible to collect data in ODK Collect and sync the data in the KoBoToolbox server. Kindly please follow the following steps for the same:

  • Download the ODK application from the Play Store
  • Select ā€œGeneral Settingsā€
  • Then select ā€œServerā€
  • Type the following in the ā€œURLā€: https://kc.kobotoolbox.org/account_name
  • Please note that account_name is your account name
  • Go back and select ā€œGet Blank Formā€
  • Enter the data by selecting ā€œFill Blank Formā€
  • Once you have completed the survey, click on save and then select ā€œSend Finalized Formā€

With this you will be able to sync data from the ODK application to the KoBoToolbox server. To ensure the data is in your server login to your KoBoToolbox account and ensure the data you sent through ODK Collect is there.

Hope this was of help for you.

3 Likes

Just to add to @Kal_Lam, and especially if you want to try and use Kobo with ODK-X tools, KoboToolbox - or more specifically Kobocat - conforms to the OpenRosa spec. So you can in fact connect to it using anything (eg ODK Collect) that talks the OpenRosa API, even command-line tools like the ubiquitous curl. Note that Kobo accepts OpenRosa basic authentication, so always connect via https to avoid sending your cleartext password over the wire! [I dont happen to know if Kobo supports OpenRosa *digest* authenticationā€¦]

For example, this will retrieve my (aka ā€˜tiriteaā€™) list of forms:

USERNAME="tiritea"
HOST="https://kc.kobotoolbox.org/$USERNAME"
PASSWORD="**********"
BASIC=$(echo -n $USERNAME:$PASSWORD | base64)

curl -H "Authorization: Basic $BASIC" $HOST/formList

returning:

<?xml version="1.0" encoding="utf-8"?>
<xforms xmlns="http://openrosa.org/xforms/xformsList">
<xform>
    <formID>aQLKz445DQ53os7aD5EkpU</formID>
    <name>Widgets</name>
    <majorMinorVersion/>
    <version/>
    <hash>md5:3306c5b68decce525e1f62386bd2b157</hash>
    <descriptionText>Widgets</descriptionText>
    <downloadUrl>https://kc.kobotoolbox.org/tiritea/forms/129588/form.xml</downloadUrl>
    <manifestUrl>https://kc.kobotoolbox.org/tiritea/xformsManifest/129588</manifestUrl>
</xform>
<xform>
    <formID>aQYQykQhyJn2cZ9uoCeW2c</formID>
    <name>MPI Food Premises Verification</name>
    <majorMinorVersion/>
    <version/>
    <hash>md5:c5404e7ff41909a9a20c2737e17a7b74</hash>
    <descriptionText>MPI Food Premises Verification</descriptionText>
    <downloadUrl>https://kc.kobotoolbox.org/tiritea/forms/130393/form.xml</downloadUrl>
    <manifestUrl>https://kc.kobotoolbox.org/tiritea/xformsManifest/130393</manifestUrl>
</xform>
</xforms>
2 Likes

I am trying to use kobotoolbox to use as my ODK aggregate server. However, the form which Iā€™ve prepared in ODK build with some edits on xlsx can successfully uploaded in kobotoolbox but unable to send the finalized form from mobile device. the error message is ā€œInvalid status code on head requestā€¦ā€. Would you help me please concerning this issue?with regardsKehabtimer

Hi @kehabtimer,

Welcome to the community! Have you gone through the support article on Collecting Data with KoBoCollect on Android. It should help you configure your device so that you are able to sync your data with the KoBoToolbox server.

Have a great day!

Thanks for your response, Iā€™ve already fixed the problem.

1 Like

Hi @kehabtimer
Could you please provide some explanation on how you solved the problem so that we can document this for other users who may experience the same problem as you.

Regards,
Stephane

First, my form was prepared online using ODK build and this form failed to be sent to the server after successfully filling the blank form. For this problem, I opened new excel form and I copied and pasted that form in the new excel. Then it became successful.

2 Likes

Thank you for sharing