Existing Popup Integration
This guide explains how to properly configure your existing designed pop-up root container to work seamlessly with the Popup Builder application.
Overview
To integrate your existing popups with Popup Builder, your popup container must include specific attributes, classes, and embedded code. This ensures proper functionality and compatibility with our system.
Required Setup
1. Essential Attributes
Your popup root container must include these mandatory attributes:
<div
fa-popup-root="true"
aria-hidden="false"
fa-popup-config="{}"
fa-template-addons="[\"\"]"
class="flowappz-hide-popup">
<!-- Popup content -->
</div>2. CSS Hiding Behavior
Add this embedded <style> block to ensure proper popup visibility control:
<style>
/* Hides popup elements when not in Webflow Designer mode */
html:not(.wf-doc) .flowappz-hide-popup {
display: none;
opacity: 0;
pointer-events: none;
visibility: hidden;
transition: opacity 0.2s ease;
}
</style>Note: This CSS ensures your popup remains hidden on the live site while remaining visible in Webflow's Designer for editing.
3. Content Structure Attributes
Within your popup structure, add these specific attributes:
Content Wrapper: Add
fa-popup-content-wrapper="true"to your main content containerClose Button: Add
fa-popup-close-button="true"to your close button element
<div fa-popup-root="true" class="flowappz-hide-popup">
<div fa-popup-content-wrapper="true">
<!-- Your popup content -->
<button fa-popup-close-button="true">×</button>
</div>
</div>Configuration Object
Basic Structure
The fa-popup-config attribute must contain a JSON configuration object with the following structure:
{
"id": "unique-popup-id",
"name": "Popup Name",
"type": "modal",
"status": "draft",
"templateId": "template-number",
"devices": ["desktop", "tablet", "mobile"],
"style": { /* styling options */ },
"userBehavior": { /* behavior settings */ },
"target": { /* targeting rules */ },
"frequency": { /* display frequency */ }
}Complete Configuration Example
<details> <summary>Click to view full configuration example</summary>
{
"id": "cvdjbkz1756708116133",
"name": "First popup",
"element": null,
"contentWrapperElement": null,
"type": "modal",
"isHideFromDesigner": false,
"status": "draft",
"integration": false,
"templateId": "3",
"devices": ["desktop", "tablet", "mobile"],
"includePages": [],
"excludePages": [],
"triggers": [],
"displayOnce": true,
"frequencyDays": 7,
"isWebflowDataSubmission": false,
"schedule": {
"enabled": false,
"start": "",
"end": ""
},
"style": {
"position": "center",
"animationType": "fadeIn",
"size": "small",
"opacity": 0.6,
"overlayColor": "#000000",
"openAnimationSpeed": "normal",
"closeAnimationSpeed": "normal",
"closeAnimationType": "fadeIn",
"isCustomPosition": false,
"customPositionUnits": "px",
"customPosition": {
"top": 0,
"left": 0,
"right": 0,
"bottom": 0
}
},
"userBehavior": {
"afterScrolling": {"unit": "none", "value": 1},
"delay": 1,
"exitIntent": {"active": false, "sensitivity": "low"},
"showOnlyOnce": false,
"inactiveTime": {"active": false, "time": "0"},
"happyHour": {
"active": false,
"date": "2025-09-01T06:28:36.133Z",
"start": "12:00:00",
"end": "12:00:00"
},
"frequency": {"active": false, "interval": 2, "unit": "weeks"},
"elementPopupTrigger": {"active": false, "elementSelector": ""}
},
"target": {
"urlBrowsing": {"all": true},
"scheduleDateTime": {
"from": "2025-09-01T06:28:36.133Z",
"to": "2025-09-01T06:28:36.133Z"
},
"userAction": {"actionType": "none", "elementSelector": ""},
"showOnSpecificPages": {
"specificPages": [],
"excludePages": [],
"isShowOnSpecificPages": false,
"urlContains": [""],
"urlMatchesExactly": [""]
},
"showOnCookies": {"cookieCondition": "none", "cookieName": ""},
"referrerTargeting": {"isEnabled": false, "allowedReferrers": []},
"customCondition": {"isEnabled": false, "condition": ""}
},
"frequency": {
"displayFrequency": "display-every-session",
"stopDisplaying": {
"neverStop": true,
"emailSubmission": true,
"afterClosing": true,
"numberOfTime": 1
},
"escKey": true,
"autoCloseXSeconds": {"active": false, "seconds": 0},
"openPopupFormSubmission": false,
"disablePopupClose": false,
"closeOnPageNavigation": true
},
"countdownConfig": {
"endDate": "2025-09-01T06:28:36.133Z",
"endTime": "12:00:00",
"timeZone": "UTC",
"displayOptions": {
"showDay": true,
"showHour": true,
"showMinute": true,
"showSecond": true
}
}
}</details>
Optional Features
Countdown Timer
If your popup includes a countdown timer, add these attributes to the respective time display elements:
<span fa-day-count="true">00</span>
<span fa-hour-count="true">00</span>
<span fa-minute-count="true">00</span>
<span fa-second-count="true">00</span>Implementation Checklist
Before integrating your popup, ensure you have:
[ ] Added all required attributes to the root container
[ ] Included the
flowappz-hide-popupclass[ ] Embedded the CSS hiding behavior
[ ] Added content wrapper and close button attributes
[ ] Configured the JSON settings object
[ ] Added countdown attributes (if applicable)
[ ] Tested visibility in both Designer and live site
Troubleshooting
Popup not appearing?
Verify the CSS hiding behavior is correctly implemented
Check that
aria-hiddenis set to"false"Ensure the configuration JSON is valid
Popup always visible?
Confirm the
flowappz-hide-popupclass is appliedVerify the embedded CSS is present in your page
Configuration not working?
Validate your JSON syntax using a JSON validator
Ensure all required fields are present in the configuration object
For additional support or questions about popup integration, please contact our support team or refer to our API documentation.
Last updated
Was this helpful?