> ## Documentation Index
> Fetch the complete documentation index at: https://docs.modulex.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Freshdesk Integration for AI Agents & Workflows

> Customer support helpdesk platform for managing tickets, contacts, agents, and knowledge base articles via the Freshdesk REST API.

{/* Self-hosted logo — build-time vendored from modulex.json / Iconify (see scripts/lib/logo.js). */}

<img src="https://mintcdn.com/modulexaillc/zKB2qsP6Q61VNLfB/logos/freshdesk.svg?fit=max&auto=format&n=zKB2qsP6Q61VNLfB&q=85&s=b0ff10ec8514d52cd284f3402ff05b38" alt="Freshdesk logo" width="72" height="72" data-path="logos/freshdesk.svg" />

## Overview

Add **Freshdesk** to any ModuleX agent or workflow. Customer support helpdesk platform for managing tickets, contacts, agents, and knowledge base articles via the Freshdesk REST API (`{domain}.freshdesk.com/api/v2`).

<Info>
  **Categories**: Customer Support · Helpdesk · Productivity & Collaboration · **Auth**: API Key · **Actions**: 45
</Info>

## Authentication

### API Key Authentication

Authenticate using your Freshdesk API key and subdomain

<Steps>
  <Step title="Step 1">
    Log in to your Freshdesk account
  </Step>

  <Step title="Step 2">
    Click your profile picture in the top right corner
  </Step>

  <Step title="Step 3">
    Go to Profile Settings
  </Step>

  <Step title="Step 4">
    Your API key is displayed on the right side of the page
  </Step>
</Steps>

#### Required Credentials

| Field             | Description                                                             | Required | Format                 |
| ----------------- | ----------------------------------------------------------------------- | -------- | ---------------------- |
| Freshdesk Domain  | Your Freshdesk subdomain (e.g. 'mycompany' for mycompany.freshdesk.com) | Yes      | `mycompany`            |
| Freshdesk API Key | Your Freshdesk API key from Profile Settings                            | Yes      | `xXxXxXxXxXxXxXxXxXxX` |

## Available Actions

