# Freshdesk

> Freshdesk through One

- Skill: `withoneai/freshdesk` (Agent Skill)
- Install (CLI): `npx skillmds@latest add withoneai/freshdesk`
- Raw SKILL.md: https://api.skillmd.com/api/skills/withoneai/freshdesk/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: withoneai (https://skillmd.com/u/withoneai)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/withoneai/freshdesk

---


# Freshdesk through One

Freshdesk is a cloud-based customer support platform that offers ticketing, automation, self-service, and multichannel support to help businesses deliver excellent customer service.

One exposes Freshdesk through four MCP tools. The table below carries real action ids from One's knowledge base, so for a common operation you can skip search and go straight to reading the action's parameters.

## How to run an action

1. Find the action in the table below, or call `search_one_platform_actions` with platform `freshdesk` if it is not listed.
2. Call `get_one_action_knowledge` with the action id. Do this every time, including for actions in this table. The table gives you the id, not the parameters.
3. Call `execute_one_action` with parameters copied from that knowledge.

Never guess a parameter name, a body field, or an enum value. The knowledge has the real schema, and a guessed field is either a 400 or a silent write of the wrong thing.

## Before you start

Call `list_one_integrations` once and confirm Freshdesk is connected. If it is missing, the user has not connected it: say so and point them at https://app.withone.ai rather than reaching for raw HTTP.

Each connection carries an `access` field. If it reports `{"policy": "methods", "methods": ["GET"]}` the agent is read-only here, so plan a read-only answer instead of attempting a write that will be refused.

## Before a write

Creates, updates, deletes and sends land on a real Freshdesk account and cannot be recalled. State the action and the specific target in one line before the first write in a task, and let the user stop you. Reads need no confirmation.

## Actions

### Tickets

| Action | Method | Path | Action id |
|---|---|---|---|
| Filter Tickets (Search Tickets) | GET | `/api/v2/search/tickets` | `conn_mod_def::GJ2hz-ZMj9Y::zVFxct_QT-yHkFqxkXA9xA` |
| Get a Ticket’s Associated Tickets | GET | `/api/v2/tickets/{{id}}/associated_tickets` | `conn_mod_def::GJ2h0OVc-V0::vojywfFFSICAvpdlJySJ-Q` |
| Get a Ticket’s Prime Association | GET | `/api/v2/tickets/{{id}}/prime_association` | `conn_mod_def::GJ2h0VrqyxQ::sFWbZah9SXa4V6Vej5Xaog` |
| List All Tickets | GET | `/api/v2/tickets` | `conn_mod_def::GJ2h1djXT5s::eiaDKEIhR_yr2HL7E6cGaw` |
| View a Service Task (Ticket) | GET | `/api/v2/tickets/{{id}}` | `conn_mod_def::GJ2hobms9K4::erISV252Rf6yvHStHG1aKA` |
| View a Ticket | GET | `/api/v2/tickets/{{id}}` | `conn_mod_def::GJ2h3M2ba5s::af1T8DGzSiWairaIY9ZKDA` |
| View an Archived Ticket | GET | `/api/v2/tickets/archived/{{id}}` | `conn_mod_def::GJ2h3VGjzzg::IvUMUwwoR66NYHHpL2Sg6g` |
| Add a Watcher to a Ticket | POST | `/api/v2/tickets/{{id}}/watch` | `conn_mod_def::GJ2hyxSQzsI::6DMNI0WiR7iw7Kde8iYfOA` |
| Add a Watcher to Multiple Tickets | PUT | `/api/v2/tickets/bulk_watch` | `conn_mod_def::GJ2hy55cIic::isgl9ZM9T6epBCjB2r-TCg` |
| Create a Service Task (Ticket) | POST | `/api/v2/tickets` | `conn_mod_def::GJ2hnii5D7g::c4OBiMsjR3SZ9WFJi6SyeA` |
| Create a Ticket | POST | `/api/v2/tickets` | `conn_mod_def::GJ2hzCsTthU::HYqJKYEWQLutBGQxNMQ1BQ` |
| Create an Outbound Email Ticket | POST | `/api/v2/tickets/outbound_email` | `conn_mod_def::GJ2hzLfe_zE::UgHWRreIT9qR-431uKm3TA` |

16 more Tickets actions are available through search.

### Contacts

