DoubleScale changelog

== Changelog ==


= 1.5.0 = 5 Oct 2026
**New**

- Helpdesk inbox overview: All, Open, Pending, Resolved and Closed cards that filter the ticket list in one click
- Helpdesk: an actions menu on every ticket (view, mark as resolved, close, reopen, delete)
- Helpdesk staff (Support Manager and Support Agent) choose their own helpdesk notifications in Settings
- Automation Manager and Automation Agent roles: agents build and manage their own workflows, managers see them all
- Automation staff choose their own automation alerts
- Automation goals: a contact who reaches a goal jumps ahead, and an unmet goal can wait, continue or end the run, with the journey showing why
- New "Email Opened" automation trigger (DoubleScale Pro): start a workflow when a contact opens an email, for every email or only chosen campaigns
- A link click in an email whose images were blocked now counts as an open for automations, notifications and lead scoring
- toSend and Emailit email providers in SMTP
- "Watch Tutorial" buttons open the video tutorials for Email Marketing, Sales Pipeline, Proposals & Invoices, Automations and Helpdesk
- Middle-click and Ctrl/Cmd+click open admin pages and list entries in a new tab
- Invoices: service date or period of supply, buyer reference, and the § 19 / reverse-charge note for untaxed lines
- Invoices: hooks for DoubleScale Pro's XRechnung e-invoice export, a warning when an invoice changed after its XRechnung was issued, and add-ons can attach files to the invoice email
- Campaigns: unsubscribe reasons and contact links in the overview, and the open tab is kept in the address
- Campaigns: open a contact's profile from the Unsubscribes list
- WhatsApp campaign analytics show one Total Recipients card
- Contacts: hover "+N" to see the tags and lists it hides
- Refreshed booking editor layout and icons
- Team management now says "Team Member" and explains what each member can do

**Fixes and improvements**

- Campaigns: merge tags (unsubscribe link, first name, open tracking) are converted for the mailer the From address actually sends through, and the batch size follows that mailer
- Campaigns: scheduled campaigns show their send time in the lists
- Campaigns: the SMS and WhatsApp phone preview shows the real message
- Campaigns: paused and cancelled campaigns open on their overview
- Campaigns: the Unsubscribes list shows the real reason and the WhatsApp number
- Campaigns: duration is reported in whole seconds (no PHP 8.1 deprecation notice)
- Helpdesk: reports count agent replies, not every message activity
- Helpdesk: the ticket stays on screen while it saves, and status, priority and tag changes show at once
- Helpdesk: ticket history reads as plain sentences with the agents' names
- Helpdesk: a single support mailbox, with no mailbox choices to make
- Client portal: customers see their real ticket history, and a ticket shows as Open again right after they reply
- Helpdesk: the agent reply email no longer assumes the agent's gender
- Automations: a phone number shared by two contacts never blocks a run or takes over the other contact
- Automations: WooCommerce order workflows (DoubleScale Pro) save the buyer's phone number on the contact, and their WhatsApp number with the country code
- Automations: a step panel closed while saving stays closed, condition rules line up, and the trigger list names "Lists Applied" instead of its slug
- Automations: delay lengths read naturally in the journey
- Automations: the Zapier action is removed; the HTTP Request action covers it
- Contacts: long tag and list chips no longer overflow the contacts table
- Contacts: the unsubscribe preference form answers exactly once
- Email: a saved copy of the default footer still counts as the default, and an email's own unsubscribe link takes precedence over it
- Email: buttons keep their styling across email clients
- Documents: the admin preview, client portal and public pages show the company block exactly as the PDF prints it
- Documents: the PDF, XRechnung and View buttons fit on the document card
- Errors from invoice and proposal list actions now scroll into view instead of appearing off-screen
- Booking: a missing booking answers "not found", and the bookings list always shows the latest filter's results
- SMTP: saving a toSend connection checks that its From domain is verified
- SMTP: email subjects keep characters such as < > and %
- Tables keep their rows in place when a page rebuilds its columns
- The sales email template editor loads only for people who may edit it

= 1.4.6 = 27 Sep 2026
- Rename a campaign at any status from the campaign list or the campaign overview
- Show the total contact count while searching
- Keep campaign delivery and read rates in sync with the per-status counts
- Name the missing email, phone, or WhatsApp address in the skipped-recipients banner
- Cap the campaign recipients list so Next Step stays reachable
- Fix contact filters so "Is empty" and "Is not empty" match the right people
- Apply WhatsApp recipient cooldown on campaign resends
- Keep a delivered Send Email, SMS, or WhatsApp automation step from failing the run

= 1.4.5 = 27 Sep 2026
- Update the product overview YouTube video

= 1.4.4 = 27 Sep 2026
- Show the product overview video on Get Started
- Stop WhatsApp resends from hitting Meta's per-user marketing cap
- Keep the booking event screen from going blank when limits were never saved

= 1.4.3 = 25 Sep 2026
- Fix an issue with Meta daily limits

= 1.4.2 = 24 Sep 2026
- Collect named WhatsApp template variables in the campaign step
- Stop campaigns from pausing on Meta messaging-tier quotas
- Still block WhatsApp sends when the Meta account itself is restricted
- Prevent deleting or renaming email templates that a campaign still uses
- Improve campaign message lists and bulk actions
- Keep debug logs working when a message contains malformed UTF-8

= 1.4.1 = 23 Sep 2026
- Add WhatsApp campaigns with Meta template matching, header media, carousel cards, and button variables
- Show how many WhatsApp recipients are reachable before send
- Cancel a scheduled campaign
- Recover stranded campaign messages and keep campaign analytics in sync
- Add merge-tag fallbacks when a field is empty
- Show a created date on SMTP connections (including older connections)
- Always log DoubleScale emails, including automations, by tracking reference instead of the HTML body
- Submit sales documents for approval
- Improve booking iframe embedding, confirmation layout, and mobile layout
- Keep queued task callbacks working when Action Scheduler unwraps their arguments
- Distinguish a disabled module from a failed request in admin fetches

= 1.4.0 = 21 Sep 2026
- Always log campaign and automation emails as a tracking reference instead of a copy of the HTML per recipient
- Send individual emails as conversation messages, without the campaign card or “Sent from” footer
- Do not append a second unsubscribe footer when the message already has one
- Isolate the support portal in a Shadow DOM so theme CSS cannot restyle it
- Route SMTP by matching the From address before falling back to other connections
- Keep typing in paginated selects while options are still loading
- Ignore stale WhatsApp failure webhooks after the message has already been delivered
- Apply the per-second send cap to automation emails
- Run consecutive cheap automation steps in one go instead of queueing each one
- Size the Action Scheduler runner for queue-heavy modules
- Keep editor selection working inside Shadow DOM contenteditable fields
- Show CSV in uppercase on the contact import wizard

= 1.3.32 = 18 Sep 2026
- Add a global email opt-out for subscriptions
- Hide analytics reports when their related modules are turned off
- Mark campaigns that sent to nobody as failed, with the real reason
- Record why a campaign message failed on the message itself
- Report the audience a campaign was sent to, not today's list
- Clean up scheduled tasks when a campaign is deleted
- Cache WhatsApp template fetches instead of hitting Meta on every request
- Keep list/tag filters targeting their own list when no mode is set
- Add a Projects tab on contact and deal records
- Let booking hosts leave remote calendars without picking a default
- Show remote calendars as a full-screen panel
- Match proposal and invoice PDFs to the chosen templates
- Revoke credit-note applications when a payment is deleted
- Keep advanced filter edits in draft until applied
- Return to the contacts list after leaving a contact
- Improve sales document navigation, notices, and submission feedback
- Detect the delimiter when importing contacts from CSV
- Keep campaign recipient OR groups intact when loading the audience
- Show applied filters as removable chips on contact and other tables

= 1.3.31 = 14 Sep 2026
- Call out newsletter, email marketing, SMS marketing, and WhatsApp marketing as separate channels in the description
- Resend failed campaign messages from campaign analytics
- Improve campaign recipient filters and the campaign review step
- Keep contact filters and contact-scoped automation rules working when the Automations module is off
- Auto-save templates without changing their visibility
- Improve automation failure handling, action results, and process recording
- Show progress for bulk contact actions
- Improve sales view navigation and filters
- Fix media modal stacking in the editor

= 1.3.30 = 12 Sep 2026
- Preserve campaign sender settings and reusable templates when applying an email template
- Keep failed-email retry actions visible across campaign analytics pages
- Show historical campaign emails safely when their contact is no longer available
- Schedule relative automation delays from the current elapsed time
- Apply bulk contact actions to every contact matching the active filters
- Sort contact tags and lists alphabetically and preserve Arabic text during CSV imports
- Improve client portal style isolation and responsive layouts

= 1.3.29 = 11 Sep 2026
- Skip default email footer when body already contains an unsubscribe link

= 1.3.28 = 10 Sep 2026
- Allow CSV contact import without an email column
- Keep large CSV imports from dying mid-file
- Repair table columns that migrations marked as applied but never added
- Stop invoice creation from fataling when a column is missing
- Auto-create WordPress pages for DoubleScale shortcodes
- Improve booking host availability when resolving calendars
- Keep the return path when navigating away from an automation
- Improve how custom field values show on the contact info card

= 1.3.27 = 9 Sep 2026
- Rename the plugin to All-in-One CRM with multi-channel marketing in the title
- Show every supported form type even when the builder plugin is inactive
- Add a Mobile app tab on Discover Pro, for Plus and Enterprise plans only
- List Stripe, PayPal, Square, Mollie, Razorpay, and Authorize.Net on Discover Pro integrations
- Update SMTP mailer documentation links

= 1.3.26 = 9 Sep 2026
- Detect WPForms Lite (`wpforms-lite/wpforms.php`) on the Forms type picker, not only WPForms Pro
- Sync missing table columns from the current CREATE definitions so upgrades do not depend on chained ALTER migrations
- Include proposal terms, sections, signatures, and related sales columns on the base tables
- Return a proper error when a proposal cannot be saved instead of a fatal
- Add Google/Outlook remote calendars for booking, including a loading state and clearer connection errors
- Isolate booking data per multisite blog and provision host calendars on each site
- Show Connect to remote calendars for network super admins on subsites
- Stop deleting a contact from leaving orphaned bookings
- Add a booking shortcode for embedding scheduling on the front end
- Add contact merge with conflict resolution, and offer the existing contact when creating a duplicate
- Email a configured address after an automatic contact merge
- Support WhatsApp template headers, buttons, and interactive sub-types
- Improve long text in admin tables and shared fetch-generation state in the UI
- Fix Action Scheduler heartbeat updates when the task meta row is missing

= 1.3.25 = 5 Sep 2026
- Add a Coming Soon section on Discover Pro for Membership, LMS, and Community modules
- Fix MCP task-type schema so clients keep the task tools (enum of stored keys, not labels)
- Detect WPForms Lite correctly when registering form automation triggers
- Log a warning when form field mapping produces no email so skipped contacts are easier to diagnose
- Standardize casing in the translation template

= 1.3.24 = 3 Sep 2026
- Move invoices and payments out of Discover Pro; subscriptions are no longer listed as a Pro feature
- Prevent double registration of recurring sales and support cleanup tasks
- Keep sidebar submenus collapsed when the user closes them
- Hide the extra Pro notice on shared mailbox settings

= 1.3.23 = 3 Sep 2026
- Add link settings in the email builder
- Support live builder JSON in the email builder
- Add link-related translation strings

= 1.3.22 = 31 Aug 2026
- Add EmailNotOpened trigger for automation workflows
- Enhance sticky note functionality with resizing capabilities in automation builder
- Enhance drag-and-drop functionality for saved blocks and sections
- Improve date filtering with DateWithin utility
- Add "Save & Exit" functionality in email campaign builder
- Enhance link styling in email text blocks for better rendering
- Improve notice handling in WorkflowSidebar component
- Update React Flow styles for better UI consistency
- Implement online payment availability check for Pro users
- Refactor EmailNotOpened trigger source and group properties
- Fix: Remove 'My Blocks' entry and add 'My Sections' in translation file
- Fix: Update title in LayoutItems component for clarity
- Fix: Standardize message casing in localization files
- Enhance error handling and localization messages across components

= 1.3.21 = 26 Aug 2026
- Render the client portal shortcode on the page instead of replacing the whole canvas, and isolate layout from the host theme
- Escape email image sources with esc_attr so merge tags and data URIs survive rendering

= 1.3.20 = 26 Aug 2026
- Keep email text-block list alignment in line with the block setting (strip leftover inline text-align on lists)
- Resolve {{ASSETS_URL}} and image sources when rendering emails so plugin assets load in sent mail

= 1.3.19 = 26 Aug 2026
- Revamp the client portal: document status filters, projects Kanban, helpdesk inbox, dashboard calendar, and mobile tab navigation
- Group outstanding portal balances by currency instead of mixing amounts
- Use only the email text-block color and font size (strip leftover inline styles)
- Add Zapier integration setup instructions
- Embed contract, invoice, and proposal views inside the portal

= 1.3.18 = 26 Aug 2026
- Fix IMAP inbox polling crash on PHP 8.1+ hosts that have the IMAP PHP extension installed

= 1.3.17 = 26 Aug 2026
- Stop blocking IMAP mailbox save on SMTP ports (587/465/25) so the port you enter is stored as-is
- Keep IMAP SINCE search fallback when a server returns no results for date-filtered unseen mail

= 1.3.16 = 26 Aug 2026
- Reject SMTP sending ports (587/465/25) in IMAP mailbox settings and recover when IMAP SINCE searches return empty
- Always offer Custom IMAP for the shared inbox, even when Gmail or Outlook is used for sending
- Add WhatsApp automatic keyword unsubscribe (STOP-style opt-out)
- Restrict contact deletion by role so Sales Reps cannot delete contacts
- Track campaign contact eligibility by channel (email, SMS, WhatsApp)
- Improve sales line-item product selection, email builder overlays, and automation canvas clicks

= 1.3.15 = 24 Aug 2026
- Ship a committed SMTP includes classmap so mailer classes load on WordPress.org / Linux installs without root vendor/

= 1.3.14 = 24 Aug 2026
- Fix SMTP provider autoloading on case-sensitive hosts (SendLayer and other mailers fatal when root Composer vendor is absent)

= 1.3.13 = 24 Aug 2026
- Allow alphanumeric zip / postal codes (string up to 150 characters) on contacts and automation field updates
- Fix SureCart integration namespace casing so product rules and contact purchase history load correctly
- Clean up contact and sales schema migrations (rename contact migration classes; remove unused SalesTagIdsColumn migration)
- Update translation catalog

= 1.3.12 = 24 Aug 2026
- Update Extensions catalog: ship White Labeling icon, resolve addon images from free assets, and hide unreleased AI Assistant / Subscriptions cards
- Fix Zapier add-on plugin path resolution across folder naming conventions
- Refresh plugin title and short description branding

= 1.3.11 = 24 Aug 2026
- Ship Integrations catalog icon assets with the WordPress.org package (Slack, Stripe, PayPal, Twilio, Square, Mollie, Razorpay, Authorize.Net, Meta WhatsApp, Zapier)
- Keep typeform/jotform icons included as before

