This page documents the file format the platform expects when you upload respondent data for import. Each response belongs to a respondent_id, and each respondent_id can appear on multiple rows when the file is in long format.
Accepted file types
.xlsx: Excel workbook..csv: plain comma-separated values, UTF-8..csv.gz: gzipped CSV.
Respondent ID
Every imported response row must include a respondent_id. This is the stable respondent key used to group rows from the same person. The value should be present on every row and consistent across all answers from that respondent.
Excel parsing rules
You do not need to format the data as an Excel table (Insert > Table). A plain worksheet works. The platform reads the workbook as follows:
- Active sheet only. The workbook's active sheet (the one open when the file was last saved) is the sheet that's read. Other sheets in the workbook are ignored.
- First non-empty row is the header. Scanning down the active sheet, the first row that contains any data is treated as the header row. Blank rows before that row are tolerated.
- Headers must be non-blank and unique. Every column in the header row must have a value, and no two columns can share the same header.
- Data rows are read directly from the sheet. There is no bounded table range. Every row after the header is considered a candidate data row.
- Empty rows after the header are skipped. Blank rows interspersed with data are tolerated and dropped by the contact builder. A trailing run of blank rows does not cause an error.
Errors
If the platform cannot read the workbook, the upload returns a generic import error. Re-export the data and try again; if the error persists, get in touch.
CSV parsing
CSV uploads (.csv, .csv.gz) are read straight through: the first row is the header, and every subsequent row is a candidate data row. The same header and respondent_id rules apply.