dotproject data + Salesforce.com reports = visibility into consulting

We use dotproject to help us manage our consulting projects. It’s an open source project management/time tracking system written in PHP/MySQL, that allows you to create projects with tasks for a customer, and then log time against those tasks. It works for us–there are a lot of things we wish were different. We’re not just griping–we gotten our hands dirty with lots of modifications, including major changes to a module called TimeCard to make entering time tracking data as pain free as possible. Overall, it’s a very good project, and I want to give props to the developers–we all use it every day.

In an act of faith, we’ve been diligently creating projects and entering our time against them for 2 years. I call it an act of faith because while we get benefits from using dotproject, we’ve got 2 years of project data that is basically invisible to analysis. We can’t get the data out easily, in a repeatable, customizable way. Because the thing with dotproject, as is the thing with a lot of complex database applictions, is that reporting is “suboptimal” (to quote my cousin Flora).

Reporting engines are hard to do well, so this is no surprise–I want to reiterate my props to the dotproject folks becasuse it’s been getting steadily better. But it’s not there yet.

I was getting pinged every week by our consulting lead to create this report, then that report, then another. It involved writing MySQL queries, creating PHP pages, etc. Not rocket science, but I’ve been the “report guy” before, and I didn’t want that role again!

So I decided to take a different approach. One weekend in March I spent about 12 hours on a proof of concept–could I bring our project data into Salesforce.com so that I could just point my consulting manager to the reporting engine and, even cooler, dashboards? Here are the steps I undertook:

  • Modeled a dotproject project as a custom object in Salesforce.com
  • Installed latest version of PHP on my desktop
  • Installed the salesforce.com API PHP toolkit on my desktop
  • Gave myself permissions to query the dotproject MySQL database
  • Took a hello world PHP/Salesforce.com app and the Project view PHP page in dotproject and started to merge them together
  • Hackety, hack, hack, hack.

That proof of concept is now a PHP script I run on a schedule that finds all the projects in dotproject and brings them in to Salesforce.com as read-only objects. The script does a few helpful things:

  • If a project already exists, the data is updated rather than having a new object created (using upsert method)
  • If the project is for a Customer in dotproject that doesn’t exist in Salesforce.com, an Account is created
  • Projects are related to Accounts, and our project lead (a Contact record)

My consulting lead and my executive director nealy wept when they saw the first Salesforce.com reports on project actual and budgeted amounts, which projects are over, which projects are at risk of going over, the project pipeline, etc. dotproject could show us some of this, but Salesforce.com aggregates data much better, and my consulting lead is off and running with it.

Two-way data syncing is cool, but don’t forget the power you can get from getting read-only visibility to data important to the mission of your organization. We’ve seen this with our dotproject integration, which is by all accounts an ugly hack that at the same time will significanly impact the way we work.

5 Responses to “dotproject data + Salesforce.com reports = visibility into consulting”

  1. gokubi.com » Blog Archive » dotproject and Salesforce.com: the code Says:

    [...] Earlier, I stumbled on a use case for integrating external data into Salesforce.com: one-way, read-only data pulls from external systems to take advantage of Salesforce.com’s superior analytics. I’ve had a number of requests to publish the details, and now I’ve gotten the code to the point where I’m not embarrassed to share it. [...]

  2. Keith Casey Says:

    Very nice. I’m a core contributor to dotProject and have done some similar things with SugarCRM. Generally when I’m doing prototype reports I work in Access/Excel until I get something workable and then create the relevant php to go along with it…. not fun but effective.

    Congrats and good luck with future efforts.

  3. Steve Says:

    Thanks alot Keith–I read your work and have been impressed with dotproject from the start. Thanks for all the work you’ve done on the project. I use Access in that way too–a quick prototyping tool. I’ve been really pleased with Salesforce.com’s ability to quickly prototype as well. Really slick app.

    Thanks for the comment!

  4. gokubi.com » Blog Archive » dotproject and Salesforce hookin’ up Says:

    [...] I have continued to work on the dotproject and Salesforce.com integration I talked about earlier. Here’s what I have now: [...]

  5. gokubi.com » Blog Archive » Project Management in Salesforce Says:

    [...] I’ve got a little video of some work I did over the weekend on building project management functionality into Salesforce.com. This all started as a dotproject integration–connecting our project management system with our CRM. But it turns out that we really don’t need dotproject. The ways were managing projects is pretty straightforward–we’re not gant chart folks. [...]

Leave a Reply