# Freshservice

> Run your Freshservice service desk: raise and update tickets, reply to requesters, add notes and tasks, and look up requesters, agents, groups, departments and locations.

App · Help Desk · 20 actions. Web page: https://docs.lodol.com/docs/integrations/freshservice

## Actions

### Add a note to a ticket

Add a note to a ticket. Notes are private to agents unless you say otherwise, and do not email the requester.

**Inputs**

- Ticket ID (`ticket_id`, text, required): Which ticket to add a note to. This is the number in the ticket's web address (12 in https://acme.freshservice.com/a/tickets/12), and you can paste the whole address instead.
- Note (`body`, text, required): What to record. Freshservice stores this as HTML, so plain text arrives as one paragraph.
- Private to agents (`private`, true/false): On by default in Freshservice. Turn it off to let the requester see the note in the portal.
- Came from outside (`incoming`, true/false): Turn on to record the note as something that arrived from outside the portal, such as a phone call.
- Notify (`notify_emails`, list): Email addresses of people to tell about this note.
- Note from agent ID (`author_id`, text): The numeric ID of the agent the note should be attributed to. Leave blank for the agent whose API key this connection uses.

**Outputs**: One reply or note on a ticket.

- `attachments` (list): Files attached to the entry.
- `bcc_emails` (list): Addresses blind-copied on it.
- `body` (text): The message, as HTML.
- `body_text` (text): The same message with the HTML stripped out.
- `cc_emails` (list): Addresses copied on it.
- `created_at` (text): When the entry was added, in UTC.
- `from_email` (text): The address a reply was sent from.
- `id` (number): The conversation entry's ID.
- `incoming` (true/false): True when the entry came from outside the portal.
- `private` (true/false): True for a note only agents can see. Replies are never private.
- `source` (number): How the entry arrived, as a number.
- `support_email` (text): The support address a note is attributed to.
- `ticket_id` (number): The ticket this entry belongs to.
- `to_emails` (list): Addresses the entry was sent to.
- `updated_at` (text): When the entry last changed, in UTC.
- `user_id` (number): ID of the agent or requester who added it.

**Example output**

```json
{
  "attachments": [],
  "bcc_emails": [],
  "body": "<div>We have ordered a replacement charger.</div>",
  "body_text": "We have ordered a replacement charger.",
  "cc_emails": [],
  "created_at": "2026-09-16T10:05:00Z",
  "id": 21000167412,
  "incoming": false,
  "private": true,
  "ticket_id": 12,
  "to_emails": [],
  "updated_at": "2026-09-16T10:05:00Z",
  "user_id": 21000418001
}
```

### Add a task to a ticket

Break a Freshservice ticket into a task somebody can own.

**Inputs**

- Ticket ID (`ticket_id`, text, required): Which ticket to add a task to. This is the number in the ticket's web address (12 in https://acme.freshservice.com/a/tickets/12), and you can paste the whole address instead.
- Title (`title`, text, required): What the task is.
- Description (`description`, text): What doing the task involves.
- Status (`status`, text): Where the task starts. Leave blank for Open. One of: `1` (Open), `2` (In progress), `3` (Completed).
- Due (`due_date`, date and time): When the task has to be done by.
- Remind this many seconds before (`notify_before`, number): How long before the due date to send a reminder, in seconds (3600 is an hour). Needs a due date. At least 0.
- Assign to agent (`agent_id`, text): The numeric ID of the agent who should do the task. Use 'List agents' to find one.
- Agent group (`group_id`, text): The group this is assigned to. Its numeric ID also works.
- Workspace ID (`workspace_id`, text): Only for accounts that use workspaces. Leave blank for the primary workspace, which is what an account without workspaces has.

**Outputs**: One task on a ticket.

- `agent_id` (number): ID of the agent the task is assigned to.
- `closed_at` (text): When the task was completed, in UTC.
- `created_at` (text): When the task was created, in UTC.
- `deleted` (true/false): True once the task has been deleted.
- `description` (text): Description of the task.
- `due_date` (text): When the task is due, in UTC.
- `group_id` (number): ID of the group the task is assigned to.
- `id` (number): The task's ID.
- `notify_before` (number): How many seconds before the due date a reminder is sent.
- `status` (number): Status as a number: 1 Open, 2 In progress, 3 Completed, 4 Blocked.
- `title` (text): Title of the task.
- `updated_at` (text): When the task last changed, in UTC.
- `workspace_id` (number): ID of the workspace the task belongs to.

**Example output**

```json
{
  "agent_id": 21000418001,
  "closed_at": null,
  "created_at": "2026-09-16T10:10:00Z",
  "deleted": false,
  "description": "Raise it with the hardware supplier.",
  "due_date": "2026-09-19T12:00:00Z",
  "group_id": 21000205442,
  "id": 21000012345,
  "notify_before": 3600,
  "status": 1,
  "title": "Order a replacement charger",
  "updated_at": "2026-09-16T10:10:00Z",
  "workspace_id": 2
}
```

### Create a requester

Add somebody who can raise tickets. Needs a first name and one of email, work phone or mobile phone.

**Inputs**

- First name (`first_name`, text, required): The requester's given name.
- Last name (`last_name`, text): The requester's family name.
- Email address (`primary_email`, text): Their main email address. Freshservice needs one of email, work phone or mobile phone.
- Work phone (`work_phone_number`, text): Their work phone number.
- Mobile phone (`mobile_phone_number`, text): Their mobile phone number.
- Job title (`job_title`, text): What they do.
- Other email addresses (`secondary_emails`, list): Any additional addresses tickets may arrive from.
- Departments (`department_ids`, list): The departments this person belongs to. Choose any number of them; numeric IDs also work.
- Can see their departments' tickets (`can_see_all_tickets_from_associated_departments`, true/false): Turn on to let them see every ticket raised by their departments. Freshservice turns this off on any update that does not explicitly turn it on, so leave it on for somebody who already has it.
- Reporting manager ID (`reporting_manager_id`, text): The numeric ID of the requester or agent they report to.
- Location (`location_id`, text): The site this person works at. Its numeric ID also works.
- Address (`address`, text): Their postal address.
- Time zone (`time_zone`, text): Their time zone, spelled the way Freshservice spells it, such as 'Eastern Time (US & Canada)'. Leave blank for the account's.
- Clock (`time_format`, text): Whether they see times on a 12- or 24-hour clock. One of: `12h` (12-hour clock), `24h` (24-hour clock).
- Language (`language`, text): Their language code, such as 'en'. Leave blank for English.
- Background information (`background_information`, text): Anything an agent should know about this person.
- Custom fields (`custom_fields`, object): Your account's own requester fields, as name-and-value pairs.

**Outputs**: One requester — somebody who can raise tickets.

