> ## 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 full notification details. Includes SDK V2 guidance, input constraints, response fields, and Deepline credit cost.

Update full notification details.

<Info>
  Tool ID: `zoho_crm_notifications_update_notification_details`
</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_notifications_update_notification_details',
  {
    "watch": [
      {
        "channel_id": "channel_123",
        "notify_url": "https://example.com",
        "events": [
          "example"
        ]
      }
    ]
  },
);

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

### CLI

```bash theme={null}
deepline tools execute zoho_crm_notifications_update_notification_details --input '{
  "watch": [
    {
      "channel_id": "channel_123",
      "notify_url": "https://example.com",
      "events": [
        "example"
      ]
    }
  ]
}' --json
```

## Example response

The static output schema is not detailed enough to generate a reliable example. Use `deepline tools get zoho_crm_notifications_update_notification_details --json` for the complete live contract.

## Input reference

Full details update request wrapper (replaces existing).

| Name            | Type    | Required | Default | Details                                |
| --------------- | ------- | -------- | ------- | -------------------------------------- |
| `payload.watch` | `array` | No       | —       | Channels to update. Maximum items: 50. |

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

  ### Input JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "description": "Full details update request wrapper (replaces existing).",
    "properties": {
      "watch": {
        "type": "array",
        "description": "Channels to update.",
        "maxItems": 50,
        "items": {
          "type": "object",
          "description": "Full channel details replacement payload.",
          "properties": {
            "channel_id": {
              "type": "string",
              "description": "Channel identifier.",
              "maxLength": 64
            },
            "notify_url": {
              "type": "string",
              "description": "Callback URL.",
              "maxLength": 255
            },
            "channel_expiry": {
              "type": "string",
              "description": "Expiry timestamp (<= 1 week).",
              "format": "date-time"
            },
            "events": {
              "type": "array",
              "description": "Event subscriptions replacing current list.",
              "maxItems": 50,
              "items": {
                "type": "string",
                "description": "Event spec module.operation",
                "maxLength": 128
              }
            },
            "notification_condition": {
              "type": "array",
              "description": "Conditions replacing existing (see update_info).",
              "maxItems": 2,
              "items": {
                "type": "object",
                "description": "Condition object.",
                "properties": {
                  "type": {
                    "type": "string",
                    "description": "Condition type",
                    "enum": [
                      "field_selection"
                    ]
                  }
                },
                "required": [
                  "type"
                ],
                "additionalProperties": false
              }
            },
            "notify_on_related_action": {
              "type": "boolean",
              "description": "Notify on related associated record actions."
            },
            "return_affected_field_values": {
              "type": "boolean",
              "description": "Return affected field values in notification payloads."
            },
            "token": {
              "type": "string",
              "description": "Verification token.",
              "maxLength": 256
            }
          },
          "required": [
            "channel_id",
            "notify_url",
            "events"
          ],
          "additionalProperties": false
        }
      }
    },
    "required": [],
    "additionalProperties": false
  }
  ```
</details>

## Output reference

Standard tool result payload.

| Name                                                  | Type     | Required | Default | Details                                                |
| ----------------------------------------------------- | -------- | -------- | ------- | ------------------------------------------------------ |
| `result.data`                                         | `object` | Yes      | —       | Full replacement result wrapper.                       |
| `result.data.watch`                                   | `array`  | Yes      | —       | List of replacement result entries. Maximum items: 50. |
| `result.data.watch[].code`                            | `string` | Yes      | —       | Result code. Maximum length: 32.                       |
| `result.data.watch[].details`                         | `object` | Yes      | —       | Replacement details container.                         |
| `result.data.watch[].details.events`                  | `array`  | Yes      | —       | Replaced event channel details. Maximum items: 50.     |
| `result.data.watch[].details.events[].channel_expiry` | `string` | Yes      | —       | Expiry timestamp. Format: `date-time`.                 |
| `result.data.watch[].details.events[].resource_uri`   | `string` | Yes      | —       | Resource URI. Maximum length: 255.                     |
| `result.data.watch[].details.events[].resource_id`    | `string` | Yes      | —       | Resource identifier. Maximum length: 64.               |
| `result.data.watch[].details.events[].resource_name`  | `string` | Yes      | —       | Resource name. Maximum length: 128.                    |
| `result.data.watch[].details.events[].channel_id`     | `string` | Yes      | —       | Channel identifier. Maximum length: 64.                |
| `result.data.watch[].message`                         | `string` | Yes      | —       | Human readable message. Maximum length: 255.           |
| `result.data.watch[].status`                          | `string` | Yes      | —       | Status string. Maximum length: 32.                     |
| `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": "Full replacement result wrapper.",
        "properties": {
          "watch": {
            "type": "array",
            "description": "List of replacement result entries.",
            "maxItems": 50,
            "items": {
              "type": "object",
              "description": "Single replacement result.",
              "properties": {
                "code": {
                  "type": "string",
                  "description": "Result code.",
                  "maxLength": 32
                },
                "details": {
                  "type": "object",
                  "description": "Replacement details container.",
                  "properties": {
                    "events": {
                      "type": "array",
                      "description": "Replaced event channel details.",
                      "maxItems": 50,
                      "items": {
                        "type": "object",
                        "description": "Event channel detail.",
                        "properties": {
                          "channel_expiry": {
                            "type": "string",
                            "description": "Expiry timestamp.",
                            "format": "date-time"
                          },
                          "resource_uri": {
                            "type": "string",
                            "description": "Resource URI.",
                            "maxLength": 255
                          },
                          "resource_id": {
                            "type": "string",
                            "description": "Resource identifier.",
                            "maxLength": 64
                          },
                          "resource_name": {
                            "type": "string",
                            "description": "Resource name.",
                            "maxLength": 128
                          },
                          "channel_id": {
                            "type": "string",
                            "description": "Channel identifier.",
                            "maxLength": 64
                          }
                        },
                        "required": [
                          "channel_expiry",
                          "resource_uri",
                          "resource_id",
                          "resource_name",
                          "channel_id"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "events"
                  ],
                  "additionalProperties": false
                },
                "message": {
                  "type": "string",
                  "description": "Human readable message.",
                  "maxLength": 255
                },
                "status": {
                  "type": "string",
                  "description": "Status string.",
                  "maxLength": 32
                }
              },
              "required": [
                "code",
                "details",
                "message",
                "status"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "watch"
        ],
        "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)
