atmon docs

REFERENCE/TOOLKITS/FRESHDESK.MD

Freshdesk

Customer support desk. Create and work tickets, reply and add private notes, and manage contacts, companies, and agents.

PropertyValue
Slugfreshdesk
Definition version0.2.0
Base URLhttps://{{account.domain}}.freshdesk.com/api/v2
Auth schemesapi_key
Action tools39
By class18 read, 13 write, 8 destructive
Triggers0
Provider rate limitnot declared, so outbound calls are unpaced

Measured routing accuracy

79 golden cases replayed through the router over the whole index: measured over corpus ea4f12ad2948 (65 toolkits, 2283 tools indexed and 13 declared uncallable), 39 cases written by hand and 37 cases from the paraphrase pass, plus 3 context cases whose intent names no app and is decided by the session. A case counts as top-1 when its gold tool ranked first and top-8 when it reached the slate at all.

MeasureCasesShare
top-129/7936.7%
top-865/7982.3%

The sweep is offline: the reranker is a deterministic identity fake that returns candidates in the order retrieval produced them, so top-1 measures retrieval order rather than a reranked slate. just eval-live measures the same cases through the live reranker.

Authentication

Connect an entity with ConnectionsService.InitiateConnection, naming this toolkit's slug. Credentials stay in the connections vault; callers hold connected-account ids only.

api_key

PropertyValue
Placementheader
NameAuthorization
Rendered asBasic {key}

Submit the key with ConnectionsService rather than putting it in a request; it is sealed at rest and never returned.

Tools

39 action tools. The catalog-wide slug is freshdesk.<tool>, which is what search_tools returns and call_tool takes.

freshdesk.create_ticket

Open a new support ticket in Freshdesk. Use when the user wants to file, log, or create a ticket, case, or support request. Requires a subject, description, and requester email, plus a priority and status; assign a group or agent, or attach tags, optionally.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /tickets.

Arguments:

ArgumentTypeRequiredNotes
cc_emailsarray of stringnoEmails to CC on the ticket.
descriptionstringyesTicket body, HTML allowed.
emailstringyesRequester's email. Freshdesk creates the contact if none exists.
group_idintegernoGroup id to assign the ticket to, from list_groups.
priorityinteger, one of 1, 2, 3, 4yes1 Low, 2 Medium, 3 High, 4 Urgent.
requester_idintegernoRequester's contact id, from search_contacts, instead of email.
responder_idintegernoAgent id to assign the ticket to, from list_agents.
sourceinteger, one of 1, 2, 3, 7, 9, 10no1 Email, 2 Portal, 3 Phone, 7 Chat, 9 Feedback Widget, 10 Outbound Email.
statusinteger, one of 2, 3, 4, 5yes2 Open, 3 Pending, 4 Resolved, 5 Closed.
subjectstringyesTicket subject line.
tagsarray of stringnoTags to apply.
typestringnoTicket type, e.g. "Question", "Incident", "Problem", "Feature Request".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
created_atstring
idinteger
priorityinteger
requester_idinteger
statusinteger
subjectstring

Also retrieved by: "open a support case for this customer", "log a new helpdesk request", "file a ticket for this problem", "a customer needs help, start a case", "raise a case in the helpdesk".

freshdesk.get_ticket

Get one Freshdesk ticket's full detail by id: subject, description, status, priority, requester, and dates. Use when the user names a specific ticket number. For many tickets at once use list_tickets or search_tickets.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /tickets/{{params.ticket_id}}.

Arguments:

ArgumentTypeRequiredNotes
includestringnoComma-separated extra data to embed, e.g. "conversations,requester,company,stats". Omit for the base fields.
ticket_idintegeryesTicket id.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
company_idinteger
created_atstring
description_textstring
due_bystring
group_idinteger
idinteger
priorityinteger
requester_idinteger
responder_idinteger
sourceinteger
statusinteger
subjectstring
tagsarray of string
typestring
updated_atstring

Also retrieved by: "pull up case number 4021", "what does this support case say", "show me the details on this case", "look up a specific helpdesk ticket".

freshdesk.update_ticket