- `active` (true/false): True when the requester is active.
- `address` (text): Postal address.
- `background_information` (text): Free-text notes about them.
- `can_see_all_tickets_from_associated_departments` (true/false): True when they can see every ticket raised by their departments.
- `created_at` (text): When the requester was created, in UTC.
- `custom_fields` (object): The account's own custom fields on this record, keyed by field name.
- `department_ids` (list): IDs of the departments they belong to.
- `first_name` (text): Given name.
- `has_logged_in` (true/false): True once they have signed in to the portal.
- `id` (number): The requester's ID, which ticket actions take.
- `is_agent` (true/false): True when this person is also an agent.
- `job_title` (text): Job title.
- `language` (text): Their language code, such as 'en'.
- `last_name` (text): Family name.
- `location_id` (number): ID of the location they work at.
- `mobile_phone_number` (text): Mobile phone number.
- `primary_email` (text): Primary email address.
- `reporting_manager_id` (number): ID of their reporting manager.
- `secondary_emails` (list): Any additional email addresses.
- `time_format` (text): Either '12h' or '24h'.
- `time_zone` (text): Their time zone, such as 'Eastern Time (US & Canada)'.
- `updated_at` (text): When the requester last changed, in UTC.
- `work_phone_number` (text): Work phone number.

**Example output**

```json
{
  "active": true,
  "address": null,
  "background_information": null,
  "can_see_all_tickets_from_associated_departments": false,
  "created_at": "2026-09-01T08:00:00Z",
  "custom_fields": {},
  "department_ids": [
    21000114444
  ],
  "first_name": "Sam",
  "has_logged_in": true,
  "id": 21000418017,
  "is_agent": false,
  "job_title": "Designer",
  "language": "en",
  "last_name": "Rivera",
  "location_id": 21000331414,
  "mobile_phone_number": null,
  "primary_email": "sam.rivera@example.com",
  "reporting_manager_id": null,
  "secondary_emails": [],
  "time_format": "12h",
  "time_zone": "Eastern Time (US & Canada)",
  "updated_at": "2026-09-16T09:30:00Z",
  "work_phone_number": "5550100"
}
```

### Create a ticket

Raise a ticket in Freshservice for a requester.

**Inputs**

- Subject (`subject`, text, required): One line saying what the ticket is about.
- Description (`description`, text, required): The body of the ticket. Freshservice stores this as HTML, so plain text arrives as one paragraph.
- Status (`status`, text, required): Where the ticket stands. One of: `2` (Open), `3` (Pending), `4` (Resolved), `5` (Closed).
- Priority (`priority`, text, required): How urgent the ticket is. One of: `1` (Low), `2` (Medium), `3` (High), `4` (Urgent).
- Requester ID (`requester_id`, text): Who the ticket is for, as their numeric Freshservice ID (use 'List requesters' to find one). Fill in this, an email address or a phone number.
- Requester email (`email`, text): Who the ticket is for, by email address. An address nobody in Freshservice uses creates a new requester.
- Requester phone (`phone`, text): Who the ticket is for, by phone number. Fill in the name as well when there is no email address.
- Requester name (`name`, text): What to call a requester created from a phone number.
- Source (`source`, text): Where the ticket came from. Leave blank for Portal. One of: `1` (Email), `2` (Portal), `3` (Phone), `4` (Chat), `5` (Feedback widget), `6` (Yammer), `7` (AWS CloudWatch), `8` (PagerDuty), `9` (Walk-up), `10` (Slack), and 6 more.
- Urgency (`urgency`, text): How quickly the requester needs this dealt with. One of: `1` (Low), `2` (Medium), `3` (High).
- Impact (`impact`, text): How widely the issue is felt. One of: `1` (Low), `2` (Medium), `3` (High).
- Assign to agent (`responder_id`, text): The agent's numeric ID. Use 'List agents' to find one. Leave blank to let Freshservice's own assignment rules decide.
- Agent group (`group_id`, text): The group this is assigned to. Its numeric ID also works.
- Department (`department_id`, text): The department the ticket belongs to. Its numeric ID also works.
- Category (`category`, text): Category to file the ticket under, exactly as it is spelled in Freshservice.
- Sub-category (`sub_category`, text): Sub-category within the category.
- Item (`item_category`, text): Item within the sub-category.
- Resolution due (`due_by`, date and time): When the ticket must be resolved. Leave blank to let the account's SLA policy decide.
- First response due (`fr_due_by`, date and time): When the first response is due. Leave blank to let the account's SLA policy decide.
- Tags (`tags`, list): Tags to put on the ticket.
- Copy to (`cc_emails`, list): Email addresses to copy on the ticket's emails.
- Custom fields (`custom_fields`, object): Your account's own ticket fields, as name-and-value pairs. Use the field's internal name, which is what the API calls it.
- Workspace ID (`workspace_id`, text): Only for accounts that use workspaces. Leave blank for the primary workspace, which is what an account without workspaces has.

**Outputs**: One Freshservice ticket.

- `approval_status` (number): Approval status as a number, when one applies.
- `approval_status_name` (text): That approval status in words.
- `attachments` (list): Files attached to the ticket.
- `category` (text): Category the ticket is filed under.
- `cc_emails` (list): Addresses copied on the ticket's emails.
- `created_at` (text): When the ticket was created, in UTC.
- `created_within_business_hours` (true/false): True when the ticket was raised inside the account's business hours.
- `custom_fields` (object): The account's own custom fields on this record, keyed by field name.
- `deleted` (true/false): True when the ticket has been deleted.
- `department_id` (number): ID of the department the ticket belongs to.
- `description` (text): Description of the ticket, as HTML.
- `description_text` (text): The same description with the HTML stripped out.
- `due_by` (text): When the ticket is due for resolution, in UTC.
- `email_config_id` (number): ID of the support email the ticket came in on.
- `fr_due_by` (text): When the first response is due, in UTC.
- `fr_escalated` (true/false): True once the first-response SLA has been breached.
- `fwd_emails` (list): Addresses the ticket has been forwarded to.
- `group_id` (number): ID of the agent group the ticket sits in.
- `id` (number): The ticket's number — the one in its web address, and the ID every other ticket action takes.
- `impact` (number): Impact as a number: 1 Low, 2 Medium, 3 High.
- `is_escalated` (true/false): True once the resolution SLA has been breached.
- `item_category` (text): Item within the sub-category.
- `priority` (number): Priority as a number: 1 Low, 2 Medium, 3 High, 4 Urgent.
- `reply_cc_emails` (list): Addresses copied on replies.
- `requested_for_id` (number): ID of the person the service request is for, when that differs from the requester.
- `requester_id` (number): ID of the requester the ticket was raised for.
- `resolution_notes` (text): Resolution notes, as HTML.
- `resolution_notes_html` (text): Resolution notes, as HTML.
- `responder_id` (number): ID of the agent the ticket is assigned to.
- `sla_policy_id` (number): ID of the SLA policy applied to the ticket.
- `source` (number): How the ticket arrived, as a number: 1 Email, 2 Portal, 3 Phone, 4 Chat, 9 Walk-up, 10 Slack, 15 MS Teams, and so on.
- `spam` (true/false): True when the ticket has been marked as spam.
- `status` (number): Status as a number: 2 Open, 3 Pending, 4 Resolved, 5 Closed. An account with custom statuses can return other numbers.
- `sub_category` (text): Sub-category of the category.
- `subject` (text): Subject line of the ticket.
- `tags` (list): Tags on the ticket. Only present when 'tags' was asked for as an embed.
- `to_emails` (list): Addresses the original email was sent to.
- `type` (text): The kind of ticket, such as 'Incident'.
- `updated_at` (text): When the ticket last changed, in UTC.
- `urgency` (number): Urgency as a number: 1 Low, 2 Medium, 3 High.
- `workspace_id` (number): ID of the workspace the ticket belongs to.

