
Help Desk Automation
An essential application for my FMOL Team.
I have created and supported the FMOL Assistant project for many years now. The project was initially released in 2011 and titled “Agent FP Assistant”. It was an AutoIT app that watched our Cisco Desktop Agents. When a phone call was received, the app would gather information and open a Footprints ticket for the call in our browser.
The app would soon be renamed to the “Cisco Assistant” shortly after release. I kept up with ongoing maintenance and improvements over the years. In 2016 I decided to rewrite the application in C#. With many more updates later, it is still a required application used by all of our Analysts on the Help Desk.
Note: I do not have this repository shared on GitHub due to the fact that the code may contain information exclusive to the organization. Instead, I plan to highlight and share as many details as I can. Some information in screenshots will also be blurred out.
End-User documentation can be found here:


(8/15/21 v3.3.0)
- Main design solutions:
- Multi-threaded designed to run multiple separate windows.
- Designed using WinForms with custom objects.
- Connects with several applications and databases.
- Main purpose:
- Gather caller information on screen when a call is received in Finesse.
- Enter caller information into the start of a new ‘Footprints’ ticket.
- Display a marquee with department call data and audio notifications.

- Connected applications:
- BMC Footprints (Ticketing system) - Javascript, HTML, & Chromedriver
- Cisco Finesse (Call system) - XML
- Inova Solutions (Marquee data collecting system) - SQL & HTML
- MIM & PROV (In-house user management systems) - SQL & HTML
- Active Directory (Windows user management system) - LDAP
- How it works (simplified):
- FMOL Assistant starts a thread to keep checking our Finesse API for incoming calls.
- The Finesse API is used to answer calls via buttons or shortcut keys.
- When a call is received, the caller information is gathered from our Lawson and Active Directory systems.
- The main display has the data faded in and background color changed depending on the call.
- The thread that launched the Footprints ticketing page with the ‘chromedriver’ activates a new ticket.
- Javascript is then used to fill out ticket information after a new ticket is created.
- All while the Marquee is checking the Inova server for calls waiting and other information.

- Additional “Core” features:
- System Tray menu with shortcuts to many application features.
- Shortcut keys to answer and make calls.
- These are handled using the HotkeyCommands DLL (found in my downloads).
- Timer displays how long each call state lasts.
- Also acts as a caller ID with phone status.
- A Main window uses custom themed colors to display callers’ information.
- Custom fields enable/disable copying via Double Click.
- Main window is borderless with custom draggable and resizable code.
- Label animation has been custom added to allow fading between data changes.
- Active Directory password resets, expire, and unlock are possible from the Main window.
- A Photo window to display the callers’ pictures.
- The window is on a separate thread to allow it to be moved.
- The default option has it docked to the side of the Main window.
- Window animation has been custom added to allow sliding to open and close.
- Custom Marquee with themed colors to display call data.
- Marquee uses data from our Inova server which looks up Cisco and Footprints data.
- This data is custom tailored to be used by the FMOL Assistant.
- Using this data, custom audio notifications are possible for specific thresholds.
- Multiple different layouts have been created for the end users’ to choose from.
- Browser compatibility utilizes ‘chromedriver’ and ‘edgedriver’. (I stopped supporting IE)
- The driver is automatically downloaded and unpacked depending on your browser version.
- The browser is then launched using the specified driver to allow for automation.
- Call Log to track history of incoming call data with links to other features.
- Footprints ticket history window to query SQL data of our ticketing system.
- Automatic Updates.
- Updates that are detected on the server are automatically installed when pushed out.
- Other features:
- Custom WebBrowser page is available to view additional customer information.
- Able to directly launch our MIM and PROV systems to display additional data.
- Can launch customer’s history page or open new tickets using the Main window.
- Can view Active Directory groups directly from the FMOL Assistant.
- The AD tool can lookup Top Level and Nested AD groups from members.
- It can Search for, Add, or Remove AD groups as needed.
- Control of the Cisco Finesse backend.
- Make/Receive calls, track phone status, change phone status, and log out.
- Computer lookup per caller is available XML using our SCCM application.
- Custom WebBrowser page is available to view additional customer information.



FMOL Assistant Installer and Updates
I created a custom installer that wraps an ‘MSI’ file.
The custom ‘pre’ installer detects existing installs and works accordingly.
It also has a silent option that the FMOL Assistant uses when doing automated pushed updates.



FMOL Assistant Admin Settings
This application utilizes an administration file located on our servers.
This administration file contains default settings as well as access permissions.
The file is encrypted so I created an Administration Tool to modify the settings.
- The FMOL Assistant Administrator Tool permissions are granted by AD Account Groups.
- Additional non-AD Group access can be granted.
- Each tab contains specific settings and the system can be Backed-up or Reloaded.

