---
title: Freshdesk API Integration on Truto
slug: freshdesk
category: Helpdesk
canonical: "https://truto.one/integrations/detail/freshdesk/"
---

# Freshdesk API Integration on Truto



**Category:** Helpdesk  
**Status:** Generally available

## Unified APIs

### Unified User Directory API

- **Licenses** — Licenses represent concepts like user seats in apps that support them
- **Roles** — The Role object represents a role of a User.
- **Users** — The User object represents a User.

### Unified Ticketing API

- **Accounts** — Accounts represent the companies or organizations that you are in contact with. Accounts have one or more Contacts associated with them.
- **Attachments** — Attachments are the files associated with a ticket or a comment.
- **Comments** — Comments represent the communication happening on a Ticket, both between a User and a Contact and the internal things like notes, private comments, etc. A Ticket can have one or more Comments.
- **Contacts** — Contact represent the external people you are in contact with. These could be customers, leads, etc. Contacts can be associated with an Account if the underlying product supports it.
- **Fields** — Fields represent the attributes defined for various entities in the underlying product. Depending on the underlying product, custom attributes can be defined by a User on various entities like Ticket, Contact, etc. is_user_defined attribute within Field can be used to differentiate between custom and system defined Fields.
- **Ticket Priorities** — Ticket Priorities represent the intended order in which the Tickets should be worked on. Some products provide customizing the Ticket Priorities.
- **Ticket Status** — Ticket Status represents the completion level of the Ticket. Some products provide customizing the Ticket Status.
- **Ticket Types** — Ticket Types represent the classification system used by the underlying products for Tickets. Some examples are bugs, feature, incident, etc.
- **Tickets** — Core resource which represents some work that needs to be carried out. Tickets are usually mapped to issues, tasks, work items, etc. depending on the underlying product.
- **Users** — Users represent the people using the underlying ticketing system. They are usually called agents, team members, admins, etc.

## MCP-ready AI tools

Truto exposes 161 tools for Freshdesk that AI agents can call directly.

