> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended** (the `-y` flags skip prompts, so the command runs without an interactive terminal):
> ```bash
> npx -y @scalekit-inc/cli setup -y
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup -y
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for other Agent Skills-compatible agents in `~/.agents/skills`.
> Skills: integrate-agentkit, implement-saaskit, add-mcp-oauth, implement-sso, implement-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Connect AI agents to Salesloft

The Salesloft connector lets your AI agent act in each user's Salesloft account. Each user signs in to Salesloft once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 56 tools.

**Authentication:** OAuth 2.0
**Categories:** CRM & Sales, Automation, Communication
**Tools:** 56: 38 read, 13 write, 5 destructive
**Users sign in with:** OAuth
**OAuth app:** Your own Salesloft app
**Built by:** Scalekit connector
**Try it:** [Playground in the Scalekit dashboard](https://app.scalekit.com/ws/signup?sk_intent=playground&provider=SALESLOFT)

## Setup

1. ### Install the SDK

   **Node.js**

   ```bash
   npm install @scalekit-sdk/node dotenv
   ```

   **Python**

   ```bash
   pip install scalekit-sdk-python python-dotenv
   ```

2. ### Set your credentials

   Add your Scalekit credentials to your `.env` file. Find values in **[app.scalekit.com](https://app.scalekit.com)** > **Developers** > **API Credentials**.

   ```sh title=".env"
   SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
   SCALEKIT_CLIENT_ID=<your-client-id>
   SCALEKIT_CLIENT_SECRET=<your-client-secret>
   ```

3. ### Create the Salesloft connection

   In **AgentKit > Connections**, create a Salesloft connection and copy its redirect URI. The name you give it is the `connection_name` your code passes. See [Configure connections](/agentkit/connections/).

4. ### Register an OAuth app

   Salesloft connections use your own OAuth app. Register one with Salesloft and add the redirect URI you copied.

   Then enter the app's Client ID and Client Secret on the Salesloft connection.

   **Console steps with screenshots:**

   Register your Scalekit environment with the Salesloft connector so Scalekit handles the OAuth 2.0 flow and token lifecycle for you. The connection name you create will be used to identify and invoke the connection programmatically.

   1. ### Create a Salesloft OAuth application

      - Sign in to [Salesloft](https://accounts.salesloft.com) and go to **Settings** → **Your Applications** → **OAuth Applications**.
      - Click **+ New Application**.
      - Fill in the application name (e.g., `My Sales Agent`) and description.
      - In the **Redirect URI** field, paste the redirect URI from Scalekit (see step 2 — you can return to add it after).
      - Under **Scopes**, select the permissions your agent needs:

        | Scope | Enables |
        | --- | --- |
        | `read` | Read access to contacts, cadences, and activities |
        | `write` | Create and update records |

      - Click **Save**. On the application detail page, copy your **Client ID** and **Client Secret**.

      > Image: Salesloft OAuth application detail page showing the Client ID and Client Secret fields with Copy buttons

      > caution: Save your client secret
      >
      > The client secret is shown only once. Copy it before leaving the page.

   2. ### Create a connection in Scalekit

      - In [Scalekit dashboard](https://app.scalekit.com), go to **AgentKit** > **Connections** > **Create Connection**. Find **Salesloft** and click **Create**.
      - Click **Use your own credentials** and copy the **Redirect URI**:
        `https://<SCALEKIT_ENVIRONMENT_URL>/sso/v1/oauth/<CONNECTION_ID>/callback`
      - Return to your Salesloft OAuth app and add this redirect URI.
      - Back in Scalekit, enter your **Client ID**, **Client Secret**, and the **Permissions** (scopes) you selected.
      - Note the **Connection name** (e.g., `salesloft`) — use this as `connection_name` in your code.
      - Click **Save**.

   3. ### Add a connected account

      **Via dashboard (for testing)**
      - Open the connection and click the **Connected Accounts** tab → **Add account**.
      - Enter a **User ID** and click **Save**. You will be redirected to Salesloft to authorize access.

      **Via API (for production)**

        **Node.js**

        ```typescript
        const { link } = await scalekit.actions.getAuthorizationLink({
          connectionName: 'salesloft',
          identifier: 'user_123',
        });
        // Redirect your user to `link` to authorize access
        console.log('Authorize at:', link);
        ```

        **Python**

        ```python
        response = scalekit_client.actions.get_authorization_link(
            connection_name="salesloft",
            identifier="user_123"
        )
        # Redirect your user to response.link to authorize access
        print("Authorize at:", response.link)
        ```

      > tip: Token refresh
      >
      > Salesloft access tokens expire periodically. Scalekit automatically refreshes them — no re-authorization needed for active sessions.

5. ### Authorize a user and make your first call

   **Node.js** (`quickstart.mts`)

   ```typescript
   import { ScalekitClient } from '@scalekit-sdk/node'
   import 'dotenv/config'
   import { createInterface } from 'node:readline/promises'

   const scalekit = new ScalekitClient(
     process.env.SCALEKIT_ENVIRONMENT_URL,
     process.env.SCALEKIT_CLIENT_ID,
     process.env.SCALEKIT_CLIENT_SECRET,
   )
   const actions = scalekit.actions

   const connector = 'salesloft'
   const identifier = 'user_123'

   // Generate an authorization link for the user
   const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
   console.log('Authorize Salesloft:', link)
   const rl = createInterface({ input: process.stdin, output: process.stdout })
   await rl.question('Press Enter after authorizing...')
   rl.close()

   // Make your first call
   const result = await actions.executeTool({
     connector,
     identifier,
     toolName: 'salesloft_account_stages_list',
     toolInput: {},
   })
   console.log(result)
   ```

   ```bash
   npx tsx quickstart.mts
   ```

   **Python** (`quickstart.py`)

   ```python
   import os
   from scalekit import ScalekitClient
   from dotenv import load_dotenv
   load_dotenv()

   scalekit_client = ScalekitClient(
       env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),
       client_id=os.getenv("SCALEKIT_CLIENT_ID"),
       client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),
   )
   actions = scalekit_client.actions

   connection_name = "salesloft"
   identifier = "user_123"

   # Generate an authorization link for the user
   link_response = actions.get_authorization_link(
       connection_name=connection_name,
       identifier=identifier,
   )
   print("Authorize Salesloft:", link_response.link)
   input("Press Enter after authorizing...")

   # Make your first call
   result = actions.execute_tool(
       tool_input={},
       tool_name="salesloft_account_stages_list",
       connection_name=connection_name,
       identifier=identifier,
   )
   print(result)
   ```

   ```bash
   python quickstart.py
   ```

   Each user signs in once. See [Authorize a user](/agentkit/tools/authorize/) for the full flow and statuses.

## Tools

