Beaver Builder Reference
Technical documentation for using Respira with Beaver Builder: serialized layouts, module targeting, and safe editing workflows.
Beaver Builder Reference
This page is the technical reference. For what Respira does on Beaver Builder, how it connects to Claude and ChatGPT, and how every edit lands on a copy first, start with the Beaver Builder MCP server page.
Technical documentation for using Respira with Beaver Builder.
About Beaver Builder
Beaver Builder is a reliable, user-friendly WordPress page builder trusted by agencies and developers. It stores layouts as serialized data and features over 30 content modules with a focus on stability and clean code.
Beaver Builder is full read and write. Respira builds, duplicates, batch-updates and renders native Beaver layouts, and mirrors every write to both the draft (_fl_builder_data) and published (_fl_builder_data_published) meta so the editor and the front end stay in lockstep.
Data Structure
Beaver Builder stores layouts as serialized PHP arrays in post meta (_fl_builder_data). The structure consists of rows, columns, and modules:
{
"node-abc123": {
"node": "abc123",
"type": "row",
"settings": { "width": "fixed" }
},
"node-def456": {
"node": "def456",
"type": "column",
"parent": "abc123",
"settings": { "size": "100" }
},
"node-ghi789": {
"node": "ghi789",
"type": "module",
"parent": "def456",
"settings": {
"type": "heading",
"heading": "Welcome to Our Site",
"tag": "h1"
}
}
}
Module Identification
By Node Label (Recommended)
Set a custom label in Beaver Builder: Module Settings → Advanced → Label:
{ "admin_label": "Hero Heading" }
By CSS ID
Set in Module Settings → Advanced → ID:
{ "admin_label": "hero-cta" }
By Path
{ "path": "rows[0].columns[0].modules[0]" }
By Type and Content
{ "type": "heading", "match_content": "Welcome" }
Common Modules
| Module | Type | Key Settings |
|---|---|---|
| Heading | heading | heading, tag |
| Text Editor | rich-text | text (HTML content) |
| Button | button | text, link |
| Photo | photo | photo, link |
| Icon | icon | icon, link |
| Callout | callout | heading, text, photo |
| Call to Action | cta | heading, text, btn_text, btn_link |
| Content Slider | content-slider | slides array |
| Accordion | accordion | items array |
| Contact Form | contact-form | email settings |
Example Prompts for Beaver Builder
Content Updates:
- "Update the module labeled 'Hero Button' to say 'Contact Us'"
- "Change the heading with ID 'hero-heading' to 'Welcome Home'"
- "Replace the CTA button link with /get-started"
Structure Queries:
- "Extract Beaver Builder structure for page 42"
- "List all button modules on the homepage"
- "Show me all rows and their modules"
Bulk Updates:
- "Find all buttons with 'Learn More' and change to 'Get Started'"
- "Update the phone number in all text editor modules"
- "Change all H3 headings to H2"
Saved Modules & Templates
Beaver Builder saved modules and templates are editable:
- "List all saved modules" → Shows saved module library
- "Update the saved 'Contact Section' phone number"
Themer Layouts
Beaver Themer layouts (headers, footers, archives) are fully supported:
- "Update the header template button to link to /contact"
- "Change the footer copyright year to 2025"
Limitations
- Advanced tab settings: Margins, padding, and responsive settings may need the visual editor
- Animations: Animation and visibility settings are preserved but need the builder
- Field connections: Beaver Themer field connections are preserved but not directly editable
- Third-party modules: Support varies by add-on; core modules have full support
When to Use This Tool
- Content updates - Change text, links, and images without opening the builder
- Template maintenance - Update Themer layouts across the site
- Bulk editing - Fix repeated content across multiple pages
- Post-launch changes - Make quick edits after client handoff
See Also
- wordpress_extract_builder_content - View page structure
- wordpress_update_module - Update specific modules
- wordpress_inject_builder_content - Replace entire structure
- Page Builder Overview - Compare all supported builders
v5.2.0 Elemental — New Capabilities
HTML-to-Beaver Conversion
The convert_html_to_builder tool now fully supports Beaver Builder with:
Type Mapping:
- heading →
headingmodule - text/paragraph →
rich-textmodule - image →
photomodule - button/link →
buttonmodule - video →
videomodule - divider →
separatormodule - tables, forms, unknown →
htmlmodule (fallback)
Multi-Column Layout: Flex-row and grid layouts in source HTML are converted to Beaver Builder's column-group > column structure.
Content Merging: HTML content is mapped to BB-native settings keys:
- Headings →
settings.heading+settings.tag - Rich text →
settings.text(HTML preserved) - Photos →
settings.photo_src+settings.photo_source - Buttons →
settings.text+settings.link
Support Level
Beaver Builder has Smart Defaults support — element operations work via the generic tree utility with builder-specific content merging.
Recent capabilities (7.4.x)
- Compound settings no longer fatal on write. Beaver reads compound settings (
border,place_content,typography,dimensionand friends) with array syntax, so Respira now coerces every compound setting value to a PHP array on the write path. That fixes duplicate, batch-update and page render in one place, where they previously could fatal with "Cannot use object of type stdClass as array." - HTML-to-builder preserves section order on nested layouts. Sections wrapping nested
<div>s used to reorder because the converter produced invalid row-in-row structures. The Beaver hierarchy pass now emits validrow > column-group > column > modulein source order, keeping multi-column grids intact. - inject-builder-content accepts raw HTML (a string, or
{ html: "..." }), running it through the same converterconvert_html_to_builderuses, so the two tools take the same input.