- **list_all_freshdesk_agents** — List all agents in Freshdesk. Returns fields including id, available status, occasional status, ticket_scope, created_at, updated_at, type, contact details (email, name, active status, language, last_login_at, time_zone), and focus_mode.
- **get_single_freshdesk_agent_by_id** — Get information about a specific agent in Freshdesk using id. Returns fields including available, occasional, signature, group_ids, role_ids, skill_ids, ticket_scope, created_at, updated_at, type, contact details (active, email, job_title, language, last_login_at, mobile, name, phone, time_zone, created_at, updated_at), and focus_mode.
- **delete_a_freshdesk_agent_by_id** — Delete an agent by id in Freshdesk. Deleting an agent downgrades them into a contact. Agent's name, phone, mobile number, and job title cannot be updated via API.
- **create_a_freshdesk_agent** — Create an agent in Freshdesk with mandatory email. Returns id, available status, occasional flag, ticket_scope, signature, group_ids, role_ids, skill_ids, created_at, updated_at, available_since, type, contact details, and focus_mode.
- **update_a_freshdesk_agent_by_id** — Update an agent by id in Freshdesk. Returns fields including available, occasional, id, ticket_scope, signature, group_ids, role_ids, skill_ids, created_at, updated_at, type, and contact details such as email, language, and time_zone.
- **freshdesk_agents_mutliple_agents** — Create multiple agents in Freshdesk. Returns job_id and href for tracking the bulk creation job.
- **list_all_freshdesk_roles** — List all roles in Freshdesk. Returns id, name, description, default status, created_at, and updated_at fields for each role.
- **get_single_freshdesk_role_by_id** — Get information about a specific role by id in Freshdesk. Returns id, name, description, default status, created_at, and updated_at fields.
- **list_all_freshdesk_ticket_search** — Get a list of tickets filtered by query in Freshdesk. Requires query parameter which supports filtering by ticket fields like priority, status, group_id, type, due_by, created_at, and custom fields. Returns total count and array of tickets with fields like id, subject, status, priority, due_by, created_at, updated_at, description, and custom_fields.
- **list_all_freshdesk_tickets** — List all tickets in Freshdesk. Returns tickets with fields such as id, subject, status, priority, requester_id, created_at, updated_at, due_by, and custom_fields. By default, returns tickets created within the last 30 days.
- **get_single_freshdesk_ticket_by_id** — Get information about a specific ticket in Freshdesk by id. Returns fields including id, subject, description_text, priority, status, requester_id, company_id, created_at, updated_at, due_by, fr_due_by, association_type, and associated_tickets_list.
- **create_a_freshdesk_ticket** — Create a ticket in Freshdesk with required parameters email, status, priority, and source. Returns fields including id, subject, status, priority, requester_id, description, cc_emails, tags, attachments, created_at, and updated_at.
- **update_a_freshdesk_ticket_by_id** — Update a ticket by id in Freshdesk. Returns updated ticket fields including id, status, priority, requester_id, subject, type, description, group_id, responder_id, source, tags, custom_fields, due_by, fr_due_by, and attachments. Note: subject and description cannot be updated for outbound tickets.
- **delete_a_freshdesk_ticket_by_id** — Delete a ticket by id in Freshdesk. Deleted tickets can be restored using the Restore Ticket API. Returns HTTP 204 No Content on success.
- **freshdesk_tickets_bulk_delete** — Delete multiple tickets by providing their ids in Freshdesk. Returns a job_id and href to track the background deletion progress.
- **freshdesk_tickets_restore** — Restore a ticket by id in Freshdesk. Returns no content on success.
- **list_all_freshdesk_contacts** — List all contacts in Freshdesk. Returns fields including id, name, email, language, time_zone, created_at, updated_at, company_id, and custom_fields. Supports filtering by email, mobile, phone, company_id, state, and updated_since.
- **get_single_freshdesk_contact_by_id** — Get information about a specific contact in Freshdesk by id. Returns fields including active status, company_id, email, name, language, time_zone, created_at, updated_at, custom_fields, and avatar details.
- **create_a_freshdesk_contact** — Create a contact in Freshdesk with mandatory parameters name, email, phone, mobile, twitter_id, or unique_external_id. Returns id, name, email, company_id, view_all_tickets, other_emails, other_companies, language, time_zone, tags, avatar, created_at, and updated_at fields.
- **update_a_freshdesk_contact_by_id** — Update a contact by id in Freshdesk. Returns fields including id, name, email, job_title, language, time_zone, other_emails, other_companies, custom_fields, avatar, created_at, and updated_at. Supports updating lookup_parameter with display_id or primary_field_value.
- **delete_a_freshdesk_contact_by_id** — Permanently delete a contact by id in Freshdesk. Requires the contact to be soft deleted or use force=true to delete without soft deletion. All related tickets will also be deleted. Returns HTTP 204 on success.
- **freshdesk_contacts_soft_delete** — Soft delete a contact by id in Freshdesk. Returns no content on success.
- **freshdesk_contacts_merge** — Merge two or more duplicate contacts in Freshdesk using primary_contact_id and secondary_contact_ids. Phone, mobile, twitter_id, or unique_external_id must be provided if present in both contacts. Returns no content.
- **list_all_freshdesk_conversations** — List all conversations for a ticket in Freshdesk using id. Returns conversation details including id, body_text, created_at, user_id, and email fields.
- **update_a_freshdesk_conversation_by_id** — Update a conversation in Freshdesk using id. Returns id, body, body_text, ticket_id, user_id, notified_to, attachments, created_at, and updated_at fields.
- **delete_a_freshdesk_conversation_by_id** — Delete a specific conversation in Freshdesk using id. Returns 204 status with no content in the response.
- **freshdesk_conversations_add_reply** — Create a reply for a specific conversation in Freshdesk. Requires id. Returns id, body, body_text, user_id, from_email, cc_emails, bcc_emails, ticket_id, replied_to, attachments, created_at, and updated_at in the response.
- **freshdesk_conversations_add_note** — Create a note in Freshdesk for a specific ticket using ticket_id. Returns id, body, body_text, ticket_id, user_id, private, incoming, notified_to, attachments, created_at, and updated_at in the response.
- **freshdesk_conversations_reply_to_forward** — Create a reply to a forwarded ticket in Freshdesk. Requires id. Returns body, body_text, id, user_id, ticket_id, to_emails, support_email, from_email, created_at, updated_at, attachments, and status fields.
- **list_all_freshdesk_time_entries** — List all time entries in Freshdesk filtered by company_id, agent_id, executed_after, executed_before, or billable. Returns fields including id, agent_id, ticket_id, time_spent, billable, timer_running, created_at, updated_at, executed_at, and start_time.
- **create_a_freshdesk_time_entry** — Create a time entry for a ticket in Freshdesk using ticket id. Returns id, billable status, note, timer_running, agent_id, ticket_id, time_spent, created_at, updated_at, start_time, and executed_at fields. start_time cannot be in the future and timer_running rules apply.
- **update_a_freshdesk_time_entry_by_id** — Update a time entry by id in Freshdesk. Requires id. Note: start_time cannot be updated if timer_running is true, and must not be greater than current time. Response includes id, billable, note, timer_running, agent_id, ticket_id, time_spent, created_at, updated_at, start_time, executed_at.
- **delete_a_freshdesk_time_entry_by_id** — Delete a time entry by id in Freshdesk. Note that deleted time entries cannot be restored.
- **freshdesk_time_entries_start_stop** — Start or stop the timer for a specific time entry in Freshdesk using id. Returns id, billable status, note, timer_running state, agent_id, ticket_id, time_spent, created_at, updated_at, start_time, and executed_at fields.
- **list_all_freshdesk_account** — Get information about the account in Freshdesk. Returns organisation_id, organisation_name, account_id, account_name, account_domain, hipaa_compliant status, total_agents breakdown, timezone, data_center, tier_type, address, and contact_person details.
- **freshdesk_account_export** — Export account data in Freshdesk by specifying date_range and resources. Returns job id and link to track export status.
- **list_all_freshdesk_companies** — List all companies in Freshdesk. Returns company id, name, description, domains, creation and update timestamps, custom fields like website and address, health score, account tier, renewal date, and industry.
- **get_single_freshdesk_company_by_id** — Get information about a specific company in Freshdesk using id. Returns id, name, description, domains, custom_fields (website, address), created_at, updated_at, health_score, account_tier, and renewal_date.
- **create_a_freshdesk_company** — Create a company in Freshdesk with required parameter name. Returns id, name, description, domains, note, created_at, updated_at, health_score, account_tier, renewal_date, and industry fields in the response.
- **update_a_freshdesk_company_by_id** — Update a company by id in Freshdesk. Returns fields id, name, description, domains, note, created_at, updated_at, health_score, account_tier, renewal_date, industry, and custom_fields if updated.
- **delete_a_freshdesk_company_by_id** — Delete a company by id in Freshdesk. Deleting a company removes its association with contacts but does not delete the contacts. Once deleted, the company cannot be restored.
- **list_all_freshdesk_ticket_fields** — List all ticket fields in Freshdesk. Returns fields including id, label, name, type, description, position, required flags, choices, and nested_ticket_fields.
- **get_single_freshdesk_ticket_field_by_id** — Get information about a specific ticket field in Freshdesk by id. Returns fields including id, name, label, type, default, customers_can_edit, required_for_closure, required_for_agents, required_for_customers, displayed_to_customers, created_at, updated_at, has_section, sections, and choices.
- **create_a_freshdesk_ticket_field** — Create a new ticket field in Freshdesk with specified label, type, position, and customer edit permissions. Returns id, name, label, position, type, customers_can_edit, displayed_to_customers, required_for_closure, required_for_agents, required_for_customers, choices, dependent_fields, and section_mappings.
- **update_a_freshdesk_ticket_field_by_id** — Update a ticket field by id in Freshdesk. Returns updated fields including id, name, label, label_for_customers, position, type, customers_can_edit, required_for_closure, required_for_agents, required_for_customers, displayed_to_customers, created_at, updated_at, and choices.
- **delete_a_freshdesk_ticket_field_by_id** — Delete a ticket field by id in Freshdesk. This action is irreversible and the ticket field cannot be restored once deleted.
- **freshdesk_download_download** — Use this endpoint to download an attachment or file that was uploaded to a ticket, conversation, or other Freshdesk entity
- **list_all_freshdesk_products** — List all products in Freshdesk. Returns an array of products with fields id, name, description, created_at, and updated_at.
- **get_single_freshdesk_product_by_id** — Get information about a specific product in Freshdesk using id. Returns id, name, description, created_at, and updated_at fields.
- **list_all_freshdesk_email_mailboxes** — List all email mailboxes in Freshdesk. Supports filtering by support_email, forward_email, product_id, group_id, and active status. Returns id, name, support_email, group_id, default_reply_email, active, mailbox_type, created_at, updated_at, product_id, and mailbox details.
- **get_single_freshdesk_email_mailbox_by_id** — Get information about a specific email mailbox in Freshdesk by id. Returns id, name, support_email, group_id, default_reply_email, active status, mailbox_type, created_at, updated_at, product_id, and custom_mailbox details including access_type, incoming and outgoing mail server settings.
- **create_a_freshdesk_email_mailbox** — Create an email mailbox in Freshdesk with mandatory fields name, support_email, and mailbox_type. Returns id, name, support_email, group_id, default_reply_email, active status, mailbox_type, created_at, updated_at, product_id, and mailbox configuration details.
- **update_a_freshdesk_email_mailbox_by_id** — Update an email mailbox by id in Freshdesk. Returns id, name, support_email, group_id, default_reply_email, active status, mailbox_type, product_id, and mailbox configuration details.
- **delete_a_freshdesk_email_mailbox_by_id** — Delete an email mailbox by id in Freshdesk. This action is irreversible and emails sent to this inbox will no longer be created as tickets.
- **list_all_freshdesk_groups** — List all groups in Freshdesk. Returns fields id, name, description, business_hour_id, escalate_to, unassigned_for, auto_ticket_assign, created_at, and updated_at for each group.
- **get_single_freshdesk_group_by_id** — Get information about a specific group in Freshdesk by id. Returns id, name, description, business_hour_id, escalate_to, unassigned_for, agent_ids, auto_ticket_assign, created_at, and updated_at fields.
- **create_a_freshdesk_group** — Create a group with name, description, agent_ids, unassigned_for, escalate_to, and auto_ticket_assign in Freshdesk. Returns id, name, description, escalate_to, unassigned_for, agent_ids, auto_ticket_assign, created_at, and updated_at.
- **update_a_freshdesk_group_by_id** — Update a group by id in Freshdesk. Returns id, name, description, escalate_to user, unassigned_for time, agent_ids array, auto_ticket_assign type, created_at, and updated_at timestamps.
- **delete_a_freshdesk_group_by_id** — Delete a group by id in Freshdesk. Deleting a group disbands it but does not delete its members. Deleted groups cannot be restored.
- **get_single_freshdesk_job_by_id** — Get information about a specific job by id in Freshdesk. Returns id, name, status, created_at, updated_at, status_updated_at, and progress fields.
- **list_all_freshdesk_contacts_search** — Search contacts by name in Freshdesk using term. Returns id and name of matching contacts. Search is case insensitive and does not support substring matches.
- **list_all_freshdesk_contact_fields** — List all contact fields in Freshdesk. Returns fields including id, name, label, type, and customer editability status.
- **get_single_freshdesk_contact_field_by_id** — Get information about a specific contact field in Freshdesk by id. Returns fields including id, name, label, type, required_for_agents, required_for_customers, editable_in_signup, customers_can_edit, displayed_for_customers, choices, created_at, and updated_at.
- **create_a_freshdesk_contact_field** — Create a contact field in Freshdesk with label, label_for_customers, and type. Returns id, name, label, position, required_for_agents, type, customers_can_edit, label_for_customers, required_for_customers, displayed_for_customers, and choices if applicable.
- **update_a_freshdesk_contact_field_by_id** — Update a contact field by id in Freshdesk. Returns updated fields including id, name, label, position, editable_in_signup, required_for_agents, type, customers_can_edit, label_for_customers, required_for_customers, displayed_for_customers, created_at, updated_at, and choices.
- **delete_a_freshdesk_contact_field_by_id** — Delete a contact field by id in Freshdesk. This action is irreversible and will remove the field and all associated data across contacts.
- **list_all_freshdesk_me** — Get information about the currently authenticated agent in Freshdesk. Returns fields including id, available status, role_ids, group_ids, skill_ids, ticket_scope, created_at, updated_at, type, and contact details such as name, email, job_title, language, and time_zone.
- **list_all_freshdesk_agents_search** — Search agents by term in Freshdesk. Requires term parameter. Returns an array of agents with id, name, email, and avatar fields. Search is case insensitive and does not support substring matching.
- **list_all_freshdesk_skills** — List all skills in Freshdesk. Returns id, name, rank, created_at, updated_at, agents (agent ids), match_type, and conditions for each skill.
- **get_single_freshdesk_skill_by_id** — Get information about a specific skill by id in Freshdesk. Returns id, name, rank, created_at, updated_at, agents (list of agent ids), match_type, and conditions defining the skill.
- **create_a_freshdesk_skill** — Create a skill with name, agents, match_type, and conditions in Freshdesk. Returns id, created_at, updated_at, name, agents, match_type, conditions, and rank of the created skill.
- **update_a_freshdesk_skill_by_id** — Update a skill by id in Freshdesk. Returns id, created_at, updated_at, name, agents, match_type, conditions, and rank fields in the response.
- **delete_a_freshdesk_skill_by_id** — Delete a skill by id in Freshdesk. Returns no content on successful deletion.
- **list_all_freshdesk_admin_groups** — List all groups in Freshdesk. Returns fields including id, name, description, agent_ids, created_at, updated_at, allow_agents_to_change_availability, business_calendar_id, type, and automatic_agent_assignment details.
- **get_single_freshdesk_admin_group_by_id** — Get information about a specific admin group in Freshdesk by id. Returns id, name, description, escalate_to, unassigned_for, agent_ids, created_at, updated_at, allow_agents_to_change_availability, business_calendar_id, type, and automatic_agent_assignment details.
- **create_a_freshdesk_admin_group** — Create a group with name, description, type, unassigned_for, agent_ids, and business_calendar_id in Freshdesk. Returns id, name, description, escalate_to, unassigned_for, agent_ids, created_at, updated_at, allow_agents_to_change_availability, business_calendar_id, type, and automatic_agent_assignment settings.
- **update_a_freshdesk_admin_group_by_id** — Update a group by id in Freshdesk. Returns updated group fields including id, name, description, escalate_to, unassigned_for, agent_ids, created_at, updated_at, allow_agents_to_change_availability, business_calendar_id, type, and automatic_agent_assignment settings.
- **delete_a_freshdesk_admin_group_by_id** — Delete a group by id in Freshdesk. Deleting a group removes all related information and unmapped agents. Deleted groups cannot be restored.
- **list_all_freshdesk_company_fields** — List all company fields in Freshdesk. Returns fields including id, name, label, position, required_for_agents, type, default, created_at, updated_at, and choices for applicable fields.
- **get_single_freshdesk_company_field_by_id** — Get details of a specific company field in Freshdesk by id. Returns id, name, label, position, required_for_agents, type, default, created_at, updated_at, and choices with their id, label, value, and position.
- **create_a_freshdesk_company_field** — Create a new company field in Freshdesk with label and type. Returns id, name, label, position, required_for_agents, type, default, created_at, updated_at, and choices if applicable.
- **update_a_freshdesk_company_field_by_id** — Update a company field by id in Freshdesk. Returns id, name, label, position, required_for_agents, type, default, created_at, updated_at, and choices which include id, label, value, and position.
- **delete_a_freshdesk_company_field_by_id** — Delete a company field by id in Freshdesk. This action is irreversible and will permanently remove the field and its data across all companies.
- **list_all_freshdesk_surveys** — List all surveys in Freshdesk. Returns survey id, title, questions with id, label, accepted_ratings, created_at, and updated_at fields. Use state filter to view specific surveys.
- **list_all_freshdesk_satisfaction_ratings** — Get a list of satisfaction ratings in Freshdesk filtered by created_since or user_id. Returns id, survey_id, user_id, agent_id, feedback, ticket_id, ratings, created_at, and updated_at fields.
- **create_a_freshdesk_satisfaction_rating** — Create a satisfaction rating for a ticket in Freshdesk using ticket_id. Returns id, survey_id, user_id, agent_id, feedback, ticket_id, ratings, created_at, and updated_at fields.
- **list_all_freshdesk_email_configs** — List all email configs in Freshdesk. Returns id, name, to_email, reply_email, group_id, primary_role, active, created_at, and updated_at fields for each email config.
- **get_single_freshdesk_email_config_by_id** — Get information about a specific email config by id in Freshdesk. Returns id, name, to_email, reply_email, primary_role, active, created_at, and updated_at fields.
- **list_all_freshdesk_mailbox_settings** — Get mailbox settings in Freshdesk. Returns personalized_email_replies, create_requester_using_reply_to, allow_agent_to_initiate_conversation, and original_sender_as_requester_for_forward fields.
- **update_a_freshdesk_mailbox_setting_by_id** — Update mailbox settings in Freshdesk. Requires boolean parameters personalized_email_replies, create_requester_using_reply_to, allow_agent_to_initiate_conversation, and original_sender_as_requester_for_forward. Returns updated settings with these fields.
- **list_all_freshdesk_automatic_bcc_emails** — Get the list of automatic Bcc emails in Freshdesk. Returns the emails array containing the Bcc email addresses.
- **update_a_freshdesk_automatic_bcc_email_by_id** — Update Automatic Bcc emails with emails array in Freshdesk. The emails array will be included automatically in the Bcc field for all ticket communications. The array has a limit of 255 characters. Returns the updated emails array.
- **list_all_freshdesk_business_hours** — List all business hours in Freshdesk. Returns id, name, description, time_zone, is_default, business_hours (daily start_time and end_time), created_at, and updated_at for each business hour.
- **get_single_freshdesk_business_hour_by_id** — Get details of a specific business hour by id in Freshdesk. Returns id, name, description, time_zone, is_default, business_hours for each weekday, created_at, and updated_at.
- **list_all_freshdesk_scenario_automations** — List all scenario automations in Freshdesk. Returns an array of scenario automations with fields id, name, description, actions, private, created_at, and updated_at.
- **list_all_freshdesk_sla_policies** — List all SLA policies in Freshdesk. Returns id, name, description, active status, default flag, position, SLA targets, applicable entities, escalation details, created_at, and updated_at fields.
- **create_a_freshdesk_sla_policy** — Create an SLA policy in Freshdesk with required parameters name, sla_target, and applicable_to. Returns id, name, description, active status, is_default flag, position, sla_target details, applicable_to conditions, escalation settings, created_at, and updated_at timestamps.
- **update_a_freshdesk_sla_policy_by_id** — Update an SLA Policy by id in Freshdesk. Returns updated fields including id, name, description, active status, default flag, position, sla_target with priority response and resolution times, applicable_to conditions, escalation details, created_at, and updated_at timestamps.
- **list_all_freshdesk_automation_rules** — List all automation rules for a specified automation_type_id in Freshdesk. Returns fields including id, name, active status, automation_type_id, performer, events, conditions, actions, outdated status, last_updated_by, affected_tickets_count, created_at, and updated_at.
- **get_single_freshdesk_automation_rule_by_id** — Get details of an automation rule by automation_type_id and id in Freshdesk. Returns fields including name, position, active status, performer, events, conditions, actions, outdated status, last_updated_by, affected_tickets_count, summary, created_at, and updated_at.
- **create_a_freshdesk_automation_rule** — Create an automation rule with automation_type_id in Freshdesk. Requires name, conditions, and actions. Returns rule details including id, name, active status, performer, events, conditions, actions, created_at, and updated_at.
- **update_a_freshdesk_automation_rule_by_id** — Update an Automation Rule by automation_type_id and id in Freshdesk. Returns fields including name, position, active status, last_updated_by, summary of performer, events, conditions, actions, created_at, updated_at, and meta counts.
- **delete_a_freshdesk_automation_rule_by_id** — Delete an automation rule by automation_type_id and id in Freshdesk. Returns no content on success.
- **list_all_freshdesk_helpdesk_settings** — Get helpdesk settings in Freshdesk. Returns primary_language, supported_languages, and portal_languages fields.
- **get_single_freshdesk_thread_by_id** — Get a thread by id in Freshdesk. Returns id, type, title, created_by, parent (id and type), anchor (id and type), participants (emails and agents), linked_object (id, type, attributes, links), created_at, updated_at, additional_info, is_read, and updated_by fields.
- **create_a_freshdesk_thread** — Create a thread in Freshdesk. Returns id, type, created_by, parent (id and type), participants (agents), linked_object (id, type, attributes), created_at, updated_at, additional_info, is_read, and updated_by fields.
- **update_a_freshdesk_thread_by_id** — Update a thread by id in Freshdesk. Returns the updated thread's title and linked_object details including id, attributes, and links.
- **delete_a_freshdesk_thread_by_id** — Delete a thread by id in Freshdesk. This action is irreversible and the thread cannot be restored once deleted.
- **get_single_freshdesk_thread_message_by_id** — Get message for thread by id in Freshdesk. Returns fields id, body, body_text, thread_id, created_by, created_at, updated_at, attachment_ids, participants, edited, source, and additional_info.
- **create_a_freshdesk_thread_message** — Create message for thread in Freshdesk with thread_id. Returns id, body, body_text, thread_id, created_by, created_at, updated_at, attachment_ids, participants, edited, source, additional_info, full_message, and full_message_text.
- **update_a_freshdesk_thread_message_by_id** — Update message for thread in Freshdesk using id. Returns updated body, attachment_ids, inline_attachment_ids, and additional_info including notification and email failure details.
- **delete_a_freshdesk_thread_message_by_id** — Delete message for thread in Freshdesk by id. This action is irreversible and the message cannot be restored once deleted.
- **get_single_freshdesk_service_group_by_id** — Get information about a specific service group in Freshdesk by id. Returns id, name, description, escalate_to, unassigned_for, business_hour_id, auto_ticket_assign, group_type, created_at, updated_at, and agent_ids.
- **create_a_freshdesk_service_group** — Create a service group with name, description, agent_ids, and group_type set to 'field_agent_group' in Freshdesk. Returns id, name, description, agent_ids, group_type, created_at, and updated_at.
- **update_a_freshdesk_service_group_by_id** — Update a service group by id in Freshdesk. Returns id, name, description, escalate_to, unassigned_for, business_hour_id, agent_ids, group_type, auto_ticket_assign, created_at, and updated_at fields in the response.
- **delete_a_freshdesk_service_group_by_id** — Delete a service group by id in Freshdesk. Returns no content on successful deletion.
- **create_a_freshdesk_service_task** — Create a Service Task with type 'Service Task' in Freshdesk. Include mandatory custom fields cf_fsm_contact_name, cf_fsm_phone_number, cf_fsm_service_location. Optional parent_id associates task to a parent ticket. Response returns id, subject, status, priority, requester_id, description, custom_fields, created_at, updated_at, and associated_tickets_list.
- **get_single_freshdesk_service_task_by_id** — Get details of a specific service task in Freshdesk by id. Returns fields including id, subject, description, status, priority, requester_id, type, created_at, updated_at, and custom_fields with service task specifics.
- **update_a_freshdesk_service_task_by_id** — Update a service task by id in Freshdesk. Returns fields including id, subject, description, priority, status, requester_id, created_at, updated_at, and custom_fields.
- **delete_a_freshdesk_service_task_by_id** — Delete a service task by id in Freshdesk. Returns HTTP 204 No Content on success.
- **get_single_freshdesk_canned_response_by_id** — Get a canned response by id in Freshdesk. Returns id, title, folder_id, content, content_html, attachments, created_at, and updated_at fields.
- **create_a_freshdesk_canned_response** — Create a canned response in Freshdesk with mandatory parameters title, content_html, folder_id, and visibility. Returns id, title, folder_id, content, content_html, attachments, created_at, and updated_at fields.
- **update_a_freshdesk_canned_response_by_id** — Update a canned response by id in Freshdesk. Returns id, title, folder_id, content, content_html, attachments, created_at, and updated_at fields in the response.
- **list_all_freshdesk_canned_response** — Get details of all canned-response resources in a specific folder in Freshdesk. Requires folder_id. Returns id, title, folder_id, content, content_html, attachments, created_at, and updated_at fields in the response.
- **list_all_freshdesk_canned_response_folders** — List all canned response folders in Freshdesk. Returns id, name, personal flag, responses_count, created_at, and updated_at for each folder.
- **create_a_freshdesk_canned_response_folder** — Create a canned-response folder in Freshdesk. Requires the name parameter. Returns id and name of the created folder in the response.
- **update_a_freshdesk_canned_response_folder_by_id** — Update a canned response by id in Freshdesk. Returns id, title, folder_id, content, content_html, attachments, created_at, and updated_at fields in the response.
- **get_single_freshdesk_canned_response_folder_by_id** — Get all canned responses in a specific folder in Freshdesk. Requires id. The response includes id, name, canned_responses (with id and title), created_at, and updated_at fields.
- **list_all_freshdesk_custom_objects** — Get all existing Custom Object schemas in Freshdesk. Returns fields including name, prefix, version, id, created_time, updated_time, and detailed field attributes such as id, name, label, type, required, editable, visible, filterable, and searchable.
- **get_single_freshdesk_custom_object_by_id** — Get a specific Custom Object schema in Freshdesk by id. Returns schema name, prefix, version, created_time, updated_time, and fields with attributes like id, name, label, type, required, editable, visible, filterable, and searchable.
- **list_all_freshdesk_companies_search** — Search companies by name in Freshdesk. Requires name parameter. Returns companies array with id and name fields. Search is case insensitive and does not support substring matching.
- **list_all_freshdesk_ticket_forms** — List all ticket forms in Freshdesk. Returns id, title, default status, description, portals, and last_updated_by fields for each ticket form.
- **create_a_freshdesk_ticket_form** — Create a new ticket form in Freshdesk with mandatory fields requester and company. Returns id, name, title, description, fields with details such as id, name, label, type, and customer edit permissions.
- **get_single_freshdesk_ticket_form_by_id** — Get information about a specific ticket form in Freshdesk by id. Returns fields including id, name, title, default status, description, created_at, updated_at, last_updated_by, portals, and fields with details about each field's id, name, label, type, and customer visibility.
- **update_a_freshdesk_ticket_form_by_id** — Update a ticket form by id in Freshdesk. Requires title and fields parameters. Returns id, name, title, description, default status, timestamps, last_updated_by, portals, and fields with detailed attributes.
- **delete_a_freshdesk_ticket_form_by_id** — Delete a ticket form by id in Freshdesk. This action is irreversible and the ticket form cannot be restored after deletion.
- **freshdesk_ticket_forms_clone** — Clone a ticket form by id in Freshdesk. Returns the cloned ticket form's id, name, title, default status, description, creation and update timestamps, last_updated_by user, portals, and fields with details such as id, name, label, position, type, default status, customer editability, required flags, display status, timestamps, archived status, and portal CC settings.
- **get_single_freshdesk_ticket_form_field_by_id** — Get a specific ticket form field by form_id and id in Freshdesk. Returns id, name, label, type, required flags, display settings, and timestamps.
- **update_a_freshdesk_ticket_form_field_by_id** — Update a ticket form field with id and field_id in Freshdesk. Returns updated field details including id, label_for_customers, customers_can_edit, required_for_customers, hint_for_customers, placeholder_for_customers, and position.
- **delete_a_freshdesk_ticket_form_field_by_id** — Delete a field from a ticket form in Freshdesk using form id and field id. Returns no content on success.
- **list_all_freshdesk_ticket_time_entries** — List all time entries for a ticket in Freshdesk. Requires ticket id. Returns fields including id, agent_id, ticket_id, time_spent, billable, timer_running, created_at, updated_at, executed_at, and start_time.
- **list_all_freshdesk_ticket_satisfaction_ratings** — List all satisfaction ratings of a ticket in Freshdesk. Requires ticket id. Returns id, survey_id, user_id, agent_id, feedback, ticket_id, ratings, created_at, and updated_at fields for each rating.
- **list_all_freshdesk_ticket_summary** — Get summary of a ticket in Freshdesk by id. Returns fields: body (HTML summary), body_text (plain text summary), id, user_id, ticket_id, created_at, updated_at, attachments, last_edited_at, last_edited_user_id, and cloud_files.
- **update_a_freshdesk_ticket_summary_by_id** — Update summary note for a ticket in Freshdesk using id. Returns body (HTML content), body_text (plain text), id, user_id, ticket_id, created_at, updated_at, attachments, last_edited_at, and last_edited_user_id.
- **delete_a_freshdesk_ticket_summary_by_id** — Delete summary of a ticket in Freshdesk using id. Returns HTTP 204 No Content on success.
- **list_all_freshdesk_solution_folders** — List all solution folders in a specific category in Freshdesk. Requires category_id. Returns id, name, description, parent_folder_id, hierarchy, articles_count, sub_folders_count, visibility, created_at, updated_at, and company_ids for each folder.
- **get_single_freshdesk_solution_folder_by_id** — Get details about a specific solution-folder in Freshdesk by id. Returns id, name, description, parent_folder_id, hierarchy, articles_count, sub_folders_count, visibility, category_id, created_at, and updated_at fields in the response.
- **create_a_freshdesk_solution_folder** — Create a solution folder in Freshdesk. Requires id (category_id). Returns id, name, description, parent_folder_id, hierarchy, articles_count, sub_folders_count, visibility, category_id, created_at, and updated_at fields in the response.
- **update_a_freshdesk_solution_folder_by_id** — Update a solution folder in Freshdesk. Requires id. Returns id, name, description, parent_folder_id, hierarchy, articles_count, sub_folders_count, visibility, category_id, created_at, updated_at, and company_ids in the response.
- **delete_a_freshdesk_solution_folder_by_id** — Delete solution-folder in Freshdesk by id. When deleted, all translated versions will be deleted too. Returns HTTP 204 No Content on success.
- **list_all_freshdesk_solution_articles** — List all solution-articles in a specific folder in Freshdesk. Requires id. Returns fields such as id, category_id, folder_id, hierarchy, title, status, agent_id, created_at, updated_at, and SEO data for each solution-article.
- **get_single_freshdesk_solution_article_by_id** — Get details of a specific solution article in Freshdesk by id. Returns id, type, category_id, folder_id, hierarchy, thumbs_up, thumbs_down, hits, tags, seo_data, agent_id, title, description, description_text, status, created_at, and updated_at.
- **create_a_freshdesk_solution_article** — Create a solution article in Freshdesk under a specific folder using id. Returns id, title, description, description_text, status, agent_id, type, category_id, folder_id, hierarchy, thumbs_up, thumbs_down, hits, tags, seo_data, created_at, and updated_at.
- **update_a_freshdesk_solution_article_by_id** — Update a solution article in Freshdesk. Requires id. Returns fields such as id, type, category_id, folder_id, hierarchy, thumbs_up, thumbs_down, hits, tags, seo_data, agent_id, title, description, description_text, status, created_at, and updated_at.
- **delete_a_freshdesk_solution_article_by_id** — Delete a solution-article in Freshdesk by id. All translated versions will be deleted as well. No content is returned in the response.
- **list_all_freshdesk_solution_articles_search** — Search solution articles in Freshdesk using term. Returns id, title, description, category_id, folder_id, hierarchy, agent_id, language_id, status, created_at, updated_at, and visibility fields for each article.
- **create_a_freshdesk_solution_category** — Create a solution category with name and description in Freshdesk. Returns id, name, description, created_at, and updated_at fields.
- **update_a_freshdesk_solution_category_by_id** — Update a solution category by id in Freshdesk. Returns id, name, description, created_at, and updated_at fields in the response.
- **get_single_freshdesk_solution_category_by_id** — Get information about a specific solution category by id in Freshdesk. Returns id, name, description, created_at, and updated_at fields.
- **list_all_freshdesk_solution_categories** — List all solution categories in Freshdesk. Returns id, name, description, created_at, and updated_at fields for each category.
- **delete_a_freshdesk_solution_category_by_id** — Delete a solution category by id in Freshdesk. Note that all translated versions will be deleted as well. Returns no content on success.