= 1.3.10 = 24 Aug 2026
- Fix schema indexes for utf8mb4 hosts with the 1000-byte key length limit (migrations tracker, task_meta, contacts phone/WhatsApp uniques, and related tables)
- Log failed table creation after dbDelta instead of failing silently
- Skip task_meta scheduling when the table is missing to avoid flooding error logs on broken installs
- Update translation catalogs and improve string handling
- Improve Integrations card layout and Slack integration instructions/icons

= 1.3.9 = 20 Aug 2026
- Fix WordPress.org release packaging for the 1.3.8 tag (remove accidental nested trunk directory)

= 1.3.8 = 20 Aug 2026
- Add multi-currency support for sales documents, including Egyptian Pound (EGP) and settled-value locking on proposals/invoices
- Add payment gateway integrations: Square, Mollie, Razorpay, and Authorize.Net (alongside existing gateways)
- Split the Integrations catalog into Payments, Messaging, Forms, and Automation tabs
- Expand MCP / Abilities: bulk contact and activity writes with dry-run validation, richer tools, and stronger API key permissions
- Add Link Trigger controls in the rich text editor and toolbar for automation-ready tracked links
- Improve invoice and proposal status management
- Improve automation workflow interactions, condition settings, and email builder / automation editor dialogs
- Improve test-email click/open tracking
- Polish settings and notification preferences layout, icons, and shared UI components

= 1.3.7 = 17 Aug 2026
- Ship a complete Brazilian Portuguese (pt_BR) translation catalog for the free plugin
- Rebuild script translation JSON when Loco saves a catalog so React admin strings update without a manual make-json
- Improve internationalization coverage across admin UI components
- Resolve merge tags correctly when rendering invoice/proposal PDFs and print output
- Improve sales dialogs and dropdown menus (focus/outside-click handling, InfiniteScrollSelect accessibility)
- Improve lead scoring layout/RTL direction handling and advanced-filter clear action
- Polish react-select menus in contact field mapping and rule-builder connectors

= 1.3.6 = 15 Aug 2026
- Add built-in MCP server so AI clients (Claude, Cursor, and compatible tools) can operate DoubleScale via API keys
- Add MCP settings: enable/disable endpoint, issue keys for eligible users, Application Password auth, Windows setup, and emailable connection instructions
- Expand WordPress Abilities API tools across contacts, documents, marketing, booking, and forms, with module/role gates and input validation on writes
- Improve inactive-module tool errors and MCP tool-name mapping for external clients
- Add bulk email click tracking and fix click-redirect URL sanitization (preserve percent-encoded destinations)
- Open duplicated invoices/proposals in the edit dialog instead of navigating away
- UI polish: select menu overlays/z-index, react-select focus styles, calendar button spacing, and shared alert icons

= 1.3.5 = 12 Aug 2026
- Add company fields to contacts: Company Name, Company Registration Number, and Tax / VAT Number
- Improve contact information and dialog UI consistency (shared icons and CustomDialogHeader)
- Improve dialog layout and z-index stacking across automation, booking, and contact screens

= 1.3.4 = 11 Aug 2026
- Add email preview for automation steps so you can review builder content before sending
- Add file attachments in the Email Builder (lead magnets) with clearer validation and error feedback
- Improve merge-tag resolution reliability in outbound emails
- Show the Link Trigger selector on Link Trigger Clicked automations
- Add WooCommerce “Orders Purchased From Brands” automation rule
- Add content sections and terms fields for invoices and proposals
- Add invoice recurrence support (links to Pro Recurring Invoices)
- Enhance WhatsApp automation messaging UX (free-form steps, trigger switch confirmations)
- Fix dialog/alert centering and z-index stacking, including RTL-friendly layout
- Fix Switch thumb travel in RTL layouts
- UI polish: export modal checkboxes and admin content overflow handling

= 1.3.3 = 09 Aug 2026
- Fix Link Trigger tag/list updates on click for bulk and curl-multi campaign emails by injecting per-recipient track-id into tracked links
- Ensure bulk/curl-multi recipient variables include hash_key, open-tracking pixel, and unsubscribe URL
- Add Send Test Email for automation email actions so you can preview content before saving
- Add Product Catalog module (Pro) for reusable products/services on invoices, proposals, and credit notes
- Reorganize automation trigger/action categories (Email, Messaging, Booking, Projects) with clearer icons and grouping
- Standardize SMS labeling and prune empty automation source categories for a cleaner picker
- Revamp document Template Gallery and Style Editor layout, including a clearer color picker
- Improve elevated invoice/proposal dialogs and nested select menus (z-index / overflow)
- Show Advanced Filters in Free as a discoverable disabled control (Pro-gated)
- UI polish: shared icons, DatePicker chrome, modal button styles, and support inbox empty states

= 1.3.2 = 04 Aug 2026
- Add Projects automation triggers and actions (create/update/complete projects, owner/status/custom field changes, comments, due/overdue, and deal conversion)
- Improve automation trigger/action picker: prune inactive integrations, clearer source categories (modules/messaging/webhooks), and better grouping UI
- Bump automations manifest cache key so project automation stubs load cleanly
- Rebuild support inbox with a DataTable for ticket management; polish mailboxes UI and Pro feature indicators
- Improve support email notification HTML formatting
- Show proposal totals (total/accepted/open) on the contact Sales tab
- Fix invoice and proposal dialogs appearing under fullscreen shells (elevated z-index)
- Improve Integrations catalog icons and visibility handling; remove unused Evolution API integration stubs

