Freshdesk integration summary

Stitch’s Freshdesk integration replicates data using the Freshdesk REST API v2. Refer to the Schema section for a list of objects available for replication.

Freshdesk feature snapshot

A high-level look at Stitch's Freshdesk (v2) integration, including release status, useful links, and the features supported in Stitch.

STITCH
Release status

Released on February 12, 2026

Supported by

Singer Community

Stitch plan

Standard

API availability

Available

Singer GitHub repository

singer-io/tap-freshdesk

REPLICATION SETTINGS
Anchor Scheduling

Supported

Advanced Scheduling

Supported

Table-level reset

Unsupported

Configurable Replication Methods

Unsupported

DATA SELECTION
Table selection

Supported

Column selection

Supported

Select all

Supported

TRANSPARENCY
Extraction Logs

Supported

Loading Reports

Supported

Connecting Freshdesk

Freshdesk setup requirements

To set up Freshdesk in Stitch, you need:

  • Administrator permissions in Freshdesk. As Stitch will only be able to replicate data that the authorizing user has access to, we recommend that someone with these permissions complete the setup. For example: if the authorizing user only has access to a handful of tickets, Stitch will only be able to access and replicate the data for those tickets.

    Having a Freshdesk administrator create the integration will ensure that Stitch is able to replicate all the data in your Freshdesk account.


Step 1: Retrieve your Freshdesk API Key

  1. Sign into your Freshdesk account.
  2. Click the user menu (your icon) > Profile Settings.
  3. Your API Key will display under the Change Password section of your profile page. Copy this key.

Leave this page open for now - you’ll need it to wrap things up in Stitch.

Step 2: Add Freshdesk as a Stitch data source

  1. Sign into your Stitch account.
  2. On the Stitch Dashboard page, click the Add Integration button.

  3. Click the Freshdesk icon.

  4. Enter a name for the integration. This is the name that will display on the Stitch Dashboard for the integration; it’ll also be used to create the schema in your destination.

    For example, the name “Stitch Freshdesk” would create a schema called stitch_freshdesk in the destination. Note: Schema names cannot be changed after you save the integration.

Step 3: Define the historical replication start date

The Sync Historical Data setting defines the starting date for your Freshdesk integration. This means that data equal to or newer than this date will be replicated to your data warehouse.

Change this setting if you want to replicate data beyond Freshdesk’s default setting of 1 year. For a detailed look at historical replication jobs, check out the Syncing Historical SaaS Data guide.

Step 4: Create a replication schedule

In the Replication Frequency section, you’ll create the integration’s replication schedule. An integration’s replication schedule determines how often Stitch runs a replication job, and the time that job begins.

Freshdesk integrations support the following replication scheduling methods:

To keep your row usage low, consider setting the integration to replicate less frequently. See the Understanding and Reducing Your Row Usage guide for tips on reducing your usage.

Step 5: Set objects to replicate

The last step is to select the tables and columns you want to replicate. Learn about the available tables for this integration.

Note: If a replication job is currently in progress, new selections won’t be used until the next job starts.

For Freshdesk integrations, you can select:

  1. Individual tables and columns

  2. All tables and columns

Click the tabs to view instructions for each selection method.

  1. In the integration’s Tables to Replicate tab, locate a table you want to replicate.
  2. To track a table, click the checkbox next to the table’s name. A blue checkmark means the table is set to replicate.

  3. To track a column, click the checkbox next to the column’s name. A blue checkmark means the column is set to replicate.

  4. Repeat this process for all the tables and columns you want to replicate.
  5. When finished, click the Finalize Your Selections button at the bottom of the screen to save your selections.
  1. Click into the integration from the Stitch Dashboard page.
  2. Click the Tables to Replicate tab.

  3. In the list of tables, click the box next to the Table Names column.
  4. In the menu that displays, click Track all Tables and Fields:

    The Track all Tables and Fields menu in the Tables to Replicate tab

  5. Click the Finalize Your Selections button at the bottom of the page to save your data selections.

Initial and historical replication jobs

After you finish setting up Freshdesk, its Sync Status may show as Pending on either the Stitch Dashboard or in the Integration Details page.

