Connectors / Service / PDK

Artisan IMG > PDK (pdk)

PDK

PDK (ProdataKey) easy-to-scale systems provide maximum security, real-time updates, & more, all managed from one simple app.

Overview

PDK (ProdataKey) is a cloud-based access control system, enabling scalable, easy-to-manage building security. You can manage access control devices from the cloud, and from PDK's mobile app.

Authentication

When using the PDK connector, the first thing you will need to do is go to your Tray.io account page, and select the workflow you wish to work on. Once in the workflow dashboard itself, search and drag the PDK connector from the connectors panel (on the left hand side) onto your workflow.

With the new PDK connector step highlighted, in the properties panel on the right, click on 'New Authentication' which is located under the 'Settings' heading.

pdk-auth

This will result in a Tray.io authentication pop-up window. The first page will ask you to name your authentication appropriately, and state which type of authentication you wish to make ('Personal' or 'Organisational').

As you can see, the next page asks you for your 'Client ID' and 'Client Secret' in order to complete authentication.

pdk-auth-popup-1

IMPORTANT!: In order to retrieve these fields, you will need to contact PDK directly in order to gain access to their API.

Once you have clicked the 'Add authentication' button, go to back to your authentication field (within the workflow dashboard properties panel from earlier), and select the recently added authentication from the dropdown options now available.

Your connector authentication setup should now be complete.

Available Operations

The examples below show one or two of the available connector operations in use.

Please see the Full Operations Reference at the end of this page for details on all available operations for this connector.

Using the Raw HTTP Request ('Universal Operation')

As of version 1.0, it is now possible to effectively create your own operations.

This is a very powerful feature which you can put to use when there is an endpoint in PDK which is not used by any of our operations.

To use this you will first of all need to research the endpoint in the PDK API documentation vX.X , to find the exact format that PDK will be expecting the endpoint to be passed in.

Unfortunately, due to the fact that the API's base URL is modified depending on your Panel ID, you will need to supply a full URL, whereas with most connectors you would only need to supply an endpoint.

The base URL for PDK is: https://panel-{YOUR_PANEL_ID}.pdk.io/api

For example, say that the 'List persons' operation did not exist in our PDK connector, and you wanted to use this endpoint, you would use the PDK API docs to find the 'Retrieve All Persons' endpoint. Note that it is a GET request and if it has any required or extra fields:

pdk-get-url

So using this, you can get the list of all persons associated with your account with the following settings:

Method: GET

Endpoint: /persons

pdk-raw-http

Final outcome being: https://panel-{YOUR_PANEL_ID}.pdk.io/api/persons

This will now return all persons details as requested.

Example usage

TRAY POTENTIAL: Tray.io is extremely flexible. By design there is no fixed way of working with it - you can pull whatever data you need from other services and work with it using our core and helper connectors. This demo which follows shows only one possible way of working with Tray.io and the PDK connector. Once you've finished working through this example please see our Introduction to working with data and jsonpaths page and Data Guide for more details.

Below is an example of a way in which you could potentially use the PDK connector, to list all reports in your account, and then retrieve each report individually.

The steps will be as follows:

  1. Setup the trigger and add list the reports available.

  2. Add a Loop collection step to work through said list.

  3. Finally add another PDK connector in order to get a report from the list.

The final outcome should look like this:

pdk-workflow-final

1 - Setup trigger & add 'List reports' step

Once you have clicked 'Create new workflow' on your main Tray.io dashboard (and named said new workflow), select the Manual trigger from the trigger options available:

pdk-manual-trigger

Once you have been redirected to the Tray.io workflow dashboard, from the connectors panel on the left, add a PDK connector to your second step. Set the operation to 'List reports'. Also make sure to select your Panel ID in the input panel.

pdk-workflow-step-1

Feel free to re-name your steps as you go along to make things clearer for yourself and other users.

When this workflow is run, it will list all the reports associated with your account.

