Changelog

Everything shipped in ClosersHQ, in reverse chronological order. Updated with every release.

M35 Duplicate Detect & Merge + Retargeting
Sep 2026
  • Duplicate report + side-by-side merge screen (pick survivor, reassign history), reachable via "Duplicates"
  • Auto-retargeting: a duplicate on any ingest path (manual / Facebook / CSV) keeps the original, increments retargeted_count, sets last_retargeted_at, writes an "Enquired again from [source]" note
  • Amber β†ΊΓ—N badge + "Retargeted" quick-filter in the leads table
  • "Refer to Project" β€” admins cross-pitch a lead to another project in the org; copies the lead and logs a referral note on both
M32 Guided Onboarding & In-App Help
Sep 2026
  • Superadmin dashboard banner with setup-guide progress (links to org.onboarding, dismissible)
  • Staff dashboard getting-started strip with role-tailored steps (localStorage dismissible)
  • "What's New" dropdown in the nav for all roles
  • Deferred: interactive product tours, slide-over Help drawer, CMS knowledge base, public /guide, role-aware "get productive" tour, sample-data toggle
M30 Lead Form & Detail UX
Sep 2026
  • Campaign <select> from the project's campaigns table in admin + staff lead modals (was a free-text input)
  • Duplicate mobile hint on manual add β€” "Load existing lead"
  • source_meta panel on the lead showing unmapped Facebook form fields instead of dropping them
  • Deferred: compact inline-edit / floating-label detail redesign, bulk-edit + filter campaign dropdowns
M28 Pipeline Stages & Site Visits (absorbs M16)
Sep 2026
  • leads.stage enum: new / contacted / qualified / opportunity / visit / booked / lost β€” funnel position, distinct from interest (temperature)
  • site_visits table with its own lifecycle (proposed / confirmed / done / no_show / cancelled)
  • Kanban board β€” leads by stage, drag to move; toggle with the table
  • Calendar view (admin + staff) β€” scheduled visits + follow-ups
  • Delivers the old M16 (Calendar & Site Visit View) scope
  • Deferred: GPS check-in + OTP confirmation on a visit, opportunities table (budget / configuration / expected_close / value)
M27 Attribution & Source Intelligence
Sep 2026
  • MVP shipped: lead_source column on leads (manual / facebook / import / webhook), populated on every ingest path
  • Source filter on the leads table; source breakdown in the Source Analysis report
  • Deferred (M27-full): utm_* / gclid / fbclid columns, referrer + landing URL capture, 3-tier lead_sources master (main β†’ source β†’ sub), Attribution panel on lead detail (recs 6, 7)
M26 Structured Interaction Layer
Sep 2026
  • lead_activities table: lead_id, project_id, user_id, type (call/whatsapp/visit/note), outcome, notes
  • "Log Interaction" section in admin + staff lead modals replaces the plain-text note textarea β€” pick type, pick outcome, add notes
  • History feed on the lead shows typed activities + legacy comments merged, newest first
  • FOUNDATION for M18/M19/M20/M21 and the M28 visit flow
  • Deferred: follow_up_statuses / lead_reasons masters, lead_changes field-level audit, first-response SLA fields, call-disposition popup, comments backfill (recs 3, 5, 10)
M25 Billing Automation β€” Auto-Invoicing
Aug 2026
  • Invoice auto-created on every payment (one-time and recurring)
  • Invoice description: Plan Name + billing period (e.g. "For the period of 1 Aug to 31 Aug 2026")
  • Expiry date calculated from existing trial_ends_at if paying in advance (not from now())
  • period_from / period_to columns on invoices table for accurate period tracking
  • Recurring: period dates taken from Razorpay webhook current_start / current_end
  • Superadmin can view and print all their org invoices at /org/invoices
  • Invoice print view: branded PDF-ready layout with period dates in description
M24 Billing & Payment Gateway
Aug 2026
  • Razorpay integration β€” one-time orders + recurring subscriptions
  • Plan has razorpay_plan_id field; present = subscription, absent = one-time order
  • Superadmin subscription page: pay now cards, active subscription status, cancel button
  • HMAC signature verification for callback and webhook
  • Payment confirmation auto-updates org plan, plan_starts_at, trial_ends_at
  • Platform admin Razorpay settings page: mode toggle, payment history, subscriptions table
  • Webhook handler for subscription.activated / charged / halted / cancelled / completed
  • platform_settings DB table for Razorpay live/test mode toggle
  • Razorpay compliance pages: Refund, Cancellation, Delivery, Contact, Pricing
