Freshservice

Freshservice is a cloud-based IT Service Management solution. Freshservice helps IT organizations streamline their service delivery processes with a strong focus on user experience and employee happiness.

Data integration: Skyvia supports importing data to and from Freshservice, exporting Freshservice data to CSV files, replicating Freshservice data to relational databases, and synchronizing Freshservice data with other cloud apps and relational databases.

Backup: Skyvia Backup does not support Freshservice backup.

Query: Skyvia Query supports Freshservice.

Establishing Connection

To create a connection to Freshservice, you need to specify the Domain and API Key.

Getting Credentials

To obtain the API Key, do the following:

  1. Go to your Freshservice account.
  2. Click the user icon and select Profile Settings.
  3. Copy the API Key displayed on the right.

API Key

Creating Connetion

Connection window

Enter your Freshservice domain and paste the obtained API Key to the corresponding box in the Connection Editor.

Additional Connection Parameters

Suppress Extended Requests

For some objects Freshservice API does not return all the fields when querying. To query these fields, Skyvia performs additional requests for each record of such object. This can decrease performance and significantly increase the number of API calls used.

The list of such fields is the following:

Object Field
Tickets Email, Name, Phone, Attachments, Urgency, Impact, Assets, Problem
Changes All custom fields
PurchaseOrders ShippingAddress, BillingSameAsShipping, BillingAddress, CurrencyCode, DiscountPercentage, TaxPercentage, ShippingCost, Currency_ConversionRate, Currency_Id, Currency_Name, Currency_Symbol, PurchaseItems
Problems All custom fields
Releases All custom fields

To reduce the number of API calls, you can select the Suppress Extended Requests checkbox.

Connector Specifics

Object Peculiarities

Foreign Keys

Some objects have fields with a polymorphic relations. For example, the UserId field can refer to both the requester and the agent at the same time. Therefore, Skyvia doesn’t support foreign keys for the fields, which cannot uniquely define the object they refer to.

TicketConversations

Skyvia supports importing ticket notes, but not ticket replies into the TicketConversations object.

Departments

Since the type of custom fields is not specified in the metadata, Skyvia treats such fields as read-only string fields.

Agents

When performing import to the Agents object, you must map the required Roles field to the value in the array format. See below the example value for this field:

[{"role_id": 51000087054, "assignment_scope": "entire_helpdesk"}, {"role_id": 51000087055, "assignment_scope": "specified_groups", "groups": [51000110425]}]

Assets

Trashed assets are not displayed in query results by default. To get the trashed assets when querying, use filter by Trashed = true.

When importing data to the Assets objetc, the AssetTypeId field value determines the required fields for mapping fields in the nested TypeFields object.

Here is the example value for this field:

{"product_51000020554": 51000001690, "asset_state_51000020554": "In Use"}

SoftwareUsers

When you load data into the SoftwareUsers object, the IDs of imported records are not displayed in the Log or in the Returning feature.

Tickets, Problems, Changes

To successfully import data into these objects, you must map the RequesterId (Id of the person who creates the ticket) field. There are two ways to do it:

  • Specify the existing requester Id.
  • Specify requester Email, if such contact doesn’t exist yet.

    In this case, this email will be automatically added to the Requesters object, and the corresponding Id for a new record will be inserted to the RequesterId field of the Tickets object.

Custom Objects

Skyvia supports custom objects for all existing workspaces that belong to the Freshservice account. If the custom object belongs to the primary workspace, its name equals to the name in the UI. If the custom object belongs to another workspace, its name consists of the workspace name and the object name concatenation. For example, the object name in the UI is CustomObject1. It belongs to Workspace2, which is not the primary workspace. Skyvia will display this object with the name Workspace2_CustomObject1.

Skyvia supports INSERT, UPDATE and DELETE operations for custom objects.

Custom Fields

Standard Freshservice objects (such as Tickets, Problems, Changes, Agents, Departments, Releases, Requesters, Vendors) may have custom fields. Custom Freshservice objects may have custom fields as well. Custom fields can be of the following types: Text, Phone_number, Dropdown, Checkbox, Paragraph, Url, Decimal, Date, Number, Multi_select_dropdown, Lookup, Date_Time, Enum, Planning_field, Nested_field, Content.

If the field type is not specified in the metadata or there is no way to determine it, Skyvia treats such fields as read-only string fields. The Planning field type custom fields are read-only.

DML Operations Support

