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 TypeElement typeLength
            textareafield2000
            integerfield9
            currencyfield16
            doublefield16
            websitefield450
            fileuploadfield5
          • _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"
    }
  ]
}