Get Preview of a Kiosk
Purpose
Retrieves the configuration and details of the first screen state for a specified Kiosk in Zoho CRM. This API returns only the first screen data required to render the Kiosk and does not trigger any actions or require user interaction.
Prerequisite:
To obtain the Kiosk ID required for this request, use the Get Kiosks API.
Note
Availability: Standard, Professional, Enterprise, and Ultimate editions.
Endpoints
- GET /settings/kiosks/{kiosk_ID}/actions/preview
- {kiosk_ID} : The unique ID of the Kiosk.
Request Details
Request URL
{api-domain}/crm/{version}/settings/kiosks/{kiosk_ID}/actions/preview
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Scope
ZohoCRM.settings.kiosks.ALL
(or)
ZohoCRM.settings.kiosks.READ
Parameters
- current_record_id long, optional
Specifies the ID of the record to use as the Current Record context while previewing the Kiosk. The record must belong to the module configured as the Current Record in the Kiosk.
If this parameter is not provided, merge fields that reference the Current Record are not evaluated during the Kiosk preview and will return empty values.
- invoked_from string, optional
Specifies the location from where the Kiosk is associated.
Possible values:
detail_view - The Kiosk is invoked from a record's detail view.
home_page - The Kiosk is invoked from the home page.
cscript - The Kiosk is invoked from a Client Script.
canvas - The Kiosk is invoked from a Canvas view.
Note
The Kiosk must be in published status to get the preview.
Sample Request
Copiedcurl "https://www.zohoapis.com/crm/v8/settings/kiosks/111111000000124466/actions/preview"
-X GET
-H "Authorization: Zoho-oauthtoken 1000.xxxxxxxxxxxxx"Response JSON
The response body is a JSON object containing a kiosk_preview array. Each object in the array contains the following fields:
- executable_infoJSON object
Contains information about the current executable state and available transitions.
- stateJSON object
The current state details.
- name string
The display name of the state.
- id string
The unique identifier of the current state.
- transitionsJSON array
Specifies the list of transitions available from the current state. Each transition contains the display name, unique ID, prop_name,is_connected_end.
- prop_namestring
Specifies the type of button displayed on the Kiosk screen. Each button corresponds to a transition path that the user can select from the current screen.
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
The display name of the transition.
- idstring
The unique identifier of the transition.
- is_connected_endBoolean
Indicates whether the transition is connected to an end state. A value of true means the transition completes the Kiosk flow.
- dataJSON object
Contains the records retrieved by the data elements configured in the Kiosk. This object uses dynamic keys, where each key is the API name of a data element (for example, a Get Records element). Each key maps to an object containing the retrieved record's display name (name) and unique identifier (id).
- elementsJSON array
An array of UI elements and data sources configured in the preview screen of a Kiosk. Each element has a type field that determines its structure.
- get_recordJSON object
Contains the record retrieval configuration and data.
- selection_detailsJSON object
Specifies the configuration for record selection. Contains the following fields:
- selection_typestring
Specifies the type of record selection. This field is null when result_type is single. When result_type is multiple, it can have one of the following values:
- read_only - The retrieved records are available for reference but cannot be selected by users in Kiosk screens.
- mandate - Users must select one or more of the retrieved records in subsequent Kiosk screens where the data element is used.
- optional - Users can optionally select one or more of the retrieved records in subsequent Kiosk screens where the data element is used.
- result_typestring
The type of results returned.
Possible values: single, multiple
- limitinteger
The maximum number of records to retrieve. This value is always 1 when result_type is single. When result_type is multiple, the maximum allowed value is 10.
- rangeinteger
Specifies the number of record to fetch.
- open_recordBoolean
Indicates whether clicking the record opens the detail view.
- name string
The API name of the get_records element.
- type string
The type of the element.
- moduleJSON object
The module from which records are retrieved. Contains api_name and id of the module.
- selected_fieldsJSON array
Array of fields to be displayed for each retrieved record. It contains api_name and id of each field.
- valueJSON array
Array of retrieved records with their field values.
- get_record_dataJSON object
Specifies information related to the GetRecords operation, such as the records retrieved from live CRM data and other execution details.
- more_recordsBoolean
Indicates whether there are more records beyond the current result set.
- fieldJSON object
Contains the complete configuration and metadata for a form field element displayed on the Kiosk screen.
- field_label string
The display label shown to the user for this field on the Kiosk screen.
- api_name string
The unique API name assigned to this field within the Kiosk configuration.
- id string
The unique identifier of the field.
- data_type string
Specifies the data type of the field, which determines how the field value is stored and validated.
- ui_typeinteger
The UI type identifier that maps to a specific input in the Kiosk.
- requiredBoolean
Indicates whether the field is mandatory for the user to fill in before proceeding.
- read_onlyBoolean
Indicates whether the field is read-only, meaning the user cannot modify its value. The value will be auto-populated from a merge field.
- lengthinteger
Specifies 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 - _merge_field string
A reference expression indicating the source from which the Kiosk automatically retrieves a field's value (such as the logged-in user's details or a previously fetched record). Returns null if the field has no auto-fill source.
- number_separatorBoolean
Specifies whether number formatting separators (like commas for thousands) are applied to numeric field values. If true, numbers are displayed with separators.
- decimal_placeinteger
Specifies the number of decimal places allowed for numeric fields. Returns null for non-numeric field types.
- tooltipJSON object
Contains tooltip configuration displayed alongside the field to provide additional information to the user. Returns null if no tooltip is configured.
- name string
The type of tooltip display.
- value string
The tooltip text content that will be displayed to the user.
- currencyJSON object
Contains currency-specific configuration for currency-type fields. Returns null for non-currency field types.
- pick_list_valuesJSON array
An array of predefined options displayed in the dropdown for picklist or multi-select picklist fields. Returns null for non-picklist field types.
- display_value string
The text displayed to the user in the dropdown list.
- actual_value string
The actual value stored in the system when this option is selected. Often the same as display_value.
- sequence_numberinteger
The order in which the option appears in the dropdown list. Starting from 1.
- id string
The unique identifier of the picklist value record.
- _pick_list_type string
Specifies the type of picklist used for the field. Returns null for non-picklist field types.
Possible values:
global_set - A global picklist (also called a global set) is a dropdown defined once at the org level and then reused across multiple fields and modules.
local - A local picklist is a dropdown whose values are defined only for that one field, in that one module. - global_picklistJSON object
Reference to the global picklist definition when _pick_list_type is global_set. Returns null for custom picklists or non-picklist fields.
- api_name string
The API name of the global picklist.
- id string
The unique identifier of the global picklist.
- _global_picklist_nameJSON object
Contains display information about the global picklist. Returns null for custom picklists or non-picklist fields.
- display_label string
The human-readable label of the global picklist.
- api_name string
The API name of the global picklist.
- allow_multiple_upload Boolean
Specifies whether multiple files can be uploaded for fileupload-type fields. Returns null for non-fileupload field types.
- width string
The width of the Kiosk display.
Possible values:
670px
1000px
- title string
The title of the current screen.
- previous_statesJSON array
Specifies an array containing the states traversed before the current state in the Kiosk execution flow. The states are listed in the order they were executed, starting from the start state and ending with the state immediately preceding the current state.
- name string
The display name of the previous state.
- id string
The unique identifier of the state.
- type string
The type of state.
- button_align string
The alignment of action buttons.
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.
Possible Errors
- INVALID_DATA HTTP 400
Invalid current record.
Resolution: The specified current record ID is invalid or does not belong to the module configured as the Current Record for the Kiosk. Provide a valid record ID from the associated module. Refer Get Records API documentation for record ID of the module to which Kiosk is associated. - 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_PATTERN HTTP 404
Please check if the URL trying to access is a correct one.
Resolution: Specify a valid URL in the request.
Sample Response
Copied{
"kiosk_preview": [
{
"executable_info": {
"state": {
"name": "Screen New",
"id": "5039614000000893064"
},
"transitions": [
{
"prop_name": "primary",
"is_connected_end": false,
"name": "Done",
"id": "5039614000000893062"
}
]
},
"data": {
"GetRecords_1": {
"name": "Acme Sarah",
"id": "5039614000000782064"
}
},
"elements": [
{
"type": "text",
"value": "Hi !!"
},
{
"get_record": {
"selection_details": {
"selection_type": null,
"result_type": "single",
"limit": 1,
"range": 1
},
"open_record": true,
"module": {
"api_name": "Leads",
"id": "5039614000000000125"
},
"name": "GetRecords 1",
"id": "5039614000000869480",
"selected_fields": [
{
"api_name": "id",
"id": "5039614000000337001"
},
{
"api_name": "Owner",
"id": "5039614000000000553"
},
{
"api_name": "First_Name",
"id": "5039614000000000557"
},
{
"api_name": "Last_Name",
"id": "5039614000000000559"
},
{
"api_name": "Designation",
"id": "5039614000000000561"
},
{
"api_name": "Email",
"id": "5039614000000000563"
},
{
"api_name": "Phone",
"id": "5039614000000000565"
},
{
"api_name": "Lead_Source",
"id": "5039614000000000573"
},
{
"api_name": "Lead_Status",
"id": "5039614000000000575"
}
]
},
"type": "get_records",
"value": [
{
"First_Name": "Acme",
"Lead_Status": "Contacted",
"Designation": null,
"Owner": {
"name": "Patricia Boyle",
"id": "5039614000000709001"
},
"Email": "sarah.acme@test.com",
"Last_Name": "Sarah",
"Phone": null,
"Lead_Source": null,
"id": "5039614000000782064"
}
],
"get_record_data": null,
"more_records": false
},
{
"field": {
"allow_multiple_upload": null,
"field_label": "Email provided",
"length": 255,
"tooltip": null,
"_merge_field": "${Users.5039614000000000189}",
"number_separator": false,
"required": false,
"ui_type": 1,
"read_only": false,
"api_name": "Email_provided",
"data_type": "text",
"currency": null,
"id": "5039614000000893001",
"_pick_list_type": null,
"decimal_place": null,
"pick_list_values": null
},
"type": "field",
"value": "patricia.boyle@test.com"
},
{
"field": {
"allow_multiple_upload": null,
"field_label": "Phone Number",
"length": 30,
"tooltip": null,
"_merge_field": "${ProcessFlow1.5039614000000869451.5039614000000000565}",
"number_separator": false,
"required": false,
"ui_type": 33,
"read_only": false,
"api_name": "Phone_Number",
"data_type": "phone",
"currency": null,
"id": "5039614000000893012",
"_pick_list_type": null,
"decimal_place": null,
"pick_list_values": null
},
"type": "field",
"value": null
},
{
"field": {
"allow_multiple_upload": null,
"field_label": "Pick List Field",
"length": 500,
"tooltip": null,
"_global_picklist_name": {
"display_label": "Industry",
"api_name": "Industry"
},
"_merge_field": "${ProcessFlow1.5039614000000869451.5039614000000000577}",
"number_separator": false,
"required": false,
"global_picklist": {
"api_name": "Industry",
"id": "5039614000000491020"
},
"ui_type": 2,
"read_only": false,
"api_name": "Pick_List_Field",
"data_type": "picklist",
"currency": null,
"_pick_list_type": "global_set",
"id": "5039614000000893021",
"decimal_place": null,
"pick_list_values": [
{
"display_value": "-None-",
"sequence_number": 1,
"actual_value": "-None-",
"id": "5039614000000893026"
},
{
"display_value": "ASP (Application Service Provider)",
"sequence_number": 2,
"actual_value": "ASP (Application Service Provider)",
"id": "5039614000000893028"
},
{
"display_value": "Data/Telecom OEM",
"sequence_number": 3,
"actual_value": "Data/Telecom OEM",
"id": "5039614000000893030"
},
{
"display_value": "ERP (Enterprise Resource Planning)",
"sequence_number": 4,
"actual_value": "ERP (Enterprise Resource Planning)",
"id": "5039614000000893032"
},
{
"display_value": "Government/Military",
"sequence_number": 5,
"actual_value": "Government/Military",
"id": "5039614000000893034"
},
{
"display_value": "Large Enterprise",
"sequence_number": 6,
"actual_value": "Large Enterprise",
"id": "5039614000000893036"
},
{
"display_value": "ManagementISV",
"sequence_number": 7,
"actual_value": "ManagementISV",
"id": "5039614000000893038"
},
{
"display_value": "MSP (Management Service Provider)",
"sequence_number": 8,
"actual_value": "MSP (Management Service Provider)",
"id": "5039614000000893040"
},
{
"display_value": "Network Equipment Enterprise",
"sequence_number": 9,
"actual_value": "Network Equipment (Enterprise)",
"id": "5039614000000893042"
},
{
"display_value": "Non-management ISV",
"sequence_number": 10,
"actual_value": "Non-management ISV",
"id": "5039614000000893044"
},
{
"display_value": "Optical Networking",
"sequence_number": 11,
"actual_value": "Optical Networking",
"id": "5039614000000893046"
},
{
"display_value": "Service Provider",
"sequence_number": 12,
"actual_value": "Service Provider",
"id": "5039614000000893048"
},
{
"display_value": "Small/Medium Enterprise",
"sequence_number": 13,
"actual_value": "Small/Medium Enterprise",
"id": "5039614000000893050"
},
{
"display_value": "Storage Equipment",
"sequence_number": 14,
"actual_value": "Storage Equipment",
"id": "5039614000000893052"
},
{
"display_value": "Storage Service Provider",
"sequence_number": 15,
"actual_value": "Storage Service Provider",
"id": "5039614000000893054"
},
{
"display_value": "Systems Integrator",
"sequence_number": 16,
"actual_value": "Systems Integrator",
"id": "5039614000000893056"
},
{
"display_value": "Wireless Industry",
"sequence_number": 17,
"actual_value": "Wireless Industry",
"id": "5039614000000893058"
}
]
},
"type": "field",
"value": null
}
],
"width": "670px",
"title": "Screen 4",
"previous_states": [
{
"name": "Start",
"id": "5039614000000869499",
"type": "start_state"
}
],
"button_align": "right_to_left"
}
]
}