Commit Graph
202 Commits
Author SHA1 Message Date
Matthew Meszaros c5135857e8 feat: refresh contact queries after deal changes 2026-06-07 11:07:29 +02:00
Matthew Meszaros 1286074ba8 feat: refresh contact queries after note changes 2026-06-07 11:07:24 +02:00
Matthew Meszaros 8287f5d8b4 feat: mark opened unibox threads seen 2026-06-07 11:07:19 +02:00
Matthew Meszaros aaaa2abf2b feat: polish CRM deals segmented controls 2026-06-07 11:07:15 +02:00
Matthew Meszaros 738629fa89 feat: add relative task due date control 2026-06-07 11:07:10 +02:00
Matthew Meszaros 8509d44bef feat: enrich unibox CRM panel actions 2026-06-07 10:46:09 +02:00
Matthew Meszaros 791165ad5e feat: refresh CRM task queries on create 2026-06-07 07:54:17 +02:00
Matthew Meszaros e482330351 feat: improve unibox contact context lookup 2026-06-07 07:54:13 +02:00
Matthew Meszaros 0a11049458 feat: add searchable task type picker 2026-06-07 07:54:10 +02:00
Matthew Meszaros 94673c3550 feat: page CRM deals board columns 2026-06-07 07:54:06 +02:00
Matthew Meszaros add5ecd2d2 feat: show overdue task indicator in nav 2026-06-07 07:04:36 +02:00
Matthew Meszaros 42edf23a6f feat: add server-driven CRM tasks view 2026-06-07 07:04:30 +02:00
Matthew Meszaros 608ca652ec feat: polish CRM task type picker 2026-06-07 07:04:25 +02:00
Matthew Meszaros 4e015e7efd feat: add CRM task search clients 2026-06-07 07:04:21 +02:00
Matthew Meszaros c969091577 feat: add teams settings page 2026-06-07 07:04:00 +02:00
Matthew Meszaros c10c4000e7 feat: add teams API hooks 2026-06-07 07:03:56 +02:00
Matthew Meszaros f9bc1dc40f feat: expose organization member display fields 2026-06-07 07:03:25 +02:00
Matthew Meszaros 03ddc2b6d8 feat: add unibox contact context panel 2026-06-07 06:18:38 +02:00
Matthew Meszaros 99d6a20c1b feat: add create task sequence action UI 2026-06-07 06:18:32 +02:00
Matthew Meszaros 484aea9597 feat: show task types on CRM tasks 2026-06-07 06:18:17 +02:00
Matthew Meszaros 30731f6595 feat: add CRM task type picker 2026-06-07 06:18:11 +02:00
Matthew Meszaros 49ac868956 feat: add CRM task type API hooks 2026-06-07 06:18:06 +02:00
Matthew Meszaros 64bf23500d feat: add contact email lookup client 2026-06-07 06:17:28 +02:00
Matthew Meszaros 1ae7afa4c8 feat: drop em dash from deals empty-state copy 2026-06-06 19:44:13 +02:00
Matthew Meszaros 0ac0ba80ca Merge remote-tracking branch 'origin/main' into feature/crm-system 2026-06-06 19:42:26 +02:00
Matthew Meszaros 050d09c961 feat: add cross-pipeline deals search surface
Replace the client-side, 100-row-capped deals board as the default view
with a server-driven cross-pipeline table so totals stop lying at scale.

- POST /crm/deals/search: faceted filter body (query, status, pipeline,
  stage, owner, campaign, value range, close-date range), whitelisted
  sort, offset pagination, and Contact/Stage/campaign hydrated via JOIN.
- POST /crm/deals/summary: COUNT + SUM(value) per status and per stage
  over the same filter, with a mixed-currency guard, so header and board
  column totals are true server aggregates.
- DealsTable: cross-pipeline default view (infinite scroll, server
  filters/sort, honest summary stats) with a Table|Board toggle; the
  kanban stays as the single-pipeline working view.
- Deal attribution: campaign_id + source_mailbox_id columns + indexes
  (migration 000022) as groundwork for revenue lineage.
