Make an interface that interactively asks users for multiple pieces of input.

Make a basic conversational interface

Here is an expression that makes a random pattern of 30 red dots:

In[1]:=
Click for copyable input
Out[1]=

Deploy that expression with a conversational interface that asks for the color and number of dots. Replace values in the expression with Ask expressions, and wrap the whole expression with AskFunction. Click the link in the output to use the interface:

Change the order of the questions

The order of Ask subexpressions in an expression may not match the order in which you would like to ask for the values. To ask for values in a different order, you can pull Ask subexpressions out of an expression and order them as you like. Once a value has been provided, subsequent evaluations of Ask for the same value will return the value without asking again:

Add an introduction

Display information without asking for input with AskDisplay. Use AskDisplay to introduce the interface to users:

Check answers and ask again, if necessary

Give users the chance to go back and reenter information with AskConfirm. Check if the number of dots is unusually large and offer to let the user change it if it is: