Prerequisite
A Freshdesk object you would like to read from. You will need the object name.
Supported entities for source:
Entity | Can be filtered | Supports limit | Supports Order by | Supports Select * | Supports partitioning |
---|---|---|---|---|---|
Agents | Yes | Yes | No | Yes | Yes |
Business Hours | No | Yes | No | Yes | Yes |
Company | Yes | Yes | No | Yes | Yes |
Contacts | Yes | Yes | No | Yes | Yes |
Conversations | No | Yes | No | Yes | No |
Email Configs | No | Yes | No | Yes | No |
Email Inboxes | Yes | Yes | Yes | Yes | No |
Forum Categories | No | Yes | No | Yes | No |
Forums | No | Yes | No | Yes | No |
Groups | No | Yes | No | Yes | No |
Products | No | Yes | No | Yes | No |
Roles | No | Yes | No | Yes | No |
Satisfaction Ratings | Yes | Yes | No | Yes | No |
Skills | No | Yes | No | Yes | No |
Solutions | Yes | Yes | No | Yes | No |
Surveys | No | Yes | No | Yes | No |
Tickets | Yes | Yes | Yes | Yes | Yes |
Time Entries | Yes | Yes | No | Yes | No |
Topics | No | Yes | No | Yes | No |
Topic Comments | No | Yes | No | Yes | No |
Example:
freshdesk_read = glueContext.create_dynamic_frame.from_options(
connection_type="freshdesk",
connection_options={
"connectionName": "connectionName",
"ENTITY_NAME": "entityName",
"API_VERSION": "v2"
}
Freshdesk entity and field details:
Entity | Field | Data type | Supported operators |
---|---|---|---|
Agent | Available | Boolean | N/A |
available_since | DateTime | N/A | |
Id | Long | N/A | |
Occasional | Boolean | N/A | |
Signature | String | N/A | |
ticket_scope | Long | N/A | |
Type | String | N/A | |
created_at | DateTime | N/A | |
updated_at | DateTime | N/A | |
Contact | String | N/A | |
String | EQUAL_TO | ||
Mobile | String | N/A | |
Phone | String | N/A | |
Description | String | N/A | |
description_from_api_doc | String | N/A | |
Id | String | N/A | |
contact[active] | String | N/A | |
contact[email] | String | N/A | |
contact[job_title] | String | N/A | |
contact[language] | String | N/A | |
contact[last_login_at] | String | N/A | |
contact[mobile] | String | N/A | |
contact[name] | String | N/A | |
contact[phone] | String | N/A | |
contact[time_zone] | String | N/A | |
contact[created_at] | String | N/A | |
focus_mode | Boolean | N/A | |
Business Hours | Description | String | N/A |
Id | Long | N/A | |
is_default | Boolean | N/A | |
Name | String | N/A | |
time_zone | String | N/A | |
business_hours | Map | N/A | |
created_at | DateTime | N/A | |
updated_at | DateTime | N/A | |
Company | custom_fields | Map | N/A |
Domains | List | N/A | |
description | String | N/A | |
Id | Long | N/A | |
name | String | N/A | |
note | String | N/A | |
created_at | DateTime | EQUAL_TO, LESS_THAN_OR_EQUAL_TO, GREATER_THAN_OR_EQUAL_TO | |
updated_at | DateTime | EQUAL_TO, LESS_THAN_OR_EQUAL_TO, GREATER_THAN_OR_EQUAL_TO | |
health_score | String | N/A | |
renewal_date | Date | N/A | |
Industry | String | N/A | |
account_tier | String | N/A | |
Domain | String | EQUAL_TO | |
Contacts | Active | Boolean | EQUAL_TO |
Address | String | N/A | |
company_id | Long | EQUAL_TO | |
custom_fields | Map | N/A | |
Description | String | N/A | |
String | EQUAL_TO | ||
Id | Long | N/A | |
job_title | String | N/A | |
Language | String | EQUAL_TO | |
Mobile | String | EQUAL_TO | |
Name | String | N/A | |
Phone | String | N/A | |
Tags | List | N/A | |
time_zone | String | EQUAL_TO | |
twitter_id | String | EQUAL_TO | |
other_companies | List | N/A | |
created_at | DateTime | LESS_THAN_OR_EQUAL_TO, GREATER_THAN_OR_EQUAL_TO, EQUAL_TO | |
updated_at | DateTime | LESS_THAN_OR_EQUAL_TO, GREATER_THAN_OR_EQUAL_TO | |
Tag | String | EQUAL_TO | |
Avatar | Object | N/A | |
view_all_tickets | Boolean | N/A | |
Deleted | Boolean | N/A | |
unique_external_id | String | N/A | |
Conversations | body_text | String | N/A |
body | String | N/A | |
Id | Long | N/A | |
Incoming | Boolean | N/A | |
user_id | Long | N/A | |
support_email | String | N/A | |
Source | String | N/A | |
ticket_id | String | N/A | |
created_at | DateTime | N/A | |
updated_at | DateTime | N/A | |
from_email | String | N/A | |
cc_emails | List | N/A | |
bcc_emails | List | N/A | |
Attachments | List | N/A | |
last_edited_at | DateTime | N/A | |
to_emails | List | N/A | |
Private | Boolean | N/A | |
Email Configs | Active | Boolean | N/A |
group_id | Long | N/A | |
Id | Long | N/A | |
Name | String | N/A | |
primary_role | Boolean | N/A | |
product_id | Long | N/A | |
reply_email | String | N/A | |
to_email | String | N/A | |
created_at | DateTime | N/A | |
updated_at | DateTime | N/A | |
Email Inboxes | Active | Boolean | N/A |
customer_mailbox | Map | N/A | |
default_reply_email | Boolean | N/A | |
forward_email | String | EQUAL_TO | |
freshdesk_mailbox | Map | N/A | |
group_id | Long | EQUAL_TO | |
Id | Long | N/A | |
mailbox_type | String | N/A | |
Name | String | N/A | |
product_id | Long | EQUAL_TO | |
support_email | String | EQUAL_TO | |
created_at | DateTime | N/A | |
updated_at | DateTime | N/A | |
access_type | String | N/A | |
Authentication | String | N/A | |
delete_from_server | String | N/A | |
failure_code | String | N/A | |
Incoming | String | N/A | |
mail_server | String | N/A | |
Outgoing | String | N/A | |
Password | String | N/A | |
Port | Long | N/A | |
use_ssl | Boolean | N/A | |
username | String | N/A | |
public_domain_failure | String | N/A | |
Forum Categories | Description | String | N/A |
Id | Long | N/A | |
Name | String | N/A | |
created_at | DateTime | N/A | |
updated_at | DateTime | N/A | |
Forums | Id | Long | N/A |
Name | String | N/A | |
Description | String | N/A | |
Position | Long | N/A | |
forum_category_id | Long | N/A | |
forum_type | Long | N/A | |
forum_visibility | Long | N/A | |
topics_count | Long | N/A | |
posts_count | Long | N/A | |
company_ids | List | N/A | |
Groups | auto_ticket_assign | Long | N/A |
business_hour_id | Long | N/A | |
Description | String | N/A | |
escalate_to | Long | N/A | |
Id | Long | N/A | |
Name | String | N/A | |
unassigned_for | String | N/A | |
created_at | DateTime | N/A | |
updated_at | DateTime | N/A | |
agent_ids | List | N/A | |
Products | Description | String | N/A |
Id | Long | N/A | |
Name | String | N/A | |
created_at | DateTime | N/A | |
updated_at | DateTime | N/A | |
Roles | Description | String | N/A |
Id | Long | N/A | |
Name | String | N/A | |
Default | Boolean | N/A | |
created_at | DateTime | N/A | |
updated_at | DateTime | N/A | |
Satisfaction Ratings | Id | Long | N/A |
survey_id | Long | N/A | |
user_id | Long | EQUAL_TO | |
agent_id | Long | N/A | |
group_id | Long | N/A | |
ticket_id | Long | N/A | |
Feedback | String | N/A | |
Ratings | Map | N/A | |
created_at | DateTime | N/A | |
updated_at | DateTime | N/A | |
created_since | DateTime | EQUAL_TO | |
Skills | Id | Long | N/A |
Name | String | N/A | |
Rank | String | N/A | |
created_at | DateTime | N/A | |
updated_at | DateTime | N/A | |
Agents | Array | N/A | |
match_type | String | N/A | |
Conditions | List | N/A | |
Solutions | Id | Long | N/A |
Name | String | N/A | |
Description | String | N/A | |
created_at | DateTime | N/A | |
updated_at | DateTime | N/A | |
Term | String | CONTAINS | |
visible_in_portals | List | N/A | |
Surveys | Id | Long | N/A |
Title | String | N/A | |
Questions | String | N/A | |
created_at | DateTime | N/A | |
updated_at | DateTime | N/A | |
Tickets | cc_emails | List | N/A |
custom_fields | Map | N/A | |
due_by | DateTime | EQUAL_TO | |
email_config_id | Long | N/A | |
fr_due_by | DateTime | EQUAL_TO | |
fr_escalated | Boolean | N/A | |
fwd_emails | List | N/A | |
group_id | Long | EQUAL_TO | |
Id | Long | N/A | |
is_escalated | Boolean | EQUAL_TO | |
product_id | Long | N/A | |
reply_cc_emails | List | N/A | |
requester_id | Long | N/A | |
responder_id | Long | N/A | |
Source | Long | N/A | |
Spam | Boolean | N/A | |
Status | Long | EQUAL_TO | |
Subject | String | N/A | |
to_emails | List | N/A | |
nr_due_by | DateTime | N/A | |
closed_at | DateTime | N/A | |
Tags | List | N/A | |
Type | String | EQUAL_TO | |
created_at | DateTime | LESS_THAN_OR_EQUAL_TO, GREATER_THAN_OR_EQUAL_TO, EQUAL_TO | |
updated_at | DateTime | LESS_THAN_OR_EQUAL_TO, GREATER_THAN_OR_EQUAL_TO | |
agent_id | Integer | EQUAL_TO | |
Tag | String | EQUAL_TO | |
attachments | List | N/A | |
company_id | Long | N/A | |
deleted | Boolean | N/A | |
description | String | N/A | |
description_text | String | N/A | |
String | N/A | ||
facebook_id | String | N/A | |
name | String | N/A | |
phone | String | N/A | |
twitter_id | String | N/A | |
Time Entries | agent_id | Long | EQUAL_TO |
Billable | Boolean | EQUAL_TO | |
Id | Long | N/A | |
executed_at | DateTime | N/A | |
Note | String | N/A | |
start_time | DateTime | N/A | |
ticket_id | Long | N/A | |
time_spent | String | N/A | |
time_running | Boolean | N/A | |
created_at | DateTime | N/A | |
updated_at | DateTime | N/A | |
company_id | Long | EQUAL_TO | |
executed_after | DateTime | EQUAL_TO | |
executed_before | DateTime | EQUAL_TO | |
Topics | forum_id | Long | N/A |
Hits | Long | N/A | |
Id | Long | N/A | |
Locked | Boolean | N/A | |
merged_topic_id | Long | N/A | |
posts_count | Long | N/A | |
replied_at | DateTime | N/A | |
replied_by | Long | N/A | |
stamp_type | Long | N/A | |
Sticky | Boolean | N/A | |
Title | String | N/A | |
user_id | Long | N/A | |
user_votes | Long | N/A | |
created_at | DateTime | N/A | |
updated_at | DateTime | N/A | |
Published | Boolean | N/A | |
message | String | N/A | |
Topic Comments | Answer | String | N/A |
Body | String | N/A | |
forum_id | Long | N/A | |
Id | Long | N/A | |
Published | Boolean | N/A | |
Spam | Boolean | N/A | |
topic_id | Long | N/A | |
Trash | Boolean | N/A | |
user_id | Long | N/A | |
created_at | DateTime | N/A | |
updated_at | DateTime | N/A | |
body_text | String | N/A |
Partitioning queries
Filter-based partitioning:
You can provide the additional Spark options PARTITION_FIELD
,
LOWER_BOUND
, UPPER_BOUND
, and
NUM_PARTITIONS
if you want to utilize concurrency in Spark. With
these parameters, the original query would be split into NUM_PARTITIONS
number of sub-queries that can be executed by Spark tasks
concurrently.
PARTITION_FIELD
: the name of the field to be used to partition the query.LOWER_BOUND
: an inclusive lower bound value of the chosen partition field.For the Datetime field, we accept the Spark timestamp format used in Spark SQL queries.
Examples of valid value:
"2024-09-30T01:01:01.000Z"
UPPER_BOUND
: an exclusive upper bound value of the chosen partition field.NUM_PARTITIONS
: the number of partitions.
Example:
freshDesk_read = glueContext.create_dynamic_frame.from_options(
connection_type="freshdesk",
connection_options={
"connectionName": "connectionName",
"ENTITY_NAME": "entityName",
"API_VERSION": "v2",
"PARTITION_FIELD": "Created_Time"
"LOWER_BOUND": " 2024-10-27T23:16:08Z“
"UPPER_BOUND": " 2024-10-27T23:16:08Z"
"NUM_PARTITIONS": "10"
}