For a new integration, a Pending status indicates that Stitch is in the process of scheduling the initial replication job for the integration. This may take some time to complete.

Free historical data loads

The first seven days of replication, beginning when data is first replicated, are free. Rows replicated from the new integration during this time won’t count towards your quota. Stitch offers this as a way of testing new integrations, measuring usage, and ensuring historical data volumes don’t quickly consume your quota.


Freshdesk table reference

agents

The agents table contains info about the agents in your Freshdesk account.

Replication Method

Full Table

Primary Key

id

Useful links

Freshdesk documentation

agents schema on GitHub

Freshdesk API method

Join agents with on
groups
agents.id = groups.agent_ids
agents.group_ids = groups.id
satisfaction_ratings
agents.id = satisfaction_ratings.agent_id
agents.group_ids = satisfaction_ratings.group_id
tickets
agents.id = tickets.responder_id
agents.group_ids = tickets.group_id
time_entries
agents.id = time_entries.agent_id
roles
agents.role_ids = roles.id

available

BOOLEAN

available_since

STRING

id

INTEGER

occasional

BOOLEAN

signature

STRING

ticket_scope

INTEGER

group_ids

ARRAY

role_ids

ARRAY

created_at

STRING

updated_at

STRING

contact

OBJECT

active

BOOLEAN

email

STRING

job_title

STRING

language

STRING

last_login_at

STRING

mobile

STRING

name

STRING

phone

STRING

time_zone

STRING

created_at

STRING

updated_at

STRING

companies

The companies table contains info about the companies your various customers and contacts belong to.

Custom Fields

If applicable, Stitch will replicate custom fields related to companies in Freshdesk.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

Freshdesk documentation

Freshdesk API method

Join companies with on
tickets
companies.id = tickets.company_id

custom_fields

ARRAY

name

STRING

value

STRING

description

STRING

domains

ARRAY

id

INTEGER

name

STRING

note

STRING

created_at

STRING

updated_at

STRING

contacts

The contacts table contains info about the customers or potential customers that have filed support tickets in any of the channels in your Freshdesk account.

Custom Fields

If applicable, Stitch will replicate custom fields related to contacts in Freshdesk.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

Freshdesk documentation

contacts schema on GitHub

Freshdesk API method

custom_fields

ARRAY

name

STRING

value

STRING

other_companies

ARRAY

view_all_tickets

BOOLEAN

id

INTEGER

other_emails

ARRAY

company_id

NUMBER

email

STRING

job_title

STRING

description

STRING

tags

ARRAY

deleted

BOOLEAN

updated_at

STRING

phone

STRING

address

STRING

active

BOOLEAN

name

STRING

language

STRING

mobile

STRING

created_at

STRING

twitter_id

STRING

time_zone

STRING

avatar

OBJECT

conversations

The conversations table contains info about replies and public/private notes added to the tickets in your Freshdesk account.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

Freshdesk documentation

conversations schema on GitHub

Freshdesk API method

Join conversations with on
tickets
conversations.ticket_id = tickets.id
satisfaction_ratings
conversations.ticket_id = satisfaction_ratings.ticket_id

body_text

STRING

id

INTEGER

incoming

BOOLEAN

private

BOOLEAN

user_id

INTEGER

support_email

STRING

source

INTEGER

ticket_id

INTEGER

to_emails

ARRAY

from_email

STRING

cc_emails

ARRAY

bcc_emails

ARRAY

created_at

STRING

updated_at

STRING

groups

The groups table contains info about the groups your agents belong to.

Replication Method

Full Table

Primary Key

id

Useful links

Freshdesk documentation

groups schema on GitHub

Freshdesk API method

Join groups with on
agents
groups.agent_ids = agents.id
groups.id = agents.group_ids
satisfaction_ratings
groups.agent_ids = satisfaction_ratings.agent_id
groups.id = satisfaction_ratings.group_id
tickets
groups.agent_ids = tickets.responder_id
groups.id = tickets.group_id
time_entries
groups.agent_ids = time_entries.agent_id

agent_ids

ARRAY

auto_ticket_assign

INTEGER, BOOLEAN

business_hour_id

INTEGER

description

STRING

escalate_to

INTEGER

id

INTEGER

name

STRING

unassigned_for

STRING

created_at

