Freshsales MCP server for AI agents and assistants

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Freshsales MCP or direct API to manage contacts, update deals, track sales activities, and search customer records through natural language.

Freshsales logoFreshsales
Api KeyOauth2

Freshsales is a CRM platform for managing contacts, accounts, deals, and sales activities. It helps sales teams personalize engagement and shorten the sales cycle.

104 Tools

Try Freshsales now

Type what you want done — sign in and watch it run live in the Tool Router playground.

TOOL ROUTER PLAYGROUND
Freshsales
Try asking
TOOLS

Supported Tools

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

Add Marketing List Contacts

Add contacts to a Freshsales marketing list.

Bulk Assign Contact Owner

Replace the owner of up to 100 Freshsales contacts using explicit contact and owner IDs.

Bulk Assign CPQ Record Owners

Queue one owner assignment for selected CPQ products or documents; acknowledgment does not prove completion.

Bulk Delete CPQ Records

Queue soft deletion of selected CPQ products or documents so they remain restorable; acknowledgment does not prove completion.

Bulk Restore CPQ Records

Queue restoration of selected soft-deleted CPQ products or documents using the PUT methods in Freshsales' official cURL examples; acknowledgment does not prove completion.

Bulk Update CPQ Records

Queue one shared-field update for selected CPQ products or documents.

Clone Contact

Create a new Freshsales contact by cloning an existing contact and applying field overrides.

Clone Custom Module Record

Create a new Freshsales custom-module record by cloning an existing record and applying field overrides.

Clone Deal

Clone a Freshsales deal, optionally overriding fields on the new deal.

Clone Sales Account

Clone a Freshsales sales account, optionally overriding fields on the new account.

Create Appointment

Create a Freshsales appointment, optionally linked to a CRM record or attendees, and return its ID and related records.

Create Contact

Create a Freshsales contact identified by email addresses, mobile number, Twitter username, or external ID and return its ID and contact fields.

Create CPQ Document

Create a Freshsales quote or other CPQ document and return its confirmed ID.

Create Custom Field

Create a persistent custom field on one explicit Freshsales entity form.

Create Custom Module

Create a tenant-wide Freshsales custom-module definition and return its ID and internal entity name.

Create Custom Module Record

Create one record in a named Freshsales custom module and return its record ID and fields.

Create Deal

Create a Freshsales deal associated with exactly one existing or new sales account.

Create Document Link

Attach a web document URL to one explicit Freshsales CRM record.

Create Marketing List

Create an empty Freshsales marketing list.

Create Note

Create a Freshsales note on one lead, contact, sales account, or deal.

Create CPQ Product

Create a Freshsales CPQ product and return the provider-confirmed product ID.

Create Sales Account

Create a Freshsales sales account with standard, parent-account, or tenant-defined fields.

Create Sales Activity

Create a Freshsales sales activity with all provider-mandatory time, owner, type, and CRM-target fields.

Create Task

Create a Freshsales task with every provider-mandatory assignment, due-date, and CRM-target field.

Delete Appointment

Delete one Freshsales appointment by ID.

Delete Contacts

Delete one or more Freshsales contacts through ordinary deletion rather than permanent forget.

Delete CPQ Document

Soft-delete one Freshsales CPQ document so it can be restored.

Delete Custom Module

Delete a Freshsales custom-module definition and change the tenant's CRM schema.

Delete Custom Module Records

Delete one or more records from a named Freshsales custom module through ordinary deletion.

Delete Deals

Ordinarily delete one deal or bulk-delete multiple deals.

Permanently Delete Note

Permanently delete one Freshsales note.

Delete CPQ Product

Soft-delete one Freshsales CPQ product so it can be restored.

Delete Sales Accounts

Ordinarily delete one account or bulk-delete multiple accounts.

Delete Sales Activity

Delete one Freshsales sales activity after confirming the provider success code.

Delete Task

Delete one Freshsales task and return provider-confirmed deletion fields.

Permanently Forget Contact

Permanently and irreversibly erase one Freshsales contact and associated data.

