Data Collection

This section shows what kind of forms can be defined in order to collect information from customer before starting a new contact.

Data Collection is organized in forms, for each service you can define multiple ordered list of forms to be rendered. The order of the forms is static, but we are planning to add the feature to make it dynamic based on data selected or to add conditional forms visible only under a condition.

Each form is composed of multiple fields. Possible fields type are:

  • text (can be generic or specialized)

    • nickname

    • email

    • name

    • surname

    • phone

  • date

  • textarea

  • checkbox

  • radio

  • select

Each type has the following properties:

Property

Description

Notes

Localizable

Property

Description

Notes

Localizable

Name

Name used to identify the field

 

 

Label

Label to be rendered in the UI

Can be localized.

Accepts a string representing the label to be displayed or an object whose key is the country code and whose value is the relative label to be displayed.
Example:
{
"it-it" : "Messaggio italiano",
"en-gb" : "English message"
}

X

isMandatory

If true the field is required

A * is added in the UI

 

isVisibleCustomer

If false the filed is hidden

Mainly use for mode auto to fetch info using JS evaluation

 

isVisibleAgent

False if the content is not intended to be shown to agent for privacy reason

 

 

isEditable

False if user is not allowed to change default value

 

 

custom_regexp

Regular expression for validating input

If input is not validated, an error message is shown when submitting the form. Not used for textarea

 

customMandatoryErrorMessage

Error shown when a mandatory field is not filled

Can be localized.

Accepts a string representing the label to be displayed or an object whose key is the country code and whose value is the relative label to be displayed.
Example:
{
"it-it" : "Messaggio italiano",
"en-gb" : "English message"
}

X

customValidationErrorMessage

Error shown when input is not valid

Can be localized.

Accepts a string representing the label to be displayed or an object whose key is the country code and whose value is the relative label to be displayed.
Example:
{
"it-it" : "Messaggio italiano",
"en-gb" : "English message"
}

X

dc_type

Type of field

Supported values are:

  • text (can be generic or specialized)

    • nickname

    • email

    • name

    • surname

    • phone

  • date

  • textarea

  • checkbox

  • radio

  • select

 

options

Object whose properties are used as possible values

Used only for radio, select and checkbox.

Example:

{
"bike" : {
"it-it" : "bicicletta",
"en-gb" : "bicycle"
},
"motorbike" : {
"it-it" : "moto",
"en-gb" : "motorcycle"
},
"car" : {
"it-it" : "auto",
"en-gb" : "car"
}
}

X

value

field value

if mode is manual then it's considered as pre-filled value, if auto it's evaluted as a JS function returning a value

 

name

field name

Not visible in UI

 

mode

field mode

it describes how to use the value field. manual the value is used as default value, auto it's evaluated as a JS function

 

 

It’s possible to find the complete description of the datacollection object structure in this page Data Collection Object

Examples:

 

{ "id" : "f14cb974-eeb0-47e8-bd51-c3e32adb6a40", "title" :{ "it-it" : "Anagrafica #3", "en-gb" : "Registry #3" }, "dc_mode" : "chat", "next" : "", "datacollection" : [ { "dc_type" : "textarea", ---> new textarea data collection type "label" : { "it-it" : "Suggerimenti", "en-gb" : "Tips" }, "isMandatory" : true, "isVisibleAgent" : true, "isVisibleCustomer" : true, "isEditable" : true, "custom_regexp" : "", "customValidationErrorMessage" : "", "customMandatoryErrorMessage" : { "it-it" : "Per favore, scrivi qualcosa", "en-gb" : "Please, write something" }, "value" : "", ---> contains the text typed by the customer or a default value if pre-filled "name" : "customer_tips", ---> calldata variable name "mode" : "manual" }, { "dc_type" : "checkbox", ---> new checkbox data collection type "label" : { "it-it" : "Che veicolo possiedi?", "en-gb" : "What vehicle you own?" }, "options" : { ---> checkbox values. The keys (bike, motorbike, car) will be the value returned by the selected checkbox. The customer will only see one label for each checkbox according the selected language. "bike" : { "it-it" : "bicicletta", "en-gb" : "bicycle" }, "motorbike" : { "it-it" : "motocicletta", "en-gb" : "motorcycle" }, "car" : { "it-it" : "automobile", "en-gb" : "car" } }, "isMandatory" : false, "isVisibleAgent" : true, "isVisibleCustomer" : true, "isEditable" : true, "custom_regexp" : "", "customValidationErrorMessage" : "", "customMandatoryErrorMessage" : "", "value" : "", ---> Contains the values selected by the customer separated by commas. Example: "bike,car". It can be prefilled to automatically select checkboxes. "name" : "veichle", ---> calldata variabile name "mode" : "manual" }, { "dc_type" : "radio", ---> new radio data collection type "label" : { "it-it" : "Frutto preferito?", "en-gb" : "What's your favourite fruit?" }, "options" : { ---> the logic is the same as in the checkbox field "b" : { "it-it" : "banana", "en-gb" : "banana" }, "a" : { "it-it" : "mela", "en-gb" : "apple" }, "w" : { "it-it" : "anguria", "en-gb" : "watermelon" } }, "isMandatory" : false, "isVisibleAgent" : true, "isVisibleCustomer" : true, "isEditable" : true, "custom_regexp" : "pignatta", "customValidationErrorMessage" : "", "customMandatoryErrorMessage" : { "it-it" : "Per favore, scegli un frutto", "en-gb" : "Please, choose a fruit" }, "value" : "", ---> Contains only one value selected by the customer. In can be prefilled to automatically select one value. "name" : "fruit", ---> calldata variable name "mode" : "manual" }, { "dc_type" : "select", ---> new select data collection type "label" : { "it-it" : "Scegli una macchina:", "en-gb" : "Choose a car:" }, "options" : { ---> the logic is the same as seen in the previous fields. In this example there is only one string value for each key that describe the car company brand (no localization required). "audi" : "Audi", "fiat" : "Fiat", "renault" : "Renault" }, "isMandatory" : true, "isVisibleAgent" : true, "isVisibleCustomer" : true, "isEditable" : true, "custom_regexp" : "", "customValidationErrorMessage" : "", "customMandatoryErrorMessage" : { "it-it" : "Per favore, scegli una macchina", "en-gb" : "Please, choose a car" }, "value" : "", ---> conterrà il valore selezionato dal cliente. Se, ad es sceglie "Fiat", il campo sarà valorizzato con "fiat" "name" : "manifacture", ---> nome della variabile che poi diventa di calldata (come prima) "mode" : "manual" } ], }