Software engineers mostly agree that one of the best ways to write quality software is to start with something simple and than improve it through several iterations, based on the feedback you get from the users. The result of the each iteration is an operating version of the software. As people use the software, its strengths and weaknesses are revealed so developers can use gathered information to build the next version. Then this cycle is repeated.

One feature that was created as a result of such approach is Invoicing module. We shipped a public beta a couple of days ago and here’s how the story goes so far.

Invoicing module has started as one of our learning modules. When we hire a new programmer, we give him a module to develop so he can get familiar with activeCollab platform and to produce something that our customers are asking for. The original idea was just to get the model right (how module works internally), and then to build the interface on top of it later.

The initial list of the features included just a support for unlimited number of invoices that can be issued in multiple currencies. Each invoice could have an unlimited number of items and the support for specifying different tax rates. Here in Serbia, for example, we have two different VAT rates - 8% and 18% - if you sell a computer to a customer, CPU, mother board, etc. then your VAT would go at 8% rate, but for monitor and printer it's 18%.

The idea to work on a model separately and to build interface later didn't work quite well, so the interface was built together with the model.

At the same time Goran suggested that we should add the support for generating PDF-s instead of HTML invoices. Even though I was originally against the idea because it would delay the module release, he convinced me that it’s not a big deal and developed a PDF generator in just a couple of days.

Soon after that, we started to use the module internally. One of the first remarks we got was from our accountant - why the invoice has been issued in English language to a Serbian company? It was fine for billing foreign customers, but not for local companies. She insisted that future invoices to local companies should be in Serbian. That's how we added the support to select the language of each invoice, so now you can bill your clients from France or Germany and have the invoice generated in their native language, even if it isn't the default language of your activeCollab setup.

At that point, we were ready for private beta - first (and probably the last) beta that we did with isolated group of users. The users did great, but having private beta is just too much work for us. The worst thing is that, at some point, you have to start rejecting requests from honest customers who just want to help.

The feedback received from beta testers was great! Here are just a couple of things that people suggested and that eventually ended up in the module:

  • Option to specify the price of the item, either as pre-tax or post-tax, and have the other value calculated automatically based on tax rate that you select.
  • Create an invoice based on all time records logged to the specific ticket and to all of its sub-tasks.
  • Support for predefined invoice items (the user is selling hosting together with design service, and there were couple of hosting plans that were always the same).
  • Support for items that had price set to 0 or negative value. Somehow, it never crossed our mind that people actually give discounts or offer free services, and that they want them to be included in the invoice.

Goran has also added a page where you can configure invoice colors. He worked on Unicode support, polished the invoice form, improved the performance in cases when there are a lot of items on the page, and much more.

The Invoicing module is now available as public beta. Anyone with valid license and Support and Upgrade plan can download activeCollab 2.2 beta from their profile and take Invoicing and Subversion modules for a spin. Because it went through private beta, both modules are already pretty stable and we hope that we’ll have a final 2.2 shipped very soon.

Thanks everyone who helped to shape Invoicing module into what it is now. activeCollab is finally a project collaboration tool that has well integrated system for preparing and issuing invoices. Now you can use activeCollab alone to have all things covered, instead of using multiple services (at additional monthly fees!).

All suggestions, comments and questions are welcome, as always!

Posted on: 2009-07-07 5:01

Comments

avatar pixelita 2009-07-08 2:30
Sweet! This will set aC head and shoulders above the competition IMHO. That and the relentless pursuit of quality and customer satisfaction you demonstrate time and again. Excuse me while I head over to download the latest aC release and play with the new toy!
avatar Kregg Kish 2009-07-09 6:54
Hi

Thanks for the nice new feature can wait to try it out. One problem we face is that we bill by Company and not by individual project. So we like to get all projects for specific company done during a period of time and bill that way. Is this possible?

Thanks

avatar Ilija Studen 2009-07-09 10:08
Hi Kregg,

Currently there is no built in tool that lets you extract time data from group of projects by a client. We’ll consider in the future. In the meantime, you can create these invoices by setting items and time spent manually.
avatar Kregg Kish 2009-07-09 4:22
OK thanks IIija for the quick reply. I look forward to the possibility because we often have multiple project for a single client at one time and have to do billing per client not project.

THANKS
avatar m 2009-07-16 7:55
We bill some projects by time spent (fixed rate projects) and some by milestones (fixed price projects).

The fixed rate projects are charged per client, either in advance or monthly in arrears. Based on the comments above, I don’t think this module will cater for this.

The fixed price projects are charged when a chargeable milestone is achieved. Sounds like the module will not handle this either.

Sorry to be a wet sponge, but real world invoicing is a complex beast which I fear will take some taming!
—m
avatar Ilija Studen 2009-07-16 8:53
Making the judgement based on blog comments without using the tool may be a bit misleading :) There is no strict workflow enforced. You can at any time create a blank invoice, specify the items and issue it.
avatar MARSWorks 2009-07-21 7:47
Is there any plan for the future development of this module? I guess my reason for asking is whether or not we start customizing this now, or wait until its officially released and/or updated…

