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
8af2950d0b
feat: reconcile missed realtime events by invalidating all queries when the websocket reconnects after a gap
2026-06-11 08:25:00 +02:00
Matthew Meszaros
a06a525cf9
feat: live team presence across the dashboard (online avatar stack in header, viewing/replying indicators on unibox threads and rows, editing collaborators in the automation builder, campaign and contact viewers) plus audit-spine query invalidation
2026-06-11 08:04:11 +02:00
Matthew Meszaros
81c6c730de
feat: animate the automation builder side panels
...
The node editor (trigger/condition/action) and the test-run/history panel
used to pop in and out with no transition. They now slide in from the
right with the same spring the app's other sheets use (AnimatePresence,
stiffness 300 / damping 32), the editor body fades when switching nodes,
the action config fields cross-fade when picking a different action or
target, and the insights panel body fades when toggling test vs history.
2026-06-10 11:52:26 +02:00
Matthew Meszaros
252be0911b
feat: make the dashboard fully mobile compatible
...
Sweep every dashboard area for phone-width (360-430px) usability while
keeping desktop rendering identical behind md:/lg: prefixes:
- stack side-by-side panes and wide form grids below md; one-pane-at-a-time
overlays with back affordances for list+detail layouts (unibox thread,
contact context panel)
- full-width drawers and width-guarded dialogs (max-w vs 100vw, scrolling
bodies, reachable footers) across settings, campaigns, contacts, CRM,
integrations, api-keys, admin
- wide tables get overflow-x-auto wrappers or hidden md:table-cell for
secondary columns; row actions stay touch-reachable
- viewport-clamped popovers/pickers via the PopoverMenu primitive
- prevent iOS Safari focus auto-zoom with a mobile-only 16px form-control
rule in global.css
- responsive React Flow canvases (campaign sequences, automations) and
recharts containers
- delete dead legacy components surfaced by the audit (old base/head
scaffolds, duplicate Tags/Folders modals, unused colors picker,
ContactEntry, contacts filter leftovers)
2026-06-10 11:37:15 +02:00
Matthew Meszaros
59a0205e33
feat: surface automation delete conflicts
...
Show the backend conflict message when deleting an automation fails because campaign run-automation steps still reference it.
2026-06-09 10:57:21 +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
9f90259a80
feat: add icons to select menus
...
Allow select options to render leading glyphs and let full-width selects match their trigger width through the popover menu.
2026-06-09 10:57:11 +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
b19a87c235
feat: add task assignee team picker
...
Introduce a shared dashboard picker that can target the fallback owner, a member, or an entire team while emitting user and team ids separately.
2026-06-09 10:57:03 +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
af78bf4d56
feat: refine deliverability tabs
...
Updates the deliverability range and metric segmented controls to use the lighter dashboard tab treatment.
2026-06-08 15:06:03 +02:00
Matthew Meszaros
5e7bec1f24
feat: prevent app flash
...
Hides the root until the first rendered frame so the dashboard does not briefly show unstyled content during startup.
2026-06-08 15:05:47 +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
b909f238ad
feat: preview rendered sequences
...
Connects sequence preview to the server render path and surfaces template parse or unresolved-token issues in the composer.
2026-06-08 15:05:39 +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
838a4e2ca9
feat: manage two factor settings
...
Adds the security settings 2FA enrollment wizard, recovery-code display, and disable flow backed by the new 2FA endpoints.
2026-06-08 15:05:30 +02:00
Matthew Meszaros
452fbcd534
feat: require two factor during login
...
Adds the 2FA login challenge step for users who pass email-code verification but still need a TOTP or recovery code.
2026-06-08 15:05:25 +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
5513239b99
feat: manage notification preferences
...
Connects the notification settings page to the preferences API with editable category toggles and save/discard actions.
2026-06-08 15:05:17 +02:00
Matthew Meszaros
defeacee5d
feat: show realtime notifications
...
Adds the dashboard notification bell, marks feed items read, and refreshes the feed from realtime notification events.
2026-06-08 15:05:13 +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
cb85c13135
feat: refresh automations in realtime
2026-06-08 12:04:13 +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
e0d8041fbc
feat: build branching automation flows
2026-06-08 12:03:47 +02:00
Matthew Meszaros
d5032383cd
feat: add automation graph client models
2026-06-08 12:03:41 +02:00
Matthew Meszaros
d00fb3b940
feat: clean integration detail imports
2026-06-08 06:56:14 +02:00
Matthew Meszaros
a6290748e6
feat: move automation editing out of integrations
2026-06-08 06:55:37 +02:00
Matthew Meszaros
0d0da7b94f
feat: route automation dashboard
2026-06-08 06:55:33 +02:00
Matthew Meszaros
478743ed09
feat: add automation flow builder
2026-06-08 06:55:28 +02:00
Matthew Meszaros
f08464ce10
feat: add automation api bindings
2026-06-08 06:55:24 +02:00
Matthew Meszaros
5003ca4c49
feat: stabilize integrations page data
2026-06-08 06:27:02 +02:00
Matthew Meszaros
60924b78c5
feat: clean integration dashboard lint
2026-06-08 06:26:29 +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
edce3f5e8d
feat: add sidebar activity counts
2026-06-07 19:35:27 +02:00
Matthew Meszaros
84e225ac4c
feat: use path based unibox routes
2026-06-07 19:35:16 +02:00
Matthew Meszaros
e87cd7e8e9
feat: fix unibox seen updates
2026-06-07 19:35:12 +02:00
Matthew Meszaros
e0a3ee13a4
feat: polish CRM task type colors
2026-06-07 19:35:05 +02:00
Matthew Meszaros
bd5356c7ff
feat: add CRM task team controls
2026-06-07 19:34:56 +02:00
Matthew Meszaros
81c4539b20
feat: warn when stop on reply is off
2026-06-07 17:27:00 +02:00
Matthew Meszaros
bb91e6d3e2
feat: add instant branch controls
2026-06-07 17:26:50 +02:00
Matthew Meszaros
9e4c9515bd
feat: model instant branch options
2026-06-07 17:24:51 +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