Beefing up user profiles on Forrst

I have been meaning to write a bit about something we rolled out on Forrst a two weeks back — this tiny question bar that lives right under our navigation bar. While seemingly simple on the surface, it was a blast to dream up and build (with some inspiration from Hiten Shah). It helps us solve a very important problem: how do we help users complete their profiles on Forrst without being pushy (e.g. tons of “hey, we have a new setting for you to tweak” emails or similar). To date, around 7,000 users have answered at least one question. The questions right now mostly revolve around whether they’re looking for work, what kind, etc. but thanks to this system, we can easily deploy more questions in just a few minutes.
On the tech side, I wrote a simple system that lets us define questions, complete with conditionals, and map responses to specific database fields (including typecasting and tracking progress — e.g. how far along is User 123?).
The question “definition” for the above image looks like this:
array(
'text' => 'Are you looking for work? Let us know!',
// `users` col this maps to
'field' => 'available_for_work',
'ftype' => 'bool',
'type' => 'buttons',
'inputs' => array('Yes I am' => true, 'Nope' => false),
)
For boolean questions, the first button listed is automatically given a primary color (in this case, “Yes I am”). We could optionally specify conditions that would need to be satisfied before the question was displayed by passing an array of fields and values to check.
On each request, the user is asked the next question in the series. We handle responses with ajax, so they’ll just remain on the page they’re looking at if they answer. This has helped keep our users’ profiles up to date in an unobtrusive way (so we can give them more targeted jobs, for instance) — that’s what we set out to accomplish, and it’s been great to see such positive results thus far.