We have common issues perhaps not really dealt with in this module, things like posting Purchase Order numbers on them (which can be handled in the notes area, but ideally would be its own field appearing near the top of the invoice as our customers often demand), customizing the look and feel somewhat of the PDF output, display of the project name on the invoice, etc…

If there is a plan for changes that would be nice to know…in the past, the updates have proved very useful and a few times we’ve been glad we waited for updates as they were well worth it and saved us alot of time not customizing.

Thanks.
avatar Joni Mueller 2009-07-21 7:52
We currently use a web-based invoicing system, Curdbee, and I am doing that just to get bills out the door. I haven’t played with the invoice module yet but in my constant quest to keep everything in as FEW places as possible, I am looking forward eagerly to integrating invoicing with timekeeping and being able to keep track of all client related matters under one roof, so to speak. I will be looking at it in comparison with Curdbee which is very simple to set up and deploy. (If it makes the devs feel any better, Curdbee is free, but for a monthly PREMIUM, you have the added benefit of being able to download invoices in PDF format.)
avatar Ilija Studen 2009-07-21 9:10
Hi Sean,

Sorry, we do not discuss upcoming feature, but this module will be in the form you see it now for the next couple of months at least. No big changes will be added to it until next big activeCollab version is released.

Regarding future development and plans, invoicing is pretty divers and different organizations do it differently. Best thing you can do is describe the process your company is using and which features you would like to see implemented, and we’ll consider them for upcoming releases.

In the meantime, you can hack the system or implement your own modules that extend existing functionality.
avatar Ilija Studen 2009-07-21 9:11
Hi Joni,

Thanks for bringing CurdBee to our attention – it looks interesting and we’ll check it out. Please, do try Invoicing module and send us your comments! What is currently offered is just a beginning :)
avatar MARSWorks 2009-07-21 9:12
Sounds good…thanks for the quick response.
avatar Lachie 2009-07-28 8:46
Hey,

This looks great and will help me get my invoices out on time! Although my needs for are not all that complicated I was confused by a few of the items and not sure if it is my ignorance or some functionality missing that would be really useful and time saving.

I have been experimentation with it for the last few days and have noticed some features that would be great.

1) When creating an invoice from the time tab on a project (I do a fair amount of hourly work). It would be great to be able to select all the not-billed, billable items and then add them to a new invoice via the dropdown menu with each time record on a new line on the invoice. I did notice that you can do something similar in the reporting section but this adds all the hours up and only creates one line item. My clients generally want to see the date, hours and description of each hour of work done.

2) When adding items from the time tab, then the items are added and the invoice is marked as paid then these time items are marked as billed

3) When creating a new invoice from scratch, when you select the project on the left it would be great if there was an option to bring into the invoice, automatically via a check box or something, all billable, not billed time items. That would save me a lot of time typing!

These would really help save time as at the moment I really don’t want to manually each line item/time record the the invoice module when there are many. Seems like a duplication of content and time to me.

Anyway, please let me know if any of this is already available as this module is just new to me.

Thanks for a great product I really get a lot out of it.
avatar Ilija Studen 2009-07-29 2:46
Hi Lachie,

#1. System is creating a sum of billable hours as a single item (instead of adding an item for each time record) by design. Reason for this are big projects – if we defaulted to one item per time record, some customers would have pages long invoices which was not acceptable. We’ll consider one item per time record type of reports in the future, but currently it’s working like this.

Regarding #2, invoicing module is controlling status of related time records:

1. Only billable items can be added to the invoice
2. Once added, billable items are marked as waiting for payment
3. When invoice is fully paid (by adding payments), all related items are marked as billed

#3. Good point, we’ll see what we can do about that in the future.

Thank you for the feedback. Please let us know if you have further suggestions, comments or questions.
avatar Lachie 2009-07-29 7:27
Thanks for the information.

Yes I can see why you would all the items to be added for larger projects. But it would be good to have the option of a list ;-)

Regarding point 2, it is great that they are integrated. I guess I need to now ask, how do I get these multiple time records into the one invoice? As obviously manually typing them would not associate the correct record with the time record.

Thanks again!

Lachie
avatar Ilija Studen 2009-07-29 7:33
Hi Lachie,

To associate time records with the invoice and let invoice module control record’s status, create an invoice based on time report (run the report and than click on New Invoice link at the bottom of the report).
avatar Paul Burton 2009-08-14 4:07
hi IIija,

Full disclosure: I haven’t gotten around to upgrading my AC install to review the invoicing module … so, this isn’t a critique of functionality. I’d like to get a better idea of what this module can potentially do to streamline my billing process even further.

A little background: I’ve used MYOB AccountEdge for nearly a decade. It sucks. Terribly. And, provides zero integration with any PM or invoicing app.

That said, I have been looking a replacement for years and am currently considering switching my accounting over to an online service called Xero. There are dozens, but Xero is the only one specifically geared toward small businesses.

Xero has the ability to automatically pull in bank statements (.qif format), which is a major selling point. What is the potential that AC Invoicing could be integrated or, at least, provide an export format that would be compatible with an online service such as Xero?

I want to improve my entire billing/accounting/record-keeping process and the first step is finding a way to avoid double-entry.

P

Comments are locked

If you have something important to say about the issues discussed in this post please write at hi@a51dev.com.