Skip to main content
pdq icon

PDQ Connector

SourceAPI DocsAPI ChangelogConnector Changelog

Description

PDQ provides a suite of management tools to automate software deployment, manage patches, and track inventory across a company’s networks.

Use the PDQ component to manage deployments, devices, groups, and packages.

API Documentation:

The component was built using the PDQ V1 API

Connections

API Key

key: pdq-api-key

Follow these steps to generate a new API key in PDQ:

  1. Login to your PDQ Connect account and select the settings icon represented by a cog located in the lower left corner.
  2. Navigate to the API keys section and select Create API Key.
  3. Provide a unique name for the API key and select Create.
  4. Copy and save the generated API key as it will not be shown again.
  5. Enter the generated API key into the connection configuration of your integration.
InputNotesExample
API Key

The PDQ API Key

Triggers

New Records

Checks for new Devices or Groups added to PDQ on a configured schedule. | key: pollChangesTrigger

InputNotesExample
Connection
Resource Type

Select the PDQ resource to poll for newly added records. Choose Devices or Groups. Required.

Devices

This trigger polls PDQ on a configured schedule and emits Devices or Groups that were added since the previous run. It is a convenient alternative for reacting to newly inventoried resources without manual checks.

How It Works

PDQ's list endpoints expose an insertedAt (creation) timestamp on each record but no modification timestamp, and no confirmed server-side date filter. On each scheduled run the trigger fetches all records of the selected resource (sorted by insertedAtDesc) and keeps only those whose insertedAt is after the previous poll time. The current run time is stored as the cursor for the next run.

  • First run: the very first execution records the cursor and emits nothing, so an instance does not receive a backlog of historical records on deploy.
  • Subsequent runs: only records added since the last run are returned.

Returned Data

The trigger returns the newly added records under data.created. Fields shown are representative. The full response object includes additional properties.

Example Payload
{
"data": {
"created": [
{
"id": "dvc_1bced782734040a581d",
"name": "LAB01",
"hostname": "LAB01",
"insertedAt": "2024-01-01T00:00:00.000000Z"
}
]
}
}

Notes

  • This trigger detects new records only. PDQ exposes a creation timestamp (insertedAt) but no modification timestamp, so edits to existing devices or groups are not detected.
  • Because there is no confirmed server-side date filter, each run lists all records of the resource and filters them in memory.

Data Sources

Select Device

Select a Device from a dropdown menu. | key: selectDevice | type: picklist

InputNotesExample
Connection
Example Payload for Select Device
Loading…

Select Group

Select a Group from a dropdown menu. | key: selectGroup | type: picklist

InputNotesExample
Connection
Example Payload for Select Group
Loading…

Select Package

Select a Package from a dropdown menu. | key: selectPackage | type: picklist

InputNotesExample
Connection
Example Payload for Select Package
Loading…

Actions

Create Deployment

Deploy a package version to target devices or groups | key: createDeployment

InputNotesExample
Connection
Package

The package id to deploy.

pkg_123abc
Targets

Comma-delimitted Device IDs or Group IDs.

grp_123abc,dvc_123abc
Example Payload for Create Deployment
Loading…

Get Device

Retrieve a device by ID | key: getDevice

InputNotesExample
Connection
Device ID

The ID of the device to retrieve.

123456
Example Payload for Get Device
Loading…

Get Package

Retrieve a package by ID | key: getPackage

InputNotesExample
Connection
Package ID

The ID of the package

123456
Example Payload for Get Package
Loading…

List Devices

Retrieve a list of devices | key: listDevices

InputNotesExample
Connection
Custom Query Params

Custom fields filter

key1=value1
Fetch All

If true, fetch all data.

false
Filter

String filter values will filter on exact values unless a supported operator is provided.

{"hostname":"~hostname"}
Group

The id of the group to filter by.

123456
Includes

Include related resources.

networking,processors
Page

The page number to return.

1
Page Size

The number of records to return per page. Maximum is 100.

100
Sort

Sort by a field in camel case. By default a field name sorts with 'Asc'. Add the suffix 'Desc' to sort by that field in descending order.

insertedAtDesc
Example Payload for List Devices
Loading…

List Groups

Retrieve a list of groups | key: listGroups

InputNotesExample
Connection
Custom Query Params

Custom fields filter

key1=value1
Fetch All

If true, fetch all data.

false
Filter

String filter values will filter on exact values unless a supported operator is provided.

{"hostname":"~hostname"}
Page

The page number to return.

1
Page Size

The number of records to return per page. Maximum is 100.

100
Sort

Sort by a field in camel case. By default a field name sorts with 'Asc'. Add the suffix 'Desc' to sort by that field in descending order.

insertedAtDesc
Example Payload for List Groups
Loading…

List Packages

Retrieve a list of packages | key: listPackages

InputNotesExample
Connection
Custom Query Params

Custom fields filter

key1=value1
Fetch All

If true, fetch all data.

false
Filter

String filter values will filter on exact values unless a supported operator is provided.

{"hostname":"~hostname"}
Page

The page number to return.

1
Page Size

The number of records to return per page. Maximum is 100.

100
Sort

Sort by a field in camel case. By default a field name sorts with 'Asc'. Add the suffix 'Desc' to sort by that field in descending order.

insertedAtDesc
Example Payload for List Packages
Loading…

Raw Request

Send raw HTTP request to the PDQ API | key: rawRequest

InputNotesExample
Connection
Data

The HTTP body payload to send to the URL.

{"exampleKey": "Example Data"}
File Data

File Data to be sent as a multipart form upload.

[{key: "example.txt", value: "My File Contents"}]
File Data File Names

File names to apply to the file data inputs. Keys must match the file data keys above.

Form Data

The Form Data to be sent as a multipart form upload.

[{"key": "Example Key", "value": new Buffer("Hello World")}]
Header

A list of headers to send with the request.

User-Agent: curl/7.64.1
Max Retry Count

The maximum number of retries to attempt. Specify 0 for no retries.

0
Method

The HTTP method to use.

Query Parameter

A list of query parameters to send with the request. This is the portion at the end of the URL similar to ?key1=value1&key2=value2.

Response Type

The type of data you expect in the response. You can request json, text, or binary data.

json
Retry On All Errors

If true, retries on all erroneous responses regardless of type. This is helpful when retrying after HTTP 429 or other 3xx or 4xx errors. Otherwise, only retries on HTTP 5xx and network errors.

false
Retry Delay (ms)

The delay in milliseconds between retries. This is used when 'Use Exponential Backoff' is disabled.

0
Timeout

The maximum time that a client will await a response to its request

2000
URL

Input the path only (/deployments), The base URL is already included (https://app.pdq.com/v1/api). For example, to connect to https://app.pdq.com/v1/api/deployments, only /deployments is entered in this field. e.g. /deployments

/deployments
Use Exponential Backoff

Specifies whether to use a pre-defined exponential backoff strategy for retries. When enabled, 'Retry Delay (ms)' is ignored.

false

Changelog

2026-06-09

Added the New Records polling trigger for Devices and Groups, which checks for records added since the last run

2026-04-30

Updated spectral version

2025-08-29

Added data sources and inline data sources for Devices, Groups, and Packages:

  • Updated all string input placeholders to follow Guru standards (using "Enter..." pattern)
  • Fixed connection label to follow standards (removed component name from label)
  • Added marketing categories configuration