Configuring Freshdesk as a Source
In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Freshdesk option from the list of connectors. Click Next and you’ll be prompted to add your access.1. Add account access
You’ll need your Freshdesk subdomain and API key to authenticate. Freshdesk uses HTTP Basic authentication with the API key as the username.Obtaining Your API Key
1
Log in to Freshdesk
Sign in to your Freshdesk account at
https://{your-domain}.freshdesk.com.2
Open your profile
Click your profile picture in the top-right corner and select Profile settings.
3
Copy the API key
On the right side of the profile page, click View API Key and copy the value.
Configuration Fields
The following configurations are available:- Freshdesk domain: Your Freshdesk subdomain. For an account hosted at
https://acme.freshdesk.com, this value isacme. - API key: The API key copied from your Freshdesk profile page.
- Start date: The earliest date from which records will be synced. This controls the initial window for the
tickets,contacts, andcompaniesstreams.
2. Select streams
Choose which data streams you want to sync. For faster extractions, select only the streams that are relevant to your analysis.Tip: The stream can be found more easily by typing its name.Select the streams and click Next.
3. Configure data streams
Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table, and the type of sync.- Layer: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
- Folder: a folder can be created inside the selected layer to group all tables being created from this new data source.
- Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix to all tables at once and make this process faster.
- Sync Type: you can choose between INCREMENTAL and FULL_TABLE.
- Incremental: every time the extraction happens, we’ll get only the new data, which is good if you want to keep every record ever fetched.
- Full table: every time the extraction happens, we’ll get the current state of the data, which is good if you don’t want to have deleted data in your catalog.
4. Configure data source
Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, consider how often you want data to be extracted from this source. Ticket data typically benefits from hourly or daily refreshes depending on your support volume. Optionally, you can determine when to execute an Additional Full Sync. This complements incremental extractions and ensures your data is fully synchronized every once in a while. Once you are ready, click Next to finalize the setup.5. Check your new source
You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.Streams and Fields
Below you’ll find all available data streams from Freshdesk and their corresponding fields:Tickets
Tickets
Stream containing all support tickets, the central fact table for help desk analytics. Supports incremental sync based on the
updated_at field. The stream automatically includes ticket stats (response and resolution timestamps) via the include=stats parameter for SLA analysis.Conversations
Conversations
Stream containing ticket replies and private notes, fetched per ticket from the
/tickets/{ticket_id}/conversations endpoint. Use this stream to analyze response times, interaction counts, and the full conversation timeline for each ticket.Contacts
Contacts
Stream containing all customers who have submitted tickets or been added to the help desk. Supports incremental sync based on the
updated_at field.Companies
Companies
Stream containing organizations that group contacts, commonly used for B2B support. Supports incremental sync based on the
updated_at field.Agents
Agents
Stream containing all support agents with their roles, groups, and skills. Extracted as a full-table sync.
Data Model
The following diagram illustrates the relationships between the core data streams in Freshdesk. The arrows indicate the join keys that link the different entities.Implementation Notes
Data Sync Considerations
- Incremental sync: Tickets, contacts, and companies support incremental sync based on
updated_at. Agents and conversations are extracted as full-table syncs. - Ticket stats: The tickets stream automatically requests the
statsblock from the Freshdesk API, giving you response and resolution timestamps without a second API call. - Conversations: Conversations are nested under tickets. Any ticket included in a sync will have its conversations re-fetched, so keep this in mind when tuning the start date for high-volume accounts.
API Limits & Performance
- Page cap: The Freshdesk list endpoints cap at 300 pages of 100 records (30,000 records per filter window). For accounts exceeding this, use a recent start date and increase the sync frequency so each incremental window stays within the cap.
- Rate limits: Freshdesk enforces per-minute rate limits that vary by plan. The connector retries on 429 responses using the
Retry-Afterheader. - Timestamps: All timestamps are returned in UTC (ISO 8601).
Skills for agents
Download Freshdesk skills file
Freshdesk connector documentation as plain markdown, for use in AI agent contexts.