Freshdesk integration summary

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

Freshdesk feature snapshot

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

STITCH
Release status

Released on March 1, 2017

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

Unsupported

Column selection

Unsupported

Select all

Unsupported

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 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.

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.

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

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

Freshdesk documentation

agents schema on GitHub

Freshdesk API method

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

available

BOOLEAN

available_since

DATE-TIME

contact

OBJECT

active

BOOLEAN

created_at

DATE-TIME

email

STRING

job_title

STRING

language

STRING

last_login_at

DATE-TIME

mobile

STRING

name

STRING

phone

STRING

time_zone

STRING

updated_at

DATE-TIME

created_at

DATE-TIME

group_ids

ARRAY

id

INTEGER

occasional

BOOLEAN

role_ids

ARRAY

signature

STRING

ticket_scope

INTEGER

updated_at

DATE-TIME

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

created_at

DATE-TIME

custom_fields

ARRAY

name

STRING

value

STRING

description

STRING

domains

ARRAY

id

INTEGER

name

STRING

note

STRING

updated_at

DATE-TIME

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

bcc_emails

ARRAY

body_text

STRING

cc_emails

ARRAY

created_at

DATE-TIME

from_email

STRING

id

INTEGER

incoming

BOOLEAN

private

BOOLEAN

source

INTEGER

support_email

STRING

ticket_id

INTEGER

to_emails

ARRAY

updated_at

DATE-TIME

user_id

INTEGER

groups

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

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

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.type
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

created_at

DATE-TIME

description

STRING

escalate_to

INTEGER

id

INTEGER

name

STRING

unassigned_for

STRING

updated_at

DATE-TIME

roles

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

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

Freshdesk documentation

roles schema on GitHub

Freshdesk API method

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

created_at

DATE-TIME

default

BOOLEAN

description

STRING

id

INTEGER

name

STRING

updated_at

DATE-TIME

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.type
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

agent_id

INTEGER

created_at

DATE-TIME

feedback

STRING

group_id

INTEGER

id

INTEGER

ratings

ARRAY

question

STRING

value

INTEGER

survey_id

INTEGER

ticket_id

INTEGER

updated_at

DATE-TIME

user_id

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.type
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

cc_emails

ARRAY

company

OBJECT

id

INTEGER

name

STRING

company_id

INTEGER

created_at

DATE-TIME

custom_fields

ARRAY

name

STRING

value

STRING

deleted

BOOLEAN

description

STRING

description_text

STRING

due_by

DATE-TIME

email

STRING

email_config_id

INTEGER

facebook_id

STRING

fr_due_by

DATE-TIME

fr_escalated

BOOLEAN

fwd_emails

ARRAY

group_id

INTEGER

id

INTEGER

is_escalated

BOOLEAN

name

STRING

phone

STRING

priority

NUMBER

product_id

INTEGER

reply_cc_emails

ARRAY

requester

OBJECT

email

STRING

id

INTEGER

mobile

STRING

name

STRING

phone

STRING

requester_id

INTEGER

responder_id

INTEGER

source

NUMBER

spam

BOOLEAN

stats

OBJECT

closed_at

DATE-TIME

first_responded_at

DATE-TIME

resolved_at

DATE-TIME

status

NUMBER

subject

STRING

tags

ARRAY

to_emails

ARRAY

twitter_id

STRING

type

STRING

updated_at

DATE-TIME

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

agent_id

INTEGER

billable

BOOLEAN

created_at

DATE-TIME

executed_at

DATE-TIME

id

INTEGER

note

STRING

start_time

DATE-TIME

ticket_id

INTEGER

time_spent

STRING

timer_running

BOOLEAN

updated_at

DATE-TIME


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.