We automated the provisioning steps in a Powershell script for you. It will connect to our environment and get the needed changes applied to your infrastructure.

Please read before you start

The PowerShell script needs to be run by a tenant admin TENANT ADMIN. Please note:

  • The script will automatically apply Required Permissions used by Nimbus. 
  • The following modules are used / installed on your machine when running the script. The newest versions are retrieved upon script execution.


  • We recommend executing the script with PowerShell 5.1 (you can check via "Get-Host" command). Version 7 is causing frequent problems. (info) Also refer to the "Troubleshooting" section on the bottom of this page.

(lightbulb) Tip: The script run is also needed when Service Settings change (e.g. PSTN numbers & Team Name). Keep the script session window open if you want to test settings. By doing so you don't need to go through all steps again when you need to provision multiple teams.

Below is an overview of our provisioning script

Provisionining - Step by Step

Script download

Get the provisioning script via direct link below. Pick the link depending on the chosen location:

(question) Why pick a region? Refer to Nimbus Installation > "Provision the first Team to Nimbus".  Pick the correct script according to the (future) region of your tenant data.

(lightbulb) You may have a look inside and compare the different scripts we provide, but manual edits are not required.
(lightbulb) When executed the script will check for updates and may request you to download the newest version.
(lightbulb) Once a Nimbus team has already been provisioned you can also find a script "download" button located within the User Settings.

Script Details

(tick) TENANT ADMIN To execute the script Tenant Administrator credentials must be provided (→ 'Global administrator' role). 

(info) Refer to the diagram above for an overview. During execution and depending on pending Service Settings changes the script will perform the steps below:

  • Connect to Azure AD and your tenant.
  • Grant the needed consent for the main Nimbus application, this will allow Nimbus to read user and team details in the tenant and record voice messages if the latter is configured for the team. → See: Required Permissions
  • Create, update or delete an Application Instance and grant the required consent to it to be able to set up conversations.
  • Associate or remove PSTN license (License name: 'Microsoft 365 Phone System - Virtual User'). (info) Refer to Installation Prerequisites > PSTN licensing for details.
  • Apply a voice routing policy from the ones defined and selectable on your tenant. 
  • Add, update or delete PSTN phone number. (warning) Note that a PSTN number causes additional license cost by Microsoft. Get in touch with your local O365 integrator.
  • Lastly the script will apply Service Settings - either new or future changes made by you or any service team owners (e.g. a name or UPN change).

    Pending changes on a Service will inform about a necessary Script-rerun


    → After execution, the Script reports back to Nimbus. If everything was successful all changes are reflected in the Service Settings.

    (lightbulb) Please allow for a few minutes before making calls to a newly (re)configured Application Instance or PSTN number as it might take a moment for Microsoft Azure services to synchronize all the changes.
    (lightbulb) Note that a rerun of this script is necessary for every additional Service and/or within your tenant. You may want to read →  How to deploy Microsoft Runbook to automate this process.

Script Execution

  1. Execute the Script and provide your tenant admin credentials

  2. The script runs and grants Required Permissions to the App. 

    (info) If this has already been done by a tenant admin in the Nimbus Installation chapter, this is not required again. 

  3. The Script checks which service teams have been created or changed in the respective Service Settings backend (can be done by each TEAM OWNER) and pulls them out one by one.
    All services with changes to apply will be shown as either Delete, Create or Update.
    You can then choose one of the two options.
     I -  per Team individually  - you can inspect and confirm each change.
    A - for all Teams - all changes are auto-confirmed. (warning) Please note that PSTN licenses will be applied automatically as long as they are available - first come, first serve base. 
  4. Carry on with the next step for further technical details.

PSTN Licenses and Voice Policies

