LogoLogo
Try it outResourcesAPIsAddOnsBook a demo
  • Getting Started
    • Introduction to Beefree SDK
      • Create an Application
      • Installation and Fundamentals
        • Configuration parameters
          • Configuration Reload
          • Workspaces
          • Debugging the Beefree SDK Editor
        • Methods and Events
        • Authorization Process
        • How the UID parameter works
        • Set up two-factor authentication
        • Naming conventions
      • Development Applications
      • Manage Users
      • Manage Subscriptions
    • Tracking Message Changes
    • Sample Code
    • Release Candidate Environment
  • Visual Builders
    • Email Builder
    • Page Builder
      • Integrating Page Builder
      • Embedding videos in a page
    • Popup Builder
      • Popup Builder - Getting Started
      • Testing and Integrating
      • Setting layout and size
        • Advanced settings
    • AI-Driven Design Creation
  • APIs
    • Content Services API
      • Authentication
      • Export
      • Convert
      • Row Processing
      • AI Collection
      • Brand Style
    • Template Catalog API
      • Authentication
      • Templates
      • Categories
      • Collections
      • Designers
      • Tags
    • HTML Importer API
      • Authentication
      • Import HTML
  • Forms
    • Form Block
    • Integrating and using the Form block
      • Passing forms to the builder
      • Form structure and parameters
      • Form layout customization
      • Allowed form fields
      • Edit form field modal
  • Rows
    • Reusable Content
      • Create Reusable Content
        • Pre-build Reusable Content
          • Implement Custom Rows
        • Save Reusable Content
          • Implement Hosted Saved Rows
          • Implement Self-hosted Saved Rows
            • Self-hosted Saved Rows Concepts and Tutorial
      • Sync Reusable Content
        • Implement Synced Rows
        • Initialize Edit Single Row Mode
      • Manage Reusable Content
    • Storage for Reusable Content
      • Hosted Saved Rows
      • Self-Hosted Saved Rows
  • File manager
    • File manager application overview
      • Mime Types and Groups
  • Server-side configurations
    • Server-side options
      • Toolbar options
      • Storage options
        • Configure your AWS S3 bucket
        • Connect your file storage system
      • Content options
      • Services options
      • Undo & Changes history
      • Custom JavaScript Libraries Injection
  • Other Customizations
    • Advanced options
      • Special Links and Merge Tags
      • Content Dialog
      • Custom Color Palette
      • Font management
      • Roles and Permissions
      • Smart Merge Tags
      • Commenting
      • Custom Attributes
      • Meta Tags
      • Custom Languages
      • Display Conditions
      • Advanced Permissions
      • Custom File Picker
      • Custom Headers
    • Appearance
      • Content Defaults
      • Custom Sidebar Position
      • Content Tile Sorting
      • Content Tile Grouping
      • Loading Spinner Theme
      • Custom Tab Layout
      • Themes
      • Custom CSS
        • Change Log
    • AMP for Email
    • Collaborative Editing
      • Co-editing Integration Guide
    • Mobile Design Mode
    • Multi-language Templates
    • Cards Style and Image Round Corners
    • Hover Effect for Buttons
    • Content Area Padding
    • Line Height
  • Data Structures
    • Getting Started
    • Schema Catalog
    • Simple Schema
      • Template Schema
      • Definitions Schema
      • Row Schema
      • Column Schema
      • Title Schema
      • Image Schema
      • Button Schema
      • Paragraph Schema
      • HTML Schema
      • Menu Schema
      • List Schema
      • Icon Schema
      • Divider Schema
    • Row Metadata
    • Form Validation Schema
    • Comments Schema
      • Change Schema for Comments
  • Builder AddOns
    • AddOns
      • AddOns Overview
      • Partner AddOns
        • Partner AddOns directory
        • Installing Partner AddOns
        • DeepL
        • Stability AI
        • Azure AI Vision - Image Analysis
          • Alternate Text Generation with AI
          • AI Alt Text Bulk Generation
        • AI Writing Assistant
          • Available Providers
            • OpenAI
            • Azure OpenAI
            • Anthropic
          • AI Providers and Data Security
          • AI-Generated Meta Tag Fields
          • Token Upselling
          • Apply a Brand Tone
        • Custom AI Writing Assistant
      • Custom AddOns
        • AddOn Development
        • Contribute to the Partner AddOn Marketplace
      • AddOns Configuration
      • AddOn FAQs
  • Resources
    • Error Management
      • onWarning
      • Beefree SDK Editor Errors
      • File System Provider errors
      • JSON Parser errors
      • Template Validation and Update
      • Template validation and update errors
    • Scheduled maintenances
