Reading from Freshdesk entities
Prerequisite
A Freshdesk object you would like to read from. You will need the object name.
Supported entities for Sync 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 |
Supported entities for Async source:
| Entity | API version | Can be filtered | Supports limit | Supports Order by | Supports Select * | Supports partitioning |
|---|---|---|---|---|---|---|
| Companies | v2 | No | No | No | No | No |
| Contacts | v2 | No | No | No | No | 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 |
|---|---|
| Agents | https://developers.freshdesk.com/api/#list_all_agents |
| Business-hours | https://developers.freshdesk.com/api/#list_all_business_hours |
| Comments | https://developers.freshdesk.com/api/#comment_attributess |
| Company | https://developers.freshdesk.com/api/#companies |
| Contacts | https://developers.freshdesk.com/api/#list_all_contacts |
| Conversations | https://developers.freshdesk.com/api/#list_all_ticket_notes |
| Email-configs | https://developers.freshdesk.com/api/#list_all_email_configs |
| Email-inboxes | https://developers.freshdesk.com/api/#list_all_email_mailboxes |
| Forum-categories | https://developers.freshdesk.com/api/#category_attributes |
| Forums | https://developers.freshdesk.com/api/#forum_attributes |
| Groups | https://developers.freshdesk.com/api/#list_all_groups |
| Products | https://developers.freshdesk.com/api/#list_all_products |
| Roles | https://developers.freshdesk.com/api/#list_all_roles |
| Satisfaction-rating | https://developers.freshdesk.com/api/#view_all_satisfaction_ratingss |
| Skills | https://developers.freshdesk.com/api/#list_all_skills |
| Solutions | https://developers.freshdesk.com/api/#solution_content |
| Surveys | https://developers.freshdesk.com/api/#list_all_survey |
| Tickets | https://developers.freshdesk.com/api/#list_all_tickets |
| Time-entries | https://developers.freshdesk.com/api/#list_all_time_entries |
| Topics | https://developers.freshdesk.com/api/#topic_attributes |
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" }