Update a Kiosk State
Purpose
To update a particular state in a specific Kiosk in Zoho CRM using the Kiosk ID and state ID. Each state represents a screen, action, decision, or GetRecords.
A Kiosk must be in the draft status to update a state. This operation is not supported when the Kiosk is in the published or inactive status.
You can update only one state per request.
The state must already exist before it can be updated. To create a new state, use the Create a Kiosk State API. Once the Kiosk is fully configured, publish it and associate it with the required CRM component.
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
- PUT /settings/kiosks/{kiosk_ID}/states/{state_ID}
- {kiosk_ID} : The unique ID of the Kiosk for which to update state.
- {state_ID} : The unique ID of the state to update.
Request Details
Request URL
{api-domain}/crm/{version}/settings/kiosks/{kiosk_ID}/states/{state_ID}
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Scope
ZohoCRM.settings.kiosks.ALL
(or)
ZohoCRM.settings.kiosks.UPDATE
Sample Request
Copiedcurl "https://www.zohoapis.com/crm/v8/settings/kiosks/5039614000010849013/states/5039614000010965565"
-X PUT
-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, optional
Specifies the name of the state to be updated. The maximum length is 50 characters, and it must match the regex pattern [0-9a-zA-Z_\-\.\|\$\?\,\'\/\!\P{InBasicLatin}\s]+.
| 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, optional
Specify 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.
Note
For details about a specific state, retrieve the state ID using the Get Kiosk States API, and then use the Get a Kiosk State API to fetch the state details.
For associative actions, state-related details can only be updated through the Kiosk.
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, refer to the Input JSON - Current Record .
- 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.
1. Input JSON - Screen
This section explains the details section for the screen state. Common fields are covered in the Input JSON section. When updating a screen state, include all existing UI elements in the request body to retain them, along with any new elements you want to add.
- screen_detailsJSON object, optional
Specifies the details related to the screen state. The screen state can contain elements such as buttons, fields, and components.
- title string, optional
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, optional
Specify the type of UI element to display on the screen. You can add new UI elements of any supported type, but you cannot change the type of an existing UI element.
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, optional
Specify the value for the element. Typically null for field and get_records elements when creating or updating. For text elements, contains the display text with optional merge fields.
- fieldJSON object, optional
The configuration for form field elements. Required when type is field.
- id string, mandatory
The unique ID of the field. You cannot update the ID.
- field_label string, mandatory
Specify 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 - api_name string, optional
The unique API name assigned to this field. fopr existing Ui elements you will get API name from here.
- 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
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
Possible values:
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
Specify 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, optionalThe 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. Specify the api_name and id of the global picklist.
- _global_picklist_nameJSON object, optional
Display 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.
- api_name string, optional
The API name of the global picklist.
- pick_list_valuesJSON array, optional
Required when data_type is picklist or multiselectpicklist.
- id string, optional
The unique ID of the picklist option.
- 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
Specifies whether clicking a record opens its detail view. Required when type is get_records. The default value is true.
- buttonsJSON array, optional
The array of action buttons displayed on the screen. Each button object contains the following fields:
- prop_namestring, optional
The button style or variant 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.
- idstring, mandatory
The unique identifier for the button.
Sample Input - Screen
Copied{
"states": [
{
"name": "GetRecordsUpdate",
"details": {
"screen_details": {
"button_align": "right_to_left",
"elements": [
{
"type": "field",
"value": "HI hellow",
"field": {
"length": 255,
"field_label": "Test Field",
"required": false,
"read_only": false,
"value": "HI hellow",
"id": "5039614000001059010",
"data_type": "text",
"api_name": "Test_Field"
}
},
{
"type": "get_records",
"value": null,
"selected_fields": [
{
"api_name": "id",
"id": "5039614000000337001"
},
{
"api_name": "Owner",
"id": "5039614000000000553"
},
{
"api_name": "Company",
"id": "5039614000000000555"
},
{
"api_name": "First_Name",
"id": "5039614000000000557"
},
{
"api_name": "Mobile",
"id": "5039614000000000569"
}
],
"open_record": true,
"get_record": {
"name": "GetRecords 2",
"id": "5039614000001057897"
}
},
{
"type": "field",
"value": "${ProcessFlow2.5039614000001057561.5039614000000000613}",
"field": {
"length": 2000,
"field_label": "Multi-Line 1",
"required": false,
"read_only": true,
"_merge_field": "${!Update_Kiosk_Test1.CurrentRecord.Description}",
"value": "${ProcessFlow2.5039614000001057561.5039614000000000613}",
"id": "5039614000001059016",
"data_type": "textarea",
"api_name": "Multi_Line_1"
}
},
{
"type": "field",
"value": null,
"field": {
"length": 30,
"field_label": "Phone 2",
"required": true,
"read_only": false,
"id": "5039614000001059021",
"data_type": "phone",
"api_name": "Phone_2",
"tooltip": {
"value": "Phone number field",
"name": "info_icon"
}
}
},
{
"type": "field",
"value": null,
"field": {
"length": 8,
"field_label": "Number 2",
"required": false,
"read_only": false,
"_merge_field": "${!Update_Kiosk_Test1.CurrentRecord.No_of_Employees}",
"id": "5039614000001059025",
"data_type": "integer",
"api_name": "Number_2"
}
},
{
"type": "field",
"value": null,
"field": {
"_pick_list_type": "local",
"length": 16,
"currency": {
"rounding_option": "round_up",
"precision": 2
},
"decimal_place": 2,
"field_label": "Currency 2",
"required": false,
"read_only": false,
"id": "5039614000001059028",
"data_type": "currency",
"api_name": "Currency_2"
}
},
{
"type": "field",
"value": null,
"field": {
"length": 16,
"decimal_place": 2,
"field_label": "Decimal 4",
"required": false,
"read_only": false,
"id": "5039614000001059031",
"data_type": "double",
"number_separator": true,
"api_name": "Decimal_4"
}
},
{
"type": "field",
"value": null,
"field": {
"length": 5,
"field_label": "Percent 4",
"required": false,
"read_only": false,
"id": "5039614000001059034",
"data_type": "percent",
"api_name": "Percent_4"
}
},
{
"type": "field",
"value": null,
"field": {
"length": 450,
"field_label": "URL 2",
"required": false,
"read_only": false,
"id": "5039614000001059037",
"data_type": "website",
"api_name": "URL_2"
}
},
{
"type": "field",
"value": true,
"field": {
"field_label": "Checkbox 2",
"required": false,
"read_only": false,
"value": true,
"id": "5039614000001059040",
"data_type": "boolean",
"api_name": "Checkbox_2"
}
},
{
"type": "field",
"value": "${ProcessFlow2.5039614000001057561.5039614000000000563}",
"field": {
"length": 100,
"field_label": "Email 2",
"required": false,
"read_only": true,
"_merge_field": "${!Update_Kiosk_Test1.CurrentRecord.Email}",
"value": "${ProcessFlow2.5039614000001057561.5039614000000000563}",
"id": "5039614000001059043",
"data_type": "email",
"api_name": "Email_2"
}
},
{
"type": "field",
"value": null,
"field": {
"field_label": "Date 2",
"required": false,
"read_only": false,
"id": "5039614000001059046",
"data_type": "date",
"api_name": "Date_2"
}
},
{
"type": "field",
"value": null,
"field": {
"field_label": "Date/Time 2",
"required": false,
"read_only": false,
"id": "5039614000001059049",
"data_type": "datetime",
"api_name": "Date_Time_2"
}
},
{
"type": "field",
"value": null,
"field": {
"_pick_list_type": "local",
"length": 500,
"field_label": "Pick List 4",
"required": false,
"read_only": false,
"id": "5039614000001059053",
"data_type": "picklist",
"api_name": "Pick_List_4",
"pick_list_values": [
{
"display_value": "-None-",
"sequence_number": 1,
"actual_value": "-None-",
"id": "5039614000001059062"
},
{
"display_value": "Option 1",
"sequence_number": 2,
"actual_value": "Option 1",
"id": "5039614000001059052"
},
{
"display_value": "Option 2",
"sequence_number": 3,
"actual_value": "Option 2",
"id": "5039614000001059054"
},
{
"display_value": "Sunday",
"sequence_number": 4,
"actual_value": "Sunday",
"id": "5039614000001059055"
},
{
"display_value": "Monday",
"sequence_number": 5,
"actual_value": "Monday",
"id": "5039614000001059056"
},
{
"display_value": "Tuesday",
"sequence_number": 6,
"actual_value": "Tuesday",
"id": "5039614000001059057"
},
{
"display_value": "Wednesday",
"sequence_number": 7,
"actual_value": "Wednesday",
"id": "5039614000001059058"
},
{
"display_value": "Thursday",
"sequence_number": 8,
"actual_value": "Thursday",
"id": "5039614000001059059"
},
{
"display_value": "Friday",
"sequence_number": 9,
"actual_value": "Friday",
"id": "5039614000001059060"
},
{
"display_value": "Saturday",
"sequence_number": 10,
"actual_value": "Saturday",
"id": "5039614000001059061"
}
]
}
},
{
"type": "field",
"value": null,
"field": {
"_pick_list_type": "local",
"length": 500,
"field_label": "Pick List 5",
"required": false,
"read_only": false,
"id": "5039614000001059066",
"data_type": "picklist",
"api_name": "Pick_List_5",
"pick_list_values": [
{
"display_value": "-None-",
"sequence_number": 1,
"actual_value": "-None-",
"id": "5039614000001059069"
},
{
"display_value": "test2",
"sequence_number": 2,
"actual_value": "test2",
"id": "5039614000001059065"
},
{
"display_value": "test3",
"sequence_number": 3,
"actual_value": "test3",
"id": "5039614000001059067"
},
{
"display_value": "test4",
"sequence_number": 4,
"actual_value": "test4",
"id": "5039614000001059068"
}
]
}
},
{
"type": "field",
"value": "${ProcessFlow2.5039614000001057561.5039614000000000573}",
"field": {
"_pick_list_type": "local",
"length": 500,
"field_label": "Pick List 6",
"required": false,
"read_only": false,
"_merge_field": "${!Update_Kiosk_Test1.CurrentRecord.Lead_Source}",
"value": "${ProcessFlow2.5039614000001057561.5039614000000000573}",
"id": "5039614000001059073",
"data_type": "picklist",
"api_name": "Pick_List_6",
"pick_list_values": [
{
"display_value": "-None-",
"sequence_number": 1,
"actual_value": "-None-",
"id": "5039614000001059075"
},
{
"display_value": "Option 1",
"sequence_number": 2,
"actual_value": "Option 1",
"id": "5039614000001059072"
},
{
"display_value": "Option 2",
"sequence_number": 3,
"actual_value": "Option 2",
"id": "5039614000001059074"
}
]
}
},
{
"type": "field",
"value": null,
"field": {
"length": 500,
"field_label": "Multi-Select 2",
"required": false,
"read_only": false,
"id": "5039614000001059079",
"data_type": "multiselectpicklist",
"api_name": "Multi_Select_2",
"pick_list_values": [
{
"display_value": "Option 1",
"sequence_number": 1,
"actual_value": "Option 1",
"id": "5039614000001059078"
},
{
"display_value": "Option 2",
"sequence_number": 2,
"actual_value": "Option 2",
"id": "5039614000001059080"
}
]
}
},
{
"type": "field",
"value": "${ProcessFlow2.5039614000001057561.5039614000000000573}",
"field": {
"_pick_list_type": "global_set",
"length": 500,
"field_label": "Pick List 7",
"required": false,
"read_only": false,
"_merge_field": "${!Update_Kiosk_Test1.CurrentRecord.Lead_Source}",
"value": "${ProcessFlow2.5039614000001057561.5039614000000000573}",
"id": "5039614000001059083",
"data_type": "picklist",
"api_name": "Pick_List_7",
"global_picklist_name": {
"display_label": "Source",
"api_name": "Source"
},
"pick_list_values": [
{
"display_value": "-None-",
"sequence_number": 1,
"actual_value": "-None-",
"id": "5039614000001059085"
},
{
"display_value": "Advertisement",
"sequence_number": 2,
"actual_value": "Advertisement",
"id": "5039614000001059086"
},
{
"display_value": "Cold Call",
"sequence_number": 3,
"actual_value": "Cold Call",
"id": "5039614000001059087"
},
{
"display_value": "Employee Referral",
"sequence_number": 4,
"actual_value": "Employee Referral",
"id": "5039614000001059088"
},
{
"display_value": "External Referral",
"sequence_number": 5,
"actual_value": "External Referral",
"id": "5039614000001059089"
},
{
"display_value": "Partner",
"sequence_number": 6,
"actual_value": "Partner",
"id": "5039614000001059090"
},
{
"display_value": "Public Relations",
"sequence_number": 7,
"actual_value": "Public Relations",
"id": "5039614000001059091"
},
{
"display_value": "Trade Show",
"sequence_number": 8,
"actual_value": "Trade Show",
"id": "5039614000001059092"
},
{
"display_value": "Seminar Partner",
"sequence_number": 9,
"actual_value": "Seminar Partner",
"id": "5039614000001059093"
},
{
"display_value": "Online Store",
"sequence_number": 10,
"actual_value": "OnlineStore",
"id": "5039614000001059094"
},
{
"display_value": "Chat",
"sequence_number": 11,
"actual_value": "Chat",
"id": "5039614000001059095"
},
{
"display_value": "Sales Email Alias",
"sequence_number": 12,
"actual_value": "Sales Mail Alias",
"id": "5039614000001059096"
},
{
"display_value": "Internal Seminar",
"sequence_number": 13,
"actual_value": "Seminar-Internal",
"id": "5039614000001059097"
},
{
"display_value": "Web Download",
"sequence_number": 14,
"actual_value": "Web Download",
"id": "5039614000001059098"
},
{
"display_value": "Web Research",
"sequence_number": 15,
"actual_value": "Web Research",
"id": "5039614000001059099"
},
{
"display_value": "X (Twitter)",
"sequence_number": 16,
"actual_value": "Twitter",
"id": "5039614000001059100"
},
{
"display_value": "Facebook",
"sequence_number": 17,
"actual_value": "Facebook",
"id": "5039614000001059101"
}
]
}
},
{
"type": "field",
"value": "${Users.5039614000000140005}",
"field": {
"field_label": "User 2",
"required": false,
"read_only": false,
"_merge_field": "${!users.created_by}",
"value": "${Users.5039614000000140005}",
"id": "5039614000001059103",
"data_type": "userlookup",
"api_name": "User_2"
}
},
{
"type": "field",
"value": null,
"field": {
"length": 1,
"field_label": "File Upload 2",
"required": false,
"read_only": false,
"id": "5039614000001059109",
"data_type": "fileupload",
"api_name": "File_Upload_2"
}
}
],
"buttons": [
{
"prop_name": "outlineprimary",
"name": "Submit",
"id": "5039614000001057905"
}
],
"width": "1000px",
"title": "Screen New"
}
}
}
]
}2. Input JSON - State (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, optional
The display name of the 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 condition groups that define the filtering logic. Each grouping evaluates conditions against different data sources.
- type string, mandatory
The type of condition source. Determines where the field data is retrieved from.
Possible values:
kiosk_fields - Criteria is evaluated against fields within the current kiosk form.
current_record - Criteria is evaluated against the current record being processed.
get_record - Criteria evaluated based on whether the Get Records response contains data or not.
- value string, mandatory
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. - resourceJSON object, conditional
Configuration for the data source. Required when type is get_record. Contains the resource name and ID. Specify the name and id.
- criteriaJSON object or array, conditional
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 being evaluated in the condition. Specify the field id and api_name. Refer to the Get Fields API to retrieve field API names.
- 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.
- value string/Boolean/JSON array, mandatory
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.
- type string, mandatory
The value type for the condition.
Possible values: value, merge_field.
- group_operator string, conditional
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.
- sequence_number number, mandatory
The numeric position of this criteria grouping in the pattern evaluation (for example, 1, 2, 3).
Sample Input - Decision
Copied{
"states": [
{
"name": "Decision",
"details": {
"path_details": [
{
"name": "Path 1",
"default": false,
"filter_conditions": {
"pattern": "(1and2)",
"criteria_groupings": [
{
"type": "kiosk_fields",
"value": "${NOTEMPTY}",
"criteria": {
"group_operator": "and",
"group": [
{
"field": {
"api_name": "Checkbox_2",
"id": "5039614000001062086"
},
"comparator": "equal",
"value": true,
"type": "value"
},
{
"field": {
"api_name": "Pick_List_4",
"id": "5039614000001062100"
},
"comparator": "equal",
"value": "Monday",
"type": "value"
}
]
},
"sequence_number": 1
},
{
"type": "current_record",
"value": "${NOTEMPTY}",
"criteria": {
"field": {
"api_name": "Annual_Revenue",
"id": "5039614000000000581"
},
"comparator": "greater_than",
"value": "10000",
"type": "value"
},
"sequence_number": 2
}
]
}
},
{
"default": false,
"name": "Path 2",
"filter_conditions": {
"criteria_groupings": [
{
"sequence_number": 1,
"resource": {
"name": "GetRecords 4",
"id": "5039614000001062171"
},
"type": "get_record",
"value": "${NOTEMPTY}"
}
],
"pattern": null
}
},
{
"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, optional
Contains the reference information for the records to be retrieved.
- idstring, mandatory
The unique identifier of the get_records component.
- namestring, optional
The display name of the get_records component.
Note
- For the id and name of get_records, refer to the associated fields object in the Get States of a Kiosk API, if only name of the state needs to be changed.
- To update a Get Records configuration, refer to the Update Kiosk Get Records API.
- You can replace an existing Get Records configuration with another by updating the id with the new value. Refer to the Kiosk Get Records API.
Sample Input - Get Records
Copied{
"states": [
{
"name": "GetRecordsUpdate",
"details": {
"get_record": {
"id": "5039614000001057567",
"name": "Call Get Records"
}
}
}
]
}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 module in which the ownership assignment is to be applied. Specify the api_name of the module, refer to the Get Modules API.
- assign_toJSON array, mandatory
Specify how the new owner should be assigned. This array contains one or more assignment configurations.
- 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.
merge_field - Assigns the record using a user field referenced from a previous state.
- resourceJSON object, mandatory
Specify the resource being assigned. For the user type, specify the user's unique identifier and name, refer Get Users API. For role type specify the role's id and name, refer Get Roles API.
- idstring, mandatory
The unique identifier of the user being assigned as the owner.
- namestring, mandatory
The name of the user 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 (for example, Tasks, Deals, Activities).
- notifyBoolean, optional
Specify whether the newly assigned owner receives an email notification when ownership is transferred. Set to true to send a notification. This is the default value.
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_onJSON array, 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 details about the record (GetRecord or CurrentRecord) on which the action should be performed. Refer Input JSON - Notes for name and id.
- namestring, optional
Specify the display name indicating which record context is used.
- idstring, mandatory
Specify the unique identifier of the record context.
Sample Input - Assign Owner
Copied{
"states": [
{
"name": "Assign Owner",
"details": {
"type": "assign_owner",
"assign_owner": {
"module": {
"api_name": "Contacts"
},
"assign_to": [
{
"resource": {
"id": "5039614000000709001",
"name": "Patricia Boyle"
},
"type": "user"
}
],
"related_records": [
{
"api_name": "Tasks"
},
{
"api_name": "Deals"
}
],
"notify": true,
"user_availability_based_on": null
}
}
}
]
}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.
- type string, mandatory
The type of action to perform. Must be set to add_tags for tag assignment actions.
- add_tagsJSON object, optional
Specify the details about creating or associating one or more tags to the record. Refer Create Tags API for Tag creation.
- 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.
- id string, mandatory
The unique identifier of the tag.
- name string, mandatory
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 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 indicating which record context is used.
- idstring, mandatory
The unique identifier of the record context.
Note
To update the name of an existing tag, use the Update Tags API. To create a new tag, use the Create Tags API and then include the tag id and name in the add_tags JSON body.
The module context from execute_for_record determines which tags are suitable for assignment.
Sample Input - Add Tags
Copied{
"states": [
{
"name": "TagNameUpdate",
"details": {
"type": "add_tags",
"add_tags": {
"over_write": true,
"tags": [
{
"id": "5039614000000965616",
"name": "New lead"
},
{
"id": "5039614000000727231",
"name": "LeadNew"
}
],
"module": {
"id": "5039614000000000125",
"api_name": "Leads"
}
},
"execute_for_record": {
"name": "Current record",
"id": "5039614000000965541"
}
}
}
]
}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. You can include additional tags to be removed, or exclude previously included tags from being removed by omitting them from the request body.
- type string, 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. Specify the name and id of the tags. Refer to the Get Tags API. Ensure that the provided tag details are consistent with the execute_for_record context.
- 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.
- name string, optional
The display name indicating which record context is used.
- id string, mandatory
The unique identifier of the record context.
Sample Input - Remove Tags
Copied{
"states": [
{
"name": "ActionremoveTags",
"type": "action",
"details": {
"type": "remove_tags",
"remove_tags": {
"tags": [
{
"name": "Disqualified lead"
}
]
},
"execute_for_record": {
"name": "GetRecords 2",
"id": "5039614000001194015"
}
}
}
]
}4.4 Input JSON - Action (Create Record-Via User Input)
This section explains the details section for the quick_create_record action state. Common fields are covered in the Input JSON section.
- type string, mandatory
The type of action to perform. Must be set to quick_create_record for quick record creation actions.
- quick_create_recordJSON object, optional
Configuration for quick record creation through user input. Required when type is quick_create_record. This action displays a form allowing users to enter field values for the new record.
- moduleJSON object, optional
The CRM module in which the new record will be created. Specify the mandatory id and an optional display name of the module. Refer Get Modules API for details.
- layoutJSON object, optional
The layout to be used for the quick create form. Specify the mandatory id and an optional display name of the layout. Refer to the Get Layouts API for more details.
Sample Input - Create Record(Via User Input)
Copied{
"states": [
{
"name": "Quick",
"details": {
"quick_create_record": {
"type":"quick_create_record",
"layout": {
"id": "5039614000000095053",
"name": "Standard"
},
"module": {
"id": "5039614000000000143",
"api_name": "Tasks"
}
}
}
}
]
}4.5 Input JSON - Action (Create Record - Predefined Configuration)
This section explains the details section for the create_record action state. Common fields are covered in the Input JSON section.
- typestring, mandatory
Specify the type of action.
- create_recordJSON object, optional
Configuration for creating new records with specified field values and mappings. Required when type is create_record.
- moduleJSON object mandatory
The CRM module in which the new record will be created. Specify the mandatory id and an optional display name of the module. Refer Get Modules API for details.
- layoutJSON object, mandatory
The layout to be used for the new record. Specify the mandatory id and an optional display name of the layout. Refer Get Layouts API for more details.
- field_mappingsJSON array, optional
Array of field mappings that define which fields to populate and their values. At least one mapping is required.
- fieldJSON object, optional
The field to be populated. Specify the mandatory id and an optional display name of the field. Refer Get Fields API for details.
- type string, optional
The type of value to assign. Determines how the value is interpreted.
Possible values:
static - The value is a literal string or object that is directly assigned to the field.
merge_field - The value is a merge field expression that is evaluated at runtime.
- value string or object, optional
The value to assign to the field. Format depends on field data type and the 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",
"details": {
"type": "create_record",
"create_record": {
"layout": {
"id": "5039614000000095055",
"api_name": "Standard"
},
"module": {
"id": "5039614000000000125",
"api_name": "Leads"
},
"field_mappings": [
{
"field": {
"id": "5039614000000000555",
"api_name": "Company"
},
"type": "static",
"value": "Test"
}
]
}
}
}
]
}4.6 Input JSON - Action (Convert)
This section explains the convert action state. Specify details about converting records from one type to another, including field mappings, tag handling, and relationship settings. Common fields are covered in the Input JSON section.
- type string, mandatory
The type of action to perform. Must be set to convert for record conversion actions (for example, converting Leads to Contacts and Deals).
- convertJSON object, optional
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.
- contact_rolestring, 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.
- change_owner JSON object, optional
Specify the configuration for changing the owner of the converted record and optionally updating ownership in related modules. Specify the owner's id and name, along with an optional array of related_modules (related items of current owner will be transferred to whose records will also have their ownership updated.)
- idstring, mandatory
The unique identifier of the user to be assigned as the owner.
- namestring, optional
The display name of the user to be assigned as the owner.
- related_modulesJSON array, optional
Array of modules whose records will have their ownership updated when the parent record owner is changed.
- idstring, mandatory
The unique identifier of the related module.
- api_namestring, optional
The API name of the related module.
- 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, optional
Array of field mappings that define which fields in the converted record are populated and their values. Typically used for populating Deal fields, when create_deal is true.
- fieldJSON object, optional
The field to be populated. Specify the mandatory id and an optional display name of the field. Refer Get Fields API for details.
- type string, optional
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.
- value string or object, optional
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.
- 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.
- name string, optional
The type of record context to use when opening the record.
- id string mandatory
The unique identifier of the record context.
Sample Input - Convert
Copied{
"states": [
{
"name": "Convert Action",
"details": {
"type": "convert",
"convert": {
"add_to_existing_contact": false,
"add_to_existing_account": true,
"move_attachment_to": {
"id": "5039614000000000129",
"api_name": "Contacts"
},
"carry_tags": [
{
"id": "5039614000000000131",
"api_name": "Deals"
}
],
"field_mappings": [
{
"field": {
"id": "5039614000000000517",
"api_name": "Amount"
},
"type": "static",
"value": "60000"
},
{
"field": {
"id": "5039614000000000519",
"api_name": "Deal_Name"
},
"type": "static",
"value": "test Deal"
},
{
"field": {
"id": "5039614000000000521",
"api_name": "Closing_Date"
},
"type": "static",
"value": "28/05/2026"
},
{
"field": {
"id": "5039614000000000525",
"api_name": "Stage"
},
"type": "static",
"value": "Qualification"
}
],
"create_deal": true,
"contact_role": "5039614000000007170",
"change_owner": {
"id": "5039614000000709001",
"name": "Patricia Boyle",
"related_modules": [
{
"id": "5039614000000000143",
"api_name": "Tasks"
},
{
"id": "5039614000000000145",
"api_name": "Events"
}
]
}
}
}
}
]
}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.
- typestring, mandatory
The type of action to perform. Must be set to open_record for record opening actions.
- open_recordJSON object, optional
Configuration for opening a record in detail view.
- 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 type of record context to use when opening the record.
- idstring, mandatory
The unique identifier of the record context.
Sample Input -Open Record
Copied{
"states": [
{
"name": "OpenRecord Action",
"details": {
"type": "open_record",
"execute_for_record": {
"name": "GetRecords 4",
"id": "5039614000001062171"
}
}
}
]
}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.
- type string, mandatory
The type of action to perform. Must be set to add_meeting for meeting actions.
- add_meetingJSON object, optional
Configuration for adding or scheduling meetings with specified field values, duration, and host settings.
- layoutJSON object, optional
The layout to be used for the meeting record. This determines which fields are available and their organization.
- id string, mandatory
The unique identifier of the layout.
- name string, optional
The display name of the layout.
- meeting_durationJSON object, mandatory
Configuration for the duration of the meeting.
- unit string, mandatory
Specify the numeric value representing the meeting duration.
- periodstring, mandatory
Specify the time unit for the duration.
Possible values:
- minutes
- hours
- days
- 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.
- field_mappingsJSON array, mandatory
Array of field mappings that define which fields are populated and their values. Maximum of 50 field mappings per action.
- fieldJSON object, mandatory
The field to be populated. Specify the id and api_name of field. Refer Get Fields API.
- type string, mandatory
The type of value to assign. Determines how the value is interpreted
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.
- value string, 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.
- name string optional
The display name indicating which record context is used.
- id string mandatory
The unique identifier of the record context.
Note
Only fields available in the selected Events module layout can be populated. Use the Get Fields API for the Events module to retrieve the supported fields and layouts.
Sample Input - Add Meeting
Copied{
"states": [
{
"name": "Action",
"details": {
"type": "add_meeting",
"add_meeting": {
"meeting_duration": {
"unit": "1",
"period": "hours"
},
"host_unavailable": {
"assign_record_owner_as_host": true
},
"layout": {
"id": "5039614000000095045",
"name": "Standard"
},
"field_mappings": [
{
"field": {
"id": "5039614000000000249",
"api_name": "Event_Title"
},
"type": "merge_field",
"value": "${!Update_Kiosk_Test2.Multi_Line_1}"
},
{
"field": {
"id": "5039614000000723580",
"api_name": "Meeting_Venue__s"
},
"type": "static",
"value": "In-office"
},
{
"field": {
"id": "5039614000000101001",
"api_name": "Start_DateTime"
},
"type": "execution_time",
"value": {
"period": "days",
"unit": "2",
"sign": "plus",
"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}"
}
},
{
"field": {
"id": "5039614000000000257",
"api_name": "Who_Id"
},
"type": "merge_field",
"value": "${!Update_Kiosk_Test2.GetRecords_4}"
}
]
}
}
}
]
}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, optional
Configuration for scheduling calls with specified field values, layout, and call details.
- layoutJSON object, optional
The layout to be used for the call record. This determines which fields are available and their organization.
- id string, mandatory
Specify unique identifier of the layout.
- nameJSON string, optional
Specify display name of the layout.
- field_mappingsJSON array, mandatory
Array of field mappings that define which fields are populated and their values. Maximum of 50 field mappings per action.
- fieldJSON object, mandatory
Array of field mappings that define which fields are populated and their values. At least one mapping is required.
- id string, mandatory
The unique identifier of the field.
- api_name string, mandatory
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.
execution_time - The value is calculated based on the execution time by applying a specified time offset (period and unit) to determine the future date or time.
merge_field - The value is a merge field expression evaluated at runtime.
- value string or object, optional
The value to assign to the field. Format depends on the field type specified.
For execution_time type, the value is a JSON object containing the following fields:
- period string, mandatory
The time unit for the offset.
Possible values:
days
hours
minutes - unit string, mandatory
The numeric value representing the offset quantity (for example, "5" for 5 days when period is "days").
- signstring, mandatory
The direction of the offset.
Possible values:
plus
minus - trigger_fieldstring, mandatory
The field that represents the base time value.
- timestring, optional
The scheduled time in HH:MM format.
- execute_for_recordJSON object, optional
Configuration for specifying which record(s) or data source the call action should be executed for. This determines the target records that will receive the scheduled call. Refer Input JSON - Notes for name and id.
- idstring, mandatory
The unique identifier of the record or data source configuration.
- namestring, optional
The display name of the record or data source.
Note
Only fields available in the Calls module layout can be populated or updated. Use the Get Fields API for the Calls module to retrieve the supported fields and layouts.
Sample Input - Schedule Call
Copied{
"states": [
{
"name": "Schedule Call",
"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": "5",
"sign": "plus",
"time": "01: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": "Administrative"
},
{
"field": {
"id": "5039614000000621035",
"api_name": "Call_Agenda"
},
"type": "static",
"value": "Negotiate Deal"
}
]
},
"execute_for_record": {
"name": "GetRecords 4",
"id": "5039614000001062171"
}
}
}
]
}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, optional
Configuration for opening external links with encoding and URL specifications.
- name string, optional
The display name of the open link action.
- 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 - Open Link
Copied{
"states": [
{
"name": "OpenLinkActionupdate",
"details": {
"type": "open_link",
"open_link": {
"encode": "UTF-8",
"link": "${!Update_Kiosk_Test2.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, optional
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, optional
Specify the details about the record (get record or current record) on which the action should be performed.
- name string, optional
The display name indicating which record context is used.
- id string, mandatory
The unique identifier of the record context.
Note
For associated actions, state-related details such as name can only be updated through the Kiosk. To update Field update action, refer to the Update a Field Update Action API . For replacing the existing field update with a new one, refer the Get Field Update API. The new field update should align with the record context specified through execute_for_record.
Sample Input - Field Updates
Copied{
"states": [
{
"name": "Field Update New",
"details": {
"type": "field_updates",
"field_updates": {
"id": "5039614000000967418",
"name": "Field Update New"
},
"execute_for_record": {
"name": "Current record",
"id": "5039614000000965541"
}
}
}
]
}4.12 Input JSON - Action (Email Notification)
This section explains the details section for the email_notifications action state. Common fields are covered in the Input JSON section .
- typeJSON string, mandatory
The type of action to perform. Must be set to email_notifications for email notification actions.
- email_notificationsJSON object, optional
Configuration for sending email notifications with specified template and recipient settings.
- idstring, mandatory
The unique identifier of the email notification configuration.
- namestring, optional
The display name of the email notification action.
- 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.
- 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 such as name can only be updated through the Kiosk. To update email notification settings, refer to the Update Email Notification API . For replacing the existing email notification action with a new one, refer the Get Email Notification Action API. The new one should align with the record context specified through execute_for_record.
Sample Input - Email Notification
Copied{
"states": [
{
"name": "Action -Email Notification",
"details": {
"type": "email_notifications",
"email_notifications": {
"id": "5039614000000965683",
"name": "Action -Email Notification"
},
"execute_for_record": {
"name": "GetRecords 2",
"id": "5039614000000965555"
}
}
}
]
}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 .
- typeJSON string, mandatory
The type of action to perform. Must be set to webhooks for webhook actions.
- webhooksJSON object, optional
Configuration for the webhook action that triggers an HTTP request to a specified endpoint.
- idstring, mandatory
The unique identifier of the webhook configuration to invoke.
- namestring, optional
The display name of the webhook action (for example, "Notify Third Party", "Send to External API").
- 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 indicating the record context (for example, "Current Record", "Parent Record").
- idstring, mandatory
The unique identifier of the record context.
Note
For associated actions, state-related details such as name can only be updated through the Kiosk. To update webhook settings, refer to the Update Webhook API . For replacing the existing webhook action with a new one, refer the Get Webhook Action API. The new one should align with the record context specified through execute_for_record.
Sample Input - Webhook
Copied{
"states": [
{
"name": "Webhook",
"details": {
"type": "webhooks",
"webhooks": {
"id": "5039614000000975006",
"name": "Webhook"
},
"execute_for_record": {
"name": "Current record",
"id": "5039614000000965541"
}
}
}
]
}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 .
- typeJSON string, mandatory
The type of action to perform. Must be set to tasks for add task actions.
- tasksJSON object, optional
Configuration for the automation task that creates a new task record when the action executes.
- idstring, mandatory
Specify the ID of the task action to be associated.
- namestring, optional
Specify the name of the task action to be associated.
- 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 indicating the record context (for example, "Current Record", "Parent Record").
- idstring, mandatory
The unique identifier of the record context.
Note
For associated actions, state-related details such as name can only be updated through the Kiosk. To update task, refer to the Update Automation Task API . For replacing the existing add task action with a new one, refer the Get Automation Tasks API. The new one should align with the record context specified through execute_for_record.
Sample Input - Add Task
Copied{
"states": [
{
"name": "Action add task",
"details": {
"type": "tasks",
"tasks": {
"id": "5039614000000965700",
"name": "New Task"
},
"execute_for_record": {
"name": "Current record",
"id": "5039614000000965541"
}
}
}
]
}Possible Errors
- INVALID_DATA HTTP 400
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 GetRecord ID.
Resolution: Verify that the get_record_id in the request URL is a valid and existing GetRecord identifier. You can retrieve a list of valid GetRecord IDs using the Kiosk Get Records API.Invalid Tag.
Resolution: Verify that the tag in the request URL is a valid and existing Tag identifier. You can retrieve a list of valid Tag IDs using the Get Tags API.Unsupported mergefield provided.
Resolution: Ensure that the mergefield expression provided in the request body is valid and adheres to any naming conventions or restrictions defined by the API.Invalid module.
Resolution:For Create Record action, the modules supported are Contacts, Leads, Potentials, Products, Cases, Accounts and custom modules.No such state exists in Kiosk.
Resolution:Verify that the state_id provided in the request URL corresponds to an existing state within the specified Kiosk. You can retrieve a list of valid state IDs for a Kiosk using the GET Kiosk States API.The fieldId given seems to be invalid.
Resolution: Verify that the fieldId provided in the request body corresponds to a valid field within the specified module. You can retrieve a list of valid field IDs for a module using the Get Module Fields API.
- AMBIGUITY_DURING_PROCESSING HTTP 400
Default path not supported the filter conditions.
Resolution: In Decision Component, default path should not have filter conditions, only one path should be the default, and it shouldn't have filters. - NOT_ALLOWED HTTP 400
State type cannot be edited.
Resolution: The value of type cannot be changed.Active kiosk does not allow perform given operation.
Resolution: Ensure that the specified kiosk_ID refers to the Kiosk in draft state. Operations are not allowed on active Kiosks. You can retrieve the list of available Kiosks and verify their status using the GET Kiosks API.Single GetRecords alone supported for action state.
Resolution: Provide the Get Records which have result_type as single. Refer to the Kiosk Get Records API for more details on Get Records and their request types.The given action ID is not from a kiosk module.
Resolution: Check whether the provided action ID is associated with a valid Kiosk module. You can verify this by checking the related_module field of the action. Refer to the Get Automation Field Updates Action API, Get Automation Email Notifications Action API, Get Automation Webhook Action API and Get Automation Tasks APIfor more details.The data type for field id and given data type mismatch.
Resolution: The data_type provided in the request body should match the data type of the field ID as per the module metadata. Refer to the Get Module Fields API for details on field data types.
- MANDATORY_NOT_FOUNDHTTP 400
Required field not found.
Resolution: Refer to the Input JSON section. The states array is mandatory.GetRecord id is missing. Resolution:Provide the id of get records in the request body. Refer to the Kiosk Get Records API for valid get record IDs.
Data type is missing
Resolution: Provide the data_type of the respective field in the request body. Refer Get Module Fields API for valid data types.Display label is missing
Resolution: Provide the display_label of the respective field in the request body. Refer Get Module Fields API for valid display labels.
- DEPENDENT_FIELD_MISSINGHTTP 400
Dependent field is missing.
Resolution: A required field is missing based on a dependency relationship. When the parent field (identified as dependee.api_name in the error response) is specified, its dependent field (identified as api_name in the error response) must also be included in the request body. Check the error response for the json_path values to locate where each field should be provided. For example, if the error indicates that id depends on type, ensure both type and id are included in your request. - DEPENDENT_MISMATCHHTTP 400
Dependent field is not matching.
Resolution: The dependent field value does not match or is incompatible with its parent field. When a field has a dependency relationship, the dependent field (identified as api_name in the error response) must have a value that is compatible with its parent field (identified as dependee.api_name in the error response). Check the error response for the json_path values to identify which fields are involved in the mismatch. Verify that the dependent field value is appropriate for the parent field type. For example, if the error indicates that type does not match id, ensure that the type value is valid and compatible with the specified id. - OAUTH_SCOPE_MISMATCHHTTP 401
Invalid oauth scope to access this URL.
Resolution: Create a new token with the required scopes. Refer to the scopesection. - 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 updated successfully",
"status": "success"
}
]
}