Create a Kiosk State
Purpose
To create a state in a specific Kiosk in Zoho CRM using the Kiosk ID. Each state represents a screen, action, decision, or GetRecords of the Kiosk.
A Kiosk must be in the draft status to create a new state. Use the Clone a Kiosk API to make it in draft status. This operation is not supported when the Kiosk is in the published or inactive status. You can create only one state per request.
After creating a state, call the Create a Kiosk State API again to add additional states to the Kiosk. Repeat this process until all the required states are created. Once the Kiosk is fully configured, publish it and associate it with the required CRM component.
To modify an existing state after it has been created, use the Update Kiosk States API.
Note
Availability: Standard, Professional, Enterprise, and Ultimate editions.
Permission Required: Administrator profile, or profiles with either the Module Customization or Manage Automation permission enabled.
Endpoints
- POST /settings/kiosks/{kiosk_ID}/states
- {kiosk_ID} : The unique ID of the Kiosk.
Request Details
Request URL
{api-domain}/crm/{version}/settings/kiosks/{kiosk_ID}/states
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Scope
ZohoCRM.settings.kiosks.ALL
(or)
ZohoCRM.settings.kiosks.CREATE
Sample Request
Copiedcurl "https://www.zohoapis.com/crm/v8/settings/kiosks/5039614000010849013/states"
-X POST
-d "@inputData.json"
-H "Authorization: Zoho-oauthtoken 1000.8cb99dxxxxxxxxxxxxx9be93.9b8xxxxxxxxxxxxxxxd"Input JSON
The request body is a JSON object containing a states array with the state configuration.
- name string, mandatory
Specify the unique display name of the state. The maximum length is 50 characters, and it must match the regex pattern [0-9a-zA-Z_\-\.\|\$\?\,\'\/\!\P{InBasicLatin}\s]+.
- type string, mandatory
Specify the type of state to be created.
State type Sub-type / Action Description screen — Represents a screen where fields are displayed. decision — Represents a decision state. get_records — Retrieves records from a module. action Non-associative Actions create_record Create Record - Predefined Configuration. quick_create_record Create Record via User Input. convert Convert action. open_record Open Record action. open_link Open Link action. add_meeting Add Meeting action. schedule_call Schedule Call action. assign_owner Assign Owner action. add_tags / remove_tags Add Tags or Remove Tags action. Associative Actions field_updates Field Update action. tasks Add Task action. email_notifications Email Notifications action. webhooks Webhook action. - detailsJSON object, mandatory
Defines the detailed configuration for the state. The structure of this object varies depending on the value of the type field. The configuration for each state type is explained in detail in the corresponding sections below.
- from_transitionJSON object, mandatory
Specify the details of the transition. It specifies the point of previous state which triggers the current state.
- idlong, mandatory
Specify the id of the from transition. To get details about transitions, refer to the Get Kiosk States API.
Note
For execute_for_record, the value can be either get_record or current_record.
- For get_record details, refer to the Kiosk Get Record API.
- For current_record details, retrieve the module api_name of the Kiosk using the Get Kiosks API, and pass it to the Get Fields API to obtain the ID and name of the current_record.
For associative actions, state-related details can be created through the Kiosk.
1. Input JSON - Screen
This section explains the keys that come under details section for the screen state. Common fields are covered in the Input JSON section.
- screen_detailsJSON object, mandatory
Specify the details related to the screen state. The screen state can contain buttons, fields, and components.
- title string, mandatory
The title displayed at the top of the screen.
- width string, optional
The width of the screen display. Default value is 670px.
Possible values:
670px
1000px
- button_align string, optional
The alignment of action buttons on the screen. Default value is right_to_left.
Possible values:
right_to_left - Buttons are aligned from right to left.
left_to_right - Buttons are aligned from left to right.
center - Buttons are aligned to the center.
- elementsJSON array, optional
Specify the array of UI elements to be rendered on the screen. You can configure a maximum of 30 UI elements per screen. If this array is provided, it must contain at least one UI element.
- type string, mandatory
Specify the type of UI element to be displayed on the screen.
Possible values:
field - Indicates that the UI element is a field displayed on the screen, such as a multiline, number, user, or picklist field.
text - Indicates that the UI element is a text block displayed on the screen.
get_records - Indicates that the UI element is a Get Records component displayed on the screen.
data_hubs - Indicates that the UI element is a Queries component displayed on the screen.
- value string, mandatory
Specify the value of the UI element. For text elements, provide the text to be displayed. For all other element types, this field must be null.
- fieldJSON object, optional
The configuration for form field elements. Required when type is field.
- field_label string, mandatory
The display label shown to the user for this field.
- allow_multiple_uploadBoolean, optional
Specify whether multiple file uploads are allowed. Applicable only when data_type is fileupload.
Possible values:
true
false - data_type string, mandatory
The data type of the field.
Possible values:
Value Description text Data type for single line text field. textarea Data type for multi line text field. phone Data type for phone number field. integer Data type for number field. currency Data type for currency field. double Data type for decimal field. percent Data type for percent field. website Data type for URL field. boolean Data type for checkbox field. email Data type for email field. date Data type for date field. datetime Data type for datetime field. picklist Data type for picklist field. userlookup Data type for user field. fileupload Data type for file upload field. multiselectpicklist Data type for multi select picklist field. - requiredBoolean, optional
Indicates whether the field is mandatory. Defaults to false.
- read_onlyBoolean, optional
Indicates whether the field is read-only. Defaults to false.
- _merge_field string, optional
Specify the merge field expression for auto-populating the field value.
- lengthInteger, mandatory
Specify the maximum length allowed for the field value. This key is only applicable for the following fields. For fileupload, the length indicates the maximum number of files that can be uploaded.
Possible values:
Data Type Element type Length textarea field 2000 integer field 9 currency field 16 double field 16 website field 450 fileupload field 5 - number_separatorBoolean, optional
Specifies whether number formatting separators are applied. Applicable when field type is double.
- decimal_placeInteger, optional
The number of decimal places for numeric fields. Applicable when field type is double.
- currencyJSON object, optional
Specify the configuration of the currency element. This object is required when data_type is currency.
- rounding_option string, optional
Specify the rounding method to apply to the currency value. The default value is Normal.
Possible values:
normal - Truncates the value to the configured number of decimal places without rounding.
round_off - Rounds the value to the configured number of decimal places using standard rounding rules.
round_up - Always rounds the value up to the configured number of decimal places.
round_down - Always rounds the value down to the configured number of decimal places.
- precisionInteger, optional
Number of decimal places. The value ranges from 0 to 9, with a default of 2.
- tooltipJSON object, optional
Specifies the tooltip displayed alongside the field.
- name string, optional
The identifier of the tooltip icon displayed next to the field.
Possible values:
info_icon - Displays an information icon next to the field.
static_text - Displays informational text next to the field.
- value string, optional
The tooltip text shown to the user. The maximum characters allowed for info_icon is 255 chars and for static_text is 32 chars.
- _pick_list_type string, optional
Specifies the source of the picklist values. Applicable when data_type is picklist or multiselectpicklist.
Possible values:
local - Picklist values are defined within this field. This is the default value.
global_set - Picklist values are sourced from a global picklist.
- global_picklistJSON object, optional
Reference to the global picklist used by this field. Required when _pick_list_type is global_set.
- _global_picklist_nameJSON object, optional
Specify the metadata for the referenced global picklist. Applicable when _pick_list_type is global_set.
- display_label string, optional
The display label of the global picklist. Refer Get Global Picklist API.
- pick_list_valuesJSON array, optional
Required when data_type is picklist or multiselectpicklist.
- display_value string, optional
The text displayed to the user in the dropdown list.
- actual_value string, optional
The actual value stored in the system when this option is selected. Often the same as display_value.
- sequence_numberInteger, optional
The display order of the option in the dropdown list.
- get_recordJSON object, optional
Specify the details of the GetRecords element to be added top the screen. Required when type is get_records. Specify the name and id of the record. Refer to the Kiosk Get Records API for details of available Get Records.
- selected_fields array, optional
Specifies the array of fields to be displayed for each retrieved record. This field is required when type is get_records. You can configure a maximum of 30 fields. Each object in the array must specify the field's id and api_name. Refer to the Kiosk Get Records API for API name and ID.
- open_recordBoolean, optional
Specify whether clicking a record opens its detail view. Required when type is get_records. The default value is true.
- buttonsJSON array, mandatory
The array of action buttons displayed on the screen. Each button object must contain the following fields:
- prop_namestring, mandatory
Specify the button style that determines the visual appearance of the button.
Possible values:
primary - Displays the button as the primary action on the screen, typically used for actions such as Next, Submit, or Save.
default - Displays the button with the standard appearance, suitable for secondary actions.
outlineprimary - Displays the button with a primary-colored outline, emphasizing the action without making it the primary button.
failure - Displays the button with a solid error-themed style, typically used for destructive or critical actions such as Delete or Reject.
outlineredlight - Displays the button with a red outline, typically used for secondary destructive actions such as Cancel, Discard, or Remove.
- namestring, mandatory
The label text displayed on the button to users.
Sample Input - Screen
Copied{
"states": [
{
"name": "Screen ACTION",
"from_transition": {
"id": "5039614000001074016"
},
"type": "screen",
"details": {
"screen_details": {
"button_align": "right_to_left",
"elements": [
{
"type": "text",
"value": "${!Create_Kiosk_States.GetRecords_1.Owner}"
},
{
"type": "get_records",
"value": null,
"selected_fields": [
{
"api_name": "Owner",
"id": "5039614000000000553"
},
{
"api_name": "First_Name",
"id": "5039614000000000557"
},
{
"api_name": "Designation",
"id": "5039614000000000561"
}
],
"open_record": true,
"get_record": {
"name": "GetRecords 1",
"id": "5039614000001065834"
}
},
{
"type": "field",
"value": null,
"field": {
"field_label": "Single LineField",
"required": false,
"read_only": true,
"_merge_field": "${!Create_Kiosk_States.GetRecords_2.Owner}",
"data_type": "text"
}
},
{
"type": "field",
"value": null,
"field": {
"length": 2000,
"field_label": "Multi-Line Field",
"required": true,
"read_only": false,
"data_type": "textarea",
"tooltip": {
"value": "multiline",
"name": "info_icon"
}
}
},
{
"type": "field",
"value": null,
"field": {
"field_label": "Phone Number",
"required": false,
"read_only": false,
"data_type": "phone",
"tooltip": {
"value": "Mobile number ",
"name": "static_text"
}
}
},
{
"type": "field",
"value": null,
"field": {
"length": 9,
"field_label": "Number 1",
"required": false,
"read_only": false,
"data_type": "integer"
}
},
{
"type": "field",
"value": null,
"field": {
"length": 16,
"decimal_place": 2,
"currency": {
"rounding_option": "round_off",
"precision": 2
},
"field_label": "Currency 1",
"required": false,
"read_only": false,
"data_type": "currency"
}
},
{
"type": "field",
"value": null,
"field": {
"length": 16,
"number_separator": true,
"decimal_place": 2,
"field_label": "Decimal 2",
"required": false,
"read_only": false,
"data_type": "double"
}
},
{
"type": "field",
"value": null,
"field": {
"field_label": "Percent 2",
"required": false,
"read_only": false,
"data_type": "percent"
}
},
{
"type": "field",
"value": null,
"field": {
"length": 450,
"field_label": "URL 1",
"required": false,
"read_only": false,
"data_type": "website"
}
},
{
"type": "field",
"value": true,
"field": {
"value": true,
"field_label": "Checkbox 1",
"required": false,
"read_only": false,
"data_type": "boolean"
}
},
{
"type": "field",
"value": null,
"field": {
"field_label": "Email 1",
"required": false,
"read_only": false,
"data_type": "email"
}
},
{
"type": "field",
"value": null,
"field": {
"field_label": "Date 1",
"required": false,
"read_only": false,
"data_type": "date"
}
},
{
"type": "field",
"value": null,
"field": {
"field_label": "Date/Time 1",
"required": false,
"read_only": false,
"data_type": "datetime"
}
},
{
"type": "field",
"value": null,
"field": {
"field_label": "Multi-Select 1",
"required": false,
"read_only": false,
"pick_list_values": [
{
"display_value": "Sunday",
"actual_value": "Sunday"
},
{
"display_value": "Monday",
"actual_value": "Monday"
},
{
"display_value": "Tuesday",
"actual_value": "Tuesday"
},
{
"display_value": "Wednesday",
"actual_value": "Wednesday"
},
{
"display_value": "Thursday",
"actual_value": "Thursday"
},
{
"display_value": "Friday",
"actual_value": "Friday"
},
{
"display_value": "Saturday",
"actual_value": "Saturday"
}
],
"data_type": "multiselectpicklist"
}
},
{
"type": "field",
"value": null,
"field": {
"field_label": "User 1",
"required": false,
"read_only": false,
"_merge_field": "${!users.created_by}",
"data_type": "userlookup"
}
},
{
"type": "field",
"value": null,
"field": {
"length": 5,
"field_label": "File Upload 1",
"required": false,
"read_only": false,
"data_type": "fileupload",
"allow_multiple_upload": true
}
}
],
"buttons": [
{
"name": "Done",
"prop_name": "outlineprimary"
}
],
"width": "670px",
"title": "Screen 1"
}
}
}
]
}2. Input JSON - Decision
This section explains the details section for the decision state. Common fields are covered in the Input JSON section.
- path_detailsJSON array, mandatory
Contains the details related to decision paths. Each path defines filter conditions and routing logic. Required when type is decision.
- name string, mandatory
The display name of the decision path.
- defaultBoolean, mandatory
Specify whether this is the default path when no other conditions are matched. Only one path should have this set to true. Defaults to false.
- filter_conditionsJSON object, mandatory
Specify the conditions used to evaluate whether this path should be followed. This field is required for non-default paths and must be null for the default path.
- pattern string, optional
Specify the logical pattern used to combine multiple criteria groupings by referencing their sequence_number values. Supported formats include (1and2), (1or2), ((1and2)or3), and similar nested expressions. Specify this as empty when only one criteria grouping exists as no logical combination is required.
- criteria_groupingsJSON array, mandatory
Array of criteria groupings that define the evaluation logic. Each grouping contains conditions to be evaluated.
- type string, mandatory
The source for the criteria evaluation .
Possible values:
current_record - Criteria evaluated against the current record.
get_record - Criteria evaluated based on whether the Get Records response contains data or not.
kiosk_fields - Criteria evaluated against the screen fields or action fields from Kiosk.
- value string, optional
Specify the placeholder token used to evaluate the selected source.
Possible values:
${NOTEMPTY}- Indicates the source has data to evaluate.
${EMPTY}- Indicates the source has no data to evaluate. - sequence_numberinteger, mandatory
The order in which this criteria grouping is evaluated. Starts from 1.
- criteriaJSON object, optional
Specify the field-level comparison to evaluate for the criteria grouping. Include this object when defining a field-level comparison while creating a Decision state.
- fieldJSON object, mandatory
The field to be evaluated in this criteria.
- api_name string, optional
Specify the API name of the field.
- id string, mandatory
Specify the unique identifier of the field.
- comparator string, mandatory
Specify the comparison operator to apply.
Possible values:
equal, not_equal, greater_than, less_than, greater_equal, less_equal, contains, does_not_contain, between, not_between.
- group_operator string, optional
The logical operator combining multiple conditions in a group. Possible values: and, or. Required when criteria is a group containing multiple conditions.
- groupJSON array, conditional
Array of condition objects to be combined with the group_operator. Required when criteria contains multiple conditions grouped together.
- typestring, optional
Specify the type of comparison value.
- valuestring/JSON array/Boolean, optional
Specify the value to compare against. The format of this field depends on the value of type.
If type is value, specify a static value. For Boolean fields, this can be true or false.
If type is field, specify a JSON array containing the id and api_name of the field to compare against.
Refer the Get Fields API of the respective source type's(get_record or current_record) module for api_name and id
Sample Input - Decision
Copied{
"states": [
{
"name": "DecisionNew",
"from_transition": {
"id": "5039614000000890201"
},
"type": "decision",
"details": {
"path_details": [
{
"name": "PathNew1",
"default": false,
"filter_conditions": {
"pattern": "",
"criteria_groupings": [
{
"type": "current_record",
"value": "${NOTEMPTY}",
"criteria": {
"field": {
"api_name": "Lead_Status",
"id": "5039614000000000575",
"field_label": "Lead Status",
"data_type": "picklist"
},
"comparator": "equal",
"value": "Contacted",
"type": "value"
},
"sequence_number": 1
}
]
}
},
{
"name": "Path 2",
"default": false,
"filter_conditions": {
"pattern": "",
"criteria_groupings": [
{
"type": "current_record",
"value": "${NOTEMPTY}",
"criteria": {
"field": {
"api_name": "Lead_Status",
"id": "5039614000000000575",
"field_label": "Lead Status",
"data_type": "picklist"
},
"comparator": "not_equal",
"value": "Contacted",
"type": "value"
},
"sequence_number": 1
}
]
}
},
{
"name": "Default",
"filter_conditions": null,
"default": true
}
]
}
}
]
}3. Input JSON - Get Records
This section explains the details section for the get_records state. Common fields are covered in the Input JSON section.
- get_recordJSON object, mandatory
Contains the reference information for the records to be retrieved. Refer to the Kiosk Get Records API for details about the get_records element. To create a get_records element that defines how records are fetched from a module, including the criteria, selection behavior, and sorting, refer to the Create Kiosk Get Records API.
- id string, mandatory
The unique identifier of the get_records component.
- name string, optional
The display name of the get_records component.
Sample Input - Get Records
Copied{
"states": [
{
"from_transition": {
"id": "5039614000000869512"
},
"name": "GetRecordsUpdate",
"type": "get_records",
"details": {
"get_record": {
"id": "5039614000000965725",
"name": "GetRecordsUpdate"
}
}
}
]
}4.1 Input JSON - Action (Assign Owner)
This section explains the details section for the assign_owner action state. Common fields are covered in the Input JSON section.
- typestring, mandatory
The type of action to perform. Must be set to assign_owner for owner assignment actions.
- assign_ownerJSON object, optional
Configuration for assigning ownership of records based on specified criteria. Required when type is assign_owner.
- moduleJSON object, optional
Specify the api_name of the module to which the ownership assignment applies. For the list of supported modules and their API names, refer to the Get Modules API.
- assign_toJSON array, mandatory
Specify how the new owner should be assigned.
- typestring, mandatory
Specify the method to use for assigning ownership.
Possible values:
user - Assigns the record to a specific user.
role - Assigns the record to users with a particular role. Users are assigned in a round-robin pattern.
criteria - Assigns the record based on specified conditions. Refer the criteria section in Decision state for details about the input structure.
merge_field - Assigns the record using a user field referenced from a previous state.
- resourceJSON object, mandatory
Specify the resource the record is being assigned to. If type is user, specify the user's unique identifier and name, refer to the Get Users API and for a role type, specify the role's ID and name, refer to the Get Roles API.
- idstring, mandatory
The unique identifier of the user/role being assigned as the owner.
- namestring, mandatory
The name of the user/role being assigned as the owner.
- related_recordsJSON array, optional
Specifies the API name of the related list whose records should be transferred to the new owner.
Modules supported:Tasks, Calls, Meetings. Refer Get Module API for API name and ID of the related modules.
- api_namestring, mandatory
The API name of the related module.
- notifyBoolean, optional
Specify whether the newly assigned owner receives an email notification when ownership is transferred.
Possible values:
true - Sends an email notification to the newly assigned owner. This is the default value.
false - No notification is sent.
- user_availability_based_on string, optional
Specify the conditions to determine whether a user is available to be assigned ownership.
Possible values:
online_status - Considers only users who are currently online for the assignment.
- execute_for_recordJSON object, mandatory
Specify the record context (GetRecord or CurrentRecord) on which the action should be performed. Refer Input JSON - Notes for name and id.
- name string, mandatory
Specify the display name indicating which record context is used.
- id string, mandatory
Specify the unique identifier of the record context.
Sample Input - Assign owner
Copied{
"states": [
{
"name": "Assign Owner",
"from_transition": {
"id": "5039614000001063165"
},
"type": "action",
"details": {
"type": "assign_owner",
"assign_owner": {
"module": {
"api_name": "Contacts"
},
"assign_to": [
{
"resource": {
"id": "5039614000000709001",
"name": "Patricia Boyle"
},
"type": "user"
}
],
"notify": true,
"user_availability_based_on": null
},
"execute_for_record": {
"name": "GetRecords 1",
"id": "5039614000001065834"
}
}
}
]
}Sample Input - Assign Owner(Criteria)
Copied{
"states": [
{
"name": "Action 1",
"type": "action",
"details": {
"type": "assign_owner",
"assign_owner": {
"module": {
"api_name": "Leads"
},
"assign_to": [
{
"type": "criteria",
"details": {
"criteria": {
"field": {
"api_name": "first_name",
"id": "5039614000000000185",
"field_label": "First Name",
"data_type": "text"
},
"comparator": "contains",
"value": "Patricia",
"type": "value"
}
}
}
],
"related_records": [],
"notify": false,
"apply_assignment_threshold": true,
"user_availability_based_on": null
},
"execute_for_record": {
"name": "GetRecords 1",
"id": "5039614000001191090"
}
}
}
]
}4.2 Input JSON - Action (Add Tags)
This section explains the details section for the add_tags action state. Common fields are covered in the Input JSON section.
- typestring, mandatory
The type of action to perform. Must be set to add_tags for tag assignment actions.
- add_tagsJSON object, mandatory
Specify the details of one or more tags to associate with the record. If a specified tag does not already exist, it is created and then associated with the record.
- moduleJSON object, optional
The CRM module from which the tags will be removed. To update, refer the Get Modules API for details on module details. Specify the id of the module.
- tagsJSON array, mandatory
Specify the array of tags to associate with the record. You must specify at least one tag, and you can associate a maximum of ten tags in a single action. Refer to the Tags API for information about the available tag properties.
- idstring, mandatory
Specify the unique identifier of the tag.
- name string, optional
Specify the display name of the tag.
- over_writeBoolean, optional
Specify whether the new tags should replace the existing tags on the selected records. If set to true, the existing tags are replaced with the new tags. If set to false, the new tags are added to the existing tags. The default value is false.
- execute_for_recordJSON object, mandatory
Specify the record context (GetRecord or CurrentRecord) on which the action should be performed. Refer Input JSON - Notes for name and id.
- name string, mandatory
The display name indicating which record context is used.
- id string, mandatory
The unique identifier of the record context.
Sample Input - Add Tags
Copied{
"states": [
{
"name": "TESTADDTAGS",
"from_transition": {
"id": "5039614000001020168"
},
"type": "action",
"details": {
"type": "add_tags",
"add_tags": {
"over_write": true,
"tags": [
{
"id": "5039614000000727231"
}
],
"module": {
"id": "5039614000000000125",
"api_name": "Leads"
}
},
"execute_for_record": {
"name": "GetRecords 1",
"id": "5039614000001020089"
}
}
}
]
}4.3 Input JSON - Action (Remove Tags)
This section explains the details section for the remove_tags action state. Common fields are covered in the Input JSON section.
- typestring, mandatory
The type of action to perform. Must be set to remove_tags for tag removal actions.
- remove_tagsJSON object, optional
Specify the details about removing the associated tags in the record.
- tagsJSON array, optional
Specify an array of tag objects, each containing the ID or name of the tag to be removed. Refer to the Get Tags API.
- id string, mandatory
Specify the ID of the tag to be removed from the record.
- name string, mandatory
Specify the display name of the tag to remove.
- execute_for_recordJSON object, mandatory
Specify the record context (GetRecord or CurrentRecord) on which the action should be performed. Refer Input JSON - Notes for name and id.
- name string, mandatory
The display nameof the record context.
- id string, mandatory
The unique identifier of the record context.
Sample Input - Remove Tags
Copied{
"states": [
{
"name": "ActionRemove2",
"from_transition": {
"id": "5039614000000913316"
},
"type": "action",
"details": {
"type": "remove_tags",
"remove_tags": {
"tags": [
{
"id": "5039614000000727231",
"name": "LeadNew"
}
]
},
"execute_for_record": {
"name": "GetRecordsLead",
"id": "5039614000000886480"
}
}
}
]
}4.4 Input JSON - Action (Create record via user input)
This section explains the details section for the quick_create_record action state. Use this action to create a record in a CRM module by collecting values through user input, with field values prefilled using merge fields from previous states. Common fields are covered in the Input JSON section.
- typestring, mandatory
The type of action to perform. Must be set to quick_create_record for creating a record via user input.
- quick_create_recordJSON object, mandatory
Specify the details for creating a record via user input. Required when type is quick_create_record.
- moduleJSON object, mandatory
Specify the CRM module in which the new record will be created. Refer Get Modules API to get the module API names and IDs.
- id string, mandatory
Specify the module ID.
- api_namestring, optional
Specify the module API name.
- layoutJSON object mandatory
Specify the layout for the new record should be created. See Get Layouts API for details.
- idstring, mandatory
Specify the ID of layout.
- namestring, optional
Specify the display name of the layout .
- field_mappingsJSON array, mandatory
Array of field mappings that define which fields to populate and their values. At least one mapping is required.
- fieldJSON object, mandatory
Specify the field to be populated while creating record with its values.
- idstring, mandatory
Specify the ID of the field.
- api_namestring, optional
Specify the API name of the field.
- typestring, mandatory
Specify the type of value to assign.
Possible values:
static - A literal string or object directly assigned to the field.
merge_field - A merge field expression evaluated at runtime.
- valuestring or object, mandatory
Specify the value to assign to the field. Format depends on the field data type and type specified.
- For static type: Can be a string literal, an object with properties, or a simple value.
- For merge_field type: Must be a merge field expression string.
Sample Input - Create Record(Via User Input)
Copied{
"states": [
{
"name": "Action 3",
"from_transition": {
"id": "1019138000016172571"
},
"type": "action",
"details": {
"type": "quick_create_record",
"quick_create_record": {
"field_mappings": [
{
"field": {
"id": "1019138000000002489",
"api_name": "First_Name"
},
"type": "merge_field",
"value": "${!Lead_Update2.CurrentRecord.Name}"
},
{
"field": {
"id": "1019138000000002491",
"api_name": "Last_Name"
},
"type": "static",
"value": "LoanMember"
},
{
"field": {
"id": "1019138000000002497",
"api_name": "Email"
},
"type": "merge_field",
"value": "${!Lead_Update2.CurrentRecord.Email}"
},
{
"field": {
"id": "1019138000000002503",
"api_name": "Phone"
},
"type": "static",
"value": "7235910056"
}
],
"layout": {
"id": "1019138000000091033",
"name": "Standard"
},
"module": {
"id": "1019138000000002179",
"api_name": "Contacts"
}
}
}
}
]
}4.5 Input JSON - Action (Create Record - Predefined Configuration)
Creates a new record automatically during Kiosk execution using the field values configured while setting up the action. No user input is required during execution. This section explains the details section for the create_record action state. Common fields are covered in the Input JSON section.
- typestring, mandatory
Action type to perform. Set to create_record for record creation actions.
- create_recordJSON object mandatory
Specify the details for creating a record. Required when type is create_record.
- moduleJSON object mandatory
Specify the CRM module in which the new record will be created. Refer Get Modules API to get the module API names and IDs.
- idstring, mandatory
Specify the module ID.
- api_namestring, optional
Specify the module API name.
- layoutJSON object, mandatory
Specify the layout for the new record. See Get Layouts API for details.
- idstring, mandatory
Specify the ID of layout.
- namestring, optional
Specify the display name of the layout .
- field_mappingsJSON array, mandatory
Array of field mappings that define which fields to populate and their values. At least one mapping is required.
- fieldJSON object, mandatory
Specify the field to be populated while creating record with its values.
- idstring, mandatory
Specify the ID of the field.
- api_namestring, optional
Specify the API name of the field.
- typestring, mandatory
Specify the type of value to assign.
Possible values:
static - A literal string or object directly assigned to the field.
merge_field - A merge field expression evaluated at runtime.
- valuestring or object, mandatory
Specify the value to assign to the field. Format depends on the field data type and type specified.
- For static type: Can be a string literal, an object with properties, or a simple value.
- For merge_field type: Must be a merge field expression string.
Sample Input - Create Record(Predefined Configuration)
Copied{
"states": [
{
"name": "Create Record Action",
"from_transition": {
"id": "5039614000001065789"
},
"type": "action",
"details": {
"type": "create_record",
"create_record": {
"layout": {
"id": "5039614000000095059",
"name": "Standard"
},
"module": {
"id": "5039614000000000129",
"api_name": "Contacts"
},
"field_mappings": [
{
"field": {
"id": "5039614000000000437",
"api_name": "Owner"
},
"type": "static",
"value": {
"name": "${CURRENTUSER}"
}
},
{
"field": {
"id": "5039614000000000443",
"api_name": "Last_Name"
},
"type": "static",
"value": "Boyle"
},
{
"field": {
"id": "5039614000000000441",
"api_name": "First_Name"
},
"type": "merge_field",
"value": "${!Update_Kiosk_Test2.CurrentRecord.First_Name}"
}
]
}
}
}
]
}4.6 Input JSON - Action (Convert)
This section explains the details section for the convert action state. Common fields are covered in the Input JSON section.
- type string, mandatory
Specifies the type of action to perform. Must be set to convert for record conversion actions, such as converting Leads to Contacts, Accounts, or Deals, converting Quotes to Sales Orders or Invoices, and converting Sales Orders to Invoices.
- convertJSON object, mandatory
Configuration for converting records from one type to another with associated field mappings, tag handling, and relationship settings.
- add_to_existing_contactBoolean, mandatory
Specify whether to prompt the user to select an existing Contact. If set to true, the user selects an existing Contact. If set to false, a new Contact is created. The default value is false.
- add_to_existing_accountBoolean, mandatory
Specify whether the converted record should be linked to an existing Account. If set to true, the user is prompted to select an existing Account. If set to false, a new Account is created. The default value is false.
- create_dealBoolean, optional
Specify whether a Deal should be created during the conversion process. If set to true, a new Deal is created using the specified field mappings. If set to false, no Deal is created. The default value is false.
- move_attachment_toJSON object, optional
Specify the target module to which attachments from the original record should be moved during Lead conversion. Provide the target module's id and api_name. Supported target modules are Contacts, Accounts, and Deals. The Deals module can be specified only when create_deal is set to true. If this object is not specified, attachments are moved to the Contacts module by default. This configuration is applicable only to Lead conversion and is not supported for other record conversions, such as Quote to Sales Order or Invoice, or Sales Order to Invoice.
- carry_tagsJSON array, optional
Specify the array of tags to be carried over to the converted records during conversion. Each object in the array must specify the tag's id and api_name. Refer to the Get Tags API to retrieve the available tags.
- field_mappingsJSON array mandatory
Array of field mappings that define which fields to populate and their values. At least one mapping is required.
- fieldJSON object mandatory
Specify the field to be populated while creating record with its values.
- idstring, mandatory
Specify the ID of the field.
- api_namestring, optional
Specify the API name of the field.
- typestring, mandatory
Specify the type of value to assign.
Possible values:
static - A literal string or object directly assigned to the field.
merge_field - A merge field expression evaluated at runtime.
- valuestring or object, mandatory
Specify the value to assign to the field. Format depends on the field data type and type specified.
- For static type: Can be a string literal, an object with properties, or a simple value.
- For merge_field type: Must be a merge field expression string.
- contact_role string, optional
The unique identifier of the Contact role to be assigned to the converted Contact record during the conversion process. Refer Get Contact Roles API for the contact role ID.
- execute_for_recordJSON object, mandatory
Specify the record context (GetRecord or CurrentRecord) on which the action should be performed. Refer Input JSON - Notes for name and id.
- name string, mandatory
The display name of the record context.
- id string, mandatory
The unique identifier of the record context.
Sample Input -Convert
Copied{
"states": [
{
"name": "Convert Record",
"from_transition": {
"id": "5039614000001063176"
},
"type":"action",
"details": {
"type": "convert",
"convert": {
"add_to_existing_contact": false,
"add_to_existing_account": true,
"move_attachment_to": {
"id": "5039614000000000127",
"api_name": "Accounts"
},
"carry_tags": [
{
"id": "5039614000000000129",
"api_name": "Contacts"
},
{
"id": "5039614000000000127",
"api_name": "Accounts"
}
],
"field_mappings": [
{
"field": {
"id": "5039614000000000517",
"api_name": "Amount"
},
"type": "static",
"value": "50000"
},
{
"field": {
"id": "5039614000000000519",
"api_name": "Deal_Name"
},
"type": "static",
"value": "Car Deal"
},
{
"field": {
"id": "5039614000000000521",
"api_name": "Closing_Date"
},
"type": "static",
"value": "31/05/2026"
},
{
"field": {
"id": "5039614000000000525",
"api_name": "Stage"
},
"type": "static",
"value": "Qualification"
}
],
"create_deal": true,
"contact_role": "5039614000000007178"
},
"execute_for_record": {
"name": "GetRecords 1",
"id": "5039614000001065834"
}
}
}
]
}4.7 Input JSON - Action (Open Record)
This section explains the details section for the open_record action state. Common fields are covered in the Input JSON section.
- typeJSON string mandatory
The type of action to perform. Must be set to open_record for record opening actions.
- open_recordJSON object mandatory
Configuration for opening a record in detail view.
- nameJSON string mandatory
The display name of the open record action.
- execute_for_recordJSON object mandatory
Specify the record context (GetRecord or CurrentRecord) on which the action should be performed. Refer Input JSON - Notes for name and id.
- nameJSON string optional
The name of the record context.
- idJSON string mandatory
The unique identifier of the record context.
Sample Input - Open Record
Copied{
"states": [
{
"name": "OpenRecord",
"from_transition": {
"id": "5039614000000913316"
},
"type": "action",
"details": {
"type": "open_record",
"open_record": {
"name": "OpenRecord",
"id": "5039614000000913070"
},
"execute_for_record": {
"name": "Current record",
"id": "5039614000000913070"
}
}
}
]
}4.8 Input JSON - Action (Add Meeting)
This section explains the details section for the add_meeting action state. Common fields are covered in the Input JSON section.
- typestring, mandatory
The type of action to perform. Must be set to "add_meeting" for meeting actions.
- host_unavailableJSON object, optional
Configuration for handling scenarios when the configured meeting host is unavailable.
- assign_record_owner_as_hostBoolean, optional
If set to true, the record owner is assigned as the meeting host when the configured primary host is unavailable. The default value is false.
- assign_taskJSON object, optional
Specifies the task to execute when the configured primary host is unavailable. Specify the task name and id. Refer to the Get Kiosk States API to retrieve the available task IDs.
- nameString, mandatory
Specify the display name of the task.
- idString, mandatory
Specify the unique ID of the task.
- add_meetingJSON object, mandatory
Configuration for adding or scheduling meetings with specified field values, duration, and host settings.
- meeting_durationJSON object, optional
Configuration for the duration of the meeting.
- unitstring, mandatory
Specify the numeric value representing the meeting duration.
- periodstring, mandatory
Specify the time unit for the duration.
Possible values:
- minutes
- hours
- days
- layoutJSON object, mandatory
Specify the details about the layout of the Events module in which the meeting should be added.
- idstring, mandatory
The unique identifier of the layout.
- namestring, optional
The display name of the layout.
- field_mappingsJSON array, mandatory
Array of field mappings that define which fields to populate and their values. At least one mapping is required.
- fieldJSON object, mandatory
Specify the field details for the meeting.
- idstring, mandatory
The unique identifier of the field.
- api_namestring, optional
The API name of the field.
- typestring, mandatory
The type of value to assign.
Possible values:
- static – A literal string or object directly assigned to the field.
- execution_time – A time-based value calculated relative to the workflow execution.
- merge_field – A merge field expression evaluated at runtime.
- valuestring or object, mandatory
The value to assign to the field. Format depends on the field data type and type specified.
- For static type: Can be a string literal, an object with properties, or a simple value.
- For execution_time type, an object specifying the following:
- period - Specify the meeting period in either minutes or hours.
- unit - Specify the number of minutes or hours the meeting will go on.
- time - Specify the time in "HH:MM" format. This field is required when the time is not derived from the transition trigger time.
- For merge_field type: A merge field expression string.
- execute_for_recordJSON object, optional
Specify the record context (GetRecord or CurrentRecord) on which the action should be performed. Refer Input JSON - Notes for name and id.
- namestring, optional
The display name of the record context.
- idstring, mandatory
The unique identifier of the record context.
Sample Input - Add meeting
Copied{
"states": [
{
"name": "Add meeting Action",
"from_transition": {
"id": "5039614000001063187"
},
"type": "action",
"details": {
"type": "add_meeting",
"host_unavailable": {
"assign_record_owner_as_host": true
},
"add_meeting": {
"meeting_duration": {
"unit": "10",
"period": "minutes"
},
"layout": {
"id": "5039614000000095045",
"name": "Standard"
},
"field_mappings": [
{
"field": {
"id": "5039614000000000249",
"api_name": "Event_Title"
},
"type": "static",
"value": "Meeting"
},
{
"field": {
"id": "5039614000000723580",
"api_name": "Meeting_Venue__s"
},
"type": "static",
"value": "Client location"
},
{
"field": {
"id": "5039614000000101001",
"api_name": "Start_DateTime"
},
"type": "execution_time",
"value": {
"period": "days",
"unit": "3",
"sign": "plus",
"time": "00:00",
"trigger_field": "${CURRENTTIME}"
}
},
{
"field": {
"id": "5039614000000057003",
"api_name": "All_day"
},
"type": "static",
"value": "false"
},
{
"field": {
"id": "5039614000000000247",
"api_name": "Owner"
},
"type": "static",
"value": {
"name": "${CURRENTUSER}"
}
}
]
},
"execute_for_record": {
"name": "Current record",
"id": "5039614000001065865"
}
}
}
]
}4.9 Input JSON - Action (Schedule Call)
This section explains the details section for the schedule_call action state. Common fields are covered in the Input JSON section.
- type string, mandatory
The type of action to perform. Must be set to schedule_call for call scheduling actions.
- schedule_callJSON object, mandatory
Configuration for scheduling calls with specified field values and call details. Required when type is schedule_call.
- layoutJSON object, mandatory
The layout to be used for the call record. Specify the layout of Calls Module. Refer the Get Layouts API for more details.
- id string, optional
The unique identifier of the layout.
- namestring, optional
The display name of the layout.
- field_mappingsJSON array, mandatory
Array of field mappings that define which fields are populated and their values. At least one mapping is required.
- fieldJSON object, mandatory
The field to be populated.
- id string, optional
The unique identifier of the field.
- api_name string, optional
The API name of the field.
- type string, mandatory
The type of value to assign. Determines how the value is interpreted.
Possible values:
static - The value is a literal string or object directly assigned to the field.
merge_field - The value is a merge field expression evaluated at runtime.
execution_time - The value is calculated based on a time offset from the current execution time or a specified trigger field.
- value string or Object, mandatory
The value to assign to the field. Format depends on the field data type and type specified.
For static type: Can be a string literal, an objec, or a simple value.
For merge_field type: Must be a merge field expression string.
For execution_time type: Must be an object containing:
- period string, optional
Specify the meeting period in either minutes or hours.
Possible values:
days
hours
minutes - unit integer, optional
Specify the number of minutes or hours the meeting will go on.
- sign string, optional
Specify the direction of the offset.
Possible values:
plus
minus - time string, optional
The specific time in HH:MM format.
- trigger_field string, optional
The field to use as the base for time calculation.
- execute_for_recordJSON object, mandatory
Specify the record context (GetRecord or CurrentRecord) on which the action should be performed. Refer Input JSON - Notes for name and id.
- name string, mandatory
The display name of the record context.
- id string, mandatory
The unique identifier of the record context.
Sample Input - Schedule Call
Copied{
"states": [
{
"name": "Schedule call Action",
"from_transition": {
"id": "5039614000001063165"
},
"type": "action",
"details": {
"type": "schedule_call",
"schedule_call": {
"layout": {
"id": "5039614000000095033",
"name": "Standard"
},
"field_mappings": [
{
"field": {
"id": "5039614000000017021",
"api_name": "Call_Type"
},
"type": "static",
"value": "Outbound"
},
{
"field": {
"id": "5039614000000017029",
"api_name": "Call_Start_Time"
},
"type": "execution_time",
"value": {
"period": "days",
"unit": "2",
"sign": "plus",
"time": "00:00",
"trigger_field": "${CURRENTTIME}"
}
},
{
"field": {
"id": "5039614000000017017",
"api_name": "Owner"
},
"type": "static",
"value": {
"name": "${CURRENTUSER}"
}
},
{
"field": {
"id": "5039614000000017023",
"api_name": "Call_Purpose"
},
"type": "static",
"value": "Prospecting"
},
{
"field": {
"id": "5039614000000621035",
"api_name": "Call_Agenda"
},
"type": "merge_field",
"value": "${!Create_Kiosk_States.CurrentRecord.Description}"
}
]
},
"execute_for_record": {
"name": "Current record",
"id": "5039614000001065865"
}
}
}
]
}4.10 Input JSON - Action (Open Link)
This section explains the details section for the open_link action state. Common fields are covered in the Input JSON section.
- type string, mandatory
The type of action to perform. Must be set to open_link for opening external links.
- open_linkJSON object, mandatory
Configuration for opening external links with encoding and URL specifications.
- name string, mandatory
Specify a display name to be displayed for the Open Link action in the Kiosk.
- link string, mandatory
The URL or merge field expression that specifies the link to open. Can be a static URL or a merge field expression.
- encode string, mandatory
The character encoding to be applied to the link.
Possible values:
UTF-8 - Unicode Transformation Format with 8-bit encoding.
UTF-16 - Unicode Transformation Format with 16-bit encoding.
ISO-8859-1 - Latin-1 character encoding.
ISO-8859-9 - Turkish character encoding.
GB2312 - Simplified Chinese character encoding.
Big5 - Traditional Chinese character encoding.
Shift_JIS - Japanese character encoding.
Sample Input - OpenLink
Copied{
"states": [
{
"name": "OpenLinkCreate",
"from_transition": {
"id": "5039614000001020168"
},
"type": "action",
"details": {
"type": "open_link",
"open_link": {
"name": "OpenLinkCreate",
"encode": "UTF-8",
"link": "${!Test_Kiosk1.CurrentRecord.Website}"
}
}
}
]
}4.11 Input JSON - Action (Field Updates)
This section explains the details section for the field updates action state. Common fields are covered in the Input JSON section.
- type string, mandatory
The type of action to perform.
- field_updatesJSON object, mandatory
Specify the details about the field update action. Refer Get Field Update API for details.
- id string, mandatory
The unique identifier of the field updates configuration.
- name string, optional
The display name of the field updates action.
- execute_for_recordJSON object, mandatory
Specify the record context (GetRecord or CurrentRecord) on which the action should be performed. Refer Input JSON - Notes for name and id.
- name string, optional
The display name of the record context used.
- id string, mandatory
The unique identifier of the record context.
Note
To create Field update action, refer to the Create Field Update Action API . Set the feature_type as kiosk, and in related_module, provide the api_name and id of the Kiosk. Refer Get Kiosks API for these details.
Sample Input - Field Update
Copied{
"states": [
{
"name": "FieldUpdateAction",
"from_transition": {
"id": "5039614000000890164"
},
"type": "action",
"details": {
"type": "field_updates",
"field_updates": {
"id": "5039614000000890266",
"name": "FieldUpdateAction"
},
"execute_for_record": {
"name": "Current record",
"id": "5039614000000869451"
}
}
}
]
}4.12 Input JSON - Action (Email Notifications)
This section explains the details section for the email_notifications action state. Common fields are covered in the Input JSON section .
- type string, mandatory
The type of action to perform. Must be set to email_notifications for email notification actions.
- email_notificationsJSON object, mandatory
Configuration for sending email notifications with specified template and recipient settings. Refer Get Email Notifications API for id and name.
- id string, mandatory
The unique identifier of the email notification configuration.
- name string, optional
The display name of the email notification action.
- execute_for_recordJSON object, mandatory
Specify the record context (GetRecord or CurrentRecord) on which the action should be performed. Refer Input JSON - Notes for name and id.
- name string, optional
The display name of the record context.
- id string, mandatory
The unique identifier of the record context.
Note
To create email notification , refer to the Create Email Notification API . Set the feature_type as kiosk, and in related_module, provide the api_name and id of the Kiosk. Refer Get Kiosks API for these details.
Sample Input - Email Notification
Copied{
"states": [
{
"name": "Email Notifcation",
"from_transition": {
"id": "5039614000000983146"
},
"type": "action",
"details": {
"type": "email_notifications",
"email_notifications": {
"id": "5039614000000983214",
"name": "Email Notifcation"
},
"execute_for_record": {
"name": "GetRecordsLead",
"id": "5039614000000913119"
}
}
}
]
}4.13 Input JSON - Action (Webhook)
This section explains the details section for the webhooks action state. Common fields are covered in the Input JSON section .
- type string, mandatory
The type of action to perform. Must be set to webhooks for webhook actions.
- webhooksJSON object, mandatory
Specify the details regarding the Webhook action which invokes a webhook when executed. Refer Get Webhook API for details.
- id string, mandatory
Specify the ID of the webhook action to be associated.
- name string, optional
Specify the name of the webhook action to be associated.
- execute_for_recordJSON object, mandatory
Specify the record context (GetRecord or CurrentRecord) on which the action should be performed. Refer Input JSON - Notes for name and id.
- name string, optional
The display name of the record context.
- id string, mandatory
The unique identifier of the record context.
Note
To create webhook , refer to the Create Webhook API. Set the feature_type as kiosk, and in related_module, provide the api_name and id of the Kiosk. Refer Get Kiosks API for these details.
Sample Input - Webhook
Copied{
"states": [
{
"name": "Webhook Action",
"from_transition": {
"id": "5039614000000983146"
},
"type": "action",
"details": {
"type": "webhooks",
"webhooks": {
"id": "5039614000000983227",
"name": "Webhook Action"
},
"execute_for_record": {
"name": "GetRecords 7",
"id": "5039614000000983158"
}
}
}
]
}4.14 Input JSON - Action (Add Task)
This section explains the details section for the add task action state. Common fields are covered in the Input JSON section .
- type string, mandatory
The type of action to perform. Must be set to tasks for add task actions.
- tasksJSON object, mandatory
Specify the details regarding the task action which invokes a task when executed. Refer Get Automation Tasks API for more details.
- id string, mandatory
Specify the ID of the task action to be associated.
- name string, optional
Specify the name of the task action to be associated.
- execute_for_recordJSON object, mandatory
Specify the record context (GetRecord or CurrentRecord) on which the action should be performed. Refer Input JSON - Notes for name and id.
- name string, optional
The display name indicating the record context.
- id string, mandatory
The unique identifier of the record context.
Note
For associated actions, state-related details can be created through the Kiosk. To create a task, refer to the Create Automation Task API. Set the feature_type as kiosk, and in related_module, provide the api_name and id of the Kiosk. Refer Get Kiosks API for these details.
Sample Input - Add Task
Copied{
"states": [
{
"name": "Add Task",
"from_transition": {
"id": "5039614000000983146"
},
"type": "action",
"details": {
"type": "tasks",
"tasks": {
"id": "5039614000000981033",
"name": "Kiosk Task"
},
"execute_for_record": {
"name": "GetRecordsLead",
"id": "5039614000000913119"
}
}
}
]
}Possible Errors
- INVALID_DATA HTTP 400
From transition id is invalid
Resolution: Verify that the from_transition_id in the request URL is a valid and existing transition ID. You can retrieve a list of valid transition IDs using the GET Kiosk States API.No such Kiosk exists with the provided ID.
Resolution: Verify that the kiosk_ID in the request URL is a valid and existing Kiosk identifier. You can retrieve a list of valid Kiosk IDs using the GET Kiosks API.Invalid Tag.
Resolution: Verify that the tag name provided in the request body is valid. Refer Get Tags APIInvalid data.
Resolution: Verify that the value of the action name in the request body is valid. Refer to the Input JSON section of the associated action to find its name.
- AMBIGUITY_DURING_PROCESSINGHTTP 400
Default path not supported the filter conditions.
Resolution: Remove the filter_conditions object from the default path. Only non-default paths can define filter conditions. - NOT_ALLOWED HTTP 400
Active kiosk does not allow perform given operation.
Resolution: States can be created for a Kiosk which is in draft status.We cant provide the default path start or between of paths.
Resolution: Ensure that only one path in the path_details array has default set to true.The record is associated with another action in following states and cannot be converted.
Resolution: An action state can be linked to only one state within a single Kiosk and cannot be reused across multiple states or Kiosks. Ensure that the action specified in the request is not already associated with another state in the same Kiosk. If it is, create a new action state instead of reusing the existing one. You can retrieve the list of states associated with a Kiosk using the Get Kiosk States API.- The given action ID's related module is not the current Kiosk.
Resolution: Ensure that the associated action's ID provided in the request body belongs to the current Kiosk. To verify this, call the GET API of the automation action, which lists the actions associated with the Kiosk. Only a single-record Get Records action is supported for an action state.
Resolution: When configuring an action state with a get_records action, ensure that the get_records action fetches only a single record.
- DUPLICATE_DATA HTTP 400
The state name provided in the request is already used by another state in the same Kiosk.
Resolution: State names must be unique within a Kiosk. Ensure that the value of name in the request body is not already assigned to an existing state. You can retrieve the list of existing state names using the Get Kiosk States API and provide a unique name in the request. - DEPENDENT_FIELD_MISSING HTTP 400
The action-specific details corresponding to the specified type are missing in the request.
Resolution: When the state type is set to action, the request must include the corresponding action configuration object (for example, tasks for the add_tasks action, assign_owner for the assign_owner action, and so on). Ensure that the action object matching the value of details.type is provided in the request body. Refer to the Input JSON section for the required keys corresponding to each action type.Execute for record missing for action state.
Resolution: When the state type is set to action, the request must include the execute_for_record key with a valid record ID as its value. This indicates the specific record for which the action will be executed.Length not found.
Resolution: When the state type is set to screen, the request must include the length key with a valid value. This specifies the length of the field's value in the screen.Action Type is missing.
Resolution: When the state type is set to action, the request must include the action_type key with a valid value. This specifies the type of action to be performed. Refer to the Input JSON section for the list of supported action types and their corresponding required keys.
- MANDATORY_NOT_FOUNDHTTP 400
Required field not found.
Resolution: Refer to the Input JSON section. For mandatory fields in each section.Details info is missing.
Resolution: Refer to the Input JSON section and provide all mandatory child objects applicable to the specified type.
- OAUTH_SCOPE_MISMATCHHTTP 401
Invalid oauth scope to access this URL.
Resolution: Create a new token with the required scopes. Refer to the scope section. - AUTHENTICATION_FAILUREHTTP 401
Authentication Failed.
Resolution: Pass the access token in the request header of the API call. - INVALID_URL_PATTERNHTTP 404
Please check if the URL trying to access is a correct one.
Resolution: Refer Request Details section, and pass the proper URL.
Sample Response
Copied{
"states": [
{
"code": "SUCCESS",
"details": {
"id": "5039614000000965565"
},
"message": "Kiosk state created successfully",
"status": "success"
}
]
}