freshdesk-client
TypeScript icon, indicating that this package has built-in type declarations

1.9.1 • Public • Published

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

Full documentation here.

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,
});

Package Sidebar

Install

npm i freshdesk-client

Weekly Downloads

190

Version

1.9.1

License

MIT

Unpacked Size

301 kB

Total Files

125

Last publish

Collaborators

  • saostad