Pipory
Node reference

Freshdesk

Freshdesk node reference - all 239 operations, the credential it needs, and a worked example.

Freshdesk v2 API (Support desk). 239 operations: tickets, bulk actions, merges, forwards, archives, watchers and ticket access; conversations, replies and notes; contacts and companies with their custom fields, imports and exports; agents, groups, roles and skills; time entries; CSAT surveys and satisfaction ratings; the Solutions knowledge base; canned responses; ticket fields, sections and forms; custom objects; collaboration threads; community forums; automations and SLA policies; email mailboxes, products, business hours and account settings.

Credential: Freshdesk API key - see Credentials.

Role privileges

Each operation below lists the role privilege it needs. Role privileges are held by the AGENT whose API key the credential carries, set on that agent's role under Admin -> Team -> Roles. Freshdesk has no OAuth and no token scopes at all: the key is sent as the username half of HTTP Basic auth (base64("<key>:X")), it cannot be narrowed, and it simply IS its agent - so the blast radius is chosen by whose key you paste, not by anything on the key. Freshdesk's role editor groups privileges into Tickets, Scenario Automation, Solutions, Forums, Customers, Field Service, Analytics, Administration, General and Custom Objects, and the column below names the group each operation falls under; the entire /admin/* surface plus agents, groups, roles, skills, SLA policies, automations, email settings, ticket fields and ticket forms sits under Administration, which in practice means an Administrator or Account Administrator key. Three things a 403 here is NOT a missing privilege. First, it is very often a FEATURE GATE - Freshdesk's own error reference says a 403 can mean "the Freshdesk portal doesn't have the corresponding feature enabled", and Custom Objects, Skills, Multiple Ticket Forms, Dynamic Sections, Multiple Companies, Multiple Languages, Multiple Time Zones, Collaboration threads and Field Service are each separately enabled. Second, on Create agent and Convert contact to agent it is a SEAT: those consume a paid agent licence and fail identically when the account has none free. Third, a restricted agent gets 404 rather than 403 for a ticket outside their scope, so "not found" and "not yours" are indistinguishable - and so is a mistyped helpdesk subdomain, which 404s on every path. Two more failures are not permissions either: a 401 usually means the key was regenerated (Freshdesk's Profile Settings page shows only the current one), and a 429 is the account-wide rate limit, which is per MINUTE on current plans - 100/min on Growth, 400 on Pro, 700 on Enterprise - with tighter per-endpoint sub-limits on ticket create, ticket update and the ticket and contact lists, counting invalid requests and charging an extra credit for every include= embed.. If a run fails with a permission error, the node names the missing role privilege in the error - grant it and re-run; you do not need to rebuild the workflow.

Operations (239)

Tickets

OperationWhat it doesRole privilege
createTicketCreate ticketTickets → Create (the agent must also be able to see the group the ticket lands in)
createOutboundEmailCreate outbound email ticketTickets → Create, plus a configured support mailbox — email_config_id is mandatory
getTicketGet ticketTickets → View (an agent with Group Access or Restricted Access sees only their own scope, and Freshdesk answers 404 for a ticket outside it)
listTicketsList ticketsTickets → View
searchTicketsSearch / filter ticketsTickets → View
updateTicketUpdate ticketTickets → Edit ticket properties
deleteTicketDelete ticket (to trash)Tickets → Delete tickets
restoreTicketRestore deleted ticketTickets → Delete tickets (restore is the same privilege)
bulkUpdateTicketsBulk update ticketsTickets → Edit ticket properties (returns a job id; poll it with Get async job status)
bulkDeleteTicketsBulk delete ticketsTickets → Delete tickets (returns a job id; poll it with Get async job status)
mergeTicketsMerge ticketsTickets → Merge/split tickets
forwardTicketForward ticketTickets → Reply to tickets
listAssociatedTicketsList associated ticketsTickets → View (parent/child and tracker links need the Linked Tickets feature enabled)
getPrimeAssociationGet prime associationTickets → View
getArchivedTicketGet archived ticketTickets → View (archiving is automatic: a closed ticket inactive for 120 days moves to the archive and stops answering on the normal ticket routes)
deleteArchivedTicketDelete archived ticketTickets → Delete tickets
listArchivedTicketConversationsList archived ticket conversationsTickets → View
deleteAttachmentDelete attachmentTickets → Edit ticket properties

Ticket watchers & access

OperationWhat it doesRole privilege
listWatchersList watchersTickets → View
addWatcherAdd watcherTickets → View (the user_id must be an AGENT — a contact cannot watch a ticket)
removeWatcherRemove watcherTickets → View
bulkAddWatchersAdd watcher to many ticketsTickets → View
bulkRemoveWatchersRemove watcher from many ticketsTickets → View
getTicketUserAccessGet ticket user accessTickets → View
addTicketUserAccessGrant ticket user accessTickets → Edit ticket properties
updateTicketUserAccessUpdate ticket user accessTickets → Edit ticket properties
removeTicketUserAccessRevoke all ticket user accessTickets → Edit ticket properties

Ticket summary

OperationWhat it doesRole privilege
getTicketSummaryGet ticket summaryTickets → View
updateTicketSummaryCreate / update ticket summaryTickets → Edit ticket notes (the summary is a note, and this endpoint both creates and replaces it)
deleteTicketSummaryDelete ticket summaryTickets → Edit ticket notes

Conversations

OperationWhat it doesRole privilege
listConversationsList conversations on a ticketTickets → View
replyToTicketReply to ticketTickets → Reply to tickets
addNoteAdd noteTickets → Add notes (a note is PRIVATE by default — set Public to make it customer-visible)
replyToForwardReply to a forwardTickets → Reply to tickets
updateConversationUpdate conversationTickets → Edit ticket notes
deleteConversationDelete conversationTickets → Edit ticket notes

Contacts

OperationWhat it doesRole privilege
createContactCreate contactCustomers → Create contacts
getContactGet contactCustomers → View contacts
listContactsList contactsCustomers → View contacts
updateContactUpdate contactCustomers → Edit contacts
deleteContactDelete contact (to trash)Customers → Delete contacts
hardDeleteContactPermanently delete contactCustomers → Delete contacts. This is IRREVERSIBLE and needs force=true, which this node always sends
restoreContactRestore deleted contactCustomers → Delete contacts
autocompleteContactsAutocomplete contacts by name/emailCustomers → View contacts
searchContactsSearch / filter contactsCustomers → View contacts
mergeContactsMerge contactsCustomers → Edit contacts
makeAgentConvert contact to agentAdministration → Manage agents, and a free agent seat — this consumes one
sendContactInviteSend portal inviteCustomers → Edit contacts
exportContactsStart a contacts exportCustomers → Export contacts (admin-level; returns an export id to poll)
getContactExportGet contacts export statusCustomers → Export contacts
listContactImportsList contact importsCustomers → Create contacts
getContactImportGet contact importCustomers → Create contacts
cancelContactImportCancel contact importCustomers → Create contacts

Contact fields

OperationWhat it doesRole privilege
listContactFieldsList contact fields(any valid agent key — the field list is readable by every agent)
getContactFieldGet contact field(any valid agent key — the field list is readable by every agent)
createContactFieldCreate contact fieldAdministration → Manage customer fields
updateContactFieldUpdate contact fieldAdministration → Manage customer fields
deleteContactFieldDelete contact fieldAdministration → Manage customer fields

Companies

OperationWhat it doesRole privilege
createCompanyCreate companyCustomers → Create companies
getCompanyGet companyCustomers → View companies
listCompaniesList companiesCustomers → View companies
updateCompanyUpdate companyCustomers → Edit companies
deleteCompanyDelete companyCustomers → Delete companies
autocompleteCompaniesAutocomplete companies by nameCustomers → View companies
searchCompaniesSearch / filter companiesCustomers → View companies
exportCompaniesStart a companies exportCustomers → Export companies (admin-level; returns an export id to poll)
getCompanyExportGet companies export statusCustomers → Export companies
listCompanyImportsList company importsCustomers → Create companies
getCompanyImportGet company importCustomers → Create companies
cancelCompanyImportCancel company importCustomers → Create companies

Company fields

OperationWhat it doesRole privilege
listCompanyFieldsList company fields(any valid agent key — the field list is readable by every agent)
getCompanyFieldGet company field(any valid agent key — the field list is readable by every agent)
createCompanyFieldCreate company fieldAdministration → Manage customer fields
updateCompanyFieldUpdate company fieldAdministration → Manage customer fields
deleteCompanyFieldDelete company fieldAdministration → Manage customer fields

Agents

OperationWhat it doesRole privilege
listAgentsList agents(any valid agent key for the basic list — the full agent record needs Administration → Manage agents)
getAgentGet agent(any valid agent key for the basic record — the full record needs Administration → Manage agents)
createAgentCreate agentAdministration → Manage agents, and a free agent seat. A 403 here is usually the SEAT, not the role
updateAgentUpdate agentAdministration → Manage agents (an agent cannot change their own ticket_scope)
deleteAgentDelete agent (downgrade to contact)Administration → Manage agents. This downgrades the agent to a contact and frees the seat
getCurrentAgentGet the authenticated agent(any valid agent key — this returns the key's own agent record and is the cheapest way to test a credential)
createMultipleAgentsCreate multiple agentsAdministration → Manage agents, and enough free seats for the whole batch
autocompleteAgentsAutocomplete agents(any valid agent key)
listAgentsAvailabilityList agent availability(any valid agent key — this is List agents with only=availability, so it needs whatever that needs)
getAgentAvailabilityGet agent availabilityAdministration → Manage agents
updateAgentAvailabilityUpdate agent load settingsAdministration → Manage agents (this is the omnichannel load setting, not the online/offline toggle)

Groups

OperationWhat it doesRole privilege
createGroupCreate groupAdministration → Manage groups
getGroupGet group(any valid agent key)
listGroupsList groups(any valid agent key)
updateGroupUpdate groupAdministration → Manage groups
deleteGroupDelete groupAdministration → Manage groups
createAdminGroupCreate group (admin API)Administration → Manage groups (the admin API is the one that exposes automatic assignment and business calendars)
getAdminGroupGet group (admin API)Administration → Manage groups
listAdminGroupsList groups (admin API)Administration → Manage groups
updateAdminGroupUpdate group (admin API)Administration → Manage groups
deleteAdminGroupDelete group (admin API)Administration → Manage groups
listGroupAgentsList agents in a groupAdministration → Manage groups
updateGroupAgentsAdd / remove agents in a groupAdministration → Manage groups

Roles & skills

OperationWhat it doesRole privilege
listRolesList rolesAdministration → Manage roles
getRoleGet roleAdministration → Manage roles
listSkillsList skillsAdministration → Manage skills, and the Skills feature enabled on the plan
getSkillGet skillAdministration → Manage skills, and the Skills feature enabled on the plan
createSkillCreate skillAdministration → Manage skills, and the Skills feature enabled on the plan
updateSkillUpdate skillAdministration → Manage skills, and the Skills feature enabled on the plan
deleteSkillDelete skillAdministration → Manage skills, and the Skills feature enabled on the plan

Time entries

OperationWhat it doesRole privilege
createTimeEntryLog time on a ticketTickets → Add/edit time entries, and Time Tracking enabled on the account
listTicketTimeEntriesList a ticket's time entriesTickets → View time entries
listTimeEntriesList all time entriesTickets → View time entries
updateTimeEntryUpdate time entryTickets → Add/edit time entries
toggleTimerStart / stop timerTickets → Add/edit time entries (one agent can have only ONE timer running; starting a second stops the first)
deleteTimeEntryDelete time entryTickets → Add/edit time entries

Satisfaction & surveys

OperationWhat it doesRole privilege
listCsatSurveysList CSAT surveys(any valid agent key — this is the NEW customer-satisfaction API and needs the new CSAT surveys enabled on the account)
listSurveyResponsesList CSAT survey responses(any valid agent key — the new CSAT API; note it pages with next_token, not page/per_page)
createSurveyResponseSubmit a CSAT survey response(any valid agent key — the new CSAT API; the answers must match the survey's own question ids)
listSurveysList surveys (legacy)(any valid agent key — the LEGACY survey API, superseded by the customer-satisfaction endpoints)
listSatisfactionRatingsList satisfaction ratings (legacy)(any valid agent key — the legacy satisfaction-rating API)
listTicketSatisfactionRatingsList a ticket's satisfaction ratingsTickets → View
createSatisfactionRatingCreate a satisfaction ratingTickets → View (the rating values must be the ids configured on the account's survey)

Solutions (knowledge base)

OperationWhat it doesRole privilege
createSolutionCategoryCreate solution categorySolutions → Manage categories
getSolutionCategoryGet solution categorySolutions → View articles
listSolutionCategoriesList solution categoriesSolutions → View articles
updateSolutionCategoryUpdate solution categorySolutions → Manage categories
deleteSolutionCategoryDelete solution categorySolutions → Manage categories
createSolutionFolderCreate solution folderSolutions → Manage folders
getSolutionFolderGet solution folderSolutions → View articles
listSolutionFoldersList folders in a categorySolutions → View articles
listSolutionSubfoldersList folders in a folderSolutions → View articles (nested folders need the feature enabled on the plan)
updateSolutionFolderUpdate solution folderSolutions → Manage folders
deleteSolutionFolderDelete solution folderSolutions → Manage folders
createSolutionArticleCreate solution articleSolutions → Create articles (publishing one — status 2 — additionally needs Publish articles)
getSolutionArticleGet solution articleSolutions → View articles
listSolutionArticlesList articles in a folderSolutions → View articles
updateSolutionArticleUpdate solution articleSolutions → Edit articles (publishing one — status 2 — additionally needs Publish articles)
deleteSolutionArticleDelete solution articleSolutions → Delete articles
searchSolutionArticlesSearch solution articlesSolutions → View articles

Canned responses

OperationWhat it doesRole privilege
createCannedResponseCreate canned responseTickets → Manage canned responses
getCannedResponseGet canned responseTickets → Manage canned responses
updateCannedResponseUpdate canned responseTickets → Manage canned responses
bulkCreateCannedResponsesBulk create canned responsesTickets → Manage canned responses
createCannedResponseFolderCreate canned response folderTickets → Manage canned responses
updateCannedResponseFolderUpdate canned response folderTickets → Manage canned responses
listCannedResponseFoldersList canned response foldersTickets → Manage canned responses
getCannedResponseFolderGet canned response folderTickets → Manage canned responses
listFolderCannedResponsesList responses in a folderTickets → Manage canned responses

Ticket fields, sections & forms

OperationWhat it doesRole privilege
listTicketFieldsList ticket fields(any valid agent key — the plain /ticket_fields list is readable by every agent, which is why it is the one to use for a lookup)
listAdminTicketFieldsList ticket fields (admin API)Administration → Manage ticket fields
createTicketFieldCreate ticket fieldAdministration → Manage ticket fields
getTicketFieldGet ticket fieldAdministration → Manage ticket fields
updateTicketFieldUpdate ticket fieldAdministration → Manage ticket fields
deleteTicketFieldDelete ticket fieldAdministration → Manage ticket fields
listTicketFieldSectionsList sections of a ticket fieldAdministration → Manage ticket fields, and Dynamic Sections enabled on the plan
createTicketFieldSectionCreate sectionAdministration → Manage ticket fields, and Dynamic Sections enabled on the plan
getTicketFieldSectionGet sectionAdministration → Manage ticket fields, and Dynamic Sections enabled on the plan
updateTicketFieldSectionUpdate sectionAdministration → Manage ticket fields, and Dynamic Sections enabled on the plan
deleteTicketFieldSectionDelete sectionAdministration → Manage ticket fields, and Dynamic Sections enabled on the plan
listTicketFormsList ticket formsAdministration → Manage ticket forms, and Multiple Ticket Forms enabled on the plan
createTicketFormCreate ticket formAdministration → Manage ticket forms, and Multiple Ticket Forms enabled on the plan
getTicketFormGet ticket formAdministration → Manage ticket forms, and Multiple Ticket Forms enabled on the plan
updateTicketFormUpdate ticket formAdministration → Manage ticket forms, and Multiple Ticket Forms enabled on the plan
deleteTicketFormDelete ticket formAdministration → Manage ticket forms, and Multiple Ticket Forms enabled on the plan
cloneTicketFormClone ticket formAdministration → Manage ticket forms, and Multiple Ticket Forms enabled on the plan
getTicketFormFieldGet a ticket form's fieldAdministration → Manage ticket forms
updateTicketFormFieldUpdate a ticket form's fieldAdministration → Manage ticket forms
deleteTicketFormFieldDelete a ticket form's fieldAdministration → Manage ticket forms

Custom objects

OperationWhat it doesRole privilege
listCustomObjectSchemasList custom object schemasCustom Objects → View records, and the Custom Objects feature enabled on the plan. Schemas themselves can only be CREATED in the UI, never via the API
getCustomObjectSchemaGet custom object schemaCustom Objects → View records, and the Custom Objects feature enabled on the plan
listCustomObjectRecordsList / filter custom object recordsCustom Objects → View records (this endpoint pages with page_size and _links cursors, not page/per_page)
countCustomObjectRecordsCount custom object recordsCustom Objects → View records
createCustomObjectRecordCreate custom object recordCustom Objects → Create records
getCustomObjectRecordGet custom object recordCustom Objects → View records
updateCustomObjectRecordUpdate custom object recordCustom Objects → Update records
deleteCustomObjectRecordDelete custom object recordCustom Objects → Delete records

Collaboration threads

OperationWhat it doesRole privilege
createThreadCreate threadTickets → Add notes, and Collaboration (Threads) enabled on the account
getThreadGet threadTickets → View, and Collaboration (Threads) enabled on the account
updateThreadUpdate threadTickets → Add notes, and Collaboration (Threads) enabled on the account
deleteThreadDelete threadTickets → Edit ticket notes, and Collaboration (Threads) enabled on the account
createThreadMessagePost a message in a threadTickets → Add notes, and Collaboration (Threads) enabled on the account
getThreadMessageGet thread messageTickets → View, and Collaboration (Threads) enabled on the account
updateThreadMessageUpdate thread messageTickets → Edit ticket notes, and Collaboration (Threads) enabled on the account
deleteThreadMessageDelete thread messageTickets → Edit ticket notes, and Collaboration (Threads) enabled on the account
getThreadMessageQuoteGet a message's quoted textTickets → View, and Collaboration (Threads) enabled on the account

Discussions & forums

OperationWhat it doesRole privilege
createForumCategoryCreate forum categoryForums → Manage categories
getForumCategoryGet forum categoryForums → View forums
listForumCategoriesList forum categoriesForums → View forums
updateForumCategoryUpdate forum categoryForums → Manage categories
deleteForumCategoryDelete forum categoryForums → Manage categories
listCategoryForumsList forums in a categoryForums → View forums
createForumCreate forumForums → Manage forums
getForumGet forumForums → View forums
updateForumUpdate forumForums → Manage forums
deleteForumDelete forumForums → Manage forums
listForumTopicsList topics in a forumForums → View forums
monitorForumMonitor forumForums → View forums
unmonitorForumUnmonitor forumForums → View forums
getForumMonitorStatusGet forum monitoring statusForums → View forums
createTopicCreate topicForums → Create topics
getTopicGet topicForums → View forums
updateTopicUpdate topicForums → Moderate topics
deleteTopicDelete topicForums → Moderate topics
listTopicCommentsList comments on a topicForums → View forums
monitorTopicMonitor topicForums → View forums
unmonitorTopicUnmonitor topicForums → View forums
getTopicMonitorStatusGet topic monitoring statusForums → View forums
listMonitoredTopicsList monitored topicsForums → View forums
listParticipatedTopicsList participated topicsForums → View forums
createCommentCreate commentForums → Comment on topics
updateCommentUpdate commentForums → Moderate topics
deleteCommentDelete commentForums → Moderate topics

Automations & SLAs

OperationWhat it doesRole privilege
listScenarioAutomationsList scenario automationsTickets → Manage scenario automations. Note there is NO endpoint to RUN a scenario on a ticket — Freshdesk deliberately does not expose one, so this list is read-only
listSlaPoliciesList SLA policiesAdministration → Manage SLA policies
createSlaPolicyCreate SLA policyAdministration → Manage SLA policies, and Multiple SLA Policies enabled on the plan
updateSlaPolicyUpdate SLA policyAdministration → Manage SLA policies
listAutomationRulesList automation rulesAdministration → Manage automations (the automation type id is 1 = ticket creation, 3 = time triggers, 4 = ticket updates)
getAutomationRuleGet automation ruleAdministration → Manage automations
createAutomationRuleCreate automation ruleAdministration → Manage automations. This is also the only programmatic way to point a Freshdesk outbound webhook at a URL
updateAutomationRuleUpdate automation ruleAdministration → Manage automations
deleteAutomationRuleDelete automation ruleAdministration → Manage automations

Email, products & account

OperationWhat it doesRole privilege
listEmailConfigsList email configs (legacy)Administration → Manage email settings (this is the LEGACY route, superseded by email mailboxes)
getEmailConfigGet email config (legacy)Administration → Manage email settings
listEmailMailboxesList email mailboxesAdministration → Manage email settings
getEmailMailboxGet email mailboxAdministration → Manage email settings
createEmailMailboxCreate email mailboxAdministration → Manage email settings
updateEmailMailboxUpdate email mailboxAdministration → Manage email settings
deleteEmailMailboxDelete email mailboxAdministration → Manage email settings
getMailboxSettingsGet mailbox settingsAdministration → Manage email settings
updateMailboxSettingsUpdate mailbox settingsAdministration → Manage email settings
getAutomaticBccGet automatic BCC addressesAdministration → Manage email settings
updateAutomaticBccUpdate automatic BCC addressesAdministration → Manage email settings
listProductsList products(any valid agent key — needs Multiple Products enabled on the plan, otherwise the list is empty)
getProductGet product(any valid agent key — needs Multiple Products enabled on the plan)
listBusinessHoursList business hours(any valid agent key — needs Multiple Business Hours enabled on the plan for anything beyond the default)
getBusinessHoursGet business hours(any valid agent key)
getHelpdeskSettingsGet helpdesk settingsAdministration → Manage account settings
getAccountGet accountAdministration → Manage account settings
exportAccountStart an account exportAccount Administrator only — Freshdesk documents this endpoint as account-admin, not merely admin
getJobGet async job status(any valid agent key that could start the job — this is the poll endpoint every bulk, import and export operation hands back)

Outbound messages & activities

OperationWhat it doesRole privilege
sendOutboundMessageSend proactive WhatsApp message(no role privilege — this needs a WhatsApp Business number configured on the account and a template APPROVED BY META; an unapproved template name is rejected, not queued)
getOutboundMessageGet outbound message(any valid agent key that could send the message)
publishContactActivityPublish a contact activityCustomers → Edit contacts, and the Omnichannel activity timeline enabled on the account