Skip to main content

Form widget

Forms can be used to insert new records or to update existing records. Your app can have as many forms as you want, even for the same objects: for instance, you might want to provide different forms for different users or for different purposes.

How to create a form widget

  1. Drag a form widget into a page.
  2. Use the dropdown menu to select the desired behavior of the form (create a new record or update and existing one) and the object you want to create or update. The dropdown will only list the actions that are allowed in that specific page: for instance, if the page does refer to any specific record the dropdown will not list the update action.
  3. Configure the form widget by selecting the fields you want users to update.

General options

Like other widgets, you can optionally set a title and a subtitle that will be displayed above your form.

In addition, you can define visibility rules which determine whether, based on the conditions you define, the widget shall be displayed or not. For instance, you might want to hide a contact form for orders that are marked as completed.

Form fields

In a form, you can use any number of fields according to what data you want to let your users enter (or even no fields at all if you just want to show the submit button to create an empty object or run tasks).

For each field, you can set the following options:

  • Label: the label of the field, as it will appear in the form.
  • Instructions: additional text that will be displayed next to the form field. You can use this to provide more context about what data you expect users to enter.
  • Required: this option will mark the form field with an asterisk, and prevent form submission if the field is not filled with data.
  • Read-only: this option will grey out the field preventing its value from being set by the user. Use this if you want to display the current value of a record field without allowing modifications. This option is only available for forms that update existing records.
  • Width: this option sets the width of the field. This allows you to create forms with multiple columns.

Display rules

Display rules allow you to change the appearance of the form dynamically according to user's selections. For instance, if you want to show a "Company Name" field only when the user selects "Company" in a "Type" dropdown, you can use a display rule like this:


Available actions for display rules include:

  • Show/hide: the selected field will be shown if the configured condition is true, and hidden otherwise.
  • Hide/show: the selected field will be hidden if the configured condition is true, and shown otherwise.
  • Set required: the selected field will be made required if the configured condition is true, and optional otherwise.
  • Set read-only: the selected field will be made read-only if the configured condition is true, and editable otherwise.
  • Rename field: the label of the selected field will be changed to another value if the configured condition is true, and to the original value otherwise.


Tasks are actions that can be run when a form is submitted. For instance, you can use a form task to:

  • send an email to the user who submitted the form or to you;
  • create a new record in another object;
  • set values for other fields of the current record, as a way to provide defaults or to set them according to a conditional logic based on user's input.

A task is configured by selecting the conditions under which it should be run, and by configuring one or more actions to be performed. A form can have as many tasks as you want, that will be evaluated and run in the configured order.

Available actions for tasks include:

  • Send email: send an email to a fixed e-mail address (useful for sending a notification to your team) or to an e-mail address taken from an object field (useful for sending e-mail to the user who submitted the form). See the Sending E-mail page to learn more.
  • Update this record: set more values for the record that the form is creating/updating. Use this to provide default values or to set values according to a conditional logic based on user's input.
  • Create a new record: create a new record in another object. Use this to create related records automatically.
  • Update a connected record: update one or more records in a connected object.