Forms
Visitors to your Page can submit Forms from your Website. If a Person with the specified phone number or email already exists in your contact list, their existing record will be updated. If no Person exists, a new Person record will be created upon a successful Form submission. User Fields (e.g. email, phone number, name, language, zip code, country) and Custom User Properties will update the associated fields on the Person record with the latest data from a Form submission.
Most Page Types have a form, for example event, petition, and donation pages. Landing Page and Blog Post pages start with no form.
Set a Default Form Template: Go to Pages → Your Website → Settings tab and select a Default Form. Any page you select becomes the template for new pages, except donation pages. They copy only its form fields and its Disclaimer, and only when it has an Email or Phone Number field.
Custom Form Fields vs. Custom User Properties: The "Add New Form Field" dropdown has two separate sections that look similar but behave very differently:
- Custom User Properties (your organization's own properties): These fields write directly to the Person's profile on submit. Use these when you want to track data on each person.
- Custom Form Fields (generic types: "Text", "Dropdown Menu", "Checkboxes", etc.): These fields store data only on the form submission, not on the Person's profile. Use "Query by Form Question" in filters to find responses.
If you want form answers to appear on a person's profile and be filterable as a custom property, always add the field from the Custom User Properties section. See Custom Properties for details.
Recognized users
A visitor to a Page is either recognized as an existing Person or treated as an unknown visitor. The page is tailored to a recognized visitor, and this helps avoid duplicate records. A visitor is recognized when they:
- Submitted a form earlier on the same device.
- Clicked a personalized Page Link from one of your emails or texts.
- Logged in at the /login page of your website with the 6-digit code that the page emails.
On every page except a donation page, a recognized visitor sees the link 'Not [name]? Click here.' with the form, and the link signs them out.

Using Forms on a Shared Device
When several people submit a form on one device (for example a shared iPad at a tabling session), the device stays recognized as the first person who submitted. The next visitor sees that person's answers filled in, and the submit can update the first person's record. To prevent this, enable "Don't Recognize Logged-In User" under 'Customizations' in the 'Page Settings' section of the page's Details tab.
For team members collecting info on behalf of others: Use Field Surveys instead.
Form requirements
By default, a form needs an Email or Phone Number field with Show set to 'Always Required' or 'Required If Blank'. Without one, the dashboard marks the page 'Page Incomplete - Form Requires Contact Field', and the public page does not show the form. Depending on the page type, your form may require additional fields (eg. share your story requires a video upload).
Communication permissions from a form
The Phone Number field has the toggle 'Require opt-in consent for texts alongside phone number.' When the toggle is off, the form gives SMS consent by default. The opt-in consent covers texts only, so a new Person with a phone number also gets Call Permission.
Show options
Each field has a Show setting:
- Always Required: The form cannot be submitted until this field is filled out.
- Required If Blank: Required, unless a recognized visitor already has a valid value for this field.
- Always Visible: Visible, but not required.
- Visible If Blank: Visible and not required, but hidden from a recognized visitor who already has a value.
- Visible Conditionally: Visible only when another field's answer meets the condition you pick.
Some fields offer fewer options. On Event pages, the Email field offers 'Always Required', 'Required If Blank', and 'Always Visible'. To use 'Always Visible', set Phone Number to 'Always Required' or 'Required If Blank' first. Email must stay required on an event page that sells tickets.
All Form Field types
To add a field, open the page's Form tab and use the "Add New Form Field" dropdown in the "Form Fields" section. The Form Preview on the right shows the form logged in (with a recognized user) or logged out. Save a field to refresh the preview.

The Custom User Properties section of the dropdown lists your organization's own properties. Each user field and each property can be on a form only once.
User fields
User fields and Custom User Properties update the Person record when the form is submitted. The user fields include Email, Phone Number, Zip Code, Full Address (with optional address autocomplete, which also saves the location for mapping and targeting), Full Name, Alternate Name, Date of Birth, Preferred Language, and Country.
By default, the Phone Number field checks that the number is a textable mobile number. You can turn this check off.
Custom Form Fields
Custom Form Fields store answers on the submission only. The types include Text, Multiline Text, Number, Date, Dropdown menu, Radio buttons, Checkboxes, Signature, and File (video, image, audio, PDF, or spreadsheet). Text fields can validate input with a regular expression. Date fields can set a minimum and maximum date. Checkboxes can set how many options a person must or may pick. Text and Multiline Text fields can have a Preset Value (see Preset values and merge tags).

An image upload field can also detect and crop the face in the picture, and save the cropped copy, for example for membership cards.
Field options: "Disabled" and "Defaults On"
Each option of a multiple choice field has two toggles:
- Disabled: Keeps the option on the form, greyed out, so nobody can pick it. Only a Checkboxes field with 'Searchable Dropdown' on leaves the option out. Use it to phase out an old option and keep its past answers.
- Defaults On: Selects the option when the form loads. Radio Buttons and Dropdown Menu take one answer, so turn it on for one option only.

Syncing options with a Custom User Property
A Dropdown, Radio Buttons, or Checkboxes field backed by a Custom User Property can turn on Sync options with property. The property then sets the option list, labels, and order. You can still set Disabled and Defaults On per option.
Note: When sync is enabled, you cannot add, remove, or reorder options directly on the form field. Make those changes on the Custom User Property itself, under People > Properties. The Properties menu item shows only to team members with the 'Add Custom Properties' permission.
Demand fields
Demand vote fields show in the 'Add New Form Field' dropdown only when your plan includes Demands. Demands is on the Standard, Professional, and Enterprise plans.
Demand Multiple Choice Vote lets people vote on the Demands you pick, or on Demands that a logged in Person has not voted on yet. Demand Ranked Choice Vote asks people to rank the Demands you pick by priority.
HTML content block
An HTML content block adds text, images, headers, and links to the form. Add it with 'Add Text, Images, Headers, & Links...' in the 'Text & Formatting' group of the 'Add New Form Field' dropdown. Edit it visually or as raw HTML.

On Email Legislator and Call Legislator pages, an HTML content block can also name the person's legislators, with the Legislator merge tags. See Legislator Lookup Blocks.
Hidden field
A hidden field submits a preset value with the form. The visitor does not see it.
Groupings
Multipage Subform: Splits a large form into pages. The form is saved and submitted only after the last page.
Subform: Groups several fields into one section. You can show or hide the whole subform with a condition.
Preset values and merge tags
Text and Multiline Text fields have a Preset Value setting. The preset value is the text that the field shows when the form loads. The person can edit it before they submit, unless you turn off Editable on a Multiline Text field.
A preset value can include member merge tags, for example {{ user.first-name }}. Click the brackets icon next to the Preset Value box to pick a tag. The tags fill in with the member's own info when the form recognizes the member. For anyone the form does not recognize, the tags are blank. If the page has Don't Recognize Logged-In User turned on, the tags are blank for everyone. To show fallback text, add a default: {{ user.first-name | default: "friend" }}.
In field surveys, the tags fill in with the info of the person being surveyed, even when Don't Recognize Logged-In User is on. Custom properties that the agent is not allowed to see stay blank.
Pre-filling Forms via URL Parameters
Add field names and values to the page link to pre-fill the form, for example https://yoursite.org/join?zip_code=90210. This works for most field types, custom properties included. For radio buttons and checkboxes, use the option value or the exact label text, and separate several checkbox values with commas (?interests=Climate,Healthcare,Housing). Write phone numbers with the country code (?phone_number=14155551234). URL-encode special characters, for example %20 for a space.
Tracking Form Sources with UTM Parameters
Add utm_source (and other UTM parameters) to a form link, for example https://yoursite.org/join?utm_source=tabling-event-downtown. The UTM source is saved with each submission. In the page's Results tab, open 'Page Analytics' to see the 'UTM Source' table. In People, use the 'UTM Data for Activity' filter.
Liquid template variables
Form answers work as Liquid merge tags in Email Legislator messages and on the custom follow-up page. Use the field's 'Name / ID' in the tag. For example, a field named housing-development-name becomes {{ housing-development-name }}.
Common attributes amongst types
Most fields have a Name / ID (the key that identifies the field, under the field's 'Extra options' link), a Label, a Placeholder, and a Hint.
Styling options
'Classes', 'Style', and 'Label Style' are under the field's 'Extra options' link. They add HTML classes and inline CSS to the field.
Label as real-time Liquid template: Turn this on to change a label based on earlier answers. For example, the label Date Hired by {{ employer | capitalize | default: 'Employer' }} shows "Date Hired by Instacart" when the employer field is "instacart."
Form Settings
The bottom of the Form tab has these settings:
Disclaimer: Small text under the submit button, often used to say that the contact gives permission to be texted or called. The Disclaimer text does not set any permission. SMS consent comes from the Phone Number field.
Default Chapter: The setting adds new People from the form to the chapter you pick, and an existing Person keeps their primary chapter. When your organization assigns chapters by zip code, the zip code picks the chapter instead.
Require reCAPTCHA: Requires a valid reCAPTCHA response for spam protection. If enabled, the form can ONLY be submitted on Solidarity Tech hosted pages.
The other settings are Form Title (shown only on sidebar forms, never on Basic Form pages), Submit Button Label, Autosave Form (saves answers in progress until the form is submitted), and Disable Animations.
Updated 12 days ago
