Orchestrator plug-ins have a common structure that consists of various types of layers that implement specific functionality.

The bottom three layers of a Orchestrator plug-in, which are the infrastructure classes, wrapping classes, and scripting objects, implement the connection between the plugged-in technology and Orchestrator.

The user-visible parts of a Orchestrator plug-in are the top three layers, which are actions, building blocks, and high-level workflows.

Figure 1. Structure of an Orchestrator Plug-In
Structure of a Orchestrator plug-in

Infrastructure classes

A set of classes that provide the connection between the plugged-in technology and Orchestrator. The infrastructure classes include the classes to implement according to the plug-in definition, such as plug-in factory, plug-in adaptor, and so on. The infrastructure classes also include the classes that provide functionality for common tasks and objects such as helpers, caching, inventory, and so on.

Wrapping classes

A set of classes that adapt the object model of the plugged-in technology to the object model that you want to expose inside Orchestrator.

Scripting objects

JavaScript object types that provide access to the wrapping classes, methods, and attributes in the plugged-in technology. In the vso.xml file, you define which wrapping classes, attributes, and methods from the plugged-in technology will be exposed to Orchestrator.


A set of JavaScript functions that you can use directly in workflows and scripting tasks. Actions can take multiple input parameters and have a single return value.

Building block workflows

A set of workflows that cover all generic functionality that you want to provide with the plug-in. Typically, a building block workflow represents an operation in the user interface of the orchestrated technology. The building block workflows can be used directly or can be included inside high-level workflows.

High-level workflows

A set of workflows that cover specific functionality of the plug-in. You can provide high-level workflows to meet concrete requirements or to show complex examples of the plug-in usage.