Data Fields
Many Socotra entities can be extended with a fieldValues
array, which defines the additional data insurers wish to be persisted with each object. Each element of the array takes this general form:
{
"name": "a_string",
"title": "Enter text",
"type": "string",
"optional": true, // optional
"width": 12, // optional
"condition": { // optional
"another_field_name": ["value1", "orValue2"]
},
"newline": true, // optional
"heading": "My Section Heading" // optional
}
The following entities can contain field values:
Policyholders (with exceptions: see Policyholder Exceptions below)
Policies
Exposures
Perils
Premium Reports
Claims
Sub Claims
Payments (except for
lookup
andgroup
type field values)
Note
See the notification Peril Field Names for information about reserved property names.
Socotra supports these data types for field values:
Policyholder Exceptions
Policyholders cannot be defined with the following field types:
Additionally, the title
attribute on supported types should not be used in the policyholder field definition; instead, the title
functionality is served by prompt
in policyholder.form.json
. Field definition examples below should be adjusted accordingly when used as the basis for policyholder field definitions.
Attributes available on all data types
Attribute
Required
Valid Values
Description
name
yes
String with no spaces
Identifier for the field name
title
yes
String
Prompt text in the UI
type
yes
Field type name, as a string
optional
no
Boolean
no
Array of fieldName-array pairs
The condition parameter allows control of when a field can and should be set. If the value in the referenced field matches one of the values in the array (logical OR), then this field can be set. If multiple fields are referenced, the condition must pass on each of them (logical AND).
width
no
Integer from 1-12
Applies to the Socotra UI - defaults to 6 (half the width of the workflow)
newline
no
Boolean
Applies to the Socotra UI - starts a new line with this field
heading
no
String
Applies to the Socotra UI - specifies a section heading to display before this field
Note
For string based fields, there is a limit of 20,000 characters. Only the first 2,700 characters will be indexed and available for search through the user interface.
Optionality
Fields can be designated as optional
in configuration. For these fields, they do not need to be set at create time. To remove a value from an optional field that already has a value, set it to the empty array: []
.
Data Types
Date
Attribute
Required
Valid Values
Description
precision
yes
“second”, “day”, “month”, “year”
minimum
no
1/1/15
maximum
no
1/1/15
minimumOffset
no
field (precision), amount (number), roundToDay (boolean)
maximumOffset
no
field (precision), amount (number), roundToDay (boolean)
showCalendar
no
Boolean
Indicates if the calendar selector widget should be shown in the Socotra UI
{ "name": "date_field_example", "title": "calendar date entry", "type": "date", "precision": "day", "minimumOffset": { "field": "day", "amount": -1, "roundToDay": true }, "maximumOffset": { "field": "day", "amount": 1, "roundToDay": true }, "showCalendar": true }
Email
The email data type is similar to a string but subject to validation that the content is a valid email address.
No specific attributes
{ "name": "email_field_example", "title": "email entry", "type": "email" }
Media
This allows the user to upload and store files of any type on the policy.
Attribute
Required
Valid Values
Description
repeatable
no
Boolean
Indicates that the media field can contain multiple instances
{ "name": "media_field_example", "title": "Media Upload", "type": "media", "width": 12, "repeatable": true }
Number
Attribute
Required
Valid Values
Description
minimum
no
Integer
maximum
no
Integer
decimalPlaces
no
Integer
{ "name": "number_field_example", "title": "number entry (integer, optional)", "type": "number", "decimalPlaces": 0, "optional": true }
String
Attribute
Required
Valid Values
Description
regex
no
Regex string
The regex is applied to the entire string. No start and end markers for the expression are necessary.
maximum
no
Integer
The maximum number of ASCII characters to be stored in the field. This parameter defaults to 200 and may not exceed 20,000. Non ASCII characters need more space so if there are unicode characters mixed in the actual limit will be smaller.
multiline
no
Boolean
{ "name": "text_field_example", "title": "large text entry with 3000 character max length", "type": "string", "multiline": true, "maximum": 3000 }
Select
Attribute
Required
Valid Values
Description
values
yes
Array of strings
The allowed values for the field
repeatable
no
Boolean
Indicates if one key can contain several values
{ "name": "select_field_example", "title": "dropdown entry", "type": "select", "values": [ "Option 1", "Option 2", "Option 3", "And so on" ] }
Group
Attribute
Required
Valid Values
Description
fields
yes
Array of fields
Can contain any field type except “group”
repeatable
no
Boolean
Indicates that the group can contain multiple instances
While the values for all other field types are available directly in the fieldValues object, fields with the group type instead have an array of locators. Those locators can be used to address the field group, which is exposed as a unit in the “Field Groups By Locator” object.
More information for working with groups is available at: Field Groups
{ "name": "group_example", "title": "field group", "type": "group", "fields": [ { "name": "group_string_example", "title": "string in field group", "type": "string" }, { "name": "group_number_example", "title": "number in field group", "type": "number" } ], "repeatable": true }
Lookup
Attribute
Required
Valid Values
Description
table
yes
String
The name of the datasource
match
no
Array of strings
If the datasource contains multiple columns, this specifies the names of the fields to match in left-to-right order in the datasource. The values available are those in the next column that match the preceding values.
Suppose you have a table representing cars, called vehicle_make_model, with three columns: vehicle_make, vehicle_model, and vehicle_year. Use the following configuration for fields representing make, model, and year that only allow a combination matching a row in the table.
[ { "name": "vehicle_make", "title": "Vehicle Make", "type": "lookup", "table": "vehicle_make_model" }, { "name": "vehicle_model", "title": "Vehicle Model", "type": "lookup", "table": "vehicle_make_model", "match": ["vehicle_make"] }, { "name": "vehicle_year", "title": "Vehicle Year", "type": "lookup", "table": "vehicle_make_model", "match": ["vehicle_make", "vehicle_model"] } ]
Conditions
In the below example, the condition statement indicates that this field should only have data if the following expression is true:
(select_field_example == "Option 1" OR select_field_example == "Option 3") AND
(number_field_example == 1 OR number_field_example == 5)
{
"name": "conditional_text_field",
"title": "Text entry to explain a previous entry",
"type": "string",
"multiline": true,
"optional": true,
"width": 12,
"condition": {
"select_field_example": ["Option 1", "Option 3"],
"number_field_example": ["1", "5"]
}
}
Reserved Peril Field Names
Important
The following field names should not be used on perils because they conflict with existing peril properties:
deductible
deductibleType
indemnityPerItem
indemnityPerItemType
indemnityPerEvent
indemnityPerEventType
indemnityPerAggregate
indemnityPerAggregateType
lumpSumPayment
lumpSumPaymentType