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

# Salesloft: Custom Roles Index

> List the custom user roles (other than Admin and User) defined in Salesloft. Includes SDK V2 examples, input constraints, response fields, and Deepline cost.

List the custom user roles (other than Admin and User) defined in Salesloft.

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

## 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(
  'salesloft_custom_roles_index',
  {
    "ids": [
      "id_123"
    ],
    "sort_by": "example",
    "sort_direction": "example"
  },
);

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

### CLI

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline tools execute salesloft_custom_roles_index --input '{
  "ids": [
    "id_123"
  ],
  "sort_by": "example",
  "sort_direction": "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": [
    {
      "id": "id_123",
      "name": "Example",
      "permissions": [
        "example"
      ]
    }
  ]
}
```

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

## Input reference

Fetches multiple custom role records. The records can be filtered, and sorted according to the respective parameters. A custom role is any role that is not Admin or User.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `payload.ids` | `array` | No | — | IDs of roles to fetch. |
| `payload.sort_by` | `string` | No | — | Key to sort on, must be one of: id, name. Defaults to id |
| `payload.sort_direction` | `string` | No | — | Direction to sort in, must be one of: ASC, DESC. Defaults to DESC |
| `payload.per_page` | `integer` | No | — | How many records to show per page in the range \[1, 100]. Defaults to 25 |
| `payload.page` | `integer` | No | — | The current page to fetch results from. Defaults to 1 |
| `payload.include_paging_counts` | `boolean` | No | — | Whether to include total\_pages and total\_count in the metadata. Defaults to false |
| `payload.limit_paging_counts` | `boolean` | No | — | Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total\_count and total\_pages data |

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

  ### Input JSON Schema

  ```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
  {
    "type": "object",
    "description": "Fetches multiple custom role records. The records can be filtered, and sorted according to the respective parameters. A custom role is any role that is not Admin or User.",
    "properties": {
      "ids": {
        "type": "array",
        "description": "IDs of roles to fetch.",
        "items": {
          "type": "string"
        }
      },
      "sort_by": {
        "type": "string",
        "description": "Key to sort on, must be one of: id, name. Defaults to id"
      },
      "sort_direction": {
        "type": "string",
        "description": "Direction to sort in, must be one of: ASC, DESC. Defaults to DESC"
      },
      "per_page": {
        "type": "integer",
        "description": "How many records to show per page in the range [1, 100]. Defaults to 25"
      },
      "page": {
        "type": "integer",
        "description": "The current page to fetch results from. Defaults to 1"
      },
      "include_paging_counts": {
        "type": "boolean",
        "description": "Whether to include total_pages and total_count in the metadata. Defaults to false"
      },
      "limit_paging_counts": {
        "type": "boolean",
        "description": "Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data"
      }
    },
    "required": [],
    "additionalProperties": false
  }
  ```
</details>

## Output reference

Standard tool result payload.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `result.data` | `array` | Yes | — | Provider response payload. |
| `result.data[].id` | `string` | No | — | ID of the custom role |
| `result.data[].name` | `string` | No | — | Name of the custom role |
| `result.data[].permissions` | `array` | No | — | List of permissions assigned to this custom role |
| `result.meta` | `object` | No | — | Additional response metadata (status, paging). |

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

  ### Output JSON Schema

  ```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
  {
    "type": "object",
    "description": "Standard tool result payload.",
    "properties": {
      "data": {
        "type": "array",
        "description": "Provider response payload.",
        "items": {
          "type": "object",
          "description": "Provider response payload.",
          "properties": {
            "id": {
              "type": "string",
              "description": "ID of the custom role"
            },
            "name": {
              "type": "string",
              "description": "Name of the custom role"
            },
            "permissions": {
              "type": "array",
              "description": "List of permissions assigned to this custom role",
              "items": {
                "type": "string"
              }
            }
          },
          "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

* [Salesloft provider guide](https://deepline.com/docs/providers/salesloft/guide.md)
* [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.