| Action | Method | Path | Action id |
|---|---|---|---|
| Filter Contacts (Search Contacts) | GET | `/api/v2/search/contacts` | `conn_mod_def::GJ2heb4Tss8::k7gC8CNNSL2BhysPDkuOJA` |
| List All Contacts | GET | `/api/v2/contacts` | `conn_mod_def::GJ2hemNcaGc::wtH2o6H1Q4m8xupVryl91A` |
| Search Contacts (Autocomplete) | GET | `/api/v2/contacts/autocomplete` | `conn_mod_def::GJ2hfPeilvc::tAcl1XdyRg2hZF1CIXrKlA` |
| View a Contact | GET | `/api/v2/contacts/{{id}}` | `conn_mod_def::GJ2hfzWaNXk::Bf8roqaWS86AHLiCCxmXTg` |
| Convert a Contact to an Agent (Make Agent) | PUT | `/api/v2/contacts/{{id}}/make_agent` | `conn_mod_def::GJ2hevNiCdE::TETMyVDVSJa1gatj5B3Nlg` |
| Create a Contact | POST | `/api/v2/contacts` | `conn_mod_def::GJ2heS_xrAQ::xC3Wk2iyQhK-v6zIITCuJg` |
| Export Contacts (Start Export Job) | POST | `/api/v2/contacts/export` | `conn_mod_def::GJ2heBlIroc::ORf0zUBkQoq-MWJh72VtjQ` |
| Make a Contact a Field Technician (Agent) | PUT | `/api/v2/contacts/{{id}}/make_agent` | `conn_mod_def::GJ2hn6yXJSs::aZa3GwDmS1GSLzaB7LOBxw` |
| Merge Contacts | POST | `/api/v2/contacts/merge` | `conn_mod_def::GJ2he2qfLPg::y1LJcRh1TvmsxI_KG-i0wA` |
| Permanently Delete a Contact (Hard Delete) | DELETE | `/api/v2/contacts/{{id}}/hard_delete` | `conn_mod_def::GJ2he_v00g0::YDAeo5UfT2O-M25rs1Rqwg` |
| Restore a Contact | PUT | `/api/v2/contacts/{{id}}/restore` | `conn_mod_def::GJ2hfHQ4sjY::SSE5xzXXTzu0m7geegsN_Q` |
| Send Invite to a Contact | PUT | `/api/v2/contacts/{{id}}/send_invite` | `conn_mod_def::GJ2hfZcVgmg::4l8lBcUQRHOs2LEtnob4PQ` |

2 more Contacts actions are available through search.

### Groups

| Action | Method | Path | Action id |
|---|---|---|---|
| List All Groups | GET | `/api/v2/admin/groups` | `conn_mod_def::GJ2hWvnpl0Q::VDrlY60DSqilBmf-7amaEg` |
| List All Groups | GET | `/api/v2/groups` | `conn_mod_def::GJ2hpOoUiBs::KmnAIOCiRV-yw7A4BO1O2Q` |
| View a Group | GET | `/api/v2/groups/{{id}}` | `conn_mod_def::GJ2hpjfqNeI::KTCk2fU2QUye8qG9AMeIYw` |
| View a Service Group | GET | `/api/v2/groups/{{id}}` | `conn_mod_def::GJ2hoTIFJnA::zuqToQkRSY6fGpzY_gLGyQ` |
| Add or Remove Agents in a Group | PUT | `/api/v2/admin/groups/{{id}}/agents` | `conn_mod_def::GJ2hWNt2S3Y::uKFENdoVQiywjKzmuHmMTw` |
| Create a Group | POST | `/api/v2/groups` | `conn_mod_def::GJ2iHCUpvMI::xO9N6fLLQMmOsSiZhifpsw` |
| Create a Service Group | POST | `/api/v2/groups` | `conn_mod_def::GJ2hnamGREs::YDPX8gIZTFucSqy3jiIFNQ` |
| Delete a Group | DELETE | `/api/v2/groups/{{id}}` | `conn_mod_def::GJ2hpGZkuz8::iTnPACPnQ9W7HxipiFBhSA` |
| Delete a Service Group | DELETE | `/api/v2/groups/{{id}}` | `conn_mod_def::GJ2hnrHDjnQ::FpK_x1uSRhCmER5KpT_Jjg` |
| Update a Group | PUT | `/api/v2/groups/{{id}}` | `conn_mod_def::GJ2hpZSvb6U::td3h9UM-RDWjZpByJw60bQ` |
| Update a Group | PUT | `/api/v2/admin/groups/{{id}}` | `conn_mod_def::GJ2hW3tuW6Q::g09k1o1NRNamo7iYbVMFfA` |
| Update a Service Group | PUT | `/api/v2/groups/{{id}}` | `conn_mod_def::GJ2hoDePrKQ::MfjJVgsASmaK4Jh6K1A7qA` |

