Skip to Content
ResourcesIntegrationsCustomer SupportFreshdesk

Freshdesk

Service domainCUSTOMER SUPPORT
Freshdesk icon
Arcade Optimized

Arcade.dev LLM tools for Freshdesk customer support

Author:Arcade
Version:0.1.1
Auth:No authentication required
19tools
19require secrets

Freshdesk is a customer support platform; this toolkit lets LLM agents read and write Freshdesk data — tickets, contacts, companies, agents, groups, and the knowledge base — without a human clicking through the UI.

Capabilities

  • Ticket lifecycle — create, read, update, merge, reply publicly, and add private internal notes to tickets; search the queue by status, priority, requester, agent, group, tag, type, or recency.
  • Contact & company management — create or update contacts and company accounts; search and retrieve individual records; handle stale or missing IDs gracefully via not-found envelopes rather than hard errors.
  • Customer context assembly — retrieve a requester's contact record, company, and full ticket history in a single call (GetCustomerOverview) instead of three separate lookups.
  • Routing support — list agents (filterable by email) and groups to assign or escalate tickets to the right team.
  • Knowledge base — search published solution articles by term and read full article content by ID.
  • Account verification — confirm the active API key and connected domain with WhoAmI.

Secrets

This toolkit requires two secrets configured in Arcade:

  • FRESHDESK_API_KEY — A per-agent or per-account API key that authenticates all requests. Obtain it from your Freshdesk portal: go to Profile Settings → API Key (top-right avatar menu). The key is scoped to the permissions of the agent account it belongs to; use an admin account's key if the toolkit needs to manage agents, groups, or perform bulk operations. See Freshdesk API authentication docs for details.

  • FRESHDESK_DOMAIN — Your Freshdesk subdomain (e.g., yourcompany if your helpdesk URL is https://yourcompany.freshdesk.com). This is not a credential but must be supplied so the toolkit knows which Freshdesk instance to target. Find it in the address bar when logged into your Freshdesk account.

Configure both secrets in the Arcade dashboard or via the Arcade secrets API. See the Arcade secrets guide and manage secrets at https://api.arcade.dev/dashboard/auth/secrets.

Available tools(19)

19 of 19 tools
Operations
Behavior
Tool nameDescriptionSecrets
Add an internal private note to a ticket that the requester cannot see.
2
Create a new company account or update an existing one. To create, omit company_id and provide a name; link a contact to the result by passing its id as a contact's company.
2
Create a new contact or update an existing one. To create, omit contact_id and provide a name plus at least one of email, phone, or mobile.
2
Open a ticket on a customer's behalf. Requires a subject, a description, and a requester identified by email or id.
2
Read a single knowledge base article's full content by id. A missing id returns a not-found envelope (``found`` false) rather than raising, so a stale or guessed id can be recovered from within the same turn.
2
Read a single company's details by id. A missing id returns a not-found envelope (``found`` false) rather than raising, so a stale or guessed id can be recovered from within the same turn.
2
Read a single contact's details by id. A missing id returns a not-found envelope (``found`` false) rather than raising, so a stale or guessed id can be recovered from within the same turn.
2
Assemble one requester's full context — their contact record, their company, and their tickets — in a single call instead of three separate lookups. Identify the requester by contact_id or email; a missing requester returns a not-found envelope rather than raising, so a stale id or wrong email can be recovered in the same turn.
2
Read a ticket together with its full public-reply and private-note history. A missing id returns a not-found envelope (``found`` false) rather than raising, so a stale or guessed id can be recovered from within the same turn.
2
List the helpdesk's agents, optionally filtered to one email, for routing tickets.
2
List the helpdesk's groups for routing tickets to a team.
2
Merge duplicate tickets into one. Use this to consolidate related tickets from the same requester so the conversation lives in a single place; the secondary tickets are closed.
2
Post a public reply on a ticket that the requester can see.
2
Search the knowledge base for published solution articles matching a term.
2
Find companies by name. Match is by name prefix; use the full name for an exact hit. Returns lightweight summaries without the company note; read a single company by id for its full detail.
2
Find contacts by name, exact email, or company. With no filters, returns recent contacts. Combining a name with a company scans up to the company's first 1000 contacts and matches the name among them; at a company with more contacts than that, a name match recorded beyond the scan may not appear.
2
Find tickets in the queue by status, priority, requester, agent, group, tag, type, or recency. With no filters, returns the most recently updated tickets. Pass requester_id (or requester_email) to pull one customer's full ticket history; other filters then refine that requester's tickets. A just-created ticket may take a moment to appear here while Freshdesk indexes it.
2
Change a ticket's status, priority, assignee, or group. Fields left unset are unchanged; at least one field must be provided.
2
Return the authenticated Freshdesk agent's profile. Use this to verify the configured API key and confirm which Freshdesk account (domain) the tools are connected to; it is not a required preamble to the other tools.
2

Selected tools

No tools selected.

Click "Show all tools" to add tools.

Requirements

Select tools to see requirements

#

Freshdesk.AddPrivateNote

Execution hints

Signals for MCP clients and agents about how this tool behaves.

Operations
Create
Service domains
Customer support
MCP behavior
No

Reads data without modifying any state in the target system.

No

May permanently delete or overwrite data in the target system.

No

Repeated calls with the same inputs produce no additional effect.

Yes

Communicates with external APIs, databases, or other services.

Add an internal private note to a ticket that the requester cannot see.

Parameters

ParameterTypeReq.Description
ticket_idintegerRequiredThe ticket to annotate.
bodystringRequiredThe internal note text. Not visible to the requester.
notify_agent_emailsarray<string>OptionalAgent emails to notify about the note. Defaults to notifying no one.

Requirements

Secrets:FRESHDESK_API_KEYFRESHDESK_DOMAIN

Output

Type:jsonConfirmation referencing the created private note.
#

Freshdesk.CreateOrUpdateCompany

Execution hints

Signals for MCP clients and agents about how this tool behaves.

Operations
CreateUpdate
Service domains
Customer support
MCP behavior
No

Reads data without modifying any state in the target system.

No

May permanently delete or overwrite data in the target system.

No

Repeated calls with the same inputs produce no additional effect.

Yes

Communicates with external APIs, databases, or other services.

Create a new company account or update an existing one. To create, omit company_id and provide a name; link a contact to the result by passing its id as a contact's company.

Parameters

ParameterTypeReq.Description
company_idintegerOptionalId of the company to update. Omit to create a new company instead.
namestringOptionalCompany name. When creating, this is required and must be unique. When updating, providing it renames the company and omitting it leaves the name unchanged.
domainsarray<string>OptionalEmail domains owned by the company, used to auto-associate new contacts. Providing this replaces the existing list; omitting it leaves the domains unchanged.
notestringOptionalFree-text account note. Providing it sets the note; omitting it leaves it unchanged.

Requirements

Secrets:FRESHDESK_API_KEYFRESHDESK_DOMAIN

Output

Type:jsonThe created or updated company.
#

Freshdesk.CreateOrUpdateContact

Execution hints

Signals for MCP clients and agents about how this tool behaves.

Operations
CreateUpdate
Service domains
Customer support
MCP behavior
No

Reads data without modifying any state in the target system.

No

May permanently delete or overwrite data in the target system.

No

Repeated calls with the same inputs produce no additional effect.

Yes

Communicates with external APIs, databases, or other services.

Create a new contact or update an existing one. To create, omit contact_id and provide a name plus at least one of email, phone, or mobile.

Parameters

ParameterTypeReq.Description
contact_idintegerOptionalId of the contact to update. Omit to create a new contact instead.
namestringOptionalContact name. When creating, this is required. When updating, providing it changes the name and omitting it leaves the name unchanged.
emailstringOptionalContact email. Providing it sets the email; omitting it leaves it unchanged.
phonestringOptionalContact phone. Providing it sets the phone; omitting it leaves it unchanged.
mobilestringOptionalContact mobile. Providing it sets the mobile; omitting it leaves it unchanged.
company_idintegerOptionalCompany to associate the contact with. Omitting it leaves it unchanged.
job_titlestringOptionalContact job title. Providing it sets the title; omitting it leaves it unchanged.

Requirements

Secrets:FRESHDESK_API_KEYFRESHDESK_DOMAIN

Output

Type:jsonThe created or updated contact.
#

Freshdesk.CreateTicket

Execution hints

Signals for MCP clients and agents about how this tool behaves.

Operations
Create
Service domains
Customer support
MCP behavior
No

Reads data without modifying any state in the target system.

No

May permanently delete or overwrite data in the target system.

No

Repeated calls with the same inputs produce no additional effect.

Yes

Communicates with external APIs, databases, or other services.

Open a ticket on a customer's behalf. Requires a subject, a description, and a requester identified by email or id.

Parameters

ParameterTypeReq.Description
subjectstringRequiredThe ticket subject line.
descriptionstringRequiredThe ticket's first-message body. Plain text or HTML.
requester_emailstringOptionalEmail of the contact the ticket is for. Provide this or requester_id. Leave empty when using requester_id.
requester_idintegerOptionalId of an existing contact the ticket is for. Provide this or requester_email.
statusstringOptionalInitial status. Defaults to OPEN.
openpendingresolvedclosed
prioritystringOptionalInitial priority. Defaults to MEDIUM.
lowmediumhighurgent
group_idintegerOptionalGroup to assign the new ticket to. Defaults to unassigned.
agent_idintegerOptionalAgent to assign as owner. Defaults to unassigned.

Requirements

Secrets:FRESHDESK_API_KEYFRESHDESK_DOMAIN

Output

Type:jsonThe created ticket with its conversation.
#

Freshdesk.GetArticle

Execution hints

Signals for MCP clients and agents about how this tool behaves.

Operations
Read
Service domains
Customer support
MCP behavior
Yes

Reads data without modifying any state in the target system.

No

May permanently delete or overwrite data in the target system.

Yes

Repeated calls with the same inputs produce no additional effect.

Yes

Communicates with external APIs, databases, or other services.

Read a single knowledge base article's full content by id. A missing id returns a not-found envelope (``found`` false) rather than raising, so a stale or guessed id can be recovered from within the same turn.

Parameters

ParameterTypeReq.Description
article_idintegerRequiredThe article's unique identifier.

Requirements

Secrets:FRESHDESK_API_KEYFRESHDESK_DOMAIN

Output

Type:jsonThe article's full content, or a not-found envelope.
#

Freshdesk.GetCompany

Execution hints

Signals for MCP clients and agents about how this tool behaves.

Operations
Read
Service domains
Customer support
MCP behavior
Yes

Reads data without modifying any state in the target system.

No

May permanently delete or overwrite data in the target system.

Yes

Repeated calls with the same inputs produce no additional effect.

Yes

Communicates with external APIs, databases, or other services.

Read a single company's details by id. A missing id returns a not-found envelope (``found`` false) rather than raising, so a stale or guessed id can be recovered from within the same turn.

Parameters

ParameterTypeReq.Description
company_idintegerRequiredThe company's unique identifier.

Requirements

Secrets:FRESHDESK_API_KEYFRESHDESK_DOMAIN

Output

Type:jsonThe company's full detail, or a not-found envelope.
#

Freshdesk.GetContact

Execution hints

Signals for MCP clients and agents about how this tool behaves.

Operations
Read
Service domains
Customer support
MCP behavior
Yes

Reads data without modifying any state in the target system.

No

May permanently delete or overwrite data in the target system.

Yes

Repeated calls with the same inputs produce no additional effect.

Yes

Communicates with external APIs, databases, or other services.

Read a single contact's details by id. A missing id returns a not-found envelope (``found`` false) rather than raising, so a stale or guessed id can be recovered from within the same turn.

Parameters

ParameterTypeReq.Description
contact_idintegerRequiredThe contact's unique identifier.

Requirements

Secrets:FRESHDESK_API_KEYFRESHDESK_DOMAIN

Output

Type:jsonThe contact's full detail, or a not-found envelope.
#

Freshdesk.GetCustomerOverview

Execution hints

Signals for MCP clients and agents about how this tool behaves.

Operations
Read
Service domains
Customer support
MCP behavior
Yes

Reads data without modifying any state in the target system.

No

May permanently delete or overwrite data in the target system.

Yes

Repeated calls with the same inputs produce no additional effect.

Yes

Communicates with external APIs, databases, or other services.

Assemble one requester's full context — their contact record, their company, and their tickets — in a single call instead of three separate lookups. Identify the requester by contact_id or email; a missing requester returns a not-found envelope rather than raising, so a stale id or wrong email can be recovered in the same turn.

Parameters

ParameterTypeReq.Description
contact_idintegerOptionalId of the requester to profile. Takes precedence over email. Omit to look up by email.
emailstringOptionalExact email of the requester to profile. Used only when contact_id is omitted.
include_closedbooleanOptionalInclude resolved and closed tickets too (true) or only open and pending ones (false). Defaults to false.
ticket_limitintegerOptionalMaximum tickets to return (1-100). Defaults to 20.

Requirements

Secrets:FRESHDESK_API_KEYFRESHDESK_DOMAIN

Output

Type:jsonThe requester's contact, company, and tickets in one envelope.
#

Freshdesk.GetTicket

Execution hints

Signals for MCP clients and agents about how this tool behaves.

Operations
Read
Service domains
Customer support
MCP behavior
Yes

Reads data without modifying any state in the target system.

No

May permanently delete or overwrite data in the target system.

Yes

Repeated calls with the same inputs produce no additional effect.

Yes

Communicates with external APIs, databases, or other services.

Read a ticket together with its full public-reply and private-note history. A missing id returns a not-found envelope (``found`` false) rather than raising, so a stale or guessed id can be recovered from within the same turn.

Parameters

ParameterTypeReq.Description
ticket_idintegerRequiredThe ticket's unique identifier.

Requirements

Secrets:FRESHDESK_API_KEYFRESHDESK_DOMAIN

Output

Type:jsonThe ticket with its conversation, or a not-found envelope.
#

Freshdesk.ListAgents

Execution hints

Signals for MCP clients and agents about how this tool behaves.

Operations
Read
Service domains
Customer support
MCP behavior
Yes

Reads data without modifying any state in the target system.

No

May permanently delete or overwrite data in the target system.

Yes

Repeated calls with the same inputs produce no additional effect.

Yes

Communicates with external APIs, databases, or other services.

List the helpdesk's agents, optionally filtered to one email, for routing tickets.

Parameters

ParameterTypeReq.Description
emailstringOptionalExact email to find a single agent by. Leave empty to list all agents.
limitintegerOptionalMaximum agents to return (1-100). Defaults to 50.
offsetintegerOptional0-indexed starting position. Defaults to 0.

Requirements

Secrets:FRESHDESK_API_KEYFRESHDESK_DOMAIN

Output

Type:jsonHelpdesk agents with pagination metadata.
#

Freshdesk.ListGroups

Execution hints

Signals for MCP clients and agents about how this tool behaves.

Operations
Read
Service domains
Customer support
MCP behavior
Yes

Reads data without modifying any state in the target system.

No

May permanently delete or overwrite data in the target system.

Yes

Repeated calls with the same inputs produce no additional effect.

Yes

Communicates with external APIs, databases, or other services.

List the helpdesk's groups for routing tickets to a team.

Parameters

ParameterTypeReq.Description
limitintegerOptionalMaximum groups to return (1-100). Defaults to 50.
offsetintegerOptional0-indexed starting position. Defaults to 0.

Requirements

Secrets:FRESHDESK_API_KEYFRESHDESK_DOMAIN

Output

Type:jsonHelpdesk groups with pagination metadata.
#

Freshdesk.MergeTickets

Execution hints

Signals for MCP clients and agents about how this tool behaves.

Operations
Update
Service domains
Customer support
MCP behavior
No

Reads data without modifying any state in the target system.

No

May permanently delete or overwrite data in the target system.

No

Repeated calls with the same inputs produce no additional effect.

Yes

Communicates with external APIs, databases, or other services.

Merge duplicate tickets into one. Use this to consolidate related tickets from the same requester so the conversation lives in a single place; the secondary tickets are closed.

Parameters

ParameterTypeReq.Description
primary_ticket_idintegerRequiredThe ticket that survives the merge and absorbs the others.
secondary_ticket_idsarray<integer>RequiredIds of the duplicate tickets to fold into the primary. Each is closed and its conversation linked into the primary ticket.
notestringOptionalInternal note added to the primary ticket recording the merge. Leave empty to add no note.

Requirements

Secrets:FRESHDESK_API_KEYFRESHDESK_DOMAIN

Output

Type:jsonConfirmation of the merge.
#

Freshdesk.ReplyToTicket

Execution hints

Signals for MCP clients and agents about how this tool behaves.

Operations
Create
Service domains
Customer support
MCP behavior
No

Reads data without modifying any state in the target system.

No

May permanently delete or overwrite data in the target system.

No

Repeated calls with the same inputs produce no additional effect.

Yes

Communicates with external APIs, databases, or other services.

Post a public reply on a ticket that the requester can see.

Parameters

ParameterTypeReq.Description
ticket_idintegerRequiredThe ticket to reply to.
bodystringRequiredThe public reply text the requester will see. Plain text or HTML.

Requirements

Secrets:FRESHDESK_API_KEYFRESHDESK_DOMAIN

Output

Type:jsonConfirmation referencing the created public reply.
#

Freshdesk.SearchArticles

Execution hints

Signals for MCP clients and agents about how this tool behaves.

Operations
Read
Service domains
Customer support
MCP behavior
Yes

Reads data without modifying any state in the target system.

No

May permanently delete or overwrite data in the target system.

Yes

Repeated calls with the same inputs produce no additional effect.

Yes

Communicates with external APIs, databases, or other services.

Search the knowledge base for published solution articles matching a term.

Parameters

ParameterTypeReq.Description
termstringRequiredThe keyword or phrase to search published articles for.
limitintegerOptionalMaximum articles to return (1-100). Defaults to 20.
offsetintegerOptional0-indexed starting position. Defaults to 0.

Requirements

Secrets:FRESHDESK_API_KEYFRESHDESK_DOMAIN

Output

Type:jsonMatching published articles with pagination metadata.
#

Freshdesk.SearchCompanies

Execution hints

Signals for MCP clients and agents about how this tool behaves.

Operations
Read
Service domains
Customer support
MCP behavior
Yes

Reads data without modifying any state in the target system.

No

May permanently delete or overwrite data in the target system.

Yes

Repeated calls with the same inputs produce no additional effect.

Yes

Communicates with external APIs, databases, or other services.

Find companies by name. Match is by name prefix; use the full name for an exact hit. Returns lightweight summaries without the company note; read a single company by id for its full detail.

Parameters

ParameterTypeReq.Description
querystringRequiredName or name prefix to match companies by. The name autocomplete requires at least 2 characters; a single-character query returns no matches rather than an error.
limitintegerOptionalMaximum companies to return (1-100). Defaults to 20.
offsetintegerOptional0-indexed starting position. Defaults to 0.

Requirements

Secrets:FRESHDESK_API_KEYFRESHDESK_DOMAIN

Output

Type:jsonMatching companies with pagination metadata.
#

Freshdesk.SearchContacts

Execution hints

Signals for MCP clients and agents about how this tool behaves.

Operations
Read
Service domains
Customer support
MCP behavior
Yes

Reads data without modifying any state in the target system.

No

May permanently delete or overwrite data in the target system.

Yes

Repeated calls with the same inputs produce no additional effect.

Yes

Communicates with external APIs, databases, or other services.

Find contacts by name, exact email, or company. With no filters, returns recent contacts. Combining a name with a company scans up to the company's first 1000 contacts and matches the name among them; at a company with more contacts than that, a name match recorded beyond the scan may not appear.

Parameters

ParameterTypeReq.Description
querystringOptionalName or name prefix to match contacts by. Leave empty to not filter by name. The name autocomplete requires at least 2 characters; a single-character query returns no matches rather than an error.
emailstringOptionalExact email to look up a contact by. Leave empty to not filter by email.
company_idintegerOptionalOnly include contacts at this company. Defaults to no filter.
limitintegerOptionalMaximum contacts to return (1-100). Defaults to 20.
offsetintegerOptional0-indexed starting position. Defaults to 0.

Requirements

Secrets:FRESHDESK_API_KEYFRESHDESK_DOMAIN

Output

Type:jsonMatching contacts with pagination metadata.
#

Freshdesk.SearchTickets

Execution hints

Signals for MCP clients and agents about how this tool behaves.

Operations
Read
Service domains
Customer support
MCP behavior
Yes

Reads data without modifying any state in the target system.

No

May permanently delete or overwrite data in the target system.

Yes

Repeated calls with the same inputs produce no additional effect.

Yes

Communicates with external APIs, databases, or other services.

Find tickets in the queue by status, priority, requester, agent, group, tag, type, or recency. With no filters, returns the most recently updated tickets. Pass requester_id (or requester_email) to pull one customer's full ticket history; other filters then refine that requester's tickets. A just-created ticket may take a moment to appear here while Freshdesk indexes it.

Parameters

ParameterTypeReq.Description
statusstringOptionalOnly include tickets with this status. Defaults to no filter.
openpendingresolvedclosed
prioritystringOptionalOnly include tickets with this priority. Defaults to no filter.
lowmediumhighurgent
requester_emailstringOptionalOnly include tickets opened by the contact with this email. Leave empty for no filter. Ignored when requester_id is given.
requester_idintegerOptionalOnly include tickets opened by the contact with this id. Takes precedence over requester_email. Defaults to no filter.
agent_idintegerOptionalOnly include tickets assigned to this agent. Defaults to no filter.
group_idintegerOptionalOnly include tickets in this group. Defaults to no filter.
tagstringOptionalOnly include tickets carrying this tag. Leave empty for no filter.
ticket_typestringOptionalOnly include tickets of this type. Leave empty for no filter.
updated_sincestringOptionalOnly include tickets updated on or after this date (YYYY-MM-DD). Leave empty for no lower bound.
limitintegerOptionalMaximum tickets to return (1-100). Defaults to 20.
offsetintegerOptional0-indexed starting position. Defaults to 0.

Requirements

Secrets:FRESHDESK_API_KEYFRESHDESK_DOMAIN

Output

Type:jsonMatching tickets, newest first, with pagination metadata.
#

Freshdesk.UpdateTicket

Execution hints

Signals for MCP clients and agents about how this tool behaves.

Operations
Update
Service domains
Customer support
MCP behavior
No

Reads data without modifying any state in the target system.

No

May permanently delete or overwrite data in the target system.

Yes

Repeated calls with the same inputs produce no additional effect.

Yes

Communicates with external APIs, databases, or other services.

Change a ticket's status, priority, assignee, or group. Fields left unset are unchanged; at least one field must be provided.

Parameters

ParameterTypeReq.Description
ticket_idintegerRequiredThe ticket to update.
statusstringOptionalNew status. Omit to leave the status unchanged.
openpendingresolvedclosed
prioritystringOptionalNew priority. Omit to leave the priority unchanged.
lowmediumhighurgent
agent_idintegerOptionalAgent to assign as owner. Omit to leave the assignee unchanged.
group_idintegerOptionalGroup to move the ticket to. Omit to leave the group unchanged.

Requirements

Secrets:FRESHDESK_API_KEYFRESHDESK_DOMAIN

Output

Type:jsonThe updated ticket with its conversation.
#

Freshdesk.WhoAmI

Execution hints

Signals for MCP clients and agents about how this tool behaves.

Operations
Read
Service domains
Customer support
MCP behavior
Yes

Reads data without modifying any state in the target system.

No

May permanently delete or overwrite data in the target system.

Yes

Repeated calls with the same inputs produce no additional effect.

Yes

Communicates with external APIs, databases, or other services.

Return the authenticated Freshdesk agent's profile. Use this to verify the configured API key and confirm which Freshdesk account (domain) the tools are connected to; it is not a required preamble to the other tools.

Parameters

No parameters required.

Requirements

Secrets:FRESHDESK_API_KEYFRESHDESK_DOMAIN

Output

Type:jsonThe authenticated agent's identity and connected account.
Last updated on