Extension Automations
As a part of Pia AI Desk, Pia provides you with a set of 50-60 automation packages. These packages let you perform various tasks with Pia such as Staff Onboarding and Offboarding.
Pia's automations support a range of scenarios. Right now, with advanced automations (such as Staff Onboarding and Offboarding) you can use manual tasks to achieve the gap between what Pia does and the processes for your clients.
Using Extension Automations in Pia you can create your own extensions for your favorite Pia packages.
Examples:
- At the start of Staff Onboarding automation for client "ABC Company", prompt a message to the Service Desk engineer to remind them to do something
- At the end of the Staff Onboarding automation, send an email to HR to let them know that a new user has been created
- At the end of the terminate user automation, revoke a license in backup radar via a third party API
- After submitting the Staff Onboarding Form, send an email to HR with the New User Request details
First, see it in actionβ
Demo of running an extension after Staff Onboarding creationβ

How we built itβ

Quick Startβ
The best way to become an Extension Automation guru is OUR TUTORIAL SERIES. ππΊ.
Once you have decided what you want your extension automation to do, follow the steps below:
- Create a new automation
- Add the
extension_automation
condition to let Pia know that your automation is an extension automation - Use data from the parent automation in your extension
- Promote your automation to 'live'
- Link your extension automation to a Pia automation
Here is an example of a package running in Pia chatbot with an extension automation linked to it:
Deciding on Extension Automation Propertiesβ
The first step is to find the gap between a Pia package and the business process you want to automate. This will help you understand what you want your extension automation to do.
Once you have decided on your required extension automation and the package you wish to extend, the next step is to define at what point of the package your extension automation will run. Pia currently provides extension points for the Staff Onboarding and Staff Offboarding automation in the following areas:
Package Name | Extension Points |
---|---|
Pia: Staff Onboarding Package | Start of the Package, Middle of the Package (Prior to Staff Onboarding), End of the Package |
Pia: Staff Offboarding Package | Start of the Package, Middle of the Package (Prior to Staff Offboarding), End of the Package |
Pia: Reset Network Password Package | Start of the Package, Middle of the Package, and End of the Package (After the user is selected) |
Pia: Account Locked Out Package | Start of the Package and End of the Package |
Pia: Re-enable Offboarded Account Package | Start of the Package and End of the Package |
Pia: Re-allocate User License Package | Start of the Package and End of the Package |
Pia: Manage User Licenses Package | Start of the Package and End of the Package |
Use data from the parent automation in your extensionβ
Pia gives you the ability to use the data from the parent automation in your extension automation. The data will be available as a json object in the format as required by the package.
You can use the data from the parent automation using an inline PowerShell activity in your extension package where you can set the input property as:
- task: inline_powershell
inputs:
data: =extension_automation.parent_data
script: |
$obj = $(ConvertFrom-Json $data)
write-host $data
Data available from Staff Onboarding Packageβ
Extension Point 1 (Start of the Package) There is no data available for this extension point.
Extension Point 2 (Middle of the Package)
{
"additionalAttributes": "",
"additionalProxyAddresses": "",
"alAdditionalAttributes": "",
"changeAtLogon": true,
"city": "",
"company": "",
"countryCode": "",
"department": "",
"description": "",
"displayName": "",
"email": "",
"employeeId": "",
"expiration": "",
"firstName": "",
"groups": "",
"jobTitle": "",
"lastName": "",
"managerUpn": "",
"middleName": "",
"mobilePhone": "",
"office": "",
"officePhone": "",
"ou": "",
"password": "",
"postalCode": "",
"skipMailNickname": true,
"state": "",
"street": "",
"userName": "",
"userPrincipalName": ""
}
Extension Point 3 (End of the package)
{
"adGroupsAssigned": [],
"additionalAttributes": "",
"additionalProxyAddresses": "",
"alAdditionalAttributes": "",
"azureGroupsAssigned": [],
"changeAtLogon": true,
"city": "",
"company": "",
"country": "",
"department": "",
"description": ""
"displayName": "",
"emailAddress": "",
"employeeId": "",
"expiration": "",
"firstName": "",
"groups": "",
"jobTitle": "",
"lastName": "",
"licenses": [],
"manager": "",
"middleName": "",
"mobilePhone": "",
"office": "",
"officePhone": "",
"orgUnit": "",
"ou": "",
"password": "",
"postcode": "",
"samAccountName": "",
"skipMailNickname": true,
"state": "",
"street": "",
"userPrincipalName": ""
}
Data available from Staff Offboarding Packageβ
Extension Point 1 (Start of the Package) There is no data available for this extension point.
Extension Point 2 (Middle of the Package)
{
"additionalAttributes": "",
"clientId": 123,
"immutableId": "",
"samAccountName": "",
"scheduleDate": "",
"scheduleForLater": true,
"userPrincipalName": ""
}
Extension Point 3 (End of the package)
{
"adGroupsRemoved": [],
"additionalAttributes": "",
"azureGroupsRemoved": [],
"clientId": 123,
"displayName": "",
"emailAddress": "",
"emailAddresses": [],
"firstName": "",
"licenses": [],
"orgUnit": "",
"samAccountName": "",
"scheduleDate": "",
"scheduleForLater": true,
"surname": "",
"userPrincipalName": ""
}
Data available from Reset Network Password Packageβ
Extension Point 1 (Middle of the Package)
{
"userPrincipalName": "",
"password": "!",
"changeAtNextLogon": true,
"clientId": 123
}
Linking Extensions to a Clientβ
See the instructions for adding an Extension to a Client