> ## 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: Portal User Type Get Portal User Types

> List the user types in a Zoho CRM portal. Includes SDK V2 guidance, input constraints, response fields, and Deepline credit cost.

List the user types in a Zoho CRM portal.

> [!NOTE]
>
> Tool ID: `zoho_crm_portal_user_type_get_portal_user_types`

## Run this action

Use the TypeScript SDK for one call. Use `ctx.tools.execute(...)` inside a Play for durable calls, scheduled calls, or CSV processing.

```ts theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
import { Deepline } from 'deepline';

const deepline = await Deepline.connect();
const result = await deepline.tools.execute(
  'zoho_crm_portal_user_type_get_portal_user_types',
  {
    "portal": "example"
  },
);

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

### CLI

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline tools execute zoho_crm_portal_user_type_get_portal_user_types --input '{
  "portal": "example"
}' --json
```

## Example response

The SDK returns this shape at `result.toolResponse.raw`. The example values illustrate the response.

```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
{
  "data": {
    "user_type": [
      {
        "id": "id_123",
        "default": true,
        "personality_module": {
          "api_name": "Example",
          "id": "id_123"
        },
        "name": "Example",
        "invitation_field": {
          "id": "id_123"
        }
      }
    ]
  }
}
```

Use `deepline describe zoho_crm_portal_user_type_get_portal_user_types --json` for the latest machine-readable contract.

## Input reference

