Skip To Content

Esri custom columns

Esri's custom columns for XLSForm provide additional functionality for Survey123 users.

Field type and length

The bind::esri:fieldType and bind::esri:fieldLength custom columns should be used when you want to control exactly the type and length of field to be created in ArcGIS for your survey questions.

For many questions, the type and length can be automatically determined by the XLSForm conversion service. Questions that require an integer or decimal value typically do not need to be controlled. However, questions of the select_one type will be converted into a string field in ArcGIS by default. If you require your choice list to store values as integers, you need to explicitly define the field type as an integer.

To control the field type, enter one of the following values in the bind::esri:fieldType column:

  • esriFieldTypeString
  • esriFieldTypeDate
  • esriFieldTypeInteger
  • esriFieldTypeSingle
  • esriFieldTypeDouble
  • esriFieldTypeSmallInteger
  • esriFieldTypePointZ
  • esriFieldTypeGUID

Note that bind::esri:fieldType only controls the field type created in the feature service. To control the field type for a question during a survey, use the bind::type column. For example, entering the value int into the bind::type column for a calculate question will treat the field as an integer, rather than its default field type of string. The values accepted by the bind::type column are as follows:

  • int
  • decimal
  • string
  • date
  • dateTime
  • time

The bind::esri:fieldType column also accepts the null value, which will cause the question to be omitted from the feature service created. While the question will still be present in your survey and behave normally, the answer will not be submitted to the feature service and will not be present when reviewing responses. This is ideal for calculations, constraints, or other questions that need to be present for presentation purposes but aren't needed in the results.

The following question types do not support a null field type:

  • select_one or other
  • select_multiple or other
  • image
  • hidden

Geopoint questions can support a null field type only if there are two or more geopoints in the survey, one of which does not have a null field type, or if the geopoint is in a repeat.

Field aliases

By default, a survey field's alias inherits the same value as the field's label, referred to primarily when the survey is opened in ArcGIS. This can be changed by entering a value in the bind::esri:fieldAlias column, which will then become the field's new alias.

Input mask


Full support for input masks is still in progress. You may observe issues when using delimiters or after entering a value.

Input masks provide a set format for data entry by using characters and symbols. When you apply an input mask to a question, all responses must follow the specific pattern defined by the input mask.

To apply an input mask to your question, define the mask in the body::esri:inputMask custom column.

The following table lists the characters and symbols that can be used in an input mask:



ASCII alphabetic character required. A through Z and a through z.


ASCII alphabetic character permitted but not required.


ASCII alphanumeric character required. A through Z, a through z, and 0 through 9.


ASCII alphanumeric character permitted but not required.


Any character required.


Any character permitted but not required.


ASCII digit required. 0 through 9.


ASCII digit permitted but not required.


ASCII digit required. 1 through 9.


ASCII digit permitted but not required. 1 through 9.


ASCII digit or plus/minus sign permitted but not required.


Hexadecimal character required. A through F, a through f, and 0 through 9.


Hexadecimal character permitted but not required.


Binary character required. 0 through 1.


Binary character permitted but not required.


All following alphabetic characters are uppercase.


All following alphabetic characters are lowercase.


Switch off case conversion.


Escape the special characters listed above to use them as separators.

The mask consists of a string of characters and separators, optionally followed by a semicolon and the character used for blanks. The blank characters are always removed from the text after editing. The following table lists example masks:

Example maskDescription


Text that starts with a capital letter followed by any lowercase characters.


Unique identifier that uses dashes as separators and underscores to represent each character that is to be completed.


Represents a pH value. The number is constrained to start only with 0 or 1 and can only include two decimal places. A dash is used to represent each character that is to be completed.


United States Social Security number.

(999) 999-9999

United States phone number.

900 kg

Weight in kilograms between 0 and 999.


United States 5-digit ZIP Code.


IATA airport code.