AI startups have been cropping up left and right in the last few months, spurred by advances from OpenAI, Stability and others. At Fillout
, we're using AI a bit differently than most - to help with user onboarding. A few people asked me how this works under the hood, so here's a quick overview.
Fillout is a powerful form builder (think Google Forms, but with more styling options, better integrations and advanced features).
We're using AI to solve the "blank canvas" problem. Namely, making it easier for new users to see what the product is capable of, especially if they don't have a use case yet and are just exploring the tool.
In the past, other companies have solved this problem by offering pre-built templates for every possible use case. We have some of these, too, but a) they're time consuming to make and b) they don't always match what people are looking for.
We wanted to see if AI could help.
What new users see
If you choose our AI powered onboarding, the first thing you'll see is a prompt to describe the form you want to make in plain English (or any language!).
For example, you could type "Form for reserving event space" or "Algebra math quiz".
Next, the AI generates a form based on what you typed.
The results are surprisingly accurate! Multiple choice questions are populated with relevant options, a text header describes the purpose of the form and you even get a cover image based on the description (spoiler: that part just uses the Unsplash API, but we might use AI to generate an image later on).
Example of an auto-generated form. We added a form theme to make it more aesthetic.
Of course, it's unlikely the AI generates the exact form you want. Making changes is easy - you just click anywhere to modify text or drag in new questions you want to ask.
How it works under the hood
We use OpenAI's GPT-3 API to convert the form description into a set of questions types and labels.
GPT-3 lets you provide a set of instructions and outputs text based on that prompt. The main question is - what should the prompt be?
Here's how we do it:
First, we give the AI some background info about what it's supposed to do:
You are creating a web form. You are given the purpose of the web form and your job is to define which questions you should ask in the form.
Next, we tell the AI what it can expect from us as input. Namely, the form description and what the output should look like.
Fillout supports adding 40+ different question types, so we list those out in the prompt:
The possible question types are: SHORT_ANSWER, MULTIPLE_CHOICE, LONG_ANSWER, EMAIL, DROPDOWN, NUMER_INPUT [etc...]
Finally, the most important part. We give the AI a few examples so it knows the expected output format.
Form purpose: A travel agency booking form
The questions you will ask:
EMAIL, What is your email?
SHORT_ANSWER, Your first name
NUMER_INPUT, How many people are you traveling with?
DATE_PICKER, Your travel date
DROPDOWN, Where do you want to travel to?, South America or Africa or Asia
We found that just 2-3 examples was enough to get decent results. We ended up providing 5 examples, to show how each question type is used without providing overly long example forms.
Calling the OpenAI API with a new prompt takes just a few seconds to run. We pass GPT-3 the user's input, along with the pre-made prompt, and then translate the output into our internal form representation.
In general, we've found that you get more impressive results by providing a short description ("e.g. surfing lesson booking form"), as opposed overly specific prompts. If you describe a very specific set of questions in the prompt, GPT-3 will respect that - but not generate anything else. Other than that, it does an impressive job on most inputs.
If you have any questions, ping me at dominic @ fillout.com. Let me know if you see any other instances of AI used for product onboarding. I bet we'll see many more examples across a wide range of products in the coming months!