Matthew Meszaros
384cf868db
feat: store campaign reply classifications
2026-06-07 11:46:38 +02:00
Matthew Meszaros
3117284095
feat: add layered reply classifier
2026-06-07 11:46:31 +02:00
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
051ae73fd2
feat: resolve named sender contacts
2026-06-07 07:54:02 +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
5f3940602f
feat: add CRM task search summaries
2026-06-07 07:04:16 +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
62da3c3e3d
feat: add organization teams API
2026-06-07 07:03:49 +02:00
Matthew Meszaros
f9bc1dc40f
feat: expose organization member display fields
2026-06-07 07:03:25 +02:00
Matthew Meszaros
ab82cacbff
feat: run migrations before seeding
2026-06-07 07:03:21 +02:00
Matthew Meszaros
f19e418a36
feat: seed CRM task and inbox context data
2026-06-07 06:18:44 +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
9885e8b952
feat: create CRM tasks from campaign actions
2026-06-07 06:18:22 +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
f4c738de06
feat: add customizable CRM task types
2026-06-07 06:18:01 +02:00
Matthew Meszaros
64bf23500d
feat: add contact email lookup client
2026-06-07 06:17:28 +02:00
Matthew Meszaros
625b10a5c8
feat: add contact email lookup endpoint
2026-06-07 06:17:24 +02:00
Matthew Meszaros
b98283ec2a
feat: hydrate pipeline stages in list queries
2026-06-07 05:06:08 +02:00
Matthew Meszaros
3a5774c527
feat: handle missing sessions as token errors
2026-06-07 05:06:05 +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
2d593d0999
Merge pull request #29 from warmbly/feature/unibox-categories
...
feat: add unibox conversation labels
2026-06-06 19:40: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
86d7d1f7d3
feat: expose unibox thread label api
...
Add read and replace endpoints for conversation labels, wire service methods, and route sender/category filtering through the thread-collapsed search path.
2026-06-06 19:37:19 +02:00
Matthew Meszaros
0a611c0250
feat: collapse unibox search by thread
...
Return one inbox row per conversation, aggregate unread/message counts, join assigned labels, and align overview and unread counters with thread-level totals.
2026-06-06 19:37:19 +02:00
Matthew Meszaros
a95a4e206e
feat: add unibox thread label models
...
Add the conversation-label join table and expose thread label fields on the Unibox response models so inbox rows and overview data can carry category metadata.
2026-06-06 19:37:19 +02:00
Matthew Meszaros
f46f3d4082
Merge pull request #28 from warmbly/feature/landing-page
...
feat: refresh landing page feature showcase
2026-06-06 18:18:05 +02:00
Matthew Meszaros
50edffef2c
feat: sharpen landing pricing grid borders
...
Replace gap-based pricing card dividers with explicit responsive borders for a cleaner table edge.
2026-06-06 18:13:18 +02:00
Matthew Meszaros
7b3c8c568a
feat: animate landing bento metrics
...
Add living motion to the one-platform bento with health-state highlights, worker bar shimmer, sequence step focus, and hover ring replay.
2026-06-06 18:13:14 +02:00
Matthew Meszaros
1d02580991
feat: update changelog shipping copy
...
Change the changelog status badge from weekly shipping to continuous shipping.
2026-06-06 18:13:03 +02:00