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 type | Becomes in Monival |
|---|---|
text | Short text |
integer, decimal | Number |
select_one <list> | Single select |
select_multiple <list> | Multi select |
date | Date |
time | Time |
dateTime | Date and time |
geopoint | GPS capture |
image, photo | Photo capture |
file | File upload |
audio, video | File upload, with the media type constrained |
note, begin_group | Section 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_repeatandend_repeatare 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
relevantcolumn 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_messageandcalculaterows 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
- Import the XLSForm. The form is created as a draft, not published — nothing goes live by accident.
- Compare against the source workbook, question by question. Look specifically for skipped rows.
- Rebuild the skip logic in the form designer.
- Redesign anything that depended on repeats.
- 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.
- 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.