2026-06-06 19:42:20 +02:00
Matthew Meszaros 2f5e0208f5 feat: refresh unibox labels after category delete
Invalidate Unibox search and overview caches after category deletion so cascaded thread-label removals are reflected immediately in the dashboard.
2026-06-06 19:37:19 +02:00
Matthew Meszaros 5f5f29c39f feat: add unibox thread label menu
Add the thread header label picker, create-and-add flow, cache-backed header chips, and keyboard access for assigning categories to conversations.
2026-06-06 19:37:19 +02:00
Matthew Meszaros 1b4baa325a feat: add unibox category browsing
Wire category scopes through the Unibox page, rail, filter sheet, and conversation list so thread labels can be browsed and rendered from the collapsed inbox rows.
2026-06-06 19:37:19 +02:00
Matthew Meszaros 815665d6e2 feat: add unibox label client hooks
Add frontend request helpers and query hooks for thread labels, plus typed search and overview support for category-scoped Unibox data.
2026-06-06 19:37:19 +02:00
Matthew Meszaros 3f6935a3bb feat: polish live activity indicators
Add distinct live activity indicators for warming mailboxes, animate dashboard counters, and tighten lead progress labels.
2026-06-06 08:34:47 +02:00
Matthew Meszaros 10ffc2ad67 feat: mark live campaign analytics
Show a live indicator beside campaign performance metrics while a campaign is actively sending.
2026-06-06 07:53:15 +02:00
Matthew Meszaros a4801de99a feat: animate campaign overview stats
Use the animated number primitive for live campaign overview counters and rates.
2026-06-06 07:52:43 +02:00
Matthew Meszaros b047c30243 feat: allow rich stat values
Let shared stat cards render React nodes so dashboard counters can use richer animated or formatted values.
2026-06-06 07:52:10 +02:00
Matthew Meszaros 8d42dabff3 feat: add animated number primitive
Add a reusable realtime-friendly count-up number component for dashboard stats.
2026-06-06 07:51:18 +02:00
Matthew Meszaros aa4f43b284 feat: wire settings profile updates
Persist profile and workspace setting edits, show live billing usage, and remove the unused bulk email API helper.
2026-06-06 07:50:26 +02:00
Matthew Meszaros ce8181de0e feat: show campaign lead progress
Surface per-lead campaign progress in the embedded Leads table with status pills, current step, activity dates, and a compact progress strip.
2026-06-06 07:50:18 +02:00
Matthew Meszaros ac7aa9de87 feat: polish campaign launch and folders
Add the launch dialog, campaign folder controls, completed status filtering, folder chips, and shared UI affordances for campaign organization.
2026-06-06 07:50:10 +02:00
Matthew Meszaros 8a0683e9de feat: add campaign sequence action editor
Add action nodes to the campaign flow canvas, richer personalization insertion, conditional previews, and the shared activity indicator styling.
2026-06-06 07:50:00 +02:00
Matthew Meszaros 21edf45dbd feat: flatten analytics share card
Remove decorative cloud layers and shadows from the shared analytics image card so generated previews stay flat and artifact-free.
2026-06-05 16:44:32 +02:00
Matthew Meszaros 1663065b56 feat: fix analytics share image edge
Pin analytics share exports to the card dimensions and avoid white fallback pixels along the generated image edge.
2026-06-05 16:36:34 +02:00
Matthew Meszaros b0ac1d2435 feat: add campaign lead import actions
Allow campaign lead views to create or import contacts directly into the current campaign.
2026-06-05 15:43:37 +02:00
Matthew Meszaros 021a81b73d feat: polish campaign settings controls
Refresh campaign ordering, ramp, lead-flow, CC/BCC, and ESP matching settings with shared controls, clearer labels, and a more accurate provider coverage view.
2026-06-05 15:42:48 +02:00
Matthew Meszaros 3987e4db64 feat: polish campaign flow interactions
Render branch conditions as explicit IF blocks, improve flow layout and connected-component handling, add touch-safe schedule window creation, and animate flow node layout changes.
2026-06-05 14:36:26 +02:00
Matthew Meszaros 2b758113d6 feat: redesign campaign preferences
Replace tabbed campaign settings with a scrollspy settings page, add a unified tag and mailbox sender picker, and show ESP matching coverage for the resolved sender pool.
2026-06-05 14:36:12 +02:00
Matthew Meszaros 929a779ae5 feat: simplify campaign flow editor
Move sequence editing fully into the explicit flow canvas, support negative branch conditions and connection waits, and remove the obsolete rail and standalone branch panel components.
2026-06-05 09:11:24 +02:00
Matthew Meszaros 9ad3d8de53 feat: add campaign step configuration panels
Add reusable step panels for branch editing, per-step A/B variants, and per-step file attachments backed by the new sequence APIs.
2026-06-05 06:04:35 +02:00
Matthew Meszaros e4cd88d491 feat: upgrade campaign step composer
Replace the legacy email body editor with the rich step composer, add preview/template controls, expose AI writing in campaigns and unibox replies, and close confirms after successful actions.
2026-06-05 06:04:31 +02:00
Matthew Meszaros b9d83f1b2c feat: add campaign flow canvas
Replace the sequence step list with a React Flow canvas for branching outreach flows, including auto-layout, edge editing, and inline step editing.
2026-06-05 06:04:14 +02:00
Matthew Meszaros 161d668a8f feat: add campaign sequence api clients
Add frontend models, clients, and React Query hooks for step A/B variants, attachments, branching conditions, and AI writing generation.
2026-06-05 06:04:00 +02:00