2 - Add Loop Collection

In order to retrieve information associated with each individual report, we have to use the Loop Collection helper to iterate through the list of reports.

To do this, drag a Loop Collection step into your workflow. Set the operation to 'Loop List'.

To tell the Loop Collection to iterate through our reports, use the connector-snake to assign the 'List' property in the input panel, to the results array that is output by the 'List reports' step.

pdk-connector-snake
pdk-workflow-step-2

JSONPATHS: For more information on what jsonpaths are and how to use jsonpaths with Tray.io, please see our Intro page and Data Guide for more details.

CONNECTOR-SNAKE: The simplest and easiest way to generate your jsonpaths is to use our feature called the Connector-snake. Please see the main page for more details.

Now, when this workflow is run, the Loop Collection will iterate through each report. However, we are not currently doing anything with those reports.

3 - Add 'Get report' step

Next, add another PDK connector step to run inside the Loop Collection step. Select the operation 'Get report'. Once again, select your Panel ID in the input panel.

pdk-workflow-step-3

Use the connector-snake once more to retrieve the id field from the Loop Collection.

pdk-connector-snake-2

Now, when you run this workflow, a list of reports will first be pulled from the PDK API, and will then be iterated over and returned individually.

From here, you can use this setup to modify each report, or to send this data to another service.

BEST PRACTICES: Whenever you do decide to create your own workflow, please make sure you take a look at our managing data best practices guide.

All Operations

Latest version:

1.2

Get report

Get a report by ID.

Get system event rule

Get a system event rule by ID.

Global search

Search for persons, groups and floor groups.

List audit log entries by report

List audit log entries filtered by report within the given panel.

Create report

Create a report.

Create system event rule

Create a system event rule.

List auto open rules

List access rules specifying when doors can be opened or closed.

List card formats

List available card formats.

List connections

List connections within the given panel.

List devices

List devices within the given panel.

List floor groups

List floor groups within the given panel.

List groups

List groups within the given panel.

List partitions

List partitions within the given panel.

List persons

List persons within the given panel.

List reports

List reports within the given panel.

List system events

List systems events within the given panel.

Raw HTTP Request (Advanced)

Perform a raw HTTP request with some pre-configuration and processing by the connector, such as authentication.

Update auto open rule

Update an auto open rule by its ID.

Update config

Update system configuration entries.

Update connection

Update a connection by its ID.

Update device

Update a device. Metadata will be written over if left blank.

Update floor group

Update a floor group. Metadata will be written over if left blank.

Update group

Update a group. Metadata will be written over if left blank.

Update partition

Update a partition by its ID.

Update person

Update a persons information. Metadata will be written over if left blank.

Update report

Update a report.

Update system event rule

Update a system event rule.

Delete auto open rule

Delete an auto open rule by its ID.

Delete connection

Delete a connection by its ID.

Deregister panel

Deregister a given panel.

Create auto open rule

Create an access rule that represents the times that doors should be propped open.

Create connection

Create a new connection.

Create device

Create a new device.

Create floor group

Create a new floor group.

Create group

Create a new group.

Create partition

Create a new partition.

Create person

Create a person.

Delete device

Delete a device by ID.

Delete floor group

Delete a floor group by ID.

Delete group

Delete a group by ID.

Delete partition

Delete a partition by its ID.

Delete person

Delete a person by ID.

Delete report

Delete a report.

Delete system event rule

Delete a system event rule.

Get auto open rule

Get an access rule by its ID.

Get config

Get system configuration entries.

Get connection

Get a collection by its ID.

Get device

Get a device by ID.

Get floor group

Get a floor group by ID.

Get group

Get a group by ID.

Get my organization unit

Get the current organization unit the authenticated unit is assigned to.

Get organization unit

Retrieve an organization unit with its given ID.

Get panel

Get a panel by its given ID.

Get partition

Get a partition by its ID.

Get person

Get a person by ID.