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