Internal Process Modifications

Modified on Thu, 17 Sep at 12:44 PM

TABLE OF CONTENTS


 1. Introduction 

 In five(9)s Console, most core functionalities (e.g., OSD, SWD, Patch, AddDevice) are implemented as independent Console Processes, each with its own dedicated configuration. These processes can be customized (Internal Process Modifications).  
 

Customizations can be integrated via JSON configuration files, mail templates, and custom executables to extend or modify the default process behavior.
 


 2. Configuration Location 

 The main process configuration files are stored in the config folder of the Console Processes. This is also the path for custom executables: 

	
		
			
				
					C:\inetpub\wwwroot\five9sWS\ConsoleProcess\config
				
			
		
	

  Mail templates are stored in:  

	
		
			C:\inetpub\wwwroot\five9sWS\MailTemplates
		
	

  The images for the mail templates are located in:  

	
		
			C:\inetpub\wwwroot\five9sWS\MailTemplates\Pictures
		
	


 3. Configuration Keys 

 Each JSON file, such as P01StatusChange.json, represents the configuration for a Console Process. Configurations mainly consist of an array of steps (groups of actions) and a set of parameters. Parameters can be used by custom executables. Below is an explanation of the most important keys for each step.  
 

Note: If a specific step is not configured, the internal action is executed by default. However, steps can be configured to be skipped or replaced.


 3.1. Name 

 The name for the Step. Each process has the Step “Main” which can be used to replace the complete process with a customer-specific executable. “Step000” is the first step and can be used to call an executable before any internal actions are called. The other Steps are dependent on the specific five(9)s Console Process.

 

 3.2. Action 

  
Action
 
 
   
Description
 
 
 
   
Default
 
 
 
   
The default/internal action for this step will be used.
 
 
 
   
Add
 
 
 
   
Adds a custom executable to be called afterthe step.
 
 
 
   
Replace
 
 
 
   
Replaces the current step with a custom executable.
 
 
 
   
Skip
 
 
 
  
Skips the given step.
 
 

 3.3. ProcessFailOnError 

 Most steps are necessary for the process. If a step fails, the process cannot finish. That’s why the default value is true; but it can be set to false for optional steps.

 3.4. Executable 

 To execute your own logic, you can use an executable. It must exist in the same folder as the config folder (e.g. “C:\inetpub\wwwroot\five9sWS\ConsoleProcess\configs”.). Subfolders are supported. See below for the ParameterList key and details about passing parameters. 


 Example: 

"Executable": "subfolder\\example.exe",


 3.5. ParameterList 

 You can pass parameters to the executable using the "ParameterList" key in the step configuration/object. All process parameters defined at the end of the process’s JSON file (under the "Parameter" key) can be used. For the OSD process (P03Osd), custom inventory parameters can also be included.
 

 To make use of a parameter, please follow the structure:
 

[Parameter:<parametername>]

 And for CI parameters:
 

[CI:Location]

 In the Add Device process (P09AddDevice), the device has to be created first. At this point, the input from the website is not yet available as a Custom Inventory field, but it is available as a parameter. It can be passed as follows: 

[Parameter:Location]

 (Location is the name of a passed CI value for Add Device).
(Site CI Input > P09AddDevice -> Call of GenerateHostName.exe (custom.exe) -> Create device)
 

 
 

			
				
					
						Be careful with spaces
					
					
					
				
				If you are using a parameter containing spaces, ensure that you add double quotes around the parameter. E.g., Logfile=\"[Parameter:Logfile]\"
				
			
		

 4. Example Configuration for Executable with Parameters 

 {
     "Name": "Step120"
     "Action": "Add",
     "Description": "Will be called after the Ivanti Provisioning Task is finished. Sends a mail that the provisioning is ready. Sets the device state to Active. In case of error the device state is set to the prior state.",
     "ProcessFailOnError": true,
     "Executable": "subfolder\\example.exe",
     "ParameterList": "/Computername=\"[Parameter:DeviceName]\" /pat=123  /logfile=\"C:\\inetpub\\wwwroot\\five9sWS\\ConsoleProcess\\configs\\AssignComputerGroup\\Logs\\ACG_[Parameter:DeviceName].log\""
 }


 5. Console Process Steps That Can Receive Data 

 The following Steps can receive data from an external executable: 
  •   OSD Step000 (set NewHostName) 
  •   OSD Step070 
  •   OSD Step090 (set TemplateId) 
  •   OSD Step100 
  •   OSD Step120 
  •   AddDevice Step000 (set HostName) 
  •   AddDevice Step110 (after the device was created set CustomInventory) 
 
This can be used to override the provisioning template id.
The exit code has to be 0 (no error code / everything ok).
 
 The standard output should contain a json string like: 
  •   { "TemplateId":"30", "StaticHostname":"NewVm001" } 
  •   { "[CI:AssetID]":"XYZ123" } 
 
 Remember to escape double quotes. An example PowerShell script:
 
  •   Write-Output "{""TemplateId"":""30""}";

 6. Important: Encoding of Paths and Parameters 


			
				
					
						Please note:If you want to use special characters in the executable path or parameters, remember to encode them accordingly.
					
					
						
							
								\b
								Backspace (ascii code 08)
						
						
							
								\f
								Form feed (ascii code 0C)
						
						
							
								\n
								New line
						
						
							
								\r
								Carriage return
						
						
							
								\t
								Tab
						
						
							
								\"
								Double quote
						
					
				
				
					
						\\
						Backslash character
				
				
				
			
		

  Document information  

   Last Modified Date   
  25.02.2026

 
 
 Verified versions   
 five(9)s Console version 5.1

Disclaimer 
 
 
Even though every care has been taken by five(9)s GmbH to ensure that the information contained in this publication is correct and complete, it is possible that this is not the case. five(9)s GmbH provides the publication "as is", without any warranty for its soundness, suitability for a different purpose or otherwise. five(9)s GmbH is not liable for any damage which has occurred or may occur as a result of or in any respect related to the use of this publication. five(9)s GmbH may change or terminate this publication at any time without further notice and shall not be responsible for any consequence(s) arising there from. Subject to this disclaimer, five(9)s GmbH is not responsible for any contributions by third parties to this publication.

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article