About a year ago, I started learning PHP and was just getting my feet wet with the Force.com API, and I soon realized what I would need to do to really learn both — build a web-based version of Apex Data Loader.
I had used the Data Loader to import and extract data, and it did this
pretty well, but thinking how cool it would be if this could all be
done directly in a web browser like the rest of the Salesforce on-demand applications, I was very excited to start this project.
It started with downloading the open source PHP Toolkit
and understanding how to make basic connections and calls to the
Force.com API, and this quickly progressed into building out all the
major functions of the Data Loader completely in PHP. Being my first
major project in PHP, it was still had its fair share of not-so-good
practices, but as a testament to the simplicity of both PHP and the
Force.com API, the DataLoader.PHP (as the Workbench was once known) became
reality. Building on this foundation, more and more features were added
and the existing code was refactored to be more efficient and
extensible. Soon I realized that I had something that could do much
more than the Data Loader with the new Describe, Undelete, and Purge
functions and plans to implement a whole suite of useful tools for
Salesforce administrators and developers, the application was renamed
the Workbench and version 1.0 was released as an open source project on
With a modest number of
downloads and feedback from the open source community, the feature
requests started to roll in for the next generation of the Workbench.
Back at the drawing board, I implemented a SOSL Search function, added
new Smart Lookup capabilities, built an extensible configuration
framework, and tuned the overall performance. All of this was packaged
in a new, clean user interface and delivered as Workbench 2.0 just in
time for the Salesforce Summer ’08 release.