**Example output**

```json
{
  "category": "Hardware",
  "cc_emails": [],
  "created_at": "2026-09-16T09:30:00Z",
  "custom_fields": {},
  "deleted": false,
  "department_id": 21000114444,
  "description": "<div>It stopped charging overnight.</div>",
  "description_text": "It stopped charging overnight.",
  "due_by": "2026-09-19T12:00:00Z",
  "fr_due_by": "2026-09-17T12:00:00Z",
  "fr_escalated": false,
  "group_id": 21000205442,
  "id": 12,
  "impact": 1,
  "is_escalated": false,
  "priority": 3,
  "requester_id": 21000418017,
  "responder_id": 21000418001,
  "source": 2,
  "spam": false,
  "status": 2,
  "sub_category": "Laptop",
  "subject": "Laptop will not start",
  "tags": [
    "hardware"
  ],
  "type": "Incident",
  "updated_at": "2026-09-16T09:30:00Z",
  "urgency": 2,
  "workspace_id": 2
}
```

### Delete a ticket

Delete a Freshservice ticket. It goes to the deleted view rather than disappearing, and can be restored there.

**Inputs**

- Ticket ID (`ticket_id`, text, required): Which ticket to delete. This is the number in the ticket's web address (12 in https://acme.freshservice.com/a/tickets/12), and you can paste the whole address instead.

**Outputs**: Confirmation that the ticket was deleted. Freshservice answers a delete with no content at all, so this is built from the request.

- `deleted` (true/false): Always true — the delete was accepted.
- `id` (number): The ticket that was deleted.

**Example output**

```json
{
  "deleted": true,
  "id": 12
}
```

### Get a requester

Read one Freshservice requester by their ID.

**Inputs**

- Requester ID (`requester_id`, text, required): The requester's numeric Freshservice ID. Use 'List requesters' to find one, or paste the requester's web address.

**Outputs**: One requester — somebody who can raise tickets.

- `active` (true/false): True when the requester is active.
- `address` (text): Postal address.
- `background_information` (text): Free-text notes about them.
- `can_see_all_tickets_from_associated_departments` (true/false): True when they can see every ticket raised by their departments.
- `created_at` (text): When the requester was created, in UTC.
- `custom_fields` (object): The account's own custom fields on this record, keyed by field name.
- `department_ids` (list): IDs of the departments they belong to.
- `first_name` (text): Given name.
- `has_logged_in` (true/false): True once they have signed in to the portal.
- `id` (number): The requester's ID, which ticket actions take.
- `is_agent` (true/false): True when this person is also an agent.
- `job_title` (text): Job title.
- `language` (text): Their language code, such as 'en'.
- `last_name` (text): Family name.
- `location_id` (number): ID of the location they work at.
- `mobile_phone_number` (text): Mobile phone number.
- `primary_email` (text): Primary email address.
- `reporting_manager_id` (number): ID of their reporting manager.
- `secondary_emails` (list): Any additional email addresses.
- `time_format` (text): Either '12h' or '24h'.
- `time_zone` (text): Their time zone, such as 'Eastern Time (US & Canada)'.
- `updated_at` (text): When the requester last changed, in UTC.
- `work_phone_number` (text): Work phone number.

**Example output**

```json
{
  "active": true,
  "address": null,
  "background_information": null,
  "can_see_all_tickets_from_associated_departments": false,
  "created_at": "2026-09-01T08:00:00Z",
  "custom_fields": {},
  "department_ids": [
    21000114444
  ],
  "first_name": "Sam",
  "has_logged_in": true,
  "id": 21000418017,
  "is_agent": false,
  "job_title": "Designer",
  "language": "en",
  "last_name": "Rivera",
  "location_id": 21000331414,
  "mobile_phone_number": null,
  "primary_email": "sam.rivera@example.com",
  "reporting_manager_id": null,
  "secondary_emails": [],
  "time_format": "12h",
  "time_zone": "Eastern Time (US & Canada)",
  "updated_at": "2026-09-16T09:30:00Z",
  "work_phone_number": "5550100"
}
```

### Get a ticket

Read one Freshservice ticket by its ID.

**Inputs**

- Ticket ID (`ticket_id`, text, required): Which ticket to read. This is the number in the ticket's web address (12 in https://acme.freshservice.com/a/tickets/12), and you can paste the whole address instead.
- Also fetch (`include`, text): Extra details to pull into the ticket: its tags, its requester, its stats. Each one costs an extra API credit, so pick only what the workflow uses. One or more of: `tags`, `conversations`, `requester`, `requested_for` (Requested for), `stats`, `problem`, `assets`, `impacted_services` (Impacted services), `change`, `changes`, and 10 more.

**Outputs**: One Freshservice ticket.

- `approval_status` (number): Approval status as a number, when one applies.
- `approval_status_name` (text): That approval status in words.
- `attachments` (list): Files attached to the ticket.
- `category` (text): Category the ticket is filed under.
- `cc_emails` (list): Addresses copied on the ticket's emails.
- `created_at` (text): When the ticket was created, in UTC.
- `created_within_business_hours` (true/false): True when the ticket was raised inside the account's business hours.
- `custom_fields` (object): The account's own custom fields on this record, keyed by field name.
- `deleted` (true/false): True when the ticket has been deleted.
- `department_id` (number): ID of the department the ticket belongs to.
- `description` (text): Description of the ticket, as HTML.
- `description_text` (text): The same description with the HTML stripped out.
- `due_by` (text): When the ticket is due for resolution, in UTC.
- `email_config_id` (number): ID of the support email the ticket came in on.
- `fr_due_by` (text): When the first response is due, in UTC.
- `fr_escalated` (true/false): True once the first-response SLA has been breached.
- `fwd_emails` (list): Addresses the ticket has been forwarded to.
- `group_id` (number): ID of the agent group the ticket sits in.
- `id` (number): The ticket's number — the one in its web address, and the ID every other ticket action takes.
- `impact` (number): Impact as a number: 1 Low, 2 Medium, 3 High.
- `is_escalated` (true/false): True once the resolution SLA has been breached.
- `item_category` (text): Item within the sub-category.
- `priority` (number): Priority as a number: 1 Low, 2 Medium, 3 High, 4 Urgent.
- `reply_cc_emails` (list): Addresses copied on replies.
- `requested_for_id` (number): ID of the person the service request is for, when that differs from the requester.
- `requester_id` (number): ID of the requester the ticket was raised for.
- `resolution_notes` (text): Resolution notes, as HTML.
- `resolution_notes_html` (text): Resolution notes, as HTML.
- `responder_id` (number): ID of the agent the ticket is assigned to.
- `sla_policy_id` (number): ID of the SLA policy applied to the ticket.
- `source` (number): How the ticket arrived, as a number: 1 Email, 2 Portal, 3 Phone, 4 Chat, 9 Walk-up, 10 Slack, 15 MS Teams, and so on.
- `spam` (true/false): True when the ticket has been marked as spam.
- `status` (number): Status as a number: 2 Open, 3 Pending, 4 Resolved, 5 Closed. An account with custom statuses can return other numbers.
- `sub_category` (text): Sub-category of the category.
- `subject` (text): Subject line of the ticket.
- `tags` (list): Tags on the ticket. Only present when 'tags' was asked for as an embed.
- `to_emails` (list): Addresses the original email was sent to.
- `type` (text): The kind of ticket, such as 'Incident'.
- `updated_at` (text): When the ticket last changed, in UTC.
- `urgency` (number): Urgency as a number: 1 Low, 2 Medium, 3 High.
- `workspace_id` (number): ID of the workspace the ticket belongs to.

