Building formsFields and the field library

Fields and the field library

Copy page

Field types, layout blocks, default fields, validation and how one field is shared by every form that uses it.

Fields live in a library. You define a field once - its type, label, placeholder, help text, options and validation - and place it on any number of forms. The Fields page lists the library with each field's type, handle, whether it is required and how many forms use it.

Field types

Type What the visitor sees
Text A single line of text
Long text A text area for several lines
Email An email address, checked for a valid format
Phone A phone number
Number A number, with an optional minimum and maximum
Date A date
Dropdown One choice from a list
Radio buttons One choice, all options visible
Checkbox A single box, on or off
Checkboxes Several choices from a list
Consent checkbox A checkbox whose label is the consent text. The text can contain a link, for example to your privacy policy
Hidden Not shown. Sends a fixed value or one filled automatically

There are no file upload fields.

Layout blocks

Layout blocks structure a form. They have no value: nothing is submitted for them and they cannot be used in a condition.

Block Notes
Heading Size Large (H2), Medium (H3) or Small (H4)
Paragraph Text. Line breaks are kept, and it can contain Liquid and simple HTML such as links, bold text and lists
Image An https image link, for example from Content > Files, with a description for screen readers and a maximum width
Divider A thin line between parts of the form
Spacer Empty space with a height you set
Page break (next step) Everything after it is the next step of the form. See Conditions and multi-step forms

Default fields

Email, Name, First name, Last name, Phone, Subject, Message, Company, Order number, Website, Address, ZIP code, City, Country, Date of birth, Newsletter consent and Privacy consent are default fields. They are always in your library. You can edit them and take them off a form, but they cannot be deleted.

Create a field

On Fields, select Create field, or use New custom field in the form editor's Add field menu.

A field's page has two tabs: General with the settings below, and Translations with the field's texts in other languages.

Setting Notes
Label The text shown above the field
Type One of the types above. The type is fixed once the field is in use in the editor
Handle The key the value is stored and sent to Flow under, for example order_number. Lowercase letters, digits and underscores. It cannot change later
Placeholder, Help text, Default value Optional texts and a prefilled value
Required Whether the field must be filled. A form can override this for itself
Options For Dropdown, Radio buttons and Checkboxes: each option has a Label (shown) and a Value (stored)

Liquid and HTML in texts

Labels, placeholders, help texts, default values, option labels and the text of Heading and Paragraph blocks can contain Liquid, and labels, help texts, headings and paragraphs also a small set of HTML (links, bold, italic, underline, line breaks, paragraphs and lists). Shopify runs the Liquid on your storefront, so a default value can pre-fill a field with the logged-in customer's email, and a label can link to your privacy policy. A text with broken Liquid cannot be saved.

See Liquid and HTML in your texts for the details and examples to copy.

Validation

  • Minimum length and Maximum length for text fields.
  • Minimum and Maximum for numbers.
  • Pattern - a regular expression the whole value must match.

All checks (required, email format, phone format, number, date, lengths, pattern, valid options) run on our server, not in the visitor's browser. When a visitor sends the form, or moves to the next step of a multi-step form, the server checks the values and answers with the errors, which are shown at the fields in the visitor's language.

  • The error messages ship with the app in English, German, French, Spanish, Italian and Dutch. Other languages see them in English.
  • A pattern is checked with a time limit. A pattern that takes too long on a value counts as not matching, so keep patterns simple.
  • A single value can be at most 5,000 characters.

A consent checkbox has one text: its Label. A link is part of that text, written as HTML. There are no separate link settings.

  • Required - the form cannot be sent without the box checked.
  • This is email marketing consent - when checked by the visitor, the Form submitted trigger sends Marketing consent: true, for example to subscribe the customer in a workflow. Workflow Forms itself does not create or update customers.

The default field Privacy consent is a required consent checkbox that reads "I have read and agree to the privacy policy", with the words "privacy policy" linking to your store's own privacy policy, the one you manage under Settings > Policies in your Shopify admin. If your store has no privacy policy there, edit the label and point the link at your own page. The exact label is in Liquid and HTML in your texts.

Hidden fields

A hidden field always sends its Default value, or a value from Fill automatically with:

  • utm_source, utm_medium, utm_campaign, utm_term or utm_content from the link the visitor came through
  • Page address
  • Previous page (referrer)
  • Logged-in customer ID

One field, many forms

A field belongs to the library, not to a form. Editing a field - on the Fields page or by clicking it in the form editor - changes it on every form that uses it. The editor tells you how many forms that is.

Three things are set per form, on the placement: the Label on this form, Required, and the conditions.

Deleting a field removes it from every form that uses it. Submissions keep their values.

Translations

A field's label, placeholder, help text and options can be translated per language on the field's Translations tab; that translation applies on every form that uses the field. A form can override it for itself in the editor's translate view. Translations can contain Liquid and HTML like the texts they translate. See Languages.

Next steps