About Freshservice
Freshservice is an IT service management (ITSM) platform from Freshworks. The Serval Freshservice integration connects to your Freshservice instance using your instance domain and an agent API key. A single connection powers ticket sync, optional real-time ticket webhooks, knowledge base sync, and service catalog ingestion - plus workflow actions for placing catalog requests, uploading attachments, and calling any part of the Freshservice API. Authentication: API key (HTTP Basic auth). You provide your Freshservice domain and an agent API key; the key is a long-lived credential that inherits the permissions of the Freshservice agent who generated it. There is no OAuth flow and no token refresh. Data sync: Tickets sync via background polling every 30 seconds by default, or in real time via webhooks (enabling webhook sync turns polling off). Knowledge base content syncs on a recurring schedule. Service catalog syncs are triggered manually from the UI. Workflow actions call Freshservice on demand.What the Freshservice integration enables
Get your credentials
Serval authenticates with an API key that belongs to a Freshservice agent. We recommend a dedicated full-time agent service account with the Account Administrator account-wide role (or a custom role with workspace management permissions - the connection health checks require one of the two) plus a custom workspace role granting ticket view/reply/edit/create permissions in every workspace Serval should sync. See Freshservice’s official guide to finding your API key.Create the service-account agent
Grant the account-wide admin role
Create a custom ticket role
Add the agent to every workspace Serval should sync
Activate the agent and copy the API key
Connect in Serval
The connect form has exactly two fields: Domain and API Key.Enter your Domain (required)
Enter your API Key (required)
Save the connection
Verifying the connection
Serval runs three health checks after you connect: Validate Freshservice Workspace Access - confirms your API key can list the workspaces in your instance (requires the Account Administrator role or a custom role with workspace management permissions).- Success: “Successfully accessed Freshservice workspaces. Found [number] workspace(s).”
- Permissions failure: “Unable to access Freshservice workspaces. Your API token lacks the required permissions. Please reconnect using an API token from a user with the ‘Account Administrator’ role or a custom role with workspace management permissions.”
- Other errors: “Unable to connect to Freshservice API. Please verify your API token is valid and your Freshservice domain is correct.”
- Success: “Successfully validated access to Freshservice ticket form fields. During ticket sync configuration, you’ll see workspaces you have access to.”
- Not a workspace member (403): “Unable to access Freshservice workspace form fields (403 Forbidden). This indicates the API token user is not a member of any workspaces. Please either: • Add this user to one or more workspaces in Freshservice (Admin → Workspaces), OR • Use an API token from a user with ‘Account Administrator’ role Note: During ticket sync configuration, the workspace dropdown will automatically show only workspaces you have access to.”
- No workspaces exist: “No Freshservice workspaces found. Please ensure your Freshservice instance has at least one workspace configured.”
- Invalid key (401): “Freshservice API authentication failed (401 Unauthorized). Your API token is invalid or expired. Please reconnect with a valid API token.”
- Other errors: “Unable to read ticket form fields from Freshservice. Please verify your API token is valid and has proper permissions.”
- Success: “Successfully retrieved tickets from Freshservice.” (or, if your instance has no tickets yet: “Successfully connected to Freshservice tickets API (no tickets found).”)
- Failure: “Unable to read tickets from Freshservice. Please verify your API token has permissions to access tickets.”
Gotchas and troubleshooting
API key permissions are the #1 failure mode
API key permissions are the #1 failure mode
Enabling webhook sync turns polling OFF
Enabling webhook sync turns polling OFF
Three separate webhooks, strict paths, and a token header
Three separate webhooks, strict paths, and a token header
Webhook routing depends on the Helpdesk URL in the payload
Webhook routing depends on the Helpdesk URL in the payload
The connect form has only two fields; the webhook token lives elsewhere
The connect form has only two fields; the webhook token lives elsewhere
Enter the domain bare - it gets normalized anyway
Enter the domain bare - it gets normalized anyway
Blank fields on update keep existing values
Blank fields on update keep existing values
Catalog sync is manual and filters items
Catalog sync is manual and filters items
Attachments go through ticket notes
Attachments go through ticket notes
Connections created before webhook support lack a webhook token
Connections created before webhook support lack a webhook token
Generic API responses are wrapped and paginated
Generic API responses are wrapped and paginated
Need help? Contact support@serval.com for assistance with your Freshservice integration.

