How to integrate Dialpad MCP with LlamaIndex

This guide walks you through connecting Dialpad to LlamaIndex using the Composio tool router. By the end, you'll have a working Dialpad agent that can block these spam numbers on our phone system, add a new operator to the support call center, include a manager in the ongoing client call through natural language commands. This guide will help you understand how to give your LlamaIndex agent real control over a Dialpad account through Composio's Dialpad MCP server. Before we dive in, let's take a quick look at the key ideas and tools involved.

Dialpad logoDialpad
Oauth2Api Key

Dialpad is a cloud-based business phone and contact center system for teams. It unifies voice, video, messaging, and meetings across your devices.

192 Tools

Introduction

This guide walks you through connecting Dialpad to LlamaIndex using the Composio tool router. By the end, you'll have a working Dialpad agent that can block these spam numbers on our phone system, add a new operator to the support call center, include a manager in the ongoing client call through natural language commands.

This guide will help you understand how to give your LlamaIndex agent real control over a Dialpad account through Composio's Dialpad MCP server.

Before we dive in, let's take a quick look at the key ideas and tools involved.

Also integrate Dialpad with

TL;DR

Here's what you'll learn:
  • Set your OpenAI and Composio API keys
  • Install LlamaIndex and Composio packages
  • Create a Composio Tool Router session for Dialpad
  • Connect LlamaIndex to the Dialpad MCP server
  • Build a Dialpad-powered agent using LlamaIndex
  • Interact with Dialpad through natural language

What is LlamaIndex?

LlamaIndex is a data framework for building LLM applications. It provides tools for connecting LLMs to external data sources and services through agents and tools.

Key features include:

  • ReAct Agent: Reasoning and acting pattern for tool-using agents
  • MCP Tools: Native support for Model Context Protocol
  • Context Management: Maintain conversation context across interactions
  • Async Support: Built for async/await patterns

What is the Dialpad MCP server, and what's possible with it?

The Dialpad MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Dialpad account. It provides structured and secure access to your company’s phone system, giving your agent the ability to manage calls, operators, channels, and communication workflows—all without you lifting a finger.

  • Automated call and participant management: Have your agent add participants to ongoing calls or assign phone numbers to call routers to streamline real-time communications.
  • Channel and team membership control: Let your agent add members to channels or coaching teams, making onboarding and team adjustments effortless.
  • Operator assignment and role management: Easily direct your agent to add or update operators for departments, offices, or call centers, ensuring the right people are always in the right roles.
  • Phone and fax line provisioning: Empower your agent to create and assign fax lines or phone numbers to users, departments, or call routers, keeping your communications infrastructure flexible and up-to-date.
  • Access policy and security oversight: Enable your agent to list and audit access control policies, helping administrators maintain secure and compliant operations within Dialpad.

What is the Composio tool router, and how does it fit here?

What is Composio SDK?

Composio's Composio SDK helps agents find the right tools for a task at runtime. You can plug in multiple toolkits (like Gmail, HubSpot, and GitHub), and the agent will identify the relevant app and action to complete multi-step workflows. This can reduce token usage and improve the reliability of tool calls. Read more here: Getting started with Composio SDK

The tool router generates a secure MCP URL that your agents can access to perform actions.

How the Composio SDK works

The Composio SDK follows a three-phase workflow:

  1. Discovery: Searches for tools matching your task and returns relevant toolkits with their details.
  2. Authentication: Checks for active connections. If missing, creates an auth config and returns a connection URL via Auth Link.
  3. Execution: Executes the action using the authenticated connection.

Step-by-step Guide

Step by step10 STEPS
1

Prerequisites

Before you begin, make sure you have:
  • Python 3.8/Node 16 or higher installed
  • A Composio account with the API key
  • An OpenAI API key
  • A Dialpad account and project
  • Basic familiarity with async Python/Typescript
2

Getting API Keys for OpenAI, Composio, and Dialpad

OpenAI API key (OPENAI_API_KEY)
  • Go to the OpenAI dashboard
  • Create an API key if you don't have one
  • Assign it to OPENAI_API_KEY in .env
Composio API key and user ID
  • Log into the Composio dashboard
  • Copy your API key from Settings
    • Use this as COMPOSIO_API_KEY
  • Pick a stable user identifier (email or ID)
    • Use this as COMPOSIO_USER_ID
