Dynamic Form Engine
  • Sprintfy
  • Developer Tools
  • Dynamic Form Engine

Introduction

The Dynamic Form Engine allows you to define and manage forms dynamically without creating or modifying database tables.

Forms defined here can be used in the CMS and submitted through ready-made APIs, making it easy to collect, store, and manage user input without building custom backend logic.

This approach is especially useful for surveys, onboarding flows, applications, and any use case where form structure may change over time.

DB-Schema

Create a New Form

When you open the Dynamic Form Engine from the left-side navigation, you will see a page with a New Form button.

DB-Schema

Click on New Form and fill in the following fields:

  • 1. Form Name
    The display name of the form.
  • 2. Sort Order
    Controls the ordering of the form in the CMS.
  • 3. Active
    When enabled, the form is available in the CMS and can be used by Form APIs.
  • 4. Allow Save For Later
    Allows submitting the form without filling all required inputs, enabling users to complete it later.
  • 5. Description
    A descriptive text for the form, which can be displayed above the form or elsewhere in your application.

Form Details & System ID

After saving the form, you will be redirected to the form view page.

DB-Schema

This page displays the form details along with a unique System ID (spfy_id). This identifier is required when using Form APIs to retrieve or submit form data.

By clicking the Edit button, you can manage the form details and access the related configuration tabs.

DB-Schema

Inner Forms

Inner Forms allow you to group inputs under multiple sections within a main form.

DB-Schema

From the Inner Forms tab, click on New Form to create a sub-form.

Inner forms use the same configuration fields as the main form and are displayed as part of the parent form.

Form Inputs

Inputs define the fields that users will fill when submitting the form.

To add a new input, click on New Form Input and fill in the following:

DB-Schema
  • 1. Input Name
    Identifier for the input. Must not contain white spaces or special characters.
  • 2. Type
    Defines the input type such as string, text, select, etc. This helps frontend developers render the correct input.
  • 3. Label
    Display name shown with the input.
  • 4. Show in Submission Table
    When enabled, the input is displayed in the submissions list table.
  • 5. Required
    Marks the input as required.
  • DB-Schema
  • 6. Translatable
    Saves the input value as a language-based array.
  • 7. Sort
    Controls the order of inputs within the form.
  • 8. Hint
    Instruction or note shown under the input.
  • 9. Min (length / number)
    Defines the minimum allowed length or numeric value.
  • 10. Max (length / number)
    Defines the maximum allowed length or numeric value.
  • 11. Regex
    Allows defining validation rules using regular expressions.

DB-Schema

After adding inputs, they will appear in the inputs list for the form.

Form Permissions

Permissions allow you to control access to the form and its inputs.

From the Permissions tab, click on New Permission Assignment and configure:

DB-Schema
  • Role
    Select the role to assign permissions to.
  • Model Actions
    Control access to view, create, update, and delete submissions.
  • Field-Level Permissions
    Control access to view, create, or update each input. Bulk actions are available for faster configuration.

Form Submissions

When you click on a form name from the left-side navigation under the Forms group, you will see the submissions list for that form.

DB-Schema

From this page, you can view and manage all submissions created through the CMS or submitted via Form APIs.

The submissions list supports searching by keyword and hiding or showing columns using the Show / Hide Columns option.