Skip to content

ManageEngine ServiceDesk Integration

Faraday's ServiceDesk integration allows you to export confirmed vulnerabilities to ManageEngine ServiceDesk as request tickets. The integration supports bidirectional status synchronization via webhooks, severity mapping, template- based field configuration, and customizable status mappings.

Availability: Commercial feature (requires licensed Faraday instance).

Verified against: Faraday Server v5.19.0 codebase, wiki doc dated 2025-01-16.


Overview

Feature Details
Export vulnerabilities as ServiceDesk request tickets Yes
Bidirectional status sync via webhooks Yes
Severity mapping (Faraday ↔ ServiceDesk) Yes
Template-based field configuration Yes (fetched from ServiceDesk)
Field types Dropdown, Search, Raw/JSON
Authentication (ServiceDesk side) API Authtoken
Authentication (webhook) Faraday User Token (service_desk scope)
Webhook endpoint /_api/v3/integrations/mesd/update-issue
Webhook auth header X-ServiceDesk-Token

Prerequisites

  • A running Faraday Server instance (commercial edition)
  • A ManageEngine ServiceDesk instance
  • A ServiceDesk administrator account (for authtoken generation)
  • Network connectivity between Faraday Server and ServiceDesk (both directions for bidirectional sync)

Step 1: Generate ServiceDesk Authtoken

  1. Log in to your ServiceDesk instance with an administrator account.
  2. Click the user account icon in the upper-right corner.
  3. Select Generate Authtoken.
  4. Generate a new token and copy it immediately — it is only displayed once.
  5. Note the base URL of your ServiceDesk instance (protocol + domain only, no path).

Step 2: Configure Faraday

Access Settings

  1. In the Faraday Web UI, click the user account icon and select Preferences.
  2. Go to the ServiceDesk tab on the left panel.

Configure Authentication

Field Description Example
URL ServiceDesk base URL (protocol + domain) https://servicedesk.example.com
API Token The authtoken generated in Step 1 your-authtoken-here

Click the Authentication switch to test the credentials. If successful, the switch turns green.

Make sure that the server where Faraday is running can reach ServiceDesk.

Configure Basic Setup

Once authentication is verified (green switch), click the Basic Setup switch to expand the configuration.

Select Requester

Type the name of the ServiceDesk user in the search box and select from the dropdown. This is the user on whose behalf the API will generate request tickets.

Use the user's login name (the one for accessing ServiceDesk) to avoid ambiguities.

Severity Mapping

Map Faraday's six severity levels to your ServiceDesk instance's priorities. All fields must be mapped — no field should be left unselected.

Faraday Severity ServiceDesk Priority
Critical (select from your instance)
High (select from your instance)
Medium (select from your instance)
Low (select from your instance)
Informational (select from your instance)
Unclassified (select from your instance)

Status Mapping — Incoming (ServiceDesk → Faraday)

Map ServiceDesk ticket statuses to Faraday vulnerability statuses. The Ignore option discards tickets when they reach that status.

ServiceDesk Status Faraday Status
(your statuses) Open / Closed / Re-Opened / Risk Accepted / Ignore

Status Mapping — Outgoing (Faraday → ServiceDesk)

Map Faraday vulnerability status changes to ServiceDesk ticket statuses.

Faraday Status ServiceDesk Status
Open (select from your instance)
Closed (select from your instance)
Re-Opened (select from your instance)
Risk Accepted (select from your instance)

Configure Templates

  1. Click Fetch Templates to retrieve available request templates from ServiceDesk.
  2. Select a template from the dropdown — it will be added to the list.
  3. You can add multiple templates.

Edit Template Fields

Click the pencil icon to open the template editing window:

  • Mandatory fields are required and must be filled.
  • Optional fields can be added using the dropdown selector.

Field Types

Type Behavior Example
Dropdown Lists all available options from ServiceDesk Category (combines category + subcategory)
Search Requires 3+ characters to search; results shown in dropdown Technician, Group
Raw/JSON Fallback for unknown or unsupported fields Custom fields (refer to ServiceDesk docs for JSON structure)

Step 3: Set Up Bidirectional Status Sync (ServiceDesk Side)

At this point, Faraday → ServiceDesk sync is already working. To enable ServiceDesk → Faraday sync, configure a webhook and trigger in ServiceDesk.

Create a Faraday User Token (ServiceDesk Scope)

  1. In Faraday, click the user account icon and select Preferences.
  2. Go to Access Tokens and click Add Token.
  3. Set the scope to Service_desk and choose an alias.
  4. Copy the token immediately — it is displayed only once.
  5. Copy your Faraday base URL (protocol + domain, no path).

Configure ServiceDesk Webhook

  1. In your ServiceDesk panel, click Admin.
  2. Scroll to Developer Space and select Webhooks.
  3. Create a new webhook:
