Freshdesk
Arcade.dev LLM tools for Freshdesk customer support
1.0.1Freshdesk toolkit for Arcade connects LLM agents to a Freshdesk helpdesk instance, enabling ticket management, contact/company administration, knowledge base access, and agent/group routing.
Capabilities
- Ticket lifecycle — create, read, update, merge, and reply to tickets (public replies or private notes), plus rich filtering and search across the ticket queue
- Customer context — look up contacts and companies individually or fetch a full customer overview (contact + company + tickets) in one call; create or update either record
- Knowledge base — search published solution articles by keyword and retrieve full article content by ID
- Agent & group routing — list agents (filterable by email) and groups to assign or escalate tickets programmatically
- Safe lookups — missing IDs return a structured not-found envelope rather than raising exceptions, allowing in-turn recovery from stale or guessed identifiers
- Identity verification —
WhoAmIconfirms which API key and Freshdesk domain the toolkit is connected to
Secrets
FRESHDESK_API_KEY — Your Freshdesk API key authenticates every request. Retrieve it from your Freshdesk account by navigating to Profile Settings (click your avatar, top-right) and scrolling to the Your API Key section. Any agent account has an API key; admin-level accounts are recommended for full access to all ticket, contact, company, and agent endpoints. See Freshdesk API key docs for step-by-step instructions.
FRESHDESK_DOMAIN — The subdomain of your Freshdesk account (e.g., yourcompany if your helpdesk URL is yourcompany.freshdesk.com). This is set when you sign up and visible in the browser address bar on any Freshdesk page.
Store both secrets in Arcade at https://api.arcade.dev/dashboard/auth/secrets. See the Arcade secrets guide for configuration details.
Available tools(19)
| Tool name | Description | Secrets | |
|---|---|---|---|
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 |