QSF SurveyEntry Fields: What Qualtrics Actually Validates
Every QSF file starts with a SurveyEntry object of seventeen fields. Qualtrics validates them field by field on import — most tolerate null, but a few (notably SurveyBrandID) are typed strictly and reject files that hand-built tools produce.
Field-by-field reference
| Field | Type / format | Import behavior |
|---|---|---|
| SurveyID | SV_ + 15 alphanumerics | Remapped on import; format must match |
| SurveyName | string | Becomes the project name |
| SurveyDescription | string | null | null accepted (appears in native exports) |
| SurveyOwnerID | UR_ id | Replaced with the importing user |
| SurveyBrandID | string, minLength 1 | null and "" rejected with ESDEF10; any non-empty placeholder passes |
| DivisionID | string | null | null accepted |
| SurveyLanguage | language code | e.g. EN, ZH-S, ZH-T |
| SurveyActiveResponseSet | RS_ id | Must match the RS element PrimaryAttribute |
| SurveyStatus | string | "Inactive" for transfer files |
| SurveyStartDate / SurveyExpirationDate | datetime string | "0000-00-00 00:00:00" accepted for unset |
| SurveyCreationDate / LastModified | datetime string | Real timestamps in native exports |
| CreatorID | UR_ id | Usually equals SurveyOwnerID |
| LastAccessed / LastActivated | datetime string | "0000-00-00 00:00:00" accepted |
| Deleted | null | null in every observed export |
Practical implications for generated QSF files
- Emit all seventeen fields — partial SurveyEntry objects are the fastest way to hit type validation.
- Give SurveyBrandID any non-empty string; never null or empty.
- Keep SurveyActiveResponseSet consistent with the RS element elsewhere in the file.
- Follow the ID patterns (SV_/UR_/RS_ plus 15 alphanumerics) rather than inventing formats.
- Validate by importing into a blank project; the first validation failure hides any later ones.