Edit an existing Freshdesk ticket's subject, description, priority, status, assignee, group, or tags. Use when the user wants to change, update, reassign, or reprioritize a ticket. For adding a reply or a note instead, use create_reply or create_note.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PUT /tickets/{{params.ticket_id}}.

Arguments:

ArgumentTypeRequiredNotes
descriptionstringnoNew ticket body, HTML allowed.
group_idintegernoGroup id to reassign the ticket to.
priorityinteger, one of 1, 2, 3, 4no1 Low, 2 Medium, 3 High, 4 Urgent.
responder_idintegernoAgent id to reassign the ticket to.
statusinteger, one of 2, 3, 4, 5no2 Open, 3 Pending, 4 Resolved, 5 Closed.
subjectstringnoNew subject line.
tagsarray of stringnoReplaces the ticket's full tag set.
ticket_idintegeryesTicket id to edit.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
idinteger
priorityinteger
statusinteger
updated_atstring

Also retrieved by: "change the priority on this case", "reassign this support case to someone else", "bump this to urgent", "move this case to a different queue", "edit the subject of this case".

freshdesk.delete_ticket

Permanently delete a Freshdesk ticket. Use when the user wants to delete, remove, or trash a ticket or support request. Moves the ticket to the trash, purged automatically after 30 days.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /tickets/{{params.ticket_id}}.

Arguments:

ArgumentTypeRequiredNotes
ticket_idintegeryesTicket id to delete.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
deletedboolean

Also retrieved by: "trash this support case", "remove this helpdesk request for good", "get rid of this case entirely", "wipe this ticket from the helpdesk".

freshdesk.list_tickets

List Freshdesk tickets, optionally filtered by requester, company, or a preset like new-and-my-open or spam. Use for a broad view across tickets rather than one ticket. For a text or field query use search_tickets instead.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /tickets.

Arguments:

ArgumentTypeRequiredNotes
company_idintegernoRestrict to one company's tickets.
emailstringnoRestrict to tickets from this requester email.
filterstring, one of new_and_my_open, watching, spam, deletednoPreset ticket view. Omit for all tickets.
pageintegernoPage number, default 1.
per_pageintegernoPage size, default 30, max 100.
requester_idintegernoRestrict to one requester's tickets.
updated_sincestring (date-time)noOnly tickets updated at or after this ISO 8601 time.

Also retrieved by: "show me every open case for this customer", "what's sitting in the spam view", "find all cases from this requester", "what's still outstanding for this account".

freshdesk.search_tickets

Search Freshdesk tickets with a field query, e.g. '"priority:3 AND status:2"' for high-priority open tickets. Use for any ticket lookup by field value rather than free text across subjects. For a known ticket number use get_ticket instead.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /search/tickets.

Arguments:

ArgumentTypeRequiredNotes
pageintegernoPage number, default 1.
querystringyesQuoted Freshdesk query string, e.g. '"priority:4 AND status:2"' or '"requester_id:23"'.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
resultsarray of object
results[].idinteger
results[].priorityinteger
results[].statusinteger
results[].subjectstring
totalinteger

Also retrieved by: "find every urgent case that's still open", "look up cases by priority and status", "run a query across the helpdesk", "filter support cases by field".

freshdesk.merge_tickets

Merge one or more secondary Freshdesk tickets into a primary ticket. Use when the user wants to merge, combine, or consolidate duplicate tickets. Secondary tickets are closed and their content rolled into the primary. Irreversible.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls PUT /tickets/merge.

Arguments:

ArgumentTypeRequiredNotes
convert_recipients_to_ccbooleannoAdd the secondary tickets' requesters as CC on the primary. Default false.
primary_idintegeryesTicket id to keep as the primary.
ticket_idsarray of integeryesSecondary ticket ids to merge into the primary.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
mergedboolean

Also retrieved by: "combine these duplicate cases into one", "fold this case into the other one", "consolidate these two support requests".

freshdesk.list_ticket_fields

List the ticket fields configured on this Freshdesk account, standard and custom, with their valid choices. Use before create_ticket or update_ticket to find the exact status, priority, type, or custom field values the account allows.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /ticket_fields.

Takes no arguments.

