Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Pipedrive

Scalekit connector
Open markdown

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

Tools
105
What they doRead · write · destructive
50 · 33 · 2250 read33 write22 destructive
Users sign in with
OAuth app
Scalekit's or your own

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 Pipedrive connection

    In AgentKit > Connections, create a Pipedrive connection. The name you give it is the connection_name your code passes. See Configure connections.

    Scalekit credentials are available for Pipedrive, so you don't need to register an OAuth app. To show your own app on the consent screen, use your own credentials instead.

    Use your own OAuth app

    Register your Scalekit environment with the Pipedrive connector so Scalekit handles the OAuth flow and token lifecycle on your behalf. The connection name you create is used to identify and invoke the connection in code.

    1. Create a connection in Scalekit

      • In Scalekit dashboard, go to AgentKit > Connections > Create Connection. Find Pipedrive and click Create.

      • Click Use your own credentials and copy the Redirect URI. It looks like: https://<SCALEKIT_ENVIRONMENT_URL>/sso/v1/oauth/<CONNECTION_ID>/callback

      Keep this tab open — you’ll return to it in step 3.

    2. Create a Pipedrive OAuth app

      • Go to the Pipedrive Developer Hub and sign in with your Pipedrive account.

      • Create a new app and fill in the form:

        • App name — a name to identify your app (e.g., My Sales Agent)
        • Callback URL — paste the Redirect URI you copied from Scalekit
      • Under OAuth & Access Scopes, select the permissions your agent needs:

        ScopeAccess granted
        deals:fullRead and write deals
        contacts:fullRead and write persons and organizations
        leads:fullRead and write leads
        activities:fullRead and write activities
        products:fullRead and write products
        users:readRead user information
        webhooks:fullManage webhooks
      • Click Save.

    3. Copy your client credentials

      After saving your app, Pipedrive shows the Client ID and Client Secret.

      Copy both values now — you will need them in the next step.

    4. Add credentials in Scalekit

      • Return to Scalekit dashboard → AgentKit > Connections and open the connection you created in step 1.

      • Enter the following:

        • Client ID — from Pipedrive
        • Client Secret — from Pipedrive
        • Permissions — the same scopes you selected in Pipedrive
      • Click Save.

  4. 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 = 'pipedrive'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Pipedrive:', 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: 'pipedrive_user_me',
    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
  • pipedrive_activities_listRetrieve a list of activities from Pipedrive.Read-only

    List Activities

    Retrieve a list of activities from Pipedrive. Filter by owner, deal, person, organization, completion status, and date range.

    Inputs

    cursorstring
    Cursor for pagination from a previous response.
    deal_idinteger
    Filter activities by deal ID.
    doneboolean
    Filter by completion status: true for done, false for undone.
    limitinteger
    Number of activities to return per page (max 500).
    org_idinteger
    Filter activities by organization ID.
    owner_idinteger
    Filter activities by owner user ID.
    person_idinteger
    Filter activities by person ID.
    updated_sincestring
    Filter activities updated after this RFC3339 datetime.
  • pipedrive_activity_getRetrieve details of a single activity in Pipedrive by its ID, including subject, type, due date/time, and associated deal, person, or organization.Read-only

    Get Activity

    Retrieve details of a single activity in Pipedrive by its ID, including subject, type, due date/time, and associated deal, person, or organization.

    Inputs

    idintegerrequired
    The ID of the activity to retrieve.
  • pipedrive_activity_types_listList all activity types in Pipedrive (the valid 'type' values and icons for activities).Read-only

    List Activity Types

    List all activity types in Pipedrive (the valid 'type' values and icons for activities). Use this before creating activities that need a specific type.

    Inputs

    This tool takes no inputs.

  • pipedrive_deal_fields_listGet metadata for all deal fields in Pipedrive, including custom fields.Read-only

    List Deal Fields

    Get metadata for all deal fields in Pipedrive, including custom fields. Use this to discover valid field keys and option values before writing deal data.

    Inputs

    cursorstring
    Cursor for pagination from a previous response.
    include_fieldsstring
    Comma-separated list of extra properties to include, e.g. ui_visibility, important_fields, required_fields.
    limitinteger
    Number of fields to return per page (max 500, default 100).
  • pipedrive_deal_followers_listList the users who are following a specific deal in Pipedrive.Read-only

    List Deal Followers

    List the users who are following a specific deal in Pipedrive.

    Inputs

    idintegerrequired
    The ID of the deal.
  • pipedrive_deal_getRetrieve details of a specific deal in Pipedrive by its ID, including title, value, status, pipeline stage, associated person and organization.Read-only

    Get Deal

    Retrieve details of a specific deal in Pipedrive by its ID, including title, value, status, pipeline stage, associated person and organization.

    Inputs

    idintegerrequired
    The ID of the deal to retrieve.
  • pipedrive_deal_participants_listList the persons who are participants on a specific deal in Pipedrive.Read-only

    List Deal Participants

    List the persons who are participants on a specific deal in Pipedrive.

    Inputs

    idintegerrequired
    The ID of the deal.
  • pipedrive_deal_products_listList the products (line items) attached to a deal in Pipedrive, including quantities, pricing, and discounts.Read-only

    List Deal Products

    List the products (line items) attached to a deal in Pipedrive, including quantities, pricing, and discounts.

    Inputs

    idintegerrequired
    The ID of the deal.
    cursorstring
    Cursor for pagination from a previous response.
    limitinteger
    Number of products to return per page (max 500).
    sort_bystring
    Field to sort results by: add_time or update_time.
    sort_directionstring
    Sort direction: asc or desc.