Skip to main content
The Salesive form schema follows a hierarchical structure: PagesSectionsFields. This organization helps create intuitive and maintainable configuration forms.

Schema Hierarchy

Root Schema

The root of your schema file contains an array of pages:

Page Object

Pages are the top-level organizational unit in your form.

Structure

Properties

string
required
Unique identifier for the page. Use lowercase letters, numbers, and hyphens only. Example: "home", "about-us", "contact"
string
required
Display name shown in the form UI. Should be user-friendly and descriptive. Example: "Home Page", "About Us Page", "Contact Information"
string
Optional explanation of what this page configures. Helps users understand the purpose. Example: "Configure your homepage content and layout"
array
required
Array of section objects containing related field groups.

Example

Section Object

Sections group related fields within a page for better organization.

Structure

Properties

string
required
Unique identifier for the section within its page. Use lowercase with hyphens. Example: "hero", "contact-info", "brand-colors"
string
required
Section heading displayed to users. Should clearly indicate the content group. Example: "Hero Section", "Contact Information", "Brand Colors"
string
Optional helper text explaining what fields in this section control. Example: "Primary hero messaging and banners"
array
required
Array of field objects representing form inputs.

Example

Field Object

Fields are the actual form inputs where users enter configuration data.

Base Structure

All fields share common properties:

Common Properties

string
required
Unique identifier for the field. This becomes the variable name in salesive.config.json. Use camelCase for consistency with JavaScript conventions. Example: "heroTitle", "primaryColor", "phoneNumber"
string
required
Field type determining the input component and data format. Options: "text", "media", "color", "select"
string
required
Display label shown above the field. Should be clear and concise. Example: "Hero Title", "Primary Color", "Phone Number"
string
Optional helper text providing additional context or instructions. Example: "Upload or select hero banner images"
any
Default value for the field. Type depends on the field type. - Text fields: "string" - Color fields: "#hexcode" - Media fields: "url" or ["url1", "url2"] - Select fields: "option value"
boolean
Whether the field must be filled before form submission. Default: false

Type-Specific Properties

Different field types have additional properties:

Text Fields

string
required
HTML input type: "text", "textarea", "email", "tel", "url", "number"
string
Placeholder text shown in empty inputs

Media Fields

string
required
Type of media: "image", "video", "file"
boolean
Allow multiple file uploads Default: false
number
Minimum number of items required (when multiple is true)
number
Maximum number of items allowed (when multiple is true)

Color Fields

Color fields use a color picker input and store values as hex codes.

Select Fields

string
required
Data type: "text", "number", "boolean"
boolean
Allow multiple selections Default: false
array
required
Array of option objects with label and value properties

Complete Example

Here’s a complete schema demonstrating all elements:

Best Practices

Naming Conventions - Use camelCase for field IDs: heroTitle, primaryColor - Use kebab-case for page and section IDs: home, about-us, hero-section - Keep IDs descriptive but concise
ID Uniqueness Field IDs must be unique across your entire schema, as they become variable names in salesive.config.json. Using duplicate IDs will cause conflicts when accessing variables in your theme.
Organization Tips - Group related fields into logical sections - Use clear, user-friendly labels and descriptions - Provide sensible default values - Mark essential fields as required

Validation

The Form Builder automatically validates your schema:
  • Ensures required properties are present
  • Checks for duplicate IDs
  • Validates field type configurations
  • Confirms proper JSON syntax

Next: Field Types

Learn about all available field types and their specific options