Also retrieved by: "what statuses can a case have", "show me the priority options for a case", "what custom fields does this helpdesk use", "list the valid values for ticket type".

freshdesk.list_conversations

List the replies and notes on a Freshdesk ticket, oldest first. Use when the user wants to read the conversation, discussion, or history on a ticket. For posting a new reply or note use create_reply or create_note.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /tickets/{{params.ticket_id}}/conversations.

Arguments:

ArgumentTypeRequiredNotes
pageintegernoPage number, default 1.
ticket_idintegeryesTicket id.

Also retrieved by: "what's the back and forth on this case", "read the thread on this support ticket", "show the history of replies on this case".

freshdesk.create_reply

Send a customer-facing reply on a Freshdesk ticket. Use when the user wants to reply, respond, or answer the requester on a ticket. For an internal note the requester never sees, use create_note instead.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /tickets/{{params.ticket_id}}/reply.

Arguments:

ArgumentTypeRequiredNotes
bcc_emailsarray of stringnoEmails to BCC on the reply.
bodystringyesReply body, HTML allowed.
cc_emailsarray of stringnoEmails to CC on the reply.
from_emailstringnoSend-as email, if the ticket's group has more than one.
ticket_idintegeryesTicket id to reply on.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
body_textstring
created_atstring
idinteger

Also retrieved by: "answer the customer on this case", "respond to the requester", "send a message back on this ticket", "write the customer an update".

freshdesk.create_note

Add an internal note to a Freshdesk ticket, visible to agents only by default. Use when the user wants to note, comment, or leave an internal update on a ticket for the team. Set private false to make it visible to the requester too.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /tickets/{{params.ticket_id}}/notes.

Arguments:

ArgumentTypeRequiredNotes
bodystringyesNote body, HTML allowed.
notify_emailsarray of stringnoAgent emails to notify about this note.
privatebooleannoVisible to agents only. Default true.
ticket_idintegeryesTicket id to note on.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
body_textstring
created_atstring
idinteger
privateboolean

Also retrieved by: "leave an internal note for the team", "flag this for another agent privately", "jot down a note only agents can see", "tell the team what's going on here".

freshdesk.update_conversation

Edit the body text of a reply or note already posted on a Freshdesk ticket. Use when the user wants to fix, correct, or update something already posted in the conversation.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PUT /conversations/{{params.conversation_id}}.

Arguments:

ArgumentTypeRequiredNotes
bodystringyesReplacement body text, HTML allowed.
conversation_idintegeryesConversation (reply or note) id, from list_conversations.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
body_textstring
idinteger
updated_atstring

Also retrieved by: "fix a typo in my last reply", "correct what I wrote on that case", "edit my earlier note on this ticket".

freshdesk.delete_conversation

Permanently delete one reply or note from a Freshdesk ticket. Use when the user wants to delete or remove a single conversation entry, not the whole ticket. Irreversible.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /conversations/{{params.conversation_id}}.

Arguments:

ArgumentTypeRequiredNotes
conversation_idintegeryesConversation (reply or note) id to delete.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
deletedboolean

Also retrieved by: "remove that reply I posted by mistake", "delete a note on this case", "take down something I sent by accident".

freshdesk.create_contact

Create a new Freshdesk contact (customer). Use when the user wants to add, register, or create a customer or requester. Requires a name plus at least one of email, phone, or twitter_id.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /contacts.

Arguments:

ArgumentTypeRequiredNotes
company_idintegernoCompany id to associate, from search_companies.
emailstringnoContact's primary email.
job_titlestringnoContact's job title.
mobilestringnoContact's mobile number.
namestringyesContact's full name.
phonestringnoContact's work phone.
tagsarray of stringnoTags to apply.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
company_idinteger
created_atstring
emailstring
idinteger
namestring

Also retrieved by: "add a new customer record", "register this person as a requester", "create a profile for this customer".

freshdesk.get_contact

Get one Freshdesk contact's full detail by id: name, email, phone, company, and tags. Use when the user names a specific customer. For finding a contact by name or email use search_contacts.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /contacts/{{params.contact_id}}.

Arguments:

