> ## Documentation Index
> Fetch the complete documentation index at: https://docs.atako.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Freshsales

> Connect Freshsales to your Atako agents — 13 read and 7 write actions.

Let your agents manage contacts, accounts, deals, notes and tasks in Freshsales (Freshworks CRM) — search, look up, and keep your pipeline accurate.

## Connection

* **Authentication**: API key.
* **Required settings**:
  * **Subdomain** — The subdomain of https\://\<domain>.myfreshworks.com — e.g. yourcompany for yourcompany.myfreshworks.com

<Note>
  Log in to your Freshsales account → click your profile picture (top right) → Profile Settings → API Settings tab → copy the value in "Your API key". You also need your Bundle alias (shown below the API key) — it is the subdomain in https\://\<domain>.myfreshworks.com.

  See [Freshsales's documentation](https://developers.freshworks.com/crm/api/#authentication).
</Note>

## Read actions (13)

| Action | Description |
| - | - |
| `get_account` | Fetch an account (sales account) by id. |
| `get_contact` | Fetch a contact by id. Optionally embed related data via include: owner, tasks, notes, deals, sales\_accounts, etc. |
| `get_deal` | Fetch a deal by id. |
| `list_account_views` | List available account views (filters) with their id and name. Pass a view id to list\_accounts to fetch accounts from that view. |
| `list_accounts` | List accounts from a specific view. The view\_id comes from list\_account\_views. Supports pagination and sorting. |
| `list_contact_views` | List available contact views (filters) with their id and name. Pass a view id to list\_contacts to fetch contacts from that view. |
| `list_contacts` | List contacts from a specific view. The view\_id comes from list\_contact\_views. Supports pagination (page, per\_page up to 100) and sorting (sort: lead\_score\|created\_at\|updated\_at\|open\_deals\_amount\|last\_contacted, sort\_type: asc\|desc). |
| `list_deal_stages` | List all deal stages with their id, name and deal\_pipeline\_id. Use to pick valid deal\_stage\_id values when creating or updating a deal. |
| `list_deal_views` | List available deal views (filters) with their id and name. Pass a view id to list\_deals to fetch deals from that view. |
| `list_deals` | List deals from a specific view. The view\_id comes from list\_deal\_views. Supports pagination and sorting. |
| `list_owners` | List all users (owners) in the Freshsales account — returns id and name for each. Use to resolve owner\_id values for contacts, deals and tasks. |
| `lookup_by_email` | Look up a contact, account or deal by email address. Set f=email and provide the email in q. Use entities to restrict the search (e.g. entities=contact). |
| `search` | Search across contacts, accounts and deals by keyword. Use the include param to narrow results to specific entity types (e.g. include=contact,sales\_account,deal). |

## Write actions (7)

| Action | Description |
| - | - |
| `add_note` | Add a note to a contact, account or deal. Body: \{ "note": \{ "description": string (XHTML body), "targetable\_type": "Contact"\|"SalesAccount"\|"Deal", "targetable\_id": integer } }. targetable\_id is the id of the contact, account or deal. |
| `create_account` | Create an account. Body: \{ "sales\_account": \{ "name": string, "website": string, "phone": string, "industry\_type\_id": integer } }. |
| `create_contact` | Create a contact. Body: \{ "contact": \{ "first\_name": string, "last\_name": string, "email": string (deprecated, use "emails"), "mobile\_number": string, "job\_title": string, "owner\_id": integer, "sales\_accounts": \[\{ "id": integer, "is\_primary": boolean }] } }. At least email or mobile\_number is required. |
| `create_deal` | Create a deal. Body: \{ "deal": \{ "name": string, "amount": number, "sales\_account\_id": integer, "deal\_stage\_id": integer, "expected\_close": string (YYYY-MM-DD), "owner\_id": integer } }. deal\_stage\_id comes from list\_deal\_stages. |
| `create_task` | Create a task. Body: \{ "task": \{ "title": string, "description": string, "due\_date": string (YYYY-MM-DDTHH:MM:SSZ), "owner\_id": integer, "targetable\_type": "Contact"\|"SalesAccount"\|"Deal", "targetable\_id": integer } }. owner\_id comes from list\_owners. |
| `update_contact` | Update a contact by id. Body: \{ "contact": \{ ...fields to update } }. Same fields as create\_contact. |
| `update_deal` | Update a deal by id. Body: \{ "deal": \{ ...fields to update } }. Same fields as create\_deal. |

## Permissions

Every action above must be explicitly granted to an agent before it can be used. See [Permissions](/integrations/permissions) for the grant model and [Security](/integrations/security) for how credentials are protected.

***

*Last reviewed against the provider API: September 2026.*


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.