Skip to content

Data types

A part's dataType determines the structure of the answer data inside answer.value.

  • string
  • number
  • options
  • upload
  • info
  • section
  • page
  • groupstart
  • groupend
  • expression
  • aggregate
  • identify

Input types

  • radios
  • checkboxes
  • textarea
  • text
  • url
  • email
  • number
  • upload
  • container (special)
  • expression (special)
  • aggregate (special)
  • identify (names and email - for polls)
  • groupend (special)

These combine to the following

  -> input type=number, + various params like min/max/step, decimals
  -> input type=text, opts: length, regex...
  -> textarea, opts: length, regex, size...
  -> input type=email
  -> input type=url
  -> input type=radio, possibly plus other. Opts: values inc. other,
  -> input type=checkbox, possibly plus other. Opts: values inc. other
  -> complex widget using input[type=file]
section, page, groupstart, info all use container
  -> Just shows the 'suffix' text. The label is used for admin overview.
  -> complex widget providing first, last name and email - use for open surveys.

Ideas (unimplemented)
  -> select, possibly plus other. Opts: values inc. other

  -> 1=bad 10=good


  • structure: any valid number in JSON
  • ask: number input. Needs to know decimals, min, max, decimalPlaces


  • structure: a presets array stores the order and the values selected, including any special values that start with _other_. A other object maps selected other values to what the user provided for that.

    { presets: [ 'presetValue1', 'presetValue2', ..., '_other_val1'],
      other: { "_other_val1": "user entered text" }
    - Means you can use more than one 'other' field, should you wish to, which allows you to keep the context better. e.g. options could be

  { value: "_other_awful", label: "Awful" }
  { value: "meh", label: "Meh" }
  { value: "_other_great", label: "Great" }

which would allow user to enter something against awful or great.

  • ask: single answer questions, with or without other value(s).

  • tell: various options for presenting these.


  • structure: any valid string.

  • ask: text inputs, textarea, urls, emails, phone numbers

  • tell: may make it into hyperlink, or just display.

Sections, pages, groups.

  • section, page, groupstart, groupend


The value of this part is determined from an expression that (typically) draws on other data for this participant.


The value of this part is determined from an expression that draws on data from (a subset of) all participants, e.g. rank.


Used for open surveys, this composite field will take first, last name and email. This data is used to identify/create a contact using the XCM extension, and after that, an open survey will look for or create a participant for the configured survey for this contact.