3

Installing dependencies

npm install @composio/llamaindex @llamaindex/openai @llamaindex/tools @llamaindex/workflow dotenv

Create a new Typescript project and install the necessary dependencies:

  • @composio/llamaindex: Composio's LlamaIndex integration
  • @llamaindex/openai: OpenAI LLM integration
  • @llamaindex/tools: MCP client for LlamaIndex
  • @llamaindex/workflow: Workflow framework for LlamaIndex
  • dotenv: Environment variable management
4

Set environment variables

bash
OPENAI_API_KEY=your-openai-api-key
COMPOSIO_API_KEY=your-composio-api-key
COMPOSIO_USER_ID=your-user-id

Create a .env file in your project root:

These credentials will be used to:

  • Authenticate with OpenAI's GPT-5 model
  • Connect to Composio's Tool Router
  • Identify your Composio user session for Dialpad access
5

Import modules

import "dotenv/config";
import readline from "node:readline/promises";
import { stdin as input, stdout as output } from "node:process";

import { Composio } from "@composio/core";

import { mcp } from "@llamaindex/tools";
import { agent as createAgent } from "@llamaindex/workflow";
import { openai } from "@llamaindex/openai";

dotenv.config();

Create a new file called dialpad_llamaindex_agent.ts and import the required modules:

Key imports:

  • dotenv.config loads .env at runtime
  • readline gives us a simple CLI chat loop
  • Composio is the main Composio SDK client
  • mcp connects to an MCP endpoint
  • createAgent builds a LlamaIndex agent
  • openai configures the LLM backend
6

Load environment variables and initialize Composio

const OPENAI_API_KEY = process.env.OPENAI_API_KEY;
const COMPOSIO_API_KEY = process.env.COMPOSIO_API_KEY;
const COMPOSIO_USER_ID = process.env.COMPOSIO_USER_ID;

if (!OPENAI_API_KEY) throw new Error("OPENAI_API_KEY is not set");
if (!COMPOSIO_API_KEY) throw new Error("COMPOSIO_API_KEY is not set");
if (!COMPOSIO_USER_ID) throw new Error("COMPOSIO_USER_ID is not set");

What's happening:

This ensures missing credentials cause early, clear errors before the agent attempts to initialise.

7

Create a Tool Router session and build the agent function

async function buildAgent() {

  console.log(`Initializing Composio client...${COMPOSIO_USER_ID!}...`);
  console.log(`COMPOSIO_USER_ID: ${COMPOSIO_USER_ID!}...`);

  const composio = new Composio({
    apiKey: COMPOSIO_API_KEY,
    provider: new LlamaindexProvider(),
  });

  const session = await composio.create(
    COMPOSIO_USER_ID!,
    {
      toolkits: ["dialpad"],
    },
  );

  const mcpUrl = session.mcp.url;
  console.log(`Composio Tool Router MCP URL: ${mcpUrl}`);

  const server = mcp({
    url: mcpUrl,
    clientName: "composio_tool_router_with_llamaindex",
    requestInit: {
      headers: {
        "x-api-key": COMPOSIO_API_KEY!,
      },
    },
    // verbose: true,
  });

  const tools = await server.tools();

  const llm = openai({ apiKey: OPENAI_API_KEY, model: "gpt-5" });

  const agent = createAgent({
    name: "composio_tool_router_with_llamaindex",
        description : "An agent that uses Composio Tool Router MCP tools to perform actions.",
    systemPrompt:
      "You are a helpful assistant connected to Composio Tool Router."+
"Use the available tools to answer user queries and perform Dialpad actions." ,
    llm,
    tools,
  });

  return agent;
}

What's happening here:

  • We create a Composio client using your API key and configure it with the LlamaIndex provider
  • We then create a tool router MCP session for your user, specifying the toolkits we want to use (in this case, dialpad)
  • The session returns an MCP HTTP endpoint URL that acts as a gateway to all your configured tools
  • LlamaIndex will connect to this endpoint to dynamically discover and use the available Dialpad tools.
  • The MCP tools are mapped to LlamaIndex-compatible tools and plug them into the Agent.
8

Create an interactive chat loop

