Freshsales MCP server for Claude, ChatGPT, Claude Code and Cursor
Access and manage core CRM data, including Contacts, Accounts, Deals, Tasks, Appointments, and CPQ records in Freshsales.
Examples of what your AI apps can do in Freshsales. You'll see the exact list of tools after you connect it.
create_contact
ToolCreate a Freshsales contact identified by email addresses, mobile number, Twitter username, or external ID and return its ID and contact fields. Tenant contact-field settings can impose additional requirements; inspect List Contact Fields first.
update_contact
ToolUpdate selected fields on an existing Freshsales contact and return the updated contact.
bulk_assign_contact_owner
ToolReplace the owner of up to 100 Freshsales contacts using explicit contact and owner IDs. Freshsales is known to return a false-success 200 for this endpoint, so this action reads every contact after the write and fails unless every owner_id matches.
clone_contact
ToolCreate a new Freshsales contact by cloning an existing contact and applying field overrides.
forget_contact
ToolPermanently and irreversibly erase one Freshsales contact and associated data. This is not ordinary deletion, cannot be undone by this toolkit, and requires confirm_permanent_erasure=true.
create_deal
ToolCreate a Freshsales deal associated with exactly one existing or new sales account.
update_deal
ToolUpdate a Freshsales deal, its contact associations, or replace all deal products. Supplying an empty products list removes every line item.
clone_deal
ToolClone a Freshsales deal, optionally overriding fields on the new deal.
forget_deal
ToolIRREVERSIBLE: permanently erase one Freshsales deal and associated data. This cannot be restored and requires confirm_permanent_erasure=true.
restore_product
ToolRestore one soft-deleted Freshsales CPQ product. Requires Freshsales CPQ to be licensed and enabled for the connected account. Product create, get, update, delete, and restore paths support OAuth. Official contract: https://developer.freshsales.io/api/#products
create_appointment
ToolCreate a Freshsales appointment, optionally linked to a CRM record or attendees, and return its ID and related records.
update_appointment
ToolUpdate selected fields or attendees on an existing Freshsales appointment and return the updated appointment and related records.
delete_appointment
ToolDelete one Freshsales appointment by ID.
create_task
ToolCreate a Freshsales task with every provider-mandatory assignment, due-date, and CRM-target field.
update_task
ToolUpdate a Freshsales task through the single documented PUT path; set status=1 to mark it completed or status=0 to reopen it.
delete_task
ToolDelete one Freshsales task and return provider-confirmed deletion fields.
create_note
ToolCreate a Freshsales note on one lead, contact, sales account, or deal.
update_note
ToolReplace the text and target association of an existing Freshsales note.
delete_note
ToolPermanently delete one Freshsales note. Freshsales documents no restore operation; the response contains provider-confirmed deletion fields.
create_sales_activity
ToolCreate a Freshsales sales activity with all provider-mandatory time, owner, type, and CRM-target fields.
update_sales_activity
ToolUpdate selected fields on one existing Freshsales sales activity.
delete_sales_activity
ToolDelete one Freshsales sales activity after confirming the provider success code.
create_product
ToolCreate a Freshsales CPQ product and return the provider-confirmed product ID. Requires Freshsales CPQ to be licensed and enabled for the connected account. Product create, get, update, delete, and restore paths support OAuth. Official contract: https://developer.freshsales.io/api/#products
update_product
ToolUpdate product fields or add, overwrite, and delete product prices through the one official PUT contract. Requires Freshsales CPQ to be licensed and enabled for the connected account. Product create, get, update, delete, and restore paths support OAuth. Official contract: https://developer.freshsales.io/api/#products
delete_product
ToolSoft-delete one Freshsales CPQ product so it can be restored. Requires Freshsales CPQ to be licensed and enabled for the connected account. Product create, get, update, delete, and restore paths support OAuth. Official contract: https://developer.freshsales.io/api/#products
add_marketing_list_contacts
ToolAdd contacts to a Freshsales marketing list. The same official operation also copies contacts that already belong to another list.
bulk_assign_cpq_records
ToolQueue one owner assignment for selected CPQ products or documents; acknowledgment does not prove completion. Requires Freshsales CPQ to be licensed and enabled. Observed product bulk paths support OAuth; OAuth behavior for document and template paths remains unverified. https://developer.freshsales.io/api/#products
bulk_delete_cpq_records
ToolQueue soft deletion of selected CPQ products or documents so they remain restorable; acknowledgment does not prove completion. Requires Freshsales CPQ to be licensed and enabled. Observed product bulk paths support OAuth; OAuth behavior for document and template paths remains unverified. https://developer.freshsales.io/api/#products
bulk_restore_cpq_records
ToolQueue restoration of selected soft-deleted CPQ products or documents using the PUT methods in Freshsales' official cURL examples; acknowledgment does not prove completion. Requires Freshsales CPQ to be licensed and enabled. Observed product bulk paths support OAuth; OAuth behavior for document and template paths remains unverified. https://developer.freshsales.io/api/#products
bulk_update_cpq_records
ToolQueue one shared-field update for selected CPQ products or documents. Product pricing and document product-line mutations are not supported by these bulk endpoints; acknowledgment does not prove completion. Requires Freshsales CPQ to be licensed and enabled. Observed product bulk paths support OAuth; OAuth behavior for document and template paths remains unverified. https://developer.freshsales.io/api/#products
clone_custom_module_record
ToolCreate a new Freshsales custom-module record by cloning an existing record and applying field overrides.
clone_sales_account
ToolClone a Freshsales sales account, optionally overriding fields on the new account.
create_cpq_document
ToolCreate a Freshsales quote or other CPQ document and return its confirmed ID. Requires Freshsales CPQ to be licensed and enabled for the connected account. OAuth behavior for CPQ document and template paths remains unverified. Official contract: https://developer.freshsales.io/api/#documents
create_custom_field
ToolCreate a persistent custom field on one explicit Freshsales entity form. This mutates tenant schema, may make future record writes require the field, and cannot be undone through any documented custom-field delete endpoint. Requires confirm_irreversible_schema_change=true.
create_custom_module
ToolCreate a tenant-wide Freshsales custom-module definition and return its ID and internal entity name. This changes the tenant's CRM schema, immediately creates five saved filters, and consumes one of the documented maximum of 10 custom modules per account.
create_custom_module_record
ToolCreate one record in a named Freshsales custom module and return its record ID and fields.
create_document_link
ToolAttach a web document URL to one explicit Freshsales CRM record.
create_marketing_list
ToolCreate an empty Freshsales marketing list.
create_sales_account
ToolCreate a Freshsales sales account with standard, parent-account, or tenant-defined fields.
delete_contacts
ToolDelete one or more Freshsales contacts through ordinary deletion rather than permanent forget. Provide contact_id for one contact or contact_ids for a bulk request. This toolkit does not expose a restore operation.
delete_cpq_document
ToolSoft-delete one Freshsales CPQ document so it can be restored. Requires Freshsales CPQ to be licensed and enabled for the connected account. OAuth behavior for CPQ document and template paths remains unverified. Official contract: https://developer.freshsales.io/api/#documents
delete_custom_module
ToolDelete a Freshsales custom-module definition and change the tenant's CRM schema. Remove all records from the custom module before calling this action.
delete_custom_module_records
ToolDelete one or more records from a named Freshsales custom module through ordinary deletion. Provide record_id for one record or record_ids for a bulk request. This action never permanently forgets records or their data.
delete_deals
ToolOrdinarily delete one deal or bulk-delete multiple deals. This operation is separate from permanent forget.
delete_sales_accounts
ToolOrdinarily delete one account or bulk-delete multiple accounts. This is not permanent forget; associated contacts and deals are deleted only when explicitly requested.
forget_cpq_document
ToolPermanently and irreversibly delete one CPQ document and all associated data. This cannot be restored and requires confirm_permanent_erasure=true. Requires Freshsales CPQ to be licensed and enabled for the connected account. OAuth behavior for CPQ document and template paths remains unverified. Official contract: https://developer.freshsales.io/api/#documents
forget_custom_module_record
ToolPermanently and irreversibly erase one Freshsales custom-module record and associated data. This is not ordinary deletion, cannot be undone by this toolkit, and requires confirm_permanent_erasure=true.
forget_sales_account
ToolIRREVERSIBLE: permanently erase one Freshsales sales account and associated data. This cannot be restored and requires confirm_permanent_erasure=true.
get_appointment
ToolReturn one Freshsales appointment and its related attendees, users, conferences, and notes.
get_contact
ToolReturn one Freshsales contact by ID, optionally including related resources.
get_cpq_document
ToolGet one Freshsales CPQ document, optionally including product line items. Requires Freshsales CPQ to be licensed and enabled for the connected account. OAuth behavior for CPQ document and template paths remains unverified. Official contract: https://developer.freshsales.io/api/#documents
get_custom_module
ToolReturn one Freshsales custom-module definition by ID, including the entity name required by custom-module record tools.
get_custom_module_record
ToolReturn one record by ID from a named Freshsales custom module.
get_deal
ToolGet one Freshsales deal by ID, optionally with related resources.
get_job_status
ToolGet bounded, single-request progress and failure details for one Freshsales bulk-upsert job; this does not poll.
get_product
ToolGet one Freshsales CPQ product, optionally including pricing. Requires Freshsales CPQ to be licensed and enabled for the connected account. Product create, get, update, delete, and restore paths support OAuth. Official contract: https://developer.freshsales.io/api/#products
get_sales_account
ToolGet one Freshsales sales account by ID, optionally with related resources.
get_sales_activity
ToolGet one Freshsales sales activity by ID.
get_task
ToolGet one Freshsales task by ID, optionally with collaborators and its CRM target.
list_appointments
ToolReturn one page selected by Freshsales's required appointment filter. Open is documented for upcoming appointments; complete is a separate provider-named filter whose semantics are not further defined. Return the next page number only when Freshsales meta.total proves another page exists. Pages default to 25 appointments (maximum 100); larger pages increase response size and token cost.
list_configuration_options
ToolList one Freshsales configuration option family for IDs needed by CRM operations. Covers all 21 official selectors without exposing arbitrary paths; each selector returns its complete provider-bounded option set and does not expose pagination.
list_contact_activities
ToolReturn activity history for one Freshsales contact. The limit input is a provider result-size hint, not a guaranteed maximum. Inspect meta.has_next and meta.has_previous to determine whether the response is incomplete; this action does not expose an unproven continuation input.
list_contact_document_associations
ToolList the file and web-link associations attached to one Freshsales contact, including referenced links, users, and provider totals. This returns metadata only, not file bytes, and exposes no continuation because Freshsales documents none for this endpoint.
list_contact_fields
ToolList Freshsales contact field definitions, internal names, types, choices, and tenant form metadata for use in contact create and update calls. Freshsales documents no pagination or continuation parameter for this endpoint.
list_contacts_by_view
ToolReturn one explicitly numbered page from a saved Freshsales contact view, including shaped page totals and the next page number when available.
list_contact_views
ToolList saved Freshsales contact views and their IDs for use with contact listing tools. Freshsales documents no pagination or continuation parameter for this endpoint.
list_cpq_document_related_products
ToolList the typed product records associated with one Freshsales CPQ document. Freshsales documents no pagination or continuation parameter for this endpoint. Requires Freshsales CPQ to be licensed and enabled for the connected account. OAuth behavior for CPQ document and template paths remains unverified. Official contract: https://developer.freshsales.io/api/#documents
list_custom_module_records
ToolReturn 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
ToolList saved views for a Freshsales custom module and return the view IDs needed to list its records. Freshsales documents no pagination or continuation parameter for this endpoint.
list_deal_fields
ToolList standard and tenant-defined Freshsales deal field definitions. Freshsales documents no pagination or continuation parameter for this endpoint.
list_deals_by_view
ToolReturn one numbered page from a saved Freshsales deal view.
list_deal_views
ToolList saved Freshsales deal views and their IDs. Freshsales documents no pagination or continuation parameter for this endpoint.
list_entity_forms
ToolList Freshsales forms for a standard or custom entity so callers can obtain an explicit form ID before creating a custom field. Freshsales documents no pagination or continuation parameter for this endpoint.
list_marketing_list_contacts
ToolReturn one documented page of contacts in a Freshsales marketing list. Freshsales can reject this endpoint when the account plan lacks the feature.
list_marketing_lists
ToolReturn one documented page of Freshsales marketing lists.
list_sales_account_fields
ToolList standard and tenant-defined Freshsales sales-account field definitions. Freshsales documents no pagination or continuation parameter for this endpoint.
list_sales_accounts_by_view
ToolReturn one numbered page from a saved Freshsales sales-account view.
list_sales_account_views
ToolList saved Freshsales sales-account views and their IDs. Freshsales documents no pagination or continuation parameter for this endpoint.
list_sales_activities
ToolReturn one bounded Freshsales sales-activity page (25 records by default, 100 maximum) and an explicit next page number.
list_sales_activity_fields
ToolList standard and tenant-defined Freshsales sales-activity field definitions. Freshsales documents no pagination or continuation parameter for this endpoint.
list_tasks
ToolReturn one Freshsales task page for exactly one documented status/due-date filter. Freshsales uses a fixed 25-record page size; pass next_page back as page to continue.
log_phone_call_for_existing_record
ToolCreate an irreversible manual call log for one existing Freshsales lead, contact, or sales account and optionally create a note. Freshsales documents no call-log delete operation; explicit confirmation is required.
log_phone_call_for_new_record
ToolCreate a new Freshsales contact and an irreversible manual call log associated with it, optionally with a note. Contact-field requirements vary by tenant; provide emails when the tenant requires them, but email is not universally required. Neither effect has a documented call-log rollback; explicit confirmation is required.
lookup_records
ToolLook up exact matches across one or more Freshsales lead, contact, sales-account, or deal types using one compatible standard or custom field. Freshsales returns a provider-bounded result set and exposes no pagination parameters.
move_marketing_list_contacts
ToolMove selected contacts or every contact from one Freshsales marketing list to a different destination list.
remove_marketing_list_contacts
ToolRemove selected contacts or every contact from one Freshsales marketing list. This changes list membership, not the contact records.
restore_cpq_document
ToolRestore one soft-deleted Freshsales CPQ document. Requires Freshsales CPQ to be licensed and enabled for the connected account. OAuth behavior for CPQ document and template paths remains unverified. Official contract: https://developer.freshsales.io/api/#documents
search_contacts_filtered
ToolFind exact-match Freshsales contacts with explicit field/operator/value rules.
search_records
ToolFuzzy-search Freshsales users, standard CRM records, and custom-module records in one bounded request.
start_bulk_contact_upsert
ToolStart an asynchronous upsert of up to 100 Freshsales contacts. Returns only the provider's job acknowledgment and status URL; this tool does not wait for or verify completion.
start_bulk_deal_upsert
ToolStart an asynchronous upsert of up to 100 deals. Returns acceptance and a status URL but does not verify completion.
start_bulk_sales_account_upsert
ToolStart an asynchronous upsert of up to 100 sales accounts. Returns acceptance and a status URL but does not verify completion.
update_contact_team_memberships
ToolAdd, update, or remove Freshsales contact-team memberships using explicit contact, user, and designation IDs. Removing a membership changes that user's access to the contact; verify all tenant IDs before calling.
update_cpq_document
ToolUpdate document fields or replace its complete product list through the one official PUT contract. Freshworks documents quantity as optional, though some tenants require a positive quantity for every supplied line; products=[] removes all lines. Requires Freshsales CPQ to be licensed and enabled for the connected account. OAuth behavior for CPQ document and template paths remains unverified. Official contract: https://developer.freshsales.io/api/#documents
update_custom_module
ToolUpdate selected display, icon, navigation, or description settings on an existing Freshsales custom-module definition. The internal entity name remains stable when display names change.
update_custom_module_record
ToolUpdate selected fields on one record in a named Freshsales custom module and return the updated record.
update_deal_team_memberships
ToolAdd, update, or remove team memberships for one Freshsales deal.
update_marketing_list
ToolRename an existing Freshsales marketing list.
update_sales_account
ToolUpdate standard or tenant-defined fields on a Freshsales sales account.
update_sales_account_team_memberships
ToolAdd, update, or remove team memberships for one Freshsales sales account. Requires an API-key connection; Freshworks does not authorize this operation through its available OAuth scopes.
Free. No card needed.
How to connect Freshsales
- 1Create your free ContextGate account.
- 2Freshsales isn't in ContextGate's app list yet. If you have an MCP server for Freshsales, add it under Connections → Add Connection → Custom MCP.
- 3Add ContextGate to Claude, Cursor or ChatGPT (the Setup page shows you how), then ask it to use Freshsales.
What you get with Freshsales and ContextGate
- Your AI apps can use Freshsales Claude, Cursor, ChatGPT and other AI apps reach Freshsales through the one ContextGate connection you add to them.
- You choose which tools they can use Switch off any Freshsales tool you don't want used. It's hidden from your AI apps and refused if called.
- Every call is checked and recorded Your policies check each call (for example, personal data is hidden and secrets are blocked), and Activity keeps a record of it.
ContextGate sees only the tool calls that go through it, not your AI app's built-in tools or your chats.
Select a tool on the left to see its parameters
What you get with Freshsales and ContextGate
- Your AI apps can use Freshsales: Claude, Cursor, ChatGPT and other AI apps reach Freshsales through the one ContextGate connection you add to them.
- You choose which tools they can use: Switch off any Freshsales tool you don't want used. It's hidden from your AI apps and refused if called.
- Every call is checked and recorded: Your policies check each call (for example, personal data is hidden and secrets are blocked), and Activity keeps a record of it.
ContextGate sees only the tool calls that go through it, not your AI app's built-in tools or your chats.
Free. No card needed.
How to connect Freshsales
- Create your free ContextGate account.
- Freshsales isn't in ContextGate's app list yet. If you have an MCP server for Freshsales, add it under Connections → Add Connection → Custom MCP.
- Add ContextGate to Claude, Cursor or ChatGPT (the Setup page shows you how), then ask it to use Freshsales.