RPA and Foxtrot in General Terms
The Foxtrot Suite falls under the IT niche of RPA (Robotic Process Automation) tools. RPA tools, in general, are automation tools designed at first to move data between the interfaces of software systems, which are now also deployed to monitor, react to and execute complex tasks beyond the initial approach. As such, they are now considered multi-tool software engaging with several other software suites and interfaces through APIs, Windows GUI, and several other tools.
The Foxtrot Suite, consisting of the Foxtrot, FoxBot and FoxHub apps, is an RPA tool in common sense and with the most basic functionalities required to adhere to the term. Where the Foxtrot Suite stands out from the crowd is in its insistence on a user-friendly approach. Foxtrot has an easy-on-the-eye interface that, through drag and drop targeting and visual selection of variables, loops, and other programming concepts, makes it easy for users to set up even complex commands and actions that would otherwise demand years of IT experience. This advantage makes Foxtrot ideal for not only large-scale RPA but also small-scale RDA (Robotic Desktop Automation).
The Foxtrot Suite enables users to build automation flows using the Foxtrot app, execute them through either the Foxtrot app (scripting and execution) or the FoxBot (execution only) and schedule these executions on a stand-alone Windows installation or in a large-scale network setup through the FoxHub. Foxtrot is license based and each Foxtrot license comes with a FoxHub included, while FoxBot licenses are purchased separately. Licensing for the Foxtrot suite, in general, is based on concurrent users, allowing multiple users access to a single license one at a time.
Installed Apps and Interfaces
As mentioned above, the Foxtrot Suite consists of multiple apps and interfaces. Below descriptions will aim to describe each in their own right, but in essence, they are all designed to work together – the Foxtrot developing scripts for the FoxBot to execute based on the schedule of the FoxHub. All licensing and security settings are stored in the Foxtrot Administrator interface, which governs access and the user settings for all apps in the suite.
The Foxtrot app allows the user to develop scripts to perform automation process flows on the Windows machine. The building process in Foxtrot is based on concepts of targets, actions, and expressions, where the actions make out the lines of the script in various concerts with targets and expressions.
Foxtrot has a built-in range of actions that can be performed with single clicks, like “Wait” or “Open CD Tray” (and numerous more), but usually, actions require the user to use the Selector Tool to target the element on the screen that they wish to engage with. Foxtrot then uses its built-in technology to determine what has been targeted before presenting the user with a bouquet of actions fitting that specific target. In this way, actions specific to e.g. MS Excel will only be shown when a target was in Excel, whereas a different set of actions will be shown to the user when working in e.g. NAV. After selecting an action, the user can in some cases choose to attach an expression to this action, like for instance a file path expression to an Open File action.
The step by step building of flows of actions makes up a script that can be structured in tasks [procedures] and documented with an easy notation technique. A script is saved in a single file that can then be executed in the Foxtrot or FoxBot environment or through the FoxHub after development. The Foxtrot is the only license that allows for both scripting and execution, and a script can thus be developed, tested and executed through the Foxtrot app.
The FoxBot app is a pure execution unit, which at a much lower price/unit is solely designed to execute scripts developed on the Foxtrot app. Its technology and action base are thus completely similar to those of the Foxtrot app, except that it lacks any tools to develop new actions.
The FoxHub is the latest addition to the Foxtrot Suite and makes up the managing app to control and monitor the execution of scripts on single machines and entire company networks. The FoxHub can connect to Foxtrot Suites installed on remote machines in the same network and make them execute scripts on a schedule or ad hoc.
It can be set to execute scripts based on time triggers, file triggers or idle triggers, while further triggers are expected with every new release. Likewise, it has capabilities to share data tasks between multiple machines for faster execution of large-scale jobs. When jobs through the FoxHub are executed, failed or finished, the FoxHub stores information about this for an easy overview of your robot farm that can be accessed through the smooth interface of the app.
The Foxtrot Administrator interface controls multiple aspects of the entire Foxtrot Suite. Among these are validation and dispersal of licenses locally and (optionally) on a network, security settings and access rights to users of the licenses and storing of settings and log information. Each installation of the Foxtrot Suite comes with an Administrator module that will need to be configured to either store and disperse licenses, logs and security information or point to a central network location of another Foxtrot Suite installation for these elements.
Access to the Foxtrot Administrator is always restricted by a login.
The Foxtrot Suite can be installed and used on any machine or server meeting the system requirements. Only at the moment of activation of the product key, it is required to have access to the internet (see “Integration Points” below), otherwise, the applications do not require communication with any third party. The Foxtrot Suite is considered a local application working in the local environment under the restrictions of the machine running the software. When you install the Foxtrot Suite on the machine (or server), you have two ways of setting up your “Foxtrot environment”.
When installing Foxtrot licenses on the machine locally, both the Foxtrot Suite and the licenses are installed locally, preventing you from sharing any licenses. After the initial installation of the Foxtrot Suite, the user will open the Foxtrot Administrator application, wherein it is possible to specify the license path, the location of the license file. The default path is “C:\Program Files (x86)\Foxtrot Suite” and should remain this or similar for the local deployment. Then the users will enter their product key and add the desired number of licenses to their local machine, which means that the given number of licenses will be accessed only from the machine that they are installed upon.
Similar to the license path, the user can specify the security path, global defaults path, and activity log path in the Foxtrot Administrator application. The default path for these three settings is “C:\ProgramData\Foxtrot Suite\” and should remain this or similar for the local deployment. This means that all other settings, like authentication information and activity history, will be stored locally in those given paths.
When hosting licenses centrally, the Foxtrot Suite is installed in a central location (typically a server in the network) that manages the licenses. This centralized server is referred to as the host of licenses. Foxtrot is then installed on the user machines (or other servers), which access the licenses stored on the license host. To share the licenses, the user will set up the folder containing the license file (typically the following folder on the license host: “C:\Program Files (x86)\Foxtrot Suite”) to be shared in the network via standard Windows network folder sharing. The appropriate users or groups of users will be granted access to the shared folder. Hereafter, the user will add the licenses to the shared folder in Foxtrot Administrator. Now, other users in the network will be able to configure the license path of their Foxtrot Administrator application to point to the shared network folder and hereby utilize one of the shared licenses.
Similarly, you may choose to set up the security path, global defaults path, and activity log path to point to the shared network folder in order to have this stored centrally as well. This will allow you to make settings, e.g. authentication, that will influence all the users.
For more information on the data files in the Foxtrot Suite, read this document.
Framework Usage and Risks
In technical terms, the Foxtrot Suite should be likened to a user-friendly script compiler. As such, Foxtrot does not do much by default and you can install Foxtrot safely and expect it to do absolutely nothing that you have not told it to do. And this is the core of it: The big advantage of Foxtrot is that it can perform user-defined tasks across different software platforms. In the same vein, though, this also constitutes the risk of Foxtrot. The internal duality of risk and possibility will be touched upon below.
Every script developed in Foxtrot utilizes the core concepts of it: Targets, actions, and expressions, as mentioned above. Whereas expressions are usually mere conditioning of actions, the targets and actions themselves define the basic workings and code structure of the Foxtrot programming base and interface. And they fall into two categories: Actions through the UI and non-UI actions.
When the Selector Tool is used in Foxtrot to determine the target against which the user wishes to script, Foxtrot uses the UI to determine what has been targeted. This is then converted in the programming base of Foxtrot into an object called a target, which the user can then engage with through application of appropriate action. Targets could thus be:
- A button in an ERP system
- A picture on a website
- An open app
- A text field on a web form
- An Excel spreadsheet
- And much more.
Common to this approach is that the target is visible when setting up the action and that the Selector Tool can be dragged and dropped onto it. When setting up, execution of actions created like this for the most part also needs the target to be visible, although there are exceptions (Internet Explorer, Excel, SAP, and some UIA-supported applications and more).
Put in the simplest way: Some actions do not need target as they are concepts and cannot be targeted. How would you target a CD Tray for an Open CD Tray action; a network location for a Wait For Ping action, an SQL server or – most metaphysically – an IF or a LOOP. While these items could very well utilize a traditional coding object, and while Foxtrot also uses these objects in its programming base, they are not traditionally represented on the screen.
Foxtrot is thus able to set up these actions without having to target items through the UI. Examples complementing the before mentioned are:
- The Voice action that speaks through the audio driver
- The Create Variable action
- The VBScript action that can execute user-defined custom VBScript
- The Email actions that connect to an Exchange server using IMAP and SMTP protocols
- And many more.
As the Foxtrot Suite is installed as an ordinary application in a standard Windows environment, it does not have any rights or possibilities that are not either given to it (like IMAP and SMTP for email) or provided by the ordinary group policy governing the logged in AD users’ privileges. As such, Foxtrot can simply be restricted to close control of user rights at AD level, or on user rights in ERP systems and similar systems. Likewise, the inter-network capabilities of the FoxHub app can be restricted by deployment on closed networks or by the use of firewalls to deny the app access to the network.
The Foxtrot Suite in itself does not constitute any risk at all as it comes with no preconfigured scripts and schedules. However, one should be aware that any given user could use Foxtrot to do harm if it is not used properly. This, on the other hand, is not anything novel to Foxtrot: Any user who has access to Excel can download harmful scripts on the internet and execute them through the VBA compiler, as well as disperse tons of sensitive data in workbooks to whomever they want. For larger deployments, it is recommended to consider some of the below governance issues when starting to use Foxtrot.
Set up a routine that demands users to have script reviews conducted by a fellow or senior process owner before executing any script in large scale. This usually prevents larger problems when going live as the script has been validated to correspond to the intended use. Likewise, Foxtrot has the capability through the Administrator module to restrict users to a given role as either the sole scripter (who cannot press play to make full runs) or executer (who cannot compose scripts).
Develop scripts in test environments to make sure that everything works before going live. This is especially important if the actions conducted are irreversible. In general, it is recommended to start out your Foxtrot journey with only data collecting processes or processes that do not commit changes to customers or core databases in any irreversible way. This will provide for some valuable learning that will stand you good when you start working in a more sensitive area.
People can do harm themselves by sending wrong info and clicking the wrong places – a robot just does it uncritically and for loops and hours on end. As such, it is highly recommended to be wary of the development and testing phase, as well as to make sure that the scripters and executers have attended the appropriate training courses. Training courses are available both physically and online, and it is a great advantage to have more than one person trained so that you have at least two people who can interact, discuss and review each other at the script level.
Integration Points - Communication out of Network
When you open the Foxtrot application, it will integrate only with external components during the check of the product key validation. This check will occur every time you open any of the applications in the Foxtrot Suite. To validate the product key, it communicates with the EnableSoft Activation Server with HTTP to IP address 126.96.36.199 through port 80. The activation server obtains the following information when validating the product key from the machine using the Foxtrot Suite:
- Machine name
- Domain name
- Folder path of the license file
- Version of Foxtrot
- Number of licenses
- Whether the license is shared (Yes/No).
Please reference http://activation.enablesoft.com/ for the latest IP address and this serves as a test for an admin to determine if it is possible to communicate with the Enablesoft Activation Server.
No other information is obtained and the use of the application will not be stored anywhere. All information related to the setup of the Foxtrot Suite, the settings, and the activities carried out is stored locally. Furthermore, no data or information of any kind is ever sent “out”, unless the user of the Foxtrot Suite decides to take scripting steps to do so. It is important to note that the Foxtrot Suite does actually offer features that can be used to transfer data, such as:
- VBScript – User can execute VBscripts directly in Foxtrot.
- Powershell – User can execute PowerShell commands.
- Download HTML – User can download HTML code directly from a URL address.
- SQL – User can execute SQL statements.
- FTP – User can interact with FTP servers.
- Email – User can work directly with the email servers (SMTP & IMAP).
- REST – User can consume REST web services.
- SOAP - User can consume SOAP web services.
All actions executed by the Foxtrot Suite will work, at any time, under the rights of the machine+user that the application is running on. If, consequently, the user does not have permission to access or query, for example, an SQL database, then neither can Foxtrot Suite.
Foxtrot Suite Noteworthy Communication on Internal Network
FoxHub is an application allowing you to centrally control your bots – it enables you to schedule and monitor running scripts from a central point. The application is included in the Foxtrot Suite and is part of the Enterprise license. You can use the FoxHub application to either:
- Schedule and set up triggers for scripts running on the local machine or
- Connect one machine to one or multiple other machines and distribute scripts.
The Foxtrot Suite comes with a "FoxService.exe" service. This service provides a communication bridge between FoxHub and a Foxtrot/FoxBot client. The communication is transmitted through an internal API, facilitated by the “FoxService.exe” inside the internal network through a specific firewall port. The standard firewall port used for this is 12650; however, if you have, for example, multiple users on the same server who need to communicate with the same FoxHub, you have the option to change the port used for communication.
All information and settings set up in FoxHub, for example, the jobs (scripts) and the scheduled items, will all be stored locally, by default in this destination: "C:\ProgramData\Foxtrot Suite\FTManager.mdb".