Powered by GitBook
LogoLogo

Policies

  • Privacy & Cookies
  • Terms of Services
  • GDPR Compliance
  • Trust Center

Contact Us

  • Submit a request
  • Book a demo
  • Report a security issue
  • Beefree SDK Startup Program

Resources

  • Developer website
  • Create a Developer Account

© Bee Content Design, Inc. San Francisco, CA | Part of Growens

On this page
  • How it Works
  • Pass a Single Form
  • Pass Multiple Forms
  • Load Your Form Builder
  • Embed a Third-Party Form
  • Customizing forms
  • Editing Form Fields
  • What happens after a form is submitted?
  • Developer resources

Was this helpful?

Export as PDF
  1. Forms

Integrating and using the Form block

PreviousForm BlockNextPassing forms to the builder

Last updated 10 months ago

Was this helpful?

The Form block is available for the and the

How it Works

You can enable your users to add forms in Beefree SDK with two methods:

  • by passing in the a single, default JSON form, potentially including all the fields your application supports, and then have customers build and style forms with our form content block.

  • by implementing a on top of the form content block and building a user interface on top of the builder, so that your users can either browse and select pre-built forms or build a new form.

Note: For the "Form" tile to appear in the "Content" of the builder, you must successfully implement one of the two methods mentioned above.

Pass a Single Form

Your application passes a single JSON form, potentially including all the fields that may be required in a form. You are in control of which fields are visibile when the form is dragged. From there, users have a vast control on how to customize the form, by:

  • adding or removing fields

  • rearranging their order

  • renaming their labels

  • editing their type

This is the quickest way to get started using forms. You may also decide to include such forms inside templates provided by your application.

Pass Multiple Forms

With a content dialog, you have full control over the experience of adding a form. A few examples:

  • users can select a form from a predefined list

  • users can browse a list of forms and pick one

  • users can pick a form and have configuration options (e.g. define a layout) before adding it

Here is an example of form selection built with a Content Dialog.

Once the content dialog returns a form to the application, users can then change the form content properties in the builder, by adding and removing fields, rearranging their order. and customizing their labels and style

Load Your Form Builder

You may even want to go a step further and use the Content dialog to load your UI for form creation, on top of the builder; your users will be able to create a new form and add it to the web content they’re building, without interrupting their workflow.

Embed a Third-Party Form

Form builders typically offer different options to get an embed code:

  • if the embed code is a script, it will not appear in the stage when building the web content. Due to security reasons, we need to remove such scripts during edit mode. The form will appear regularly both in the preview and in the final HTML output. An example of this behavior is the embed code produced by Typeform;

  • If the embed code lives in an iframe, it will be visible during editing as well. For example, Jotform and Google Forms offer this kind of embedding option.

Customizing forms

Once a form is added to the web content, the user has these options to manage fields:

  • Add and remove fields (unless they are marked as required)

  • Rearrange their order

  • Rename their labels

Finally, users can apply various styling options to the form:

  • change font type, size, and style;

  • change colors for text and input backgrounds

  • change size for field inputs

  • define borders and paddings

  • position field labels on the top or on the side of the input fields

  • style buttons

  • and more . . .

