Overview
The Freshservice integration syncs your ITSM data into LowerPlane: tickets, changes, assets, and agents. LowerPlane uses your Freshservice API Key to collect compliance evidence automatically and run continuous checks against your incident and change management processes.Prerequisites
Required scopes
| Scope | Needed for |
|---|---|
| Tickets (Global scope) | Incident closure, assignee and SLA checks |
| Changes | Change approval and risk-assessment checks |
| Agents | Access review and the user checks |
| Roles | Resolving role names so admins are flagged in access review |
One supplementary item is collected: recent ticket activity, as a logging artefact. Freshservice v2 exposes no audit-log API, so this is a recent-activity proxy rather than a complete audit trail, and the evidence says so. It backs no check and never fails a sync — if the ticket scope is missing it is skipped silently.
403 that LowerPlane logs and skips; the sync continues. A missing ticket scope does not — it looks like an empty instance, which is why the agent role matters.
How to Get Your API Key
Sign in to Freshservice
Log in to your Freshservice account.
Open Profile Settings
Click your profile picture in the upper right corner, then select Profile Settings.
Connecting in LowerPlane
Enter Domain
Enter your Freshservice domain — either
acme or acme.freshservice.com. Both are accepted.To revoke LowerPlane’s access, regenerate the API key in Freshservice under Profile Settings. The old key stops working immediately.
Access Review
Freshservice agents are synced as people and appear in Access Reviews, with their resolved role, admin flag, last login, and whether they match an existing employee record. LowerPlane resolves role IDs to names via the Roles API so an Account Admin is visibly distinct from a regular agent — the signal a reviewer most needs.Freshservice’s agent API exposes no MFA status, so the MFA check does not apply to Freshservice. Enforce and evidence MFA through your identity provider instead.
What LowerPlane Monitors
Incidents & Tickets
Ticket status, priority, assignee, and SLA breach flags.
Change Management
Change approval status, risk rating, change type, and planned windows.
Asset Inventory
Assets from the CMDB with assignment, department, and location coverage.
Agents
Agent directory with roles, groups, and last-login activity.
Automated Checks
Connecting Freshservice seeds eight continuous checks across incidents, changes and access. Incident management| Check | What it verifies | Controls |
|---|---|---|
| Incident should be closed | Tickets progress to a resolved or closed state | SOC 2 CC7.3, ISO 27001 A.5.24 |
| Ticket should have an assignee | Every ticket has someone accountable for it | SOC 2 CC7.3, ISO 27001 A.16.1.5 |
| Incidents should be resolved within SLA | Incidents close inside their agreed service level | SOC 2 CC7.4, ISO 27001 A.5.26 |
| Check | What it verifies | Controls |
|---|---|---|
| Change should be approved before release | Every change request carries an approved status | SOC 2 CC8.1, ISO 27001 A.8.32 |
| Change should have a risk assessment | Every change request has a risk level recorded | SOC 2 CC3.2, CC8.1, ISO 27001 A.8.32 |
| Check | What it verifies | Controls |
|---|---|---|
| User should be identified | Each agent maps to a known person | access governance |
| Offboarded users should not retain access | No terminated employee still holds an active agent seat | access governance |
| Critical system access should be valid | Agent access correlates to a current HR record | access governance |
Failing incidents carry a ticket URL, so opening the record from a failing check is one click. Incidents also record
overdue and due_by for triage.Data Handling
LowerPlane collects metadata for compliance evidence, not ticket contents. Ticket subjects, change subjects, and asset hostnames are masked before storage, and agent email addresses are masked in evidence records.Freshservice’s v2 API does not expose an audit-log endpoint. The “Recent Ticket Activity” evidence item is a recent-activity snapshot built from the most recently updated tickets — it is not a complete audit trail, and is labelled as such in the evidence record.
Troubleshooting
The API key is invalid
The API key is invalid
LowerPlane returns this when Freshservice rejects the key with a 401. Regenerate the key from Profile Settings and reconnect.
Unknown domain
Unknown domain
A 404 means the domain could not be resolved. Enter only your Freshservice subdomain (
acme) or the full host (acme.freshservice.com) — do not include https:// or a trailing path.A check shows no entities
A check shows no entities
The API key’s agent may lack read access to that module. Confirm the agent can view Tickets and Changes in Freshservice, then trigger a manual sync.