Last year, we got through 362 applications for the fellowship without printing out one application. (And yes, that was also because last year, at this point, we didn’t own a printer that could have handle that; still don’t actually.) This year, we’ve gotten even more applications, and to handle them, we decided to automate the process a little.
We handle applications online through the popular and effective form software, Wufoo, which allows for a straightforward data entry mechanism. To get those applications into a useful format for our selection committee to review, however, we designed a custom separate site for display, commenting, and sorting (aptly named, The Sorting Hat), which was built on top of WordPress (more details here). This system has proven rather useful for our reviewers. But there was one problem for us: connecting Wufoo and WordPress. In the past, this had to be handled manually with a data export from Wufoo, data manipulation locally on (gasp) Excel, and then finally an import into WordPress through a plugin. And yet, efficiency is one of our values… Enter the hack.
Fortunately, Wufoo has a well-documented API, which allow you to call all the entries attached to a form, and WordPress has programatic post-creation functionality through its API through the XML-RPC protocol. I was able to connect the two together with a little PHP script that when run will first check for the last entry already in WordPress, see if there are new submission in Wufoo, and then publish them as new posts in WordPress. Basically, it’ll let you keep an up-to-date Worpress site with your Wufoo entries. Hence the name, WufooPress.
The script is fairly simple (I’m not much of a hacker) and could use some cleaning up and additional functionality. (It’d be great to automate the checking and posting process, or even hash this out as a proper WordPress plugin.) Code is on github if there are any takers. For now, I thought it might be of some use to other people who both love and use Wufoo and WordPress — like we do here at Code for America.