Clone a Kiosk
Purpose
To clone an existing Kiosk in Zoho CRM. Cloning lets you reuse the structure and configuration (states, transitions, screens, actions, decisions, etc.) of an existing Kiosk without having to rebuild it from scratch. The cloned Kiosk can be created as an independent Kiosk or as a draft version of the same source Kiosk.
The Clone Kiosk API copies the source Kiosk exactly as it is, including all its states and transitions. It does not support modifying the Kiosk's configuration during the cloning process. To make changes to the cloned Kiosk after it is created, use the Update a Kiosk State API
Prerequisite:
To obtain the Kiosk ID required for this request, use the Get Kiosks API. If no Kiosk exists, create one using the Create a Kiosk API, and then use the returned Kiosk ID in the request.
Note
Availability: Standard, Professional, Enterprise, and Ultimate editions.
Permission Required: Administrator profile, or profiles with either the Module Customization or Manage Automation permission enabled.
Endpoints
- POST /settings/kiosks/{kiosk_ID}/actions/clone
- {kiosk_ID} : The unique ID of the Kiosk you want to clone.
Request Details
Request URL
{api-domain}/crm/{version}/settings/kiosks/{kiosk_ID}/actions/clone
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Scope
ZohoCRM.settings.kiosks.ALL
(or)
ZohoCRM.settings.kiosks.CREATE
Sample Request
Copiedcurl "https://www.zohoapis.com/crm/v8/settings/kiosks/5039614000000849013/actions/clone"
-X POST
-d "@inputData.json"
-H "Authorization: Zoho-oauthtoken 1000.8cb99dxxxxxxxxxxxxx9be93.9b8xxxxxxxxxxxxxxxd"Input JSON
The request body must be a JSON object containing a kiosks array with one object. The object must contain the following fields:
- namestring, mandatory
Specify a unique name of the Kiosk to be created.
The maximum length is 50 characters, and it must match the regex pattern [0-9a-zA-Z_\-\.\|\$\?\,\'\/\!\P{InBasicLatin}\s]+.
Specify this field only when the type is not dependent. When the type is dependent, the name is inherited from the source Kiosk. The specified name must not match the name of an existing module. - typestring, mandatory
Specify the clone type, indicating whether the new Kiosk is standalone or dependent on the existing Kiosk.
Possible values:
standalone - To create a Kiosk that exists as a separate entry. It can be created, updated, and published separately without being tied to the Kiosk from which it is cloned.
dependent - To create a Kiosk that remains associated with the source Kiosk and does not exist as a separate entry. The name and description fields must not be provided, as they are inherited from the source Kiosk. Please note that the dependent Kiosk will be created within the source Kiosk in draft status. Publishing it will activate the new version and deactivate the current version of the source Kiosk.
- descriptionstring, optional
Specify a description for the new Kiosk to be cloned and created. This field must not be provided when the clone dependent, as the description will be inherited from the existing Kiosk.
- group_api_namestring, mandatory
Specify the unified group API name for the new Kiosk to be created. The API name uniquely identifies this Kiosk across all its versions. The maximum length allowed is 20 characters and it must match the regex pattern ^[A-Za-z0-9_]+$. This field is optional when the type is dependent.
Note
The associations of the source Kiosk are not carried over to the cloned Kiosk.
When a Kiosk is cloned, a new Kiosk ID is generated for the cloned Kiosk.
- For a standalone clone, the source Kiosk remains unchanged.
- For a dependent clone, publishing the cloned Kiosk marks the source Kiosk as inactive, but the source Kiosk retains its original ID. The cloned Kiosk continues to use its newly generated ID.
Sample Input
Copied{
"kiosks": [
{
"name": "Test_Kiosk_cloned",
"description": "Clone of test_kiosk",
"type": "standalone",
"group_api_name": "Test_Kiosk_cloned"
}
]
}Possible Errors
- ID_ALREADY_DELETED HTTP 400
No such kiosks exists.
Resolution: Specify a valid Kiosk ID in the request URL. You can get the list of valid Kiosk IDs using the Get Kiosks API. - NOT_ALLOWED HTTP 400
Only active Kiosk can be cloned.
Resolution: Provide an active Kiosk ID to clone. - DUPLICATE_DATA HTTP 400
You cannot have a Kiosk name that matches a module name.
Resolution: Specify a unique name for the new Kiosk to be created. - MANDATORY_NOT_FOUND HTTP 400
Required field not found
Resolution: Specify values for all the required fields. Refer to the Input JSON section to know the required fields for this API. - INVALID_DATAHTTP 400Invalid Data
Resolution: Specify a valid type value. The possible values for the type field are standalone and dependent. Refer to the Input JSON section for more information about the type field. - INVALID_REQUEST_METHODHTTP 400Please check if the URL trying to access is a correct one.
Resolution: Specify a valid request method. Refer to the Endpoints section. - INVALID_DATAHTTP 400Kiosk name /description not needed.
Resolution: For dependent clone type, the name and description field should not be provided in the input JSON. Remove the name field from the input JSON. - OAUTH_SCOPE_MISMATCHHTTP 401Invalid oauth scope to access this URL.
Resolution: Create a new token with the required scopes. Refer to the scope section. - AUTHENTICATION_FAILUREHTTP 401Authentication Failed.
Resolution: Pass the access token in the request header of the API call.
Sample Response
Copied{
"kiosks": {
"code": "SUCCESS",
"details": {
"id": "2296900000011323255"
},
"message": "Kiosk cloned successfully",
"status": "success"
}
}