Skip to main content

Freshdesk

Freshdesk is a cloud-based customer support platform developed by Freshworks that helps businesses manage customer interactions across multiple channels including email, phone, live chat, social media, and community forums. Its intuitive ticketing system organizes support requests, automates ticket assignment and prioritization, and provides agents with a unified workspace to resolve customer issues efficiently. Freshdesk offers robust reporting, SLA management, and AI-powered automation to help support teams scale operations without sacrificing quality. The Freshdesk API (v2) enables programmatic access to tickets, contacts, companies, agents, conversations, and more, making it straightforward to integrate Freshdesk data into analytics pipelines, data warehouses, and third-party systems.

Freshdesk icon

Power end-to-end data operations for your Freshdesk API with Nexla. Our bi-directional Freshdesk connector is purpose-built for Freshdesk, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Freshdesk or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Freshdesk workflows fast, secure, and fully governed.

Features

Type: API

SourceDestination

  • Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
  • Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
  • API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
  • Request optimization with intelligent batching, retry, and caching to minimize API calls and costs

Prerequisites

Freshdesk authenticates API requests using HTTP Basic Auth, where your personal API key serves as the username. Before creating a Freshdesk credential in Nexla, gather the following:

  • A Freshdesk account on the Growth plan or higher (API access is not available on the free Sprout plan).

  • Your Freshdesk subdomain. This is the prefix in your Freshdesk account URL — for example, if you access Freshdesk at https://acme.freshdesk.com, your subdomain is acme.

Locate Your Freshdesk API Key

Each agent on a Freshdesk account has a unique personal API key. To find yours:

  1. Log in to your Freshdesk account at https://yourdomain.freshdesk.com.

  2. Click your profile picture or avatar in the upper-right corner of the page to open the account menu.

  3. Select Profile Settings from the dropdown menu.

  4. On the Profile Settings page, locate the Your API Key section in the right-hand panel.

  5. Click View API Key and complete the CAPTCHA verification when prompted.

  6. Copy the displayed API key. Store it in a secure location such as a password manager, because Freshdesk does not display the key again without re-authenticating.

Each Freshdesk agent has their own unique API key. The key inherits the permissions of the agent whose profile it belongs to. For Nexla integrations that need to read or write across all tickets and contacts, use the API key of an account administrator.

Important

Resetting your Freshdesk API key immediately revokes access for all applications currently using that key, including any existing Nexla integrations. Rotate keys only when necessary, and update all dependent credentials promptly.

For additional details, see the Freshdesk API key documentation.

Authenticate

Credentials required

Freshdesk uses HTTP Basic Auth. Your API key is provided as the username, and any non-empty string is used as the password — Freshdesk ignores the password value entirely when API key authentication is used.

