Freshdesk
Arcade.dev LLM tools for Freshdesk customer support
1.0.3Freshdesk is a customer support platform; this toolkit lets Arcade-powered agents read and write Freshdesk data — tickets, contacts, companies, agents, groups, and knowledge base articles — to automate helpdesk workflows.
Capabilities
- Ticket lifecycle: open tickets, reply publicly, add private notes, update status/priority/assignee/group, merge duplicates, and search the queue by any combination of status, priority, requester, agent, group, tag, type, or recency.
- Contact & company management: create or update contacts and company accounts; search contacts by name, email, or company; search companies by name prefix; read full records by id.
- Customer context: assemble a requester's contact record, company, and full ticket history in one call instead of multiple 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 keyword; retrieve a single article's full content by id.
- Graceful error handling: all single-record lookups return a structured not-found envelope instead of raising, enabling same-turn recovery from stale or guessed ids.
Secrets
FRESHDESK_API_KEY — The API key that authenticates requests to your Freshdesk account. Obtain it from your Freshdesk portal: click your avatar (top-right) → Profile Settings → copy the key shown under Your API Key. No special scopes or paid tier are required; any agent account exposes this key. See Freshdesk API authentication docs for details.
FRESHDESK_DOMAIN — Your Freshdesk subdomain, i.e. the hostname prefix of your helpdesk URL. If your portal URL is https://acme.freshdesk.com, the domain value is acme (or the full hostname, depending on how the toolkit consumes it — confirm the expected format in your Arcade tool configuration). No separate credential is issued; this is simply the account identifier visible in your browser's address bar when logged in.
Store both secrets in Arcade at https://api.arcade.dev/dashboard/auth/secrets. See the Arcade secrets guide for configuration instructions.
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 |