Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Bland AI

Scalekit connector
Open markdown

The Bland AI connector lets your AI agent act in each user's Bland AI account. Each user connects their own Bland AI access token once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 50 tools.

Tools
50
What they doRead · write · destructive
33 · 15 · 233 read15 write2 destructive
Users sign in with

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 Bland AI connection

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

  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 = 'bland'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Bland AI:', 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: 'bland_get_account',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user opens the link once and enters their Bland AI credentials there. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • bland_analyze_callRun AI analysis over a finished call transcript to answer questions you define.Read-only

    Analyze Call

    Run AI analysis over a finished call transcript to answer questions you define. Returns status, message, an answers array in the same order as the questions, and credits_used. Use to extract structured answers from a call. Use get_call to read the raw transcript instead. The call must have completed and have a transcript.

    Inputs

    call_idstringrequired
    ID of the call to analyze.
    goalstringrequired
    Overall purpose of the call. Gives the analysis context for interpreting the transcript.
    questionsarrayrequired
    Questions to answer about the call. Each question is a two-item array: the question text and the expected answer type, for example [["Did the customer agree to a follow-up?", "boolean"]].
  • bland_find_contactFind a contact by phone number, email or external ID without creating anything.Read-only

    Find Contact

    Find a contact by phone number, email or external ID without creating anything. Returns data with the contact's id, name, metadata, identifiers and memories, or null when no contact matches. Use to look up an existing contact. Use resolve_contact to find or create one in a single step. Provide at least one of phone_number, email or external_id.

    Inputs

    emailstring
    Email address to search for.
    external_idstring
    External ID to search for.
    phone_numberstring
    Phone number to search for, in E.164 format.
  • bland_get_accountRetrieve details of your Bland account, including balance and call totals.Read-only

    Get Account

    Retrieve details of your Bland account, including balance and call totals. Returns billing with current_balance, the account status and total_calls. Use to check credit balance before placing calls or to confirm the API key works.

    Inputs

    This tool takes no inputs.

  • bland_get_agentRetrieve one agent together with its dev, staging and production environments.Read-only

    Get Agent

    Retrieve one agent together with its dev, staging and production environments. Returns data with the agent id, name, timestamps and an environments array showing each environment's pinned version. Use to see which version each environment runs. Use list_agent_versions for saved versions.

    Inputs

    agent_idstringrequired
    ID of the agent.
  • bland_get_batchRetrieve metadata and shared configuration for one call batch.Read-only

    Get Batch

    Retrieve metadata and shared configuration for one call batch. Returns data with id, description, base_prompt, created_at and a preview of call_objects. Use to inspect a batch. Use get_batch_logs for its lifecycle events and list_calls with batch_id for its calls.

    Inputs

    batch_idstringrequired
    ID of the batch.
  • bland_get_batch_logsRetrieve lifecycle log entries for a call batch, such as when it started and completed.Read-only

    Get Batch Logs

    Retrieve lifecycle log entries for a call batch, such as when it started and completed. Returns a data array of log entries with id, event_type, timestamp and a payload object. Use to follow a batch's progress. Use get_batch for its configuration.

    Inputs

    batch_idstringrequired
    ID of the batch.
    directionstring
    Sort order of the logs: asc or desc. Defaults to desc.one of ascdesc
    skipinteger
    Number of log entries to skip, for pagination.
    takeinteger
    Number of log entries to return.
  • bland_get_callRetrieve full details for one call, including status, transcript, summary, recording URL, analysis and cost.Read-only

    Get Call

    Retrieve full details for one call, including status, transcript, summary, recording URL, analysis and cost. Returns the call object with completed, status, answered_by, call_length, summary, concatenated_transcript, transcripts, variables, price and related fields. Use after send_call to check the outcome. Use list_calls to browse many calls without transcripts.

    Inputs

    call_idstringrequired
    ID of the call. You can also pass the external_id you set when sending the call.
    fieldsstring
    Comma-separated list of response fields to return, for example status,summary,variables. Omit to return everything.
  • bland_get_contactRetrieve one contact by its ID, with identifiers and memories.Read-only

    Get Contact

    Retrieve one contact by its ID, with identifiers and memories. Returns data with the contact's id, org_id, name, metadata, identifiers and memories. Use when you already have the contact ID. Use find_contact to search by phone, email or external ID.

    Inputs

    contact_idstringrequired
    ID of the contact.