## How it works

1. **Link your customer's Freshdesk account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Freshdesk.** The Proxy API is a 1-to-1 mapping of the Freshdesk API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **AI support bot that deflects tickets using your customers' Freshdesk knowledge base** — Ingest your end users' Freshdesk solution articles and categories to power a RAG-based chatbot. When the bot can't resolve an issue, it creates a ticket and attaches the conversation transcript as a private note so the human agent picks up with full context.
- **Bi-directional ticket sync between your product and Freshdesk** — SaaS platforms offering internal issue tracking or project management can sync tickets, statuses, and comments with their customers' Freshdesk instances — keeping support and product teams aligned without manual copy-paste between systems.
- **Billable time extraction for MSP invoicing and PSA tools** — Professional services and billing platforms can pull billable time entries from Freshdesk, grouped by company, to auto-generate accurate client invoices based on the exact support hours agents tracked.
- **CRM-to-Freshdesk contact and company sync for revenue operations** — RevOps and CRM platforms can keep contacts, companies, and custom fields like health scores or account tiers in sync with Freshdesk, including merging duplicate contacts so ticket histories stay clean across both systems.
- **Field service dispatch from external scheduling software** — Workforce management and logistics platforms can create service tasks and service groups in Freshdesk when appointments are booked, routing field workers with the correct location and contact details already populated.

