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
  1. 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
  2. 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)
  3. Step 3: Create Widget Instance
    • After saving, go to widget details
    • Click "Create Instance"
    • Configure default settings
    • Set instance status
  4. Step 4: Add Authorized Sites
    • Add domains where widget can be used
    • Verify domains if needed
    • Multiple domains can be added
  5. 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.

Important Requirements:
  • ✅ Must start with http:// or https://
  • ✅ Must be publicly accessible (no login required)
  • ✅ Should be a .js file
  • ❌ 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
  1. Upload your widget.js file to your CDN
  2. Copy the public URL
  3. Ensure file is publicly accessible
  4. Test URL in browser

Example:
https://cdn.example.com/widgets/chat.js

Your Server
  1. Upload file to public/widgets/
  2. Use your domain URL
  3. Ensure public access
  4. Test accessibility

Example:
https://yourdomain.com/widgets/widget.js

Third-Party Service
  1. Sign up for service
  2. Check their dashboard
  3. Find embed/script URL
  4. Copy the URL

Examples:
Tawk.to, Intercom,
Zendesk Chat

Common Mistakes to Avoid
  • ❌ Localhost URLs: http://localhost:8000/widget.js won't work for customers
  • ❌ Relative Paths: /widgets/chat.js must be full URL
  • ❌ Protected Files: Script must be publicly accessible
  • ❌ Wrong Format: Must be .js file, not HTML
Testing Your Script URL
  1. Open the URL in your browser
  2. You should see JavaScript code (not HTML)
  3. No authentication prompts
  4. 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 page
  • language - Widget language
  • color - Primary color (hex code)
  • size - Widget size
  • enabled - 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-mail
  • contact_email, user_email

The extracted email is displayed in the WordPress dashboard and can be clicked to open the email client.

Submission Statuses
New

Unread submissions

Read

Viewed submissions

Replied

Responded to

Archived

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
  1. Navigate to Widgets → Select your widget
  2. Click on a widget instance
  3. Use the toggle switch in the "Instance Control" card (right sidebar)
  4. Or use the small toggle next to the status badge
  5. 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
  1. Go to Applications → Create New System
  2. Enter a descriptive name (e.g., "Customer Management System")
  3. Optionally link to a widget instance
  4. Add description and icon (optional)
  5. Click "Create System"
Step 2: Define Data Models
  1. Click "Add Data Model"
  2. Define model name (e.g., "Lead", "Customer")
  3. Add fields with types and labels
  4. Define relationships to other models
  5. Save the data model
Step 3: Create Modules
  1. Click "Add Module"
  2. Choose module type (List, Kanban, Form, etc.)
  3. Select which data model to use
  4. Set display order and icon
  5. Configure module-specific settings
Step 4: Generate Plugin
  1. Click "Generate Plugin"
  2. Enter plugin details (name, version, author)
  3. Download the ZIP file
  4. Install on WordPress sites
  5. 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
  1. Go to your Widget or Application page
  2. Click on a plugin version
  3. Click "Manage Installations" button
  4. View all customer sites with installations
  5. Use "Disable Plugin" to stop functionality globally
  6. Use "Enable Plugin" to restore functionality
  7. 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
Wix

Drag-and-drop builder

Squarespace

Design-focused builder

Webflow

Visual designer tool

Weebly

Simple site builder

GoDaddy

Website Builder

Duda

Business builder

Jimdo

Beginner-friendly

Framer

Visual builder

E-Commerce Platforms
Shopify

Online stores

BigCommerce

Enterprise ecommerce

Shift4Shop

Ecommerce-focused

Other Platforms
Webnode

Multilingual support

Ghost

Publishing platform

HubSpot CMS

Marketing CMS

& More...

Any platform with code injection

How It Works
1
Create Widget

Create your widget and widget instance as usual

2
Generate Code

Go to Embed Codes and generate the JavaScript snippet

3
Select Platform

Choose target platform for step-by-step instructions

4
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
  1. Register/Login to your account
  2. Go to Widgets → Create New Widget
  3. Fill out the form with your widget information
  4. Create a widget instance
  5. Add authorized sites
  6. Generate and download your plugin