M23 Plan Upgrade / Downgrade (Self-Service)
Aug 2025
  • Superadmin requests plan change from Subscription page β€” select plan + optional reason
  • Only one pending request allowed at a time; cancel button available
  • Platform admin reviews all pending requests at Plan Changes page
  • Approve β†’ org.plan_id updated immediately, plan limits enforced instantly
  • Reject β†’ optional notes stored and sent to superadmin by email
  • Approval email to superadmin: plan name, price, "View Subscription" CTA
  • Rejection email to superadmin: reason/notes, support contact CTA
  • New request email to platform admin with org details and Review link
  • Plan change history shown on superadmin Subscription page (last 5)
  • Full history (last 50) in Platform Admin Plan Changes page
  • plan_warned_at reset on approval so expiry warning is not stale
M6 Facebook Lead Ads β€” Receive Leads
Aug 2025
  • Facebook Webhook verification (GET challenge response)
  • Receive lead payload from Meta Lead Ads forms
  • Per-project page / form mapping configuration
  • Field mapping: FB form field β†’ LMS lead field
  • Auto-assign on receive (round-robin if active)
  • Token storage and refresh per org
M16 Calendar & Site Visit View β€” delivered via M28
Sep 2026
  • Superseded β€” scope delivered as part of M28 (Pipeline Stages & Site Visits)
  • The calendar sits on the real site_visits object + lead_activities rather than a standalone feature
  • Shipped: calendar view of scheduled visits + follow-ups (admin + staff)
M14 Superadmin Onboarding Flow
Aug 2026
  • Step-by-step wizard: org profile β†’ project β†’ team member β†’ first lead β†’ integration
  • Progress tracker with percentage bar shown until all steps completed
  • Auto-detection of each step completion from live DB state (no manual marking)
  • Email invite system: superadmin invites team members by email with a signed token link
  • Invite acceptance page: pre-filled email, name + password form, 7-day expiry
  • Onboarding checklist widget on projects page until dismissed
  • "Dismiss" button stores completion; wizard page accessible at /org/onboarding
  • org_invites table: tracks all pending/accepted invites per org
  • HTML invite email with branded template sent via org-level SMTP
M13 Public Landing Page + CMS
Aug 2025
  • Public marketing page: hero, trust strip, problem, how-it-works, features, roadmap strip, pricing, FAQ, CTA
  • Landing Page CMS in Platform Admin β€” edit all content without touching code
  • All sections (hero, pricing cards, FAQ, CTAs etc.) fully editable with add/remove rows
  • Defaults pre-seeded β€” page works out of the box; CMS overrides on save
  • SEO meta tags (title, description) editable via CMS; OG tags supported
  • Pricing cards managed via CMS (tier, price, features list, style, badge)
  • Feature pillar chips stored as comma-separated strings in CMS
  • Reset to Defaults button in Platform Admin
  • Sidebar link added: Landing Page under Platform Admin nav
  • Roadmap strip, final CTA, trust strip β€” all CMS-controlled
M12 Email / SMTP Configuration
Aug 2025
  • smtp_configs DB table (global scope + per-org override)
  • Platform admin SMTP settings page with provider quick-reference table
  • Per-org SMTP override in org settings (white-labelling)
  • Test email button β€” sends to platform admin email, stamps tested_at
  • MailService: dynamic mailer from DB config with .env fallback
  • Welcome email sent on org creation (HTML template)
  • Trial expiry warning email sent once when grace period begins
  • plan_warned_at column tracks whether warning email was sent
  • Email / SMTP sidebar link in Platform Admin
M11 Free Forever Plan + Lead Limits
Aug 2025
  • max_leads column on plans (0 = unlimited)
  • is_default flag on plans β€” auto-assigned to new organisations
  • FreePlanSeeder: Free plan seeded (20 leads, 2 users, 1 project, β‚Ή0)
  • Lead creation blocked when org is at its plan lead limit
  • Organization model: leadCount() + isWithinLeadLimit() helpers
  • Subscription page: Leads / Users / Projects progress bars with "almost at limit" warning
  • "Free forever β€” no expiry" label for free plans
  • Plans index: Max Leads column + Default badge
M10 Platform Admin Improvements
Aug 2025
  • Platform admin view for all feature requests (update status inline)
  • plan_starts_at column on organizations (migration)
  • Invoice CRUD: create/edit/delete per org (auto-numbering INV-00001)
  • CheckPlanExpiry middleware: 3-day grace period banner, hard-block redirect
  • Expired plan page for superadmins (/plan-expired)
  • Platform sidebar: Feature Requests + Invoices nav links
M9 Lead Table Enhancements + Activity Log
Aug 2025
  • Per-page selector: 10 / 20 / 50 / 100 / 500 (session-persisted)
  • Interest filter uses org-defined groups (not hardcoded)
  • Bulk Edit modal: change interest, sub-status, campaign, follow-up date, assigned_to
  • Bulk Delete with confirmation
  • Org-wide activity log for superadmin (/org/activity)
  • Activity log nav link in superadmin dropdown
