Fields and the field library
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 |
| 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.
Consent checkboxes
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_termorutm_contentfrom 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
- Liquid and HTML in your texts - Liquid and HTML in labels, help texts and default values.
- Conditions and multi-step forms - show a field only for certain answers.
- The form editor - place and arrange fields.
- Shopify Flow triggers - how values reach Shopify Flow under their handles.
