Freshdesk API v2
Description
This is a simple wrapper for the Freshdesk API v2.
- Freshdesk API v2
- type safe with TypeScript and Zod
- take care of pagination for you
Installation
$ npm install freshdesk-client
Documentation
How to use
const tokenKey = "FRESHDESK_TOKEN_KEY";
const baseUri = "https://YOUR_DOMAIN.freshservice.com";
import { getTickets } from "freshdesk-client";
const tickets = await getTickets({ baseUri, token: tokenKey });
const ticketsWithFilter = await getTickets({
baseUri,
token,
filter: "status:3 OR status:2",
});
import { getRequesters } from "freshdesk-client";
getRequesters({
baseUri,
token: tokenKey,
doValidate: true,
});
import { getDepartments } from "freshdesk-client";
getDepartments({
baseUri,
token: tokenKey,
doValidate: true,
});
import { getAgents } from "freshdesk-client";
getAgents({
baseUri,
token: tokenKey,
doValidate: true,
});
import { getProducts } from "freshdesk-client";
getProducts({
baseUri,
token: tokenKey,
doValidate: true,
});
import { getLocations } from "freshdesk-client";
getLocations({
baseUri,
token: tokenKey,
doValidate: true,
});
import { getServiceItems } from "freshdesk-client";
getServiceItems({
baseUri,
token,
doValidate: true,
});
import { getServiceCategories } from "freshdesk-client";
getServiceCategories({
baseUri,
token,
doValidate: true,
});
import { createServiceItem } from "freshdesk-client";
createServiceItem({
baseUri,
token,
serviceItem: {
name: "Test service item",
description: "Test service item description",
category_id: 100000001863,
visibility: 1,
short_description: "Test service item short description",
},
});
import {
TicketPriority,
TicketSourceType,
TicketStatus,
createTicket,
} from "freshdesk-client";
createTicket({
baseUri,
token,
ticket: {
description: "Test ticket description",
subject: "Test ticket subject",
type: "Incident",
priority: TicketPriority.Urgent,
status: TicketStatus.Open,
source: TicketSourceType.Email,
email: "requester domain email",
group_id: 60000000000, // group id to assign ticket to
},
});
import { getAssets } from "freshdesk-client";
getAssets({
baseUri,
token,
doValidate: true,
include: ["type_fields"],
sort: {
orderBy: "created_at",
orderType: "asc",
},
filters: [
{
filterKey: "asset_type_id",
filterValue: 10000000000000001,
},
{
filterKey: "asset_type_id",
filterValue: 10000000000000002,
operator: "OR",
},
],
});
import { getAssetById } from "freshdesk-client";
getAssetById({
baseUri,
token,
assetId: 123, // asset display_id
doValidate: true,
include: true,
});
import { createAsset } from "freshdesk-client";
createAsset({
baseUri,
token,
asset: {
name: "Test asset",
asset_type_id: 123,
},
});
import { getAssetTypes } from "freshdesk-client";
getAssetTypes({
baseUri,
token: tokenKey,
doValidate: true,
});
import { updateAsset } from "freshdesk-client";
updateAsset({
baseUri,
token,
displayId: 30,
asset: {
name: "Test asset update",
},
});
import { deleteAsset } from "freshdesk-client";
deleteAsset({
baseUri,
token,
displayId: 30,
});