Permanently Forget CPQ Document

Permanently and irreversibly delete one CPQ document and all associated data.

Permanently Forget Custom Module Record

Permanently and irreversibly erase one Freshsales custom-module record and associated data.

Permanently Forget Deal

IRREVERSIBLE: permanently erase one Freshsales deal and associated data.

Permanently Forget Sales Account

IRREVERSIBLE: permanently erase one Freshsales sales account and associated data.

Get Appointment

Return one Freshsales appointment and its related attendees, users, conferences, and notes.

Get Contact

Return one Freshsales contact by ID, optionally including related resources.

Get CPQ Document

Get one Freshsales CPQ document, optionally including product line items.

Get Custom Module

Return one Freshsales custom-module definition by ID, including the entity name required by custom-module record tools.

Get Custom Module Record

Return one record by ID from a named Freshsales custom module.

Get Deal

Get one Freshsales deal by ID, optionally with related resources.

Get Bulk Upsert Job Status

Get bounded, single-request progress and failure details for one Freshsales bulk-upsert job; this does not poll.

Get CPQ Product

Get one Freshsales CPQ product, optionally including pricing.

Get Sales Account

Get one Freshsales sales account by ID, optionally with related resources.

Get Sales Activity

Get one Freshsales sales activity by ID.

Get Task

Get one Freshsales task by ID, optionally with collaborators and its CRM target.

List Appointments

Return one page selected by Freshsales's required appointment filter.

List Configuration Options

List one Freshsales configuration option family for IDs needed by CRM operations.

List Contact Activities

Return activity history for one Freshsales contact.

List Contact Document Associations

List the file and web-link associations attached to one Freshsales contact, including referenced links, users, and provider totals.

List Contact Fields

List Freshsales contact field definitions, internal names, types, choices, and tenant form metadata for use in contact create and update calls.

List Contacts by View

Return one explicitly numbered page from a saved Freshsales contact view, including shaped page totals and the next page number when available.

List Contact Views

List saved Freshsales contact views and their IDs for use with contact listing tools.

List CPQ Document Related Products

List the typed product records associated with one Freshsales CPQ document.

List Custom Module Records

Return one saved-view page of records from a named Freshsales custom module and a page cursor when more records are available.

List Custom Module Views

List saved views for a Freshsales custom module and return the view IDs needed to list its records.

List Deal Fields

List standard and tenant-defined Freshsales deal field definitions.

List Deals by View

Return one numbered page from a saved Freshsales deal view.

List Deal Views

List saved Freshsales deal views and their IDs.

List Entity Forms

List Freshsales forms for a standard or custom entity so callers can obtain an explicit form ID before creating a custom field.

List Marketing List Contacts

Return one documented page of contacts in a Freshsales marketing list.

List Marketing Lists

Return one documented page of Freshsales marketing lists.

List Sales Account Fields

List standard and tenant-defined Freshsales sales-account field definitions.

List Sales Accounts by View

Return one numbered page from a saved Freshsales sales-account view.

List Sales Account Views

List saved Freshsales sales-account views and their IDs.

List Sales Activities

Return one bounded Freshsales sales-activity page (25 records by default, 100 maximum) and an explicit next page number.

List Sales Activity Fields

List standard and tenant-defined Freshsales sales-activity field definitions.

List Tasks

Return one page of Freshsales tasks for exactly one status or due-date filter.

Log Phone Call for Existing Record

Create an irreversible manual call log for one existing Freshsales lead, contact, or sales account and optionally create a note.

Log Phone Call for New Record

Create a new Freshsales contact and an irreversible manual call log associated with it, optionally with a note.

Lookup Records by Exact Field

Look up exact matches across one or more Freshsales lead, contact, sales-account, or deal types using one compatible standard or custom field.

Move Marketing List Contacts

Move selected contacts or every contact from one Freshsales marketing list to a different destination list.

Remove Marketing List Contacts

Remove selected contacts or every contact from one Freshsales marketing list.

Restore CPQ Document

Restore one soft-deleted Freshsales CPQ document.