### Agents

| Action | Method | Path | Action id |
|---|---|---|---|
| Get the Currently Authenticated Agent | GET | `/api/v2/agents/me` | `conn_mod_def::GJ2hXdzjbfc::62NrwFm-SFOzz8oMQJXsgg` |
| List All Agents | GET | `/api/v2/agents` | `conn_mod_def::GJ2hXt7Suyo::HcQrOeLOTHq9GvJdgXIeKg` |
| List All Agents’ Availability | GET | `/api/v2/agents` | `conn_mod_def::GJ2hY6FmTDs::-39eTI4MS_OmUcXdGqZNZA` |
| Search Agents (Autocomplete) | GET | `/api/v2/agents/autocomplete` | `conn_mod_def::GJ2hX4A2aRc::hvMWDDUhQdKNEUNvnu9a_Q` |
| View an Agent | GET | `/api/v2/agents/{{id}}` | `conn_mod_def::GJ2hYG3-kOE::ulnuWOAURAi_GBXxto4EGA` |
| View an Agent’s Availability | GET | `/api/v2/agents/{{id}}/availability` | `conn_mod_def::GJ2hZJmjVj8::eOFow2jiRUm2fpgThVs83w` |
| Create an Agent | POST | `/api/v2/agents` | `conn_mod_def::GJ2hXJvMoIs::FF7CqhcKTgaHhXi7DlAaww` |
| Create Multiple Agents (Bulk) | POST | `/api/v2/agents/bulk` | `conn_mod_def::GJ2hXRtQNOM::SfcC2qWgSSW8QBnmmjVP6g` |
| Delete an Agent | DELETE | `/api/v2/agents/{{id}}` | `conn_mod_def::GJ2hXlLr01o::o4tC8zAiQfCo8V2z58qQ0Q` |
| Update an Agent | PUT | `/api/v2/agents/{{id}}` | `conn_mod_def::GJ2hX_UMxxg::KQ97hXLhRQa8nMoYEzG6AA` |
| Update an Agent’s Load Settings (Availability) | PATCH | `/api/v2/agents/{{id}}/availability` | `conn_mod_def::GJ2hZCBmxsA::g3sSmLYJSVepH9wA63JM9Q` |

### Companies

| Action | Method | Path | Action id |
|---|---|---|---|
| Filter Companies (Search by Company Fields) | GET | `/api/v2/search/companies` | `conn_mod_def::GJ2hbMpf43w::xL9hOgBsTk-VRMQOXjwtDw` |
| List All Companies | GET | `/api/v2/companies` | `conn_mod_def::GJ2hbUE8ySE::VXdqA_uMSDeJ7AAi2HXctg` |
| Search Companies (Autocomplete) | GET | `/api/v2/companies/autocomplete` | `conn_mod_def::GJ2hbb6aFeM::n1aZtIlUTMuPBJaSt0GY9g` |
| View a Company | GET | `/api/v2/companies/{{id}}` | `conn_mod_def::GJ2hbq35Y5g::JLh0cuHkR-2ESlmpDkjnaQ` |
| Create a Company | POST | `/api/v2/companies` | `conn_mod_def::GJ2ha9IqMvQ::TyUcSDUGToO68C8hO4N5Uw` |
| Delete a Company | DELETE | `/api/v2/companies/{{id}}` | `conn_mod_def::GJ2hbEns_lE::4KuVucjxTsuDhav8UHNj1g` |
| Update a Company | PUT | `/api/v2/companies/{{id}}` | `conn_mod_def::GJ2hbj0lt0I::LahmyF_NQIC7592pg1cuDQ` |

### TicketFields

