Learn more about how to use Beefree SDK's simple schema for AI-driven design.
Beefree JSON is the JSON schema we use to structure and validate designs within Beefree SDK. It's a very comprehensive and complex schema and for this reason, it does not provide the best structure for training AI models in workflows that include AI-driven design creation. Beefree SDK's Simple Schema is a lightweight alternative that's more accessible for AI engines (and humans).
As a simpler model, Simple Schema is an intuitive language you can use as a baseline for training AI agents and building templates programmatically outside of Beefree SDK's visual builders. These headless templates can then be instantly transformed into Beefree’s native JSON and loaded inside the builder for end users to edit accordingly in a no-code environment.
Simple Schema also enhances Custom AddOns development by:
Providing a comprehensive set of properties for full flexibility in your design.
Consolidating the Custom Rows, Single Content AddOn, and Row Mixed schemas into a unified, compatible schema type.
Reference the Simple Schema GitHub repository for more information.
This endpoint is essential for building headless template workflows, where templates are generated or assembled programmatically—by AI models, config files, or external systems—and later converted for use inside the builder.
Tip: Reference an example valid request body in the GitHub repository to experiment with the API endpoint and see it in action.
The following section lists several ways you can leverage Simple Schema to bring additional value to your end users.
Build a chatbot or frontend tool where users describe what they want. An AI model creates a Simple Schema layout, which you convert to Beefree JSON using the API. Load the result into the builder—or send it directly into a campaign—without ever touching the editor during creation.
For example, your dev team can build a frontend that lets users describe their design (email, page, or popup), and submit that description to an AI agent on the frontend. On the backend:
The prompt is processed by an AI model trained to produce a template using Simple Schema.
You pass the schema to /v1/conversion/simple-to-full-json
.
You receive Beefree native JSON, which is then loaded directly into the Beefree SDK builder.
This approach blends AI-driven design creation and your own custom user interface, which supports your end users in not starting their content creation workflow from scratch, but rather from an AI-generated design.
Use schema generation logic to produce slightly varied layouts for testing. Combine this with AI or custom logic to automatically create multiple variants of templates.
Enforce validation rules that check your schema structure or inputs to meet your unique business or design standards.
Simple Schema lets you build and manage complete email, page, and popup templates without ever opening the visual builder. Use it for content generation, programmatic campaigns, template marketplaces, or internal automation systems.
Simple Schema enhances the development experience for Custom AddOns by integrating new properties that foster an additional layer of customization.
Developer Notes:
All AddOn content types now rely on Simple Schema.
The locked
property is only enforced inside Row AddOns to avoid poor UX in single-content modules.
Use the text
field consistently for content across all textual modules.
Default values will be applied if specific properties are omitted in the Simple JSON.
To develop your own Custom AddOn, you need to utilize Beefree SDK's Content Dialog method. The following code snippet provides and example of how to utilize the Content Dialog for Custom AddOns with Simple Schema.
Tip: The structure in the code snippet supports consistent block-level styling globally.
Simple Schema provides a comprehensive set of properties for customizing and creating Custom Rows.
definitions.schema.json
is referenced across almost all module and container schemas for styling props.
Modules are polymorphic, distinguished by their "type"
and validated using the oneOf
structure in simple_column
.
Client-side validation
Any individual module schema (simple_button
, simple_list
, etc.)
Saving a full template
simple_template.schema.json
(including rows
, columns
, and modules
)
API endpoint schema
Request body can directly use simple_template
Database modeling
Use nested object structure defined in simple_template
, with shared fields via $ref
s
The following code snippet provides an example of custom Simple Schema fields for merge tag support, and custom validations.
These validators ensure generated content is correct and aligns with the data structure defined within the Simple Schema.
The API call accepts a template
object, which is required to successfully perform the /simple-to-full-json
API call. The following table describes this required object.
The following code snippet shows the template object as the body of the POST
request.
The following table lists and describes both required and optional object parameters nested within the mandatory template
object. This template
object is the body of the POST
request for the API call.
The following code snippet shows the optional settings
object nested within the template
object in the body of the POST
request.
The following table lists and describes optional object parameters nested within the settings
object. The settings object is nested within the mandatory template
object.
The following code snippet shows the optional metadata
object nested within the template
object in the body of the POST
request.
The following table lists and describes optional object parameters nested within the metadata
object. The metadata
object is nested within the mandatory template
object.
The following JSON Schema is related to the request parameters for this endpoint, as mentioned in the above table we accept only a template
object, which is mandatory. The following JSON Schema describes the request parameters as well as the template object structure, going in depth on the possible properties of the template object.
Schemas are structured definitions that describe the format, rules, and relationships of data within a system. They ensure consistency and validate inputs. In Beefree SDK, the Definitions Schema acts as a shared helper resource, providing reusable validation rules and enums across other content schemas such as rows, buttons, titles, and more. It does not represent a standalone content block but supports consistency and maintainability across the schema ecosystem.
This section summarizes the purpose and key characteristics of the Definitions Schema.
Schema Name: Definitions
Purpose: Provides shared schema definitions used by other blocks for common properties like padding, border radius, border width, and module type.
Usage Context: Referenced via $ref
in other schemas to enforce value ranges and consistency.
Related Schemas:
All content and layout schemas that use padding, border, or type enums (e.g., simple_row
, simple_button
, simple_title
, etc.)
Below is the JSON Schema definition and a detailed breakdown of each property.
The following table lists the field descriptions along with their corresponding data type, and their description.
Consider the following when working with the Definitions Schema in Beefree SDK:
Reusability: Always reference shared properties from this schema instead of redefining them.
Consistency: Helps maintain uniform styling, validation, and developer experience across multiple content modules.
Extensibility: New shared values (e.g., fontWeight
, alignmentOptions
, etc.) can be added here as the design system evolves.
Loading...
Schemas are structured definitions that describe the format, rules, and relationships of data within a system. They ensure consistency and validate inputs. In Beefree SDK, the Column object defines how individual columns are structured within rows across builders for emails, pages, and popups. It manages layout weight, background styling, padding, borders, and the content modules it contains. This documentation breaks down the column’s properties, requirements, and usage examples to help you implement and customize columns effectively.
This section summarizes the purpose and key characteristics of the Column object.
Schema Name: Column
Purpose: Defines the layout and styling of a single column within a row, including spacing, background, and the modules it contains.
Mandatory Fields: (None explicitly required in schema)
Related Schemas:
definitions.schema.json
(for padding and border definitions)
simple_row.schema.json
(defines how columns are grouped in rows)
Below is a representative structure of the Column object and a breakdown of each property.
Important: Ensure the sum of each column's weight is equal to 12 for the weight
property. It can't be a different number.
The following table lists the field descriptions along with their corresponding data type, whether or not they are mandatory, and their description.
Reference an example of the schema in the following code snippet.
When working with Column objects in the Beefree SDK:
Responsive Layouts: Use weight
strategically to define flexible multi-column arrangements across devices.
Styling: Combine background, border, and padding settings for visual structure and emphasis.
Extensibility: Use customFields
for non-standard properties.
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...