Operation Object
INSERT, UPDATE, DELETE AgentGroups, Agents, Announcements, Assets, AssetTypes, ChangeNotes, Changes, ChangeTasks, ChangeTimeEntries, Departments, Locations, ProblemNotes, Problems, ProblemTasks, ProblemTimeEntries, Products, Projects, ProjectTasks, PurchaseOrders, ReleaseNotes, Releases, ReleaseTasks, ReleaseTimeEntries, RequesterGroups, Requesters, Software, SolutionArticles, SolutionCategories, SolutionFolders, TicketConversations, Tickets, TicketTasks, TicketTimeEntries, Vendors
INSERT, DELETE RequesterGroupMembers
INSERT OnboardingRequests, SoftwareInstallation, SoftwareUsers

Incremental Replication and Synchronization

Skyvia supports Synchronization and Replication with Incremental Updates for such Freshservice objects: AgentGroups, AgentRoles, Agents, Announcements, AssetAssociatedRequests, AssetComponents, Assets, AssetTypes, BusinessHours, CannedResponseFolders, CannedResponses, ChangeFields, ChangeNotes, Changes, ChangeTasks, ChangeTimeEntries, DepartmentFields, Departments, Licenses, Locations, OnboardingFormFields, OnboardingRequests, OnboardingTickets, ProblemNotes, Problems, ProblemTasks, ProblemTimeEntries, Products, PurchaseOrders, Projects, ProjectTasks, ReleaseFields, ReleaseNotes, Releases, ReleaseTasks, ReleaseTimeEntries, Requesters, ServiceCategories, ServiceItems, ServiceRequest_RequestedItems, SLAPolicies, Software, SoftwareInstallations, SoftwareUsers, SolutionArticles, SolutionCategories, SolutionFolders, TicketActivities, TicketConversations, TicketCSATResponses, TicketFields, Tickets, TicketTasks, TicketTimeEntries, Vendors.

Stored Procedures

Skyvia represents part of the supported Freshservice features as stored procedures. You can call a stored procedure, for example, as a text of the command in the ExecuteCommand action in a Target component of a Data Flow or in Query.

AddRequesterToRequesterGroup

To Add a member to the requester group, use command

call AddRequesterToRequesterGroup(:group_id,:requester_id)

RemoveDevicesFromSoftware

To Delete records from the SoftwareInstallations object, use command

call RemoveDevicesFromSoftware(:app_id,:device_ids)

PARAMETER DESCRIPTION
App_id The Id of the application to be removed
Device_ids The InstallationMachineId field values for the corresponding AppId. If you need to delete several records with different InstallationMachineId values for one AppId, specify all the device Ids separated by commas.

CreateChildTicket

To create a child ticket for an existing ticket, use the following command.

call CreateChildTicket(:parent_ticket_id, :status, :priority, :source, :subject, :description, :requester_id, :email, :phone, :workspace_id, :name, :type, :responder_id, :attachments, :cc_emails, :custom_fields, :due_by, :email_config_id, :fr_due_by, :group_id, :tags, :department_id, :category, :sub_category, :item_category, :associate_ci, :urgency, :impact)

Parameters Parent_ticket_id, Status, Priority, Source, Subject, Description are required.

There are three parameters that identify a contact of the ticket creator: Requester_id, Email, or Phone. You must provide value for at least one of them. If you specified either Requester_id, Email, or Phone, you can omit other two, specify ’’ or null instead. All other parameters are optional.

See the example of the command with minimal set of parameters. call CreateChildTicket(4, 'Open', 'Medium', 'Portal', 'ChildTicket1_subject', 'ChildTicket1_description', null, '[email protected]')

PARAMETER NAME DESCRIPTION
Parent_ticket_id Required. The existing parent ticket identifier
Status Required. Status of the ticket. Valid values are Open, Pending, Resolved, Closed
Priority Required. Priority of the ticket. Valid values are Low, Medium, High, Urgent
Source Required. The channel through which the ticket was created. Valid values are Email, Portal, Phone, Chat, Feedback widget, Yammer, AWS Cloudwatch, Pagerduty, Walkup, Slack
Subject Required. Child ticket subject
Description Required. Child ticket description
Requester_id User ID of the requester
Email Email address of the requester
Phone Phone number of the requester
Workspace_id ID of the workspace to which this ticket belongs
Name Name of the requester
Type Type of the ticket
Responder_id ID of the agent to whom the ticket has been assigned
Attachments Ticket attachments. The total size of these attachments cannot exceed 40 MB
Cc_emails Email address added in the ‘cc’ field of the incoming ticket email
Custom_fields Key value pairs containing the names and values of custom fields
Due_by Timestamp that denotes when the ticket is due to be resolved.
Email_config_id ID of email config which is used for this ticket
Fr_due_by Timestamp that denotes when the first response is due
Group_id ID of the group to which the ticket has been assigned
Department_id Department ID of the requester
Category Ticket category
Sub_category Ticket sub category
Item_category Ticket item category
Associate_ci Search for asset and associate with ticket
Urgency Ticket urgency
Impact Ticket impact

Supported Actions

Skyvia supports all the common actions for Freshservice.