Update date column widths and replace action buttons
- Change date column widths from 155px to 170px (Created and Assigned) - Update date filter field containers to match 170px width - Replace 'Export Selected', '...
Add thin light gray border bottom to secondary tabs
- Add borderBottom: '1px solid rgba(0, 0, 0, 0.12)' to status tabs container - Matches the styling found on /leads/view/ page - Creates visual separation betwee...
Add gray backgrounds to remaining filter fields and align to bottom
- Change filter row alignment from center to flex-end (bottom alignment) - Add gray background (#f8fafc) to all remaining filter field containers - Add border r...
Stack date filter fields vertically with isolated gray background
- Change date filter fields from horizontal to vertical layout (flexDirection: column) - Add gray background (#f8fafc) only to date filter boxes, not entire fil...
Improve UI layout and increase mock data
- Make text smaller for date filter fields (fontSize: 0.75rem for input, 0.7rem for labels) - Move Quick Search to same line as status tabs, aligned to the righ...
Add date range filter components for Created and Assigned columns
- Add state variables for Created and Assigned date range filters (start/end dates) - Create date range filter components with Start Date and End Date fields - ...
Make contact names clickable links and add double-click to open lead
- Update ContactRenderer to display first and last name as underlined clickable links - Add onClick handler to contact names that opens the lead via onViewLead ...
Add icons to sub-status dropdown filter and update Contracts Sent
- Update 'Contracts Signed' to 'Contracts Sent' to match Java enum - Change icon for Contracts Sent from Assignment to Send icon - Add icons to sub-status dropd...
Add unique icons for each sub-status with parent status colors
- Add unique, relevant icons for each sub-status (e.g., PersonAdd for New Lead, Message for Left Message) - Icons maintain parent status color (green for Fresh,...
Add icons to sub-status column matching parent status colors
- Add getSubStatusIcon helper function to determine icon based on parent status - Sub-status icons use same icons and colors as their parent status - Fresh sub-...
Move urgent badge to Lead ID column and remove email from Contact
- Move Urgent badge from Contact column to Lead ID column - Position badge to the left of account icon in Lead ID - Remove 'Urgent' label text, keep only the ic...
Add bidirectional sync between status tabs and filter dropdown
- When status tab changes → updates filter dropdown (already existed) - When filter dropdown changes → updates active status tab (new) - Prevents circular u...
Replace AG Grid floating filters with custom filter row
- Remove all floatingFilterComponent references from columnDefs - Set floatingFilter: false on all columns - Create custom filter row above grid with full contr...
Improve filter behavior and styling
- Sub Status dropdown now only shows sub-statuses for selected Status filter - Sub Status dropdown is disabled when no Status is selected - Auto-set Status filt...
Improve dropdown filter styling and functionality
- Align all dropdown filters to the left with 5px padding above - Add StatusFloatingFilter component with icons in dropdown menu items - Icons appear to the lef...
Add Status column with icons and dynamic Sub Status filter
- Add Status column before Sub Status with icons (Fresh, Reckoning, Farm, Grim, Void) - Create StatusRenderer component that displays status with appropriate ic...
Add dropdown floating filters and set Lead ID width to 300px
- Create custom DropdownFloatingFilter component for Sub Status, Vendor, Product, Source, and Agent columns - Set Lead ID column width to 300px (was 120px) - Ad...
Improve pinned rows alignment and add dropdown filters
- Change Lead ID padding from 50px to 45px in pinned rows - Center align score cells in pinned rows to match main grid - Add dropdown filters (agSetColumnFilter...
Add account association icon to Lead ID column
- Add AccountCircle icon (filled) for leads associated with accounts - Add AccountCircleOutlined icon (outlined) for leads not associated with accounts - Icons ...
Integrate reports into lead view pane
- Load reports directly into lead view pane instead of separate page - Create ReportsPane component with all 8 reports fully built out - Switch between ReportsP...
Update first row tabs and add reports page
- Update first row tabs to: Activity Summary | Residential Mortgages | Commercial Real Estate Loans - Add report buttons on right side of first row tabs with to...
Update row 2 tabs with All Leads and Selected
- Add All Leads and Selected tabs to row 2 - Default to Fresh tab (index 2) when page opens - Add List icon for All Leads and CheckCircle icon for Selected - Sh...
Add padding and status tab colors
- Add padding to product tabs Card and CardContent - Add color-coded status tabs: Fresh (green), Reckoning (blue), Farm (orange), Grim (red), Void (gray) - Upda...
Restructure leads page tabs and filtering
- Add floating Row 1 tabs: Residential Mortgages | Commercial Real Estate Loans - Add Row 2 status tabs with icons: Fresh | Reckoning | Farm | Grim | Void - Rem...
Use custom raven.svg icon for Grim status
- Replace Dangerous icon with custom raven.svg from /public/icon/ - Apply CSS filter to make raven icon red (#ef4444) to match Grim status theme - Remove unused...
Update status icons - gavel for Reckoning, Dangerous for Grim
- Change Reckoning icon from Assignment to Gavel (judicial/legal theme) - Change Grim icon from Block to Dangerous (grim reaper/death theme) - Dangerous icon re...
Improve status column and contact field styling
- Set Status column to fixed 300px width - Add status icons (NewReleases for Fresh, Assignment for Reckoning, Agriculture for Farm, Block for Grim, Cancel for V...
Move urgent badge from Lead ID to Contact column
- Remove urgent badge from IdRenderer - Add urgent badge to ContactRenderer, positioned to the left of contact info - Badge now appears next to contact name/ema...
Add pinned urgent leads functionality to datagrid
- Add pinned rows feature (default 5 rows) for latest urgent contact leads - Pinned rows always visible at top regardless of filters or sorting - Modern styling...
Update status column to show parent > child format and use enum-based mock data
- Update mock data generation to use actual status/sub-status pairs from Java enum - Change "Sub Status" column header to "Status" - Display status in "{parent}...
Update leads page with status filters, remove phone column, add sub-tabs
- Remove phone number column from leads grid - Increase width of Created and Assigned columns to fit datetime data - Add status and sub-status dropdown filters ...
Add saggy bounce animation to connection lines with arrow heads
- Converted straight lines to curved SVG paths using quadratic bezier curves - Added continuous saggy bounce animation using requestAnimationFrame - Longer conn...
Add Adjust Features functionality to apps in account settings
- Added 'Adjust Features' button/link to each enabled app card - Button appears in both grid and list view modes - Added 'Adjust Features' option to context men...
Reduce dial tone volume and add modernized clear button
- Reduced dial tone volume by 50% (from 0.5 to 0.25) - Added clear button (CallEnd icon) that appears when numbers are entered - Clear button clears all digits ...
Enhance phone number display field with modern animations
- Added auto-scroll to follow last dialed digit when number is too long - Implemented digit-by-digit pop-in animations with staggered timing - Added focus state...
Improve dial pad with audio preloading and modern animations
- Preload all DTMF audio files when dialpad tab opens for instant playback - Add modern button animations with hover and press states - Implement visual feedbac...
Add DTMF touch tone sounds to dial pad in chatbox
- Added DTMF tone generation script (generate-dtmf-tones.js) - Generated WAV files for all dial pad buttons (1-9, *, #, 0) - Integrated touch tone playback into...
Add Pipeline page with Applications, Orders, Shipments, and Returns tabs
- Created pipeline page using SettingsView component similar to account pages - Added Applications tab with application management and status tracking - Added O...
Add Pipeline button to NavPri navigation
- Added Pipeline button with TimelineIcon after Accounts button - Links to /pipeline route - Always visible (not conditional on organization features)
Update account page tabs to new account type categories
- Changed tabs from status-based to account type categories: - "Clients & Customers" (BusinessCenter icon) - "Members & Subscribers" (People icon) - "Empl...
Add Employee Browser for HR page with EmployeeManager component
- Created EmployeeManager component similar to LeadManager with employee-specific fields - Updated /hr/page.tsx to match doc manager layout with gradient header...
Update leads page with LeadManager component matching doc manager layout
- Created LeadManager component similar to DocManager with lead-specific fields - Updated /leads/page.tsx to match doc manager layout with gradient header - Add...
Add support for direct .mmdb URL and custom GEO_DATABASE_URL
- Support GEO_DATABASE_URL environment variable for custom database URL - Auto-detect .mmdb files and skip decompression - Maintain backward compatibility wit...
Add premium enterprise features - Analytics, CRM, AI Assistant, Advanced
ANALYTICS DASHBOARD - Real-time call metrics with interactive charts CRM INTEGRATION - Customer data, lifetime value, activity tracking AI ASSISTANT - Sentime...
Implement 100% enterprise VoIP desk phone features
Complete implementation of 100+ features matching Cisco 8800, Polycom VVX 600, Yealink T58A 7 Tabs: Dialpad, Speed Dial/BLF, History, Voicemail, Contacts, Queu...
Add expandable softphone panel to ChatBox
- Add PhoneInTalk icon button to ChatBox header for softphone toggle - Create comprehensive SoftphonePanel component with full UI - Implement dialpad with 0-9, ...
Add TomcatConnectorCustomizer to force SSL keystore config
- Spring Boot's application.yml SSL config not being applied - Use TomcatConnectorCustomizer to programmatically set keystore - Forces connector to use /etc/ssl...
Connect to MediaService port 8443 for WebSocket
- Updated WebSocket connection to use media.kamocrm.com:8443 - Bypasses Traefik for WebSocket-only traffic - Uses direct HTTPS/HTTP1.1 connection to MediaServic...
Like what you see shipping?
Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.