async function chatLoop(agent: ReturnType<typeof createAgent>) {
  const rl = readline.createInterface({ input, output });

  console.log("Type 'quit' or 'exit' to stop.");

  while (true) {
    let userInput: string;

    try {
      userInput = (await rl.question("\nYou: ")).trim();
    } catch {
      console.log("\nAgent: Bye!");
      break;
    }

    if (!userInput) {
      continue;
    }

    const lower = userInput.toLowerCase();
    if (lower === "quit" || lower === "exit") {
      console.log("Agent: Bye!");
      break;
    }

    try {
      process.stdout.write("Agent: ");

      const stream = agent.runStream(userInput);
      let finalResult: any = null;

      for await (const event of stream) {
        // The event.data contains the streamed content
        const data: any = event.data;

        // Check for streaming delta content
        if (data?.delta) {
          process.stdout.write(data.delta);
        }

        // Store final result for fallback
        if (data?.result || data?.message) {
          finalResult = data;
        }
      }

      // If no streaming happened, show the final result
      if (finalResult) {
        const answer =
          finalResult.result ??
          finalResult.message?.content ??
          finalResult.message ??
          "";
        if (answer && typeof answer === "string" && !answer.includes("[object")) {
          process.stdout.write(answer);
        }
      }

      console.log(); // New line after streaming completes
    } catch (err: any) {
      console.error("\nAgent error:", err?.message ?? err);
    }
  }

  rl.close();
}

What's happening:

  • We're creating a direct terminal interface to chat with Dialpad
  • The LLM's responses are streamed to the CLI for faster interaction.
  • The agent uses context to maintain conversation history
  • The agent processes the request, selects appropriate Dialpad tools, and returns a result
  • We extract the answer from the result data structure and display it to the user
  • You can type 'quit' or 'exit' to stop the chat loop gracefully
  • Agent responses and any errors are streamed in a clear, readable format
9

Define the main entry point

async function main() {
  try {
    const agent = await buildAgent();
    await chatLoop(agent);
  } catch (err) {
    console.error("Failed to start agent:", err);
    process.exit(1);
  }
}

main();

What's happening here:

  • We're orchestrating the entire application flow
  • The agent gets built with proper error handling
  • Then we kick off the interactive chat loop so you can start talking to Dialpad
10

Run the agent

npx ts-node llamaindex-agent.ts

When prompted, authenticate and authorise your agent with Dialpad, then start asking questions.

Complete Code

Here's the complete code to get you started with Dialpad and LlamaIndex:

import "dotenv/config";
import readline from "node:readline/promises";
import { stdin as input, stdout as output } from "node:process";

import { Composio } from "@composio/core";
import { LlamaindexProvider } from "@composio/llamaindex";

import { mcp } from "@llamaindex/tools";
import { agent as createAgent } from "@llamaindex/workflow";
import { openai } from "@llamaindex/openai";

dotenv.config();

const OPENAI_API_KEY = process.env.OPENAI_API_KEY;
const COMPOSIO_API_KEY = process.env.COMPOSIO_API_KEY;
const COMPOSIO_USER_ID = process.env.COMPOSIO_USER_ID;

if (!OPENAI_API_KEY) {
    throw new Error("OPENAI_API_KEY is not set in the environment");
  }
if (!COMPOSIO_API_KEY) {
    throw new Error("COMPOSIO_API_KEY is not set in the environment");
  }
if (!COMPOSIO_USER_ID) {
    throw new Error("COMPOSIO_USER_ID is not set in the environment");
  }

async function buildAgent() {

  console.log(`Initializing Composio client...${COMPOSIO_USER_ID!}...`);
  console.log(`COMPOSIO_USER_ID: ${COMPOSIO_USER_ID!}...`);

  const composio = new Composio({
    apiKey: COMPOSIO_API_KEY,
    provider: new LlamaindexProvider(),
  });

  const session = await composio.create(
    COMPOSIO_USER_ID!,
    {
      toolkits: ["dialpad"],
    },
  );

  const mcpUrl = session.mcp.url;
  console.log(`Composio Tool Router MCP URL: ${mcpUrl}`);

  const server = mcp({
    url: mcpUrl,
    clientName: "composio_tool_router_with_llamaindex",
    requestInit: {
      headers: {
        "x-api-key": COMPOSIO_API_KEY!,
      },
    },
    // verbose: true,
  });

  const tools = await server.tools();

  const llm = openai({ apiKey: OPENAI_API_KEY, model: "gpt-5" });

  const agent = createAgent({
    name: "composio_tool_router_with_llamaindex",
    description:
      "An agent that uses Composio Tool Router MCP tools to perform actions.",
    systemPrompt:
      "You are a helpful assistant connected to Composio Tool Router."+
"Use the available tools to answer user queries and perform Dialpad actions." ,
    llm,
    tools,
  });

  return agent;
}