= 1.3.1 = 03 Aug 2026
- Add automation enrollment history endpoint and show prior-enrollment hints when running a workflow manually
- Rename automation “Run test” to “Run manually” for clearer UX
- Add a dedicated Import Workflows modal for automation management
- Add new project/status icons and refine checkbox styling
- Small UI polish for page tabs, activity timeline filters, and progress styling

= 1.3.0 = 02 Aug 2026
- Hide Pro-only tabs, pages, and actions entirely in the free version instead of showing locked cards or upgrade prompts (automations, booking, helpdesk, sales, mailbox, integrations, extensions, dashboard, and more)
- Add a new "Discover Pro" page cataloging every Pro feature by category, with links to the live demo and pricing
- Add automation test run: preview a workflow without enrolling real contacts
- Add sticky canvas notes on the automation workflow builder
- Add bulk export and import for automations/workflows
- Improve bulk import error handling and UI feedback for automations
- Add server-side sorting for contacts, lists, tags, forms, campaigns, and automations
- Add per-user CRM landing path and improved role-aware navigation after login
- Enhance user role management and capability checks in the admin shell
- Add email tracking track-id support for more reliable open/click attribution
- Add text direction (LTR/RTL) support in the email builder TextBlock
- Add Send Test Email popover in the email builder
- Improve localization and translation handling across admin components

= 1.2.19 = 31 Jul 2026
- Add timezone configuration for more accurate date/time handling
- Add duplicate and status-update actions for invoices and proposals
- Add Save as Draft when sending invoices/proposals
- Add copy public link for proposals
- Add hex color input in document template style editor
- Validate manual document numbers for proposals and invoices
- Improve localization/translation loading across admin UI components
- Restore plugin title branding (Alternative to HubSpot & GoHighLevel)

= 1.2.18 = 29 Jul 2026
- Add task automation triggers and actions
- Improve Automations UI with tabbed action categories, clearer trigger groups (including e-commerce and Pro form vendors), and better empty-group handling
- Add settings-only integration handling in the Integrations UI
- Add Zapier integration support assets
- Fix CSV importer mapping so mapped fields are not dropped
- Improve custom fields: scope filtering and always persist the required state
- Add company and legal identification fields to contacts and documents
- Add custom contact avatars and improve contact field filtering in the UI
- Add Contacts Analytics to the navbar
- Add calendar week-start setting and improve calendar event handling/UI
- Improve proposals/invoices tax display order and document preview scaling
- Add mobile device REST endpoints and notification preference updates
- Add role descriptions in the team manager modal and refine project role capabilities
- Improve white-label visibility controls and admin menu icon handling
- Rename Support references to Helpdesk in navigation/UI where applicable
- Add Arabic text processing support (ar-php)
- Update plugin title/description branding and Tested up to WordPress 7.0.2

= 1.2.17 = 27 Jul 2026
- Ship form-provider logos (form-types, Typeform, Jotform) in the WordPress.org package so Automations and Integrations icons load correctly
- Load Typeform/Jotform logos from the free plugin assets instead of requiring Pro asset paths
- Update plugin title/description branding and Tested up to WordPress 7.0.2

= 1.2.16 = 26 Jul 2026
- Harden Settings access for CRM Manager + Sales Rep multi-role users: compute the limited-settings gate on the server and treat manage_options / CRM Manager role membership as full access
- Fix notification retention controls incorrectly treating CRM Managers who also hold Sales Rep as sales-only

= 1.2.15 = 26 Jul 2026
- Fix Settings page restricting CRM Managers / admins to Mailbox and Notifications when they also have the Sales Rep capability — prefer the higher role
- Keep full notification settings available for CRM Managers who also hold Sales roles
- Update contact details Proposals and Invoices tabs to use the same brand icons as the Proposals and Invoices pages
- Split the contact Sales tab into separate Proposals and Invoices tabs for clearer navigation

= 1.2.14 = 22 Jul 2026
- Fix SQL errors when disabled modules (Projects, Booking, Deals, Support, Documents, Tasks) have no database tables yet — skip those queries instead of failing
- Harden module storage readiness checks (escape table-name LIKE wildcards; never surface raw missing-table SQL in the contact deletion impact UI)
- Guard dashboard aggregates, portal counts, and contact-delete cascades so missing module tables return empty results safely
- Performance: replace heavy SendGrid, Brevo, and Postmark Composer SDKs with thin HTTP clients to shrink the plugin package and autoload classmap
- Performance: enable webpack code-splitting so admin SPA routes load as async chunks
- Performance: skip heavy admin config localization on non-DoubleScale wp-admin screens
- Performance: version-stamp schema readiness, capability sync, and Action Scheduler schedule checks to avoid repeated per-request probes
- Performance: lazy-load the validator factory and remove the artificial 1.5s delay before the admin SPA mounts
- Streamline contact deletion impact calculation with centralized module readiness helpers
- Add deep-link filters for the Contacts page
- Improve abandoned cart tracking settings and CRM contact sync
- Fix sales invoice payments migration file naming so it runs in the correct order

