Integrate PDQ Connect with Freshdesk & Freshservice
If your IT team uses Freshdesk or Freshservice (helpdesk ticketing systems from Freshworks), the official PDQ Connect Integration adds a sidebar to your tickets so agents can view a requester's devices, deploy packages, and jump into remote sessions without leaving the ticket. The integration surfaces the devices that belong to the ticket requester, so your agents have instant context about the end user's machine.
How it works
When an agent opens a ticket, the PDQ Connect app identifies the requester and looks up their devices across every PDQ Connect tenant you have configured. Any matching device is shown right in the ticket sidebar.
The matching flow works like this:
- An agent opens a Freshdesk or Freshservice ticket.
- The app reads the requester's email address from the ticket (or, with the Ticket Field strategy, a custom ticket field you choose).
- The app queries every configured PDQ Connect tenant for devices that match, using the match strategy you picked per tenant (see Step 4).
- All matching devices appear in the PDQ Connect panel in the ticket sidebar.
Once devices are matched, you can act on them from the sidebar:
- View device details - hostname, OS, online/offline status, IP address, the date the device was last seen, and any other fields you enable.
- Deploy a package - pick any package from your PDQ Connect library and deploy it to the device.
- Open the device in PDQ Connect - jump to the full device page in one click.
- Launch a remote desktop session - start a Remote Desktop connection to the device through PDQ Connect.
The app appears in the ticket sidebar. Configuration lives on the app's settings page, reached from your Freshworks admin area, and can hold up to 20 PDQ Connect tenants, so organizations managing several environments can surface devices from all of them in a single helpdesk.
Quick start
If you already have a PDQ Connect API key, you can get a requester's devices showing on a ticket in about five minutes. Each step links to the full instructions further down.
- Get a PDQ Connect API key - see Step 2. Use a dedicated key rather than a personal one, so it survives staff changes and can be revoked on its own.
- Install the app from the Freshworks Marketplace - see Step 3.
- Add one tenant: paste its Organization URL and API key, choose how devices are matched, and click Test Connection - see Step 4. Start with a single tenant; you can add more later.
- Open a ticket whose requester you know owns a device and check that the app panel lists it - see Step 5.
Two things that make the rollout go smoother:
- Match on the field your data actually fills. If your PDQ devices record the logged-on user, the default "Logged-on User" strategy needs no extra setup. If you tag devices with an owner's email in a custom field, use "Custom Field". If your tickets carry the machine name or asset tag in a ticket field, use "Ticket Field".
- Test against a device you can predict. Pick a ticket whose requester you know owns a machine, so an empty panel means something is misconfigured rather than just an unlucky test ticket.
Before you begin
Make sure you have the following before starting:
| Requirement | Details |
|---|---|
| PDQ Connect Premium plan | API access is only available on the Premium tier. |
| Freshdesk or Freshservice | The app runs on the Freshworks platform and supports both products. A plan that allows marketplace app installation is required. |
| Freshworks admin privileges | You must be an administrator in your Freshdesk or Freshservice account to install and configure the app. |
You will also need a PDQ Connect API key, and - if you plan to match on a custom field rather than the logged-on user - a custom field on your devices populated with user email addresses. We walk you through both in Steps 1 and 2.
Step 1 - Create a custom field in PDQ Connect (optional)
Where you are: PDQ Connect
This step is only needed if you intend to use the Custom Field match strategy. If you plan to match on the logged-on user (the default) or on a ticket field, skip ahead to Step 2.
The Custom Field strategy uses a field on each device to determine which user the device belongs to. If you already have a custom field populated with user email addresses, skip to Step 2.
- In PDQ Connect, go to More → Custom Fields in the left navigation.
- Click Add Custom Field.
- Name the field something recognizable, such as
emailAddressorEmail. - For each device, populate this field with the email address of the device's primary user.
- You can do this manually per device, or use the Import Values feature to bulk-update many devices at once from a CSV file.
The Email Match Field ID is case-sensitive, and must exactly match the name of the custom field where the user's email address will be stored:
For more details, see Working with Custom Fields.
Step 2 - Generate a PDQ Connect API key
Where you are: PDQ Connect
- In PDQ Connect, click the gear icon to open Settings, and go to the API Keys section.
-
Click Create API Key and give it a descriptive name (for example, "Freshdesk Integration").
PDQ Connect Settings → API Keys → Create API Key dialog with a name entered
-
Copy the API key and store it somewhere safe. You will not be able to view it again after you leave this page.
The generated API key shown once, with the copy button
Don't see the API Keys section? Your PDQ Connect role may not have API key management permissions. Ask your PDQ Connect admin to enable this in your role's RBAC settings.
Important: If you suspect an API key has been compromised, revoke it immediately from the same Settings page and generate a new one.
For more information, see PDQ Connect API.
Step 3 - Install the app from the Freshworks Marketplace
Where you are: Freshdesk or Freshservice
- Log into your organization's Freshworks tenant, which will have a URL similar to the following:
https://[YOUR_ORG_GOES_HERE].freshdesk.com/a/orhttps://[YOUR_ORG_GOES_HERE].freshservice.com/ - In Freshdesk: in the upper-right corner, click the Apps button, and then click Explore Marketplace Apps.
In Freshservice: go to Admin → Apps and open the marketplace. - In the search bar, search for PDQ Connect, and locate the PDQ Connect Integration app.
- Click through to the app, and click Install.
The installation opens the PDQ Connect Integration Configuration page, where you add your first tenant - covered in Step 4. After installation, the same page is available any time from your admin area (Manage Apps → PDQ Connect → Settings).
Step 4 - Configure the integration
Where you are: Freshdesk or Freshservice - admin
On the configuration page, fill in the following for each tenant. On a fresh install you enter everything on one form; on an installed app, tenants appear as cards with Edit and Remove buttons and a three-step editor.
Settings page showing the tenant list with Edit / Remove cards and the + Add Tenant button
| Field | What to enter |
|---|---|
| Organization URL | Your PDQ Connect organization (tenant) URL. This is the URL displayed when you are logged into Connect and on the Devices page: https://app.pdq.com/[YOUR_ORG_GOES_HERE]/devices
|
| API Key | The API key you generated in Step 2. Once saved, the key is masked and cannot be read back; to change it, type a new value over the mask. |
| Matching Strategy |
Choose how ticket requesters are matched to PDQ Connect devices:
|
|
Email Match Field ID (Custom Field strategy only) |
The name of the custom field you created in Step 1 (for example, emailAddress). It is case-sensitive. |
|
Ticket field (Ticket Field strategy only) |
Pick the ticket custom field from the dropdown. If the list cannot be loaded on your account (this happens on some Freshservice plans), a text input appears instead - type the field's key by hand (it starts with cf_). |
| Verify the Match | Optional. Type an email (or, under Ticket Field, a sample device name) and run the preview to see exactly which devices the current configuration matches. Useful for verifying a tenant before you save. |
Tenant editor showing the Matching Strategy selector with Logged-on User, Custom Field, and Ticket Field options
Note on the Logged-on User strategy. The integration compares the requester's email local-part (the part before @) against the device's currentUser and/or lastUser field. Common username shapes such as DOMAIN\jane.doe and jane.doe@example.com are normalized before comparison. No custom field is required when this strategy is selected.
-
Click Test Connection to verify that Freshworks can reach your PDQ Connect tenant.
Successful Test Connection result
- (optional) If you wish to connect any additional PDQ Connect tenants, click the Add Tenant button and repeat the configuration for the next slot (up to 20).
- Click Install (or Update on an existing install) in the top bar to save.
Admin settings
The settings page also includes these options, below the tenant list:
-
Device Details Display Fields - pick which device fields appear on the sidebar device card, including custom fields from your PDQ Connect tenants.
Display Fields editor with field checkboxes grouped by category
-
Freshworks API Access - optional. When set (a Freshworks domain plus an API key), the server verifies the ticket requester against Freshworks directly, so device matching and deployments are authorized against the real requester rather than data sent from the browser. Leave blank to keep the default behavior. Has its own Test Connection button.
Freshworks API Access section with Domain, API Key, and Test Connection
-
Debug Mode - enables verbose logging for troubleshooting. Server-side traces appear in the Freshworks app log viewer (see Troubleshooting), prefixed
[DEBUG]. Keep this off during normal use. -
Logging Mode - records every package deployment made through the integration, successful and failed, to the Freshworks app log viewer, prefixed
[DEPLOY]. Each entry names the agent who ran it, the target device, and the package - useful for audits, since PDQ Connect itself records integration deployments under a shared "API" actor.
Step 5 - Verify the integration
Where you are: Freshdesk or Freshservice
- Open any ticket where the requester has an email address that matches a device in PDQ Connect (or, for Ticket Field tenants, a ticket whose configured field holds a device name).
- Look for the PDQ Connect panel in the ticket sidebar.
-
You should see the matching device(s) listed with hostname, OS, and status.
Ticket sidebar showing a matched device with its details
If no devices appear, see the Troubleshooting section below.
Using the integration
Viewing device information
When you open a ticket, the PDQ Connect panel looks up the requester across all configured tenants and displays any matching devices. Device cards show the fields you enabled under Display Fields: hostname, operating system, online/offline status, last seen, and so on. If the requester matches more than one device, all of them are accessible via a dropdown.
Before performing an action, make sure you're looking at the correct computer for the ticket requester's issue.
If you take an action or deploy a package to the computer, the action will be executed immediately, just as if you had initiated it from the PDQ Connect app.
Deploying a package
- In the PDQ Connect panel, click Deploy on the device you want to target.
- The deployment view shows a "Deploy to" section with the target device. If the requester has multiple devices, switch between them using the dropdown.
-
Use the Search packages field to find and select a package from your PDQ Connect library.
Deployment view with the package search dropdown open
-
Click Deploy to start the deployment. A confirmation message appears, and you can track progress in PDQ Connect.
Successful deployment confirmation message
Opening a device in PDQ Connect
Click the device name or the Details button to jump straight to the full device page in PDQ Connect.
Starting a remote desktop session
Click Remote to launch a remote desktop session to the device through PDQ Connect's built-in Remote Desktop feature.
Troubleshooting
Most issues can be diagnosed from the Freshworks app log viewer: in your admin area, go to Manage Apps → PDQ Connect → Settings menu → View Log. Turn on Debug Mode first so the app writes detailed [DEBUG] traces there.
The PDQ Connect panel does not appear on tickets
- Confirm the app is installed and enabled under Manage Apps in your admin area.
- Make sure you completed the configuration in Step 4 and saved at least one tenant.
- Try refreshing the ticket.
No devices found for a ticket
- Confirm the ticket has a requester with a valid email address.
- Use Verify the Match in the tenant editor to check the configuration against a known email or device name. The preview lists the devices the current strategy would match - a fast way to confirm a fresh setup before opening a ticket.
- If your tenant uses the Custom Field strategy: check that the Email Match Field ID is spelled correctly (it is case-sensitive) and that devices in PDQ Connect have the field populated with the requester's email.
-
If your tenant uses the Logged-on User strategy: confirm devices have a populated
currentUserorlastUser. The requester's email local-part (before@) is what gets compared - forjane.doe@example.comto match, the device must reportjane.doe(after strippingDOMAIN\prefixes and@upnsuffixes). - If your tenant uses the Ticket Field strategy: confirm the configured field actually exists on the ticket form for that ticket type (on Freshservice, a field that is not on the form arrives empty, and matching silently falls back to Logged-on User). The field's value must equal the device name or the first part of the hostname.
- Make sure the API key is valid and has not been revoked.
- Turn on Debug Mode and check the app log viewer for
[DEBUG]entries showing what was compared.
Package deployment fails
- Verify the API key has permission to create deployments.
- Check that the target device is online in PDQ Connect.
- Review the deployment logs in PDQ Connect for detailed error information.
- With Logging Mode on, every deployment attempt (including denied ones, with the reason) is recorded in the app log viewer under
[DEPLOY].
Test Connection fails during configuration
- Double-check the Organization URL format. It should look like
https://app.pdq.com/your-org-name/devices. - Confirm the API key is correct and has not expired or been revoked.
- Ensure your network allows outbound HTTPS connections to
app.pdq.com.
Security and privacy
The PDQ Connect app requests only the access it needs to function. Here is what it can and cannot do.
What the app can read:
- The ticket requester's email address (and, for Ticket Field tenants, the configured ticket field's value), to identify the end user's device.
- The signed-in agent's email, used for deployment audit logging when Logging Mode is on.
What the app cannot do:
- It cannot create, edit, or delete tickets, replies, or other helpdesk data.
- It cannot access helpdesk data outside the ticket you are viewing.
How your data is stored:
- Your PDQ Connect API keys are stored as Freshworks secure settings, encrypted at rest. They are never exposed to the browser: all PDQ Connect API calls run server-side on the Freshworks platform, so the key never reaches the agent's machine.
- Tenant configuration (organization URL, match settings, display field choices) is stored in the app's installation settings inside Freshworks.
- The app calls only
app.pdq.com(and, if you configure Freshworks API Access, your own Freshworks domain). - Optional: with Freshworks API Access configured, the server independently verifies the ticket requester with Freshworks before matching or deploying, so those actions cannot be redirected by tampered browser data.
Known limitations
- Up to 20 tenants. The integration supports up to 20 PDQ Connect tenants per installation.
- Ticket field dropdown on Freshservice. On some Freshservice accounts the app cannot list your ticket fields (the platform denies the lookup); the settings page then falls back to a text input where you type the field key by hand.
- One user per device (Custom Field strategy). When matching on a custom field, the integration matches on a single email value per device. If a device is shared by multiple users, only the email in the custom field is matched.
- Large inventories. The integration paginates through your device list to stay within PDQ Connect's API rate limits, so on very large inventories the initial load on a ticket may take a few extra seconds.
FAQ
Is the integration free? Yes. The PDQ Connect app is free to install and use from the Freshworks Marketplace. You do need a PDQ Connect Premium plan to generate the API key the integration requires.
Does it work on both Freshdesk and Freshservice? Yes. The same app supports both products; install it from the marketplace of the product you use.
Can I use this with multiple PDQ Connect organizations? Yes. The integration supports up to 20 PDQ Connect tenants. Click Add Tenant on the settings page to add another. Devices from all tenants appear together on each ticket.
How does device matching work? Per tenant, you choose one of three strategies: the requester's email against the device's logged-on user, the requester's email against a device custom field, or a ticket field's value against the device name/hostname. All matching devices are displayed.
What if a requester has multiple devices? All matching devices are displayed. You can pick which device to deploy to or connect to from a dropdown in the panel.
Can I see who deployed what through the integration? Yes. Turn on Logging Mode on the settings page; every deployment is then recorded in the Freshworks app log viewer with the agent, device, and package.
Changelog
4.0.0 (in progress)
Added
-
Ticket Field matching. A new matching strategy that lets Freshdesk and Freshservice users match based on custom ticket fields - for example, a ticket field containing the hostname or device ID is matched against the device in PDQ Connect. If the field is empty, matching falls back to logged-on users.
Why? Some teams record the machine on the ticket itself rather than relying on the requester's email or a device-side field. This lets the right device surface, leveraging the existing ticket data. -
Deployment logging. An optional Logging Mode records every package deployed through the integration inside your Freshworks app, so you can keep track of who deployed what from a ticket.
Why? PDQ Connect records integration deployments under a shared "API" actor; this log attributes each deployment to the agent who ran it.
Changed
- Minor performance and stability improvements.
3.0.0
Added
-
Automated Device Matching. Tenants can now match devices against the Current Logged-On User or Last Logged-On User attributes that PDQ Connect collects automatically, with no custom-field plumbing required. An Auto mode prefers Current Logged-On User when populated and falls back to Last Logged-On User otherwise, which covers the common state on Windows machines after the user has signed off.
Why? Agents see the right machine on a ticket without anyone building or maintaining a custom field first. The link works out of the box. -
Custom Field Matching, easier to configure. The match-field input now suggests every custom field already defined on the tenant's devices, replacing the free-text entry that required exact-string knowledge of the field name.
Why? Teams that already tag devices with a custom field pick it from a list instead of typing the exact name from memory. Fewer typos, faster setup.
Changed
- Several UI and functional improvements across the admin settings page, including a three-step tenant editor, per-tenant edit flow, and refreshed typography.
2.0.0
Added
- Workspace isolation for Freshservice. Install globally across the account or scope to a single workspace. Why? Larger Freshservice accounts can give each team its own PDQ scope, so one workspace's devices and credentials stay out of another's.
- Per-tenant configuration with persistence. Each PDQ Connect tenant carries its own URL, API key, and match settings, and edits to one tenant do not disturb another. Why? Run several PDQ environments side by side and change one without touching the rest.
-
Customizable device fields. Choose which PDQ Connect fields appear on the ticket sidebar.
Why? Agents see the fields they act on during triage instead of scrolling past ones they never use. - Telemetry for product analytics. Why? Usage data shows which parts of the integration people rely on, so those are where the work goes next.
Changed
- Larger environments no longer trip the Freshworks 50 req/sec rate limit.
- Renaming a tenant from configuration no longer produces a "Failed to fetch" error.
- The device list now resets when the agent switches between tickets.
- An edge case where the deploy target could change unexpectedly between selections.