async function chatLoop(agent: ReturnType<typeof createAgent>) {
  const rl = readline.createInterface({ input, output });

  console.log("Type 'quit' or 'exit' to stop.");

  while (true) {
    let userInput: string;

    try {
      userInput = (await rl.question("\nYou: ")).trim();
    } catch {
      console.log("\nAgent: Bye!");
      break;
    }

    if (!userInput) {
      continue;
    }

    const lower = userInput.toLowerCase();
    if (lower === "quit" || lower === "exit") {
      console.log("Agent: Bye!");
      break;
    }

    try {
      process.stdout.write("Agent: ");

      const stream = agent.runStream(userInput);
      let finalResult: any = null;

      for await (const event of stream) {
        // The event.data contains the streamed content
        const data: any = event.data;

        // Check for streaming delta content
        if (data?.delta) {
          process.stdout.write(data.delta);
        }

        // Store final result for fallback
        if (data?.result || data?.message) {
          finalResult = data;
        }
      }

      // If no streaming happened, show the final result
      if (finalResult) {
        const answer =
          finalResult.result ??
          finalResult.message?.content ??
          finalResult.message ??
          "";
        if (answer && typeof answer === "string" && !answer.includes("[object")) {
          process.stdout.write(answer);
        }
      }

      console.log(); // New line after streaming completes
    } catch (err: any) {
      console.error("\nAgent error:", err?.message ?? err);
    }
  }

  rl.close();
}

async function main() {
  try {
    const agent = await buildAgent();
    await chatLoop(agent);
  } catch (err: any) {
    console.error("Failed to start agent:", err?.message ?? err);
    process.exit(1);
  }
}

main();

Conclusion

You've successfully connected Dialpad to LlamaIndex through Composio's Tool Router MCP layer. Key takeaways:
  • Tool Router dynamically exposes Dialpad tools through an MCP endpoint
  • LlamaIndex's ReActAgent handles reasoning and orchestration; Composio handles integrations
  • The agent becomes more capable without increasing prompt size
  • Async Python provides clean, efficient execution of agent workflows
You can easily extend this to other toolkits like Gmail, Notion, Stripe, GitHub, and more by adding them to the toolkits parameter.
TOOLS

Supported Tools

Every Dialpad action and event your agent gets out of the box.

Access control policies listing

Retrieves a list of access control policies for the authenticated Dialpad company.

Add blocked phone numbers

Adds specified phone numbers to the blocked list in Dialpad.

Add department operator by id

Adds a new operator to a specific department in Dialpad.

Add member to channel

Adds a new member to a specified channel within the Dialpad communication platform.

Add member to coaching team

Adds a new member to a specific coaching team in Dialpad.

Add operator to call center

This endpoint adds a new operator to a specified call center in the Dialpad system.

Add operator to office

This endpoint adds a new operator to a specific office within the Dialpad system.

Add participant to call

Adds a new participant to an existing call in the Dialpad system.

Assign fax line to target

Creates and assigns a new fax line to a specified target (user or department) in the Dialpad system.

Assign number to call router

This endpoint assigns a phone number to a specific call router in the Dialpad system.

Assign phone number to office

This endpoint assigns a phone number to a specific office in the Dialpad system.

Assign phone number to room

Assigns a phone number to a specified room in Dialpad.

Assign phone number to target

Assigns a phone number to a specified target within the Dialpad system.

Assign phone number to user

This endpoint assigns a phone number to a specific Dialpad user.

Assign policy to user by id

Assigns an access control policy to a specific user within the Dialpad system.

Attach labels to call

Creates or updates labels for a specific call in the Dialpad system.

Configure call center settings