| Action | Method | Path | Action id |
|---|---|---|---|
| List All Ticket Fields | GET | `/api/v2/admin/ticket_fields` | `conn_mod_def::GJ2hwwdZTsw::Byy-NjZCTH2xASocsHy4Wg` |
| List All Ticket Fields | GET | `/api/v2/ticket_fields` | `conn_mod_def::GJ2h1PgE5Uw::HjE7ehwVQpSS0ZpPF8w-cw` |
| View a Ticket Field (Admin) | GET | `/api/v2/admin/ticket_fields/{{id}}` | `conn_mod_def::GJ2hxOzJc7M::fATKz_oOTS-FjCE-NW_uXA` |
| Create a Ticket Field | POST | `/api/v2/admin/ticket_fields` | `conn_mod_def::GJ2hwF-5C6Q::NsyA_YSjRciK384fqIemhQ` |
| Delete a Ticket Field | DELETE | `/api/v2/admin/ticket_fields/{{id}}` | `conn_mod_def::GJ2hwV4Nkl4::6xXC1KhXQtuuT-v9UPbMrg` |
| Update a Ticket Field (Admin) | PUT | `/api/v2/admin/ticket_fields/{{id}}` | `conn_mod_def::GJ2hxFUsSag::xbPokkEQRl29X-b5NV12lQ` |

### TicketForms

| Action | Method | Path | Action id |
|---|---|---|---|
| Clone a Ticket Form | GET | `/api/v2/ticket-forms/{{id}}/clone` | `conn_mod_def::GJ2hxW_r1Hc::y2j5BJ_KSH-_R6VvttWY3Q` |
| List All Ticket Forms | GET | `/api/v2/ticket-forms` | `conn_mod_def::GJ2hx7OFYyA::90DTlrUTTG6KQ2wYY7yfVA` |
| View a Ticket Form | GET | `/api/v2/ticket-forms/{{id}}` | `conn_mod_def::GJ2hyYLmYPM::sPkJTrrbQyOYgk8yi92bXg` |
| Create a Ticket Form | POST | `/api/v2/ticket-forms` | `conn_mod_def::GJ2hxecLQsg::HnbeWQkhSAWoerXzgtNY1g` |
| Delete a Ticket Form | DELETE | `/api/v2/ticket-forms/{{id}}` | `conn_mod_def::GJ2hxmAQlXw::z-0cJP4DR8eWPWoaupSOuw` |
| Update a Ticket Form | PUT | `/api/v2/ticket-forms/{{id}}` | `conn_mod_def::GJ2hyEsnLno::Cvp0RI_iSxS66zVug64rbA` |

### TimeEntries

| Action | Method | Path | Action id |
|---|---|---|---|
| List a Ticket’s Time Entries | GET | `/api/v2/tickets/{{id}}/time_entries` | `conn_mod_def::GJ2h1oyJbu8::rw_V3CVeROK0J8e_pcup1g` |
| List All Time Entries | GET | `/api/v2/time_entries` | `conn_mod_def::GJ2h3_Qb8Hc::pAGO_EqURN6OUkWXJTLocw` |
| Create a Ticket Time Entry | POST | `/api/v2/tickets/{{ticketId}}/time_entries` | `conn_mod_def::GJ2h3utqFQY::UFgfsE56RaeRGYgitMQPHQ` |
| Delete a Time Entry | DELETE | `/api/v2/time_entries/{{id}}` | `conn_mod_def::GJ2h32cYVnQ::VIgZ9o4fTy-xErO9qIQr2g` |
| Start/Stop a Time Entry Timer | PUT | `/api/v2/time_entries/{{timeEntryId}}/toggle_timer` | `conn_mod_def::GJ2h4G72xPQ::t9YmyJAMQG-7hZhr_79cbQ` |
| Update a Time Entry | PUT | `/api/v2/time_entries/{{id}}` | `conn_mod_def::GJ2h4RAvllI::P8j2DAFMR0O7wkdxLOq8tg` |

### CompanyFields

