The Freshdesk component is an application component that allows users to use Freshdesk API to manage tickets, contacts and more..
It can carry out the following tasks:
#Release Stage
Alpha
#Configuration
The component definition and tasks are defined in the definition.json and tasks.json files respectively.
#Setup
In order to communicate with Freshdesk, the following connection details need to be
provided. You may specify them directly in a pipeline recipe as key-value pairs
within the component's setup
block, or you can create a Connection from
the Integration Settings
page and reference the whole setup
as setup: ${connection.<my-connection-id>}
.
Field | Field ID | Type | Note |
---|
API key (required) | api-key | string | Fill in your Freshdesk API key. To find your key, go to profile settigs and on the right pane, you can get your key once you have completed the captcha verification. |
Domain (required) | domain | string | Your Freshdesk domain. You can find this by going to Admin -> Search for "Portals" -> Portal URL. Your portal URL will look like "yourdomain.freshdesk.com". Please only input your domain and not the whole URL. |
#Supported Tasks
#Get Ticket
Get ticket using ID
Input | ID | Type | Description |
---|
Task ID (required) | task | string | TASK_GET_TICKET |
Ticket ID (required) | ticket-id | integer | The ID of the ticket |
Output | ID | Type | Description |
---|
Subject | subject | string | Subject of the ticket |
Description Text | description-text | string | Content of the ticket |
Source | source | string | Source of the ticket. Eg: Email |
Status | status | string | Status of the ticket. Eg: Pending |
Priority | priority | string | Priority of the ticket. Eg: Medium |
Ticket Type (optional) | ticket-type | string | Used to categorize the ticket. To check the possible types a ticket can have, please go to Admin -> Ticket Fields |
Association Type (optional) | association-type | string | Used to determine whether a ticket is a parent, child, tracker or related ticket |
Associated Ticket List (optional) | associated-ticket-list | array[integer] | List of associated ticket IDs |
Tags (optional) | tags | array[string] | Tags associated with the ticket. |
CC Emails (optional) | cc-emails | array[string] | Email addresses added in the 'cc' field of the incoming ticket email |
Forward Emails (optional) | forward-emails | array[string] | Email addresses added while forwarding a ticket |
Reply CC Emails (optional) | reply-cc-emails | array[string] | Email addresses added while replying to a ticket |
Requester ID | requester-id | integer | ID of the requester |
Responder ID (optional) | responder-id | integer | ID of the agent to whom the ticket has been assigned. List of agents can be found in Admin -> Agents |
Company ID (optional) | company-id | integer | ID of the company to which this ticket belongs |
Group ID (optional) | group-id | integer | ID of the group to which the ticket has been assigned. List of groups can be found in Admin -> Groups |
Product ID (optional) | product-id | integer | ID of the product to which the ticket is associated. List of products can be found in Admin -> Multiple Products |
Support Email (optional) | support-email | string | Support email address. You can find it in Admin -> Email (under channel). |
To Emails (optional) | to-emails | array[string] | Email addresses to which the ticket was originally sent |
Spam (optional) | spam | boolean | Set to true if the ticket is marked as spam |
Due By (optional) | due-by | string | Timestamp that denotes when the ticket is due to be resolved. In UTC format. |
Is Escalated (optional) | is-escalated | boolean | Set to true if the ticket has been escalated |
First Response Due By (optional) | first-response-due-by | string | Timestamp that denotes when the first response is due. In UTC format. You can adjust this by going to Admin -> SLA policy (under Workflows). |
First Response Escalated (optional) | first-response-escalated | boolean | Set to true if the ticket has been escalated as the result of first response time being breached |
Next Response Due By (optional) | next-response-due-by | string | Timestamp that denotes when the next response is due. In UTC format. You can adjust this by going to Admin -> SLA policy (under Workflows). |
Next Response Escalated (optional) | next-response-escalated | boolean | Set to true if the ticket has been escalated as the result of next response time being breached |
Created At | created-at | string | Timestamp that denotes when the ticket/conversation was created. In UTC format. |
Updated At | updated-at | string | Timestamp that denotes when the ticket was last updated. In UTC format. |
Attachments (optional) | attachments | array[object] | Ticket attachments (cannot be more than 20MB) |
Sentiment Score (optional) | sentiment-score | integer | Freshdesk uses AI to assess the emotional tone and attitude expressed in customer interaction. |
Initial Sentiment Score (optional) | initial-sentiment-score | integer | The initial sentiment score of the ticket |
Custom Fields (optional) | custom-fields | object | Custom fields that the ticket have. Custom fields can be created or modified in Admin -> Ticket Fields |
Output Objects in Get Ticket
Attachments
Field | Field ID | Type | Note |
---|
Attachment Content Type | content-type | string | The type of the file |
Attachment Name | name | string | The name of the file |
Attachment URL | url | string | The URL to the attachment. |
#Create Ticket
Create ticket
Input | ID | Type | Description |
---|
Task ID (required) | task | string | TASK_CREATE_TICKET |
Requester ID | requester-id | integer | ID of the requester. Must be an existing contact. If you fill in this field, you don't need to fill in the email field. Only one of the two fields is required. |
Email | email | string | Email address of the requester. If you fill in the Requester ID above, it will be ignored. Only one of the two fields is required. If no contact exists with this email address in Freshdesk, it will be added as a new contact. |
Subject (required) | subject | string | Subject of the ticket |
Description (required) | description | string | Content of the ticket. You can use HTML tags in the content. |
Source (required) | source | string | Source of the ticket. Eg: Email |
Status (required) | status | string | Status of the ticket. Eg: Pending |
Priority (required) | priority | string | Priority of the ticket. Eg: Medium |
Ticket Type | ticket-type | string | Used to categorize the ticket. To check the possible types a ticket can have, please go to Admin -> Ticket Fields |
Company ID | company-id | integer | ID of the company to which this ticket belongs |
Product ID | product-id | integer | ID of the product to which the ticket is associated. List of products can be found in Admin -> Multiple Products |
Group ID | group-id | integer | ID of the group to which the ticket has been assigned. List of groups can be found in Admin -> Groups |
Responder ID | responder-id | integer | ID of the agent to whom the ticket has been assigned. List of agents can be found in Admin -> Agents |
Tags | tags | array[string] | Tags associated with the ticket. |
CC Emails | cc-emails | array[string] | Email addresses added in the 'cc' field of the incoming ticket email |
Parent ID | parent-id | integer | ID of the parent ticket. Need to be filled out if you want to create a child ticket. |
Related Ticket IDs | related-ticket-ids | array[integer] | List of related ticket IDs. Need to be filled out if you want to create a tracker ticket. |
Output | ID | Type | Description |
---|
Ticket ID | ticket-id | integer | The ID of the ticket |
Created At | created-at | string | Timestamp that denotes when the ticket/conversation was created. In UTC format. |
#Reply to Ticket
Reply to a ticket thread.
Input | ID | Type | Description |
---|
Task ID (required) | task | string | TASK_REPLY_TO_TICKET |
Body (required) | body | string | Content of the reply. Can be in HTML format. |
Ticket ID (required) | ticket-id | integer | The ID of the ticket |
From Email | from-email | string | Email address that is replying to the ticket. You need to have this email address registered in Freshdesk by going to Admin -> Emails. If you leave this field empty, the global support email will be used. |
User ID | user-id | integer | ID of the agent/contact replying to the ticket. If you fill this field using a contact ID, there will be no email sent to the requester. |
CC Emails | cc-emails | array[string] | Email addresses added in the 'cc' field of the outgoing ticket email. |
BCC Emails | bcc-emails | array[string] | Email addresses added in the 'bcc' field of the outgoing ticket email. |
Output | ID | Type | Description |
---|
Conversation ID | conversation-id | integer | The ID of the note or reply that is associated with the ticket |
Created At | created-at | string | Timestamp that denotes when the ticket/conversation was created. In UTC format. |
#Create Ticket Note
Create a private/public note on a ticket thread.
Input | ID | Type | Description |
---|
Task ID (required) | task | string | TASK_CREATE_TICKET_NOTE |
Ticket ID (required) | ticket-id | integer | The ID of the ticket |
Body (required) | body | string | Content of the note. Can be in HTML format. |
Notify Emails | notify-emails | array[string] | Email addresses of agents/users who need to be notified about this note. The emails need to exist in Freshdesk agent. Agent list can be seen in Admin -> Agents. |
User ID | user-id | integer | ID of the agent/contact who is adding the note. |
Private | private | boolean | Set to true if the note is private |
Incoming | incoming | boolean | Set to true if a particular note should appear as being created from outside (i.e., not through web portal). |
Output | ID | Type | Description |
---|
Conversation ID | conversation-id | integer | The ID of the note or reply that is associated with the ticket |
Created At | created-at | string | Timestamp that denotes when the ticket/conversation was created. In UTC format. |
#Get All Conversations
Get all the conversations in a ticket. (Conversations are replies and notes that are added to a ticket)
Input | ID | Type | Description |
---|
Task ID (required) | task | string | TASK_GET_ALL_CONVERSATIONS |
Ticket ID (required) | ticket-id | integer | Ticket ID |
Output | ID | Type | Description |
---|
Conversations | conversations | array[object] | An array of conversations |
Conversations Length | conversations-length | integer | Number of conversations |
Output Objects in Get All Conversations
Conversations
Field | Field ID | Type | Note |
---|
BCC Emails | bcc-emails | array | Email addresses added in the 'bcc' field of the incoming ticket email |
Body Text | body-text | string | Content of the conversation |
CC Emails | cc-emails | array | Email addresses added in the 'cc' field of the incoming ticket email |
Conversation ID | conversation-id | integer | The ID of the note or reply that is associated with the ticket |
Created At | created-at | string | Timestamp that denotes when the ticket/conversation was created. In UTC format. |
From Email | from-email | string | Email address that is replying to the ticket or adding the note. |
Incoming | incoming | boolean | Set to true if a particular conversation should appear as being created from outside |
Incoming | private | boolean | Set to true if a note is private. Can be set only for notes. |
Support Email | support-email | string | Support email address. You can find it in Admin -> Email (under channel). |
To Emails | to-emails | array | Email addresses of agents/users who need to be notified about this conversation |
Incoming | user-id | integer | ID of the agent/contact replying to the ticket. |
Get contact using ID
Input | ID | Type | Description |
---|
Task ID (required) | task | string | TASK_GET_CONTACT |
Contact ID (required) | contact-id | integer | ID of the contact |
Output | ID | Type | Description |
---|
Name | name | string | Name of the contact |
Email (optional) | email | string | The primary email address of the contact |
Phone (optional) | phone | string | Telephone number of the contact |
Mobile (optional) | mobile | string | Mobile number of the contact |
Description (optional) | description | string | Description of the contact |
Address (optional) | address | string | Address of the contact |
Job Title (optional) | job-title | string | Job title of the contact |
Tags (optional) | tags | array[string] | Tags associated with the contact |
Language (optional) | language | string | Language of the contact |
Time Zone (optional) | time-zone | string | Time zone of the contact |
Company ID (optional) | company-id | integer | ID of the primary company to which the contact belongs |
Unique External ID (optional) | unique-external-id | string | Unique external ID of the contact which be assigned by the user(agent) |
Twitter ID (optional) | twitter-id | string | Twitter ID of the contact |
View All Tickets (optional) | view-all-tickets | boolean | Set to true if the contact can see all the tickets that are associated with the primary company. |
Deleted (optional) | deleted | boolean | Set to true if the contact is deleted |
Active (optional) | active | boolean | Set to true if the contact has been verified |
Other Emails (optional) | other-emails | array[string] | List of other email addresses of the contact |
Other Companies (optional) | other-companies | array[object] | List of other companies to which the contact belongs |
Other Phone Numbers (optional) | other-phone-numbers | array[string] | List of other phone numbers of the contact |
Created At (optional) | created-at | string | Timestamp that denotes when the contact was created. In UTC format. |
Updated At (optional) | updated-at | string | Timestamp that denotes when the contact was last updated. In UTC format. |
Custom Fields (optional) | custom-fields | object | Custom fields that the contact have. Custom fields can be created or modified in Admin -> Customer Fields |
Output Objects in Get Contact
Field | Field ID | Type | Note |
---|
Company ID | company-id | integer | ID of the company |
View All Tickets | view-all-tickets | boolean | Set to true if the contact can see all the tickets that are associated with the company. |
Create contact
Input | ID | Type | Description |
---|
Task ID (required) | task | string | TASK_CREATE_CONTACT |
Name (required) | name | string | Name of the contact |
Email | email | string | The primary email address of the contact |
Phone | phone | string | Telephone number of the contact |
Mobile | mobile | string | Mobile number of the contact |
Description | description | string | Description of the contact |
Address | address | string | Address of the contact |
Job Title | job-title | string | Job title of the contact |
Tags | tags | array[string] | Tags associated with the contact |
Language | language | string | Language of the contact |
Time Zone | time-zone | string | Time zone of the contact |
Company ID | company-id | integer | ID of the primary company to which the contact belongs |
Unique External ID | unique-external-id | string | Unique external ID of the contact which be assigned by the user(agent) |
Twitter ID | twitter-id | string | Twitter ID of the contact |
View All Tickets | view-all-tickets | boolean | Used to determine if the contact can see all the tickets that are associated with the primary company. Note: this property will be ignored if the Company ID is not provided. |
Other Emails | other-emails | array[string] | List of other email addresses of the contact |
Other Companies | other-companies | array[string] | List of other companies to which the contact belongs. Each company should be in the format of company-id;view-all-tickets(boolean "true"/"false") Example: 123;true |
Other Phone Numbers | other-phone-numbers | array[string] | List of other phone numbers of the contact |
Output | ID | Type | Description |
---|
Contact ID | contact-id | integer | ID of the contact |
Created At | created-at | string | Timestamp that denotes when the contact was created. In UTC format. |
#Get Company
Get company using ID
Input | ID | Type | Description |
---|
Task ID (required) | task | string | TASK_GET_COMPANY |
Company ID (required) | company-id | integer | ID of the primary company to which the contact belongs |
Output | ID | Type | Description |
---|
Name | name | string | Name of the company |
Description (optional) | description | string | Description of the company |
Note (optional) | note | string | Note about the company |
Domains (optional) | domains | array[string] | Domains of the company |
Health Score (optional) | health-score | string | The strength of your relationship with the company. To look at all the possible values or create custom values, please go to Admin -> Customer Fields. Default values: "At risk", "Doing okay", "Happy" |
Account Tier (optional) | account-tier | string | Classification based on how much value the company brings to your business. To look at all the possible values or create custom values, please go to Admin -> Customer Fields. Default values: "Basic", "Premium", "Enterprise" |
Renewal Date (optional) | renewal-date | string | Date when your contract or relationship with the company is due for renewal |
Industry (optional) | industry | string | The industry in which the company operates. To look at all the possible values or create custom values, please go to Admin -> Customer Fields. |
Created At | created-at | string | Timestamp that denotes when the company was created. In UTC format. |
Updated At | updated-at | string | Timestamp that denotes when the company was last updated. In UTC format. |
Custom Fields (optional) | custom-fields | object | Custom fields that the company have. Custom fields can be created or modified in Admin -> Customer Fields |
#Create Company
Create company
Input | ID | Type | Description |
---|
Task ID (required) | task | string | TASK_CREATE_COMPANY |
Name (required) | name | string | Name of the company |
Description | description | string | Description of the company |
Note | note | string | Note about the company |
Domains | domains | array[string] | Domains of the company |
Health Score | health-score | string | The strength of your relationship with the company. To look at all the possible values or create custom values, please go to Admin -> Customer Fields. Default values: "At risk", "Doing okay", "Happy" |
Account Tier | account-tier | string | Classification based on how much value the company brings to your business. To look at all the possible values or create custom values, please go to Admin -> Customer Fields. Default values: "Basic", "Premium", "Enterprise" |
Renewal Date | renewal-date | string | Date when your contract or relationship with the company is due for renewal. Enter in the format YYYY-MM-DD. |
Industry | industry | string | The industry in which the company operates. To look at all the possible values or create custom values, please go to Admin -> Customer Fields. |
Output | ID | Type | Description |
---|
Company ID | company-id | integer | ID of the company |
Created At | created-at | string | Timestamp that denotes when the company was created. In UTC format. |
#Get All
Task to get all the IDs of existing contacts, companies, tickets, products, agents, roles, or skills. Note: products, agents, roles, and skills require admin privileges. Some of these might not work, depending on the plan you are on.
Input | ID | Type | Description |
---|
Task ID (required) | task | string | TASK_GET_ALL |
Object Type (required) | object-type | string | Type of object to get IDs for |
Length (required) | length | integer | The maximum number of IDs allowed is 500. The most recent IDs will be retrieved. |
Output | ID | Type | Description |
---|
IDs | ids | array[integer] | List of IDs |
ID Length | id-length | integer | Number of IDs |
#Get Product
Get product using ID. This task will only work if you have admin privileges.
Input | ID | Type | Description |
---|
Task ID (required) | task | string | TASK_GET_PRODUCT |
Product ID (required) | product-id | integer | Product ID |
Output | ID | Type | Description |
---|
Name | name | string | Name of the product |
Description | description | string | Description of the product |
Primary Email | primary-email | string | Primary email of the product |
Created At | created-at | string | Timestamp that denotes when the product was created |
Updated At | updated-at | string | Timestamp that denotes when the product was last updated |
Default | default | boolean | Set to true if the product is the default product |
#Get Agent
Get agent using ID. This task will only work if you have admin privileges. Agents are those in your team who will login to Freshdesk.
Input | ID | Type | Description |
---|
Task ID (required) | task | string | TASK_GET_AGENT |
Agent ID (required) | agent-id | integer | Agent ID |
Output | ID | Type | Description |
---|
Name (optional) | name | string | Name of the agent |
Active (optional) | active | boolean | Set to true if the agent is verified |
Email | email | string | Email of the agent |
Job Title (optional) | job-title | string | Job title of the agent |
Language (optional) | language | string | Language of the agent |
Mobile (optional) | mobile | string | Mobile number of the agent |
Phone (optional) | phone | string | Telephone number of the agent |
Time Zone (optional) | time-zone | string | Time zone of the agent |
Type | type | string | Type of the agent. Can be "Support Agent", "Field Agent" or "Collaborator" |
Ticket Scope | ticket-scope | string | Ticket permission of the agent. Can be "Global Access", "Group Access" or "Restricted Access" |
Available (optional) | available | boolean | Set to true if the agent is in a group that has enabled "Automatic Ticket Assignment" |
Group IDs (optional) | group-ids | array[integer] | Group IDs of the agent |
Role IDs (optional) | role-ids | array[integer] | Role IDs of the agent |
Skill IDs (optional) | skill-ids | array[integer] | Skill IDs of the agent |
Occasional | occasional | boolean | Set to true if the agent is not working full-time |
Signature (optional) | signature | string | Signature of the agent in HTML format |
Focus Mode (optional) | focus-mode | boolean | Set to true if the agent is in focus mode |
Deactivated (optional) | deactivated | boolean | Set to true if the agent is deactivated |
Created At (optional) | created-at | string | Timestamp that denotes when the agent was created |
Updated At (optional) | updated-at | string | Timestamp that denotes when the agent was last updated |
#Get Role
Get role using ID. This task will only work if you have admin privileges. Roles allow agents/collaborators to have different privileges.
Input | ID | Type | Description |
---|
Task ID (required) | task | string | TASK_GET_ROLE |
Role ID (required) | role-id | integer | Role ID |
Output | ID | Type | Description |
---|
Name | name | string | Name of the role |
Description | description | string | Description of the role |
Default | default | boolean | Set to true if the role is the default role |
Agent Type | agent-type | string | Type of the agent. Can be "Support Agent", "Field Agent" or "Collaborator" |
Created At | created-at | string | Timestamp that denotes when the role was created |
Updated At | updated-at | string | Timestamp that denotes when the role was last updated |
#Get Group
Get group using ID. This task will only work if you have admin privileges. Agents can be classified into groups such as Customer Support.
Input | ID | Type | Description |
---|
Task ID (required) | task | string | TASK_GET_GROUP |
Group ID (required) | group-id | integer | Group ID |
Output | ID | Type | Description |
---|
Name | name | string | Name of the group |
Description | description | string | Description of the group |
Agent IDs (optional) | agent-ids | array[integer] | Agent IDs of the group |
Auto Ticket Assign | auto-ticket-assign | string | The type of automatic ticket assignment set for the group. |
Escalate To (optional) | escalate-to | integer | The ID of the user to whom an escalation email is sent if a ticket is unassigned. |
Unassigned Duration (optional) | unassigned-duration | string | The duration for which a ticket is unassigned before it is escalated. |
Group Type (optional) | group-type | string | Group type. Can be "support_agent_group" or "field_agent_group" |
Agent Availability Status (optional) | agent-availability-status | boolean | The availability status of the agent in the group. Automatically set to true if the group has enabled "Automatic Ticket Assignment". |
Created At | created-at | string | Timestamp that denotes when the group was created |
Updated At | updated-at | string | Timestamp that denotes when the group was last updated |
#Get Skill
Get skill using ID. This task will only work if you have admin privileges. Agents can be assigned skills, and it is possible for tickets to be automatically assigned to agents based on the skills they have.
Input | ID | Type | Description |
---|
Task ID (required) | task | string | TASK_GET_SKILL |
Skill ID (required) | skill-id | integer | Skill ID |
Output | ID | Type | Description |
---|
Name | name | string | Name of the skill |
Rank | rank | integer | Rank of the skill |
Condition Match Type | condition-match-type | string | Type of condition match. Can be "all" or "any" |
Conditions | conditions | array | Conditions for the skill |
Created At | created-at | string | Timestamp that denotes when the skill was created |
Updated At | updated-at | string | Timestamp that denotes when the skill was last updated |