ArgumentTypeRequiredNotes
contact_idintegeryesContact id.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
activeboolean
company_idinteger
created_atstring
emailstring
idinteger
job_titlestring
mobilestring
namestring
phonestring
tagsarray of string

Also retrieved by: "pull up this customer's profile", "what do we have on file for this person", "show me this requester's details".

freshdesk.update_contact

Edit an existing Freshdesk contact's name, email, phone, company, or tags. Use when the user wants to change, update, or edit a customer's details.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PUT /contacts/{{params.contact_id}}.

Arguments:

ArgumentTypeRequiredNotes
company_idintegernoNew company id to associate.
contact_idintegeryesContact id to edit.
emailstringnoNew primary email.
namestringnoNew full name.
phonestringnoNew work phone.
tagsarray of stringnoReplaces the contact's full tag set.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
emailstring
idinteger
namestring
updated_atstring

Also retrieved by: "change this customer's email on file", "edit this person's phone number", "update the company for this requester".

freshdesk.delete_contact

Permanently delete a Freshdesk contact. Use when the user wants to delete, remove, or trash a customer record. Soft-deletes first; calling it on an already soft-deleted contact deletes it for good.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /contacts/{{params.contact_id}}.

Arguments:

ArgumentTypeRequiredNotes
contact_idintegeryesContact id to delete.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
deletedboolean

Also retrieved by: "remove this customer's record", "trash this requester profile", "get rid of this person's record for good".

freshdesk.list_contacts

List Freshdesk contacts, optionally filtered by email, phone, or company. Use for a broad view across customers rather than one contact. For a name lookup use search_contacts.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /contacts.

Arguments:

ArgumentTypeRequiredNotes
company_idintegernoRestrict to one company's contacts.
emailstringnoRestrict to this exact email.
pageintegernoPage number, default 1.
per_pageintegernoPage size, default 30, max 100.
phonestringnoRestrict to this exact phone number.

Also retrieved by: "show every customer at this company", "find requesters with this phone number", "list the people tied to this account".

freshdesk.search_contacts

Look up Freshdesk contacts by partial name, email, or phone as the user types. Use before create_ticket or assigning a company when the user names a customer rather than giving a contact id directly.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /contacts/autocomplete.

Arguments:

ArgumentTypeRequiredNotes
termstringyesName, email, or phone substring to match.

Also retrieved by: "find a customer named priya", "look up someone by email as I type", "who matches this name in the helpdesk".

freshdesk.create_company

Create a new Freshdesk company (account) that contacts belong to. Use when the user wants to add, register, or create a customer's company or organization.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /companies.

Arguments:

ArgumentTypeRequiredNotes
descriptionstringnoCompany description or notes.
domainsarray of stringnoEmail domains associated with this company, e.g. ["acme.com"].
namestringyesCompany name.
notestringnoInternal note about the company.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
created_atstring
domainsarray of string
idinteger
namestring

Also retrieved by: "add a new customer account", "register this organization", "set up a company record for this client".

freshdesk.get_company

Get one Freshdesk company's detail by id: name, domains, description, and notes. Use when the user names a specific customer's company. For finding a company by name use search_companies.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /companies/{{params.company_id}}.

Arguments:

ArgumentTypeRequiredNotes
company_idintegeryesCompany id.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
created_atstring
descriptionstring
domainsarray of string
idinteger
namestring
notestring
updated_atstring

Also retrieved by: "tell me about this customer's organization", "what domains belong to this account", "pull up the company profile".

freshdesk.update_company

Edit an existing Freshdesk company's name, domains, description, or notes. Use when the user wants to change, update, or edit a customer's company details, not the contacts inside it.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PUT /companies/{{params.company_id}}.

Arguments:

ArgumentTypeRequiredNotes
company_idintegeryesCompany id to edit.
descriptionstringnoNew company description.
domainsarray of stringnoReplaces the company's full domain list.
namestringnoNew company name.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
idinteger
namestring
updated_atstring

Also retrieved by: "rename this customer's organization", "add a new domain to this account", "edit the notes on this company".

freshdesk.delete_company

Permanently delete a Freshdesk company. Use when the user wants to delete, remove, or trash a customer's company or organization. Its contacts are not deleted; they are left with no company. Irreversible.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /companies/{{params.company_id}}.

