By continuing to use our website and services, you acknowledge that you have read, understood and agreed to our privacy policy.



Automations and extensions provided the financial boost to propel WCI forward.

Get Answers
illustration of arrows pointing to computer screen


Williams Consulting, Inc., (WCI) provides IT, networking and back office support services to a range of small and medium businesses in the greater Washington DC area. Because WCI often fills a role that would otherwise be handled by in-house staff, WCI’s clients depend on them to be available at a moment’s notice and to solve problems as quickly as they arise.

When you’re judged on speed and accuracy, technology can't get in the way. Although WCI was happy with Request Tracker (RT) for trouble tickets and FreshBooks for invoices, their billing process was taking far too long.

Luckily, RT is open-source software and FreshBooks provides a rich developer API. WCI was sure there had to be a better way to do things, and they called on us to help them find it.


Beyond the standard hurdles of developing custom integrations, this project also offered some unique challenges:

Integration + Extension
With simple integrations, all of the pieces are already there and you only need to connect the dots. In this case, we first had to extend RT’s capabilities before we could think about connecting it to FreshBooks.

Multi-Level Verification
Invoices are a tricky business. Overcharge and the customers aren’t happy; underbill and the finance department isn’t. Because we were automating invoice generation, we needed to ensure absolute accuracy in each and every invoice.

Simulation and Monitoring
Most of our automations include some level of monitoring alerts, but in this case, WCI also needed to be able to run simulations that would tell them what the billing would look like on a given day without actually creating a real invoice.

Multiple Authorization Sources
Although we needed a way to provide group-based authorization and authentication to our solution, we wanted to keep things simple for the WCI staff. That meant finding a way to bridge the gap between RT's and FreshBooks' own account systems.

quotation mark illustration

Our models have been very successful at identifying possible problems before they reach live invoices.


Although RT provides a way to build extensions into existing installations, we needed the ability to give some people access to RT data without giving them access to RT itself. We also needed a place to store data that could be shared by both RT and FreshBooks without either having the ability to edit or delete that data.

We created a small piece of web-based middleware that pulls in data from both RT and FreshBooks and then generates its own new data based on the input it receives. WCI accesses the new data through a rights-based interface, and the new functionality gives WCI extra capabilities in both RT and FreshBooks while limiting access to a small group of end users.

Getting the data in was one thing, but making sure we had it right was something else altogether. Although WCI’s engineers and clients change over time, certain patterns began to emerge the more we looked at things.

We believed these patterns held the key to verifying what went into the invoices, so we applied some basic machine learning algorithms to the data. And, our models have been very helpful at identifying possible problems before they reach live invoices.

Finally, to ensure that everything runs smoothly, we created monitors and alerts to tell WCI if there's a problem generating an invoice or if there's data that needs to be manually reviewed. Additionally, we gave WCI the ability to simulate an invoice run for any date, helping them better manage income flow and billing cycles.

Illustration of Computer Screen


Williams Consulting

Project Summary
Add functionality to off-the-shelf software and automate time-consuming data-entry tasks.

Biggest Difficulty
Establish communication between software packages that don't normally contact each other.

Main Technologies
MySQL, Perl, PostgreSQL

See All Case Studies