= 1.2.13 = 22 Jul 2026
- Rename plugin title to DoubleScale | Self-Hosted CRM & Business Platform (Alternative to HubSpot & GoHighLevel)
- Document modular architecture: enable or disable optional modules from Settings → Modules
- Document Projects module (Pro) with kanban boards, discussions, and Project Manager / Project Member roles
- Clarify that module menus, APIs, background tasks, and role capabilities suspend when a module is disabled
- Add FAQ for enabling and disabling modules
- Rename sales invoice/proposal migrations so they run after base tables are created
- Improve merge tag group registration and filtering in automations
- Resolve deal currency from the stored deal value
- Add storable task status helpers for REST mappings
- Add analytics pages in the dashboard navigation

= 1.2.12 = 21 Jul 2026
- Fix missing `is_public` column on `doublescale_terms` after upgrade or fresh install
- Ensure Terms table schema includes `is_public` and repair it on every install when absent
- Rename Terms public-column migration so it runs after TermsTable is created

= 1.2.11 = 21 Jul 2026
- Rename plugin title to DoubleScale | All-In-One Self-Hosted CRM Platform (HubSpot alternative)
- Add project management features with roles, permissions, dashboard integration, and notification preferences
- Add contact file attachments with activity logging
- Enhance proposal and invoice editing, activity associations, currency resolution, and PDF document rendering
- Add business branding configuration with logo upload
- Enhance contact deletion with impact assessment and confirmation
- Improve activity timeline filters and taxonomy/schema management
- Temporarily disable Client Portal module for adjustments

= 1.2.10 = 12 Jul 2026
- Add JavaScript translation support (JED JSON files) so React dashboard fully translates via Loco Translate / .po files
- Add `make-json` build step for generating JS translation JSON from .po files
- Add dashboard alert for admins and CRM managers when SMTP module is enabled but no connections are configured
- Add translation template (.pot) generation tooling improvements for PHP 7.4 compatibility

= 1.2.9 = 09 Jul 2026
- Fix Action Scheduler queue monopolization that prevented other plugins (e.g. UpdraftPlus) from scheduling and running background tasks
- Fix incorrect `action_scheduler/cleanup_batch_size` filter hook name (was a no-op, now correctly uses `action_scheduler_cleanup_batch_size`)
- Cap Action Scheduler queue runner time limit to 15 seconds to share execution time with other plugins
- Change scheduled action priority from 0 to default (10) so DoubleScale tasks no longer preempt all other plugins in the queue
- Add missing Action Scheduler groups (booking, push, SMTP) to deactivation cleanup
- Remove global orphaned-claims DELETE that could interfere with other plugins' claim lifecycle
- Add time guard to automated campaign event drain worker to prevent unbounded execution
- Remove blocking sleep calls from OAuth token refresh and SMTP sync to avoid delaying the queue
- Sync Pro cleanup logic with improved emergency-mode thresholds and orphaned-group purging

= 1.2.8 = 07 Jul 2026
- Add SMTP Bounce Handler tab and restore bounce webhook configuration UI on the Connections page
- Improve SMTP navigation and bounce handling visibility
- Fix mailbox SMTP settings link routing
- Revamp sales settings and contract types management UI
- Add sales pipeline and view mode list preferences for contacts, tags, and lists
- Introduce task entity type and enhance contact activity management
- Improve sales rep activity permissions and activity association handling
- Enhance payment filtering and payment list UI components
- Fix overdue invoice total display in the Invoices list
- Enhance contract, invoice, and proposal document dialogs with updated icons and layout
- Add invoice form dialog and improve invoice management workflow
- Add automation step drag-and-drop reordering in the workflow builder
- Enhance automation analytics and reporting dashboards
- Add saved blocks for reusable email builder sections
- Add Jotform and Typeform form submission automation triggers and integration setup guides
- Add PayPal and Typeform entries to the integrations catalog
- Add WhatsApp phone field on contact records
- Improve contact list columns, tooltips, and localization
- Improve Action Scheduler task cleanup on plugin activation and deactivation
- Move comparison page links into the plugin description for better WordPress.org discoverability
- Add translation-ready language files in `languages/` for Loco Translate, WPML, and other translation plugins

= 1.2.7 = 30 Jun 2026
- Add sales document approval workflow with discount validation for proposals, contracts, and invoices
- Add sales rep permissions and read-only payment handling
- Add per-user list preferences for contacts, tags, and lists views
- Add optional email and phone support for contacts with unique phone and WhatsApp number enforcement
- Add Phone-as-WhatsApp setting for contact management
- Add WooCommerce order integration and revenue tracking on contact profiles
- Add WooCommerce customer import WhatsApp phone mapping
- Add EDD order status constants and improved revenue queries
- Add CRM contact creation option for abandoned cart recovery
- Add subscription management enhancements with public list visibility and list status
- Add ContactSubscribed goal and trigger improvements with subscription type handling
- Add automation trigger documentation callouts and featured trigger status
- Add booking access permission improvements and user role checks
- Add WhatsApp opt-out and resubscription keyword settings with enhanced unsubscribe messaging
- Improve webhook processing and result normalization
- Improve Checkbox and Radio custom field validation and sanitization
- Improve contact list column visibility, status display, and bulk list/tag modals
- Improve input, dialog, and email settings UI with focus management and consistent styling
- Improve WordPress.org readme with integration and comparison page links

