Communication with the third-party application is implemented mostly (or solely) in the configurator's jobArrived entry point.
From an implementation standpoint this is often the easiest form of communication. The Switch configurator compiles command line options based on the configurator properties and if necessary Switch provides console input and/or parses console output. Alternative sources of information may be the application's return code and log files written by the application.
Applications that offer a graphical user interface (and thus are often launched by the user independently of Switch) can be controlled using inter-application communication mechanisms (usually COM in VBScript on Windows and AppleScript on Mac).
A hotfolder application could be driven from a Switch configurator on the condition that it is possible to configure the application's behavior using a single watched folder and a control file. There can be several setups including:
The control file is placed in a watched folder and points to the path of the input file(s).
The input file and the control file are both placed in the same watched folder (and they are matched through some filename pattern).
A Switch configurator can NOT control an application that requires a different folder watched for each configuration setup.
Preferably the third-party application and Switch should be able to settle on a watched folder path without requiring user setup in the third-party application. The best way to achieve this is to provide a mechanism that allows Switch to set the watched folder path at its discretion. Failing that, the third-party application should document a mechanism for the configurator to retrieve or otherwise determine the watched folder path.
Third-party functionality that is offered as a loadable library (DLL on Windows, Sylib on Mac) can be accessed in a Switch configurator by providing an independent helper application. The helper application calls the library functions and provides a simple interface towards Switch (usually command line and/or console input/output).