STRING

updated_at

STRING

roles

The roles table contains info about the various roles that can be assigned to team members in your Freshdesk account.

Replication Method

Full Table

Primary Key

id

Useful links

Freshdesk documentation

roles schema on GitHub

Freshdesk API method

Join roles with on
agents
roles.id = agents.role_ids

description

STRING

id

INTEGER

name

STRING

default

BOOLEAN

created_at

STRING

updated_at

STRING

satisfaction_ratings

The satisfaction_ratings table contains info about customer satisfaction survey responses, or satisfaction ratings.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

Freshdesk documentation

satisfaction_ratings schema on GitHub

Freshdesk API method

Join satisfaction_ratings with on
agents
satisfaction_ratings.agent_id = agents.id
satisfaction_ratings.group_id = agents.group_ids
groups
satisfaction_ratings.agent_id = groups.agent_ids
satisfaction_ratings.group_id = groups.id
tickets
satisfaction_ratings.agent_id = tickets.responder_id
satisfaction_ratings.group_id = tickets.group_id
satisfaction_ratings.ticket_id = tickets.id
time_entries
satisfaction_ratings.agent_id = time_entries.agent_id
conversations
satisfaction_ratings.ticket_id = conversations.ticket_id

survey_id

INTEGER

user_id

INTEGER

feedback

STRING

created_at

STRING

updated_at

STRING

agent_id

INTEGER

group_id

INTEGER

id

INTEGER

ticket_id

INTEGER

ratings

ARRAY

question

STRING

value

INTEGER

tickets

The tickets table contains info about the tickets in your Freshdesk account.

Custom Fields

If applicable, Stitch will replicate custom fields related to tickets in Freshdesk.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

tickets schema on GitHub

Freshdesk API method

Join tickets with on
agents
tickets.responder_id = agents.id
tickets.group_id = agents.group_ids
groups
tickets.responder_id = groups.agent_ids
tickets.group_id = groups.id
satisfaction_ratings
tickets.responder_id = satisfaction_ratings.agent_id
tickets.group_id = satisfaction_ratings.group_id
tickets.id = satisfaction_ratings.ticket_id
time_entries
tickets.responder_id = time_entries.agent_id
companies
tickets.company_id = companies.id
conversations
tickets.id = conversations.ticket_id

custom_fields

ARRAY

name

STRING

value

STRING

cc_emails

ARRAY

updated_at

STRING

type

STRING

to_emails

ARRAY

id

INTEGER

fwd_emails

ARRAY

source

NUMBER

due_by

STRING

company_id

INTEGER

responder_id

INTEGER

priority

NUMBER

deleted

BOOLEAN

facebook_id

STRING

subject

STRING

fr_due_by

STRING

email

STRING

status

NUMBER

is_escalated

BOOLEAN

reply_cc_emails

ARRAY

description

STRING

tags

ARRAY

email_config_id

INTEGER

phone

STRING

description_text

STRING

requester_id

INTEGER

name

STRING

product_id

INTEGER

fr_escalated

BOOLEAN

created_at

STRING

spam

BOOLEAN

twitter_id

STRING

group_id

INTEGER

company

OBJECT

id

INTEGER

name

STRING

requester

OBJECT

email

STRING

id

INTEGER

mobile

STRING

name

STRING

phone

STRING

stats

OBJECT

closed_at

STRING

first_responded_at

STRING

resolved_at

STRING

time_entries

The time_entries table contains info about the time entries entered by agents working on tickets.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

time_entries schema on GitHub

Freshdesk API method

Join time_entries with on
agents
time_entries.agent_id = agents.id
groups
time_entries.agent_id = groups.agent_ids
satisfaction_ratings
time_entries.agent_id = satisfaction_ratings.agent_id
tickets
time_entries.agent_id = tickets.responder_id

time_spent

STRING

start_time

STRING

created_at

STRING

executed_at

STRING

updated_at

STRING

timer_running

BOOLEAN

note

STRING

ticket_id

INTEGER

billable

BOOLEAN

id

INTEGER

agent_id

INTEGER


Questions? Feedback?

Did this article help? If you have questions or feedback, feel free to submit a pull request with your suggestions, open an issue on GitHub, or reach out to us.