= 1.2.6 = 24 Jun 2026
- Add PayPal payment gateway support for online invoice payments
- Improve Outlook SMTP connections with Microsoft Graph for inbound email retrieval
- Add email attachment handling and display in contact email activity
- Allow editing logged email activity from the contact timeline
- Improve phone number handling across contact management and import
- Revamp customer support portal ticket list and detail views
- Add ticket detail modal to the admin support inbox with CC recipient improvements
- Add contacts list column visibility preferences
- Add automation workflow duplication and step duplicate actions (Pro)
- Add automation workflow import and export (Pro)
- Add Contact Information Updated trigger and Update Contact Fields automation action
- Add User Billing Phone merge tag and new invoice/proposal/credit note notification merge tags
- Add credit note triggers and rules to sales automations
- Improve custom field validation and normalization
- Update GDPR messaging and customer notifications in abandoned cart settings
- Improve dashboard redirects and module-aware navigation for user roles
- Add ScrollableMenuList for long dropdown menus across the admin UI

= 1.2.5 = 23 Jun 2026
- Fix sent email text block styling so color, font size, and font family match the email builder preview
- Add phone number field mapping for customer import
- Redesign support inbox with filter dialog, improved bulk actions, and refreshed styling
- Improve booking event cards, date/time picker, and event action dialogs for mobile
- Enhance booking email notifications with safe HTML intros and merge tag support
- Add credit note merge tags and configurable email intro in Sales settings
- Improve booking ShareModal layout and responsiveness for embed and share links
- Update Card, StatusPill, and EmailNotification components for layout consistency
- Fix automation trigger paths for messaging components

= 1.2.4 = 22 Jun 2026
- Fix email builder text block font size so the canvas matches the Font Size field (remove heading multiplier scaling)
- Apply consistent default font sizes when switching text styles (H1, H2, H3, paragraph, small)

= 1.2.3 = 22 Jun 2026
- Fix booking calendar provisioning errors on multisite when the booking tables are not yet created
- Fix email builder text block heading sizes conflicting with the block font size

= 1.2.2 = 11 Jun 2026
- Fix email builder text blocks not appearing in the free version when adding or editing content on the canvas
- Add demo, website, and documentation links at the top of the plugin readme

= 1.2.1 = 19 Jun 2026
- Fix fatal error when updating the free plugin while an older DoubleScale Pro build is still active (legacy booking payment gateway compatibility)
- Show an admin notice when DoubleScale Pro needs updating to 1.1.0 or newer

= 1.2.0 = 19 Jun 2026
- New Sales workspace: proposals, invoices, contracts, credit notes, and subscription billing (Pro)
- Convert proposals to invoices, track payment history, and manage line items with tax settings
- Sales automations: contract triggers, document-ready module checks, and merge tags for proposals and invoices
- Unified attachment management across sales documents and support tickets
- Admin calendar aggregating bookings, sales, and cross-module events in one view
- Customer portal foundation: document access, payment history, subscriptions, and calendar (portal module temporarily disabled while final adjustments ship)
- Improved contact custom fields: validation, required-field handling, and deal custom fields in the pipeline
- Email builder: insert sections in the canvas, richer text block styling and color controls, RichTextEditor placeholders, and footer merge tag extraction
- Support: "View Ticket" button in notification emails and clearer agent attribution on customer ticket views
- Booking: UTC-safe meeting date-time storage and broad layout/responsiveness improvements across calendars and modals
- Meta WhatsApp: clearer account registration error handling
- Settings: improved encryption handling for stored credentials
- Pro feature gates for invoices, payments, and related sales surfaces
- Admin UI: DataTable configuration options, mobile responsiveness, and layout polish across campaigns, automations, booking, support, and sales screens

= 1.1.9 = 15 Jun 2026
- Fix Pro form integrations (Gravity Forms, Elementor, Ninja Forms, etc.) staying locked when DoubleScale Pro is active
- Fix Outlook OAuth scope for consumer Microsoft accounts so IMAP/SMTP connections are not rejected
- Fix email builder text blocks losing content when clicking columns or sections before typing
- Add module storage readiness checks for automation rules (completed/entered automation, lead score level) and sales merge tags so queries are skipped when a module or its database table is not ready
- Add mobile step progress indicator to the SMTP connection wizard
- Improve admin layout and responsiveness across contacts, forms, campaigns, SMTP, support, integrations, license, import/export, and debugging screens
- Refine PageHeader, HeaderBar, DataTableActions, DialogFooter, and dashboard card components for consistent spacing and accessibility
- Update Mailbox settings to use PageTabs for clearer channel management
- Improve Contact Analytics, Email Stats, and Support Reports layouts

= 1.1.8 = 13 Jun 2026
- Fix intermittent fatal error when activating the plugin
- Fix loading splash screen flashing unstyled content on first paint
- Fix contact import list and tag assignment
- Improve WordPress user import first and last name mapping

= 1.1.7 = 12 Jun 2026
- Fix custom fields type dropdown showing no options when adding fields
- Fix email builder font size input clamping while typing
- Prevent text block content loss when selecting columns or sections in the email builder