**Example output**

```json
{
  "category": "Hardware",
  "cc_emails": [],
  "created_at": "2026-09-16T09:30:00Z",
  "custom_fields": {},
  "deleted": false,
  "department_id": 21000114444,
  "description": "<div>It stopped charging overnight.</div>",
  "description_text": "It stopped charging overnight.",
  "due_by": "2026-09-19T12:00:00Z",
  "fr_due_by": "2026-09-17T12:00:00Z",
  "fr_escalated": false,
  "group_id": 21000205442,
  "id": 12,
  "impact": 1,
  "is_escalated": false,
  "priority": 3,
  "requester_id": 21000418017,
  "responder_id": 21000418001,
  "source": 2,
  "spam": false,
  "status": 2,
  "sub_category": "Laptop",
  "subject": "Laptop will not start",
  "tags": [
    "hardware"
  ],
  "type": "Incident",
  "updated_at": "2026-09-16T09:30:00Z",
  "urgency": 2,
  "workspace_id": 2
}
```

### Get an agent

Read one Freshservice agent by their ID.

**Inputs**

- Agent ID (`agent_id`, text, required): The agent's numeric Freshservice ID. Use 'List agents' to find one, or paste the agent's web address.

**Outputs**: One agent — somebody who works on tickets.

- `active` (true/false): True when the agent is active.
- `address` (text): Postal address.
- `background_information` (text): Free-text notes about them.
- `can_see_all_tickets_from_associated_departments` (true/false): True when they can see every ticket raised by their departments.
- `created_at` (text): When the agent was created, in UTC.
- `custom_fields` (object): The account's own custom fields on this record, keyed by field name.
- `department_ids` (list): IDs of the departments they belong to.
- `email` (text): Email address.
- `first_name` (text): Given name.
- `has_logged_in` (true/false): True once they have signed in.
- `id` (number): The agent's ID, which ticket actions take.
- `job_title` (text): Job title.
- `language` (text): Their language code, such as 'en'.
- `last_active_at` (text): When they were last active, in UTC.
- `last_login_at` (text): When they last signed in, in UTC.
- `last_name` (text): Family name.
- `location_id` (number): ID of the location they work at.
- `member_of` (list): IDs of the agent groups they belong to.
- `member_of_pending_approval` (list): Group memberships still waiting for approval.
- `mobile_phone_number` (text): Mobile phone number.
- `observer_of` (list): IDs of the agent groups they observe.
- `observer_of_pending_approval` (list): Group observerships still waiting for approval.
- `occasional` (true/false): True for an occasional agent rather than a full-time one.
- `reporting_manager_id` (number): ID of their reporting manager.
- `roles` (list): Their roles, each with a role_id, an assignment_scope and any groups.
- `scoreboard_level_id` (number): Their gamification level, when one applies.
- `time_format` (text): Either '12h' or '24h'.
- `time_zone` (text): Their time zone.
- `updated_at` (text): When the agent last changed, in UTC.
- `work_phone_number` (text): Work phone number.

**Example output**

```json
{
  "active": true,
  "can_see_all_tickets_from_associated_departments": false,
  "created_at": "2025-11-02T08:00:00Z",
  "custom_fields": {},
  "department_ids": [],
  "email": "alex.chen@example.com",
  "first_name": "Alex",
  "has_logged_in": true,
  "id": 21000418001,
  "job_title": "Service desk analyst",
  "language": "en",
  "last_active_at": "2026-09-16T09:29:00Z",
  "last_login_at": "2026-09-16T08:55:00Z",
  "last_name": "Chen",
  "location_id": 21000331414,
  "member_of": [
    21000205442
  ],
  "mobile_phone_number": null,
  "observer_of": [],
  "occasional": false,
  "reporting_manager_id": null,
  "roles": [
    {
      "assignment_scope": "member_groups",
      "role_id": 21000150274
    }
  ],
  "time_format": "24h",
  "time_zone": "Eastern Time (US & Canada)",
  "updated_at": "2026-09-16T08:55:00Z",
  "work_phone_number": "5550111"
}
```

### List a ticket's conversations

List every reply and note on a Freshservice ticket.

**Inputs**

- Ticket ID (`ticket_id`, text, required): Which ticket to read the conversation of. This is the number in the ticket's web address (12 in https://acme.freshservice.com/a/tickets/12), and you can paste the whole address instead.
- Results per page (`per_page`, number): How many conversations to return on one page, from 1 to 100. Leave blank for Freshservice's default of 30. From 1 to 100.
- Page (`page`, number): Which page of results to return. Leave blank for the first page. From 1 to 500.

**Outputs**: A page of conversations.

- `conversations` (list): The conversations on this page.
- `count` (number): How many conversations came back on this page.
- `has_more` (true/false): True when Freshservice says another page follows this one.
- `page` (number): Which page this is. The first page is 1.
- `per_page` (number): The page size that was asked for, or null for Freshservice's default of 30.

**Example output**

```json
{
  "conversations": [
    {
      "attachments": [],
      "bcc_emails": [],
      "body": "<div>We have ordered a replacement charger.</div>",
      "body_text": "We have ordered a replacement charger.",
      "cc_emails": [],
      "created_at": "2026-09-16T10:05:00Z",
      "id": 21000167412,
      "incoming": false,
      "private": true,
      "ticket_id": 12,
      "to_emails": [],
      "updated_at": "2026-09-16T10:05:00Z",
      "user_id": 21000418001
    }
  ],
  "count": 1,
  "has_more": false,
  "page": 1,
  "per_page": 30
}
```

### List a ticket's tasks

List the tasks on a Freshservice ticket.

**Inputs**

- Ticket ID (`ticket_id`, text, required): Which ticket to list the tasks of. This is the number in the ticket's web address (12 in https://acme.freshservice.com/a/tickets/12), and you can paste the whole address instead.
- Results per page (`per_page`, number): How many tasks to return on one page, from 1 to 100. Leave blank for Freshservice's default of 30. From 1 to 100.
- Page (`page`, number): Which page of results to return. Leave blank for the first page. From 1 to 500.

