At Pixel Pines we use FogBugz from FogCreek Software (http://www.fogcreek.com/Fogbugz/) to track our tasks, cases and time associated with each of those items.
For our billing needs we use Cashboard freelance time tracking and online invoice software
While both are excellent products we wanted to keep using it became obvious that manually entering and reconciling data between both systems is not an option for us. That’s why we created this simple command line tool that utilizes API calls against each of those services to automatically do this job for us.
There is nothing special that needs to be set in FogBugz, but you will need to know IDs of projects for which you want to synchronize time entries.
Command line options
FB2CB -f[rom]:mm/dd/yyyy -t[o]:mm/dd/yyyy
from (short: f) Start date of time entries to be copied to (short: t) End date of time entries to be copied FBUrl FogBugz URL FBUser FogBugz username (only entries for this user will be copied) FBPassword (short: FBPwd) FogBugz password CBDomain Cashboard subdomain CBApiKey API Key for the Cashboard account.
Cashboard configuration: In cashboard make sure you add token with the ID of the project from FogBugz. Example: title of the project "Sample website [ID:23]"
FogBugz Configuration: FogBugz does not require any special configuration for this tool
Notes: Program matches time entries by first matching project (in Cashboard there needs to be a token with the ID of the project from FogBugz added to the name of the project.
Next it looks for tasks to see if there is an ID in the notes that ties back to a case in FigBugz (in the notes for the task you will see an token such as [CaseID:654]). You can add those tokens manually to force time entries to be added to those particular tasks. If task with a token is not found this tool will add the task to general list (see below) and assign the time under that task.
This tool will create a task list in the project and give the list a title of "FogBugz imported entries".
Each exported time entry in cashboard in its notes will contain an ID of the time entry from FogBugz to avoid duplication. Therefore if time interval is edited in FogBugz it needs to be manually corrected in Cashboard. So this could be a sample command line call:
.\FB2CB.exe -f:12/9/2013 -t:12/13/2013 -FBUrl:https://pixelpines.fogbugz.com -FBUser:firstname.lastname@example.org -FBPassword:secret -CBDomain:pixelpines -CBApiKey:123-456-789-101
Application runs slowly, but it gets the job done.
I recommend setting it to run overnight as a scheduled job.
In time log in Cashboard you will see intervals with an ID in comments – this is to ensure that time entries are imported only once.
Right now the tool will not correct time entries in Cashboard if they were edited in FogBugz after import. This is due to the fact that some of them might already be invoiced. It is a feature we hope to release in the next version.