Arguments:

ArgumentTypeRequiredNotes
company_idintegeryesCompany id to delete.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
deletedboolean

Also retrieved by: "remove this customer organization", "trash this account record", "get rid of this company for good".

freshdesk.list_companies

List every Freshdesk company on the account. Use when the user wants to see what companies or organizations exist. For a name lookup use search_companies.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /companies.

Arguments:

ArgumentTypeRequiredNotes
pageintegernoPage number, default 1.
per_pageintegernoPage size, default 30, max 100.

Also retrieved by: "what organizations do we support", "show every customer account we have", "list the companies in the helpdesk".

freshdesk.search_companies

Look up Freshdesk companies by partial name as the user types. Use before create_contact or update_contact when the user names a customer's company rather than giving a company id directly.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /companies/autocomplete.

Arguments:

ArgumentTypeRequiredNotes
namestringyesCompany name substring to match.

Also retrieved by: "find a customer company by name in the helpdesk", "look up a company by partial name", "which account matches this text".

freshdesk.get_agent

Get one Freshdesk agent's detail by id: name, email, role, group membership, and availability. Use when the user names a specific support agent or teammate.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /agents/{{params.agent_id}}.

Arguments:

ArgumentTypeRequiredNotes
agent_idintegeryesAgent id.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
availableboolean
contactobject
contact.emailstring
contact.job_titlestring
contact.namestring
group_idsarray of integer
idinteger
role_idsarray of integer
ticket_scopeinteger

Also retrieved by: "tell me about this support rep", "what groups is this teammate in", "pull up this agent's profile".

freshdesk.list_agents

List the support agents on this Freshdesk account, optionally filtered by email or availability. Use when the user wants to see who is on the support team or find an agent's id.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /agents.

Arguments:

ArgumentTypeRequiredNotes
emailstringnoRestrict to this exact agent email.
pageintegernoPage number, default 1.
per_pageintegernoPage size, default 30, max 100.
statestring, one of fulltime, occasionalnoRestrict to fulltime or occasional agents.

Also retrieved by: "show me the support team", "who's available to take tickets right now", "list every rep on the helpdesk".

freshdesk.update_agent

Edit an existing Freshdesk agent's ticket scope, group membership, role, or availability. Use when the user wants to change an agent's permissions, groups, or mark them available or unavailable.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PUT /agents/{{params.agent_id}}.

Arguments:

ArgumentTypeRequiredNotes
agent_idintegeryesAgent id to edit.
availablebooleannoWhether the agent shows as available for new tickets.
group_idsarray of integernoReplaces the agent's full group membership.
occasionalbooleannoTrue for an occasional (part-time seat) agent.
role_idsarray of integernoReplaces the agent's full role set.
ticket_scopeinteger, one of 1, 2, 3no1 Global access, 2 Group access, 3 Restricted access.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
availableboolean
idinteger
updated_atstring

Also retrieved by: "change this rep's permissions", "add this teammate to another group", "mark this agent as unavailable".

freshdesk.delete_agent

Permanently remove an agent from this Freshdesk account, freeing their seat. Use when the user wants to delete, remove, or offboard a support agent. The underlying contact record is not deleted. Irreversible.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /agents/{{params.agent_id}}.

Arguments:

ArgumentTypeRequiredNotes
agent_idintegeryesAgent id to remove.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
deletedboolean

Also retrieved by: "remove this rep from the helpdesk", "offboard this support teammate", "free up this agent's seat".

freshdesk.get_current_agent

Get the profile of the connected Freshdesk agent itself: name, email, groups, and role. Use to answer "who am I" or to get the caller's own agent id for update_ticket or create_reply.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /agents/me.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
contactobject
contact.emailstring
contact.namestring
group_idsarray of integer
idinteger
role_idsarray of integer

Also retrieved by: "who am I logged in as", "what's my own agent id", "show my support rep profile".

freshdesk.create_group

Create a new Freshdesk group that tickets and agents can be assigned to. Use when the user wants to set up or add a support team or queue. Assign agents to it with update_group afterward.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /groups.

Arguments:

