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:
- Go to your Freshservice account.
- Click the user icon and select Profile Settings.
- Copy the API Key displayed on the right.
Creating Connetion
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 |
SolutionArticleAttachments | Content |
SolutionArticleImages | Content |
To reduce the number of API calls, you can select the Suppress Extended Requests checkbox.
Metadata Cache
You can specify the period after which Metadata Cache expires.
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 import data into these objects, 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. You can add custom fields 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.
Custom Fields Support for Multiple Workspaces
Skyvia creates a separate object containing a workspace name prefix in its name for each IT workspace. These objects include custom fields of the main object. For example, the objects <WorkspaceName>_Tickets, <WorkspaceName>_Changes, <WorkspaceName>_Releases, <workspaceName>_Problems include custom fields of the main objects Tickets, Changes, Releases, Problems.
Business workspaces support the Tickets object custom fields only. Skyvia creates the separate <WorkspaceName>_Tickets object for such workspaces.
Global custom fields are supported for the Tickets, Changes, Releases, Problems object. They are available for all workspaces.
The Tickets object contains tickets from all workspaces, including global custom fields. The Assets, AgentGroups, Changes, Releases, and Problems contain records from all IT workspaces, including global custom fields.
If you had a single (primary) workspace and added a new IT workspace, then Skyvia will add new <WorkspaceName>_Tickets, <WorkspaceName>_Changes, <WorkspaceName>_Releases, <workspaceName>_Problems objects including custom fields. Main objects Tickets, Problems, Changes, Releases don’t include custom fields.
If you had more than one workspace and then delete the second workspace, the objects <WorkspaceName>_Tickets, <WorkspaceName>_Changes, <WorkspaceName>_Releases, <workspaceName>_Problems are not displayed in the connector. Custom fields are included in the main objects Tickets, Problems, Changes, Releases. When you delete a workspace, all its objects are also deleted.
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, 'tom@outerspace.com')
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 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.