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.
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.
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.
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.
Add functionality to off-the-shelf software and automate time-consuming data-entry tasks.
Establish communication between software packages that don't normally contact each other.
MySQL, Perl, PostgreSQL