## What you can build

- **Two-way ticket lifecycle sync** — Create, update, and resolve Freshdesk tickets from your product and push status changes back, using the Unified Ticketing API to support Freshdesk alongside other helpdesks with a single codebase.
- **Private note injection for internal collaboration** — Append private notes to Freshdesk tickets from Slack, Teams, or your own app so internal discussions are captured without notifying the end customer.
- **Knowledge base ingestion pipeline** — Sync Freshdesk solution categories, folders, and articles into your product to power search, AI training, or external documentation portals.
- **Agent and group directory sync** — Pull Freshdesk agents, groups, roles, and skills into your user management layer using the Unified User Directory API to map support org structures and automate assignment logic.
- **Custom field and ticket form management** — Read and write custom ticket fields, contact fields, and company fields so your product can dynamically adapt forms and data models to each customer's Freshdesk configuration.
- **Automated ticket summarization** — Generate and push AI-created summaries to Freshdesk ticket summary fields, giving agents an instant tl;dr of long conversation threads without leaving their helpdesk.

## FAQs

### What authentication method does Freshdesk use through Truto?

Freshdesk supports API key-based authentication. Your end users provide their Freshdesk subdomain and an API key (found in their Freshdesk profile settings). Truto securely stores and manages these credentials so you never handle raw keys in your codebase.