<AccordionGroup>
  <Accordion title="create_ticket — Create a new support ticket in Freshdesk">
    ### Parameters

    <ResponseField name="subject" type="string" required>
      Subject of the ticket
    </ResponseField>

    <ResponseField name="description" type="string" required>
      HTML content of the ticket
    </ResponseField>

    <ResponseField name="email" type="string" required>
      Email address of the requester
    </ResponseField>

    <ResponseField name="priority" type="integer">
      Priority of the ticket: 1 (Low), 2 (Medium), 3 (High), 4 (Urgent) (Default: `1`)
    </ResponseField>

    <ResponseField name="status" type="integer">
      Status of the ticket: 2 (Open), 3 (Pending), 4 (Resolved), 5 (Closed) (Default: `2`)
    </ResponseField>

    <ResponseField name="company_id" type="integer">
      ID of the company to associate with the ticket
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "CreateTicketOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="get_ticket — Retrieve a specific ticket by its ID">
    ### Parameters

    <ResponseField name="ticket_id" type="integer" required>
      ID of the ticket to retrieve
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "GetTicketOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="update_ticket — Update an existing ticket's properties">
    ### Parameters

    <ResponseField name="ticket_id" type="integer" required>
      ID of the ticket to update
    </ResponseField>

    <ResponseField name="subject" type="string">
      New subject for the ticket
    </ResponseField>

    <ResponseField name="description" type="string">
      New HTML content for the ticket
    </ResponseField>

    <ResponseField name="priority" type="integer">
      Priority: 1 (Low), 2 (Medium), 3 (High), 4 (Urgent)
    </ResponseField>

    <ResponseField name="status" type="integer">
      Status: 2 (Open), 3 (Pending), 4 (Resolved), 5 (Closed)
    </ResponseField>

    <ResponseField name="group_id" type="integer">
      ID of the group to assign the ticket to
    </ResponseField>

    <ResponseField name="responder_id" type="integer">
      ID of the agent to assign the ticket to
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "UpdateTicketOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_all_tickets — List tickets in Freshdesk with optional filtering">
    ### Parameters

    <ResponseField name="filter" type="string">
      Predefined filter: new\_and\_my\_open, watching, spam, deleted, all\_tickets
    </ResponseField>

    <ResponseField name="requester_id" type="integer">
      Filter tickets by requester ID
    </ResponseField>

    <ResponseField name="email" type="string">
      Filter tickets by requester email
    </ResponseField>

    <ResponseField name="company_id" type="integer">
      Filter tickets by company ID
    </ResponseField>

    <ResponseField name="max_results" type="integer">
      Maximum number of results to return (Default: `100`)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "items": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Items",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListAllTicketsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="close_ticket — Close a ticket by setting its status to Closed (5)">
    ### Parameters

    <ResponseField name="ticket_id" type="integer" required>
      ID of the ticket to close
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "CloseTicketOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="add_note_to_ticket — Add a private or public note to a ticket">
    ### Parameters

    <ResponseField name="ticket_id" type="integer" required>
      ID of the ticket to add a note to
    </ResponseField>

    <ResponseField name="body" type="string" required>
      Content of the note in HTML format
    </ResponseField>

    <ResponseField name="private" type="boolean">
      Whether the note is private (true) or public (false) (Default: `true`)
    </ResponseField>

    <ResponseField name="notify_emails" type="array">
      List of email addresses to notify about this note
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "AddNoteToTicketOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="add_ticket_tags — Add tags to an existing ticket">
    ### Parameters

    <ResponseField name="ticket_id" type="integer" required>
      ID of the ticket
    </ResponseField>

    <ResponseField name="tags" type="array" required>
      List of tag names to add to the ticket
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "AddTicketTagsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="remove_ticket_tags — Remove tags from an existing ticket">
    ### Parameters

    <ResponseField name="ticket_id" type="integer" required>
      ID of the ticket
    </ResponseField>

    <ResponseField name="tags" type="array" required>
      List of tag names to remove from the ticket
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "RemoveTicketTagsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="set_ticket_tags — Replace all tags on a ticket with the specified set">
    ### Parameters

    <ResponseField name="ticket_id" type="integer" required>
      ID of the ticket
    </ResponseField>

    <ResponseField name="tags" type="array" required>
      List of tag names to set on the ticket (replaces existing tags)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "SetTicketTagsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="set_ticket_priority — Set the priority of a ticket">
    ### Parameters

    <ResponseField name="ticket_id" type="integer" required>
      ID of the ticket
    </ResponseField>

    <ResponseField name="priority" type="integer" required>
      Priority: 1 (Low), 2 (Medium), 3 (High), 4 (Urgent)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "SetTicketPriorityOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="set_ticket_status — Set the status of a ticket">
    ### Parameters

    <ResponseField name="ticket_id" type="integer" required>
      ID of the ticket
    </ResponseField>

    <ResponseField name="status" type="integer" required>
      Status: 2 (Open), 3 (Pending), 4 (Resolved), 5 (Closed)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "SetTicketStatusOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="assign_ticket_to_agent — Assign a ticket to a specific agent">
    ### Parameters

    <ResponseField name="ticket_id" type="integer" required>
      ID of the ticket
    </ResponseField>

    <ResponseField name="agent_id" type="integer" required>
      ID of the agent to assign the ticket to
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "AssignTicketToAgentOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="assign_ticket_to_group — Assign a ticket to a specific group">
    ### Parameters

    <ResponseField name="ticket_id" type="integer" required>
      ID of the ticket
    </ResponseField>

    <ResponseField name="group_id" type="integer" required>
      ID of the group to assign the ticket to
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "AssignTicketToGroupOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="create_contact — Create a new contact in Freshdesk">
    ### Parameters

    <ResponseField name="email" type="string" required>
      Email address of the contact
    </ResponseField>

    <ResponseField name="name" type="string" required>
      Name of the contact
    </ResponseField>

    <ResponseField name="phone" type="string">
      Phone number of the contact
    </ResponseField>

    <ResponseField name="company_id" type="integer">
      ID of the company to associate with the contact
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "CreateContactOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="get_contact — Retrieve a contact by their ID">
    ### Parameters

    <ResponseField name="contact_id" type="integer" required>
      ID of the contact to retrieve
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "GetContactOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="update_contact — Update an existing contact's properties">
    ### Parameters

    <ResponseField name="contact_id" type="integer" required>
      ID of the contact to update
    </ResponseField>

    <ResponseField name="name" type="string">
      Updated name of the contact
    </ResponseField>

    <ResponseField name="email" type="string">
      Updated email address
    </ResponseField>

    <ResponseField name="phone" type="string">
      Updated phone number
    </ResponseField>

    <ResponseField name="company_id" type="integer">
      ID of the company to associate with the contact
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "UpdateContactOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="create_company — Create a new company in Freshdesk">
    ### Parameters

    <ResponseField name="name" type="string" required>
      Name of the company
    </ResponseField>

    <ResponseField name="domains" type="array">
      List of domain names associated with the company (e.g. \['example.com'])
    </ResponseField>

    <ResponseField name="description" type="string">
      Description of the company
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "CreateCompanyOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="create_agent — Create a new agent in Freshdesk">
    ### Parameters

    <ResponseField name="email" type="string" required>
      Email address of the agent
    </ResponseField>

    <ResponseField name="ticket_scope" type="integer" required>
      Ticket permission: 1 (Global Access), 2 (Group Access), 3 (Restricted Access)
    </ResponseField>

    <ResponseField name="occasional" type="boolean">
      Set to true if this is an occasional agent
    </ResponseField>

    <ResponseField name="agent_type" type="integer">
      Type: 1 (Support Agent), 2 (Field Agent), 3 (Collaborator)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "CreateAgentOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="update_agent — Update an existing agent's properties">
    ### Parameters

    <ResponseField name="agent_id" type="integer" required>
      ID of the agent to update
    </ResponseField>

    <ResponseField name="email" type="string">
      Updated email address
    </ResponseField>

    <ResponseField name="ticket_scope" type="integer">
      Ticket permission: 1 (Global Access), 2 (Group Access), 3 (Restricted Access)
    </ResponseField>

    <ResponseField name="occasional" type="boolean">
      Set to true if this is an occasional agent
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "UpdateAgentOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="get_agent — Retrieve a single agent by their ID">
    ### Parameters

    <ResponseField name="agent_id" type="integer" required>
      ID of the agent to retrieve
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "GetAgentOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_agents — List all agents in Freshdesk with optional filtering">
    ### Parameters

    <ResponseField name="email" type="string">
      Filter agents by email address
    </ResponseField>

    <ResponseField name="state" type="string">
      Filter by state: fulltime, occasional
    </ResponseField>

    <ResponseField name="max_results" type="integer">
      Maximum number of results to return (Default: `100`)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "items": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Items",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListAgentsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="create_reply — Create a reply to a ticket">
    ### Parameters

    <ResponseField name="ticket_id" type="integer" required>
      ID of the ticket to reply to
    </ResponseField>

    <ResponseField name="body" type="string" required>
      Content of the reply in HTML format
    </ResponseField>

    <ResponseField name="cc_emails" type="array">
      List of email addresses to CC
    </ResponseField>

    <ResponseField name="bcc_emails" type="array">
      List of email addresses to BCC
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "CreateReplyOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="forward_ticket — Forward a ticket to an external email address">
    ### Parameters

    <ResponseField name="ticket_id" type="integer" required>
      ID of the ticket to forward
    </ResponseField>

    <ResponseField name="body" type="string" required>
      Content of the forward in HTML format
    </ResponseField>

    <ResponseField name="to_emails" type="array" required>
      List of email addresses to forward to
    </ResponseField>

    <ResponseField name="cc_emails" type="array">
      List of email addresses to CC
    </ResponseField>

    <ResponseField name="bcc_emails" type="array">
      List of email addresses to BCC
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "ForwardTicketOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="reply_to_forward — Reply to a previously forwarded ticket email">
    ### Parameters

    <ResponseField name="ticket_id" type="integer" required>
      ID of the ticket
    </ResponseField>

    <ResponseField name="body" type="string" required>
      Content of the reply in HTML format
    </ResponseField>

    <ResponseField name="to_emails" type="array" required>
      List of email addresses to reply to
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "ReplyToForwardOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="create_thread — Create a collaboration thread on a ticket">
    ### Parameters

    <ResponseField name="ticket_id" type="integer" required>
      ID of the ticket to create the thread for
    </ResponseField>

    <ResponseField name="type" type="string" required>
      Type of thread: forward, discussion
    </ResponseField>

    <ResponseField name="email_config_id" type="integer" required>
      ID of the email config to use for the thread
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "CreateThreadOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="create_message_for_thread — Create a message in a collaboration thread">
    ### Parameters

    <ResponseField name="ticket_id" type="integer" required>
      ID of the ticket
    </ResponseField>

    <ResponseField name="thread_id" type="string" required>
      ID of the thread to post the message in
    </ResponseField>

    <ResponseField name="body" type="string" required>
      Content of the message in HTML format
    </ResponseField>

    <ResponseField name="subject" type="string">
      Subject of the email
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "CreateMessageForThreadOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_ticket_conversations — List all conversations (notes, replies) for a ticket">
    ### Parameters

    <ResponseField name="ticket_id" type="integer" required>
      ID of the ticket
    </ResponseField>

    <ResponseField name="max_results" type="integer">
      Maximum number of results to return (Default: `100`)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "items": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Items",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListTicketConversationsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_ticket_fields — List all ticket fields configured in Freshdesk">
    ### Parameters

    <ResponseField name="max_results" type="integer">
      Maximum number of results to return (Default: `100`)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "items": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Items",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListTicketFieldsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="create_ticket_field — Create a new custom ticket field">
    ### Parameters

    <ResponseField name="label" type="string" required>
      Display name of the ticket field
    </ResponseField>

    <ResponseField name="label_for_customers" type="string" required>
      Label for the field as seen by customers
    </ResponseField>

    <ResponseField name="type" type="string" required>
      Field type: custom\_dropdown, custom\_checkbox, custom\_text, custom\_paragraph, custom\_number, custom\_date, custom\_decimal, custom\_url
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "CreateTicketFieldOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="update_ticket_field — Update a custom ticket field">
    ### Parameters

    <ResponseField name="ticket_field_id" type="string" required>
      ID of the ticket field to update
    </ResponseField>

    <ResponseField name="label" type="string">
      Updated display name
    </ResponseField>

    <ResponseField name="label_for_customers" type="string">
      Updated label for customers
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "UpdateTicketFieldOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="create_solution_article — Create a knowledge base article in a folder">
    ### Parameters

    <ResponseField name="folder_id" type="integer" required>
      ID of the folder to create the article in
    </ResponseField>

    <ResponseField name="title" type="string" required>
      Title of the article
    </ResponseField>

    <ResponseField name="description" type="string" required>
      HTML content of the article
    </ResponseField>

    <ResponseField name="status" type="integer" required>
      Status: 1 (Draft), 2 (Published)
    </ResponseField>

    <ResponseField name="tags" type="array">
      List of tags for the article
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "CreateSolutionArticleOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="get_solution_article — Retrieve a knowledge base article by its ID">
    ### Parameters

    <ResponseField name="article_id" type="integer" required>
      ID of the article to retrieve
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "GetSolutionArticleOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="update_solution_article — Update a knowledge base article">
    ### Parameters

    <ResponseField name="article_id" type="integer" required>
      ID of the article to update
    </ResponseField>

    <ResponseField name="title" type="string">
      Updated title
    </ResponseField>

    <ResponseField name="description" type="string">
      Updated HTML content
    </ResponseField>

    <ResponseField name="status" type="integer">
      Status: 1 (Draft), 2 (Published)
    </ResponseField>

    <ResponseField name="tags" type="array">
      Updated tags for the article
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "UpdateSolutionArticleOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="delete_solution_article — Delete a knowledge base article">
    ### Parameters

    <ResponseField name="article_id" type="integer" required>
      ID of the article to delete
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        }
      },
      "required": [
        "success"
      ],
      "title": "DeleteSolutionArticleOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="search_solution_article — Search knowledge base articles by keyword">
    ### Parameters

    <ResponseField name="term" type="string" required>
      Search keyword to find matching articles
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "items": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Items",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "SearchSolutionArticleOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_solution_categories — List all knowledge base solution categories">
    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "items": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Items",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListSolutionCategoriesOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_category_folders — List all folders within a solution category">
    ### Parameters

    <ResponseField name="category_id" type="integer" required>
      ID of the solution category
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "items": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Items",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListCategoryFoldersOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_folder_articles — List all articles within a solution folder">
    ### Parameters

    <ResponseField name="folder_id" type="integer" required>
      ID of the solution folder
    </ResponseField>

    <ResponseField name="max_results" type="integer">
      Maximum number of results to return (Default: `100`)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "items": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Items",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListFolderArticlesOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_all_folders — List all canned response folders">
    ### Parameters

    <ResponseField name="max_results" type="integer">
      Maximum number of results to return (Default: `100`)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "items": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Items",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListAllFoldersOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_folder_canned_responses — List all canned responses in a specific folder">
    ### Parameters

    <ResponseField name="canned_response_folder_id" type="integer" required>
      ID of the canned response folder
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "items": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Items",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListFolderCannedResponsesOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="get_canned_response — Retrieve a specific canned response by ID">
    ### Parameters

    <ResponseField name="canned_response_id" type="integer" required>
      ID of the canned response
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "data": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Data"
        }
      },
      "required": [
        "success"
      ],
      "title": "GetCannedResponseOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="get_folder_canned_responses — Get detailed canned responses from a folder">
    ### Parameters

    <ResponseField name="canned_response_folder_id" type="integer" required>
      ID of the canned response folder
    </ResponseField>

    <ResponseField name="max_results" type="integer">
      Maximum number of results to return (Default: `100`)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "items": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Items",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "GetFolderCannedResponsesOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_companies — List all companies in Freshdesk">
    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "items": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Items",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListCompaniesOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_email_configs — List all email configurations">
    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "items": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Items",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListEmailConfigsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_roles — List all agent roles">
    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "items": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Items",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListRolesOutput",
      "type": "object"
    }
    ```
  </Accordion>
</AccordionGroup>

## Limits & Quotas

* **Rate limits**: Freshdesk applies per-plan rate limits. Free plans: 50 calls/min. Growth and above: 200-400+ calls/min depending on plan.
* **Pagination**: List endpoints return up to 100 results per page by default.
* **Error model**: non-2xx responses are caught and returned as `success=False` + `error` rather than raising.

## Related integrations

<CardGroup cols={3}>
  <Card title="Cal.com" href="/integrations/tools/cal-com" />

  <Card title="Canva" href="/integrations/tools/canva" />

  <Card title="ConvertAPI" href="/integrations/tools/convertapi" />
</CardGroup>

## Links

* [Freshdesk](https://freshdesk.com)