FieldRequiredSecretDescription
Freshdesk subdomain (https://<subdomain>.freshdesk.com)YesNoYour Freshdesk subdomain (https://<subdomain>.freshdesk.com).
API KeyYesNoYour personal account API key value.

Create a credential in Nexla

  1. After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.

  2. Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.

  3. Enter your Freshdesk subdomain in the Domain field. This is the portion of your Freshdesk account URL that precedes .freshdesk.com — for example, enter acme for an account URL of https://acme.freshdesk.com.

    Nexla uses your subdomain to construct the Freshdesk API base URL in the format https://{'{domain}'}.freshdesk.com/api/v2. Entering the full URL instead of just the subdomain will cause connection failures.

  4. Enter your Freshdesk API key in the API Key field. This is the key you retrieved from your Freshdesk Profile Settings page. The API key authenticates all requests Nexla makes to the Freshdesk API on your behalf.

  5. Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation and can be selected for use with a new data source or destination.

Use as a data source

To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Freshdesk connector tile, then select the credential that will be used to connect to the Freshdesk instance, and click Next; or, create a new Freshdesk credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Freshdesk endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below. Click on an endpoint to see more information about it and how to configure your data source for this endpoint.

List Canned Responses

Returns a list of canned responses from a specific canned response folder. Use this endpoint to export saved reply templates for documentation, analysis, or synchronization with other support tools.

  • Sends a GET request to the Freshdesk canned response folders endpoint for the specified folder; returns canned response records as an array at $[*].
  • Each record includes the canned response title, content, and associated folder.
  • Configure the following parameters: Domain — your Freshdesk subdomain (e.g., yourcompany from yourcompany.freshdesk.com). Folder ID — the ID of the canned response folder from which to retrieve responses.

Use the Freshdesk API to list all canned response folders first if you do not know the Folder ID. Canned response folders organize saved replies by team or topic.

List Companies

Returns a list of all companies (accounts) in the Freshdesk account. Use this endpoint to retrieve company records for CRM synchronization, account-based reporting, or contact enrichment.

  • Sends a GET request to /api/v2/companies; returns company records as an array at $[*].
  • Each record includes the company name, domains, description, and any custom company fields configured in your Freshdesk account.

Results are paginated — up to 100 records are returned per page. Use the page query parameter to retrieve additional pages. Freshdesk enforces API rate limits that vary by plan.

List Conversations

Returns a list of conversations (replies and notes) for a specific ticket. Use this endpoint to retrieve the full conversation thread for individual support tickets.

  • Sends a GET request to the Freshdesk conversations endpoint for the specified ticket; returns conversation records as an array at $[*].
  • Each record includes the conversation body, author, type (reply or note), and timestamps.
  • Configure the following parameter: Ticket ID — the numeric ID of the Freshdesk ticket whose conversations should be retrieved.

Use the List Tickets endpoint to obtain ticket IDs. Consider using a Nexla lookup macro to dynamically supply ticket IDs for bulk conversation retrieval across multiple tickets.

List Contacts

Returns a list of all contacts in the Freshdesk account. Use this endpoint to retrieve customer contact records for CRM synchronization, reporting, or marketing list management.

  • Sends a GET request to /api/v2/contacts; returns contact records as an array at $[*].
  • Each record includes the contact's name, email, phone, company association, and any custom contact fields.

Results are paginated — up to 100 records per page. Use the updated_since filter parameter combined with Nexla date/time macros to perform incremental ingestion of recently updated contacts.

List Discussion Comments

Returns a list of comments for a specific discussion topic in the Freshdesk community forum. Use this endpoint to export community discussion content for analysis or moderation workflows.

  • Sends a GET request to the Freshdesk discussion comments endpoint for the specified topic; returns comment records as an array at $[*].
  • Each record includes the comment body, author, and timestamps.
  • Configure the following parameter: Topic ID — the ID of the discussion topic whose comments should be retrieved.

Use the List Discussion Topics endpoint to obtain the topic IDs needed for this endpoint.

List Discussion Forums

Returns a list of forums within a specific discussion category. Use this endpoint to retrieve forum structure data for community portal analysis or content synchronization.

  • Sends a GET request to the Freshdesk discussion forums endpoint for the specified category; returns forum records as an array at $[*].
  • Each record includes the forum name, description, topic count, and visibility settings.
  • Configure the following parameter: Category ID — the ID of the discussion category whose forums should be listed.

Discussion category IDs can be retrieved via the Freshdesk API discussion categories endpoint. Forums contain topics, and topics contain comments — retrieve the full hierarchy using this endpoint in conjunction with List Discussion Topics and List Discussion Comments.

List Discussion Topics

Retrieves a list of discussion topics from a specific forum. Use this endpoint to export community forum topics for content analysis, moderation, or knowledge base management.

  • Sends a GET request to the Freshdesk discussion topics endpoint for the specified forum; returns topic records as an array at $[*].
  • Each record includes the topic title, body, author, reply count, and timestamps.
  • Configure the following parameter: Forum ID — the ID of the forum whose topics should be retrieved.

Use the List Discussion Forums endpoint to obtain the forum IDs needed for this endpoint. Topic IDs from this endpoint can be used with the List Discussion Comments endpoint to retrieve all comments for each topic.

List Groups

Retrieves a list of all agent groups in the Freshdesk helpdesk. Use this endpoint to retrieve group configurations for routing analysis, reporting, or synchronization with workforce management tools.

  • Sends a GET request to /api/v2/groups; returns group records as an array at $[*].
  • Each record includes the group name, description, associated agents, and escalation settings.

Group IDs from this endpoint can be used to filter the List Tickets endpoint by assigned group.

List Solution Articles

Returns a list of knowledge base articles within a specific solution folder. Use this endpoint to export help center content for analysis, translation, or synchronization with external knowledge management systems.

  • Sends a GET request to the Freshdesk solution articles endpoint for the specified folder; returns article records as an array at $[*].
  • Each record includes the article title, body, status, author, and view/like counts.
  • Configure the following parameter: Folder ID — the ID of the solution folder whose articles should be retrieved.

Use the List Solution Folders endpoint to obtain the folder IDs needed for this endpoint. Solution article IDs and content can be used to build searchable knowledge base exports or automated content review workflows.

List Solution Folders

Returns a list of solution folders within a specific solution category. Use this endpoint to retrieve the knowledge base folder structure and obtain folder IDs for fetching articles.

  • Sends a GET request to the Freshdesk solution folders endpoint for the specified category; returns folder records as an array at $[*].
  • Each record includes the folder name, visibility settings, and article count.
  • Configure the following parameter: Category ID — the ID of the solution category whose folders should be listed.

Solution categories can be retrieved via the Freshdesk API solution categories endpoint. Use folder IDs from this endpoint with the List Solution Articles endpoint to retrieve all articles within each folder.

List Tickets

Returns a list of all tickets in the Freshdesk account. Use this endpoint as the primary source for support ticket analytics, reporting, and synchronization with CRM or data warehouse systems.

  • Sends a GET request to /api/v2/tickets; returns ticket records as an array at $[*].
  • Each record includes the ticket ID, subject, description, status, priority, assigned agent and group, requester details, and timestamps.

Results are paginated — up to 100 tickets per page. Use the updated_since filter parameter combined with Nexla date/time macros for incremental ingestion (e.g., fetch only tickets updated in the last day). Freshdesk enforces rate limits that vary by plan: Growth — 200 req/min, Pro — 400 req/min, Enterprise — 700 req/min.

Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.

Manual configuration

Freshdesk sources can also be configured manually, allowing you to ingest data from any valid Freshdesk API v2 endpoint—including sources that filter by update date, paginate automatically through large datasets, or chain multiple API calls to enrich data with related records. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.

Freshdesk API v2 endpoints follow the pattern https://yourdomain.freshdesk.com/api/v2/{resource} — common endpoints include /tickets, /contacts, /companies, /agents, and /tickets/{ticket_id}/conversations. List endpoints return up to 100 records per page by default; paginate using the page query parameter. Responses are a top-level JSON array, so set Path to Data to $[*].

The updated_since query parameter (ISO 8601 format, e.g. 2024-01-15T00:00:00Z) combined with a Nexla date/time macro such as {now-1} supports incremental ingestion of recently updated tickets or contacts. Lookup-based macros are useful for fetching per-ticket data — for example, passing a ticket ID from a lookup to build a conversations URL. No additional request headers are needed for GET calls beyond the authorization credential.

Freshdesk enforces API rate limits that vary by plan: Growth — 200 req/min, Pro — 400 req/min, Enterprise — 700 req/min, Trial — 50 req/min. If test requests fail with a 429 status code, wait a moment before retrying. See the Freshdesk rate limit documentation for details.

Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Freshdesk data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.

Use as a destination

Click the + icon on the Nexset that will be sent to the Freshdesk destination, and select the Send to Destination option from the menu. Select the Freshdesk connector from the list of available destination connectors, then select the credential that will be used to connect to the Freshdesk organization, and click Next; or, create a new Freshdesk credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Freshdesk endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.

Create a New Ticket

Creates a new support ticket in Freshdesk. Use this endpoint to programmatically open tickets from external systems such as monitoring tools, e-commerce platforms, or CRM systems.

  • Sends a POST request to the Freshdesk tickets endpoint; required fields in the request body include subject, description, email (or requester_id), and status.
  • Returns the newly created ticket object in the response, including the system-assigned ticket ID. Enable the Response Webhook to capture this ID for downstream flows.

Freshdesk will return the newly created ticket including its numeric ID in the response body. Enable the Response Webhook to capture this ID for use in downstream flows (e.g., adding notes or tracking resolution). Sending test payloads will create real tickets in your Freshdesk account — use a sandbox environment when testing.

Update an Existing Ticket

Updates an existing Freshdesk ticket by ID, modifying properties such as status, priority, assigned agent, or custom fields. Use this endpoint to synchronize ticket state changes from external systems back into Freshdesk.

  • Sends a PUT request to the Freshdesk ticket endpoint for the specified ticket; only the fields included in the request body are updated.
  • Supports updating status, priority, assignee, group, tags, and custom fields. Returns the updated ticket object in the response.
  • Configure the following parameter: Id — the numeric Freshdesk ticket ID of the ticket to be updated.

The ticket ID must correspond to an existing Freshdesk ticket. Ticket IDs can be obtained from the List Tickets source endpoint or captured via the Response Webhook when tickets are created. Sending test payloads will modify real tickets — use a sandbox environment when testing.

Manual configuration

Freshdesk destinations can also be manually configured to send data to any valid Freshdesk API v2 endpoint. This enables a wide range of write-back operations, including creating new support tickets, updating existing tickets, creating or updating contact records, and adding notes or replies to tickets. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.

Freshdesk expects application/json request bodies for all write operations, so JSON is the appropriate Content Format for every Freshdesk destination; the API also returns Content-Type: application/json in all responses. Freshdesk API v2 endpoints follow the pattern https://yourdomain.freshdesk.com/api/v2/{resource}; common destination endpoints include POST /tickets (create a ticket — requires subject, description, email or requester_id, and status), PUT /tickets/{ticket_id} (update a ticket), POST /contacts (create a contact — requires name and at least one of email, phone, or mobile), PUT /contacts/{contact_id} (update a contact), POST /tickets/{ticket_id}/reply (reply to a ticket), and POST /tickets/{ticket_id}/notes (add a note to a ticket). For update operations, include the ID of the object to update at the end of the URL. The Content-Type: application/json header is set automatically based on the selected Content Format, and no additional headers are required for authentication.

Use Exclude Attributes to remove internal Nexla metadata or source-system fields that are not valid Freshdesk API parameters, since unrecognized fields in the request body may cause a validation error. Most Freshdesk endpoints accept a single record per request rather than a batched array, so record batching is best reserved for custom endpoints or third-party aggregation layers that accept arrays of objects. Enabling the Response Webhook is particularly useful when creating tickets or contacts, since the Freshdesk API returns the newly created record — including its system-assigned ID — in the response body, allowing downstream flows to reference it.

Important

Sending a test payload to Freshdesk write endpoints (POST, PUT) will create or modify real records in your Freshdesk account. Use a test or sandbox Freshdesk environment when available, or ensure that any test-created records are deleted after verifying the configuration.

Save & activate

Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To send the data to the configured Freshdesk endpoint, open the destination resource menu, and select Activate.

The Nexset data will not be sent to Freshdesk until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.