| Action | Method | Path | Action id |
|---|---|---|---|
| List Company Fields | GET | `/api/v2/company_fields` | `conn_mod_def::GJ2hc7HjPqs::QDjSykuiShq7Goc7wO6zdQ` |
| View a Company Field | GET | `/api/v2/company_fields/{{id}}` | `conn_mod_def::GJ2hdL-PQus::BbIUkS4HSiOZKlHxLotN9A` |
| Create a Company Field | POST | `/api/v2/company_fields` | `conn_mod_def::GJ2hcr8Y-uw::DMqKruK3Sx-YE7Cpi8vwAg` |
| Delete a Company Field | DELETE | `/api/v2/company_fields/{{id}}` | `conn_mod_def::GJ2hczLSYP0::vdsOAeHZQfyPugvbP7MLkg` |
| Update a Company Field | PUT | `/api/v2/company_fields/{{id}}` | `conn_mod_def::GJ2hdDp89WA::08qivEMgQfyLpXcoHe9TEQ` |

### ContactFields

| Action | Method | Path | Action id |
|---|---|---|---|
| List Contact Fields | GET | `/api/v2/contact_fields` | `conn_mod_def::GJ2hdp0MtMo::R3zGcuoyRNeTa_gyylvB-Q` |
| View a Contact Field | GET | `/api/v2/contact_fields/{{id}}` | `conn_mod_def::GJ2hd5Iswl4::G5seHawkRf6Hz2GhUviwEA` |
| Create a Contact Field | POST | `/api/v2/contact_fields` | `conn_mod_def::GJ2hdXXG4KU::0SSErDhHSSSv-IIXfTg4BA` |
| Delete a Contact Field | DELETE | `/api/v2/contact_fields/{{id}}` | `conn_mod_def::GJ2hdie__fc::KGgW9khfTxSIz4YV_lYWwg` |
| Update a Contact Field | PUT | `/api/v2/contact_fields/{{id}}` | `conn_mod_def::GJ2hdxk1HQg::Bl9t-SXqSjWm9zOVVf3Ujg` |

### DiscussionTopics

| Action | Method | Path | Action id |
|---|---|---|---|
| List a User’s Monitored Discussion Topics | GET | `/api/v2/discussions/topics/followed_by` | `conn_mod_def::GJ2hj2jxJBY::vWlIGcr9QFGLTDy8YkgTSA` |
| List All Topics in a Forum | GET | `/api/v2/discussions/forums/{{id}}/topics` | `conn_mod_def::GJ2hkHSX30o::WWQQM2UpSWeBqNssDfA4aQ` |
| View a Discussion Topic | GET | `/api/v2/discussions/topics/{{id}}` | `conn_mod_def::GJ2hlzjw3_8::GxKOBaZzQIG4nhlf_L8euQ` |
| Create a Forum Topic (Discussion) | POST | `/api/v2/discussions/forums/{{forumId}}/topics` | `conn_mod_def::GJ2hi0Z6SGs::182mIr8AQm2da-PoZUbtlA` |
| Update a Discussion Topic | PUT | `/api/v2/discussions/topics/{{id}}` | `conn_mod_def::GJ2hldu46bg::EeziEzv8Qsev1d6r3QDv6w` |

### Forums

| Action | Method | Path | Action id |
|---|---|---|---|
| List All Forums in a Discussion Category | GET | `/api/v2/discussions/categories/{{id}}/forums` | `conn_mod_def::GJ2hjuF1eXg::5FfSKBJQTp-Oefkmkel20g` |
| View a Forum | GET | `/api/v2/discussions/forums/{{id}}` | `conn_mod_def::GJ2hlkxJSVI::ozE24wcPSeiC6mZSmNABVg` |
| Delete a Forum | DELETE | `/api/v2/discussions/forums/{{id}}` | `conn_mod_def::GJ2hjEShrUE::FTGpsAbdRp6czV9JVsr6zg` |

2 more Forums actions are available through search.

This lists 90 of 243 actions. For anything not here, call `search_one_platform_actions` with platform `freshdesk`. The full catalog is at https://www.withone.ai/knowledge/freshdesk.

## When a call fails

The error comes from Freshdesk, not from One. A 400 or 422 means your parameters do not match the schema, so re-read the knowledge and fix the field. A 401 or 403 means the connection needs re-authorizing, which no retry will fix. A 404 means the id is not on this account. A 429 means slow down. Never retry a write more than once: the first attempt may have landed.

Full catalog: https://www.withone.ai/knowledge/freshdesk

Integration knowledge by One (withone.ai), licensed under [One-Knowledge-1.0](https://www.withone.ai/licenses/knowledge). Attribution must be preserved in derivative works.