= 1.1.6 = 12 Jun 2026
- Remove Signature block from the email builder block registry
- Add autosave for text blocks in the email builder

= 1.1.5 = 11 Jun 2026
- Fix email builder font size input only accepting extreme values while typing
- Always show Generate With AI on the campaign templates step

= 1.1.4 = 11 Jun 2026
- Fix campaign setup step subject and preview text not saving after editing and returning to the step
- Rename Support to Helpdesk across modules and admin UI
- Refine Control Modules settings with module cards and clearer grouping
- Update booking Connect button styling to match secondary actions
- Improve template save handling for legacy API subject fields
- Re-enable AI Assistant in the extensions store

= 1.1.3 = 11 Jun 2026
- Auto-install and activate DoubleScale Pro after a valid license is activated
- Show Pro plugin install and active status on the license settings page
- Add Install & Activate and Activate fallback buttons when auto-install does not complete
- Fix license page action buttons that were permanently disabled

= 1.1.2 = 11 Jun 2026
- Add Booking Manager and Booking Agent roles with scoped permissions for dedicated booking staff
- Extend team management UI with booking role assignment and module-aware gating
- Improve user role system to support multiple concurrent roles with merged capabilities
- Scope booking settings access to users with booking management or CRM manager capabilities
- Allow Sales Manager and Sales Rep roles access to the dashboard
- Update brand color system to support white-label CSS variable overrides
- Fix white-label addon plugin file path resolution
- Remove Zapier and AI Assistant addons from store (not yet available)

= 1.1.1 = 10 Jun 2026
- Add Forms module to free plugin with 4 integrations: Contact Form 7, WPForms, Fluent Forms, and Quill Forms
- Add form type selector showing all 15 integrations with Pro badges and install-status hints
- Add horizontal notification preference categories with module icons
- Hide email channel for Booking notifications (uses its own email settings)
- Fix contact field mapping order (contact field on left, form field on right)
- Fix "Manage Custom Fields" button not redirecting to Settings → Custom Fields
- Sort form type cards by active/installed status first
- Update readme with detailed Forms and Automations integration lists

= 1.1.0 = 9 Jun 2026
* New: Support helpdesk module â€” ticket-based customer support with mailbox channels, IMAP email piping, customer portal, and agent inbox
* New: Ticket workflows with priority, status, tags, CC management, and bulk actions (assign, close, merge, tag)
* New: Mailbox management â€” multiple mailbox channels (web and IMAP), default mailbox selection, and ticket movement between mailboxes
* New: File attachments on support tickets with signed secure downloads and configurable size limits
* New: Ticket custom fields and guest access for unauthenticated customers
* New: Support reports dashboard for ticket volume and resolution metrics
* New: Email notifications with threading and subject tagging for ticket replies
* New: Support automation triggers â€” ticket created, ticket status changed â€” connect to the visual automation engine
* New: Dedicated support roles (Support Agent, Support Manager) with scoped permissions
* New: Saved replies and per-ticket activity logging
* New: Automation workflow versioning
* New: Module dependency checks and labels in automation builder
* New: Module status endpoints for mobile app integration
* Improvement: Booking host deduplication for team calendars
* Improvement: Team calendar member validation
* Improvement: IMAP client now counts recent unseen emails
* Improvement: Step insertion logic maintains end_automation order in workflows
* Improvement: Analytics menu and submenu items now visible in free version with Pro upgrade notices
* Improvement: WhatsApp tab visible in contact details with Pro feature notice
* Improvement: Export contacts gated as Pro feature
* Fix: Settings SMTP tab removed (already available as dedicated sidebar item)
* Fix: Mobile App settings tab hidden until feature is available
* Fix: ProtectedRoute and navigation gate respect alwaysRegister flag


= 1.0.2 = 3 Jun 2026
- Fix booking issue
- Fix assets issue
- Fix templates issue while creating a new campaign

= 1.0.0 =
* All-in-one launch — nine first-class modules in one plugin:
  * CRM with full activity timeline (emails, SMS, WhatsApp, deals, bookings, pageviews, form submits, automations — one chronological view)
  * Deals & pipelines (drag-and-drop kanban, weighted forecasting, multi-pipeline)
  * Email, SMS, and WhatsApp campaigns
  * Email sequences (drip campaigns) with delays, conditional branches, and goal-based exits
  * Booking (calendars, availability, embeddable pages)
  * Tasks (team task management linked to contacts and deals)
  * SMTP routing with 20+ providers and automatic failover
  * Unified inbox for email, SMS, and WhatsApp
  * Analytics, reports, and dashboards
* Visual automation engine with 11+ trigger types — including WhatsApp received, SMS received, deal stage changed, lead score crossed, link clicked — connecting every module
* 50+ integrations across WooCommerce, EDD, SureCart, LMS plugins (LearnDash, Tutor LMS, LifterLMS, LearnPress), membership plugins (MemberPress, Paid Memberships Pro), 15 form builders, 20+ SMTP providers, Twilio, Meta WhatsApp, Presto Player, Slack, HubSpot, Pipedrive, ActiveCampaign, GoHighLevel, and more