Pass the exact name to `execute_tool`, with an input like each tool's example. To ask for a tool that's missing, use the [request form](https://scalekitsupport.portal.usepylon.com/forms/request-a-connector-tool).

**Node.js**

```typescript
const result = await actions.executeTool({
  toolName: 'salesloft_account_stages_list',
  toolInput: {},
  connector: 'salesloft',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="salesloft_account_stages_list",
    tool_input={},
    connection_name="salesloft",
    identifier="user_123",
)
```

`result.data` is the app's response as JSON, and `result.execution_id` (`executionId` in Node.js) is the ID of the call.

### `salesloft_account_stages_list`

List Account Stages · Read-only

Fetch the account pipeline stages configured in Salesloft -- useful context for interpreting or setting an account's company_stage_id. The records can be filtered, paged, and sorted.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `created_at_gt` (`string`, optional): Filter stages created after this ISO8601 timestamp (exclusive)
- `created_at_lt` (`string`, optional): Filter stages created before this ISO8601 timestamp (exclusive)
- `ids` (`string`, optional): Filter by specific account stage IDs. Comma-separated list of IDs.
- `include_paging_counts` (`boolean`, optional): Whether to include total count and page count in the response metadata
- `limit_paging_counts` (`boolean`, optional): Specifies whether the max limit of 10k records should be applied to pagination counts
- `name` (`string`, optional): Filter account stages by name.
- `page` (`integer`, optional): Page number for pagination, starting from 1
- `per_page` (`integer`, optional): Number of results per page in the range [1, 100]. Defaults to 25.
- `sort_by` (`string`, optional): Field to sort results by. Common values: name, created_at, updated_at. Defaults to updated_at.
- `sort_direction` (`string`, optional): Direction of sort: ASC or DESC. Defaults to DESC.
- `updated_at_gt` (`string`, optional): Filter stages updated after this ISO8601 timestamp (exclusive)
- `updated_at_lt` (`string`, optional): Filter stages updated before this ISO8601 timestamp (exclusive)

Example input: `{}`

### `salesloft_accounts_get`

Get Account · Read-only

Fetch a single account record from Salesloft by its ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `account_id` (`integer`, required): The unique identifier of the account to fetch

Example input: `{"account_id":1}`

### `salesloft_accounts_list`

List Accounts · Read-only

Fetch multiple account records from Salesloft. The records can be filtered by domain, owner, tags, timestamps, and more, and paged and sorted according to the respective parameters.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `account_stage_id` (`integer`, optional): Filter accounts by account stage ID
- `account_tier_id` (`integer`, optional): Filter accounts by account tier ID
- `account_type` (`string`, optional): Filter accounts by type (e.g. prospect, customer, partner)
- `archived` (`boolean`, optional): Filter to return archived accounts only
- `city` (`string`, optional): Filter accounts by city
- `country` (`string`, optional): Filter accounts by country
- `created_at_gt` (`string`, optional): Filter accounts created after this ISO8601 timestamp (exclusive)
- `created_at_gte` (`string`, optional): Filter accounts created at or after this ISO8601 timestamp (inclusive)
- `created_at_lt` (`string`, optional): Filter accounts created before this ISO8601 timestamp (exclusive)
- `created_at_lte` (`string`, optional): Filter accounts created at or before this ISO8601 timestamp (inclusive)
- `crm_id` (`string`, optional): Filter accounts by CRM record ID
- `domain` (`string`, optional): Filter accounts by domain. Domains are unique and lowercase.
- `has_open_opportunity` (`boolean`, optional): Filter to accounts that have an open opportunity
- `ids` (`string`, optional): Filter by specific account IDs. Comma-separated list of IDs.
- `include_paging_counts` (`boolean`, optional): Whether to include total count and page count in the response metadata
- `industry` (`string`, optional): Filter accounts by industry
- `last_contacted_gt` (`string`, optional): Filter accounts last contacted after this ISO8601 timestamp (exclusive)
- `last_contacted_gte` (`string`, optional): Filter accounts last contacted at or after this ISO8601 timestamp (inclusive)
- `last_contacted_lt` (`string`, optional): Filter accounts last contacted before this ISO8601 timestamp (exclusive)
- `last_contacted_lte` (`string`, optional): Filter accounts last contacted at or before this ISO8601 timestamp (inclusive)
- `limit_paging_counts` (`boolean`, optional): Limit the paging counts returned in the response metadata
- `locales` (`string`, optional): Filter accounts by locale. Comma-separated list of locales.
- `name` (`string`, optional): Filter accounts by name
- `owner_crm_id` (`string`, optional): Filter accounts by the CRM ID of the owner
- `owner_id` (`integer`, optional): Filter accounts by owner user ID
- `owner_is_active` (`boolean`, optional): Filter accounts whose owner is active (true) or inactive (false)
- `page` (`integer`, optional): Page number for pagination, starting from 1
- `per_page` (`integer`, optional): Number of results per page in the range [1, 100]. Defaults to 25.
- `prospector_engagement_level` (`string`, optional): Filter accounts by prospector engagement level
- `sort_by` (`string`, optional): Field to sort results by. Accepted values: created_at, updated_at, last_contacted_at, account_stage, account_stage_name, account_tier, account_tier_name, name, counts_people, prospector_engagement_score. Defaults to updated_at.
- `sort_direction` (`string`, optional): Direction of sort: ASC or DESC. Defaults to DESC.
- `state` (`string`, optional): Filter accounts by state or region
- `tag` (`string`, optional): Filter accounts by tag name
- `tag_id` (`integer`, optional): Filter accounts by tag ID
- `updated_at_gt` (`string`, optional): Filter accounts updated after this ISO8601 timestamp (exclusive)
- `updated_at_gte` (`string`, optional): Filter accounts updated at or after this ISO8601 timestamp (inclusive)
- `updated_at_lt` (`string`, optional): Filter accounts updated before this ISO8601 timestamp (exclusive)
- `updated_at_lte` (`string`, optional): Filter accounts updated at or before this ISO8601 timestamp (inclusive)
- `website` (`string`, optional): Filter accounts by website URL
- `your_related_accounts_active` (`boolean`, optional): Filter to accounts where you have an active relationship

Example input: `{}`

### `salesloft_actions_get`

Get Action · Read-only

Fetch a single action record from Salesloft by its ID. Actions represent individual cadence steps that are due to be performed.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `action_id` (`integer`, required): The unique identifier of the action to fetch

Example input: `{"action_id":1}`

### `salesloft_actions_list`

List Actions · Read-only

Fetch multiple action records from Salesloft. Actions are individual steps within cadences that are due to be performed. The records can be filtered, paged, and sorted.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `cadence_id` (`integer`, optional): Filter actions by cadence ID
- `due_on_gt` (`string`, optional): Filter actions with due date after this ISO8601 timestamp (exclusive)
- `due_on_gte` (`string`, optional): Filter actions with due date at or after this ISO8601 timestamp (inclusive)
- `due_on_lt` (`string`, optional): Filter actions with due date before this ISO8601 timestamp (exclusive)
- `due_on_lte` (`string`, optional): Filter actions with due date at or before this ISO8601 timestamp (inclusive)
- `ids` (`string`, optional): Filter by specific action IDs. Comma-separated list of IDs.
- `include_paging_counts` (`boolean`, optional): Whether to include total count and page count in the response metadata
- `limit_paging_counts` (`boolean`, optional): Limit the paging counts returned in the response metadata
- `multitouch_group_id` (`integer`, optional): Filter actions by multitouch group ID
- `page` (`integer`, optional): Page number for pagination, starting from 1
- `per_page` (`integer`, optional): Number of results per page in the range [1, 100]. Defaults to 25.
- `person_id` (`integer`, optional): Filter actions by associated person ID
- `sort_by` (`string`, optional): Field to sort results by. Accepted values: created_at, updated_at. Defaults to updated_at.
- `sort_direction` (`string`, optional): Direction of sort: ASC or DESC. Defaults to DESC.
- `step_id` (`integer`, optional): Filter actions by cadence step ID
- `type` (`string`, optional): Filter actions by type (e.g. email, phone, other)
- `updated_at_gt` (`string`, optional): Filter actions updated after this ISO8601 timestamp (exclusive)
- `updated_at_gte` (`string`, optional): Filter actions updated at or after this ISO8601 timestamp (inclusive)
- `updated_at_lt` (`string`, optional): Filter actions updated before this ISO8601 timestamp (exclusive)
- `updated_at_lte` (`string`, optional): Filter actions updated at or before this ISO8601 timestamp (inclusive)
- `user_guid` (`string`, optional): Filter actions by user GUID

Example input: `{}`

### `salesloft_activity_histories_list`

List Activity Histories · Read-only

Fetch the customer's past activities from the Salesloft Activity Feed, a single combined stream of everything that happened across the account: calls, emails sent/received, notes, meetings booked/held, completed cadence steps, successes, tasks, voicemails, and opportunity changes.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `page` (`integer`, optional): Page number for pagination, starting from 1.
- `per_page` (`integer`, optional): Number of results per page in the range [1, 100]. Defaults to 25.

Example input: `{}`

### `salesloft_cadence_memberships_get`

Get Cadence Membership · Read-only

Fetch a single cadence membership record from Salesloft by its ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `membership_id` (`integer`, required): The unique identifier of the cadence membership to fetch

Example input: `{"membership_id":1}`

### `salesloft_cadence_memberships_list`

List Cadence Memberships · Read-only

Fetch multiple cadence membership records from Salesloft. A cadence membership is the association between a person and their current and historical time on a cadence.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `cadence_id` (`integer`, optional): Filter memberships by cadence ID
- `currently_on_cadence` (`boolean`, optional): Filter to memberships where the person is currently active on the cadence
- `ids` (`string`, optional): Filter by specific membership IDs. Comma-separated list of IDs.
- `include_paging_counts` (`boolean`, optional): Whether to include total count and page count in the response metadata
- `limit_paging_counts` (`boolean`, optional): Limit the paging counts returned in the response metadata
- `page` (`integer`, optional): Page number for pagination, starting from 1
- `per_page` (`integer`, optional): Number of results per page in the range [1, 100]. Defaults to 25.
- `person_id` (`integer`, optional): Filter memberships by person ID
- `sort_by` (`string`, optional): Field to sort results by. Accepted values: added_at, updated_at. Defaults to updated_at.
- `sort_direction` (`string`, optional): Direction of sort: ASC or DESC. Defaults to DESC.
- `updated_at_gt` (`string`, optional): Filter memberships updated after this ISO8601 timestamp (exclusive)
- `updated_at_gte` (`string`, optional): Filter memberships updated at or after this ISO8601 timestamp (inclusive)
- `updated_at_lt` (`string`, optional): Filter memberships updated before this ISO8601 timestamp (exclusive)
- `updated_at_lte` (`string`, optional): Filter memberships updated at or before this ISO8601 timestamp (inclusive)

Example input: `{}`

### `salesloft_cadences_get`

Get Cadence · Read-only

Fetch a single cadence record from Salesloft by its ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `cadence_id` (`integer`, required): The unique identifier of the cadence to fetch

Example input: `{"cadence_id":1}`

### `salesloft_cadences_list`

List Cadences · Read-only

Fetch multiple cadence records from Salesloft. The records can be filtered, paged, and sorted according to the respective parameters.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `archived` (`boolean`, optional): Filter to return archived cadences
- `group_ids` (`string`, optional): Filter cadences by group IDs. Comma-separated list or JSON array string.
- `ids` (`string`, optional): Filter by specific cadence IDs. Comma-separated list of IDs.
- `include_paging_counts` (`boolean`, optional): Whether to include total count and page count in the response metadata
- `limit_paging_counts` (`boolean`, optional): Limit the paging counts returned in the response metadata
- `name` (`string`, optional): Filter cadences by name
- `override_contact_restrictions` (`boolean`, optional): Override contact restrictions when filtering cadences
- `owned_by_guid` (`string`, optional): Filter cadences by owner GUID
- `page` (`integer`, optional): Page number for pagination, starting from 1
- `pending_actions_assigned_to` (`string`, optional): Filter cadences by the user GUID that pending actions are assigned to
- `people_addable` (`boolean`, optional): Filter to cadences that people can be added to
- `per_page` (`integer`, optional): Number of results per page in the range [1, 100]. Defaults to 25.
- `shared` (`boolean`, optional): Filter to cadences that are shared
- `sort_by` (`string`, optional): Field to sort results by. Accepted values: created_at, updated_at, name. Defaults to updated_at.
- `sort_direction` (`string`, optional): Direction of sort: ASC or DESC. Defaults to DESC.
- `tag_ids` (`string`, optional): Filter cadences by tag IDs. Comma-separated list of tag IDs.
- `team_cadence` (`boolean`, optional): Filter by team cadences (true) or personal cadences (false)
- `updated_at_gt` (`string`, optional): Filter cadences updated after this ISO8601 timestamp (exclusive)
- `updated_at_gte` (`string`, optional): Filter cadences updated at or after this ISO8601 timestamp (inclusive)
- `updated_at_lt` (`string`, optional): Filter cadences updated before this ISO8601 timestamp (exclusive)
- `updated_at_lte` (`string`, optional): Filter cadences updated at or before this ISO8601 timestamp (inclusive)

Example input: `{}`

### `salesloft_calls_get`

Get Call · Read-only

Fetch a single call activity record from Salesloft by its ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `call_id` (`integer`, required): The unique identifier of the call to fetch

Example input: `{"call_id":1}`

### `salesloft_calls_list`

List Calls · Read-only

Fetch multiple call activity records from Salesloft. The records can be filtered by person, user, sentiment, disposition, and timestamps, and paged and sorted.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `connected` (`boolean`, optional): Filter to calls where a connection was made
- `created_at_gt` (`string`, optional): Filter calls created after this ISO8601 timestamp (exclusive)
- `created_at_gte` (`string`, optional): Filter calls created at or after this ISO8601 timestamp (inclusive)
- `created_at_lt` (`string`, optional): Filter calls created before this ISO8601 timestamp (exclusive)
- `created_at_lte` (`string`, optional): Filter calls created at or before this ISO8601 timestamp (inclusive)
- `disposition` (`string`, optional): Filter calls by disposition (e.g. answered, voicemail, no_answer)
- `ids` (`string`, optional): Filter by specific call IDs. Comma-separated list of IDs.
- `include_paging_counts` (`boolean`, optional): Whether to include total count and page count in the response metadata
- `limit_paging_counts` (`boolean`, optional): Limit the paging counts returned in the response metadata
- `page` (`integer`, optional): Page number for pagination, starting from 1
- `per_page` (`integer`, optional): Number of results per page in the range [1, 100]. Defaults to 25.
- `person_id` (`integer`, optional): Filter calls by associated person ID
- `positive` (`boolean`, optional): Filter to calls marked as positive
- `sentiment` (`string`, optional): Filter calls by sentiment (e.g. positive, neutral, negative)
- `sort_by` (`string`, optional): Field to sort results by. Accepted values: created_at, updated_at. Defaults to updated_at.
- `sort_direction` (`string`, optional): Direction of sort: ASC or DESC. Defaults to DESC.
- `updated_at_gt` (`string`, optional): Filter calls updated after this ISO8601 timestamp (exclusive)
- `updated_at_gte` (`string`, optional): Filter calls updated at or after this ISO8601 timestamp (inclusive)
- `updated_at_lt` (`string`, optional): Filter calls updated before this ISO8601 timestamp (exclusive)
- `updated_at_lte` (`string`, optional): Filter calls updated at or before this ISO8601 timestamp (inclusive)
- `user_guid` (`string`, optional): Filter calls by user GUID

Example input: `{}`

### `salesloft_conversations_list`

List Conversations · Read-only

Fetch call/conversation-intelligence records (Salesloft Conversations) -- recorded and transcribed calls with engagement analytics. The records can be filtered, paged, and sorted. Requires the 'conversations:read' OAuth scope and the Conversations add-on to be enabled on the connected Salesloft account; if the add-on is not enabled, calls to this endpoint will fail even with valid credentials.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `call_id` (`string`, optional): Filter conversations by the associated call ID. Comma-separated list for multiple values.
- `created_at_gt` (`string`, optional): Filter conversations created after this ISO8601 timestamp (exclusive)
- `created_at_lt` (`string`, optional): Filter conversations created before this ISO8601 timestamp (exclusive)
- `ids` (`string`, optional): Filter by specific conversation IDs. Comma-separated list of IDs.
- `include_paging_counts` (`boolean`, optional): Whether to include total count and page count in the response metadata
- `limit_paging_counts` (`boolean`, optional): Specifies whether the max limit of 10k records should be applied to pagination counts
- `page` (`integer`, optional): Page number for pagination, starting from 1
- `per_page` (`integer`, optional): Number of results per page in the range [1, 100]. Defaults to 25.
- `sort_by` (`string`, optional): Field to sort results by. Common values: created_at, updated_at. Defaults to updated_at.
- `sort_direction` (`string`, optional): Direction of sort: ASC or DESC. Defaults to DESC.
- `updated_at_gt` (`string`, optional): Filter conversations updated after this ISO8601 timestamp (exclusive)
- `updated_at_lt` (`string`, optional): Filter conversations updated before this ISO8601 timestamp (exclusive)
- `user_id` (`string`, optional): Filter conversations by the user (rep) who took the call. Comma-separated list for multiple values.

Example input: `{}`

### `salesloft_custom_fields_list`

List Custom Fields · Read-only

Fetch the custom field definitions configured on the Salesloft team -- useful for discovering valid custom_fields keys before creating or updating people or accounts. The records can be filtered, paged, and sorted.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `created_at_gt` (`string`, optional): Filter custom fields created after this ISO8601 timestamp (exclusive)
- `created_at_lt` (`string`, optional): Filter custom fields created before this ISO8601 timestamp (exclusive)
- `ids` (`string`, optional): Filter by specific custom field IDs. Comma-separated list of IDs.
- `include_paging_counts` (`boolean`, optional): Whether to include total count and page count in the response metadata
- `limit_paging_counts` (`boolean`, optional): Specifies whether the max limit of 10k records should be applied to pagination counts
- `name` (`string`, optional): Filter custom fields by name.
- `page` (`integer`, optional): Page number for pagination, starting from 1
- `per_page` (`integer`, optional): Number of results per page in the range [1, 100]. Defaults to 25.
- `sort_by` (`string`, optional): Field to sort results by. Common values: name, created_at, updated_at. Defaults to updated_at.
- `sort_direction` (`string`, optional): Direction of sort: ASC or DESC. Defaults to DESC.
- `updated_at_gt` (`string`, optional): Filter custom fields updated after this ISO8601 timestamp (exclusive)
- `updated_at_lt` (`string`, optional): Filter custom fields updated before this ISO8601 timestamp (exclusive)

Example input: `{}`

### `salesloft_email_templates_get`

Get Email Template · Read-only

Fetch a single email template record from Salesloft by its ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `email_template_id` (`integer`, required): The unique identifier of the email template to fetch
- `include_signature` (`boolean`, optional): Whether to include the email signature in the response

Example input: `{"email_template_id":1}`

### `salesloft_email_templates_list`

List Email Templates · Read-only

Fetch multiple email template records from Salesloft. The records can be filtered by title, tag, group, cadence, and timestamps, and paged and sorted.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `cadence_id` (`integer`, optional): Filter email templates by cadence ID
- `filter_by_owner` (`boolean`, optional): Filter to return only templates owned by the authenticated user
- `group_id` (`integer`, optional): Filter email templates by group ID
- `ids` (`string`, optional): Filter by specific email template IDs. Comma-separated list of IDs.
- `include_archived_templates` (`boolean`, optional): Whether to include archived templates in the results
- `include_cadence_templates` (`boolean`, optional): Whether to include cadence-specific templates in the results
- `include_paging_counts` (`boolean`, optional): Whether to include total count and page count in the response metadata
- `limit_paging_counts` (`boolean`, optional): Limit the paging counts returned in the response metadata
- `linked_to_team_template` (`boolean`, optional): Filter to return only templates linked to a team template
- `page` (`integer`, optional): Page number for pagination, starting from 1
- `per_page` (`integer`, optional): Number of results per page in the range [1, 100]. Defaults to 25.
- `search` (`string`, optional): Filter email templates by title or subject
- `sort_by` (`string`, optional): Field to sort results by. Accepted values: created_at, updated_at, last_used_at. Defaults to updated_at.
- `sort_direction` (`string`, optional): Direction of sort: ASC or DESC. Defaults to DESC.
- `tag` (`string`, optional): Filter email templates by tag name
- `tag_ids` (`string`, optional): Filter email templates by tag IDs. Comma-separated list of tag IDs.
- `updated_at_gt` (`string`, optional): Filter templates updated after this ISO8601 timestamp (exclusive)
- `updated_at_gte` (`string`, optional): Filter templates updated at or after this ISO8601 timestamp (inclusive)
- `updated_at_lt` (`string`, optional): Filter templates updated before this ISO8601 timestamp (exclusive)
- `updated_at_lte` (`string`, optional): Filter templates updated at or before this ISO8601 timestamp (inclusive)

Example input: `{}`

### `salesloft_emails_get`

Get Email · Read-only

Fetch a single email activity record from Salesloft by its ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `email_id` (`integer`, required): The unique identifier of the email to fetch
- `scoped_fields` (`string`, optional): Comma-separated list of fields to scope the response to

Example input: `{"email_id":1}`

### `salesloft_emails_list`

List Emails · Read-only

Fetch multiple email activity records from Salesloft. The records can be filtered by person, account, cadence, status, timestamps, and engagement signals, and paged and sorted.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `account_id` (`integer`, optional): Filter emails by associated account ID
- `action_id` (`integer`, optional): Filter emails by action ID
- `bounced` (`boolean`, optional): Filter to only bounced emails
- `cadence_id` (`integer`, optional): Filter emails by cadence ID
- `crm_activity_id` (`string`, optional): Filter emails by CRM activity ID
- `draft_with_ai` (`boolean`, optional): Filter to emails drafted with AI assistance
- `email_addresses` (`string`, optional): Filter emails by recipient email address(es). Comma-separated list.
- `email_template_id` (`integer`, optional): Filter emails by the email template used
- `has_clicks` (`boolean`, optional): Filter to emails that have link clicks
- `has_replies` (`boolean`, optional): Filter to emails that have replies
- `has_views` (`boolean`, optional): Filter to emails that have been viewed/opened
- `ids` (`string`, optional): Filter by specific email IDs. Comma-separated list of IDs.
- `include_paging_counts` (`boolean`, optional): Whether to include total count and page count in the response metadata
- `limit_paging_counts` (`boolean`, optional): Limit the paging counts returned in the response metadata
- `one_off` (`boolean`, optional): Filter to one-off emails (not part of a cadence)
- `page` (`integer`, optional): Page number for pagination, starting from 1
- `per_page` (`integer`, optional): Number of results per page in the range [1, 100]. Defaults to 25.
- `person_id` (`integer`, optional): Filter emails by associated person ID
- `personalization` (`string`, optional): Filter emails by personalization value
- `scoped_fields` (`string`, optional): Comma-separated list of fields to scope the response to
- `sent_at_gt` (`string`, optional): Filter emails sent after this ISO8601 timestamp (exclusive)
- `sent_at_gte` (`string`, optional): Filter emails sent at or after this ISO8601 timestamp (inclusive)
- `sent_at_lt` (`string`, optional): Filter emails sent before this ISO8601 timestamp (exclusive)
- `sent_at_lte` (`string`, optional): Filter emails sent at or before this ISO8601 timestamp (inclusive)
- `sort_by` (`string`, optional): Field to sort results by. Accepted values: updated_at, recipient, send_time, account, subject, views, clicks, replies. Defaults to updated_at.
- `sort_direction` (`string`, optional): Direction of sort: ASC or DESC. Defaults to DESC.
- `status` (`string`, optional): Filter emails by status
- `step_id` (`integer`, optional): Filter emails by cadence step ID
- `updated_at_gt` (`string`, optional): Filter emails updated after this ISO8601 timestamp (exclusive)
- `updated_at_gte` (`string`, optional): Filter emails updated at or after this ISO8601 timestamp (inclusive)
- `updated_at_lt` (`string`, optional): Filter emails updated before this ISO8601 timestamp (exclusive)
- `updated_at_lte` (`string`, optional): Filter emails updated at or before this ISO8601 timestamp (inclusive)
- `user_id` (`integer`, optional): Filter emails by user ID

Example input: `{}`

### `salesloft_groups_list`

List Groups · Read-only

Fetch the Groups (org sub-teams) configured in Salesloft -- useful context for filtering people, cadences, or users by team. The records can be filtered, paged, and sorted.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `created_at_gt` (`string`, optional): Filter groups created after this ISO8601 timestamp (exclusive)
- `created_at_lt` (`string`, optional): Filter groups created before this ISO8601 timestamp (exclusive)
- `ids` (`string`, optional): Filter by specific group IDs. Comma-separated list of IDs.
- `include_paging_counts` (`boolean`, optional): Whether to include total count and page count in the response metadata
- `limit_paging_counts` (`boolean`, optional): Specifies whether the max limit of 10k records should be applied to pagination counts
- `name` (`string`, optional): Filter groups by name.
- `page` (`integer`, optional): Page number for pagination, starting from 1
- `per_page` (`integer`, optional): Number of results per page in the range [1, 100]. Defaults to 25.
- `sort_by` (`string`, optional): Field to sort results by. Common values: name, created_at, updated_at. Defaults to updated_at.
- `sort_direction` (`string`, optional): Direction of sort: ASC or DESC. Defaults to DESC.
- `updated_at_gt` (`string`, optional): Filter groups updated after this ISO8601 timestamp (exclusive)
- `updated_at_lt` (`string`, optional): Filter groups updated before this ISO8601 timestamp (exclusive)

Example input: `{}`

### `salesloft_meetings_list`

List Meetings · Read-only

Fetch multiple meeting records from Salesloft. Meetings are calendar events synced from a connected calendar (e.g. booked or held meetings with a person), and can be filtered and paged.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `page` (`integer`, optional): Page number for pagination, starting from 1.
- `per_page` (`integer`, optional): Number of results per page in the range [1, 100]. Defaults to 25.
- `person_id` (`string`, optional): Filter by the person the meeting is with. Comma-separated list of person IDs for multiple values.
- `start_time_gt` (`string`, optional): Filter meetings starting after this ISO8601 timestamp (exclusive).
- `start_time_lt` (`string`, optional): Filter meetings starting before this ISO8601 timestamp (exclusive).
- `user_id` (`string`, optional): Filter by the Salesloft user who owns the meeting. Comma-separated list of user IDs for multiple values.

Example input: `{}`

### `salesloft_notes_get`

Get Note · Read-only

Fetch a single note record from Salesloft by its ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `note_id` (`integer`, required): The unique identifier of the note to fetch

Example input: `{"note_id":1}`

### `salesloft_notes_list`

List Notes · Read-only

Fetch multiple note records from Salesloft. The records can be filtered by associated object, timestamps, and IDs, and paged and sorted.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `associated_with_id` (`integer`, optional): Filter notes by the ID of the associated person or account. associated_with_type must also be present.
- `associated_with_type` (`string`, optional): Type of the associated object. Accepted values: person, account
- `ids` (`string`, optional): Filter by specific note IDs. Comma-separated list of IDs.
- `include_paging_counts` (`boolean`, optional): Whether to include total count and page count in the response metadata
- `limit_paging_counts` (`boolean`, optional): Limit the paging counts returned in the response metadata
- `page` (`integer`, optional): Page number for pagination, starting from 1
- `per_page` (`integer`, optional): Number of results per page in the range [1, 100]. Defaults to 25.
- `sort_by` (`string`, optional): Field to sort results by. Accepted values: created_at, updated_at. Defaults to updated_at.
- `sort_direction` (`string`, optional): Direction of sort: ASC or DESC. Defaults to DESC.
- `updated_at_gt` (`string`, optional): Filter notes updated after this ISO8601 timestamp (exclusive)
- `updated_at_gte` (`string`, optional): Filter notes updated at or after this ISO8601 timestamp (inclusive)
- `updated_at_lt` (`string`, optional): Filter notes updated before this ISO8601 timestamp (exclusive)
- `updated_at_lte` (`string`, optional): Filter notes updated at or before this ISO8601 timestamp (inclusive)

Example input: `{}`

### `salesloft_opportunities_get`

Get Opportunity · Read-only

Fetch a single Opportunity record from Salesloft by its ID. Returns opportunity data synced from the CRM or created via API.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `opportunity_id` (`integer`, required): The unique identifier of the opportunity to fetch

Example input: `{"opportunity_id":1}`

### `salesloft_opportunities_list`

List Opportunities · Read-only

Fetch multiple Opportunity records from Salesloft -- CRM deals synced from a connected CRM (Salesforce, Dynamics, HubSpot) or created directly via API. The records can be filtered, paged, and sorted. Note: teams using a synced CRM can only read opportunity data here; creates/updates must go through the CRM or the External Mapping upsert endpoint.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `account_id` (`string`, optional): Filter opportunities by linked account ID. Comma-separated list for multiple values.
- `close_date_gt` (`string`, optional): Filter opportunities with a close date after this ISO8601 date (exclusive)
- `close_date_gte` (`string`, optional): Filter opportunities with a close date at or after this ISO8601 date (inclusive)
- `close_date_lt` (`string`, optional): Filter opportunities with a close date before this ISO8601 date (exclusive)
- `close_date_lte` (`string`, optional): Filter opportunities with a close date at or before this ISO8601 date (inclusive)
- `created_at_gt` (`string`, optional): Filter opportunities created after this ISO8601 timestamp (exclusive)
- `created_at_gte` (`string`, optional): Filter opportunities created at or after this ISO8601 timestamp (inclusive)
- `created_at_lt` (`string`, optional): Filter opportunities created before this ISO8601 timestamp (exclusive)
- `created_at_lte` (`string`, optional): Filter opportunities created at or before this ISO8601 timestamp (inclusive)
- `crm_id` (`string`, optional): Filter opportunities by their external CRM record ID. Comma-separated list for multiple values.
- `ids` (`string`, optional): Filter by specific opportunity IDs. Comma-separated list of IDs.
- `include_paging_counts` (`boolean`, optional): Whether to include total count and page count in the response metadata
- `is_closed` (`boolean`, optional): Filter to opportunities that are closed (true) or still open (false)
- `is_won` (`boolean`, optional): Filter to opportunities that were won (true) or lost/open (false)
- `limit_paging_counts` (`boolean`, optional): Specifies whether the max limit of 10k records should be applied to pagination counts
- `name` (`string`, optional): Filter opportunities by name.
- `opportunity_type` (`string`, optional): Filter opportunities by type (e.g. New Business, Renewal, Upsell). Comma-separated list for multiple values.
- `owner_id` (`string`, optional): Filter opportunities by owner user ID. Comma-separated list for multiple values.
- `page` (`integer`, optional): Page number for pagination, starting from 1
- `per_page` (`integer`, optional): Number of results per page in the range [1, 100]. Defaults to 25.
- `sort_by` (`string`, optional): Field to sort results by. Common values: created_at, updated_at, close_date, name. Defaults to updated_at.
- `sort_direction` (`string`, optional): Direction of sort: ASC or DESC. Defaults to DESC.
- `stage_name` (`string`, optional): Filter opportunities by pipeline stage name. Comma-separated list for multiple values.
- `updated_at_gt` (`string`, optional): Filter opportunities updated after this ISO8601 timestamp (exclusive)
- `updated_at_gte` (`string`, optional): Filter opportunities updated at or after this ISO8601 timestamp (inclusive)
- `updated_at_lt` (`string`, optional): Filter opportunities updated before this ISO8601 timestamp (exclusive)
- `updated_at_lte` (`string`, optional): Filter opportunities updated at or before this ISO8601 timestamp (inclusive)

Example input: `{}`

### `salesloft_opportunity_people_list`

List Opportunity People · Read-only

Fetch multiple Opportunity Person records from Salesloft -- the associations between Salesloft people and opportunities, used to represent members of a buying group on a deal. The records can be filtered, paged, and sorted.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `created_at_gt` (`string`, optional): Filter associations created after this ISO8601 timestamp (exclusive)
- `created_at_gte` (`string`, optional): Filter associations created at or after this ISO8601 timestamp (inclusive)
- `created_at_lt` (`string`, optional): Filter associations created before this ISO8601 timestamp (exclusive)
- `created_at_lte` (`string`, optional): Filter associations created at or before this ISO8601 timestamp (inclusive)
- `ids` (`string`, optional): Filter by specific opportunity_people association IDs. Comma-separated list of IDs.
- `include_paging_counts` (`boolean`, optional): Whether to include total count and page count in the response metadata
- `limit_paging_counts` (`boolean`, optional): Specifies whether the max limit of 10k records should be applied to pagination counts
- `opportunity_id` (`string`, optional): Filter associations by opportunity ID. Comma-separated list for multiple values.
- `page` (`integer`, optional): Page number for pagination, starting from 1
- `per_page` (`integer`, optional): Number of results per page in the range [1, 100]. Defaults to 25.
- `person_id` (`string`, optional): Filter associations by person ID. Comma-separated list for multiple values.
- `sort_by` (`string`, optional): Field to sort results by. Common values: created_at, updated_at. Defaults to updated_at.
- `sort_direction` (`string`, optional): Direction of sort: ASC or DESC. Defaults to DESC.
- `updated_at_gt` (`string`, optional): Filter associations updated after this ISO8601 timestamp (exclusive)
- `updated_at_gte` (`string`, optional): Filter associations updated at or after this ISO8601 timestamp (inclusive)
- `updated_at_lt` (`string`, optional): Filter associations updated before this ISO8601 timestamp (exclusive)
- `updated_at_lte` (`string`, optional): Filter associations updated at or before this ISO8601 timestamp (inclusive)

Example input: `{}`

### `salesloft_opportunity_stages_list`

List Opportunity Stages · Read-only

Fetch the opportunity pipeline stages configured in Salesloft (synced from the CRM or created via API) -- useful context for interpreting or creating opportunities by stage_name. The records can be filtered, paged, and sorted.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `created_at_gt` (`string`, optional): Filter stages created after this ISO8601 timestamp (exclusive)
- `created_at_lt` (`string`, optional): Filter stages created before this ISO8601 timestamp (exclusive)
- `ids` (`string`, optional): Filter by specific opportunity stage IDs. Comma-separated list of IDs.
- `include_paging_counts` (`boolean`, optional): Whether to include total count and page count in the response metadata
- `limit_paging_counts` (`boolean`, optional): Specifies whether the max limit of 10k records should be applied to pagination counts
- `name` (`string`, optional): Filter opportunity stages by name.
- `page` (`integer`, optional): Page number for pagination, starting from 1
- `per_page` (`integer`, optional): Number of results per page in the range [1, 100]. Defaults to 25.
- `sort_by` (`string`, optional): Field to sort results by. Common values: name, created_at, updated_at. Defaults to updated_at.
- `sort_direction` (`string`, optional): Direction of sort: ASC or DESC. Defaults to DESC.
- `updated_at_gt` (`string`, optional): Filter stages updated after this ISO8601 timestamp (exclusive)
- `updated_at_lt` (`string`, optional): Filter stages updated before this ISO8601 timestamp (exclusive)

Example input: `{}`

### `salesloft_people_get`

Get Person · Read-only

Fetch a single person record from Salesloft by their ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `person_id` (`integer`, required): The unique identifier of the person to fetch

Example input: `{"person_id":1}`

### `salesloft_people_list`

List People · Read-only

Fetch multiple person records from Salesloft. The records can be filtered by email, account, stage, owner, cadence, contact restrictions, timestamps, and more, and paged and sorted.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `account_id` (`string`, optional): Filter people by account ID. Comma-separated list for multiple values.
- `active_cadences` (`boolean`, optional): Filter people by whether they have an active cadence
- `bounced` (`boolean`, optional): Filter people by whether an email sent to them bounced
- `cadence_id` (`string`, optional): Filter people by the cadence they are currently on. Comma-separated list. Use _is_null to filter people not on a cadence.
- `can_call` (`boolean`, optional): Filter people who can be called given do_not_contact and contact_restrictions
- `can_email` (`boolean`, optional): Filter people who can be emailed given do_not_contact and contact_restrictions
- `can_text` (`boolean`, optional): Filter people who can be sent a text message given do_not_contact and contact_restrictions
- `city` (`string`, optional): Filter people by city. Supports partial matching. Comma-separated list for multiple values.
- `company` (`string`, optional): Filter people by company name. Comma-separated list for multiple values.
- `country` (`string`, optional): Filter people by country. Supports partial matching. Comma-separated list for multiple values.
- `created_at_gt` (`string`, optional): Filter people created after this ISO8601 timestamp (exclusive)
- `created_at_gte` (`string`, optional): Filter people created at or after this ISO8601 timestamp (inclusive)
- `created_at_lt` (`string`, optional): Filter people created before this ISO8601 timestamp (exclusive)
- `created_at_lte` (`string`, optional): Filter people created at or before this ISO8601 timestamp (inclusive)
- `crm_id` (`string`, optional): Filter people by CRM ID. Comma-separated list for multiple values.
- `custom_fields` (`object`, optional): Filter people by custom field values. Custom field names are case-sensitive; values are case-insensitive.
- `do_not_contact` (`boolean`, optional): Filter people by their do_not_contact status
- `email_addresses` (`string`, optional): Filter people by email address(es). Comma-separated list. Use _is_null to filter people with no email.
- `eu_resident` (`boolean`, optional): Filter people by whether they are marked as a European Union Resident
- `first_name` (`string`, optional): Filter people by first name. Comma-separated list for multiple values.
- `ids` (`string`, optional): Filter by specific person IDs. Comma-separated list of IDs.
- `import_id` (`string`, optional): Filter people by import ID. Comma-separated list. Use _is_null to filter people not imported.
- `include_paging_counts` (`boolean`, optional): Whether to include total count and page count in the response metadata
- `job_seniority` (`string`, optional): Filter people by job seniority. Comma-separated list. Use _is_null to filter people without a seniority.
- `last_contacted_gt` (`string`, optional): Filter people last contacted after this ISO8601 timestamp (exclusive)
- `last_contacted_gte` (`string`, optional): Filter people last contacted at or after this ISO8601 timestamp (inclusive)
- `last_contacted_lt` (`string`, optional): Filter people last contacted before this ISO8601 timestamp (exclusive)
- `last_contacted_lte` (`string`, optional): Filter people last contacted at or before this ISO8601 timestamp (inclusive)
- `last_contacted_type` (`string`, optional): Filter people by last contacted type. Comma-separated list for multiple values.
- `last_name` (`string`, optional): Filter people by last name. Comma-separated list for multiple values.
- `limit_paging_counts` (`boolean`, optional): Specifies whether the max limit of 10k records should be applied to pagination counts
- `locales` (`string`, optional): Filter people by locale. Comma-separated list. Use Null to filter people without a locale.
- `new` (`boolean`, optional): Filter people who have never been on a cadence or contacted in any way
- `owned_by_guid` (`string`, optional): Filter people by the owner's GUID. Comma-separated list for multiple values.
- `owner_crm_id` (`string`, optional): Filter people by owner CRM ID. Comma-separated list. Use _is_null to filter unowned people.
- `owner_id` (`string`, optional): Filter people by owner user ID. Comma-separated list for multiple values.
- `owner_is_active` (`boolean`, optional): Filter people by whether the owner is active
- `page` (`integer`, optional): Page number for pagination, starting from 1
- `per_page` (`integer`, optional): Number of results per page in the range [1, 100]. Defaults to 25.
- `person_stage_id` (`string`, optional): Filter people by person stage ID. Comma-separated list. Use _is_null to filter people with no stage.
- `phone_number` (`boolean`, optional): Filter people by whether they have a phone number
- `replied` (`boolean`, optional): Filter people by whether they have replied to an email
- `sort_by` (`string`, optional): Field to sort results by. Accepted values: created_at, updated_at, last_contacted_at, name, title, job_seniority, call_count, sent_emails, clicked_emails, replied_emails, viewed_emails, account, cadence_stage_name. Defaults to updated_at.
- `sort_direction` (`string`, optional): Direction of sort: ASC or DESC. Defaults to DESC.
- `starred_by_guid` (`string`, optional): Filter people who have been starred by the given user GUIDs. Comma-separated list.
- `state` (`string`, optional): Filter people by state. Supports partial matching. Comma-separated list for multiple values.
- `success` (`boolean`, optional): Filter people by whether they have been marked as a success
- `tag_id` (`string`, optional): Filter people by tag ID. Comma-separated list. Use _is_null or _is_not_null to filter by tag presence.
- `title` (`string`, optional): Filter people by job title. Supports partial matching. Comma-separated list for multiple values.
- `updated_at_gt` (`string`, optional): Filter people updated after this ISO8601 timestamp (exclusive)
- `updated_at_gte` (`string`, optional): Filter people updated at or after this ISO8601 timestamp (inclusive)
- `updated_at_lt` (`string`, optional): Filter people updated before this ISO8601 timestamp (exclusive)
- `updated_at_lte` (`string`, optional): Filter people updated at or before this ISO8601 timestamp (inclusive)

Example input: `{}`

### `salesloft_person_stages_list`

List Person Stages · Read-only

Fetch the person/lead pipeline stages configured in Salesloft -- useful context for interpreting or setting a person's person_stage_id. The records can be filtered, paged, and sorted.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `created_at_gt` (`string`, optional): Filter stages created after this ISO8601 timestamp (exclusive)
- `created_at_lt` (`string`, optional): Filter stages created before this ISO8601 timestamp (exclusive)
- `ids` (`string`, optional): Filter by specific person stage IDs. Comma-separated list of IDs.
- `include_paging_counts` (`boolean`, optional): Whether to include total count and page count in the response metadata
- `limit_paging_counts` (`boolean`, optional): Specifies whether the max limit of 10k records should be applied to pagination counts
- `name` (`string`, optional): Filter person stages by name.
- `page` (`integer`, optional): Page number for pagination, starting from 1
- `per_page` (`integer`, optional): Number of results per page in the range [1, 100]. Defaults to 25.
- `sort_by` (`string`, optional): Field to sort results by. Common values: name, created_at, updated_at. Defaults to updated_at.
- `sort_direction` (`string`, optional): Direction of sort: ASC or DESC. Defaults to DESC.
- `updated_at_gt` (`string`, optional): Filter stages updated after this ISO8601 timestamp (exclusive)
- `updated_at_lt` (`string`, optional): Filter stages updated before this ISO8601 timestamp (exclusive)

Example input: `{}`

### `salesloft_steps_list`

List Steps · Read-only

Fetch cadence Step definitions from Salesloft -- the configured touchpoints (phone, email, integration, other) within a cadence. Distinct from 'actions', which represent per-person executions of a step. The records can be filtered, paged, and sorted.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `cadence_id` (`string`, optional): Filter steps by the cadence they belong to. Comma-separated list for multiple values.
- `created_at_gt` (`string`, optional): Filter steps created after this ISO8601 timestamp (exclusive)
- `created_at_lt` (`string`, optional): Filter steps created before this ISO8601 timestamp (exclusive)
- `enabled` (`boolean`, optional): Filter to steps that are currently enabled (true) or disabled (false)
- `has_due_actions` (`boolean`, optional): Filter to steps that currently have due actions
- `ids` (`string`, optional): Filter by specific step IDs. Comma-separated list of IDs.
- `include_paging_counts` (`boolean`, optional): Whether to include total count and page count in the response metadata
- `limit_paging_counts` (`boolean`, optional): Specifies whether the max limit of 10k records should be applied to pagination counts
- `page` (`integer`, optional): Page number for pagination, starting from 1
- `per_page` (`integer`, optional): Number of results per page in the range [1, 100]. Defaults to 25.
- `sort_by` (`string`, optional): Field to sort results by. Common values: created_at, updated_at. Defaults to updated_at.
- `sort_direction` (`string`, optional): Direction of sort: ASC or DESC. Defaults to DESC.
- `type` (`string`, optional): Filter steps by type. Accepted values: Phone, Email, Integration, Other.
- `updated_at_gt` (`string`, optional): Filter steps updated after this ISO8601 timestamp (exclusive)
- `updated_at_lt` (`string`, optional): Filter steps updated before this ISO8601 timestamp (exclusive)

Example input: `{}`

### `salesloft_successes_list`

List Successes · Read-only

Fetch logged 'Success' milestone records from Salesloft (e.g. a deal won, or another team-defined win condition reached for a person). The records can be filtered by person, cadence, and creation date, and paged and sorted.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `cadence_id` (`string`, optional): Filter successes by the cadence the person was on when the success was logged. Comma-separated list for multiple values.
- `created_at_gt` (`string`, optional): Filter successes created after this ISO8601 timestamp (exclusive)
- `created_at_gte` (`string`, optional): Filter successes created at or after this ISO8601 timestamp (inclusive)
- `created_at_lt` (`string`, optional): Filter successes created before this ISO8601 timestamp (exclusive)
- `created_at_lte` (`string`, optional): Filter successes created at or before this ISO8601 timestamp (inclusive)
- `ids` (`string`, optional): Filter by specific success IDs. Comma-separated list of IDs.
- `include_paging_counts` (`boolean`, optional): Whether to include total count and page count in the response metadata
- `limit_paging_counts` (`boolean`, optional): Specifies whether the max limit of 10k records should be applied to pagination counts
- `page` (`integer`, optional): Page number for pagination, starting from 1
- `per_page` (`integer`, optional): Number of results per page in the range [1, 100]. Defaults to 25.
- `person_id` (`string`, optional): Filter successes by the person they are recorded against. Comma-separated list for multiple values.
- `sort_by` (`string`, optional): Field to sort results by. Common values: created_at, updated_at. Defaults to created_at.
- `sort_direction` (`string`, optional): Direction of sort: ASC or DESC. Defaults to DESC.

Example input: `{}`

### `salesloft_tasks_get`

Get Task · Read-only

Fetch a single task record from Salesloft by its ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `task_id` (`integer`, required): The unique identifier of the task to fetch

Example input: `{"task_id":1}`

### `salesloft_tasks_list`

List Tasks · Read-only

Fetch multiple task records from Salesloft. The records can be filtered by user, person, account, state, type, time interval, timestamps, and more, and paged and sorted.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `account_id` (`string`, optional): Filter tasks by the account to which they are associated. Comma-separated list for multiple values.
- `completed_at_gt` (`string`, optional): Filter tasks completed after this ISO8601 timestamp (exclusive)
- `completed_at_gte` (`string`, optional): Filter tasks completed at or after this ISO8601 timestamp (inclusive)
- `completed_at_lt` (`string`, optional): Filter tasks completed before this ISO8601 timestamp (exclusive)
- `completed_at_lte` (`string`, optional): Filter tasks completed at or before this ISO8601 timestamp (inclusive)
- `completed_time_interval` (`string`, optional): Filter completed tasks by time interval. Accepted values: today, yesterday, this_week, previous_week, this_month
- `current_state` (`string`, optional): Filter tasks by current state. Comma-separated list. Accepted values: scheduled, completed
- `idempotency_key` (`string`, optional): Filter tasks by idempotency key
- `ids` (`string`, optional): Filter by specific task IDs. Comma-separated list of IDs.
- `include_counts_acted_on_gt` (`string`, optional): Include counts acted on after this ISO8601 timestamp (exclusive)
- `include_counts_acted_on_gte` (`string`, optional): Include counts acted on at or after this ISO8601 timestamp (inclusive)
- `include_counts_acted_on_lt` (`string`, optional): Include counts acted on before this ISO8601 timestamp (exclusive)
- `include_counts_acted_on_lte` (`string`, optional): Include counts acted on at or before this ISO8601 timestamp (inclusive)
- `include_paging_counts` (`boolean`, optional): Whether to include total count and page count in the response metadata
- `limit_paging_counts` (`boolean`, optional): Specifies whether the max limit of 10k records should be applied to pagination counts
- `locale` (`string`, optional): Filter tasks by locale of the associated person. Comma-separated list for multiple values.
- `page` (`integer`, optional): Page number for pagination, starting from 1
- `per_page` (`integer`, optional): Number of results per page in the range [1, 100]. Defaults to 25.
- `person_id` (`string`, optional): Filter tasks by the person to which they are associated. Comma-separated list for multiple values.
- `sort_by` (`string`, optional): Field to sort results by. Accepted values: due_date, due_at, utc_offset, company, updated_at, completed_at, salesloft.prioritizers/rhythm. Defaults to due_date.
- `sort_direction` (`string`, optional): Direction of sort: ASC or DESC. Defaults to ASC.
- `source` (`string`, optional): Filter tasks by source. Comma-separated list for multiple values.
- `task_type` (`string`, optional): Filter tasks by type. Comma-separated list. Accepted values: call, email, general
- `time_interval_filter` (`string`, optional): Filter tasks by time interval. Accepted values: overdue, today, tomorrow, this_week, next_week
- `updated_at_gt` (`string`, optional): Filter tasks updated after this ISO8601 timestamp (exclusive)
- `updated_at_gte` (`string`, optional): Filter tasks updated at or after this ISO8601 timestamp (inclusive)
- `updated_at_lt` (`string`, optional): Filter tasks updated before this ISO8601 timestamp (exclusive)
- `updated_at_lte` (`string`, optional): Filter tasks updated at or before this ISO8601 timestamp (inclusive)
- `user_id` (`string`, optional): Filter tasks by the user to which they are assigned. Comma-separated list for multiple values.

Example input: `{}`

### `salesloft_team_get`

Get Team · Read-only

Fetch the Salesloft team that the authenticated user belongs to, including the team's name and ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `salesloft_users_get`

Get User · Read-only

Fetch a single Salesloft user by their User ID or User GUID. Use Get Current User to fetch the authenticated caller's own record instead.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `user_id` (`string`, required): The Salesloft User ID or User GUID to fetch.

Example input: `{"user_id":"<user_id>"}`

### `salesloft_users_get_current`

Get Current User · Read-only

Fetch the authenticated current user's information from Salesloft. This endpoint does not accept any parameters.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `salesloft_users_list`

List Users · Read-only

Fetch multiple user records from Salesloft. Non-admin users will only see their own user or all on team depending on group visibility policy.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `active` (`boolean`, optional): Filter users by active status. Defaults to not applied.
- `calendar_connection_status` (`boolean`, optional): Filter users by calendar connection status. True returns only users with a connected calendar; false returns only users without.
- `emails` (`string`, optional): Filter users by exact email address match. Comma-separated list for multiple values.
- `group_id` (`string`, optional): Filter users by group ID. Comma-separated list. Use _is_null to filter users not in any group.
- `guid` (`string`, optional): Filter users by GUID. Comma-separated list for multiple values.
- `has_crm_user` (`boolean`, optional): Filter users by whether they have a CRM user mapped
- `ids` (`string`, optional): Filter by specific user IDs. Comma-separated list of IDs.
- `include_calendar_connection_status` (`boolean`, optional): Whether to include calendar connection status in the response. When true, adds a calendar_connection_status object to each user.
- `include_paging_counts` (`boolean`, optional): Whether to include total count and page count in the response metadata
- `last_login` (`string`, optional): Filter users based on last login time
- `managed_ar` (`boolean`, optional): Filter users based on whether they manage Automation Rules
- `manager_user_guid` (`string`, optional): Filter users by their manager's user GUID. Comma-separated list for multiple values.
- `page` (`integer`, optional): Page number for pagination, starting from 1
- `per_page` (`integer`, optional): Number of results per page in the range [1, 100]. Defaults to 25.
- `permissions` (`string`, optional): Filter users by specific permissions. Comma-separated list for multiple values.
- `role_id` (`string`, optional): Filter users by role ID. Comma-separated list for multiple values.
- `search` (`string`, optional): Space-separated keywords to search First Name, Last Name, or Email (case-insensitive substring match)
- `seat_package` (`string`, optional): Filter users by assigned license. Comma-separated list for multiple values.
- `sort_by` (`string`, optional): Field to sort results by. Accepted values: id, seat_package, email, name, group, last_login, role. Defaults to id.
- `sort_direction` (`string`, optional): Direction of sort: ASC or DESC. Defaults to DESC.
- `visible_only` (`boolean`, optional): When true, only shows users actionable based on team privacy settings. When false, shows all users including deactivated. Defaults to true.
- `work_country` (`string`, optional): Filter users by assigned work country. Comma-separated list for multiple values.

Example input: `{}`

### `salesloft_webhook_subscriptions_list`

List Webhook Subscriptions · Read-only

Fetch the webhook subscriptions configured for the connected Salesloft application, including each subscription's callback URL and subscribed event type. The records can be filtered, paged, and sorted.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `callback_url` (`string`, optional): Filter subscriptions by their exact callback URL.
- `created_at_gt` (`string`, optional): Filter subscriptions created after this ISO8601 timestamp (exclusive)
- `created_at_lt` (`string`, optional): Filter subscriptions created before this ISO8601 timestamp (exclusive)
- `event_type` (`string`, optional): Filter subscriptions by the event type they are subscribed to.
- `ids` (`string`, optional): Filter by specific webhook subscription IDs. Comma-separated list of IDs.
- `include_paging_counts` (`boolean`, optional): Whether to include total count and page count in the response metadata
- `limit_paging_counts` (`boolean`, optional): Specifies whether the max limit of 10k records should be applied to pagination counts
- `page` (`integer`, optional): Page number for pagination, starting from 1
- `per_page` (`integer`, optional): Number of results per page in the range [1, 100]. Defaults to 25.
- `sort_by` (`string`, optional): Field to sort results by. Common values: created_at, updated_at. Defaults to created_at.
- `sort_direction` (`string`, optional): Direction of sort: ASC or DESC. Defaults to DESC.

Example input: `{}`

### `salesloft_account_upserts_create`

Upsert Account · Write

Create or update an account record in a single call: Salesloft looks up an existing account using the field named by upsert_key (matched against the value you supply for that same field in this request) and updates it if found, or creates a new account if not. Create and update behavior is otherwise the same as the individual create/update endpoints.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `upsert_key` (`string`, required): The field name Salesloft should use to look up an existing account. The value for that same field must also be included in this request. Accepted values: id, domain, crm_id.
- `account_tier_id` (`integer`, optional): ID of the Account Tier for this account
- `city` (`string`, optional): City where the account is located
- `company_stage_id` (`integer`, optional): ID of the CompanyStage assigned to this account
- `company_type` (`string`, optional): Type of company (e.g. prospect, customer, partner)
- `conversational_name` (`string`, optional): Conversational name of the company (e.g. Acme instead of Acme Corporation)
- `country` (`string`, optional): Country where the account is located
- `crm_id` (`string`, optional): CRM record ID for this account. Requires crm_id_type. Required if using crm_id as the upsert_key.
- `crm_id_type` (`string`, optional): The CRM that the provided crm_id is for. Must be: salesforce
- `custom_fields` (`object`, optional): Custom fields defined by the team. Only fields with values appear in the API.
- `description` (`string`, optional): Description of the account
- `do_not_contact` (`boolean`, optional): If true, the account will be marked as do not contact
- `domain` (`string`, optional): Domain of the account (e.g. acmecorp.com). Required if using domain as the upsert_key, and required when creating a new account.
- `founded` (`string`, optional): Date or year of founding
- `id` (`integer`, optional): The Salesloft ID of the account to match on. Required if using id as the upsert_key.
- `industry` (`string`, optional): Industry of the account
- `linkedin_url` (`string`, optional): LinkedIn page URL for the account
- `locale` (`string`, optional): Time locale for the account
- `name` (`string`, optional): Name of the account/company. Required when creating a new account.
- `owner_id` (`integer`, optional): ID of the user who owns this account
- `phone` (`string`, optional): Phone number for the account
- `postal_code` (`string`, optional): Postal/ZIP code of the account
- `revenue_range` (`string`, optional): Revenue range of the account
- `size` (`string`, optional): Number of employees at the account
- `state` (`string`, optional): State or region where the account is located
- `street` (`string`, optional): Street address of the account
- `tags` (`array`, optional): All tags applied to this account
- `twitter_handle` (`string`, optional): Twitter handle for the account (without @)
- `website` (`string`, optional): Website URL of the account

Example input: `{"upsert_key":"<upsert_key>"}`

### `salesloft_accounts_create`

Create Account · Write

Create a new account record in Salesloft. Both name and domain are required; domain must be unique on the team.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `domain` (`string`, required): Domain of the account (e.g. acmecorp.com). Used as the unique identifier for the account.
- `name` (`string`, required): Name of the account/company
- `account_tier_id` (`integer`, optional): ID of the Account Tier for this account
- `city` (`string`, optional): City where the account is located
- `company_stage_id` (`integer`, optional): ID of the CompanyStage assigned to this account
- `company_type` (`string`, optional): Type of company (e.g. prospect, customer, partner)
- `conversational_name` (`string`, optional): Conversational name of the company (e.g. Acme instead of Acme Corporation)
- `country` (`string`, optional): Country where the account is located
- `crm_id` (`string`, optional): CRM record ID for this account. Requires Salesforce.
- `crm_id_type` (`string`, optional): The CRM that the provided crm_id is for. Must be: salesforce
- `custom_fields` (`object`, optional): Custom fields defined by the team. Only fields with values appear in the API.
- `description` (`string`, optional): Description of the account
- `do_not_contact` (`boolean`, optional): If true, the account will be marked as do not contact
- `founded` (`string`, optional): Date or year of founding
- `industry` (`string`, optional): Industry of the account
- `linkedin_url` (`string`, optional): LinkedIn page URL for the account
- `locale` (`string`, optional): Time locale for the account
- `owner_id` (`integer`, optional): ID of the user who owns this account
- `phone` (`string`, optional): Phone number for the account
- `postal_code` (`string`, optional): Postal/ZIP code of the account
- `revenue_range` (`string`, optional): Revenue range of the account
- `size` (`string`, optional): Number of employees at the account
- `state` (`string`, optional): State or region where the account is located
- `street` (`string`, optional): Street address of the account
- `tags` (`array`, optional): All tags applied to this account
- `twitter_handle` (`string`, optional): Twitter handle for the account (without @)
- `website` (`string`, optional): Website URL of the account

Example input: `{"domain":"<domain>","name":"<name>"}`

### `salesloft_accounts_update`

Update Account · Write

Update an existing account record in Salesloft by its ID.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `account_id` (`integer`, required): The unique identifier of the account to update
- `account_tier_id` (`integer`, optional): Updated Account Tier ID for this account
- `archived` (`boolean`, optional): Whether this account should be archived. Setting to true sets archived_at to now; setting to false clears it.
- `city` (`string`, optional): Updated city of the account
- `company_stage_id` (`integer`, optional): Updated CompanyStage ID for this account
- `company_type` (`string`, optional): Updated type of company
- `conversational_name` (`string`, optional): Updated conversational name of the company
- `country` (`string`, optional): Updated country of the account
- `crm_id` (`string`, optional): Updated CRM record ID for this account
- `crm_id_type` (`string`, optional): The CRM that the provided crm_id is for. Must be: salesforce
- `custom_fields` (`object`, optional): Updated custom fields for the account
- `description` (`string`, optional): Updated description of the account
- `do_not_contact` (`boolean`, optional): Updated do not contact status of the account
- `domain` (`string`, optional): Updated domain of the account
- `founded` (`string`, optional): Updated date or year of founding
- `industry` (`string`, optional): Updated industry of the account
- `linkedin_url` (`string`, optional): Updated LinkedIn page URL for the account
- `locale` (`string`, optional): Updated time locale for the account
- `name` (`string`, optional): Updated name of the account/company
- `owner_id` (`integer`, optional): Updated owner user ID for the account
- `phone` (`string`, optional): Updated phone number for the account
- `postal_code` (`string`, optional): Updated postal/ZIP code of the account
- `revenue_range` (`string`, optional): Updated revenue range of the account
- `size` (`string`, optional): Updated number of employees at the account
- `state` (`string`, optional): Updated state or region of the account
- `street` (`string`, optional): Updated street address of the account
- `tags` (`array`, optional): Updated tags applied to this account
- `twitter_handle` (`string`, optional): Updated Twitter handle for the account
- `website` (`string`, optional): Updated website URL of the account

Example input: `{"account_id":1}`

### `salesloft_cadence_memberships_create`

Add Person to Cadence · Write

Add a person to a cadence by creating a cadence membership in Salesloft. person_id and cadence_id are required and must be visible to the authenticated user.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `cadence_id` (`integer`, required): The ID of the cadence to add the person to
- `person_id` (`integer`, required): The ID of the person to add to the cadence
- `step_id` (`integer`, optional): ID of the step on which the person should start the cadence. Defaults to the first step.
- `task_id` (`integer`, optional): ID of the task that causes this action. The task will be completed automatically on success.
- `user_id` (`integer`, optional): ID of the user to create the cadence membership for. The associated cadence must be owned by the user or be a team cadence.

Example input: `{"cadence_id":1,"person_id":1}`

### `salesloft_meetings_update`

Update Meeting · Write

Update a Salesloft meeting by ID. Only the fields provided are changed; omitted fields are left as-is.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `meeting_id` (`string`, required): The ID of the meeting to update.
- `description` (`string`, optional): Updated description or agenda for the meeting.
- `end_time` (`string`, optional): Updated end time of the meeting, in ISO8601 format.
- `start_time` (`string`, optional): Updated start time of the meeting, in ISO8601 format.
- `title` (`string`, optional): Updated title of the meeting.

Example input: `{"meeting_id":"<meeting_id>"}`

### `salesloft_notes_create`

Create Note · Write

Create a new note in Salesloft. Notes require content, an associated object type (person or account), and the ID of that object. Optionally link the note to a call.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `associated_with_id` (`integer`, required): ID of the person or account to associate the note with
- `associated_with_type` (`string`, required): Type of object the note is associated with. Accepted values: person, account
- `content` (`string`, required): The text content of the note
- `call_id` (`integer`, optional): ID of the call to associate this note with. The call cannot already have a note.
- `crm_activity_metadata` (`object`, optional): JSONB metadata for CRM activity tracking
- `skip_crm_sync` (`boolean`, optional): If true, the note will not be synced to the CRM
- `subject` (`string`, optional): The subject of the note's CRM activity. Defaults to 'Note'.
- `user_guid` (`string`, optional): GUID of the user to create the note for. Only team admins may create notes on behalf of other users. Defaults to the requesting user.

Example input: `{"associated_with_id":1,"associated_with_type":"<associated_with_type>","content":"<content>"}`

### `salesloft_notes_update`

Update Note · Write

Update an existing note in Salesloft by its ID.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `content` (`string`, required): The text content of the note
- `note_id` (`integer`, required): The unique identifier of the note to update
- `call_id` (`integer`, optional): ID of the call to associate this note with. If the note is already associated to a call, it will become associated to the requested call.
- `crm_activity_metadata` (`object`, optional): JSONB metadata for CRM activity tracking

Example input: `{"content":"<content>","note_id":1}`

### `salesloft_people_create`

Create Person · Write

Create a new person record in Salesloft. Either email_address or phone and last_name must be provided as a unique lookup on the team.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `account_id` (`integer`, optional): ID of the Account to link this person to
- `autotag_date` (`boolean`, optional): Whether to add today's date as a tag to this person in Y-m-d format. Default is false.
- `city` (`string`, optional): City where the person is located
- `contact_restrictions` (`array`, optional): Communication methods to prevent for this person. Accepted values: call, email, message
- `country` (`string`, optional): Country where the person is located
- `crm_id` (`string`, optional): ID of the person in your external CRM. Requires crm_id_type. Salesforce IDs must be exactly 18 characters and a Lead (00Q) or Contact (003) object.
- `crm_id_type` (`string`, optional): The CRM that the provided crm_id is for. Must be one of: salesforce
- `custom_fields` (`object`, optional): Custom fields defined by the team for this person
- `do_not_contact` (`boolean`, optional): If true, prevents this person from being called, emailed, or added to a cadence
- `email_address` (`string`, optional): Email address of the person. Required if phone and last_name are not provided.
- `eu_resident` (`boolean`, optional): Whether this person is a European Resident for GDPR compliance
- `external_source` (`string`, optional): The name of the external source from where this person was imported
- `first_name` (`string`, optional): First name of the person
- `home_phone` (`string`, optional): Home phone number without formatting
- `import_id` (`integer`, optional): ID of the Import this person is a part of
- `job_seniority` (`string`, optional): Job seniority of the person. Accepted values: director, executive, individual_contributor, manager, vice_president, unknown
- `last_name` (`string`, optional): Last name of the person. Required together with phone if email_address is not provided.
- `linkedin_url` (`string`, optional): LinkedIn profile URL of the person
- `locale` (`string`, optional): Time locale of the person
- `mobile_phone` (`string`, optional): Mobile phone number without formatting
- `owner_id` (`integer`, optional): ID of the User that owns this person
- `person_company_industry` (`string`, optional): Company industry specific to this person, unrelated to the linked company object
- `person_company_name` (`string`, optional): Company name specific to this person, unrelated to the linked company object
- `person_company_website` (`string`, optional): Company website specific to this person, unrelated to the linked company object
- `person_stage_id` (`integer`, optional): ID of the PersonStage of this person
- `personal_email_address` (`string`, optional): Personal email address of the person
- `personal_website` (`string`, optional): Personal website URL of the person
- `phone` (`string`, optional): Phone number without formatting
- `phone_extension` (`string`, optional): Phone extension without formatting
- `secondary_email_address` (`string`, optional): Alternate email address of the person
- `skip_permission_checks` (`boolean`, optional): Flag to indicate this is an intake form request that should bypass permission checks
- `state` (`string`, optional): State or region where the person is located
- `tags` (`array`, optional): All tags applied to this person
- `title` (`string`, optional): Job title of the person
- `twitter_handle` (`string`, optional): Twitter handle of the person
- `work_city` (`string`, optional): Work location city of the person
- `work_country` (`string`, optional): Work location country of the person
- `work_state` (`string`, optional): Work location state or region of the person

Example input: `{}`

### `salesloft_people_update`

Update Person · Write

Update an existing person record in Salesloft by their ID.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `person_id` (`integer`, required): The unique identifier of the person to update
- `account_id` (`integer`, optional): Updated account ID for this person
- `city` (`string`, optional): Updated city of the person
- `contact_restrictions` (`array`, optional): Communication methods to prevent for this person. Accepted values: call, email, message
- `country` (`string`, optional): Updated country of the person
- `crm_id` (`string`, optional): ID of the person in your external CRM. Requires crm_id_type. Salesforce IDs must be exactly 18 characters and a Lead (00Q) or Contact (003) object.
- `crm_id_type` (`string`, optional): The CRM that the provided crm_id is for. Must be one of: salesforce
- `custom_fields` (`object`, optional): Updated custom fields for the person
- `do_not_contact` (`boolean`, optional): Update the do not contact status of the person
- `email_address` (`string`, optional): Updated email address of the person
- `eu_resident` (`boolean`, optional): Whether this person is a European Resident for GDPR compliance
- `external_source` (`string`, optional): The name of the external source from where this person was imported
- `first_name` (`string`, optional): Updated first name of the person
- `home_phone` (`string`, optional): Updated home phone number of the person
- `import_id` (`integer`, optional): ID of the import this person was part of
- `job_seniority` (`string`, optional): Job seniority of the person. Accepted values: director, executive, individual_contributor, manager, vice_president, unknown
- `last_name` (`string`, optional): Updated last name of the person
- `linkedin_url` (`string`, optional): Updated LinkedIn profile URL
- `locale` (`string`, optional): Updated time locale for the person
- `mobile_phone` (`string`, optional): Updated mobile phone number of the person
- `owner_id` (`integer`, optional): Updated owner user ID for this person record
- `person_company_industry` (`string`, optional): Updated company industry associated with this person
- `person_company_name` (`string`, optional): Updated company name associated with this person
- `person_company_website` (`string`, optional): Updated company website associated with this person
- `person_stage_id` (`integer`, optional): Updated person stage ID
- `personal_email_address` (`string`, optional): Updated personal email address of the person
- `personal_website` (`string`, optional): Updated personal website URL of the person
- `phone` (`string`, optional): Updated phone number of the person
- `phone_extension` (`string`, optional): Updated phone extension of the person
- `secondary_email_address` (`string`, optional): Updated secondary email address of the person
- `skip_permission_checks` (`boolean`, optional): Flag to indicate this is an intake form request that should bypass permission checks
- `state` (`string`, optional): Updated state or region of the person
- `tags` (`array`, optional): Updated tags applied to this person
- `title` (`string`, optional): Updated job title of the person
- `twitter_handle` (`string`, optional): Updated Twitter handle of the person (without @)
- `work_city` (`string`, optional): Updated work city of the person
- `work_country` (`string`, optional): Updated work country of the person
- `work_state` (`string`, optional): Updated work state or region of the person

Example input: `{"person_id":1}`

### `salesloft_person_upserts_create`

Upsert Person · Write

Create or update a person record in a single call: Salesloft looks up an existing person using the field named by upsert_key (matched against the value you supply for that same field in this request) and updates it if found, or creates a new person if not. Useful for idempotent syncing without first checking whether the person exists.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `upsert_key` (`string`, required): The field name Salesloft should use to look up an existing person. The value for that same field must also be included in this request. Common values: email_address, phone, crm_id.
- `account_id` (`integer`, optional): ID of the Account to link this person to
- `autotag_date` (`boolean`, optional): Whether to add today's date as a tag to this person in Y-m-d format. Default is false.
- `city` (`string`, optional): City where the person is located
- `contact_restrictions` (`array`, optional): Communication methods to prevent for this person. Accepted values: call, email, message
- `country` (`string`, optional): Country where the person is located
- `crm_id` (`string`, optional): ID of the person in your external CRM. Requires crm_id_type. Required if using crm_id as the upsert_key. Salesforce IDs must be exactly 18 characters and a Lead (00Q) or Contact (003) object.
- `crm_id_type` (`string`, optional): The CRM that the provided crm_id is for. Must be one of: salesforce
- `custom_fields` (`object`, optional): Custom fields defined by the team for this person
- `do_not_contact` (`boolean`, optional): If true, prevents this person from being called, emailed, or added to a cadence
- `email_address` (`string`, optional): Email address of the person. Required if using email_address as the upsert_key.
- `eu_resident` (`boolean`, optional): Whether this person is a European Resident for GDPR compliance
- `external_source` (`string`, optional): The name of the external source from where this person was imported
- `first_name` (`string`, optional): First name of the person
- `home_phone` (`string`, optional): Home phone number without formatting
- `import_id` (`integer`, optional): ID of the Import this person is a part of
- `job_seniority` (`string`, optional): Job seniority of the person. Accepted values: director, executive, individual_contributor, manager, vice_president, unknown
- `last_name` (`string`, optional): Last name of the person. Required together with phone if using phone as the upsert_key.
- `linkedin_url` (`string`, optional): LinkedIn profile URL of the person
- `locale` (`string`, optional): Time locale of the person
- `mobile_phone` (`string`, optional): Mobile phone number without formatting
- `owner_id` (`integer`, optional): ID of the User that owns this person
- `person_company_industry` (`string`, optional): Company industry specific to this person, unrelated to the linked account object
- `person_company_name` (`string`, optional): Company name specific to this person, unrelated to the linked account object
- `person_company_website` (`string`, optional): Company website specific to this person, unrelated to the linked account object
- `person_stage_id` (`integer`, optional): ID of the PersonStage of this person
- `personal_email_address` (`string`, optional): Personal email address of the person
- `personal_website` (`string`, optional): Personal website URL of the person
- `phone` (`string`, optional): Phone number without formatting. Required if using phone as the upsert_key.
- `phone_extension` (`string`, optional): Phone extension without formatting
- `secondary_email_address` (`string`, optional): Alternate email address of the person
- `skip_permission_checks` (`boolean`, optional): Flag to indicate this is an intake form request that should bypass permission checks
- `state` (`string`, optional): State or region where the person is located
- `tags` (`array`, optional): All tags applied to this person
- `title` (`string`, optional): Job title of the person
- `twitter_handle` (`string`, optional): Twitter handle of the person
- `work_city` (`string`, optional): Work location city of the person
- `work_country` (`string`, optional): Work location country of the person
- `work_state` (`string`, optional): Work location state or region of the person

Example input: `{"upsert_key":"<upsert_key>"}`

### `salesloft_tasks_create`

Create Task · Write

Create a new task in Salesloft. A subject is required. Optionally link the task to a person, user, and cadence step.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `subject` (`string`, required): Subject line of the task
- `description` (`string`, optional): A description of the task recorded for the person at completion time
- `due_date` (`string`, optional): Date the task is due, in ISO-8601 date format (YYYY-MM-DD)
- `idempotency_key` (`string`, optional): Unique identifier to prevent duplicate tasks from being created
- `person_id` (`string`, optional): ID of the person to be contacted
- `remind_at` (`string`, optional): Datetime at which to remind the user of the task, in ISO-8601 datetime format
- `task_type` (`string`, optional): Type of the task. Accepted values: call, email, general
- `user_guid` (`string`, optional): GUID of the user linked to the task. Defaults to the authenticated user.
- `user_id` (`integer`, optional): ID of the user linked to the task. Defaults to the authenticated user.

Example input: `{"subject":"<subject>"}`

### `salesloft_tasks_update`

Update Task · Write

Update an existing task in Salesloft by its ID.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `task_id` (`integer`, required): The unique identifier of the task to update
- `current_state` (`string`, optional): Current state of the task. Valid option: completed
- `description` (`string`, optional): A description of the task recorded for the person at completion time
- `due_at` (`string`, optional): Datetime the task is due, in ISO-8601 datetime format
- `due_date` (`string`, optional): Date the task is due, in ISO-8601 date format (YYYY-MM-DD)
- `is_logged` (`boolean`, optional): A flag to indicate that the task should only be logged
- `person_id` (`string`, optional): ID of the person to be contacted
- `remind_at` (`string`, optional): Datetime at which to remind the user of the task, in ISO-8601 datetime format
- `subject` (`string`, optional): Subject line of the task
- `task_type` (`string`, optional): Task type. Accepted values: call, email, general
- `user_guid` (`string`, optional): GUID of the user linked to the task. Defaults to the authenticated user.
- `user_id` (`integer`, optional): ID of the user linked to the task. Defaults to the authenticated user.

Example input: `{"task_id":1}`

### `salesloft_webhook_subscriptions_create`

Create Webhook Subscription · Write

Create a webhook subscription so Salesloft pushes events (e.g. person updated, email sent, call logged) as an HTTP POST payload to a callback URL. Scope requirements vary by the event_type being subscribed to -- see Salesloft's Event Types documentation.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `callback_url` (`string`, required): The URL Salesloft will POST event payloads to when the subscribed event occurs.
- `event_type` (`string`, required): The event type to subscribe to, e.g. person.updated, cadence.person_added, call.created. See Salesloft's Event Types documentation for the full list of accepted values.
- `tag` (`string`, optional): An optional label to distinguish this subscription from other subscriptions to the same event_type (e.g. when registering multiple callback URLs for one event).

Example input: `{"callback_url":"<callback_url>","event_type":"<event_type>"}`

### `salesloft_accounts_delete`

Delete Account · Destructive

Delete an account from Salesloft by its ID. This operation is not reversible without contacting support.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `account_id` (`integer`, required): The unique identifier of the account to delete

Example input: `{"account_id":1}`

### `salesloft_cadence_memberships_delete`

Remove Person from Cadence · Destructive

Remove a person from a cadence by deleting their cadence membership in Salesloft.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `membership_id` (`integer`, required): The unique identifier of the cadence membership to delete

Example input: `{"membership_id":1}`

### `salesloft_notes_delete`

Delete Note · Destructive

Delete a note from Salesloft by its ID. Only notes owned by the authorized account can be deleted.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `note_id` (`integer`, required): The unique identifier of the note to delete

Example input: `{"note_id":1}`

### `salesloft_people_delete`

Delete Person · Destructive

Delete a person from Salesloft by their ID. This operation is not reversible without contacting support.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `person_id` (`integer`, required): The unique identifier of the person to delete

Example input: `{"person_id":1}`

### `salesloft_tasks_delete`

Delete Task · Destructive

Delete a task from Salesloft by its ID. This operation is not reversible.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `task_id` (`integer`, required): The unique identifier of the task to delete

Example input: `{"task_id":1}`

## Related

Other CRM & Sales connectors ([all 65](/agentkit/connectors/?category=crm-sales)):

- [HubSpot](/agentkit/connectors/hubspot/): Scalekit connector, OAuth, 457 tools
- [Salesforce](/agentkit/connectors/salesforce/): Scalekit connector, OAuth, 74 tools
- [Close](/agentkit/connectors/close/): Scalekit connector, OAuth, 103 tools


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