**Outputs**: A page of tasks.

- `count` (number): How many tasks came back on this page.
- `has_more` (true/false): True when Freshservice says another page follows this one.
- `page` (number): Which page this is. The first page is 1.
- `per_page` (number): The page size that was asked for, or null for Freshservice's default of 30.
- `tasks` (list): The tasks on this page.

**Example output**

```json
{
  "count": 1,
  "has_more": false,
  "page": 1,
  "per_page": 30,
  "tasks": [
    {
      "agent_id": 21000418001,
      "closed_at": null,
      "created_at": "2026-09-16T10:10:00Z",
      "deleted": false,
      "description": "Raise it with the hardware supplier.",
      "due_date": "2026-09-19T12:00:00Z",
      "group_id": 21000205442,
      "id": 21000012345,
      "notify_before": 3600,
      "status": 1,
      "title": "Order a replacement charger",
      "updated_at": "2026-09-16T10:10:00Z",
      "workspace_id": 2
    }
  ]
}
```

### List agent groups

List the agent groups tickets can be assigned to.

**Inputs**

- Workspace ID (`workspace_id`, text): Only for accounts that use workspaces. Leave blank for the primary workspace, which is what an account without workspaces has.
- Results per page (`per_page`, number): How many groups to return on one page, from 1 to 100. Leave blank for Freshservice's default of 30. From 1 to 100.
- Page (`page`, number): Which page of results to return. Leave blank for the first page. From 1 to 500.

**Outputs**: A page of agent groups.

- `count` (number): How many agent groups came back on this page.
- `groups` (list): The agent groups on this page.
- `has_more` (true/false): True when Freshservice says another page follows this one.
- `page` (number): Which page this is. The first page is 1.
- `per_page` (number): The page size that was asked for, or null for Freshservice's default of 30.

**Example output**

```json
{
  "count": 1,
  "groups": [
    {
      "approval_required": false,
      "auto_ticket_assign": true,
      "business_hours_id": 21000009999,
      "created_at": "2025-11-02T08:00:00Z",
      "description": "First line support.",
      "escalate_to": 21000418001,
      "id": 21000205442,
      "members": [
        21000418001
      ],
      "name": "Service desk",
      "observers": [],
      "restricted": false,
      "unassigned_for": "30m",
      "updated_at": "2026-02-10T11:20:00Z",
      "workspace_id": 2
    }
  ],
  "has_more": false,
  "page": 1,
  "per_page": 30
}
```

### List agents

List the agents who work on tickets. Needs an API key whose agent may manage agents.

**Inputs**

- Email address (`email`, text): Only the agent with this email address.
- Work phone (`work_phone_number`, text): Only agents with this work phone number.
- Mobile phone (`mobile_phone_number`, text): Only agents with this mobile number.
- Active or deactivated (`active`, text): Leave blank for both. One of: `true` (Active agents only), `false` (Deactivated agents only).
- Agent type (`state`, text): Leave blank for both full-time and occasional agents. One of: `fulltime` (Full-time agents), `occasional` (Occasional agents).
- Results per page (`per_page`, number): How many agents to return on one page, from 1 to 100. Leave blank for Freshservice's default of 30. From 1 to 100.
- Page (`page`, number): Which page of results to return. Leave blank for the first page. From 1 to 500.

**Outputs**: A page of agents.

- `agents` (list): The agents on this page.
- `count` (number): How many agents came back on this page.
- `has_more` (true/false): True when Freshservice says another page follows this one.
- `page` (number): Which page this is. The first page is 1.
- `per_page` (number): The page size that was asked for, or null for Freshservice's default of 30.

**Example output**

```json
{
  "agents": [
    {
      "active": true,
      "can_see_all_tickets_from_associated_departments": false,
      "created_at": "2025-11-02T08:00:00Z",
      "custom_fields": {},
      "department_ids": [],
      "email": "alex.chen@example.com",
      "first_name": "Alex",
      "has_logged_in": true,
      "id": 21000418001,
      "job_title": "Service desk analyst",
      "language": "en",
      "last_active_at": "2026-09-16T09:29:00Z",
      "last_login_at": "2026-09-16T08:55:00Z",
      "last_name": "Chen",
      "location_id": 21000331414,
      "member_of": [
        21000205442
      ],
      "mobile_phone_number": null,
      "observer_of": [],
      "occasional": false,
      "reporting_manager_id": null,
      "roles": [
        {
          "assignment_scope": "member_groups",
          "role_id": 21000150274
        }
      ],
      "time_format": "24h",
      "time_zone": "Eastern Time (US & Canada)",
      "updated_at": "2026-09-16T08:55:00Z",
      "work_phone_number": "5550111"
    }
  ],
  "count": 1,
  "has_more": false,
  "page": 1,
  "per_page": 30
}
```

### List departments

List the departments requesters and tickets belong to.

**Inputs**

- Workspace ID (`workspace_id`, text): Only for accounts that use workspaces. Leave blank for the primary workspace, which is what an account without workspaces has.
- Results per page (`per_page`, number): How many departments to return on one page, from 1 to 100. Leave blank for Freshservice's default of 30. From 1 to 100.
- Page (`page`, number): Which page of results to return. Leave blank for the first page. From 1 to 500.

**Outputs**: A page of departments.

- `count` (number): How many departments came back on this page.
- `departments` (list): The departments on this page.
- `has_more` (true/false): True when Freshservice says another page follows this one.
- `page` (number): Which page this is. The first page is 1.
- `per_page` (number): The page size that was asked for, or null for Freshservice's default of 30.

**Example output**

```json
{
  "count": 1,
  "departments": [
    {
      "created_at": "2025-11-02T08:00:00Z",
      "custom_fields": {},
      "description": "Product design.",
      "domains": [
        "design.example.com"
      ],
      "head_user_id": 21000418017,
      "id": 21000114444,
      "name": "Design",
      "prime_user_id": null,
      "updated_at": "2026-02-10T11:20:00Z",
      "workspace_id": 2
    }
  ],
  "has_more": false,
  "page": 1,
  "per_page": 30
}
```

### List locations

List the sites people and assets belong to.

**Inputs**

- Workspace ID (`workspace_id`, text): Only for accounts that use workspaces. Leave blank for the primary workspace, which is what an account without workspaces has.
- Results per page (`per_page`, number): How many locations to return on one page, from 1 to 100. Leave blank for Freshservice's default of 30. From 1 to 100.
- Page (`page`, number): Which page of results to return. Leave blank for the first page. From 1 to 500.

**Outputs**: A page of locations.

- `count` (number): How many locations came back on this page.
- `has_more` (true/false): True when Freshservice says another page follows this one.
- `locations` (list): The locations on this page.
- `page` (number): Which page this is. The first page is 1.
- `per_page` (number): The page size that was asked for, or null for Freshservice's default of 30.

**Example output**

