Commit Graph

141 Commits

Author SHA1 Message Date
Matthew Meszaros bb91e6d3e2 feat: add instant branch controls 2026-06-07 17:26:50 +02:00
Matthew Meszaros ac269a29a7 feat: use themed select in campaign flow 2026-06-07 12:46:46 +02:00
Matthew Meszaros 813b655d13 feat: explain reply branch matching 2026-06-07 12:46:39 +02:00
Matthew Meszaros 95c37efaa1 feat: clarify branch disconnect action 2026-06-07 12:46:08 +02:00
Matthew Meszaros 5ca9a9d944 feat: show instant reply branch guidance 2026-06-07 12:45:33 +02:00
Matthew Meszaros 5e54f37154 feat: fan converging campaign flow edges 2026-06-07 12:44:42 +02:00
Matthew Meszaros 3bcfe7674e feat: label reply branches as instant 2026-06-07 12:43:57 +02:00
Matthew Meszaros 17351f0806 feat: add instant reply step shortcut 2026-06-07 12:43:07 +02:00
Matthew Meszaros f9d667ed6d feat: add themed select menu 2026-06-07 12:39:33 +02:00
Matthew Meszaros 6b1322ff17 feat: polish CRM deals table filters 2026-06-07 11:50:05 +02:00
Matthew Meszaros 650b7d6400 feat: add CRM deal sequence editor actions 2026-06-07 11:50:00 +02:00
Matthew Meszaros 87dc3b2647 feat: add reply intent branch editor 2026-06-07 11:49:52 +02:00
Matthew Meszaros 8287f5d8b4 feat: mark opened unibox threads seen 2026-06-07 11:07:19 +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 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 add5ecd2d2 feat: show overdue task indicator in nav 2026-06-07 07:04:36 +02:00
Matthew Meszaros 608ca652ec feat: polish CRM task type picker 2026-06-07 07:04: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 30731f6595 feat: add CRM task type picker 2026-06-07 06:18:11 +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 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 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 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 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 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