This endpoint creates a new call center within the Dialpad system with customizable settings for call handling, routing, operational hours, and advanced features.

Create access control policy

Creates a new access control policy in Dialpad, defining a set of permissions and their application scope.

Create agent status subscription

Creates or updates an agent status subscription for real-time monitoring of contact center agent statuses in Dialpad.

Create callback

Creates a callback request in a Dialpad call center.

Create call review share link

Creates a shareable link for a specific call review in the Dialpad platform.

Create call router configuration

Creates a new call router in the Dialpad system, allowing for custom call routing logic based on a specified URL.

Create channel endpoint

Creates a new communication channel within the Dialpad platform.

Create custom ivr with audio file

Creates a new custom Interactive Voice Response (IVR) system within the Dialpad platform.

Create new contact entry

The CreateContact endpoint adds a new contact to Dialpad's system.

Create new department record

Creates a new department within the Dialpad system with customizable settings for call handling, operating hours, and advanced features.

Create pin for international room calls

Creates a PIN for protected international calls from a Dialpad room.

Create room in office via post

Creates a new room within a specified office in the Dialpad system.

Create schedule reports endpoint

Creates a scheduled report in the Dialpad system for various types of communication data.

Create secondary office

Creates a new office within the Dialpad system with specified configurations and settings.

Create sms event subscription

Creates a new SMS event subscription in the Dialpad API, allowing users to receive notifications for inbound and/or outbound SMS messages.

Create user with auto assign

Creates a new user account in the Dialpad system with the specified details.

Create webhook post endpoint

Creates a new webhook integration for receiving real-time event notifications from Dialpad.

Deauthorize oauth2 session

Deauthorizes (revokes) an OAuth2 access token, effectively terminating the application's access to the Dialpad API.

Delete access control policy by id

Deletes a specific access control policy from the Dialpad system.

Delete agent status by id

Deletes a specific agent status subscription identified by its unique ID.

Delete call center by id

Deletes a specific call center from the Dialpad system.

Delete callreviewsharelink by id

This endpoint deletes a specific call review share link in the Dialpad system.

Delete callrouter by id

Deletes a specific call router from the Dialpad system.

Delete call subscription by id

Deletes a specific call subscription from the Dialpad system.

Delete channel by id

Deletes a specific channel from the Dialpad communication platform.

Delete channel member by id

Removes a specified member from a Dialpad channel.

Delete contact by id

Deletes a specific contact from the Dialpad system using the provided contact ID.

Delete customivr by targettype and ivrtype

Deletes a custom Interactive Voice Response (IVR) configuration from a specified target in the Dialpad system.

Delete department resource

Deletes a specific department from the Dialpad system.

Delete deskphone by user id

Deletes a specific deskphone associated with a user in the Dialpad system.

Delete deskphone in room

This endpoint removes a specific deskphone from a designated room within the Dialpad system.

Delete number via api

Deletes a specific phone number from the user's Dialpad account.

Delete office operator by id

Removes a specified operator (user or room) from a particular office in the Dialpad system.

Delete operator from call center

Removes a specified operator from a call center in the Dialpad system.

Delete operator from department

Removes a specified operator from a department in the Dialpad system.

Delete recording share link by id

Deletes a specific recording share link in the Dialpad system.

Delete room by id

Deletes a specific room from the Dialpad system using its unique identifier.

Delete schedule report by id

Deletes a specific scheduled report from the Dialpad system.

Delete sms subscription by id

Deletes a specific SMS subscription from the Dialpad system.

Delete subscription changelog by id

Deletes a specific changelog entry from a subscription in the Dialpad system.

Delete subscription contact by id

Deletes a specific subscription contact from the Dialpad system.

Delete user by id

Deletes a user from the Dialpad system based on the provided user ID.

Delete webhook by id

Deletes a specific webhook subscription from the Dialpad platform using its unique identifier.

Delete websocket connection by id

Closes and removes a specific WebSocket connection in the Dialpad system.

Fetch call byid

Retrieves detailed information about a specific call using its unique identifier.

Fetch call transcript by id

Retrieves the transcript for a specific call in the Dialpad system.

Fetch custom ivrs

Retrieves a list of all custom Interactive Voice Response (IVR) configurations associated with the authenticated Dialpad account.