### Does the integration support custom fields on tickets, contacts, and companies?

Yes. You can list, create, update, and delete custom fields for tickets, contacts, and companies using dedicated endpoints like list_all_freshdesk_ticket_fields, create_a_freshdesk_contact_field, and update_a_freshdesk_company_field_by_id. Custom field values are also readable and writable on the parent objects.

### How does Truto handle Freshdesk's API rate limits?

Freshdesk enforces per-minute rate limits that vary by plan. Truto handles pagination and respects rate limit headers automatically, so you don't need to build retry logic or backoff strategies yourself.

### Can I search for tickets, contacts, and companies rather than listing everything?

Yes. Freshdesk exposes dedicated search endpoints and Truto supports them: list_all_freshdesk_ticket_search, list_all_freshdesk_contacts_search, and list_all_freshdesk_companies_search let you query by specific field values without pulling entire collections.

### Which Truto Unified APIs map to Freshdesk?

Freshdesk is covered by both the Unified Ticketing API (Tickets, Contacts, Comments, Attachments, Fields, Ticket Priorities, Ticket Status, Ticket Types, Accounts, Users) and the Unified User Directory API (Users, Roles, Licenses). This means you can write once and support other helpdesks without code changes.

### Can I manage Freshdesk conversations — replies, notes, and forwards — through the integration?

Yes. You can add public replies, private notes, and reply-to-forward messages on any ticket using freshdesk_conversations_add_reply, freshdesk_conversations_add_note, and freshdesk_conversations_reply_to_forward. Existing conversations can also be updated or deleted.

## Related reading

- [How to Integrate with the Freshdesk API: 2026 Engineering Guide](https://truto.one/blog/how-to-integrate-with-the-freshdesk-api-2026-engineering-guide/) — A hands-on engineering guide to integrating the Freshdesk API — covering authentication, pagination quirks, per-minute rate limits by plan, custom field gotchas, and where the real time sinks are.