Restore CPQ Product

Restore one soft-deleted Freshsales CPQ product.

Search Contacts by Exact Filters

Find exact-match Freshsales contacts with explicit field/operator/value rules.

Search Records

Fuzzy-search Freshsales users, standard CRM records, and custom-module records in one bounded request.

Start Bulk Contact Upsert

Start an asynchronous upsert of up to 100 Freshsales contacts.

Start Bulk Deal Upsert

Start an asynchronous upsert of up to 100 deals.

Start Bulk Sales Account Upsert

Start an asynchronous upsert of up to 100 sales accounts.

Update Appointment

Update selected fields or attendees on an existing Freshsales appointment and return the updated appointment and related records.

Update Contact

Update selected fields on an existing Freshsales contact and return the updated contact.

Update Contact Team Memberships

Add, update, or remove Freshsales contact-team memberships using explicit contact, user, and designation IDs.

Update CPQ Document

Update document fields or replace its complete product list through the one official PUT contract.

Update Custom Module

Update selected display, icon, navigation, or description settings on an existing Freshsales custom-module definition.

Update Custom Module Record

Update selected fields on one record in a named Freshsales custom module and return the updated record.

Update Deal

Update a Freshsales deal, its contact associations, or replace all deal products.

Update Deal Team Memberships

Add, update, or remove team memberships for one Freshsales deal.

Update Marketing List

Rename an existing Freshsales marketing list.

Update Note

Replace the text and target association of an existing Freshsales note.

Update CPQ Product

Update product fields or add, overwrite, and delete product prices through the one official PUT contract.

Update Sales Account

Update standard or tenant-defined fields on a Freshsales sales account.

Update Sales Account Team Memberships

Add, update, or remove team memberships for one Freshsales sales account.

Update Sales Activity

Update selected fields on one existing Freshsales sales activity.

Update or Mark Task Done

Update a Freshsales task through the single documented PUT path; set status=1 to mark it completed or status=0 to reopen it.

Upload and Attach Document

Upload a required file as multipart/form-data and attach it to one explicit Freshsales CRM record.

Upsert Contact

Create or update one Freshsales contact matched by a unique identifier and return the resulting contact.

Upsert Deal

Create or update a deal by one unique standard or tenant-defined field.

Upsert Sales Account

Create or update a sales account by one unique standard or tenant-defined field.

SETUP GUIDE

Connect Freshsales MCP Tool with your Agent

1

Install Composio

typescript
npm install @composio/core ai @ai-sdk/mcp @ai-sdk/openai
Install the Composio SDK and your agent framework
2

Create a session with MCP enabled

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

const composio = new Composio();
const { mcp } = await composio.create("your-user-id", {
  toolkits: ["freshsales"],
  mcp: true,
});
Create a session scoped to Freshsales and read its MCP URL and headers
3

Connect your agent to the MCP server

typescript
import { createMCPClient } from "@ai-sdk/mcp";
import { openai } from "@ai-sdk/openai";
import { generateText, stepCountIs } from "ai";

const client = await createMCPClient({
  transport: { type: "http", url: mcp.url, headers: mcp.headers },
});

const { text } = await generateText({
  model: openai("gpt-5.6-sol"),
  tools: await client.tools(),
  prompt: "Create a new contact in Freshsales for Priya Shah at priya.shah@example.com.",
  stopWhen: stepCountIs(10),
});

console.log(text);
await client.close();
Pass the session's MCP URL and headers to your agent and run a Freshsales request
SETUP GUIDE

Connect Freshsales API Tool with your Agent

1

Install Composio

typescript
npm install @composio/core @composio/openai openai
Install the Composio SDK, the OpenAI provider, and the OpenAI SDK
2

Create a Composio session

typescript
import OpenAI from "openai";
import { Composio } from "@composio/core";
import { OpenAIResponsesProvider } from "@composio/openai";

const composio = new Composio({ provider: new OpenAIResponsesProvider() });
const client = new OpenAI();