Retrieve all user types for the specified portal.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `payload.portal` | `string` | Yes | — | Portal unique name (path parameter). Provide the portal identifier as defined in the account. Minimum length: 1. Maximum length: 255. |

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

  ### Input JSON Schema

  ```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
  {
    "type": "object",
    "description": "Retrieve all user types for the specified portal.",
    "properties": {
      "portal": {
        "type": "string",
        "description": "Portal unique name (path parameter). Provide the portal identifier as defined in the account.",
        "minLength": 1,
        "maxLength": 255
      }
    },
    "required": [
      "portal"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Output reference

Standard tool result payload.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `result.data` | `object` | Yes | — | Response schema for listing portal user types. |
| `result.data.user_type` | `array` | Yes | — | Array of portal user type objects. Maximum items: 1000. |
| `result.data.user_type[].id` | `string` | Yes | — | User type id (long as string). Maximum length: 32. |
| `result.data.user_type[].default` | `boolean` | Yes | — | Indicates if this is the default user type. |
| `result.data.user_type[].personality_module` | `object` | Yes | — | Personality module details. |
| `result.data.user_type[].personality_module.api_name` | `string` | Yes | — | API name of the personality module. Maximum length: 255. |
| `result.data.user_type[].personality_module.id` | `string` | Yes | — | Personality module id. Maximum length: 255. |
| `result.data.user_type[].personality_module.plural_label` | `string` | No | — | Plural label for the personality module. Maximum length: 255. |
| `result.data.user_type[].name` | `string` | Yes | — | Name of the user type. Maximum length: 255. |
| `result.data.user_type[].active` | `boolean` | No | — | Indicates if the user type is active. |
| `result.data.user_type[].modules` | `array` | No | — | Modules accessible by this user type. Maximum items: 100. |
| `result.data.user_type[].modules[].id` | `string` | Yes | — | Module id. Maximum length: 255. |
| `result.data.user_type[].modules[].api_name` | `string` | Yes | — | API name of the module. Maximum length: 255. |
| `result.data.user_type[].modules[].shared_type` | `"public" \| "private"` | Yes | — | Shared type of the module. Allowed: `public`, `private`. |
| `result.data.user_type[].modules[].plural_label` | `string` | No | — | Plural label for the module. Maximum length: 255. |
| `result.data.user_type[].modules[].permissions` | `object` | Yes | — | Permissions for the module. |
| `result.data.user_type[].modules[].permissions.view` | `boolean` | No | — | Permission to view records. |
| `result.data.user_type[].modules[].permissions.edit` | `boolean` | No | — | Permission to edit records. |
| `result.data.user_type[].modules[].permissions.create` | `boolean` | No | — | Permission to create records. |
| `result.data.user_type[].modules[].permissions.delete` | `boolean` | No | — | Permission to delete records. |
| `result.data.user_type[].modules[].permissions.edit_shared_records` | `boolean` | No | — | Permission to edit shared records. |
| `result.data.user_type[].modules[].permissions.create_attachment` | `boolean` | No | — | Permission to create attachments. |
| `result.data.user_type[].modules[].permissions.delete_attachment` | `boolean` | No | — | Permission to delete attachments. |
| `result.data.user_type[].modules[].fields` | `array` | Yes | — | Fields accessible in the module. Maximum items: 100. |
| `result.data.user_type[].modules[].fields[].id` | `string` | Yes | — | Field id. Maximum length: 255. |
| `result.data.user_type[].modules[].fields[].api_name` | `string` | No | — | API name of the field. Maximum length: 255. |
| `result.data.user_type[].modules[].fields[].read_only` | `boolean` | No | — | Indicates if the field is read-only. |
| `result.data.user_type[].modules[].fields[].permissions` | `array` | No | — | Permissions for the field. Maximum items: 10. |
| `result.data.user_type[].modules[].filters` | `array \| null` | Yes | — | Filters available for the module. Maximum items: 50. |
| `result.data.user_type[].modules[].filters[].id` | `string` | Yes | — | Filter id. Maximum length: 255. |
| `result.data.user_type[].modules[].filters[].api_name` | `string` | Yes | — | API name of the filter. Maximum length: 255. |
| `result.data.user_type[].modules[].filters[].display_label` | `string` | No | — | Display label for the filter. Maximum length: 255. |
| `result.data.user_type[].modules[].layouts` | `array \| null` | No | — | Layouts available for the module. Maximum items: 20. |
| `result.data.user_type[].modules[].layouts[].id` | `string` | Yes | — | Layout id. Maximum length: 255. |
| `result.data.user_type[].modules[].layouts[].name` | `string` | No | — | Name of the layout. Maximum length: 255. |
| `result.data.user_type[].modules[].layouts[].display_label` | `string \| null` | No | — | Display label for the layout. Maximum length: 255. |
| `result.data.user_type[].modules[].layouts[]._default_view` | `object` | No | — | Default view for the layout. |
| `result.data.user_type[].modules[].layouts[]._default_view.display_label` | `string \| null` | No | — | Display label for the default view. Maximum length: 255. |
| `result.data.user_type[].modules[].layouts[]._default_view.name` | `string` | No | — | Name of the default view. Maximum length: 255. |
| `result.data.user_type[].modules[].layouts[]._default_view.id` | `string` | No | — | ID of the default view. Maximum length: 255. |
| `result.data.user_type[].modules[].layouts[]._default_view.layout` | `string` | No | — | Layout type. Maximum length: 255. |
| `result.data.user_type[].modules[].layouts[]._default_view.type` | `string` | No | — | Type of the default view. Maximum length: 255. |
| `result.data.user_type[].modules[].views` | `object \| null` | No | — | View object for the module. |
| `result.data.user_type[].modules[].views.id` | `string` | Yes | — | View id. Maximum length: 255. |
| `result.data.user_type[].modules[].views.type` | `string` | Yes | — | Type of the view. Maximum length: 255. |
| `result.data.user_type[].modules[].views.name` | `string` | No | — | Name of the view. Maximum length: 255. |
| `result.data.user_type[].modules[].views.display_label` | `string` | No | — | Display label for the view. Maximum length: 255. |
| `result.data.user_type[].modules[].custom_views` | `array \| null` | No | — | Custom views for the module. Maximum items: 50. |
| `result.data.user_type[].modules[].custom_views[].id` | `string` | Yes | — | Custom view id. Maximum length: 255. |
| `result.data.user_type[].modules[].custom_views[].name` | `string` | Yes | — | Name of the custom view. Maximum length: 255. |

The table shows the first 50 fields. Expand the raw schema below for every field.

> [!NOTE]
>
> This output schema is too large for an inline display. Read the complete live contract with `deepline describe zoho_crm_portal_user_type_get_portal_user_types --json`.

## 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](https://deepline.com/docs/sdk-v2/quickstart.md)
* [SDK reference](https://deepline.com/docs/sdk-v2/sdk-reference.md)
* [Run tools across a CSV](https://deepline.com/docs/sdk-v2/batch-csv.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.