Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Dialpad

Scalekit connector
Open markdown

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

Tools
112
What they doRead · write · destructive
68 · 42 · 268 read42 write2 destructive
Users sign in with
OAuth app
Your own Dialpad 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 Dialpad connection

    In AgentKit > Connections, create a Dialpad 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

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

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

  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 = 'dialpad'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Dialpad:', 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: 'dialpad_blocked_numbers_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
  • dialpad_agent_group_getGet one Dialpad agent group by ID.Read-only

    Get Agent Group

    Get one Dialpad agent group by ID. Returns the agent group's details. Use dialpad_agent_group_get when you already have the agent group ID. Requires the agent_groups:read scope on the connection.

    Inputs

    agent_group_idstringrequired
    The agent group ID. Example: 5719029487116288
  • dialpad_blocked_number_getCheck whether one phone number is blocked company-wide in Dialpad.Read-only

    Get Blocked Number

    Check whether one phone number is blocked company-wide in Dialpad. Returns the number if it is blocked; responds 404 if it is not blocked or was blocked outside the API. Use dialpad_blocked_number_get for a single check. Use dialpad_blocked_numbers_list to see all.

    Inputs

    numberstringrequired
    The phone number to check, in E.164 format. Example: +14155550123
  • dialpad_blocked_numbers_listList the phone numbers blocked company-wide through the Dialpad API.Read-only

    List Blocked Numbers

    List the phone numbers blocked company-wide through the Dialpad API. Returns a page of blocked numbers and a cursor. Numbers blocked in the app are not included. Use dialpad_blocked_numbers_list to review blocks. Use dialpad_blocked_number_get to check one number.

    Inputs

    cursorstring
    A token used to return the next page of a previous request. Use the cursor provided in the previous response. Example: Cg8KBG5hbWUSBxoFamFuZQ
  • dialpad_call_ai_recap_getGet the Dialpad AI Recap (AI-generated summary) of a call in short, medium, long or bullet format.Read-only

    Get Call AI Recap

    Get the Dialpad AI Recap (AI-generated summary) of a call in short, medium, long or bullet format. Returns the recap text and action items for the call. Use dialpad_call_ai_recap_get for a summary. Use dialpad_transcript_get for the word-for-word transcript. Requires the ai_recap scope on the connection.

    Inputs

    call_idintegerrequired
    The Dialpad call ID, from dialpad_calls_list or a call event. Example: 5719029487116288
    summary_formatstring
    Length/format of the recap: short, medium, long or bullet. Defaults to medium. One of: bullet, long, medium, short.one of bulletlongmediumshortdefault medium
  • dialpad_call_assigned_operators_listList the operators assigned to a call waiting in a Dialpad contact center queue.Read-only

    List Assigned Call Operators

    List the operators assigned to a call waiting in a Dialpad contact center queue. Returns the assigned operators. Use dialpad_call_assigned_operators_list after dialpad_call_operator_assign or dialpad_call_operator_unassign.

    Inputs

    call_idintegerrequired
    The Dialpad call ID, from dialpad_calls_list or a call event. Example: 5719029487116288
  • dialpad_call_getGet the details of one Dialpad call by call ID.Read-only

    Get Call

    Get the details of one Dialpad call by call ID. Returns direction, participants, duration, recording URLs, CSAT, voicemail data, transcription text and routing breadcrumbs. Use dialpad_call_get for one call's details. Use dialpad_transcript_get for the full AI transcript and dialpad_call_ai_recap_get for the AI summary.

    Inputs

    call_idintegerrequired
    The Dialpad call ID, from dialpad_calls_list or a call event. Example: 5719029487116288
  • dialpad_call_labels_listList the call labels defined for the Dialpad company.Read-only

    List Call Labels

    List the call labels defined for the Dialpad company. Returns the label names. Use dialpad_call_labels_list before dialpad_call_labels_add to pick existing labels.

    Inputs

    limitinteger
    Maximum number of labels to return. Defaults to 1000.default 1000