Why Keenforms?

Why the web needs one more form builder

(because form builder + rules engines = awesome)


For the record no one has been asking for a Form Builder with a Rules Engine. Do you have any idea just how many form builders there are out there already? (answer: a lot) Most people don’t even know what a rules engine is, why would they want one?

What I do know though is a lot of people who use, or have tried to use, a form builder to do things that are seemingly just beyond the limits of the standard features available. All I’m saying is a lot of form builders fall a little short. Sometimes more than just a little.

I’ve heard it enough times from friends and co-workers, and I’ve talked to enough designers and developers to know that it’s not just my own experience. It probably wouldn’t be so maddening were it not for the fact that these apps get so tantalizingly close, with those last couple of requests being just out of reach. While those requests may not be standard, that doesn’t mean they’re impossible to deliver. Over the years, with some handwritten Javascript and CSS, I’ve managed to hack a few of these form builders in order to get them to do what they were never designed to do.

While the hacks I’ve performed vary, I’d have to say that most of the hacking would be unnecessary if there was a form builder that had just a few more features as standard. The most common hacks would fall under the category of conditional calculations and conditional validations. I’m not sure how many users of form builders are aware of how these 2 specific features would have helped them, but I do know that having conditional calculations and conditional validations available as standard features would have saved me a lot of trouble.

Lots of form builders have the ability to calculate values. Many of them have the ability to conditionally hide an input or an option. Some do basic validation, i.e. this number must be greater than zero, or that text field must be less than 100 characters. However none of the form builders I’ve seen possess the ability to do calculations or validations conditionally.

I have to believe that the product teams for many of these form builders have heard these kinds of requests, and have ultimately decided against it. There’s a pretty good reason why - those features are really hard to deliver.

Rules Engines and B2B Form Builders

The form builders that I have seen that are capable of allowing an input’s value to be a calculation make that functionality possible by having the administrator plug in a formula tied to that particular input. The problem is you can only do a simple single formula per input, i.e.

[quantity] X [unit price] = [total price]

Doing anything conditional with these form builders is at best difficult, and more likely impossible. The reason why it's so difficult is the form input and the formula for calculating that value are too tightly coupled.

One of the many reasons I find the limitations of using a Business-to-Consumer (B2C) form builder so frustrating is that I’ve used applications that can meet those requests with no hacking required. There is an entire segment of the software business that produces Business-To-Business (B2B) form builders that are capable of so much more. I know this because I used to work for one of those companies. These B2B applications use what is known as a rules engine in order to make this kind of functionality possible.

Unless you work in the software industry though, you may not be familiar with what a rules engine is. There’s a good chance though that you have used a rules engine without knowing it. If you’ve put a setting on your email to send a response when you are out of the office, that is a rules engine sending out the automatic response. When you add a reminder for an event on a calendar app, a rules engine is what sends out the reminder. Even a few B2C form builders have what amounts to a very limited set of actions available - you can hide an input or an option conditionally (based on the value of another input), or you can redirect a user after submission conditionally.

A Rules Engine is a software paradigm that allows users to create and edit application logic, or rules, without having to modify the source code for that application. A rule is made up of 2 parts - a CONDITION and an ACTION. A condition is something that is evaluated to either true or false, and the action is what happens when that condition is true. In most cases for keenforms the conditions are tied to the value of an input, while an action might be setting the value of this input, or hiding an input or option, or marking an input invalid so that the form cannot be submitted. A rules engine also provides better control over the order of operations for calculating values.

Building a rules engine attached to a form builder makes so many more things possible. I’ve always felt that if someone could capture just a fraction of the functionality available in one of these B2B form builders, and make it accessible to non technical users inside of a typical B2C form builder, that it would make for a really exciting idea. At some point I wanted to at least try to see if I could pull it off. That effort to build this thing started more than 3 years ago.

There is a fairly well cited quote from Reid Hoffman of Linkedin “If you're not embarrassed by the first version of your product, you've launched too late.” There are a lot of things I wanted to get done for the initial release, but I’ve been writing code for quite some time, so I decided to release it and add more features as time goes on. Right now there’s no date picker (it’s coming). It doesn’t have a radio button (we’re working on it!). You can’t change the background color of a form without writing CSS. It’s a work in progress.

However right now keenforms does something that no B2C form builder does (at least none that I've seen); Calculations and Validations conditionally, using a built in Rules Engine, no code required. Because keenforms was built differently it has so much potential to be more than just a form builder. I’m really excited about it, and eager to share it. One of the awesome things about keenforms is you can try it for free. If you've ever felt limited by your current form builder I believe keenforms can be your new favorite thing on the web.

TL;DR - A Rules Engine makes a Form Builder capable of doing so much more, things like conditional calculations and conditional validations, and greater control over order of operations.


Form Builder:
Software that allows a user to create forms available via the web. A form being a web page that allows user to enter and submit data online, where that data is captured and saved on a server. Here's an incomplete list of other form builders available on the web.
Rules Engine:
A type of software that allows administrators to create logic without modifying source code. Rules consist of conditions (true or false evaluations) and actions (what happens when rule is evaluated to true). From Martin Fowler;
"A rules engine is all about providing an alternative computational model.
...This is a set of (production) rules, each of which has a condition and an action - simplistically you can think of it as a bunch of if-then statements.
...A good way of thinking of it is that the system runs through all the rules, picks the ones for which the condition is true, and then evaluates the corresponding actions."

SaaS Form Builders

An ever growing list of all the form builders available, in alphabetical order