```json
{
  "count": 1,
  "has_more": false,
  "locations": [
    {
      "address": {
        "city": "Portland",
        "country": "USA",
        "line1": "100 Main Street",
        "line2": null,
        "state": "Oregon",
        "zipcode": "97201"
      },
      "contact_name": "Alex Chen",
      "created_at": "2025-11-02T08:00:00Z",
      "email": "facilities@example.com",
      "id": 21000331414,
      "name": "Portland office",
      "parent_location_id": null,
      "phone": "5550123",
      "primary": true,
      "primary_contact_id": 21000418001,
      "updated_at": "2026-02-10T11:20:00Z",
      "workspace_id": 2
    }
  ],
  "page": 1,
  "per_page": 30
}
```

### List requesters

Find requesters by email, phone number or a search query.

**Inputs**

- Email address (`email`, text): Only the requester with this email address.
- Work phone (`work_phone_number`, text): Only requesters with this work phone number.
- Mobile phone (`mobile_phone_number`, text): Only requesters with this mobile number.
- Query (`query`, text): A Freshservice filter query over first_name, last_name, name, job_title, primary_email, work_phone_number, mobile_phone_number, department_id, reporting_manager_id, time_zone, language, location_id and created_at, for example job_title:'Designer', or ~[first_name|last_name]:'ann' to search for names starting with 'ann'. A query always returns 30 per page, and a requester created moments ago may not be indexed yet.
- Include agents (`include_agents`, true/false): Turn on to include agents in the results. Only an API key whose agent may manage agents can ask for this.
- Results per page (`per_page`, number): How many requesters to return on one page, from 1 to 100. Leave blank for Freshservice's default of 30. From 1 to 100.
- Page (`page`, number): Which page of results to return. Leave blank for the first page. From 1 to 500.

**Outputs**: A page of requesters.

- `count` (number): How many requesters came back on this page.
- `has_more` (true/false): True when Freshservice says another page follows this one.
- `page` (number): Which page this is. The first page is 1.
- `per_page` (number): The page size that was asked for, or null for Freshservice's default of 30.
- `requesters` (list): The requesters on this page.

**Example output**

```json
{
  "count": 1,
  "has_more": false,
  "page": 1,
  "per_page": 30,
  "requesters": [
    {
      "active": true,
      "address": null,
      "background_information": null,
      "can_see_all_tickets_from_associated_departments": false,
      "created_at": "2026-09-01T08:00:00Z",
      "custom_fields": {},
      "department_ids": [
        21000114444
      ],
      "first_name": "Sam",
      "has_logged_in": true,
      "id": 21000418017,
      "is_agent": false,
      "job_title": "Designer",
      "language": "en",
      "last_name": "Rivera",
      "location_id": 21000331414,
      "mobile_phone_number": null,
      "primary_email": "sam.rivera@example.com",
      "reporting_manager_id": null,
      "secondary_emails": [],
      "time_format": "12h",
      "time_zone": "Eastern Time (US & Canada)",
      "updated_at": "2026-09-16T09:30:00Z",
      "work_phone_number": "5550100"
    }
  ]
}
```

### List tickets

List tickets from the past 30 days, or older ones with 'Updated since'.

**Inputs**

- Predefined view (`ticket_filter`, text): One of Freshservice's own views. Leave blank for all tickets that are neither deleted nor spam. One of: `new_and_my_open` (New and my open tickets), `watching` (Tickets I am watching), `spam` (Tickets marked as spam), `deleted` (Deleted tickets).
- Requester ID (`requester_id`, text): Only tickets raised for this requester's numeric ID.
- Requester email (`email`, text): Only tickets raised for this email address.
- Ticket type (`ticket_type`, text): Only incidents, or only service requests. One of: `Incident`, `Service Request`.
- Updated since (`updated_since`, date and time): Only tickets touched since this moment. This is also how to reach tickets older than 30 days.
- Sort order (`order_type`, text): Which way round to return them. One of: `asc` (Oldest first), `desc` (Newest first).
- Also fetch (`include`, text): Extra details to pull into every ticket on the page. Each one costs two extra API credits per page. One or more of: `requester`, `requested_for` (Requested for), `stats`, `tags`, `department`, `created_by` (Created by), `onboarding_context` (Onboarding context), `offboarding_context` (Offboarding context), `skill`, `skillset`.
- Workspace ID (`workspace_id`, text): Only for accounts that use workspaces. Leave blank for the primary workspace, which is what an account without workspaces has.
- Results per page (`per_page`, number): How many tickets to return on one page, from 1 to 100. Leave blank for Freshservice's default of 30. From 1 to 100.
- Page (`page`, number): Which page of results to return. Leave blank for the first page. From 1 to 500.

**Outputs**: A page of tickets.

- `count` (number): How many tickets came back on this page.
- `has_more` (true/false): True when Freshservice says another page follows this one.
- `page` (number): Which page this is. The first page is 1.
- `per_page` (number): The page size that was asked for, or null for Freshservice's default of 30.
- `tickets` (list): The tickets on this page.

**Example output**

```json
{
  "count": 1,
  "has_more": false,
  "page": 1,
  "per_page": 30,
  "tickets": [
    {
      "category": "Hardware",
      "cc_emails": [],
      "created_at": "2026-09-16T09:30:00Z",
      "custom_fields": {},
      "deleted": false,
      "department_id": 21000114444,
      "description": "<div>It stopped charging overnight.</div>",
      "description_text": "It stopped charging overnight.",
      "due_by": "2026-09-19T12:00:00Z",
      "fr_due_by": "2026-09-17T12:00:00Z",
      "fr_escalated": false,
      "group_id": 21000205442,
      "id": 12,
      "impact": 1,
      "is_escalated": false,
      "priority": 3,
      "requester_id": 21000418017,
      "responder_id": 21000418001,
      "source": 2,
      "spam": false,
      "status": 2,
      "sub_category": "Laptop",
      "subject": "Laptop will not start",
      "tags": [
        "hardware"
      ],
      "type": "Incident",
      "updated_at": "2026-09-16T09:30:00Z",
      "urgency": 2,
      "workspace_id": 2
    }
  ]
}
```

### Reply to a ticket

Send a public reply on a ticket. Freshservice emails it to the requester.

**Inputs**

- Ticket ID (`ticket_id`, text, required): Which ticket to reply to. This is the number in the ticket's web address (12 in https://acme.freshservice.com/a/tickets/12), and you can paste the whole address instead.
- Reply (`body`, text, required): What to say. Freshservice stores this as HTML, so plain text arrives as one paragraph.
- Send from (`from_email`, text): Which of your support addresses to send from. Leave blank for the account's main one.
- Reply as agent ID (`author_id`, text): The numeric ID of the agent the reply should come from. Leave blank for the agent whose API key this connection uses.
- Copy to (`cc_emails`, list): Email addresses to copy on the ticket's emails.
- Blind copy to (`bcc_emails`, list): Email addresses to blind-copy on the reply.

**Outputs**: One reply or note on a ticket.