M8 Subscription & Feature Requests
May 2025
  • Subscription & Support page for superadmin
  • Current plan display with price and features
  • Usage progress bars (users / projects) colour-coded
  • Trial expiry date with humanised countdown
  • Feature request form: title, description, priority
  • Email notification to pratik@hotbubble.in on submission
  • Past requests list with priority + status badges
M7 User Security Guards
Apr 2025
  • Edit user profile (name, email, password optional)
  • Delete user with guards (cannot delete self or superadmin)
  • Org-level user list for superadmin
  • Project-level user list for admin
  • Activity log per project (admin β†’ users)
M5 Webhook / Landing Page Integration
Mar 2025
  • Public endpoint: POST /webhook/{token} (CSRF-exempt)
  • Token authentication β€” each project has a unique token
  • Regenerate token from project edit modal
  • Mobile validation (min 7 digits after stripping non-numeric)
  • Deduplication by mobile + project (update if exists)
  • Stores source_meta JSON (IP, received_at, source field)
  • Auto-assign if round robin is active
  • Hostinger deployment fix (dynamic vendor path)
M4 CSV Lead Import
Mar 2025
  • Import modal in lead datatable (per project)
  • Columns: mobile, name, email, campaign, interest, status, follow_up_date
  • Case-insensitive headers, flexible column order
  • Deduplication by mobile + project (update existing)
  • Created / Updated / Skipped counts + per-row error list
  • Sample CSV download
  • Auto-assign on import if round robin is active
M3 Assignment Engine
Feb 2025
  • Org-level assignment mode: Manual or Round Robin
  • Per-project override (inherit / manual / round robin)
  • Round-robin pointer persisted on project row
  • Auto-assign on lead create (webhook, import, manual)
  • Settings page for superadmin to change org mode
  • Assignment column in project list shows effective mode
M2 Org Lead Status Management
Feb 2025
  • Org-scoped interest groups (Hot, Warm, Cold, etc.)
  • Sub-statuses per group (Initial Call, Site Visit, etc.)
  • Rename group / sub-status inline (AJAX)
  • Add new sub-status per group
  • Delete sub-status
  • Status dropdown in lead form uses org's own config
  • Interest auto-derived from selected optgroup
M1b Role-Based Access Control
Jan 2025
  • 4-tier role hierarchy: platform_admin β†’ superadmin β†’ admin β†’ staff
  • Route middleware guards per role
  • Gate policies: create_lead, delete_lead, assign_leads
  • Org-scoped and project-scoped user isolation
  • Superadmin cannot be deleted/demoted by self
M1 Core Lead Management
Jan 2025
  • Manual add / edit / delete leads (project-scoped)
  • Bulk assign leads to staff member
  • Unassigned leads quick-filter
  • Interest + campaign + assignment filters
  • Staff view β€” sees only their own leads
  • Lead ID auto-generation (L00001…)
  • Inline comment / note on each lead
Ops Platform Admin Error Log Viewer
Aug 2025
  • error_logs DB table: captures all unhandled exceptions automatically
  • Stores: exception class, message, file:line, stack trace, request URL + method, user + org ID
  • Skips noise: 404s, auth redirects, validation errors
  • Platform Admin β†’ Error Logs: searchable/filterable list view
  • Detail view with full stack trace (dark monospace box)
  • Per-entry delete + Clear All action
  • Sidebar link with red tint for high visibility
Brand ClosersHQ Rebrand + Landing Page
Aug 2025
  • Product renamed from LakshBhed LMS β†’ ClosersHQ
  • New domain: closershq.in
  • Full landing page: hero, trust strip, problem, how-it-works, features, pricing, FAQ, CTA
  • Brand: Montserrat ExtraBold headings, Open Sans body, #0a1128 navy + #0EA472 teal-green
  • Dark/light mode with CSS design tokens throughout
  • Responsive layout (collapses at 860px)
  • Animated product mockup in hero section
  • ClosersHQ logo served as PNG via asset helper with Blade fallback
Infra CI/CD Auto-Deploy Pipeline
Aug 2025
  • GitHub Actions workflow: push to main β†’ auto-deploy to Hostinger
  • SSH key-based authentication (passphrase-less for automation)
  • Maintenance mode (artisan down/up) wraps every deploy
  • Auto-runs: composer install, migrate, config/route/view cache
  • Public assets synced to public_html on every deploy
  • Node.js 24-compatible action versions (no deprecation warnings)

More features on the way β€” see our plans or contact us.