Field Value
Name A descriptive name (e.g., Faraday Sync)
HTTP Method POST
URL https://<your-faraday-instance>/_api/v3/integrations/mesd/update-issue
Request Headers X-ServiceDesk-Token: 1
Authentication Details None
Content Type application/json

Request Payload:

{
  "status": "${{request.status}}",
  "desc": "${{request.description}}",
  "Authorization": "FARADAY_ACCESS_TOKEN"
}

Replace FARADAY_ACCESS_TOKEN with the Faraday User Token you copied earlier.

Fields not mentioned above are irrelevant and should be left unconfigured.

Configure ServiceDesk Trigger

  1. In your ServiceDesk panel, click Admin.
  2. Scroll to Automation and select Custom Triggers.
  3. Optionally create a new group for Faraday triggers.
  4. Create a new trigger:
Field Value
Trigger Name A descriptive name (e.g., Faraday Status Sync)
Execute on actions Edit only
Execute during Any Time
Cascade Execution Execute next rule
When Request arrives Apply conditions based on criteria
Execute rule when criteria is met Every time
Criteria — Field Status > Name
Criteria — Condition is modified
Action Webhook → select the previously created webhook

Important: Ensure that the ServiceDesk webhook executor can reach Faraday. In some instances, the webhook executor has a different IP address than the web platform. Verify your firewall/network configuration allows communication from the webhook executor to Faraday.


Step 4: Export Vulnerabilities to ServiceDesk

  1. In the Faraday Web UI, go to Manage > Vulns.
  2. Select one or more confirmed vulnerabilities.
  3. Click Tools (context menu) and select ServiceDesk.
  4. Vulnerabilities are created as request tickets in ServiceDesk using the configured template and field mappings.

Tracking Exported Vulnerabilities

  • Add the issuetracker column to the vulnerability table to see links to created ServiceDesk tickets.
  • Click the link to open the ticket directly in ServiceDesk.

Permissions

Permission Unit ID Group Description
service_desk 16 integrations ServiceDesk integration CRUD operations
active_integrations 19 integrations View/manage active integrations
integrations_auth 41 integrations Integration authentication management

Role-Based Access

Role CREATE READ UPDATE DELETE
Admin Yes Yes Yes Yes
Asset Owner Varies Varies Varies Varies
Pentester Yes Yes Yes Yes
Client Limited Limited Limited Limited

Data Model

UserToken Model

Tokens for ServiceDesk webhook authentication:

Column Type Description
id Integer Primary key
user_id Integer FK to faraday_user
token String Unique token value
alias String Descriptive name
expires_at DateTime Optional expiration
scope Enum service_desk (also: gitlab, jira, scheduler)
revoked Boolean Whether token is revoked
hide Boolean Hide token in UI

Vulnerability Fields

Field Type Purpose
issuetracker Text (JSON) Stores ServiceDesk ticket reference
issuetracker_json JSON (API) Structured ticket details for API/reports

Troubleshooting

Problem Possible Cause Solution
Authentication switch stays red Invalid URL or authtoken Verify URL (protocol + domain only) and authtoken are correct
Cannot reach ServiceDesk Network issue Ensure Faraday Server can reach ServiceDesk
Requester search returns no results Wrong search format Use the user's login name (not display name)
Severity mapping incomplete Fields left empty All 6 severity levels must be mapped
Template fetch fails Permissions issue Ensure the authtoken was generated from an administrator account
Bidirectional sync not working Webhook not reaching Faraday Verify the webhook executor IP can reach Faraday; check firewall rules
Status sync loop Misconfigured triggers Verify the trigger only fires on Edit actions with Status > Name is modified

Changelog

Date Change
2025-01-16 Original wiki documentation published
2026-02-27 Updated: verified against v5.19.0 codebase, added permissions model (UNIT_SERVICE_DESK ID 16), data model details (UserToken SERVICE_DESK_SCOPE), webhook endpoint and payload reference, role-based access, expanded troubleshooting

Source References

  • Wiki source: repos/faraday-wiki/docs/integration-servicedesk.md
  • Permission definitions: faraday/server/utils/permissions.pyUNIT_SERVICE_DESK
  • UserToken model: faraday/server/models.py (line ~2636) — SERVICE_DESK_SCOPE
  • Configuration model: faraday/server/models.py (line ~3641)
  • VulnerabilityGeneric model: faraday/server/models.py (line ~1431) — issuetracker
  • Vulnerability schema: faraday/server/api/modules/vulns_base.py (line ~299) — issuetracker serialization
  • Migration (service_desk scope): faraday/migrations/versions/7c223e63007f_add_service_desk_scope.py
  • Custom roles migration: faraday/migrations/versions/a29d52685b58_custom_roles.py — permission unit ID 16