Freshdesk
Overview
Freshdesk is an omnichannel customer support platform. This Parsons integration with the Freshdesk API provides methods to fetch tickets, contacts, companies, and agents. Results are returned as Parsons Tables.
Note
- Authentication
To use the
Freshdesk
class, you must provide the subdomain of your Freshdesk account and an API Key, which can be found by logging into Freshdesk and following the instructions in the API documentation.- Rate Limits
Rate limits depend on your Freshdesk plan, so be sure to check the API documentation for your rate limits and follow the best practices guide to avoid exceeding them.
Quickstart
To instantiate the Freshdesk class, you can either store your Freshdesk domain and API
Key as environmental variables (FRESHDESK_DOMAIN
and FRESHDESK_API_KEY
, respectively)
or pass them in as keyword arguments:
from parsons import Freshdesk
# First approach: Use environmental variables
freshdesk = Freshdesk()
# Second approach: Use keyword arguments
freshdesk = Freshdesk(domain='my_domain', api_key='my_api_key')
You can then call various endpoints:
# Fetch all tickets requested a individual based on their email
freshdesk.get_tickets(requester_email='user@email.com')
# Fetch all contacts in a specific company
freshdesk.get_contacts(company_id='123')
# Fetch a specific agent by their mobile number
freshdesk.get_agents(mobile='7654367287')
API
- class parsons.Freshdesk(domain, api_key)[source]
Instantiate Freshdesk class
- Args:
- domain: str
The subdomain of the Freshdesk account. Not required if
FRESHDESK_DOMAIN
env variable set.- api_key: str
The Freshdesk provided application key. Not required if
FRESHDESK_API_KEY
env variable set.
- Returns:
Freshdesk class
- get_tickets(ticket_type=None, requester_id=None, requester_email=None, company_id=None, updated_since='2016-01-01', expand_custom_fields=False)[source]
List tickets.
See the API Docs for more information.
Warning
Deleted and Spam tickets are not included. However they can be pulled separately by utilizing the
ticket_type
parameter.Warning
Freshdesk will return a maximum of 9,000 tickets. By default, only tickets created in the past 30 days are returned. To access additional tickets, utilize the
updated_since
parameter.- Args:
- ticket_type: str
Filter by type of ticket to filter by. Valid fields include
new_and_my_open
,watching
,spam
anddeleted
.- requester_id: int
Filter by requester id.
- requester_email: str
Filter by requester email.
- company_id: int
Filter by company_id.
- updated_since: str
Earliest date to include in results.
- expand_custom_fields: boolean
Expand nested custom fields to their own columns.
- Returns:
- Parsons Table
See Parsons Table for output options.
- get_contacts(email=None, mobile=None, phone=None, company_id=None, state=None, updated_since=None, expand_custom_fields=None)[source]
Get contacts.
See the API Docs for more information.
- Args:
- email: str
Filter by email address.
- mobile: str
Filter by mobile phone number.
- phone: str
Filter by phone number.
- company_id: int
Filter by company ID.
- state: str
Filter by state.
- updated_since: str
Earliest date to include in results.
- expand_custom_fields: boolean
Expand nested custom fields to their own columns.
- Returns:
- Parsons Table
See Parsons Table for output options.
- get_companies(expand_custom_fields=False)[source]
List companies.
See the API Docs for more information.
- Args:
- expand_custom_fields: boolean
Expand nested custom fields to their own columns.
- Returns:
- Parsons Table
See Parsons Table for output options.
- get_agents(email=None, mobile=None, phone=None, state=None)[source]
List agents.
See the API Docs for more information.
- Args:
- email: str
Filter by email address.
- mobile: str
Filter by mobile phone number
- phone: str
Filter by phone number
- state: str
Filter by state
- Returns:
- Parsons Table
See Parsons Table for output options.
- create_ticket(subject, description, email, priority, status, cc_emails=None, custom_fields=None)[source]
Create a ticket in Freshdesk. Args:
- subject: str
The subject of the ticket.
- description: str
The description of the ticket.
- email: str
The email address of the requester.
- priority: int
The priority of the ticket.
- status: int
The status of the ticket.
- cc_emails: list (optional)
List of email addresses to CC.
- custom_fields: dict (optional)
Custom fields data.
- Returns:
- dict
JSON response from the API.