Fetch operators for office id

Retrieves a list of operators associated with a specific office in Dialpad.

Fetch scheduled reports

Retrieves a list of scheduled reports from the Dialpad system.

Fetch transcript url by call id

Retrieves the URL of a transcript for a specific call in the Dialpad system.

Fetch user details by id

Retrieves detailed information about a specific user in the Dialpad system.

Format phone numbers

The format_phone_number endpoint is used to standardize and format phone numbers within the Dialpad ecosystem.

Get available licenses for an office

Retrieves the number of available (unused) licenses for a specific office within a Dialpad organization.

Get call center status by id

Retrieves the current operational status of a specific call center in the Dialpad system.

Get call labels

Retrieves a list of all available call labels in the Dialpad system.

Get call review share link by id

Retrieves or generates a share link for a specific call review in the Dialpad system.

Get call subscription details

Retrieves a list of call subscriptions associated with the authenticated user's account in the Dialpad platform.

Get channel members by id

Retrieves a list of members for a specific channel in Dialpad.

Get departments by office id

Retrieves a list of all departments associated with a specific office in the Dialpad system.

Get deskphone by parent id

Retrieves detailed information about a specific deskphone within a designated room or parent entity in the Dialpad system.

Get deskphones for user parent id

Retrieves a list of deskphones associated with a specific user in the Dialpad system.

Get deskphones in rooms

Retrieves a list of deskphones associated with a specific room in the Dialpad system.

Get office call centers

Retrieves a list of call centers associated with a specific office in the Dialpad platform.

Get operator skills by call center and user

Retrieves the skill information for a specific operator within a designated call center.

Get phone number details

Retrieves detailed information about a specific phone number associated with the Dialpad account.

Get recording share link by id

Retrieves detailed information about a specific recording share link in the Dialpad system.

Get rooms list

Retrieves a list of all available meeting rooms or spaces within the Dialpad system.

Get subscription contact by id

Retrieves the subscription information for a specific contact in the Dialpad system.

Get user caller id

Retrieves the caller ID information for a specific user in the Dialpad system.

Get user deskphones

Retrieves detailed information about a specific deskphone associated with a particular user in the Dialpad system.

Get user e911 details

Retrieves the Enhanced 911 (E911) information for a specific user in the Dialpad system.

Get webhooks information

Retrieves a list of all webhooks configured for the authenticated user's Dialpad account.

Hangup call via id

Terminates an active call in the Dialpad system.

Initiate ivr call api endpoint

Initiates an outbound IVR (Interactive Voice Response) call using the Dialpad API.

Initiate outbound call via api

The InitiateOutboundCall endpoint allows you to programmatically initiate an outbound call using the Dialpad API.

Initiate user call with group options

Initiates an outbound call for a specified Dialpad user.

List channels api

Retrieves a list of all available communication channels in the Dialpad platform.

List conference rooms

Retrieves a list of conference rooms available in the Dialpad system.

List offices endpoint

Retrieves a list of offices within the Dialpad platform.

List users

Retrieves a list of users from the Dialpad system.

Modify contact details using id

Updates an existing contact's information in the Dialpad system.

Modify custom ivr settings

Updates a custom Interactive Voice Response (IVR) configuration for a specific target within the Dialpad system.

Modify operator skill level

Updates the skill level of a specific operator in a designated call center.

Modify webhook configuration

Updates an existing webhook configuration in the Dialpad API.

Move user to specified office

Updates a user's office assignment within the Dialpad system.

Oauth2 authorize endpoint

Initiates the OAuth 2.

Patch access control policy by id

This endpoint allows you to update an existing access control policy in the Dialpad system.

Patch agent status event subscription

Updates an existing agent status subscription in the Dialpad system.

Patch call router by id

Updates an existing call router in the Dialpad system.

Patch department details by id

Updates the settings and configuration of a specific department in the Dialpad system.

Patch subscription changelog endpoint

Updates an existing change log event subscription in the Dialpad system.

Patch user active call recording

Updates the call recording settings for an active call of a specific Dialpad user.

Patch user status

Updates the status of a specific user in the Dialpad system.

Patch websocket signature secret

Updates the signature secret for a specific websocket connection in the Dialpad platform.

Post call event subscription

