Zoho: Update a specific record by ID
Zoho record.updateRecord: arguments, response, policy and SDK examples.
← Record operations · Get started
Operation zoho.updaterecord
Provider route: PUT /crm/v8/{module}/{recordId}. 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"]["updateRecord"]>[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.updateRecord(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.update_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 Update a specific record by ID — request body — body Request body containing the updated resource data to modify the existing record. |
Referenced models: Update a specific record by ID — 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
Update a specific record by ID — request body — body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Represents the RecordsSinglePutInputSchema 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 RecordsSinglePutInputSchema 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 Update a specific record by ID — request body — body data item |
skip_feature_execution | array | Optional | Represents the skip feature execution value. |
skip_feature_execution[] | object | Each item | Represents a single item in the RecordsSinglePutInputSchema 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 | Represents the trigger value. |
trigger[] | string | Each item | Represents a single item in the RecordsSinglePutInputSchema array. One of: approval, workflow, blueprint, pathfinder, orchestration |
Referenced models: Update a specific record by ID — 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 |
Update a specific record by ID — request body — body data item
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Represents a single record single put write data result item. Additional keys: allowed |
$append_values | string | Optional | Represents the $append values value. Maximum length: 10 |
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}$ |
Policy, approvals and errors
Section titled “Policy, approvals and errors”SDK function policy ID: zoho.updaterecord. Catalog operation: updateRecord. 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.