Documentation
Complete guide to creating widgets, applications, and generating WordPress plugins
What is a Widget?
A widget is a JavaScript-based component that can be embedded on websites to add functionality.
Widgets are categorized by type, which determines what features are available in the WordPress plugin dashboard. Each type has its own specialized interface and capabilities.
Why Widget Types Matter
The widget type you select determines:
- What menu items appear in WordPress plugin
- What statistics are shown in the dashboard
- Whether form submissions are supported
- What charts and analytics are displayed
How to Create a Widget
Step-by-Step Process
-
Step 1: Prepare Your Widget Script
- Develop your JavaScript widget
- Host it on a CDN or your server
- Get the public URL
- Test the script works standalone
-
Step 2: Fill Out the Widget Form
- Enter widget name and select type
- Add your script URL
- Define configuration options (optional)
- Add description and icon (optional)
-
Step 3: Create Widget Instance
- After saving, go to widget details
- Click "Create Instance"
- Configure default settings
- Set instance status
-
Step 4: Add Authorized Sites
- Add domains where widget can be used
- Verify domains if needed
- Multiple domains can be added
-
Step 5: Generate WordPress Plugin
- Click "Generate Plugin"
- Fill in plugin details
- Download the ZIP file
- Distribute to customers
What You Need
Required Information:
- Widget Name: Descriptive name for identification
- Widget Type: Category (chatbot, form, etc.)
- Script URL: Public URL to your widget JavaScript file
Optional Information:
- Configuration Schema: JSON defining widget settings
- Description: Brief explanation of widget purpose
- Icon URL: Visual identifier for your widget
Understanding the Fields
Widget Name Required
A descriptive name that helps you identify the widget in your dashboard.
Examples: "Support Chatbot", "Lead Capture Form", "Analytics Tracker"
Widget Type Required
The category of your widget. This helps organize widgets and is used for filtering.
Options: Chatbot, Form, Analytics, Booking, Reviews, Marketing, Custom JS
Script URL (CDN) Required
The public URL where your widget JavaScript file is hosted. This is the most important field - customers' websites will load this script.
- ✅ Must start with
http://orhttps:// - ✅ Must be publicly accessible (no login required)
- ✅ Should be a
.jsfile - ❌ Cannot use localhost URLs
- ❌ Cannot use relative paths
Configuration Schema Optional
JSON format defining what settings your widget supports. Used to generate settings forms in WordPress plugins.
Common Options: theme, position, language, color, size, welcome_message
Description Optional
A brief explanation of what your widget does. Helps you remember the widget's purpose and can be displayed in dashboards.
Icon URL Optional
URL to an icon/image representing your widget. Makes widgets easier to identify visually in your dashboard. Recommended size: 64x64px to 128x128px. Formats: PNG, SVG, JPG.
Widget Types Explained
Each widget type has specific features and capabilities. Choose the type that best matches your widget's purpose.
Chatbot
Use for: Live chat, AI assistants, customer support bots
WordPress Plugin Features:
- ✅ Conversations menu
- ✅ Messages tracking
- ✅ Active users statistics
- ✅ Response rate metrics
Dashboard shows: Total messages, conversations, active users, response rate
Form
Use for: Contact forms, lead capture, surveys
WordPress Plugin Features:
- ✅ Form Submissions menu
- ✅ Submission tracking
- ✅ Email extraction
- ✅ Status management
Dashboard shows: Total submissions, new submissions, page views, interactions
Analytics
Use for: Page tracking, event tracking, user behavior
WordPress Plugin Features:
- ✅ Events tracking
- ✅ Page view statistics
- ✅ Interaction metrics
- ✅ Custom event tracking
Dashboard shows: Page views, total events, interactions, widget status
Booking
Use for: Appointment calendars, reservation systems
WordPress Plugin Features:
- ✅ Booking Requests menu
- ✅ Request tracking
- ✅ Customer information
- ✅ Status management
Dashboard shows: Total bookings, new requests, page views, interactions
Reviews
Use for: Testimonials, rating widgets, feedback
WordPress Plugin Features:
- ✅ Review Submissions menu
- ✅ Review tracking
- ✅ Rating statistics
- ✅ Moderation tools
Dashboard shows: Total reviews, new reviews, page views, interactions
Marketing
Use for: Popups, banners, promotions, lead generation
WordPress Plugin Features:
- ✅ Lead Submissions menu
- ✅ Lead tracking
- ✅ Conversion metrics
- ✅ Campaign analytics
Dashboard shows: Total leads, new leads, page views, interactions
Custom JS
Use for: Any custom JavaScript widget that doesn't fit other categories
WordPress Plugin Features:
- ✅ Basic analytics
- ✅ Event tracking
- ✅ Status monitoring
- ✅ Custom implementation
Dashboard shows: Page views, total events, interactions, widget status
Important Notes
- Widget type cannot be changed after creation
- Choose the type that best matches your widget's primary function
- Form, Booking, Reviews, and Marketing types support form submissions
- Chatbot type shows conversation-specific features
Script URL Guide
Where to Get Your Script URL
Your Own CDN
- Upload your widget.js file to your CDN
- Copy the public URL
- Ensure file is publicly accessible
- Test URL in browser
Example:
https://cdn.example.com/widgets/chat.js
Your Server
- Upload file to
public/widgets/ - Use your domain URL
- Ensure public access
- Test accessibility
Example:
https://yourdomain.com/widgets/widget.js
Third-Party Service
- Sign up for service
- Check their dashboard
- Find embed/script URL
- Copy the URL
Examples:
Tawk.to, Intercom,
Zendesk Chat
Common Mistakes to Avoid
- ❌ Localhost URLs:
http://localhost:8000/widget.jswon't work for customers - ❌ Relative Paths:
/widgets/chat.jsmust be full URL - ❌ Protected Files: Script must be publicly accessible
- ❌ Wrong Format: Must be
.jsfile, not HTML
Testing Your Script URL
- Open the URL in your browser
- You should see JavaScript code (not HTML)
- No authentication prompts
- No 404 or error messages
Configuration Schema
The configuration schema defines what settings your widget supports. This is used to generate settings forms in WordPress plugins.
Example Schema
{
"theme": {
"type": "string",
"default": "light",
"options": ["light", "dark"]
},
"position": {
"type": "string",
"default": "bottom-right",
"options": ["bottom-right", "bottom-left", "top-right", "top-left"]
},
"language": {
"type": "string",
"default": "en",
"options": ["en", "es", "fr", "de"]
},
"welcome_message": {
"type": "string",
"default": "Hello! How can I help you?"
}
}
Common Configuration Options
theme- Color theme (light/dark)position- Widget position on pagelanguage- Widget languagecolor- Primary color (hex code)size- Widget sizeenabled- Enable/disable widget
Format Rules
- ✅ Must be valid JSON
- ✅ Use double quotes for strings
- ✅ Properly nested objects
- ❌ No trailing commas
- ❌ No comments
- Validate at jsonlint.com
Form Submissions Feature
Widgets of type Form, Booking, Reviews, and Marketing can collect and store form submissions that are displayed in the WordPress plugin dashboard.
Supported Widget Types
Form submissions are automatically enabled for: Form, Booking, Reviews, and Marketing widget types.
How It Works
1. Widget Script Integration
Your widget script has access to a global helper function window.submitWidgetForm() that sends form data to the API.
// Example usage in your widget
document.getElementById('form').addEventListener('submit', function(e) {
e.preventDefault();
const formData = {
name: document.getElementById('name').value,
email: document.getElementById('email').value,
message: document.getElementById('message').value
};
window.submitWidgetForm(formData)
.then(response => {
console.log('Submitted!', response);
});
});
2. Data Storage
Form submissions are stored in the database with:
- ✅ All form fields (as JSON)
- ✅ Automatic email extraction
- ✅ Name, phone, message extraction
- ✅ Page URL and metadata
- ✅ Status tracking (new, read, replied, archived)
3. WordPress Dashboard
The WordPress plugin automatically shows a "Submissions" menu item (with type-specific labels) where customers can:
- ✅ View all form submissions
- ✅ Filter by status
- ✅ See email, name, phone, message
- ✅ Click email addresses to reply
- ✅ View page URL where form was submitted
- ✅ See submission date and time
- ✅ Track submission status
- ✅ Export data (future feature)
Email Extraction
The system automatically extracts email addresses from form data by checking common field names:
email,e-mail,Email,E-mailcontact_email,user_email
The extracted email is displayed in the WordPress dashboard and can be clicked to open the email client.
Submission Statuses
Unread submissions
Viewed submissions
Responded to
Archived submissions
Generating WordPress Plugins
What Data is Needed to Generate a Plugin?
From Widget
- Script URL - Loaded on customer websites
- Configuration Schema - Used for settings forms
- Widget Type - For categorization
- Widget Name - Plugin name
From Instance
- Public Key - For widget authentication
- Plugin Token - For API access
- Default Config - Initial settings
- Authorized Domains - Allowed websites
What Happens During Plugin Generation?
The system automatically:
- ✅ Creates WordPress plugin structure
- ✅ Injects your widget script URL
- ✅ Adds your configuration schema
- ✅ Includes authentication tokens
- ✅ Generates admin dashboard
- ✅ Creates settings page
- ✅ Adds analytics tracking
- ✅ Packages into ZIP file
What the Plugin Includes
Script Injection
Automatically loads widget script on frontend
Type-Aware Dashboard
Adapts to widget type with relevant statistics
Analytics
Page views, events, and interactions tracking
Settings
Easy configuration page
Type-Specific Features
The WordPress plugin automatically adapts based on widget type:
- Chatbot: Shows Conversations menu with messages and chat statistics
- Form/Booking/Reviews/Marketing: Shows Submissions menu (with type-specific labels) for managing form data
- Analytics/Custom: Shows Events tracking and general statistics
Remote Widget Control
You can remotely activate or deactivate widget instances from your dashboard. When a widget is inactive, it will not load on customer websites, even if the WordPress plugin is installed and active.
How It Works
Activate Widget
When a widget instance is active:
- ✅ Widget script loads on customer websites
- ✅ Form submissions are accepted
- ✅ Analytics are tracked
- ✅ All features work normally
Deactivate Widget
When a widget instance is inactive:
- ❌ Widget script does NOT load
- ❌ Form submissions are rejected
- ❌ Widget disappears from customer website
- ✅ Can be reactivated instantly
Use Cases
Subscription Management
If a customer doesn't pay, toggle the widget to inactive. It will immediately stop working on their website.
Maintenance Mode
Temporarily disable widgets during maintenance or updates without uninstalling plugins.
Security & Compliance
Quickly disable widgets that violate terms of service or for security reasons.
Important Notes
- Demo widgets cannot be deactivated
- Status changes take effect immediately
- No need to uninstall WordPress plugins
- Customers can still see the plugin in WordPress admin, but widget won't load
How to Toggle Widget Status
- Navigate to Widgets → Select your widget
- Click on a widget instance
- Use the toggle switch in the "Instance Control" card (right sidebar)
- Or use the small toggle next to the status badge
- Widget status changes immediately - no need to regenerate plugins
Applications & Systems
Applications (also called Systems) are multi-module WordPress plugins that provide complete admin interfaces with CRUD operations, data models, and custom functionality.
What Makes Applications Different?
While widgets are simple JavaScript components, applications are full-featured WordPress plugins with:
- ✅ Multiple admin modules (e.g., Leads, Customers, Tasks)
- ✅ Custom data models with relationships
- ✅ Full CRUD operations via API
- ✅ Kanban boards, tables, forms, and dashboards
- ✅ Complete WordPress admin integration
What is an Application?
An application is a complex system that can be packaged as a WordPress plugin. Unlike simple widgets, applications include:
Modules
Modules are the building blocks of your application. Each module represents a section in your WordPress plugin admin menu.
Module Types:
- List: Table/list view for displaying records
- Kanban: Board view with columns (e.g., To Do, In Progress, Done)
- Form: Create/edit form for data entry
- Detail: Single record detail view
- Dashboard: Overview dashboard with charts and metrics
Data Models
Data models define the structure of your data. They specify what fields you want to store and how they relate to other models.
Features:
- ✅ Custom field definitions (name, email, phone, etc.)
- ✅ Field types (string, email, number, date, etc.)
- ✅ Relationships between models
- ✅ Automatic database table generation
- ✅ API endpoints for CRUD operations
How to Create an Application
Step 1: Create System
- Go to Applications → Create New System
- Enter a descriptive name (e.g., "Customer Management System")
- Optionally link to a widget instance
- Add description and icon (optional)
- Click "Create System"
Step 2: Define Data Models
- Click "Add Data Model"
- Define model name (e.g., "Lead", "Customer")
- Add fields with types and labels
- Define relationships to other models
- Save the data model
Step 3: Create Modules
- Click "Add Module"
- Choose module type (List, Kanban, Form, etc.)
- Select which data model to use
- Set display order and icon
- Configure module-specific settings
Step 4: Generate Plugin
- Click "Generate Plugin"
- Enter plugin details (name, version, author)
- Download the ZIP file
- Install on WordPress sites
- Manage installations from dashboard
Example: Customer Management System
Scenario: You want to create a CRM system for WordPress.
Data Models:
- Lead: name, email, phone, company, source, status
- Customer: name, email, phone, company, status, lead_id
- Note: content, customer_id, created_at
Modules:
- Leads (Kanban): Columns based on status field
- Customers (List): Table view of all customers
- Dashboard: Overview with statistics
What Gets Generated
WordPress Admin Menu
Your system appears as a menu item with submenus for each module
Database Tables
Automatic table creation for each data model with all defined fields
REST API
Full CRUD endpoints for all data models
Plugin Management & Installation Tracking
Track where your plugins are installed, manage their status, and control functionality remotely.
Installation Tracking
When customers install and activate your plugin on their WordPress sites, the installation is automatically tracked. You can see:
Live Status
See at a glance which plugins are "Live" - meaning they're installed and active on customer sites.
- ✅ "Live" badge appears when plugin is installed
- ✅ Installation count shows number of sites
- ✅ Active installations show verified sites
- ✅ Quick access to manage installations
Installation List
View all customer sites where your plugin is installed:
- ✅ Domain name of each installation
- ✅ Verification status
- ✅ Last sync time
- ✅ Quick actions to manage
Disable/Enable Plugins
You can remotely disable plugins when customers have unpaid bills or need to be suspended. When disabled, the plugin stops working on all customer sites.
Disable Plugin
When you disable a plugin:
- ❌ Plugin stops working on all customer sites
- ❌ Widget/application won't load
- ❌ API requests are blocked
- ✅ Plugin remains installed (can be re-enabled)
- ✅ Customers see admin notice about disabled status
Enable Plugin
When you re-enable a plugin:
- ✅ Functionality is restored immediately
- ✅ Widget/application starts working again
- ✅ API requests are accepted
- ✅ No need to reinstall plugin
- ✅ All installations become active
Delete Installations
Removing Installations
You can remove a plugin installation from a specific customer site. This:
- ✅ Deletes the installation record from your dashboard
- ✅ Does NOT uninstall the plugin from WordPress
- ✅ Customer can still use the plugin if it's enabled
- ✅ Useful for cleaning up old/unused installations
Use Cases
Unpaid Bills
Disable plugin when customer hasn't paid. Re-enable immediately after payment is received.
Usage Tracking
See which customers are actively using your plugins and track installation growth.
Compliance
Quickly disable plugins that violate terms of service or for security reasons.
How to Manage Installations
- Go to your Widget or Application page
- Click on a plugin version
- Click "Manage Installations" button
- View all customer sites with installations
- Use "Disable Plugin" to stop functionality globally
- Use "Enable Plugin" to restore functionality
- Click "Remove" to delete installation from specific site
Pro Tip
The "Live" badge on widgets and applications shows at a glance which ones are actively installed on customer sites. This helps you prioritize support and track your most popular products.
Embed Codes for Non-WordPress Platforms
Deploy your widgets on any website builder using simple JavaScript embed codes - no plugins required!
When to Use Embed Codes
Use embed codes when your customer's website is NOT built on WordPress.org, or when they don't have access to install WordPress plugins. Most website builders support adding custom JavaScript code.
Supported Website Builders
Our embed codes work with all major website builders and platforms:
Website Builders
Drag-and-drop builder
Design-focused builder
Visual designer tool
Simple site builder
Website Builder
Business builder
Beginner-friendly
Visual builder
E-Commerce Platforms
Online stores
Enterprise ecommerce
Ecommerce-focused
Other Platforms
Multilingual support
Publishing platform
Marketing CMS
Any platform with code injection
How It Works
Create Widget
Create your widget and widget instance as usual
Generate Code
Go to Embed Codes and generate the JavaScript snippet
Select Platform
Choose target platform for step-by-step instructions
Paste & Done
Copy code and paste into your website builder
Example Embed Code
<!-- Your Widget Name -->
<script
src="https://yourplatform.com/api/widgets/PUBLIC_KEY/loader.js"
data-widget-id="123"
data-config='{"theme":"light","position":"bottom-right"}'
async>
</script>
<!-- End Your Widget Name -->
Where to Paste Code by Platform
| Platform | Location |
|---|---|
| Wix | Settings → Custom Code → Body - end |
| Squarespace | Settings → Advanced → Code Injection → Footer |
| Webflow | Project Settings → Custom Code → Footer Code |
| Shopify | Themes → Edit Code → theme.liquid (before </body>) |
| Weebly | Settings → SEO → Footer Code |
| BigCommerce | Storefront → Script Manager → Footer |
| GoDaddy | Marketing → Third-party services → Footer |
| Framer | Site Settings → Custom Code → End of body |
Embed vs WordPress Plugin
WordPress Plugin
- ✅ Full WordPress admin dashboard
- ✅ Settings page in WordPress
- ✅ Automatic updates available
- ✅ Activation/deactivation tracking
- ❌ Only for WordPress.org sites
Embed Code
- ✅ Works on ANY website
- ✅ Simple copy/paste installation
- ✅ No plugin installation needed
- ✅ Remote control still works
- ✅ Analytics tracking included
Pro Tip
When using embed codes, the widget can still be controlled remotely from your dashboard. If you deactivate a widget instance, it will stop loading on all websites - both WordPress plugins AND embed code installations.
Quick Start Guide
For New Users
- Register/Login to your account
- Go to Widgets → Create New Widget
- Fill out the form with your widget information
- Create a widget instance
- Add authorized sites
- Generate and download your plugin