Skip to main content

Documentation Index

Fetch the complete documentation index at: https://grantmaster.dev/llms.txt

Use this file to discover all available pages before exploring further.

Integration Guide: KoboToolbox (Field Data Collection)

Overview

GrantMaster integrates with KoboToolbox to pull field data collection results into the Impact & M&E module. This connects on-the-ground survey and monitoring data directly to your impact indicators, enabling real-time tracking without manual data entry.

What It Does

FeatureDescription
Form syncImports KoboToolbox form definitions as data collection templates
Submission importPulls survey responses into GrantMaster’s M&E indicators
Indicator mappingMaps Kobo form fields to GrantMaster impact indicators
Scheduled syncAutomatic periodic import of new submissions
Data validationValidates imported data against indicator definitions

Prerequisites

  • A KoboToolbox account (humanitarian or research server)
  • At least one deployed form with submissions
  • Admin role in GrantMaster
  • KoboToolbox API token

Setup

Step 1: Get Your KoboToolbox API Token

  1. Log into your KoboToolbox account
  2. Go to Account Settings (click your profile icon)
  3. Scroll to the API Key section
  4. Copy your API token

Step 2: Connect KoboToolbox to GrantMaster

  1. Go to Settings > Integrations > KoboToolbox
  2. Click Connect
  3. Enter your:
    • KoboToolbox server URL (e.g., https://kf.kobotoolbox.org or https://kobo.humanitarianresponse.info)
    • API token
  4. Click Test Connection to verify
  5. Click Save

Step 3: Import Forms

  1. After connecting, click Import Forms
  2. Select the KoboToolbox forms you want to sync
  3. For each form, map fields to GrantMaster entities:
    • Project — which project this data belongs to
    • Indicator — which M&E indicator each field populates
  4. Click Save Mappings

Step 4: Configure Sync Schedule

  1. Go to Settings > Integrations > KoboToolbox > Sync Schedule
  2. Choose sync frequency:
    • Real-time — imports submissions as they arrive (via webhook)
    • Hourly — batch import every hour
    • Daily — batch import once per day
    • Manual — only sync when you click “Sync Now”
  3. Click Save

Day-to-Day Usage

Viewing Imported Data

  1. Go to Impact > Indicators
  2. Select an indicator that has KoboToolbox mappings
  3. View the Data Sources tab to see imported submissions
  4. Each submission shows the source form, submission date, and field values

Manual Sync

  1. Go to Settings > Integrations > KoboToolbox
  2. Click Sync Now to pull the latest submissions
  3. Review the sync result: new records imported, skipped duplicates, validation errors

Reviewing Validation Errors

If imported data fails validation (e.g., value out of expected range for an indicator):
  1. Go to Settings > Integrations > KoboToolbox > Sync History
  2. Click the latest sync with errors
  3. Review each error with the source submission and the validation rule that failed
  4. Fix the data in KoboToolbox and re-sync, or manually adjust the indicator value in GrantMaster

Mapping Guide

Indicator Types and Kobo Field Types

GrantMaster Indicator TypeCompatible Kobo Field Types
Numeric (counts, percentages)Integer, Decimal, Calculate
Text (qualitative)Text, Select One, Select Many
Date (timeline tracking)Date, DateTime
Location (geographic)Geopoint, Geotrace, Geoshape
Binary (yes/no)Select One (with Yes/No options)

Aggregation Options

When mapping a Kobo field to an indicator, choose how submissions aggregate:
  • Sum — add all submission values (e.g., “total beneficiaries reached”)
  • Count — count the number of submissions (e.g., “number of surveys completed”)
  • Average — calculate the mean value (e.g., “average satisfaction score”)
  • Latest — use the most recent submission value (e.g., “current stock level”)
  • None — store each submission as a separate data point

Troubleshooting

Connection Fails

SymptomPossible CauseSolution
”Invalid API token”Token was regeneratedGet a new token from KoboToolbox Account Settings
”Connection timeout”Server URL incorrectVerify you are using the correct Kobo server URL
”403 Forbidden”Token lacks permissionsEnsure the API token has read access to the forms

Data Not Importing

SymptomPossible CauseSolution
Sync completes with 0 recordsNo new submissions since last syncVerify submissions exist in KoboToolbox
Partial importsValidation errors on some recordsCheck sync history for error details
Duplicate recordsSync ran before KoboToolbox deduplicatedKoboToolbox submission IDs prevent duplicates — check mapping

Indicator Values Look Wrong

  • Check aggregation type — Sum vs. Count vs. Average produces very different results
  • Check field mapping — ensure the correct Kobo field is mapped to the indicator
  • Check data types — text fields mapped to numeric indicators will fail validation
  • Check the submission date range — indicators may be filtered by reporting period

Best Practices

  • Design Kobo forms with GrantMaster in mind — use field names that clearly indicate what they measure
  • Use Calculate fields in Kobo for derived values — this keeps complex logic in the form rather than relying on GrantMaster aggregation
  • Start with daily sync and switch to real-time only if you need immediate updates
  • Map indicators before deploying forms — it is easier to adjust form fields than to re-map after data collection
  • Review validation errors weekly — field data often contains outliers that need human review
  • Test with a small form first — verify the sync works end-to-end before connecting high-volume forms

Limitations

  • Only KoboToolbox v2 API is supported — legacy API endpoints are not compatible
  • Repeat groups (nested tables) in Kobo forms have limited mapping support — only the first-level fields are automatically available
  • Media attachments (photos, audio) from Kobo submissions are not imported — only metadata and text/numeric data
  • Sync is one-directional: KoboToolbox → GrantMaster. Edits in GrantMaster are not pushed back to Kobo
  • Maximum of 10,000 submissions per sync batch — forms with more submissions require multiple sync cycles