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
Matthew Meszaros
7c518a5722
feat: clean up campaign rich text editor
...
Remove the stale lint suppression from the TipTap editor now that the hook dependencies are valid.
2026-06-04 18:58:05 +02:00
Matthew Meszaros
2730de2bff
feat: add campaign rich text editor
...
Add a TipTap-based campaign step editor with formatting controls, link editing, personalization variables, and spintax insertion.
2026-06-04 18:57:30 +02:00
Matthew Meszaros
25cf6d044f
feat: polish campaign step controls
...
Persist wait-day edits only at commit points and use the shared in-app confirm flow for deleting campaign steps. Update sequence deletion cache handling so one mutation instance can remove any step.
2026-06-04 18:57:24 +02:00
Matthew Meszaros
cdb2eaa229
feat: add analytics share preview
...
Add preview sizing, copy-to-clipboard, and improved PNG rendering for analytics share cards. Refresh the exported share card visuals and keep chart bars constrained for compact layouts.
2026-06-04 18:57:08 +02:00
Matthew Meszaros
f72952803e
feat: add explicit campaign sender picker
...
Load campaign senders for explicit sender strategy and persist the selected mailbox pool through the campaign sender endpoint. Add a reusable account selector in campaign preferences.
2026-06-04 18:57:02 +02:00
Matthew Meszaros
40413db071
feat: add weekly campaign schedule editor
...
Add the dashboard editor for per-day campaign sending windows and wire campaign models to the new schedule_windows API shape. Refresh the shared calendar/date controls used by the campaign schedule screen.
2026-06-04 18:56:57 +02:00
Matthew Meszaros
203a3e0471
feat: add contacts sheet sync UI
2026-06-04 11:50:14 +02:00
Matthew Meszaros
7fe63a98eb
feat: add lead sync frontend clients
2026-06-04 11:50:09 +02:00
Matthew Meszaros
6a4c370152
feat: share contact import mapping utilities
2026-06-04 11:50:04 +02:00
Matthew Meszaros
e598b3bd5c
feat: remove sheets from integrations UI
2026-06-04 11:50:00 +02:00
Matthew Meszaros
379e056a24
feat: fix organization sync query handling
2026-06-04 09:30:36 +02:00
Matthew Meszaros
0c49d3c607
feat: improve app routing and browser chrome
2026-06-04 08:55:26 +02:00
Matthew Meszaros
f15753dc76
feat: polish dashboard menus and actions
2026-06-04 08:55:13 +02:00
Matthew Meszaros
276758e8b8
feat: improve contact drawer interactions
2026-06-04 08:54:48 +02:00
Matthew Meszaros
981ab01c8c
feat: add bulk mailbox warmup controls
2026-06-04 08:54:42 +02:00
Matthew Meszaros
ca310748fe
feat: polish campaign schedule controls
2026-06-04 08:54:33 +02:00
Matthew Meszaros
d630619a30
feat: redesign campaign sequence builder
2026-06-04 08:54:25 +02:00
Matthew Meszaros
33ccb99e7b
feat: refresh campaign detail overview
2026-06-04 08:54:17 +02:00
Matthew Meszaros
ef58d64988
feat: add campaign send control settings
2026-06-04 08:53:56 +02:00
Matthew Meszaros
2ad67762d4
feat: add dashboard analytics visuals
2026-06-04 08:53:42 +02:00
Matthew Meszaros
24422ed427
feat: add campaign template scoring
...
Add an advisory content score endpoint that reuses warmup linting heuristics for campaign templates.
Surface the score in the sequence editor so users can check subject and body deliverability before sending.
2026-06-03 06:27:07 +02:00