Creates a new call event subscription in the Dialpad system, allowing real-time notifications for various call states and actions.

Post recording share link

Creates a shareable link for a specific recording in Dialpad, such as a call recording or voicemail.

Post subscription change log event

Creates or updates a subscription for changelog events in the Dialpad system.

Post users screenpop uri

Triggers a screen pop for a specific Dialpad user, displaying relevant information during a call or communication event.

Post websocket connection secret

Creates a websocket connection for real-time communication with the Dialpad platform.

Reassign phone number to target

Assigns or reassigns a phone number to a specific target within the Dialpad system.

Redeem access or refresh token

The OAuth 2.

Remove blocked numbers

Removes specified phone numbers from the blocked list in the Dialpad system.

Retrieve access control policy assignments

Retrieves the assignments of a specific access control policy in Dialpad.

Retrieve access control policy by id

Retrieves detailed information about a specific access control policy in the Dialpad system.

Retrieve agent status by id

Retrieves detailed information about a specific agent status subscription using its unique identifier.

Retrieve agent status subscription

Retrieves a list of agent status subscriptions from the Dialpad system.

Retrieve app settings

Retrieves the current application settings for the authenticated Dialpad account.

Retrieve blocked number details

Retrieves information about a specific blocked number in the Dialpad system.

Retrieve blocked phone numbers

Retrieves a comprehensive list of all phone numbers that have been blocked through the Dialpad API.

Retrieve call center by id

Retrieves detailed information about a specific call center in the Dialpad system.

Retrieve callcenter operators by id

Retrieves a list of operators associated with a specific call center in Dialpad.

Retrieve call centers information

Retrieves a list of call centers and their associated information from the Dialpad platform.

Retrieve call information

Retrieves call information from the Dialpad system.

Retrieve callrouter by id

Retrieves detailed information about a specific call router in the Dialpad system.

Retrieve call routers v2 api

Retrieves a list of call routers configured in the Dialpad system.

Retrieve call subscription by id

Retrieves detailed information about a specific call subscription in the Dialpad system.

Retrieve channel by id

Retrieves detailed information about a specific communication channel in the Dialpad platform using its unique identifier.

Retrieve coaching stats v2

The GetStatistics endpoint retrieves comprehensive statistics for various aspects of Dialpad usage, including calls, customer satisfaction (CSAT), dispositions, on-duty status, recordings, screen shares, texts, and voicemails.

Retrieve coaching team by id

Retrieves detailed information about a specific coaching team in Dialpad.

Retrieve coaching teams information

Retrieves information about coaching teams in the Dialpad platform.

Retrieve company data

Retrieves detailed information about a specific company within the Dialpad platform.

Retrieve conference meetings

Retrieves information about conference meetings in the Dialpad platform.

Retrieve contact by id

Retrieves detailed information for a specific contact in your Dialpad account using the contact's unique identifier.

Retrieve contact list

Retrieves a list of contacts from the Dialpad platform.

Retrieve department by id

Retrieves detailed information about a specific department within the Dialpad organization.

Retrieve department operators by id

Retrieves a list of operators associated with a specific department in Dialpad.

Retrieve e911 office details

Retrieves the Enhanced 911 (E911) settings for a specific office within the Dialpad communication platform.

Retrieve list of departments

Retrieves a list of departments for a specified office within the Dialpad organization.

Retrieve members of coaching team by id

Retrieves a list of members belonging to a specific coaching team in Dialpad.

Retrieve numbers via api v2

Retrieves a list of phone numbers associated with the user's Dialpad account.

Retrieve off duty status by office id

Retrieves the list of custom off-duty statuses for a specific office within the Dialpad system.

Retrieve office by id

Retrieves detailed information about a specific office within the Dialpad system.

Retrieve office plan by id

Retrieves the current plan details for a specific office in your Dialpad organization.

Retrieve operator duty status

Retrieves the current duty status of a specific call center operator in Dialpad.

Retrieve room information by id

Retrieves detailed information about a specific room in the Dialpad system.

Retrieve schedule report by id

Retrieves detailed information about a specific scheduled report in the Dialpad system.

Retrieve sms opt out by company id

Retrieves the SMS opt-out list for a specific company within the Dialpad platform.

Retrieve sms subscription by id