(tick) The following steps apply only if your Service Settings have changed  (e.g. PSTN enabled

PSTN License

The script also allows you to choose the PSTN license type (Phone System or Virtual Phone System) to assign to a service (Application Instance). 

You have the following options:

  • Automatically Virtual Phone System
  • Automatically Phone System
  • Manual Assignment
    → Allows you to manually assign the license, then performs a check when you confirm.
  • Skip (no PSTN will be assigned)

(lightbulb) Via the same script functionality you can also remove PSTN licenses from Nimbus services.

Voice Policy

The script will ask before any voice routing policy should be applied to a service (Application Instance):

You have the following options:

  • When No is selected, no changes will be applied.
  • When Yes is selected, voice routing policies from your tenant are polled.
    → You will be requested to confirm voice routing policy name to assign it.

(lightbulb) Via the same script functionality you can remove voice policies from Nimbus services.

Script Conclusion and Rerun

  1. When everything runs as expected you will see green DONE indicator and the script finishes.

  2. At the end you will be asked if you want to re-run the script. Keep the Script instance open until all Service changes are complete so you don't need to authenticate again.

    (lightbulb) For each further pending change in the Service Settings > "Service Details" the Powershell instance can be run again until you are satisfied with the results.

Verifying changes via Test Call

(tick) Allow for at least 5 minutes after applying Team changes to the before making the call. 

  1. To test the functionality, team members should be available for the called team and be set "Active" in their Dashboard
  2. Open the Service Settings of the team you want to test with and click on "Test Call".

    (lightbulb) You can test this with 2 different Microsoft Teams client accounts separate browser windows to simulate this call on your own.
    (lightbulb) In case of a PSTN Number it's also recommended trying to directly call the service with a cell phone.

PSTN Limitations

Transfer to PSTN limitation

Out of box Nimbus and affiliated addons can only perform PSTN transfers according to Microsoft services licensing & constraints.

Which PSTN license do I need to acquire?

(tick) As a tenant administrator you need to acquire and assign the following licenses to the application instance of the respective Nimbus SOURCE service (team) that will act as PSTN transferor:

Your SetupRequired License
Microsoft Phone System Direct Routing
"Microsoft Teams" (App license, available as part of the Microsoft 365 E1 / E3 / E5 and other packages)
+ "Microsoft Teams Phone Standard" or "Microsoft Teams Phone Standard - Virtual User"
Microsoft Phone System with Calling Plan

"Microsoft Teams Phone Standard" or "Microsoft Teams Phone Standard - Virtual User" 
+ "Microsoft 365 Domestic Calling Plan" or "Microsoft 365 Domestic and International Calling Plan"
+ "
Communication Credits" (if these aren't already included as part of your plan)
How does PSTN licensing affect Service and Call Transfers?

Assuming that Service A has a PSTN license assigned - but further Services don't - the following scenario may unfold:

  • Scenario A - Service A workflow is configured to transfer the caller to Service B. The license of Service A is used, the PSTN transfer occurs. The PSTN license is re-used throughout further transfers to Services C..D...x.
  • Scenario B - Service B is called directly instead. Now the workflow of Service B attempts a redirect to either service A or transfer to C. The PSTN transfer fails due to a missing license on Service B.


  • For one first-level-response Service: If you handle first-response calls always via the same Service you need a PSTN license for that particular first-level Service.
  • For multiple first-level-response Services: If you handle first-response calls always via multiple Services you need a PSTN license for all those first-level Services .
  • Nimbus will attempt to use the PSTN license of the first service that responded to a call, regardless of how many further internal service transfers are performed thereafter.
  • If no PSTN license is found on a service that requires it for a transfer, the transfer task will be considered as failed and be treated as such by the system (e.g. workflow exit announcement, reporting "transfer failed" outcome).

(warning) Note that handling and tracking of running cost for PSTN licenses is outside of Luware support scope.
If you require assistance in extending and/or configuring your Nimbus services for PSTN our support will gladly assist you:

(info) Refer to the external reference: Microsoft Teams add-on licenses.


Error during Script execution 

If the script launch fails with error "File cannot be loaded because the execution of scripts is disabled on this system." it means that execution policy on a given PC does not allow scripts execution.
→ Changing execution policy to "RemoteSigned" will help to solve this, please check the Microsoft Documentation for more details.

First-time execution

When the script is run for the first time on a given PC it will try to install all the required modules and libraries. The script might need to be run as Administrator for it:
→ Right click on the "Windows PowerShell" item in Windows search and select "Run as administrator". 


Newtonsoft.Json.dll  Library Error

When you see an error referring to the "Newtonsoft.Json-Library (v. within the Microsoft Teams Module", perform the following steps: 

  1. Open "C:\Program Files\WindowsPowerShell\Modules\MicrosoftTeams\2.5.1\net472 "

  2. Locate "Newtonsoft.Json.dll

  3. Move it to the "bin" subfolder