Zoho: Record Clone
Zoho record.cloneRecord: arguments, response, policy and SDK examples.
← Record operations · Get started
Operation zoho.clonerecord
Provider route: POST /crm/v8/{module}/{recordId}/actions/clone. Alter supplies the connection’s credentials and routing.
Call through Alter
Section titled “Call through Alter”Install @alter-ai/sdk @alter-ai/zoho with npm, or alter-sdk-zoho with pip. Supply your connected customer’s grant ID and the arguments described below.
import { App } from "@alter-ai/sdk";import { ZohoIntegration } from "@alter-ai/zoho";
async function execute(input: Parameters<ZohoIntegration["record"]["cloneRecord"]>[0]) { const app = new App({ apiKey: process.env.ALTER_API_KEY! }); try { const provider = new ZohoIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! }); const call = await provider.record.cloneRecord(input); const result = await call.wait(); return result.bodyJson(); } finally { await app.close(); }}import osfrom alter_sdk import Appfrom alter_sdk_zoho import ZohoIntegration
async def execute(arguments): async with App(api_key=os.environ["ALTER_API_KEY"]) as app: provider = ZohoIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]}) call = await provider.record.clone_record(arguments) result = await call.wait() return result.body_json()| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Additional keys: not allowed |
path | object | Required within parent | Additional keys: not allowed |
path.module | string | Required within parent | Maximum length: 25 |
path.recordId | string | Required within parent | Format: int64 |
body | Model | Required within parent | Expand Record Clone — request body — body By default, when you clone a record, the field values of the parent record will also be copied to the cloned record. If you want to modify certain fields or to add value to some fields, specify their field API names and their corresponding values in the input body. |
Referenced models: Record Clone — request body — body
Response
Section titled “Response”Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | Model | Root | Expand Record Clone — response body |
Referenced models: Record Clone — response body
Schemas
Section titled “Schemas”Record Clone — response body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Represents the response schema for the recordsuccess operation. Additional keys: not allowed |
data | array | Required within parent | Represents the data value. Maximum items: 100 Minimum items: 1 |
data[] | Model | Each item | Expand Record Clone — response body — data item |
Referenced models: Record Clone — response body — data item
Record Clone — request body — body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Represents the RecordsInputSchema data structure. Additional keys: not allowed |
apply_feature_execution | array | Optional | Use the "apply_feature_execution" array to trigger supported CRM features when creating or updating a record through the API. Specify "layout_rules" to apply layout rules or "criteria_validation_rule" to trigger validation rules. For "layout_rules", ensure the request includes all fields required by the layout rule criteria; otherwise, the API returns an error. For "criteria_validation_rule", all applicable validation rules are evaluated, and the API returns "MULTIPLE_OR_MULTI_ERRORS" if multiple rules fail. |
apply_feature_execution[] | object | Each item | Represents a single item in the RecordsInputSchema array. Additional keys: not allowed |
apply_feature_execution[].name | string | Required within parent | Represents the apply feature execution value. One of: layout_rules, range_validation, assignment_rules, function_validation_rule, criteria_validation_rule, global_map_dependency, territory_subordinates |
data | array | Required within parent | Represents the data value. Maximum items: 100 Minimum items: 1 |
data[] | Model | Each item | Expand Record Clone — request body — body data item |
skip_feature_execution | array | Optional | Use the "skip_feature_execution" array to skip Cadences execution when creating a record through the API. Specify "cadences" as the value of the "name" key and include this key alongside "data" in the request. |
skip_feature_execution[] | object | Each item | Represents a single item in the RecordsInputSchema array. Additional keys: not allowed |
skip_feature_execution[].name | string | Required within parent | Represents the skip feature execution value. One of: assignment_rules, cadences, connected_workflows |
trigger | array | Optional | Specifies the CRM features to execute for the API request. Supported values are "workflow", "approval", and "blueprint". If the "trigger" parameter is not specified, workflows, approvals, and blueprints related to the API are executed. Specify an empty array [] to prevent these features from executing. |
trigger[] | string | Each item | Represents a single item in the RecordsInputSchema array. One of: approval, workflow, blueprint, pathfinder, orchestration |
Referenced models: Record Clone — request body — body data item
Record Clone — response body — data item
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Represents a single record post success data result item. Additional keys: not allowed |
code | string | Required within parent | Represents the error code identifying the type of failure. Known values: SUCCESS |
details | object | Required within parent | Contains additional context about the error. Additional keys: not allowed |
details.$approval_state | string | Optional | Contains additional context about the error. Maximum length: 255 |
details.$approved | boolean | Optional | Contains additional context about the error. |
details.$has_more | object | Optional | Contains additional context about the error. Additional keys: allowed |
details.$layout_id | object | Optional | Contains additional context about the error. Additional keys: not allowed |
details.$layout_id.display_label | string | Optional | Contains additional context about the error. Maximum length: 255 |
details.$layout_id.id | string | Required within parent | Contains additional context about the error. Format: int64 |
details.$layout_id.name | string | Optional | Contains additional context about the error. Maximum length: 255 |
details.$locked_for_me | boolean | Optional | Contains additional context about the error. |
details.$process_flow | boolean | Optional | Contains additional context about the error. |
details.$state | string | Optional | Contains additional context about the error. Maximum length: 255 |
details.$status | string | Optional | Contains additional context about the error. Maximum length: 255 |
details.$wizard_connection_path | JSON | Optional | |
details.$wizard_connection_path (anyOf 1) | string | Alternative | $wizard_connection_path information denoted by comma separated connection ids between wizard screens. Maximum length: 2000 Read only: false |
details.$wizard_connection_path (anyOf 2) | null | Alternative | $wizard_connection_path information denoted by comma separated connection ids between wizard screens. Maximum length: 2000 Read only: false |
details.Created_By | object | Required within parent | Contains additional context about the error. Additional keys: not allowed |
details.Created_By.id | string | Required within parent | Contains additional context about the error. Format: int64 |
details.Created_By.name | string | Required within parent | Contains additional context about the error. Maximum length: 101 |
details.Created_Time | string | Required within parent | Contains additional context about the error. Format: date-time |
details.Modified_By | object | Required within parent | Contains additional context about the error. Additional keys: not allowed |
details.Modified_By.id | string | Required within parent | Contains additional context about the error. Format: int64 |
details.Modified_By.name | string | Required within parent | Contains additional context about the error. Maximum length: 101 |
details.Modified_Time | string | Required within parent | Contains additional context about the error. Format: date-time |
details.id | string | Required within parent | Contains additional context about the error. Format: int64 |
message | string | Required within parent | Represents the error message describing why the operation failed. |
status | string | Required within parent | Indicates the overall result status of the request. Known values: success |
Record Clone — request body — body data item
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Represents a single record write data result item. Additional keys: allowed |
Layout | object | Optional | Represents the layout value. Use the [Get Layouts Metadata API](layouts.yaml#$.paths./settings/layouts.get) to retrieve the Layout ID. Additional keys: not allowed |
Layout.id | string | Required within parent | Represents the layout value. Format: int64 Maximum length: 19 Minimum length: 1 Pattern: ^[0-9]{1,19}$ |
Wizard | object | Optional | Represents the wizard value. Use the [Get Wizards API](wizards.yaml#$.paths./settings/wizards.get) to retrieve the Wizard ID. Additional keys: not allowed |
Wizard.id | string | Required within parent | Represents the wizard value. Format: int64 Maximum length: 19 |
Policy, approvals and errors
Section titled “Policy, approvals and errors”SDK function policy ID: zoho.clonerecord. Catalog operation: cloneRecord. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.
Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.