Skip to content
PowerShell module to interact with the TOPdesk API
Branch: Development
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode updated taskname Feb 13, 2019
TOPdeskPS replaced = with -eq Jul 11, 2019
build removed unused files Feb 4, 2019
docs updated help Feb 13, 2019
images add notification documentation Jan 6, 2019
templates updated templates Dec 22, 2018
.gitignore updated gitignore. incremented version Aug 24, 2018 updated change log Jul 11, 2019 Initial Commit Jul 9, 2018
README.MD Update README.MD Aug 27, 2019 Initial Commit Jul 9, 2018 Initial Commit Jul 9, 2018
install.ps1 Merge branch 'master' into Development Oct 14, 2018
psake.ps1 renamed Set-ModuleFunctions to Set-ModuleFunction Jun 18, 2019




PowerShell module to interact with TOPdesk through its REST API. This module can be used to ease daily administration of TOPdesk as well as provide awesome automation abilities.

Preparing TOPdesk

In order to connect to TOPdesk you will need to have an account with the required permissions. Create a separate permission group that only allows the use of the API. Enable permissions for "REST API".

See for instructions on how to grant API permissions and how to generate an application password if you prefer. This module supports using an application password and using standard topdesk login creds.

Installing the module

TOPdeskPS is published to the PowerShell gallery and can be installed by running:

  Install-Module -Name TOPdeskPS -Repository PSGallery -Scope CurrentUser

Connecting to TOPdesk

Using TOPdesk login Credentials (not SSO)

  Connect-TdService -url '' -Register

Prompts for your TOPdesk credentials. Connects to your TOPdesk instance and registers the url. The next time you run Connect-TdService it will remember your TOPdesk Url.

Using an application password

Use an application password to connect rather than your TOPdesk login credentials. The username should be the topdesk login name of the user who created the application password.

  Connect-TdService -url '' -ApplicationPassword

Get Incidents

Return incidents

  Get-TdIncident -ResultSize 50

Create Incidents

$IncidentParams = @{
  Action = 'Initial Action'
  BriefDescription = 'brief description'
  CallerEmail = ''
New-TdIncident @IncidentParams

Update Incidents

$incidentParams = @{
  Number = 'I1811-123'
  Action = 'Updated Action'
  Operator = (Get-TdOperator '').id
  Category = 'TechSupport'
  Subcategory = 'PowerShell'
Set-TdIncident @incidentParams

Create Persons

$personParams = @{
  Surname = 'Doe'
  BranchId = (Get-TdBranch -Name HQ).id
  NetworkLoginName = ''
  Gender = 'FEMALE'
  Email = ''
  New-TdPerson @personParams

Send Notifications

Use the task notifications api to send alerts to your operators.

Send-TdTaskNotification -Title 'TOPdesk notification from PS!' -Body "You've got the power" -OperatorId (Get-TdOperator 'First.Last').id


For the full web based documentation visit the TOPdeskPS site

Release History

A detailed release history is contained in the Change Log.


TOPdeskPS is provided under the MIT license.

You can’t perform that action at this time.