> ## 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: Opportunity People Index

> List the people linked to Salesloft opportunities, filtered by person or opportunity. Includes inputs, outputs, SDK V2 examples, and Deepline cost.

List the people linked to Salesloft opportunities, filtered by person or opportunity.

> [!NOTE]
>
> Tool ID: `salesloft_opportunity_people_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_opportunity_people_index',
  {
    "ids": [
      123
    ],
    "person_id": 123,
    "opportunity_id": [
      123
    ]
  },
);

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

### CLI

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline tools execute salesloft_opportunity_people_index --input '{
  "ids": [
    123
  ],
  "person_id": 123,
  "opportunity_id": [
    123
  ]
}' --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": 123,
      "person_id": 123,
      "opportunity_id": 123
    }
  ]
}
```

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

## Input reference

Lists associations between Salesloft people and opportunities that have been created by Salesloft or created via API.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `payload.ids` | `array` | No | — | IDs of the records to fetch. If a record can't be found, that record won't be returned and your request will be successful |
| `payload.person_id` | `integer` | No | — | Filters to only opportunities associated with the given person |
| `payload.opportunity_id` | `array` | No | — | IDs of opportunities to fetch. If a record can't be found, that record won't be returned and your request will be successful |
| `payload.created_at` | `object` | No | — | Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision. |
| `payload.updated_at` | `object` | No | — | Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision. |
| `payload.sort_by` | `string` | No | — | Key to sort on, must be one of: created\_at, opportunity\_id, person\_id, updated\_at. Defaults to updated\_at |
| `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": "Lists associations between Salesloft people and opportunities that have been created by Salesloft or created via API.",
    "properties": {
      "ids": {
        "type": "array",
        "description": "IDs of the records to fetch. If a record can't be found, that record won't be returned and your request will be successful",
        "items": {
          "type": "integer"
        }
      },
      "person_id": {
        "type": "integer",
        "description": "Filters to only opportunities associated with the given person"
      },
      "opportunity_id": {
        "type": "array",
        "description": "IDs of opportunities to fetch. If a record can't be found, that record won't be returned and your request will be successful",
        "items": {
          "type": "integer"
        }
      },
      "created_at": {
        "type": "object",
        "description": "Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.",
        "properties": {
          "gt": {
            "type": "string",
            "description": "Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."
          },
          "gte": {
            "type": "string",
            "description": "Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."
          },
          "lt": {
            "type": "string",
            "description": "Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."
          },
          "lte": {
            "type": "string",
            "description": "Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."
          }
        },
        "required": [],
        "additionalProperties": false
      },
      "updated_at": {
        "type": "object",
        "description": "Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision.",
        "properties": {
          "gt": {
            "type": "string",
            "description": "Returns all matching records that are greater than the provided iso8601 timestamp. The comparison is done using microsecond precision."
          },
          "gte": {
            "type": "string",
            "description": "Returns all matching records that are greater than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."
          },
          "lt": {
            "type": "string",
            "description": "Returns all matching records that are less than the provided iso8601 timestamp. The comparison is done using microsecond precision."
          },
          "lte": {
            "type": "string",
            "description": "Returns all matching records that are less than or equal to the provided iso8601 timestamp. The comparison is done using microsecond precision."
          }
        },
        "required": [],
        "additionalProperties": false
      },
      "sort_by": {
        "type": "string",
        "description": "Key to sort on, must be one of: created_at, opportunity_id, person_id, updated_at. Defaults to updated_at"
      },
      "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` | `integer` | No | — | ID of OpportunityPerson record |
| `result.data[].person_id` | `integer` | No | — | ID of the Salesloft Person |
| `result.data[].opportunity_id` | `integer` | No | — | ID of the Salesloft Opportunity |
| `result.data[].opportunity_crm_id` | `string` | No | — | Opportunity CRM ID |
| `result.data[].person_crm_id` | `string` | No | — | Person CRM ID |
| `result.data[].crm_id` | `string` | No | — | CRM ID of the Association object, ie the OpportunityContactRole |
| `result.data[].created_at` | `string` | No | — | Datetime of when the OpportunityPerson was created Format: `date-time`. |
| `result.data[].updated_at` | `string` | No | — | Datetime of when the OpportunityPerson was last updated Format: `date-time`. |
| `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": "integer",
              "description": "ID of OpportunityPerson record"
            },
            "person_id": {
              "type": "integer",
              "description": "ID of the Salesloft Person"
            },
            "opportunity_id": {
              "type": "integer",
              "description": "ID of the Salesloft Opportunity"
            },
            "opportunity_crm_id": {
              "type": "string",
              "description": "Opportunity CRM ID"
            },
            "person_crm_id": {
              "type": "string",
              "description": "Person CRM ID"
            },
            "crm_id": {
              "type": "string",
              "description": "CRM ID of the Association object, ie the OpportunityContactRole"
            },
            "created_at": {
              "type": "string",
              "description": "Datetime of when the OpportunityPerson was created",
              "format": "date-time"
            },
            "updated_at": {
              "type": "string",
              "description": "Datetime of when the OpportunityPerson was last updated",
              "format": "date-time"
            }
          },
          "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.