Skip to content
Integration Details

XLSForm Import

Bring questions and choice lists across from ODK or KoboToolbox without retyping them.

Overview

XLSForm is the spreadsheet-based form authoring standard used by ODK, KoboToolbox and several other collection tools. Monival imports an XLSForm workbook and builds a draft form from it, so a migration does not begin with someone retyping ninety questions.

Upload the .xlsx, and Monival reads the survey, choices and settings sheets.

What comes across

From the survey sheet:

  • Question type, mapped to the nearest Monival equivalent.
  • Question name, which becomes the field key.
  • Label, including the first translated label column where the workbook has several.
  • Hint, which becomes the placeholder or helper text.
  • Required flag.

From the choices sheet: every choice list, matched to the select_one and select_multiple questions that reference it — labels and values both.

From the settings sheet: the form title.

Type mapping

XLSForm typeBecomes in Monival
textShort text
integer, decimalNumber
select_one <list>Single select
select_multiple <list>Multi select
dateDate
timeTime
dateTimeDate and time
geopointGPS capture
image, photoPhoto capture
fileFile upload
audio, videoFile upload, with the media type constrained
note, begin_groupSection header

What does not come across

This is the part to plan around, and we would rather set the expectation now than have you find it during a pilot.

  • Repeat groups are dropped. begin_repeat and end_repeat are not imported, and neither are the questions’ repeat semantics. Monival does not currently support repeat groups, so a form built around household rosters or per-item loops will need to be redesigned, not just re-imported. If repeats are central to your instrument, raise it with us before planning a migration.
  • Conditional logic is not imported. The relevant column is not read. Skip logic must be rebuilt in Monival’s form designer, which supports it — this is rebuild work, not a missing capability.
  • Constraints and calculations are not imported. constraint, constraint_message and calculate rows are skipped.
  • Groups become section headers, not nested containers. The visual break survives; the grouping structure does not.
  • Per-question translations are not imported. Monival’s form language is a per-form setting; question text does not currently carry a translation map, so a multilingual XLSForm imports on one label column.
  • Unrecognised question types are skipped silently. Always compare the imported form against the source workbook before publishing.

A sensible migration sequence

  1. Import the XLSForm. The form is created as a draft, not published — nothing goes live by accident.
  2. Compare against the source workbook, question by question. Look specifically for skipped rows.
  3. Rebuild the skip logic in the form designer.
  4. Redesign anything that depended on repeats.
  5. Pilot on the actual device your enumerators use — not on a laptop. A form that reads well at desk width can be unusable on a budget Android in the sun.
  6. Publish, and freeze the form before the round starts.

Do not migrate mid-round

Finish a survey round on the system you started it on. Splitting one round across two tools produces a reconciliation problem — different field keys, different choice values, different completeness rules — that outlasts whatever the migration was meant to gain.

  • Webhooks — push submissions onward once collection is running
  • Power BI — pull submissions for analysis