Commit Graph
87 Commits
Author SHA1 Message Date
Matthew Meszaros 5bcc2baaa8 feat: implement the coming-soon security features — logged-in change-password (verify current, policy-checked, POST /me/password) with a real dialog, and new-device sign-in alerts (security notification category fired from the token service on an unrecognized OS+browser, delivered in-app and by email), removing the comingSoon stub helper and updating docs 2026-06-11 12:30:44 +02:00
Matthew Meszaros 160dc0bc76 feat: implement the coming-soon notification delivery channels — Email (SES/SMTP to the account email) and Slack (posts to the org's connected workspace via a new integration NotifySlack), wired in both backend and consumer with per-channel gating, real toggles replacing the coming-soon labels, and updated docs 2026-06-11 12:21:48 +02:00
Matthew Meszaros 39a9752d63 feat: real tokenized invite-accept link — public /invite landing page with safe preview (org, inviter, roles), accept-by-token plus the previously-broken accept-by-invitation-id, public preview + admin copy-link endpoints, login next-param redirect, and a Copy button that yields a working /invite?token link 2026-06-11 11:57:45 +02:00
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 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 c724ba59ec feat: expose integration action metadata 2026-06-07 20:30:41 +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 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 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 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 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 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
Matthew Meszaros e598b3bd5c feat: remove sheets from integrations UI 2026-06-04 11:50:00 +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
Matthew Meszaros e81f6d54cf feat: add mailbox deliverability checks
Add an email auth-check endpoint and dashboard panel for SPF, DKIM, and DMARC validation.

Expose warmup content segment editing on mailboxes so segment-aware warmup content can be selected intentionally.
2026-06-03 06:26:23 +02:00
Matthew Meszaros 15ef9d4994 feat: add warmup content controls
Add warmup content generation and admin review surfaces, plus mailbox warmup appeal/status APIs.

Track warmup engagement and tampering signals so unsafe mailboxes can be handled by the warmup flow.
2026-06-03 05:05:53 +02:00
Matthew Meszaros 83eae84d49 feat: merge main into warmup branch
Resolve the main-branch conflict in realtime event publishing by keeping both warmup account-health and audit-created events. Renumber the warmup migrations after the current main migration tail.
2026-06-01 11:36:04 +02:00