Commit Graph
114 Commits
Author SHA1 Message Date
Matthew Meszaros 8540f7db15 feat: members can hold multiple roles — join tables for member/invitation role sets (migration 000044) with effective permissions as the bitwise OR recomputed on every assignment and role edit/delete, role_ids in invite/update APIs, multi-select checkbox role picker with colored chips in roster and invite flow, freely deletable roles 2026-06-11 11:24:19 +02:00
Matthew Meszaros 3473d09bcc feat: fix review findings in the roles redesign — GetMembers role_id column (members endpoint 500), TransferOwnership role_id hygiene, accept-time role re-resolution, race-free in-use delete guard covering invitations, assignment anti-escalation with self-role-change block, canManage-gated members UI, colored RolePills, fresh currentOrganization on refetch, dev JWT_SECRET wiring for make realtime, docs corrections 2026-06-11 10:45:21 +02:00
Matthew Meszaros 091b39f34e feat: roles become workspace data — seed editable Admin/Manager/Viewer rows per org (migration 000043 with member backfill), require role_id for invites and role changes, add role colors with a shared colored RoleSelect dropdown in the roster and invite flow, and rebuild Roles & access around real roles with an Owner reference column 2026-06-11 10:18:45 +02:00
Matthew Meszaros 0b253337fc feat: integrate custom roles across Roles & access settings (manager replaces the coming-soon placeholder, custom roles join the permission matrix and summary cards, permission-aware canManage gating via the org context bitmask) 2026-06-11 10:08:46 +02:00
Matthew Meszaros 63b2b046f9 feat: custom roles dashboard UI (roles manager with built-in reference rows, permission-checkbox editor with start-from presets, custom roles in member role picker and invite flow, realtime spine refresh) 2026-06-11 09:45:23 +02:00
Matthew Meszaros 014cbe79fa feat: label machine opens (Apple MPP prefetch, UA-less fetchers) with human-open upgrade semantics, exclude them from open-triggered automations, and surface the auto-open count in workspace and campaign analytics (migration 000040) 2026-06-11 08:33:09 +02:00
Matthew Meszaros 599e359381 feat: improve automation builder actions
Add the run-another-automation native action to the builder, richer action visuals, task assignment fields, disabled-target warnings, and unsaved-change tracking for the automation editor.
2026-06-09 10:57:16 +02:00
Matthew Meszaros 0ee199e6ce feat: support team task assignment in campaigns
Use the shared assignee/team picker in campaign action steps, persist task_assigned_team_id, and make run-automation campaign steps surface disabled and trigger-mismatch warnings.
2026-06-09 10:57:07 +02:00
Matthew Meszaros 3236ffc459 feat: expand product docs and automation references
Restructure the docs navigation into product-focused pages, add automation expression reference content, and refresh related template and personalization surfaces.
2026-06-09 09:07:56 +02:00
Matthew Meszaros b83dc8ac14 feat: edit automation expressions
Adds frontend model support and builder controls for free-form automation condition expressions.
2026-06-08 15:05:43 +02:00
Matthew Meszaros 9d41619ba9 feat: add template preview client
Adds typed frontend API access for rendering campaign templates through the server preview endpoint.
2026-06-08 15:05:34 +02:00
Matthew Meszaros ffc7940d37 feat: add two factor client APIs
Adds typed frontend API helpers for 2FA status, enrollment, disable, login verification, and the login-confirm challenge response.
2026-06-08 15:05:21 +02:00
Matthew Meszaros 55a02b6441 feat: add notification client APIs
Adds typed frontend client calls, hooks, and models for notification preferences, feed reads, and read-state mutations.
2026-06-08 15:05:09 +02:00
Matthew Meszaros ce406079bc feat: add deliverability dashboard 2026-06-08 12:04:08 +02:00
Matthew Meszaros 3bc8193139 feat: show campaign ab winners 2026-06-08 12:04:03 +02:00
Matthew Meszaros 99ce8dd223 feat: launch automations from campaigns 2026-06-08 12:03:58 +02:00
Matthew Meszaros d5032383cd feat: add automation graph client models 2026-06-08 12:03:41 +02:00
Matthew Meszaros f08464ce10 feat: add automation api bindings 2026-06-08 06:55:24 +02:00
Matthew Meszaros 82e753735c feat: add integration and meetings dashboard 2026-06-08 06:25:44 +02:00
Matthew Meszaros 8773b7f7f3 feat: push contacts to integrations 2026-06-07 20:30:52 +02:00
Matthew Meszaros c724ba59ec feat: expose integration action metadata 2026-06-07 20:30:41 +02:00
Matthew Meszaros e87cd7e8e9 feat: fix unibox seen updates 2026-06-07 19:35:12 +02:00
Matthew Meszaros bd5356c7ff feat: add CRM task team controls 2026-06-07 19:34:56 +02:00
Matthew Meszaros 9e4c9515bd feat: model instant branch options 2026-06-07 17:24:51 +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 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 791165ad5e feat: refresh CRM task queries on create 2026-06-07 07:54:17 +02:00
Matthew Meszaros 4e015e7efd feat: add CRM task search clients 2026-06-07 07:04:21 +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 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 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 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 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 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 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 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 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 7fe63a98eb feat: add lead sync frontend clients 2026-06-04 11:50:09 +02:00