How to integrate Freshsales MCP with Hermes

Connect Hermes to Freshsales MCP. List open freshsales deals closing this month, create contacts from this sales prospect list, and more using natural language, with authentication handled for you.

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

Introduction

Hermes is a 24/7 autonomous agent that lives on your computer or server — it remembers what it learns and evolves as your usage grows.

This guide explains the easiest and most robust way to connect your Freshsales account to Hermes. You can do this through either Composio Connect CLI or Composio Connect MCP. For personal use we recommend the CLI, but you won't go wrong with MCP either.

Also integrate Freshsales with

What is Composio Connect?

Composio Connect is a consumer offering that lets anyone plug 1,500+ applications directly into their agent harness — including Hermes. It can:

  • Search and load tools from relevant toolkits on-demand, reducing context usage.
  • Chain multiple tools to accomplish complex workflows via a remote workbench, without excessive back-and-forth with the LLM.
  • Manage app authentication end-to-end with zero manual overhead.

Integrating Freshsales with Hermes

Using Composio Connect CLI

1. Install the Composio CLI

Run the install script directly, or paste https://composio.dev/hermes into your Hermes chat box to have it installed for you.

bash
curl -fsSL https://composio.dev/install | bash
Hermes authenticating with Composio

2. Authenticate

Once the CLI is installed, ask Hermes to authenticate with Composio.

3. Connect to Freshsales

Ask your agent to connect to Freshsales, or simply request any Freshsales-related task. Hermes will prompt you to authenticate and authorize access.

4. Done. You're all set with a new Freshsales connection.


Using Composio Connect MCP

1. Get your MCP URL and API Key

Go to dashboard.composio.dev and copy your Connect MCP URL and API key.

Copy MCP URL and API key from Composio dashboard

2. Open the Hermes config file

bash
nano ~/.hermes/config.yaml

3. Add the Composio Connect MCP server

bash
mcp_servers:
  composio:
    url: "https://connect.composio.dev/mcp"
    headers:
      x-consumer-api-key: "YOUR_COMPOSIO_API_KEY"
    connect_timeout: 60
    timeout: 180

Save with Ctrl + O, Enter, then exit with Ctrl + X.

4. Restart your Hermes agent

Once restarted, ask your agent to connect to Freshsales or request any Freshsales-related task. It will prompt you to authenticate and authorize access.

5. Done!

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

The Freshsales MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Freshsales account. It provides structured and secure access to your CRM records, sales activities, marketing lists, and CPQ data, so your agent can create and organize customer records, manage deals and sales tasks, schedule appointments, and handle products and documents on your behalf.

  • Contact and account management: Have your agent create, clone, assign owners to, and delete Freshsales contacts and sales accounts.
  • Deal and sales workflow support: Let the agent create, clone, and delete deals, add notes, create sales activities, and assign follow-up tasks.
  • Appointments and marketing lists: Direct your agent to create or delete appointments, create marketing lists, and add contacts to those lists.
  • Products and sales documents: Instruct your agent to create, update, clone, assign, restore, or delete Freshsales CPQ products and documents.
  • Custom CRM data: Have your agent create custom modules and fields, add or clone records, attach document links, and remove custom records when needed.

Way Forward

With Freshsales connected, Hermes can now act on your behalf whenever it detects a relevant task or you ask it to.

From here, you can extend Hermes further:

  • Connect more apps: Calendar, Slack, Notion, Linear, and hundreds of others are available through the same Composio Connect setup. Each new integration compounds what Hermes can do for you.
  • Build workflows across tools: Once multiple apps are connected, Hermes can chain actions together — turn an email into a calendar invite, a Slack message into a Linear ticket, or a meeting note into a follow-up draft.
  • Let it learn your patterns: The more you use Hermes, the better it gets at anticipating how you'd handle recurring tasks. Give it feedback on drafts and decisions, and it will adapt.

If you run into trouble or want to share what you've built, join the community or check out the Docs for deeper configuration options.

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.

FAQ

Frequently asked questions

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

Yes, you can. Hermes 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 Freshsales tools.

Yes, absolutely. You can configure which Freshsales 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 Freshsales data and credentials are handled as safely as possible.

Start with Freshsales.It takes 30 seconds.

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

Start building