Skip to content
KAMOUniverse

Changelog

What's new.

Every improvement to the platform, as it ships.

  1. · kamo-internal

    Full account view/manage page at /account/view/[id]

    New enterprise account detail page with 6 tabs: - Overview: 4 stat cards (orders, spent, leads, members), account info, contact info, address, recent orders/leads, notes preview - Leads: associated leads table with click-through to /leads/view/{id} - Orders: order history table with status chips, click-through to pipeline - Members: associated users with Master badge, set-master/remove actions - Notes: timeline-style notes with add form and customer-visible toggle - Documents: placeholder for future document management Account list page updated with new "Accounts" tab alongside the existing team member browser. Search, table with all account fields, click-through to detail view. New accountsApi.ts client (416 lines) with full CRUD for customers, groups, associated leads/orders/members/notes.

  2. · SecurityService

    Add 18 account detail endpoints for commerce customer management

    New endpoints on AccountController under /api/security/account/: - Customer CRUD: GET/POST/PUT/DELETE /customers, GET /customers/{uid} - Associated data: GET /customers/{uid}/leads, /orders, /members - Member management: PUT /customers/{uid}/members (add/remove/set master) - Notes: GET/POST /customers/{uid}/notes - Account groups: GET/POST/PUT/DELETE /groups Full detail endpoint returns account info, contact details from **************** address, lead/order/member counts.

  3. · kamo-shared-library

    Add **************** and ****************

    New query methods for account detail page — order lookup by purchaser and account listing by org.

  4. · kamo-internal

    Add retail pipeline sub-tabs — Customers, Fulfillment, Carts & Drafts

    RETAIL verticals in the Pipeline page now have 4 sub-tabs instead of a single Orders view: 1. Orders — existing PipelineOrdersTab (unchanged) 2. Customers — AgGrid table with customer profiles, inline address expansion, search, order history summary, CSV export 3. Fulfillment — Shipment tracking dashboard with status filter chips (Pending/Label Created/In Transit/Out for **************** color-coded status, tracking link generation, create shipment dialog 4. Carts & Drafts — Two sub-views: Active/Abandoned carts with item expansion and "Convert to Order" action; Draft Orders with status management PipelineVerticalSection updated to render sub-tabs for RETAIL (was previously single-content). Hooks moved to component top level to satisfy React rules.

  5. · kamo-internal

    Enterprise retail settings UI — 5 new/rewritten market tabs for RETAIL

    Product Catalog (rewritten): 4 sub-views — Products table with search/filters, hierarchical Categories tree, Brands management, Attributes with typed values and color swatches. Full CRUD for categories, brands, attributes, attribute values. Customers (new): 2 sub-views — Customer table with search, inline address expansion, full CRUD for customers/addresses/customer groups. Shows order totals, tax exempt status, marketing opt-in. Inventory (new, replaces placeholder): 3 sub-views — Stock Levels table with color-coded low/out-of-stock rows and per-row adjust dialog, Locations CRUD with fulfillment/pickup badges, read-only Adjustments audit log with filters. Tax & Shipping (new): 4 sub-views — Tax Classes, Tax Zones, Tax Rates (with compound/inclusive/priority), Shipping (zones with nested methods + carriers). Discounts & Pricing (new): 3 sub-views — Discounts with codes/automatic types and rules, Price Lists with expandable entries, Gift Cards with balance tracking. Market detail page updated: RETAIL markets now show 8 tabs (Overview, Vendors, Product Catalog, Inventory, Customers, Tax & Shipping, Discounts & Pricing, Agreements).

  6. · kamo-internal

    Add ~90 retail API methods and 30+ TypeScript interfaces to commerceApi

    Full frontend API coverage for KamoRetail: categories, brands, attributes, variants, images, tags, reviews, customers, addresses, customer groups, tax classes/zones/rates, discounts, price lists, gift cards, inventory locations, stock levels/adjustments, shipping zones/methods, carriers, shipments, carts, draft orders, order notes, provider configs, sync logs.

  7. · SecurityService

    Add 111 retail endpoints to CommerceMarketController

    All endpoints under /{marketId}/retail/... namespace covering: - Categories, brands, attributes (with values), images, variants, tags, reviews - Customers, addresses, customer groups - Tax classes, zones, rates; discounts; price lists (with entries); gift cards - Inventory locations, stock levels (with adjustments) - Shipping zones, methods, carriers, shipments - Carts (with items), draft orders, order notes - Provider configs, sync logs Controller grew from ~1,100 to ~2,550 lines. All endpoints delegate to RetailService.

  8. · kamo-shared-library

    Add RetailService (2376 lines) and 38 retail DTOs

    RetailService provides full CRUD for all KamoRetail entities across 7 domains: catalog (categories, brands, attributes, variants, images, tags, reviews), customers (profiles, addresses, groups), pricing (tax classes/zones/rates, discounts, price lists, gift cards), inventory (locations, stock levels, adjustments), shipping (zones, methods, carriers, shipments), carts (carts, draft orders, order notes), and provider config (sync logs). 38 DTOs in donotmodify.dao.dtos.pos.retail for API transport layer.

  9. · DaemonService

    Add OG image warmup job for kamocrm.com

    Quartz-scheduled job that pre-fetches opengraph-image URLs daily at 4 AM to keep the marketing site's OG image cache warm. Covers 23 static routes and 7 blog post routes. Configurable via environment variables (OG_WARMUP_ENABLED, OG_WARMUP_BASE_URL).

  10. · kamo-marketing

    Add programmatic OG image generation for all routes

    Uses Next.js opengraph-image.tsx convention with Satori/Resvg rendering pipeline. Each route gets a branded 1200x630 image with Inter font, dark background, gradient accents, and page-specific title/subtitle. Static routes pre-render at build time with 24h ISR revalidation. Dynamic blog and KB routes use generateStaticParams for build-time generation. Removes manual og:image metadata in favor of convention- based auto-injection.

  11. · kamo-shared-library

    Add KamoRetail enterprise data model — 109 new entities, repositories, and provider abstraction

    Full retail POS data model designed for standalone KamoRetail operation and bidirectional sync with Shopify, BigCommerce, Wix, Squarespace, Shift4Shop, Ecwid, WooCommerce, Magento, PrestaShop, and OpenCart. Product Catalog (29 files): - ProductCategory (hierarchical), ProductBrand, ProductAttribute, ProductAttributeValue - ProductVariant (SKU-level with pricing/weight/inventory policy) - ProductImage (multi-image), ProductTag, ProductReview - ProductRelation (cross-sell/up-sell), ProductVariantAttribute - Product-Category and Product-Tag junction tables - 5 enums: ProductType, ProductAttributeType, ProductAttributeInputType, InventoryPolicy, ProductRelationType - Offering entity expanded: brand, productType, slug, SEO fields, weight, compareAtPrice, costPrice, taxClassId, requiresShipping Customer Domain (13 files): - RetailCustomer, RetailCustomerAddress, RetailCustomerGroup - RetailCustomerGroupMembership, Wishlist, WishlistItem - AddressType enum, all repositories Pricing/Tax/Discounts (19 files): - TaxClass, TaxZone, TaxRate (compound/inclusive/priority support) - Discount (codes + automatic), DiscountRule (granular targeting) - PriceList, PriceListEntry (tiered per-group pricing) - GiftCard with balance tracking - 3 enums, all repositories Enhanced Inventory (6 files): - InventoryLocation (multi-warehouse with fulfillment/pickup flags) - StockLevel (per-variant per-location with thresholds) - StockAdjustment (full audit trail) - StockAdjustmentType enum Shipping & Fulfillment (14 files): - ShippingZone, ShippingMethod (flat/weight/carrier/free calculation types) - ShippingClass, Carrier (with tracking URL templates) - Shipment, ShipmentItem (with full tracking lifecycle) - ShipmentStatus, ShippingCalculationType enums Cart & Checkout (12 files): - Cart **************** CartItem - DraftOrder, DraftOrderLineItem (merchant-created pre-payment orders) - OrderNote (internal/customer-visible) - CartStatus, DraftOrderStatus enums Provider Abstraction Layer (15 files): - RetailProviderType enum (KAMO_NATIVE + 10 providers) - RetailProviderConfig entity (per-market provider settings) - RetailSyncLog entity (sync audit trail) - 6 sync adapter interfaces: ProductSyncAdapter, OrderSyncAdapter, InventorySyncAdapter, CustomerSyncAdapter, PricingSyncAdapter, FulfillmentSyncAdapter - RetailProviderCapability interface (feature flags per provider) - RetailProviderRegistry (runtime adapter registry) - SyncDirection, SyncStatus enums

  12. · kamo-marketing

    Add 9 e-commerce platform logos to integrations banner

    Added BigCommerce, WooCommerce, Magento, Squarespace, PrestaShop, Wix, OpenCart, Ecwid, and Shift4Shop to the "Integrates With" marquee, interleaved with existing integration logos.

  13. · kamo-internal

    Add enterprise-grade Agreement Templates tab to all market types

    Reusable MarketAgreementTemplatesTab added to every commerce market with: - Two-panel layout: template list sidebar + full editor - Commerce-type-specific template variables (retail order/warranty, rental asset/duration, subscription plan/SLA, service quotes, mortgage loan terms, procurement PO terms) - Variable insertion toolbar with categorized dropdown - Edit/Preview toggle with live HTML rendering - Template management: create, edit, duplicate, delete with ConfirmationDialog - Default template and active/inactive toggles - Search/filter in template list - Context menu per template (edit, duplicate, delete)

  14. · kamo-marketing

    Add glimmering red preview mode banner announcing April 6th launch

  15. · kamo-internal

    Refactor commerce POS settings to market-centric architecture

    Major restructure of the commerce settings page: Frontend: - Replace flat tab layout (Products, Inventory, Rental Assets, Subscription Plans) with market-centric card grid where sub-resources are nested under each market - Replace all modal/popup-based CRUD with dedicated sub-pages and proper routing - New route structure: **************** etc. - Market detail page with dynamic sub-tabs based on commerce type (RETAIL, RENTAL, SUBSCRIPTION) - Subscription plan editing uses 3-level deep pages with sub-tabs (pricing, features, add-ons, etc.) - Add "Provider Integrations" placeholder tab alongside "Markets & Fields" - New unified commerceApi.ts client replacing scattered API calls - Single catch-all API route handler replacing 7 individual route files Backend: - Expand CommerceMarketController with nested market-scoped endpoints - Delete confirmation uses existing ConfirmationDialog with challenge word pattern

  16. · SecurityService

    Expand CommerceMarketController with nested market-centric endpoints

    Replace flat POS endpoints with market-scoped REST hierarchy: - Products, inventory, vendor categories under /{marketId}/products, /inventory, /vendor-categories - Rental assets under /{marketId}/rental-assets (RENTAL markets only) - Subscription plans, prices, features, add-ons, bundles, volume discounts under /{marketId}/subscription-* - Commerce type validation ensures sub-resources match market type - PATCH /{marketId}/active endpoint for quick toggle - Enhanced GET /{marketId} returns sub-resource counts

  17. · kamo-shared-library

    Add marketId support to retail product DTOs and CommerceService

    Add marketId/marketTitle fields to RetailProductDTO, add marketId to CreateRetailProductRequest, and wire CommerceMarketRepository into CommerceService to set market association on product creation.

  18. · kamo-internal

    Move department & job title from Roles tab to My Profile page

    Department and job title fields now appear on the My Profile page as a SectionCard, shown only for team members. Editable via Autocomplete dropdowns when user has MANAGE_MEMBER_SECURITY right, otherwise shown as read-only labels. Both fields can be unassigned (set to None). Removed department/job title from Roles & Permissions tab.

  19. · SecurityService

    Include memberType, departmentId/Title, jobTitleId/Title in member profile GET response

  20. · kamo-internal

    Add CRM status label customization with settings UI and end-to-end wiring across leads pages

  21. · SecurityService

    Add LeadStatusLabelController for org-level CRM status label CRUD endpoints

  22. · kamo-shared-library

    Add LeadStatusLabel entity, repository, service, and DTO for org-level CRM status label customization

  23. · kamo-internal

    Add department and job title selectors to member security tab

    Team members can now be assigned to a department and job title via Autocomplete dropdowns in the Edit Security dialog. Summary card shows current assignments. Regular members do not see these fields.

  24. · SecurityService

    Add department and job title assignment to member security endpoint

    GET now returns departmentId/Title and jobTitleId/Title for team members. PUT accepts departmentId and jobTitleId to assign/unassign department and job title, with rights recalculation after changes.

  25. · kamo-internal

    Email signature field toggles, normalized social links, and Content tab reorder

    - Move Content sub-tab to first position in email signature settings - Add admin-configurable contact field toggles per scope (user/department/company) with enable/disable switches for Work Phone, Cell Phone, Organization Address, Member Address, Job Title, Department, and Social Icons - Refactor social links on member profile to support common platforms + custom links via a dynamic list with platform dropdown, URL field, and sort ordering - Add 12 new social platforms (dribbble, behance, pinterest, reddit, discord, slack, medium, stackoverflow, twitch, whatsapp, telegram, signal) - Add Next.js API routes for signature field config and member social links - Preview respects field config — disabled fields are hidden in real-time - Fields that are enabled but not populated are automatically hidden

  26. · SecurityService

    Sync social links to normalized social_links table

    Write member social links to both the embedded EmbSocialLinks columns (backward compat) and the new normalized social_links table. Add socialLinksNormalized to the GET member response for clients that support the new format.

  27. · EmailService

    Add email signature field config API

    Add service and REST controller for managing email signature field visibility configuration per organization. Admins can toggle which contact fields appear in signatures for each scope (user/department/company).

  28. · kamo-shared-library

    Add SocialLinkEntity and EmailSignatureFieldConfigEntity

    Add normalized social_links table to replace embedded social link columns, supporting both predefined platforms and custom social links with sort ordering. Add email_signature_field_config table for admin-configurable contact field visibility toggles per scope (user/department/company) in email signatures.

  29. · kamo-internal

    Implement mailbox switcher with privilege-based access on /messages page

    - Add Meet, POS, and 3 new email access privileges to frontend RoleRightType - Add ServiceType.MEET to frontend ServiceType enum - Add getAccessibleMailboxes API and AccessibleMailboxes type to mailboxApi - Overhaul FolderSidebar mailbox switcher with grouped sections: My Mailboxes, Shared, Department, Job Type, All Members (privilege-gated) - Fix "Loading..." issue by deriving email from accessible mailboxes response - Update MessageBrowser to handle member-mailbox type with banner display

  30. · EmailService

    Add accessible mailboxes endpoint with privilege-based expanded access

    Add AccessibleMailboxService and GET /api/email/mailboxes/accessible endpoint that returns personal mailboxes, shared mailboxes, and privilege-gated access to department, job type, and all member mailboxes.

Your universe is waiting.

Start free in minutes. Add products whenever you are ready — no migration, no new logins.

Free forever — no credit card required