> ## 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

> Get Associated Contact Roles. Includes SDK V2 and CLI requests, input constraints, response fields, and Deepline credit cost.

Get Associated Contact Roles.

<Info>
  Tool ID: `zoho_crm_deal_contact_roles_get_associated_contact_roles`
</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_deal_contact_roles_get_associated_contact_roles',
  {
    "module": "Deals",
    "dealId": "deal_123",
    "fields": "example"
  },
);

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

### CLI

```bash theme={null}
deepline tools execute zoho_crm_deal_contact_roles_get_associated_contact_roles --input '{
  "module": "Deals",
  "dealId": "deal_123",
  "fields": "example"
}' --json
```

## Example response

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

```json theme={null}
{
  "data": {
    "data": [
      {
        "Owner": {
          "name": "Example",
          "id": "id_123",
          "email": "jane.doe@example.com"
        },
        "Department": "example",
        "Contact_Role": {
          "name": "Example",
          "id": "id_123"
        }
      }
    ],
    "info": {
      "per_page": 123,
      "count": 123,
      "page": 123,
      "more_records": true
    }
  }
}
```

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

## Input reference

Retrieve contact roles associated with a deal

| Name             | Type      | Required | Default | Details                                                                                                                                                                                                                   |
| ---------------- | --------- | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `payload.module` | `"Deals"` | Yes      | —       | The module name for the deal record Allowed: `Deals`.                                                                                                                                                                     |
| `payload.dealId` | `string`  | Yes      | —       | The unique identifier of the deal record Format: `int64`.                                                                                                                                                                 |
| `payload.fields` | `string`  | Yes      | —       | Comma-separated list of field names to include in the response. Field names must follow API naming conventions. Minimum length: 1. Maximum length: 1000. Pattern: `^[A-Za-z_][A-Za-z0-9_]*(?:,[A-Za-z_][A-Za-z0-9_]*)*$`. |

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

  ### Input JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "description": "Retrieve contact roles associated with a deal",
    "properties": {
      "module": {
        "type": "string",
        "description": "The module name for the deal record",
        "enum": [
          "Deals"
        ]
      },
      "dealId": {
        "type": "string",
        "description": "The unique identifier of the deal record",
        "format": "int64"
      },
      "fields": {
        "type": "string",
        "description": "Comma-separated list of field names to include in the response. Field names must follow API naming conventions.",
        "minLength": 1,
        "maxLength": 1000,
        "pattern": "^[A-Za-z_][A-Za-z0-9_]*(?:,[A-Za-z_][A-Za-z0-9_]*)*$"
      }
    },
    "required": [
      "module",
      "dealId",
      "fields"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Output reference

Standard tool result payload.

| Name                                   | Type             | Required | Default | Details                                                                                        |
| -------------------------------------- | ---------------- | -------- | ------- | ---------------------------------------------------------------------------------------------- |
| `result.data`                          | `object`         | Yes      | —       | Response containing contact roles data and pagination info                                     |
| `result.data.data`                     | `array`          | Yes      | —       | Array of contact role records with fields specified in the query parameter Maximum items: 100. |
| `result.data.data[].Owner`             | `object`         | No       | —       | Owner information for the contact role                                                         |
| `result.data.data[].Owner.name`        | `string`         | No       | —       | Owner's display name Maximum length: 255.                                                      |
| `result.data.data[].Owner.id`          | `string`         | No       | —       | Owner's unique identifier Format: `int64`.                                                     |
| `result.data.data[].Owner.email`       | `string`         | No       | —       | Owner's email address Format: `email`.                                                         |
| `result.data.data[].Department`        | `string \| null` | No       | —       | Department of the contact                                                                      |
| `result.data.data[].Contact_Role`      | `object`         | No       | —       | Contact role information                                                                       |
| `result.data.data[].Contact_Role.name` | `string`         | Yes      | —       | Role name (e.g., Developer/Evaluator) Maximum length: 255.                                     |
| `result.data.data[].Contact_Role.id`   | `string`         | Yes      | —       | Role's unique identifier Format: `int64`.                                                      |
| `result.data.info`                     | `object`         | Yes      | —       | Pagination and response metadata                                                               |
| `result.data.info.per_page`            | `integer`        | Yes      | —       | Number of records per page Format: `int32`.                                                    |
| `result.data.info.next_page_token`     | `string \| null` | No       | —       | Token for retrieving the next page of results                                                  |
| `result.data.info.count`               | `integer`        | Yes      | —       | Number of records in the current response Format: `int32`.                                     |
| `result.data.info.page`                | `integer`        | Yes      | —       | Current page number Format: `int32`.                                                           |
| `result.data.info.previous_page_token` | `string \| null` | No       | —       | Token for retrieving the previous page of results                                              |
| `result.data.info.page_token_expiry`   | `string \| null` | No       | —       | Expiry timestamp for page tokens                                                               |
| `result.data.info.more_records`        | `boolean`        | Yes      | —       | Indicates if more records are available                                                        |
| `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": "Response containing contact roles data and pagination info",
        "properties": {
          "data": {
            "type": "array",
            "description": "Array of contact role records with fields specified in the query parameter",
            "maxItems": 100,
            "items": {
              "type": "object",
              "description": "Contact role record with dynamic fields based on the 'fields' query parameter",
              "properties": {
                "Owner": {
                  "type": "object",
                  "description": "Owner information for the contact role",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "Owner's display name",
                      "maxLength": 255
                    },
                    "id": {
                      "type": "string",
                      "description": "Owner's unique identifier",
                      "format": "int64"
                    },
                    "email": {
                      "type": "string",
                      "description": "Owner's email address",
                      "format": "email"
                    }
                  },
                  "additionalProperties": false
                },
                "Department": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Department of the contact"
                },
                "Contact_Role": {
                  "type": "object",
                  "description": "Contact role information",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "Role name (e.g., Developer/Evaluator)",
                      "maxLength": 255
                    },
                    "id": {
                      "type": "string",
                      "description": "Role's unique identifier",
                      "format": "int64"
                    }
                  },
                  "required": [
                    "name",
                    "id"
                  ],
                  "additionalProperties": false
                }
              },
              "additionalProperties": true
            }
          },
          "info": {
            "type": "object",
            "description": "Pagination and response metadata",
            "properties": {
              "per_page": {
                "type": "integer",
                "description": "Number of records per page",
                "format": "int32"
              },
              "next_page_token": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Token for retrieving the next page of results"
              },
              "count": {
                "type": "integer",
                "description": "Number of records in the current response",
                "format": "int32"
              },
              "page": {
                "type": "integer",
                "description": "Current page number",
                "format": "int32"
              },
              "previous_page_token": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Token for retrieving the previous page of results"
              },
              "page_token_expiry": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Expiry timestamp for page tokens"
              },
              "more_records": {
                "type": "boolean",
                "description": "Indicates if more records are available"
              }
            },
            "required": [
              "per_page",
              "count",
              "page",
              "more_records"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "info"
        ],
        "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)