- `attachments` (list): Files attached to the entry.
- `bcc_emails` (list): Addresses blind-copied on it.
- `body` (text): The message, as HTML.
- `body_text` (text): The same message with the HTML stripped out.
- `cc_emails` (list): Addresses copied on it.
- `created_at` (text): When the entry was added, in UTC.
- `from_email` (text): The address a reply was sent from.
- `id` (number): The conversation entry's ID.
- `incoming` (true/false): True when the entry came from outside the portal.
- `private` (true/false): True for a note only agents can see. Replies are never private.
- `source` (number): How the entry arrived, as a number.
- `support_email` (text): The support address a note is attributed to.
- `ticket_id` (number): The ticket this entry belongs to.
- `to_emails` (list): Addresses the entry was sent to.
- `updated_at` (text): When the entry last changed, in UTC.
- `user_id` (number): ID of the agent or requester who added it.

**Example output**

```json
{
  "attachments": [],
  "bcc_emails": [],
  "body": "<div>We have ordered a replacement charger.</div>",
  "body_text": "We have ordered a replacement charger.",
  "cc_emails": [],
  "created_at": "2026-09-16T10:05:00Z",
  "id": 21000167412,
  "incoming": false,
  "private": true,
  "ticket_id": 12,
  "to_emails": [],
  "updated_at": "2026-09-16T10:05:00Z",
  "user_id": 21000418001
}
```

### Search tickets

Find tickets with a Freshservice filter query, such as status:2 AND priority:4.

**Inputs**

- Query (`query`, text, required): A Freshservice filter query. Numbers go bare and text in single quotes: status:2 AND priority:4, group_id:12 OR tag:'vip', created_at:>'2026-01-01'. You can filter on requester_id, email, agent_id, group_id, priority, status, impact, urgency, tag, due_by, fr_due_by, created_at and updated_at, and combine them with AND, OR and brackets. Leave the outer double quotes off; they are added for you.
- Workspace ID (`workspace_id`, text): Only for accounts that use workspaces. Leave blank for the primary workspace, which is what an account without workspaces has.
- Page (`page`, number): Which page of results to return. Leave blank for the first page. From 1 to 500.

**Outputs**: A page of matching tickets.

- `count` (number): How many matching tickets came back on this page.
- `has_more` (true/false): True when Freshservice says another page follows this one.
- `page` (number): Which page this is. The first page is 1.
- `per_page` (number): The page size that was asked for, or null for Freshservice's default of 30.
- `tickets` (list): The matching tickets on this page.
- `total` (number): How many records match the query in total, across every page.

**Example output**

```json
{
  "count": 1,
  "has_more": false,
  "page": 1,
  "per_page": 30,
  "tickets": [
    {
      "category": "Hardware",
      "cc_emails": [],
      "created_at": "2026-09-16T09:30:00Z",
      "custom_fields": {},
      "deleted": false,
      "department_id": 21000114444,
      "description": "<div>It stopped charging overnight.</div>",
      "description_text": "It stopped charging overnight.",
      "due_by": "2026-09-19T12:00:00Z",
      "fr_due_by": "2026-09-17T12:00:00Z",
      "fr_escalated": false,
      "group_id": 21000205442,
      "id": 12,
      "impact": 1,
      "is_escalated": false,
      "priority": 3,
      "requester_id": 21000418017,
      "responder_id": 21000418001,
      "source": 2,
      "spam": false,
      "status": 2,
      "sub_category": "Laptop",
      "subject": "Laptop will not start",
      "tags": [
        "hardware"
      ],
      "type": "Incident",
      "updated_at": "2026-09-16T09:30:00Z",
      "urgency": 2,
      "workspace_id": 2
    }
  ],
  "total": 1
}
```

### Update a requester

Change a Freshservice requester's details.

**Inputs**

- Requester ID (`requester_id`, text, required): The requester's numeric Freshservice ID. Use 'List requesters' to find one, or paste the requester's web address.
- First name (`first_name`, text): A new given name for the requester. Leave blank to keep theirs.
- Last name (`last_name`, text): The requester's family name.
- Email address (`primary_email`, text): Their main email address. Freshservice needs one of email, work phone or mobile phone.
- Work phone (`work_phone_number`, text): Their work phone number.
- Mobile phone (`mobile_phone_number`, text): Their mobile phone number.
- Job title (`job_title`, text): What they do.
- Other email addresses (`secondary_emails`, list): Any additional addresses tickets may arrive from.
- Departments (`department_ids`, list): The departments this person belongs to. Choose any number of them; numeric IDs also work.
- Can see their departments' tickets (`can_see_all_tickets_from_associated_departments`, true/false): Turn on to let them see every ticket raised by their departments. Freshservice turns this off on any update that does not explicitly turn it on, so leave it on for somebody who already has it.
- Reporting manager ID (`reporting_manager_id`, text): The numeric ID of the requester or agent they report to.
- Location (`location_id`, text): The site this person works at. Its numeric ID also works.
- Address (`address`, text): Their postal address.
- Time zone (`time_zone`, text): Their time zone, spelled the way Freshservice spells it, such as 'Eastern Time (US & Canada)'. Leave blank for the account's.
- Clock (`time_format`, text): Whether they see times on a 12- or 24-hour clock. One of: `12h` (12-hour clock), `24h` (24-hour clock).
- Language (`language`, text): Their language code, such as 'en'. Leave blank for English.
- Background information (`background_information`, text): Anything an agent should know about this person.
- Custom fields (`custom_fields`, object): Your account's own requester fields, as name-and-value pairs.

**Outputs**: One requester — somebody who can raise tickets.

- `active` (true/false): True when the requester is active.
- `address` (text): Postal address.
- `background_information` (text): Free-text notes about them.
- `can_see_all_tickets_from_associated_departments` (true/false): True when they can see every ticket raised by their departments.
- `created_at` (text): When the requester was created, in UTC.
- `custom_fields` (object): The account's own custom fields on this record, keyed by field name.
- `department_ids` (list): IDs of the departments they belong to.
- `first_name` (text): Given name.
- `has_logged_in` (true/false): True once they have signed in to the portal.
- `id` (number): The requester's ID, which ticket actions take.
- `is_agent` (true/false): True when this person is also an agent.
- `job_title` (text): Job title.
- `language` (text): Their language code, such as 'en'.
- `last_name` (text): Family name.
- `location_id` (number): ID of the location they work at.
- `mobile_phone_number` (text): Mobile phone number.
- `primary_email` (text): Primary email address.
- `reporting_manager_id` (number): ID of their reporting manager.
- `secondary_emails` (list): Any additional email addresses.
- `time_format` (text): Either '12h' or '24h'.
- `time_zone` (text): Their time zone, such as 'Eastern Time (US & Canada)'.
- `updated_at` (text): When the requester last changed, in UTC.
- `work_phone_number` (text): Work phone number.

**Example output**

```json
{
  "active": true,
  "address": null,
  "background_information": null,
  "can_see_all_tickets_from_associated_departments": false,
  "created_at": "2026-09-01T08:00:00Z",
  "custom_fields": {},
  "department_ids": [
    21000114444
  ],
  "first_name": "Sam",
  "has_logged_in": true,
  "id": 21000418017,
  "is_agent": false,
  "job_title": "Designer",
  "language": "en",
  "last_name": "Rivera",
  "location_id": 21000331414,
  "mobile_phone_number": null,
  "primary_email": "sam.rivera@example.com",
  "reporting_manager_id": null,
  "secondary_emails": [],
  "time_format": "12h",
  "time_zone": "Eastern Time (US & Canada)",
  "updated_at": "2026-09-16T09:30:00Z",
  "work_phone_number": "5550100"
}
```

