Forms
In questa sezione
Algho allows you to integrate external web services with the conversational form function to validate and submit the data collected. It is possible to integrate an infinite number of services, like ticket management, reservations, orders, appointments, order tracking, etc.
Source of truth for form webhook documentation. Last synced with https://docs.alghoncloud.com/form.html on 2026-05-15.
Workflow
The workflow consists of three steps:
- Provide a list of admissible values for the form field
- Provide a validation of the form field value entered by the user
- Provide an action based on the collected form values entered by the user
HTTP Headers
All webhook requests are POST with Content-Type: application/json; charset=utf-8 and Accept: application/json.
The following authentication/context headers may be included:
| Header | Description |
|---|---|
Algho-Token | The token originally set by the front-end in the alghoToken header. Present only if set by the integration script. |
algho-json-web-token | An AJWT (Algho JSON Web Token), present only if the user question contains both an AJWT token and a signed payload. See AJWT documentation. |
algho_jwt | A system-generated JWT for the license. |
URL Resolution
Webhook URLs configured in Composer can be either absolute or relative:
- If the URL starts with
httporwww, it is treated as absolute. - Otherwise, it is prefixed with the base path configured in the integration.
Error Handling
If any webhook call fails (HTTP error, timeout, or exception), Algho falls back to a localized “service unavailable” message and terminates the form flow with command="exit".
All requests, headers, and responses (including status codes and timing) are logged internally.
1 - Provide list of admissible values
Provide a set of admissible values from the external web service to Algho. To provide the options list to the use.
Request (WebhookFieldValuesRequest)
{
"fieldName": "RequestType",
"fieldType": "TextFieldType",
"externalWSfield": "ext_field_1",
"formName": "Support form",
"lang": "en",
"userLang": "en",
"botId": "a1b2c3d4e5f6",
"userId": "algho_user_123",
"conversationId": 123456,
"currentUrl": "http://www.mysite.com",
"applicationContext": "context",
"customData": "test",
"ownerId": "8234gf380r12480r7823gt4r",
"userQuestion": "",
"userActualInput": "",
"autofill": false,
"extractedValues": ["value1", "value2"],
"questionEmotion": "NEUTRAL",
"attentionLevel": "low",
"fields": [
{
"name": "Name",
"type": "FullNameFieldType",
"value": "John Smith",
"formName": "Support form",
"order": 0,
"insertTimestamp": "2026-05-15 10:30:00"
},
{
"name": "RequestType",
"type": "TextFieldType",
"value": "Appointment",
"id": "1",
"formName": "Support form",
"order": 1,
"insertTimestamp": "2026-05-15 10:31:00"
},
{
"name": "List",
"type": "TextFieldType",
"value": "book,pen,backpack",
"formName": "Support form",
"order": 2,
"insertTimestamp": "2026-05-15 10:32:00",
"values": [
{ "name": "book", "id": "1" },
{ "name": "pen", "id": "2" },
{ "name": "backpack", "id": "3" }
]
}
],
"metadata": {
"customKey": "customValue"
}
}
| Field | Type | Description |
|---|---|---|
fieldName | String | Field name defined in Algho builder |
fieldType | String | Field type defined in Algho builder (see Field Type table) |
externalWSfield | String | External Id of field for reference (Optional) |
formName | String | Form name defined in Algho builder |
lang | String | Language code (see Language codes table) |
userLang | String | The language chosen by the user, may differ from the form language lang |
botId | String | Bot Id identifier |
userId | String | User identifier. User id can be personalized in the Algho embedded script |
conversationId | Long | User conversation session id |
currentUrl | String | Source URL address |
applicationContext | String | Application Context sent from Algho embedded script (Optional) |
customData | String | Custom data as string for form context (Optional) |
ownerId | String | Form owner id as string (Optional) |
userQuestion | String | User question that triggered the form |
userActualInput | String | Original text of user question |
fields | Array | Array containing the fields previously filled by the user (see Field Object) |
autofill | Boolean | If true, Algho is in autofill mode (trying to extract form fields value from user question) (Optional) |
extractedValues | List<String> | List of values extracted from the user’s input during autofill (Optional) |
questionEmotion | String | Present only if emotional analysis is enabled: NEUTRAL, HAPPY, AMAZED, ANGRY, SAD, DISGUSTED, SCARED, DISABLED |
attentionLevel | String | Present only if emotional analysis is enabled: high, medium, low, DISABLED |
metadata | JSON Object | A JSON object that can be customized per-form via Composer (maximum size of 65535 characters) |
Response (WebhookFieldValuesResponse)
{
"question": "Choose area",
"values": [
{
"name": "administration",
"alias": "billings,contract",
"id": "1"
},
{
"name": "technical",
"alias": "issue,configuration",
"id": "2"
},
{
"name": "pre-sales",
"alias": "catalog",
"id": "3",
"answer": {
"answerText": "Check our sales material at https://www.alghoncloud.com/en/features/"
}
},
{
"name": "generic"
}
],
"customData": "test",
"fields": [
{
"name": "Region",
"value": "Europe"
}
],
"hiddenAdmissibleValues": false
}
| Field | Type | Description |
|---|---|---|
question | String | Return question to present to user if present. Overrides the default field question configured in Composer (Optional) |
values | Array | Array of possible admissible values (see Admissible Value Object) |
command | String | Specific action used to end form if set to exit or, if set to overwriteAnswers the array of answers (if present) is presented to the user instead of the question or the field message (Optional) |
answers | Array | Array of answer objects (Optional) (see Answer Object) |
customData | String | Custom data as string to set for form context. If returned, it is persisted to the database and sent in all subsequent webhook calls for this form instance (Optional) |
autofill | Boolean | If true, all returned admissible values are used to autofill current field, and the fields array is used to fill subsequent fields (Optional) |
nextUrl | String | Used for lazy-loading / pagination of admissible values in the UI (Optional) |
fields | Array | Array containing fields to auto-fill. Only processed when autofill=true (Optional) (see Field Object) |
hiddenAdmissibleValues | Boolean | If true, admissible values are used for matching but are not displayed as suggestions in the user interface (Optional) |
The list of admissible values can be returned based on the fields filled previously.
Behavioral notes
questionoverride: Ifcommandis notoverwriteAnswers, thequestionvalue replaces the default question text for the current field.command=exit: Immediately terminates the form flow. Ifanswersare provided, they are shown to the user.command=overwriteAnswers: Theanswersarray is shown to the user instead of the standard field question or the field message.autofill=true: Thevaluesarray fills the current field; thefieldsarray fills subsequent fields. If an autofilled value has a nested form it is started immediately.
2 - Field validation
Algho has a proprietary system to validate fields of a conversational form based on the type of field and/or admissible value. Validation can be delegated to an external web service using this protocol.
Request (WebhookFieldValidationRequest)
{
"fieldName": "Email",
"fieldType": "EmailFieldType",
"externalWSfield": "ext_field_1",
"formName": "Support form",
"lang": "en",
"userLang": "en",
"botId": "a1b2c3d4e5f6",
"userId": "algho_user_123",
"conversationId": 123456,
"currentUrl": "http://www.mysite.com",
"applicationContext": "context",
"customData": "test",
"ownerId": "8234gf380r12480r7823gt4r",
"userQuestion": "",
"userActualInput": "john@smith.com",
"autofill": false,
"questionEmotion": "NEUTRAL",
"attentionLevel": "low",
"fields": [
{
"name": "Name",
"type": "NameFieldType",
"value": "John",
"id": "1",
"formName": "Support form",
"order": 0,
"insertTimestamp": "2026-05-15 10:30:00"
},
{
"name": "Surname",
"type": "SurnameFieldType",
"value": "Smith",
"formName": "Support form",
"order": 1,
"insertTimestamp": "2026-05-15 10:31:00"
}
],
"text": "john@smith.com",
"id": "id",
"nextFormId": 42,
"nextFormName": "Follow-up form",
"metadata": {
"customKey": "customValue"
}
}
This request extends the admissible values request with additional fields:
| Field | Type | Description |
|---|---|---|
text | String | Field value to validate. For a single value, this is the plain text. For multiple admissible values (catalog), this is a JSON-serialized array of the selected values. When called during autosubmit (no user selection), this is the raw user question text and autofill is set to true |
id | String | The id associated with the validated value. Only set for single-value selections (Optional) |
values | Array | The selected admissible value objects. For single selections, contains one element; for multiple selections, contains all selected values (Optional) (see Admissible Value Object) |
nextFormId | Long | Form to jump to by id, forwarded from the selected admissible value if applicable (Optional) |
nextFormName | String | Form to jump to by name, forwarded from the selected admissible value if applicable (Optional) |
Plus all fields from the admissible values request.
Multiple admissible values example
{
"fieldName": "Email",
"fieldType": "EmailFieldType",
"formName": "Support form",
"lang": "en",
"botId": "a1b2c3d4e5f6",
"userId": "algho_user_123",
"conversationId": 123456,
"currentUrl": "http://www.mysite.com",
"applicationContext": "context",
"customData": "test",
"ownerId": "8234gf380r12480r7823gt4r",
"userQuestion": "",
"questionEmotion": "NEUTRAL",
"attentionLevel": "low",
"fields": [
{ "name": "Name", "type": "NameFieldType", "value": "John", "id": "1" },
{ "name": "Surname", "type": "SurnameFieldType", "value": "Smith" }
],
"text": "[{\"name\":\"book\",\"alias\":\"news paper, paper\",\"id\":\"1\"},{\"name\":\"pen\",\"alias\":\"red pen,black pen\",\"id\":\"2\"},{\"name\":\"backpack\",\"alias\":\"bag\",\"id\":\"3\"}]",
"values": [
{ "name": "book", "alias": "news paper, paper", "id": "1" },
{ "name": "pen", "alias": "red pen, black pen", "id": "2" },
{ "name": "backpack", "alias": "bag", "id": "3" }
],
"metadata": { "customKey": "customValue" }
}
Response (WebhookFieldValidationResponse)
{
"isValid": true,
"message": "Email found in database.",
"answers": [
{
"answerText": "Email found in database."
}
],
"customData": "test",
"question": "Please confirm your email",
"hiddenAdmissibleValues": false,
"payload": "{\"tests\":[{\"commands\":[...]}]}"
}
| Field | Type | Description |
|---|---|---|
isValid | Boolean | Whether the value is valid |
extractedValue | String | Field value to set, overriding the raw user input. Allows the webhook to “clean” or “normalize” the input (Optional) |
extractedId | String | Field id to set, overriding the id from the user’s selection (Optional) |
answers | Array | Array of answer objects (Optional) (see Answer Object) |
admissibleValues | Array | Array of possible values. Dynamically replaces the current field’s admissible values for subsequent attempts. The name field is the valid value (mandatory), alias is a comma-separated list of synonyms (Optional) (see Admissible Value Object) |
command | String | Specific action used to end form, e.g. exit (Optional) |
customData | String | Custom data as string to set for form context. Persisted to the database (Optional) |
fields | Array | Array containing following fields to auto-fill. Field name and value are required. Fields are filled with type NEXT_FIELD_FORCED, meaning they bypass normal validation (Optional) (see Field Object) |
nextFormId | Long | Form to jump to by id if isValid=true (Optional) |
nextFormName | String | Form to jump to by name if isValid=true (Optional) |
nextUrl | String | Present in the model but not actively used in the validation flow (Optional) |
question | String | Overrides the question text of the next field (not the current one). Only applied if the text is not already present in an existing answer (Optional) |
hiddenAdmissibleValues | Boolean | Present in the model but not actively used in the validation flow (Optional) |
payload | String | JSON string used for browser automation. Attached to the last answer shown to the user and passed to the next field attacher (Optional) |
Behavioral notes
isValid=false: The value is rejected and removed from the candidate list. IfcustomDatawas updated, it is still persisted before discarding the match. The field is re-asked with an error message (fromanswersif provided, otherwise the configured failure message).isValid=true: The value is accepted. IfextractedValue/extractedIdare provided, they override the user’s raw input.answerswhenisValid=false: If the validation response contains answers with text, they are shown as the error message instead of the configured failure message or the pipeline fallback.fieldsauto-fill: Fields returned in thefieldsarray are force-filled into the form. This can fill fields that haven’t been asked yet. The system then re-initializes the next field pointer since it may have changed.admissibleValuesreplacement: The returned admissible values replace the current field’s admissible values entirely (not merge). This is also propagated to the next field attacher.command=exit: Immediately terminates the form. If answers are present, they are marked as form-end messages.nextFormId/nextFormName: Triggers navigation to a child form after the current field is validated.- Iteration over ranked values: During autofill, the system iterates over all ranked candidate values and validates each one individually. Values that fail validation are removed from the ranked list.
Validation example with admissible values
{
"isValid": false,
"answers": [
{ "answerText": "Invalid city" }
],
"admissibleValues": [
{ "name": "Rome" },
{ "name": "London" },
{ "name": "Paris" },
{ "name": "Berlin" },
{ "name": "Kracov" }
],
"customData": "test"
}
Validation example with next fields autofill
{
"isValid": true,
"fields": [
{ "name": "Cap", "value": "12345" }
],
"customData": "test"
}
3 - Form submit
It is possible to send form data with all the fields filled out to an external web service. Set the external web service URL in the “submitUrl” field of the template form on “Algho Builder Forms”.
Request (WebhookFormSubmitRequest)
{
"formName": "Support form",
"lang": "en",
"userLang": "en",
"botId": "a1b2c3d4e5f6",
"userId": "algho_user_123",
"conversationId": 123456,
"currentUrl": "http://www.mysite.com",
"applicationContext": "context",
"customData": "test",
"ownerId": "8234gf380r12480r7823gt4r",
"userQuestion": "",
"userActualInput": "",
"autofill": false,
"questionEmotion": "NEUTRAL",
"attentionLevel": "low",
"fields": [
{ "name": "Name", "type": "NameFieldType", "value": "John", "id": "1", "formName": "Support form", "order": 0, "insertTimestamp": "2026-05-15 10:30:00" },
{ "name": "Surname", "type": "SurnameFieldType", "value": "Smith", "formName": "Support form", "order": 1, "insertTimestamp": "2026-05-15 10:31:00" },
{ "name": "Email", "type": "EmailFieldType", "value": "john@smith.com", "formName": "Support form", "order": 2, "insertTimestamp": "2026-05-15 10:32:00" },
{ "name": "RequestType", "type": "TextFieldType", "value": "technical", "id": "4", "formName": "Support form", "order": 3, "insertTimestamp": "2026-05-15 10:33:00" },
{
"name": "List",
"type": "TextFieldType",
"value": "book,pen,backpack",
"formName": "Support form",
"order": 4,
"insertTimestamp": "2026-05-15 10:34:00",
"values": [
{ "name": "book", "id": "1" },
{ "name": "pen", "id": "2" },
{ "name": "backpack", "id": "3" }
]
}
],
"metadata": {
"customKey": "customValue"
}
}
| Field | Type | Description |
|---|---|---|
formName | String | Form name defined in Algho builder |
lang | String | Language code (see Language codes table) |
userLang | String | The language chosen by the user, may differ from the form language lang |
botId | String | Bot Id identifier |
userId | String | User identifier. User id can be personalized in the Algho embedded script |
conversationId | Long | User conversation session id |
currentUrl | String | Source URL address |
applicationContext | String | Application Context sent from Algho embedded script (Optional) |
customData | String | Custom data as string for form context (Optional) |
ownerId | String | Form owner id as string (Optional) |
userQuestion | String | User question that triggered the form |
userActualInput | String | Original text of user question |
fields | Array | Array containing the fields filled by the user (see Field Object) |
autofill | Boolean | If true, Algho is in autofill mode (trying to extract form fields value from user question) (Optional) |
questionEmotion | String | Present only if emotional analysis is enabled: NEUTRAL, HAPPY, AMAZED, ANGRY, SAD, DISGUSTED, SCARED, DISABLED |
attentionLevel | String | Present only if emotional analysis is enabled: high, medium, low, DISABLED |
metadata | JSON Object | A JSON object that can be customized per-form via Composer (maximum size of 65535 characters) |
Response (WebhookFormSubmitResponse)
{
"answers": [
{ "answerText": "Thanks for your submission." },
{ "answerText": "The id request is 123" },
{
"answerText": "Visit the link to show your request status",
"mediaType": "link",
"media": "http://www.mysite.com/check?id=123"
}
],
"nextUrl": "http://www.mysite.com/next",
"nextUrlLabel": "More...",
"command": "exit"
}
| Field | Type | Description |
|---|---|---|
answers | Array | Array of answer objects. If provided, these are displayed as the final response. If empty, the form’s configured “thank you message” is used instead (see Answer Object) |
nextUrl | String | URL for submit form data for next page - absolute or relative path. A clickable button is added to the last answer (Optional) |
nextUrlLabel | String | Alternative label for the pagination button. Defaults to a localized “next page” message if not specified (Optional) |
command | String | Special action command (Optional). See behavioral notes below |
The chatbot will respond with the message returned by the external web service.
Behavioral notes
- Empty
answers: If the response has no answers, the form’s configuredthankYouMsgis shown as the completion message. nextUrlpagination: WhennextUrlis provided, a suggestion button is appended to the last answer. When the user clicks it, the system retrieves the last logged webhook request from the database and re-submits it to the submit URL. The label defaults to a localized message unlessnextUrlLabelis specified.commandvalues: The following commands are supported (only processed if the form is at root level, not inside a nested form):REQUEST_OPERATOR: Triggers a live chat operator request. The actual command sent depends on the bot’s livechat configuration.REQUEST_OPERATOR_WITHOUT_PROMPT: Same as above but without the standard prompt.STOP_CONVERSATION: Stops the conversation.INTERRUPT_CONVERSATION: Interrupts the conversation.exit: Terminates the form flow.
Pagination example with url and params
{
"answers": [
{ "answerText": "Rome" },
{ "answerText": "London" },
{ "answerText": "Paris" },
{ "answerText": "Berlin" },
{ "answerText": "Kracov" }
],
"nextUrl": "http://www.mysite.com/search?page=2",
"nextUrlLabel": "More..."
}
Pagination example with relative url and params
{
"answers": [
{ "answerText": "Rome" },
{ "answerText": "London" },
{ "answerText": "Paris" },
{ "answerText": "Berlin" },
{ "answerText": "Kracov" }
],
"nextUrl": "?page=2",
"nextUrlLabel": "More..."
}
File embedded
{
"answers": [
{
"answerText": "Click to download file.",
"mediaType": "file",
"media": "data:image/gif;base64,R0lGODdhAQABAPAAAP8AAAAAACwAAAAAAQABAAACAkQBADs="
}
]
}
Chart with Highcharts Plugin
See Highcharts documentation and demo for JSON structure.
{
"answers": [
{
"answerText": "Here is the chart data",
"rawData": {
"highchart": {
"title": { "text": "Solar Employment Growth by Sector, 2010-2016" },
"series": [
{ "name": "Installation", "data": [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175] }
]
}
}
}
]
}
Shared Objects
Answer Object
(WebhookAnswerObject)
| Field | Type | Description |
|---|---|---|
answerText | String | Answer message shown to the user. Supports HTML and styling (Required) |
media | String | URL of the media (Optional) |
mediaType | String | Type of the media. Must be one of: link, img, video, file, iframe, qrcode (Optional) |
rawData | JSON Object | JSON object used by the Highcharts plugin (Optional) |
payload | String | JSON string used by browser automation (Optional). Check Selenium IDE plugin |
answerSource | String | Can be set to ai_generated if the answer has been generated using AI, an icon will be shown to the user (Optional) |
action | String | Action identifier (Optional) |
paragraphs | List<AnswerParagraph> | List of answer paragraphs for TTS segmentation (Optional, read-only) |
If mediaType is file, then media MUST contain a base64 content in one of these formats:
data:[CONTENT_TYPE];base64,[CONTENT_BASE64]data:[CONTENT_TYPE];name=[FILENAME];base64,[CONTENT_BASE64]
Admissible Value Object
(WebhookAdmissibileValueObject)
| Field | Type | Description |
|---|---|---|
name | String | Text shown to the user. Does NOT support HTML and styling (Required) |
alias | String | Comma-separated synonyms for name (Optional) |
id | String | A custom ID or key associated with this admissible value (Optional) |
nextFormId | Long | If this admissible value is selected, it will jump to the configured form by ID (Optional) |
nextFormName | String | If this admissible value is selected, it will jump to the configured form by name (Optional) |
answer | Answer Object | A single answer object (Optional). The answer is shown only if the “Always show success text and thank you message” flag is checked on the field configuration (via Composer) |
Additional catalog-specific fields (description, media, mediaType, price, quantity, availability, category, currency, duration) are documented separately in the catalog documentation.
Field Object
(WebhookFieldObject)
| Field | Type | Description |
|---|---|---|
name | String | The name of the field, configured on Composer (Required) |
type | String | The type of the field, configured on Composer (see Field Type table) |
value | String | The value typed or selected (in case of admissible values) by the user |
id | String | A custom ID or key associated with the admissible value selected by the user, if applicable (Optional) |
values | Array | A structured object populated with all the admissible values selected by the user (Optional) (see Admissible Value Object) |
externalWSfield | String | The “External ID” of the field, configured on Composer (Optional) |
formName | String | The name of the form this field belongs to. Present when fields span multiple (parent) forms |
order | Integer | The order/position of the field within its form |
insertTimestamp | String | The timestamp when the field value was inserted (format: yyyy-MM-dd HH:mm:ss, timezone: CET) |
Text to Speech features for assistant responses
Only available on vocal and digital human interface.
Paragraphs or parts of the text can be muted in speech synthesis. However, it is possible to replace a word or part of text with an alias.
The assistant’s answer, being able to contain HTML code, allows you to define more paragraphs that will be shown as separate balloons and read by the speech synthesis.
The text within the span tag will be read by the speech system using the text
contained within the alias attribute. The alias attribute can be empty to not
read part of the text or a paragraph.
<p> this is a message </p>
<p> <span alias=""> this message will not be read </span> </p>
<p> the abbreviation WWW will read as <span alias="World Wide Web">WWW</span> </p>
Browser automation
Only available on web browser.
Sample JSON saved from Selenium IDE
Record actions with Selenium IDE and save recorded JSON file.
{
"answers": [
{
"answerText": "Start automation",
"payload": "{\"id\":\"...\",\"version\":\"2.0\",\"name\":\"test\",\"url\":\"\",\"tests\":[...]}"
}
]
}
Call Javascript function on web page
{
"answers": [
{
"answerText": "Start automation",
"payload": "{\"tests\":[{\"commands\":[{\"command\":\"executeScript\",\"value\":\"alert('My Automation');\"}]}]}"
}
]
}
The javascript inserted inside the “value” of the “executeScript” command will be executed on the page that integrates the virtual assistant. This is done by invoking the registered function on the parent page.
Call Javascript function from response
{
"answers": [
{
"answerText": "Click <a href=\"javascript:sendMessageToParent('automation-xpath',JSON.stringify({tests:[{commands:[{command:'executeScript',value:'alert(\\'My Automation\\')'}]}]}));void(0);\">here</a> to test"
}
]
}
Reference Tables
Field Type
| Type | Description |
|---|---|
TextFieldType | Plain text |
EmailFieldType | Email address |
NumFieldType | Number (only digits allowed) |
AreaCodeFieldType | Area code number (e.g. +39, +34, +442) |
TelFieldType | Phone number |
LocationFieldType | Address |
PostalCodeFieldType | Postal code |
DateFieldType | Date (yyyy-MM-dd) or a date extracted from text |
BirthDateFieldType | Date in the past (yyyy-MM-dd) |
BookingDateFieldType | Date in future, starting from today (yyyy-MM-dd) |
DayFieldType | Day (Monday, Tuesday, etc.), depends on form language |
HourFieldType | Hour (HH:mm) |
DateHourFieldType | Date and time (yyyy-MM-dd HH:mm) |
DateRangeFieldType | Range of dates (yyyy-MM-dd - yyyy-MM-dd) |
DayRangeFieldType | Range of days (Monday - Friday) |
HourRangeFieldType | Range of hours (HH:mm - HH:mm) |
BoolFieldType | Choice between TRUE or FALSE |
NameFieldType | Name or a name extracted from text |
SurnameFieldType | Surname or a surname extracted from text |
FullNameFieldType | Name and surname or extracted from text |
CFFieldType | Tax code |
VatFieldType | VAT number |
UrlFieldType | URL |
FileFieldType | URL of a file uploaded by the user |
AudioFieldType | URL of an audio recorded by the user |
QRCodeFieldType | Content of a QR code scanned by the user |
SPIDFieldType | Content of a successful SPID login |
PasswordFieldType | Password (hashed one-way, not reversible) |
PrivacyFieldType | BoolFieldType dedicated to privacy consent (e.g. service, marketing, profiling) |
BusinessFieldType | Name of a business, or what is extracted as such |
CatalogFieldType | Catalog type |
CurrencyFieldType | Currency (e.g. €, $, £, ¥) |
MeasureFieldType | Measurable normalized quantity (e.g. “5 kg”, “15 mA”) |
QuantityFieldType | Non-normalized quantity (e.g. “5 grams”) |
OrderFieldType | ID of an existing order |
Algho uses internal validators for these types of fields.
Language codes
| Code | Language |
|---|---|
it | Italian |
en | English |
es | Español |
pt | Português |
fr | Français |
de | Deutsch |
ro | Românesc |
zh | 中文 (Chinese) |