ArgumentTypeRequiredNotes
agent_idsarray of integernoAgent ids to add to the group.
auto_ticket_assignbooleannoAutomatically round-robin new tickets to the group's agents.
descriptionstringnoGroup description.
namestringyesGroup name, e.g. "Billing", "Tier 2".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
created_atstring
idinteger
namestring

Also retrieved by: "set up a new support queue", "start a billing team", "add a group for tier two support".

freshdesk.get_group

Get one Freshdesk group's detail by id: name, description, and its agents. Use when the user names a specific support team or queue. For the whole list use list_groups.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /groups/{{params.group_id}}.

Arguments:

ArgumentTypeRequiredNotes
group_idintegeryesGroup id.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
agent_idsarray of integer
auto_ticket_assignboolean
created_atstring
descriptionstring
idinteger
namestring

Also retrieved by: "who's on this support team", "tell me about this queue", "pull up this group's details".

freshdesk.update_group

Edit an existing Freshdesk group's name, description, or agent membership. Use when the user wants to rename a team, or add or remove agents from a group or queue.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PUT /groups/{{params.group_id}}.

Arguments:

ArgumentTypeRequiredNotes
agent_idsarray of integernoReplaces the group's full agent membership.
descriptionstringnoNew group description.
group_idintegeryesGroup id to edit.
namestringnoNew group name.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
idinteger
namestring
updated_atstring

Also retrieved by: "add someone to this support team", "rename this queue", "change who's in this group".

freshdesk.delete_group

Permanently delete a Freshdesk group. Use when the user wants to delete, remove, or disband a support team or queue. Tickets assigned to it are not deleted; they are left unassigned. Irreversible.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /groups/{{params.group_id}}.

Arguments:

ArgumentTypeRequiredNotes
group_idintegeryesGroup id to delete.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
deletedboolean

Also retrieved by: "disband this support team", "remove this queue entirely", "get rid of this group for good".

freshdesk.list_groups

List every Freshdesk group on the account. Use when the user wants to see what support teams or queues exist, or find a group's id for assigning tickets or agents.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /groups.

Takes no arguments.

Also retrieved by: "what support teams do we have", "show every queue in the helpdesk", "find the group id for billing".

freshdesk.list_canned_response_folders

List the canned response folders on this Freshdesk account. Use to find a folder_id for list_canned_responses, or to see how saved replies are organized.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /canned_response_folders.

Takes no arguments.

Also retrieved by: "what saved reply folders exist", "show me how templates are organized", "list the canned response categories".

freshdesk.list_canned_responses

List the canned responses (saved replies, templates) in one Freshdesk folder. Use when the user asks what canned responses or saved replies exist. Requires a folder_id from list_canned_response_folders.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /canned_response_folders/{{params.folder_id}}/responses.

Arguments:

ArgumentTypeRequiredNotes
folder_idintegeryesCanned response folder id, from list_canned_response_folders.

Also retrieved by: "show the saved replies in this folder", "what templates are in this category", "list the canned answers agents can use".

freshdesk.create_canned_response

Create a new canned response (saved reply, template) in Freshdesk. Use when the user wants to save, template, or add a reusable reply for agents to reuse on tickets.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /canned_responses.

Arguments:

ArgumentTypeRequiredNotes
content_htmlstringyesReply body, HTML allowed.
folder_idintegeryesFolder id to file it under, from list_canned_response_folders.
group_idsarray of integernoGroup ids that may use it, when visibility is 3.
titlestringyesCanned response title, shown in the picker.
visibilityinteger, one of 1, 2, 3no1 All agents, 2 Personal (author only), 3 Select groups.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
created_atstring
idinteger
titlestring

Also retrieved by: "save this as a template reply", "add a reusable answer for the team", "template this response for agents".

freshdesk.delete_canned_response

Permanently delete a Freshdesk canned response. Use when the user wants to delete or remove a saved reply or template. Irreversible.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /canned_responses/{{params.canned_response_id}}.

Arguments:

ArgumentTypeRequiredNotes
canned_response_idintegeryesCanned response id to delete.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
deletedboolean

Also retrieved by: "remove this saved reply", "delete a canned answer template", "get rid of this template for good".