Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Salesloft

Scalekit connector
Open markdown

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 201 tools.

Tools
201
What they doRead · write · destructive
115 · 64 · 22115 read64 write22 destructive
Users sign in with
OAuth app
Your own Salesloft app

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

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

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

        ScopeEnables
        readRead access to contacts, cadences, and activities
        writeCreate and update records
      • Click Save. On the application detail page, copy your Client ID and Client Secret.

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

    2. Create a connection in Scalekit

      • In Scalekit dashboard, 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)

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

    quickstart.mts
    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)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • salesloft_account_stages_getGet an account stage in Salesloft.Read-only

    Fetch an account stage

    Get an account stage in Salesloft. Returns the record (id, name, created_at, updated_at, order, active). Use this when you already have the id; use salesloft_account_stages_list to find records. Requires the account stage id.

    Inputs

    account_stage_idstringrequired
    Account Stage ID Find it with salesloft_account_stages_list.
  • salesloft_account_stages_listFetch the account pipeline stages configured in Salesloft -- useful context for interpreting or setting an account's company_stage_id.Read-only

    List Account Stages

    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.

    Inputs

    created_at_gtstring
    Filter stages created after this ISO8601 timestamp (exclusive)
    created_at_ltstring
    Filter stages created before this ISO8601 timestamp (exclusive)
    idsstring
    Filter by specific account stage IDs. Comma-separated list of IDs.
    include_paging_countsboolean
    Whether to include total count and page count in the response metadata
    limit_paging_countsboolean
    Specifies whether the max limit of 10k records should be applied to pagination counts
    namestring
    Filter account stages by name.
    pageinteger
    Page number for pagination, starting from 1
    per_pageinteger
    Number of results per page in the range [1, 100]. Defaults to 25.
    sort_bystring
    Field to sort results by. Common values: name, created_at, updated_at. Defaults to updated_at.
    sort_directionstring
    Direction of sort: ASC or DESC. Defaults to DESC.
    updated_at_gtstring
    Filter stages updated after this ISO8601 timestamp (exclusive)
    updated_at_ltstring
    Filter stages updated before this ISO8601 timestamp (exclusive)
  • salesloft_account_team_member_roles_listList CRM Account Team Member Roles in Salesloft.Read-only

    List CRM Account Team Member Roles

    List CRM Account Team Member Roles in Salesloft. Returns a page of records (id, name) with paging metadata. Use this to browse or find ids. Page with page and per_page (max 100); set include_paging_counts for totals.

    Inputs

    include_paging_countsboolean
    Whether to include total_pages and total_count in the metadata. Defaults to false.
    limit_paging_countsboolean
    Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data.
    pageinteger
    The current page to fetch results from. Defaults to 1.
    per_pageinteger
    How many records to show per page in the range [1, 100]. Defaults to 25.
    searchstring
    Search term to filter Account Team Members Roles.
    sort_bystring
    Key to sort on, must be one of: created_at, updated_at. Defaults to updated_at.
    sort_directionstring
    Direction to sort in, must be one of: ASC, DESC. Defaults to DESC.
  • salesloft_account_tiers_getGet an account tier in Salesloft.Read-only

    Fetch an account tier

    Get an account tier in Salesloft. Returns the record (id, name, order, created_at, updated_at, active). Use this when you already have the id; use salesloft_account_tiers_list to find records. Requires the account tier id.

    Inputs

    account_tier_idstringrequired
    Account Tier ID Find it with salesloft_account_tiers_list.
  • salesloft_account_tiers_listList Account Tiers in Salesloft.Read-only

    List Account Tiers

    List Account Tiers in Salesloft. Returns a page of records (id, name, order, created_at, updated_at, active) with paging metadata. Use this to browse or find ids; use salesloft_account_tiers_get to read one record. Page with page and per_page (max 100); set include_paging_counts for totals.

    Inputs

    activeboolean
    Filters Account Tiers by the value of the active flag.
    idsarray
    IDs of Account Tiers to fetch. If a record can't be found, that record won't be returned and your request will be successful.
    include_paging_countsboolean
    Whether to include total_pages and total_count in the metadata. Defaults to false.
    limit_paging_countsboolean
    Specifies whether the max limit of 10k records should be applied to pagination counts. Affects the total_count and total_pages data.
    namearray
    Filters Account Tiers by name. Multiple names can be applied.
    pageinteger
    The current page to fetch results from. Defaults to 1.
    per_pageinteger
    How many records to show per page in the range [1, 100]. Defaults to 25.
    sort_bystring
    Key to sort on, must be one of: created_at, updated_at, order. Defaults to updated_at.
    sort_directionstring
    Direction to sort in, must be one of: ASC, DESC. Defaults to DESC.
  • salesloft_account_types_listList distinct account types in Salesloft.Read-only

    List distinct account types

    List distinct account types in Salesloft. Returns a page of records (name) with paging metadata. Use this to browse or find ids. No prerequisites.

    Inputs

    This tool takes no inputs.

  • salesloft_accounts_getFetch a single account record from Salesloft by its ID.Read-only

    Get Account

    Fetch a single account record from Salesloft by its ID.

    Inputs

    account_idintegerrequired
    The unique identifier of the account to fetch
  • salesloft_accounts_listFetch multiple account records from Salesloft.Read-only

    List Accounts

    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.

    Inputs

    account_stage_idinteger
    Filter accounts by account stage ID
    account_tier_idinteger
    Filter accounts by account tier ID
    account_typestring
    Filter accounts by type (e.g. prospect, customer, partner)
    archivedboolean
    Filter to return archived accounts only
    citystring
    Filter accounts by city
    countrystring
    Filter accounts by country
    created_at_gtstring
    Filter accounts created after this ISO8601 timestamp (exclusive)
    created_at_gtestring
    Filter accounts created at or after this ISO8601 timestamp (inclusive)
    created_at_ltstring
    Filter accounts created before this ISO8601 timestamp (exclusive)
    created_at_ltestring
    Filter accounts created at or before this ISO8601 timestamp (inclusive)
    crm_idstring
    Filter accounts by CRM record ID
    domainstring
    Filter accounts by domain. Domains are unique and lowercase.
    has_open_opportunityboolean
    Filter to accounts that have an open opportunity
    idsstring
    Filter by specific account IDs. Comma-separated list of IDs.
    include_paging_countsboolean
    Whether to include total count and page count in the response metadata
    industrystring
    Filter accounts by industry
    last_contacted_gtstring
    Filter accounts last contacted after this ISO8601 timestamp (exclusive)
    last_contacted_gtestring
    Filter accounts last contacted at or after this ISO8601 timestamp (inclusive)
    last_contacted_ltstring
    Filter accounts last contacted before this ISO8601 timestamp (exclusive)
    last_contacted_ltestring
    Filter accounts last contacted at or before this ISO8601 timestamp (inclusive)
    limit_paging_countsboolean
    Limit the paging counts returned in the response metadata
    localesstring
    Filter accounts by locale. Comma-separated list of locales.
    namestring
    Filter accounts by name
    owner_crm_idstring
    Filter accounts by the CRM ID of the owner
    owner_idinteger
    Filter accounts by owner user ID
    owner_is_activeboolean
    Filter accounts whose owner is active (true) or inactive (false)
    pageinteger
    Page number for pagination, starting from 1
    per_pageinteger
    Number of results per page in the range [1, 100]. Defaults to 25.
    prospector_engagement_levelstring
    Filter accounts by prospector engagement level
    sort_bystring
    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_directionstring
    Direction of sort: ASC or DESC. Defaults to DESC.
    statestring
    Filter accounts by state or region
    tagstring
    Filter accounts by tag name
    tag_idinteger
    Filter accounts by tag ID
    updated_at_gtstring
    Filter accounts updated after this ISO8601 timestamp (exclusive)
    updated_at_gtestring
    Filter accounts updated at or after this ISO8601 timestamp (inclusive)
    updated_at_ltstring
    Filter accounts updated before this ISO8601 timestamp (exclusive)
    updated_at_ltestring
    Filter accounts updated at or before this ISO8601 timestamp (inclusive)
    websitestring
    Filter accounts by website URL
    your_related_accounts_activeboolean
    Filter to accounts where you have an active relationship