const session = await composio.create("your-user-id", { toolkits: ["freshsales"] });
const tools = await session.tools();
Initialize Composio with the OpenAI Responses provider and create a session scoped to Freshsales
3

Run Freshsales tools with your agent

typescript
let response = await client.responses.create({
  model: "gpt-5.6-sol",
  tools,
  input: [{ role: "user", content: "Create a new contact in Freshsales for Priya Shah at priya.shah@example.com." }],
});

while (response.output.some((o) => o.type === "function_call")) {
  const outputs = await composio.provider.handleToolCalls(session, response.output);
  response = await client.responses.create({
    model: "gpt-5.6-sol",
    tools,
    previous_response_id: response.id,
    input: outputs,
  });
}

console.log(response.output_text);
Send a request, execute the Freshsales tool calls through the session, and print the final answer

Why Use Composio?

AI Native Freshsales Integration

  • Supports both Freshsales MCP and direct API based integrations
  • Structured, LLM-friendly schemas for reliable tool execution
  • Rich coverage for reading, writing, and querying your Freshsales data

Managed Auth

  • Built-in OAuth handling with automatic token refresh and rotation
  • Central place to manage, scope, and revoke Freshsales access
  • Per user and per environment credentials instead of hard-coded keys

Agent Optimized Design

  • Tools are tuned using real error and success rates to improve reliability over time
  • Comprehensive execution logs so you always know what ran, when, and on whose behalf

Enterprise Grade Security

  • Fine-grained RBAC so you control which agents and users can access Freshsales
  • Scoped, least privilege access to Freshsales resources
  • Full audit trail of agent actions to support review and compliance

Rolling this out across your team?

Give your team centralized access control across every framework with Composio’s MCP Gateway.

EXPLORE MCP GATEWAY
FAQ

Frequently asked questions

Freshsales requires connections to go through your own OAuth app. You register it once with Freshsales, add its client ID and secret in the Composio dashboard, and from then on everyone connects by signing in to Freshsales as usual. Composio handles the rest of the flow and the token refresh.

Yes! Composio's Tool Router enables agents to use multiple toolkits. Learn more.

Yes. Composio is SOC 2 Type II compliant and is built to keep your Freshsales connection and credentials secure. OAuth tokens and API keys are encrypted, and sensitive customer data is protected at rest and in transit.

Composio also undergoes independent security testing and continuously monitors its systems for security threats. You can review the latest reports and policies in the Composio Trust Center.

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

When you connect a Freshsales account through Composio, every action runs under that account, so anything the agent creates, sends, or changes shows up in Freshsales as done by you. Keep an approval step in your prompt for actions with side effects, such as sending or deleting, and have the agent draft first.

Exactly the ones Freshsales lists on its consent screen when you connect. Review that screen before approving. If you connect a work account, your Freshsales administrator may need to approve the app first, and you can revoke the access inside Freshsales whenever you want.

Yes. Composio supports multiple connected accounts for the same app, and that works in Claude, ChatGPT, or any other assistant you connect through Composio. Give each Freshsales connection a name such as work or personal, and the assistant uses the one you mention in the request. Each account keeps its own credentials and nothing is merged.

Composio refreshes Freshsales tokens automatically, so day to day you do nothing. If you revoke access inside Freshsales, or Freshsales invalidates the session, the connection shows as expired in Composio and the agent stops acting on that account until you reconnect it, which is a single sign-in.

Composio's free Hobby plan includes 100,000 tool calls per month with no credit card, which covers most personal Freshsales use. Paid plans add higher limits and team features. Your Freshsales plan and its API limits still apply as usual.

Built-in connectors usually give one AI access to a limited set of apps. Many people use Composio because it lets their AI connect to more apps than it normally supports, or connect to multiple accounts for the same app (e.g. connect Claude to multiple Freshsales accounts).

With Composio, you connect Freshsales once and then use it across different AI assistants without setting it up separately in each one. Connect your apps to Composio once, then connect Composio to whichever AI you use, whether that's Claude, ChatGPT, Hermes, or your own custom assistant.

Start with Freshsales.It takes 30 seconds.

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

Start building