### Update a ticket

Change a Freshservice ticket: its status, priority, assignment or fields.

**Inputs**

- Ticket ID (`ticket_id`, text, required): Which ticket to change. This is the number in the ticket's web address (12 in https://acme.freshservice.com/a/tickets/12), and you can paste the whole address instead.
- Status (`status`, text): Move the ticket to this status. Leave blank to leave it alone. One of: `2` (Open), `3` (Pending), `4` (Resolved), `5` (Closed).
- Priority (`priority`, text): Change the priority. Leave blank to leave it alone. One of: `1` (Low), `2` (Medium), `3` (High), `4` (Urgent).
- Subject (`subject`, text): A new subject line. Leave blank to keep the current one.
- Description (`description`, text): Rewrite the ticket's description. Leave blank to keep it; to add to the conversation instead, use 'Reply to a ticket' or 'Add a note'.
- Source (`source`, text): Where the ticket came from. Leave blank for Portal. One of: `1` (Email), `2` (Portal), `3` (Phone), `4` (Chat), `5` (Feedback widget), `6` (Yammer), `7` (AWS CloudWatch), `8` (PagerDuty), `9` (Walk-up), `10` (Slack), and 6 more.
- Urgency (`urgency`, text): How quickly the requester needs this dealt with. One of: `1` (Low), `2` (Medium), `3` (High).
- Impact (`impact`, text): How widely the issue is felt. One of: `1` (Low), `2` (Medium), `3` (High).
- Move to requester ID (`requester_id`, text): Hand the ticket to a different requester, by numeric ID.
- Assign to agent (`responder_id`, text): The agent's numeric ID. Use 'List agents' to find one. Leave blank to let Freshservice's own assignment rules decide.
- Agent group (`group_id`, text): The group this is assigned to. Its numeric ID also works.
- Department (`department_id`, text): The department the ticket belongs to. Its numeric ID also works.
- Category (`category`, text): Category to file the ticket under, exactly as it is spelled in Freshservice.
- Sub-category (`sub_category`, text): Sub-category within the category.
- Item (`item_category`, text): Item within the sub-category.
- Resolution due (`due_by`, date and time): A new resolution deadline. Leave blank to keep the current one.
- First response due (`fr_due_by`, date and time): A new first-response deadline. Leave blank to keep the current one.
- Tags (`tags`, list): The complete set of tags the ticket should end up with. Freshservice replaces rather than adds, so list the ones to keep as well, and leave this blank to leave the tags alone.
- Copy to (`cc_emails`, list): The complete set of addresses copied on the ticket. This replaces the current list rather than adding to it.
- Custom fields (`custom_fields`, object): Your account's own ticket fields, as name-and-value pairs. Use the field's internal name, which is what the API calls it.

**Outputs**: One Freshservice ticket.

- `approval_status` (number): Approval status as a number, when one applies.
- `approval_status_name` (text): That approval status in words.
- `attachments` (list): Files attached to the ticket.
- `category` (text): Category the ticket is filed under.
- `cc_emails` (list): Addresses copied on the ticket's emails.
- `created_at` (text): When the ticket was created, in UTC.
- `created_within_business_hours` (true/false): True when the ticket was raised inside the account's business hours.
- `custom_fields` (object): The account's own custom fields on this record, keyed by field name.
- `deleted` (true/false): True when the ticket has been deleted.
- `department_id` (number): ID of the department the ticket belongs to.
- `description` (text): Description of the ticket, as HTML.
- `description_text` (text): The same description with the HTML stripped out.
- `due_by` (text): When the ticket is due for resolution, in UTC.
- `email_config_id` (number): ID of the support email the ticket came in on.
- `fr_due_by` (text): When the first response is due, in UTC.
- `fr_escalated` (true/false): True once the first-response SLA has been breached.
- `fwd_emails` (list): Addresses the ticket has been forwarded to.
- `group_id` (number): ID of the agent group the ticket sits in.
- `id` (number): The ticket's number — the one in its web address, and the ID every other ticket action takes.
- `impact` (number): Impact as a number: 1 Low, 2 Medium, 3 High.
- `is_escalated` (true/false): True once the resolution SLA has been breached.
- `item_category` (text): Item within the sub-category.
- `priority` (number): Priority as a number: 1 Low, 2 Medium, 3 High, 4 Urgent.
- `reply_cc_emails` (list): Addresses copied on replies.
- `requested_for_id` (number): ID of the person the service request is for, when that differs from the requester.
- `requester_id` (number): ID of the requester the ticket was raised for.
- `resolution_notes` (text): Resolution notes, as HTML.
- `resolution_notes_html` (text): Resolution notes, as HTML.
- `responder_id` (number): ID of the agent the ticket is assigned to.
- `sla_policy_id` (number): ID of the SLA policy applied to the ticket.
- `source` (number): How the ticket arrived, as a number: 1 Email, 2 Portal, 3 Phone, 4 Chat, 9 Walk-up, 10 Slack, 15 MS Teams, and so on.
- `spam` (true/false): True when the ticket has been marked as spam.
- `status` (number): Status as a number: 2 Open, 3 Pending, 4 Resolved, 5 Closed. An account with custom statuses can return other numbers.
- `sub_category` (text): Sub-category of the category.
- `subject` (text): Subject line of the ticket.
- `tags` (list): Tags on the ticket. Only present when 'tags' was asked for as an embed.
- `to_emails` (list): Addresses the original email was sent to.
- `type` (text): The kind of ticket, such as 'Incident'.
- `updated_at` (text): When the ticket last changed, in UTC.
- `urgency` (number): Urgency as a number: 1 Low, 2 Medium, 3 High.
- `workspace_id` (number): ID of the workspace the ticket belongs to.

**Example output**

```json
{
  "category": "Hardware",
  "cc_emails": [],
  "created_at": "2026-09-16T09:30:00Z",
  "custom_fields": {},
  "deleted": false,
  "department_id": 21000114444,
  "description": "<div>It stopped charging overnight.</div>",
  "description_text": "It stopped charging overnight.",
  "due_by": "2026-09-19T12:00:00Z",
  "fr_due_by": "2026-09-17T12:00:00Z",
  "fr_escalated": false,
  "group_id": 21000205442,
  "id": 12,
  "impact": 1,
  "is_escalated": false,
  "priority": 3,
  "requester_id": 21000418017,
  "responder_id": 21000418001,
  "source": 2,
  "spam": false,
  "status": 2,
  "sub_category": "Laptop",
  "subject": "Laptop will not start",
  "tags": [
    "hardware"
  ],
  "type": "Incident",
  "updated_at": "2026-09-16T09:30:00Z",
  "urgency": 2,
  "workspace_id": 2
}
```
