Zoho: Update a custom layout
Zoho layouts.updateLayout: arguments, response, policy and SDK examples.
← Layouts operations · Get started
Operation zoho.updatelayout
Provider route: PATCH /crm/v8/settings/layouts/{id}. 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["layouts"]["updateLayout"]>[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.layouts.updateLayout(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.layouts.update_layout(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.id | string | Required within parent | Represents a unique numeric identifier for a CRM entity, expressed as a 64-bit integer serialized as a string to preserve precision in JSON. Format: int64 Maximum length: 19 Minimum length: 1 Pattern: ^[0-9]{1,19}$ |
query | object | Required within parent | Additional keys: not allowed |
query.module | string | Required within parent | Unique API identifier for the module used in third-party integrations; starts with a letter, contains only alphanumeric characters and underscores, and has no consecutive or trailing underscores. Maximum length: 50 |
body | Model | Required within parent | Expand Update a custom layout — request body — body |
Referenced models: Update a custom layout — 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 Update a custom layout — response body |
Referenced models: Update a custom layout — response body
Schemas
Section titled “Schemas”2 more schemas are linked from the tables above, on the schema pages.
Update a custom layout — response body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Represents the successful response returned when a layout update operation completes, containing the per-layout update results. Additional keys: not allowed |
layouts | array | Required within parent | Contains the array of result entries for the layout update operation, each reporting the outcome for an individual layout. Maximum items: 1 Minimum items: 1 |
layouts[] | Model | Each item | Expand Update a custom layout — response body — layouts item |
Referenced models: Update a custom layout — response body — layouts item
Update a custom layout — request body — body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Represents the request body for updating a layout, containing exactly one layout object with the configuration changes to apply. Additional keys: not allowed |
layouts | array | Required within parent | Contains exactly one layout object defining the update operations to be applied, including sections, profiles, and display settings. Maximum items: 1 Minimum items: 1 |
layouts[] | Model | Each item | Expand Update a custom layout — request body — body layouts item |
Referenced models: Update a custom layout — request body — body layouts item
Update a custom layout — response body — layouts item
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Represents the success result returned when a layout update operation completes without error, containing a confirmation code, message, and the identifying details of the updated layout. Additional keys: not allowed |
code | string | Required within parent | Represents the success code returned when the layout update operation completes without error. Known values: SUCCESS |
details | object | Required within parent | Contains the identifying details of the layout that was successfully updated, such as its ID. Additional keys: not allowed |
details.id | string | Required within parent | Represents a unique numeric identifier for a CRM entity, expressed as a 64-bit integer serialized as a string to preserve precision in JSON. Unique identifier of the updated layout. Format: int64 Maximum length: 19 Minimum length: 1 Pattern: ^[0-9]{1,19}$ |
message | string | Required within parent | Contains a confirmation message indicating that the layout update operation completed successfully. Maximum length: 255 |
status | string | Required within parent | Indicates the outcome of the layout update operation. Possible values: `success` — the layout update completes successfully. Known values: success |
Update a custom layout — request body — body layouts item
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Represents the layout configuration object supplied in an update request, containing at least one of the updatable attributes: name, sections, profiles, or business card display setting. Minimum fields: 1 Additional keys: not allowed |
name | string | Optional | Represents the new display name for the layout. Must be unique within the module's layout configurations. Maximum length: 255 Minimum length: 1 |
profiles | array | Optional | Contains the array of profile objects to be added to or removed from the layout's profile associations in this update operation. Maximum items: 50 Minimum items: 1 |
profiles[] | Model | Each item | Expand Update a custom layout — request body — body layouts item profiles item |
sections | array | Optional | Contains the array of section objects to be created, modified, or deleted as part of this layout update, defining the field and configuration changes within each section. Maximum items: 5 Minimum items: 1 |
sections[] | Model | Each item | Expand Update a custom layout — request body — body layouts item sections item |
show_business_card | boolean | Optional | Specifies whether the business card view is enabled or disabled for this layout as part of the update. |
Referenced models: Update a custom layout — request body — body layouts item profiles item, Update a custom layout — request body — body layouts item sections item
Update a custom layout — request body — body layouts item profiles item
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Represents a profile operation object used in layout update requests to add a profile to or remove a profile from the layout's permission associations. Additional keys: not allowed |
_delete | boolean | Optional | Indicates whether this profile's association with the layout should be removed. Possible values: `true` — the profile is disassociated from the layout; `false` — the profile association is retained or added. |
id | string | Required within parent | Represents a unique numeric identifier for a CRM entity, expressed as a 64-bit integer serialized as a string to preserve precision in JSON. Unique identifier of the profile. Format: int64 Maximum length: 19 Minimum length: 1 Pattern: ^[0-9]{1,19}$ |
Update a custom layout — request body — body layouts item sections item
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Represents a section operation object used in layout update requests to create, modify, or delete a section within the layout, including its label, field assignments, column count, and sequence. Minimum fields: 1 Additional keys: allowed |
_delete | Model | Optional | Expand Update a custom layout — request body — body layouts item sections item delete Delete configuration for removing the section. When provided, the section identified by id will be deleted. |
column_count | integer | Optional | Indicates the number of columns in which fields are arranged within this section when the layout is rendered on record forms. Format: int32 Maximum: 2 Minimum: 1 |
display_label | string | Optional | Represents the heading label of the section as displayed in the CRM interface. Required when creating a new section. Maximum length: 255 Minimum length: 1 |
fields | array | Optional | Contains the array of field operations to perform within this section, including adding, updating, creating, or removing field entries. Maximum items: 25 Minimum items: 1 |
fields[] | Model | Each item | Expand Update a custom layout — request body — body layouts item sections item fields item |
id | string | Optional | Represents a unique numeric identifier for a CRM entity, expressed as a 64-bit integer serialized as a string to preserve precision in JSON. Unique identifier of the section. Required for updating or deleting existing sections. Omit when creating a new section. Format: int64 Maximum length: 19 Minimum length: 1 Pattern: ^[0-9]{1,19}$ |
name | string | Optional | Represents the internal API name of the section. Required when creating a new section through a layout update. Maximum length: 255 Minimum length: 1 |
sequence_number | integer | Optional | Indicates the one-based ordinal position of the section within the layout, controlling the order in which sections are rendered. Format: int32 Maximum: 100 Minimum: 1 |
tab_traversal | string | Optional | Specifies the tab key navigation direction within the section. Defines how focus moves between fields when users press Tab. Possible values: `left_to_right` — focus moves horizontally across columns first. `top_to_bottom` — focus moves vertically down each column first. One of: left_to_right, top_to_bottom |
Referenced models: Update a custom layout — request body — body layouts item sections item delete, Update a custom layout — request body — body layouts item sections item fields item
Update a custom layout — request body — body layouts item sections item delete
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Represents the configuration object used to specify the deletion mode when removing a layout or resource, indicating whether the deletion is permanent or a soft delete to the recycle bin. Additional keys: not allowed |
permanent | boolean | Required within parent | Indicates whether the resource is removed irrecoverably or placed in the recycle bin for potential recovery. Possible values: `true` — the resource is permanently destroyed and cannot be restored; `false` — the resource is moved to trash and may be recovered before final purge. |
Policy, approvals and errors
Section titled “Policy, approvals and errors”SDK function policy ID: zoho.updatelayout. Catalog operation: updateLayout. 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.