Editing Form Fields

When managing fields in a form block, users can click on the “Edit” action to change field types and properties. To facilitate the user, the icon next to the label highlights the current field type.

A modal window will pop up:

From this modal, users can:

  • change field type

  • change general field properties

    • label (available also in the sidebar)

    • placeholder (not available for date, multiple/single choice, dropdown)

    • required field

    • read-only field

Clicking on “Type” will open a dropdown with all the available field types:

All fields can be edited, unless:

  • you defined the field in the JSON form as not editable, using the canBeModified attribute

  • the field type is

    • Submit

    • Hidden

    • File upload

    • Label (a special field type with plain text)

Now, let’s have a closer look at the field types that can be configured with the “Edit field” modal.

Email / Phone / Text / Url

These are the easiest field types to configure, as they only have the optional Placeholder property.

The email and URL types will check at form submission, through HTML5 validation, that the value entered is a formally correct email/web address.

Single choice / Multiple choice / Dropdown

Users need to enter the values that will be displayed to visitors. To do this, they will add those values under Options:

They can either:

  • Enter a single value, which will be both the label and the value passed to the host app in the form.

  • Enter couplets such as label | value to differentiate the label shown to visitors from the value passed to your app after form submission. In the example above, users will select Milan from the dropdown at the city they want to visit, but your app will receive “A” as the response for that field.

The Multiple choice type can also be used to create checkboxes, e.g. privacy policy acceptance. In this case, no value should be specified, and any external URL should be added in the field label, like in this example:

Date

This type has no additional properties. The date format of the value returned to the host app will be coherent with browser locale information.

Visitors will enter the date using the browser’s date picker. Otherwise, they can input the date directly, following the automatically generated placeholder for the expected date format.

Number

This type has the option to enter a minimum and/or a maximum allowed value. If not entered, the field will accept any number.

Number fields have a “spinner” input that visitors can use to cycle through allowed values. Visitors can also input a number directly, but the HTML 5 validation will verify if the submitted number falls into the permitted interval.

Long text

This type is just like a text field, but it’s meant for longer inputs. It has an additional “row height” property to define the default height for the text area – which can be adjusted by the visitor by dragging the bottom right corner. Here is how a long text field looks like in a form:

What happens after a form is submitted?

Beefree SDK just passes the data back to the host application. It doesn’t save anything or touch any of the data.

  • required field;

  • response length, for strings (“must be less than” or “must be higher than” n characters);

  • response value for numbers (minimum or maximum value allowed);

  • correct type (i.e. the field must contain a number, email address, or some other specific preset type);

  • check against a regular expression that defines a pattern the entered data needs to follow.

Any other post-submission validation and action must be defined and performed by your application, for instance:

  • validating whether the data is acceptable, i.e. email already registered;

  • saving it into a database;

  • passing it to a 3rd application;

  • performing other actions (e.g. sending an email notification).

Developer resources

Learn how to implement the different methods to pass forms to the Builder

A closer look at how to structure a JSON form

  • dive into some sample forms and quick start your integration;

  • download templates that include those forms;

  • get a validation JSON schema to test your forms with.

The Content Dialog feature is available on Beefree SDK only.

If you want to pass more than one form to the builder, you can do so by implementing a on top of the form content block.

The HTML Block is available on Beefree SDK only.

As an alternative to the above-mentioned methods, your users can add an HTML block and easily embed forms created with available on the market (e.g. Typeform, JotForm, etc.).

Besides, end users can , when the “edit” action is available.

You can implement client-side validation in your JSON forms using the built-in , to validate things like:

Visit our to:

Learn more about this method
paid plans
Content dialog
Learn more about this method
paid plans
any form builder
edit fields
HTML5 form validation
Passing forms to the Builder
Form structure and parameters
Sample forms and templates
GitHub account
Page Builder
Popup Builder
configuration parameters
content dialog