Retrieves detailed information about a specific SMS subscription in Dialpad.

Retrieve sms subscriptions

Retrieves a list of SMS subscriptions associated with the authenticated user's Dialpad account.

Retrieve specific webhook by id

Retrieves detailed information about a specific webhook configuration in the Dialpad system.

Retrieve stat by id

Retrieves detailed statistics and analytics data for a specific entity within the Dialpad platform.

Retrieve subscription change log

Retrieves the changelog for Dialpad API subscriptions.

Retrieve subscription change log by id

Retrieves the changelog for a specific subscription in the Dialpad system.

Retrieve subscription contacts

Retrieves subscription information for contacts in the Dialpad system.

Retrieve teams for office id

Retrieves a list of teams associated with a specific office in the Dialpad organization.

Retrieve user device by id

Retrieves detailed information about a specific user device associated with a Dialpad account.

Retrieve user devices list

Retrieves a list of devices associated with users in the Dialpad system.

Retrieve user personas by id

Retrieves all personas associated with a specific user in the Dialpad system.

Retrieve websocket by id

Retrieves detailed information about a specific WebSocket connection using its unique identifier.

Retrieve websocket connection

Retrieves information about WebSocket connections or initiates a WebSocket connection for real-time event subscriptions with Dialpad.

Send sms with optional media and group sender

The SendSMS endpoint allows you to send SMS or MMS messages through the Dialpad platform to one or multiple recipients.

Set user caller id by id

Sets or blocks the Caller ID for a specific Dialpad user.

Subscribe contact event

Creates a new contact event subscription in the Dialpad platform, allowing you to receive real-time updates about changes to contacts.

Toggle user do not disturb status

The ToggleUserDoNotDisturb endpoint allows you to update the Do Not Disturb (DND) status for a specific user in the Dialpad system.

Toggle vi call for user by id

Toggles the Voice Intelligence (VI) feature for a specific Dialpad user.

Transfer call to destination

Transfers an active call within the Dialpad system to a new destination.

Unassign access control policy from user

This endpoint unassigns a user from a specific access control policy in Dialpad.

Unassign office number

This endpoint unassigns a specific phone number from a Dialpad office.

Unassign room phone number

This endpoint unassigns a phone number from a specific room in the Dialpad system.

Unassign user phone number

Unassigns a specified phone number from a user's Dialpad account.

Unpark call by user id

Unparks a previously parked call in the Dialpad system.

Update call center settings by id

Updates the configuration of an existing call center in the Dialpad platform.

Update call review share link privacy

Updates the privacy settings of an existing call review share link in Dialpad.

Update call subscription by id

Updates an existing call event subscription in the Dialpad system.

Update contact information

Updates an existing contact's information in the Dialpad system.

Update contact subscription by id

Updates an existing contact event subscription in the Dialpad system.

Update e911 address for office

This endpoint updates the Enhanced 911 (E911) address for a specific office in Dialpad.

Update e911 address for user

Updates the E911 address for a specified user in the Dialpad system.

Update ivr details by id

Updates an existing custom Interactive Voice Response (IVR) workflow in the Dialpad system.

Update operator duty status

Updates the duty status of a specific call center operator in Dialpad.

Update recording share link privacy

Updates the privacy settings of a specific recording share link in Dialpad.

Update room details

Updates the configuration of a specific Dialpad room identified by its ID.

Update schedule report settings

The UpdateScheduledReport endpoint allows you to modify the settings of an existing scheduled report in Dialpad.

Update sms subscription settings

Updates an existing SMS event subscription in the Dialpad API.

Update user information by id

This endpoint allows you to update various aspects of a user's profile and settings in the Dialpad system.

Validate callback request

Validates a callback request for the Dialpad system.

FAQ

Frequently asked questions

With a standalone Dialpad MCP server, the agents and LLMs can only access a fixed set of Dialpad tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Dialpad and many other apps based on the task at hand, all through a single MCP endpoint.

Yes, you can. LlamaIndex fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Dialpad tools.

Yes, absolutely. You can configure which Dialpad scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Dialpad data and credentials are handled as safely as possible.

Start with Dialpad.It takes 30 seconds.

Managed auth, hosted MCP servers, and every Dialpad tool your agent needs.Free to start.

Start building