> ## Documentation Index
> Fetch the complete documentation index at: https://deepline.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Zoho CRM: README

> Update CRM modules. Zoho CRM Modules Update Modules reference includes SDK V2 and CLI requests, input constraints, response fields, and Deepline cost.

Update CRM modules.

<Info>
  Tool ID: `zoho_crm_modules_update_modules`
</Info>

## Run this action

Use the TypeScript SDK for a single call. Put `ctx.tools.execute(...)` inside a Play when the call should be durable, scheduled, or run across a CSV.

```ts theme={null}
import { Deepline } from 'deepline';

const deepline = await Deepline.connect();
const result = await deepline.tools.execute(
  'zoho_crm_modules_update_modules',
  {
    "modules": [
      {
        "id": "id_123"
      }
    ]
  },
);

console.log(result.toolResponse.raw);
```

### CLI

```bash theme={null}
deepline tools execute zoho_crm_modules_update_modules --input '{
  "modules": [
    {
      "id": "id_123"
    }
  ]
}' --json
```

## Example response

The SDK exposes this shape at `result.toolResponse.raw`. Values below are representative.

```json theme={null}
{
  "data": {
    "modules": [
      {
        "code": "SUCCESS",
        "details": {
          "id": "id_123"
        },
        "message": "Example message",
        "status": "success"
      }
    ]
  }
}
```

Use `deepline tools get zoho_crm_modules_update_modules --json` for the latest machine-readable contract.

## Input reference

Batch module update request containing an array of modules to update. Supports partial updates where only specified fields are modified.

| Name              | Type    | Required | Default | Details                                                                                                                                                                                                         |
| ----------------- | ------- | -------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `payload.modules` | `array` | No       | —       | Array of modules to update. Supports batch updates with multiple modules in a single request. Each module must have a unique ID within the request. Minimum items: 1. Maximum items: 100. Items must be unique. |

<details>
  <summary>Show raw input schema</summary>

  ### Input JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "description": "Batch module update request containing an array of modules to update. Supports partial updates where only specified fields are modified.",
    "properties": {
      "modules": {
        "type": "array",
        "description": "Array of modules to update. Supports batch updates with multiple modules in a single request. Each module must have a unique ID within the request.",
        "minItems": 1,
        "maxItems": 100,
        "uniqueItems": true,
        "items": {
          "type": "object",
          "description": "Module update definition containing labels, module ID, and accessible profiles.",
          "properties": {
            "singular_label": {
              "type": "string",
              "description": "Singular display label for the module (e.g., 'Contact', 'Deal'). Used in UI when referring to a single record. Must contain only alphanumeric characters and underscores, with no consecutive underscores, and cannot be empty.",
              "minLength": 1,
              "maxLength": 25
            },
            "plural_label": {
              "type": "string",
              "description": "Plural display label for the module (e.g., 'Contacts', 'Deals'). Used in UI when referring to multiple records. Must contain only alphanumeric characters and underscores, with no consecutive underscores, and cannot be empty.",
              "minLength": 1,
              "maxLength": 25
            },
            "id": {
              "type": "string",
              "description": "Unique identifier of the module to update. Must be a valid existing module ID.",
              "minLength": 1,
              "format": "int64"
            },
            "profiles": {
              "type": "array",
              "description": "Optional list of user profiles to add or remove from this module. Uses delta semantics: profiles without `_delete` are added (if not already present), profiles with `_delete: null` are removed. Omit this field to leave profile assignments unchanged. Each profile ID represents a permission set determining which users can view, create, edit, or delete records in this module.",
              "minItems": 1,
              "maxItems": 203,
              "uniqueItems": true,
              "items": {
                "type": "object",
                "description": "Profile identifier object.",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique numeric identifier of the user profile.",
                    "minLength": 1,
                    "format": "int64"
                  },
                  "_delete": {
                    "type": "null",
                    "description": "Deletion marker. When set to `null`, this profile will be removed from the module's access list. Omit this field to add or retain the profile."
                  }
                },
                "required": [
                  "id"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "id"
          ],
          "additionalProperties": false
        }
      }
    },
    "required": [],
    "additionalProperties": false
  }
  ```
</details>

## Output reference

Standard tool result payload.

| Name                               | Type        | Required | Default | Details                                                                                                                            |
| ---------------------------------- | ----------- | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `result.data`                      | `object`    | Yes      | —       | Successful batch update response containing results for all updated modules. All operations completed successfully without errors. |
| `result.data.modules`              | `array`     | Yes      | —       | Array of success results for each updated module, preserving request order. Minimum items: 1. Maximum items: 100.                  |
| `result.data.modules[].code`       | `"SUCCESS"` | Yes      | —       | Success code indicating module was updated Allowed: `SUCCESS`.                                                                     |
| `result.data.modules[].details`    | `object`    | Yes      | —       | Success details containing the updated module ID                                                                                   |
| `result.data.modules[].details.id` | `string`    | Yes      | —       | Unique identifier of the successfully updated module Format: `int64`. Minimum length: 1.                                           |
| `result.data.modules[].message`    | `string`    | Yes      | —       | Human-readable success message Minimum length: 1. Maximum length: 1000.                                                            |
| `result.data.modules[].status`     | `"success"` | Yes      | —       | Status indicator for successful operation Allowed: `success`.                                                                      |
| `result.meta`                      | `object`    | No       | —       | Additional response metadata (status, paging).                                                                                     |

<details>
  <summary>Show raw output schema</summary>

  ### Output JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "description": "Standard tool result payload.",
    "properties": {
      "data": {
        "type": "object",
        "description": "Successful batch update response containing results for all updated modules. All operations completed successfully without errors.",
        "properties": {
          "modules": {
            "type": "array",
            "description": "Array of success results for each updated module, preserving request order.",
            "minItems": 1,
            "maxItems": 100,
            "items": {
              "type": "object",
              "description": "Successful module update result",
              "properties": {
                "code": {
                  "type": "string",
                  "description": "Success code indicating module was updated",
                  "enum": [
                    "SUCCESS"
                  ]
                },
                "details": {
                  "type": "object",
                  "description": "Success details containing the updated module ID",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Unique identifier of the successfully updated module",
                      "minLength": 1,
                      "format": "int64"
                    }
                  },
                  "required": [
                    "id"
                  ],
                  "additionalProperties": false
                },
                "message": {
                  "type": "string",
                  "description": "Human-readable success message",
                  "minLength": 1,
                  "maxLength": 1000
                },
                "status": {
                  "type": "string",
                  "description": "Status indicator for successful operation",
                  "enum": [
                    "success"
                  ]
                }
              },
              "required": [
                "code",
                "details",
                "message",
                "status"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "modules"
        ],
        "additionalProperties": false
      },
      "meta": {
        "type": "object",
        "description": "Additional response metadata (status, paging).",
        "additionalProperties": true
      }
    },
    "required": [
      "data"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Deepline cost

* Pricing model: `fixed` (per call).
* Estimated Deepline credits: `0` per pricing unit.
* Provider-native pricing may still exist outside Deepline credit billing.

## Related documentation

* [SDK V2 quickstart](/docs/sdk-v2/quickstart)
* [SDK reference](/docs/sdk-v2/sdk-reference)
* [Run tools across a CSV](/docs/sdk-v2/batch-csv)
