Integrate Freshdesk into the workflow. Create, update, look up, and search support tickets, send public replies, add private or public notes, create and find contacts, and list agents to route work. Can also run workflows when a Freshdesk automation rule posts a webhook for a new or updated ticket. Requires your Freshdesk subdomain and an agent API key.
Create a support ticket in Freshdesk for a requester email, requester ID, or phone. Status defaults to Open and priority to Low.
| Parameter | Type | Required | Description |
|---|
domain | string | Yes | Freshdesk helpdesk subdomain, e.g. "acme" or "acme.freshdesk.com" |
apiKey | string | Yes | Freshdesk API key, from Profile Settings > View API Key |
email | string | No | Requester email. A new contact is created if none exists. Creating a ticket needs an email, requester ID, or phone. |
requesterId | string | No | ID of an existing requester contact, instead of the email |
phone | string | No | Requester phone. Without an email, the requester name is also required. |
name | string | No | Requester name |
subject | string | No | Ticket subject |
description | string | No | Ticket description, HTML allowed |
status | number | No | Status: 2 Open (default on create), 3 Pending, 4 Resolved, 5 Closed |
priority | number | No | Priority: 1 Low (default on create), 2 Medium, 3 High, 4 Urgent |
source | number | No | Channel: 1 Email, 2 Portal (default), 3 Phone, 7 Chat, 9 Feedback widget, 10 Outbound email |
type | string | No | Ticket type, e.g. "Question", "Incident", or "Problem" |
responderId | string | No | ID of the agent to assign |
groupId | string | No | ID of the group to assign |
companyId | string | No | Company ID of the requester (Multiple Companies feature) |
productId | string | No | ID of the product |
tags | string | No | Comma-separated tags. On update this replaces the existing tags. |
ccEmails | string | No | Comma-separated CC email addresses (create only) |
dueBy | string | No | Resolution due time, ISO 8601 |
frDueBy | string | No | First response due time, ISO 8601 |
customFields | json | No | Custom field values keyed by name, e.g. {"cf_order_id": "A-1001"} |
| Parameter | Type | Description |
|---|
ticket | object | The created ticket |
↳ customFields | json | Custom field values keyed by name |
↳ requester | object | Requester details, when requested with Include Requester |
Update a Freshdesk ticket by ID: change status, priority, assigned agent or group, type, tags, or custom fields. Only the fields you set change.
| Parameter | Type | Required | Description |
|---|
domain | string | Yes | Freshdesk helpdesk subdomain, e.g. "acme" or "acme.freshdesk.com" |
apiKey | string | Yes | Freshdesk API key, from Profile Settings > View API Key |
ticketId | string | Yes | ID of the ticket to update |
email | string | No | Requester email. A new contact is created if none exists. Creating a ticket needs an email, requester ID, or phone. |
requesterId | string | No | ID of an existing requester contact, instead of the email |
phone | string | No | Requester phone. Without an email, the requester name is also required. |
name | string | No | Requester name |
subject | string | No | Ticket subject |
description | string | No | Ticket description, HTML allowed |
status | number | No | Status: 2 Open (default on create), 3 Pending, 4 Resolved, 5 Closed |
priority | number | No | Priority: 1 Low (default on create), 2 Medium, 3 High, 4 Urgent |
source | number | No | Channel: 1 Email, 2 Portal (default), 3 Phone, 7 Chat, 9 Feedback widget, 10 Outbound email |
type | string | No | Ticket type, e.g. "Question", "Incident", or "Problem" |
responderId | string | No | ID of the agent to assign |
groupId | string | No | ID of the group to assign |
companyId | string | No | Company ID of the requester (Multiple Companies feature) |
productId | string | No | ID of the product |
tags | string | No | Comma-separated tags. On update this replaces the existing tags. |
ccEmails | string | No | Comma-separated CC email addresses (create only) |
dueBy | string | No | Resolution due time, ISO 8601 |
frDueBy | string | No | First response due time, ISO 8601 |
customFields | json | No | Custom field values keyed by name, e.g. {"cf_order_id": "A-1001"} |
| Parameter | Type | Description |
|---|
ticket | object | The updated ticket |
↳ customFields | json | Custom field values keyed by name |
↳ requester | object | Requester details, when requested with Include Requester |
Get a Freshdesk ticket by ID, including its description, status, priority, and assignment. Optionally embeds the requester (one extra API credit).
| Parameter | Type | Required | Description |
|---|
domain | string | Yes | Freshdesk helpdesk subdomain, e.g. "acme" or "acme.freshdesk.com" |
apiKey | string | Yes | Freshdesk API key, from Profile Settings > View API Key |
ticketId | string | Yes | ID of the ticket |
includeRequester | boolean | No | Embed the requester's name, email, phone, and mobile |
| Parameter | Type | Description |
|---|
ticket | object | The ticket |
↳ customFields | json | Custom field values keyed by name |
↳ requester | object | Requester details, when requested with Include Requester |
List Freshdesk tickets. "list" mode filters by requester, company, a predefined view, or update time (tickets from the last 30 days unless Updated Since is set). "search" mode runs a ticket query such as "status:2 AND priority:4" over ticket and custom fields.
| Parameter | Type | Required | Description |
|---|
domain | string | Yes | Freshdesk helpdesk subdomain, e.g. "acme" or "acme.freshdesk.com" |
apiKey | string | Yes | Freshdesk API key, from Profile Settings > View API Key |
listMode | string | No | "list" (default) to filter, or "search" to run a query |
query | string | No | Search query for search mode, e.g. "priority:4 AND status:2" or "tag:'refund'". Up to 512 characters. |
filter | string | No | Predefined filter: new_and_my_open, watching, spam, or deleted |
requesterId | string | No | Only tickets from this requester contact ID |
email | string | No | Only tickets from this requester email |
companyId | string | No | Only tickets of this company ID |
updatedSince | string | No | Only tickets updated since this time, ISO 8601, e.g. 2026-10-01T00:00:00Z |
orderBy | string | No | Sort field: created_at (default), due_by, updated_at, or status |
orderType | string | No | Sort direction: desc (default) or asc |
includeRequester | boolean | No | Embed each requester in list mode (two extra API credits) |
page | number | No | Page number, from 1 (search mode allows up to 10) |
perPage | number | No | Tickets per page in list mode (default 30, max 100). Search returns 30. |
| Parameter | Type | Description |
|---|
tickets | array | Matching tickets |
↳ customFields | json | Custom field values keyed by name |
↳ requester | object | Requester details, when requested with Include Requester |
count | number | Number of tickets returned |
total | number | Total matches reported by search mode |
Send a public reply on a Freshdesk ticket. The requester receives it by email from the support address.
| Parameter | Type | Required | Description |
|---|
domain | string | Yes | Freshdesk helpdesk subdomain, e.g. "acme" or "acme.freshdesk.com" |
apiKey | string | Yes | Freshdesk API key, from Profile Settings > View API Key |
ticketId | string | Yes | ID of the ticket to reply to |
body | string | Yes | Reply content, HTML allowed |
fromEmail | string | No | Support email address to send from. Defaults to the global support email. |
ccEmails | string | No | Comma-separated CC email addresses |
bccEmails | string | No | Comma-separated BCC email addresses |
userId | string | No | ID of the agent the reply is sent as |
| Parameter | Type | Description |
|---|
conversation | object | The reply that was sent |
Add a note to a Freshdesk ticket. Notes are private (agents only) by default; set Private to false for a public note.
| Parameter | Type | Required | Description |
|---|
domain | string | Yes | Freshdesk helpdesk subdomain, e.g. "acme" or "acme.freshdesk.com" |
apiKey | string | Yes | Freshdesk API key, from Profile Settings > View API Key |
ticketId | string | Yes | ID of the ticket |
body | string | Yes | Note content, HTML allowed |
private | boolean | No | Whether the note is private. Defaults to true. |
notifyEmails | string | No | Comma-separated emails of agents or users to notify |
incoming | boolean | No | Show the note as created from outside the helpdesk |
userId | string | No | ID of the agent or user adding the note |
| Parameter | Type | Description |
|---|
conversation | object | The note that was added |
Create a contact (customer) in Freshdesk. Needs a name plus an email, phone, mobile, or unique external ID; email must be unique.
| Parameter | Type | Required | Description |
|---|
domain | string | Yes | Freshdesk helpdesk subdomain, e.g. "acme" or "acme.freshdesk.com" |
apiKey | string | Yes | Freshdesk API key, from Profile Settings > View API Key |
name | string | Yes | Name |
email | string | No | Primary email address |
phone | string | No | Telephone number |
mobile | string | No | Mobile number |
uniqueExternalId | string | No | Your own unique ID for the contact, e.g. a CRM ID |
companyId | string | No | ID of the primary company |
jobTitle | string | No | Job title |
description | string | No | Short description of the contact |
address | string | No | Address |
tags | string | No | Comma-separated tags |
otherEmails | string | No | Comma-separated additional email addresses |
customFields | json | No | Custom field values keyed by name, e.g. {"crm_id": "C-42"} |
| Parameter | Type | Description |
|---|
contact | object | The created contact |
↳ customFields | json | Custom field values keyed by name |
Get a Freshdesk contact by ID.
| Parameter | Type | Required | Description |
|---|
domain | string | Yes | Freshdesk helpdesk subdomain, e.g. "acme" or "acme.freshdesk.com" |
apiKey | string | Yes | Freshdesk API key, from Profile Settings > View API Key |
contactId | string | Yes | ID of the contact |
| Parameter | Type | Description |
|---|
contact | object | The contact |
↳ customFields | json | Custom field values keyed by name |
Find Freshdesk contacts. "filter" matches an exact email, phone, mobile, company, or state; "query" runs a contact query such as "email:'jane@example.com'" or "company_id:42"; "name" autocompletes on the name and returns only id and name.
| Parameter | Type | Required | Description |
|---|
domain | string | Yes | Freshdesk helpdesk subdomain, e.g. "acme" or "acme.freshdesk.com" |
apiKey | string | Yes | Freshdesk API key, from Profile Settings > View API Key |
searchMode | string | No | "filter" (default), "query", or "name" |
email | string | No | Exact email to match (filter mode) |
phone | string | No | Exact phone number to match (filter mode) |
mobile | string | No | Exact mobile number to match (filter mode) |
companyId | string | No | Only contacts of this company ID (filter mode) |
state | string | No | Contact state: blocked, deleted, unverified, or verified (filter mode) |
updatedSince | string | No | Only contacts updated since this time, ISO 8601 (filter mode) |
query | string | No | Contact query for query mode, e.g. "active:true AND company_id:42" |
term | string | No | Start of a name for name mode, e.g. "Jan" |
page | number | No | Page number, from 1 (query mode allows up to 10) |
perPage | number | No | Contacts per page in filter mode (default 30, max 100) |
| Parameter | Type | Description |
|---|
contacts | array | Matching contacts. Name mode returns only id and name for each. |
↳ customFields | json | Custom field values keyed by name |
count | number | Number of contacts returned |
total | number | Total matches reported by query mode |
List Freshdesk agents with their IDs, names, emails, groups, and availability, optionally filtered by email, phone, or full-time/occasional. Requires an admin API key.
| Parameter | Type | Required | Description |
|---|
domain | string | Yes | Freshdesk helpdesk subdomain, e.g. "acme" or "acme.freshdesk.com" |
apiKey | string | Yes | Freshdesk API key, from Profile Settings > View API Key |
email | string | No | Only the agent with this email |
phone | string | No | Only agents with this phone number |
mobile | string | No | Only agents with this mobile number |
state | string | No | fulltime or occasional |
page | number | No | Page number, from 1 |
perPage | number | No | Agents per page (default 30, max 100) |
| Parameter | Type | Description |
|---|
agents | array | Agents |
count | number | Number of agents returned |