Matthew Meszaros
6ca3d2e924
feat: add changelog landing showcase
...
Introduce a compact changelog section to highlight recent platform updates after the product feature tour.
2026-06-06 11:55:31 +02:00
Matthew Meszaros
ef2ba2af28
feat: add crm pipeline landing mock
...
Show how positive replies become pipeline deals with stages, owners, notes, and tasks.
2026-06-06 11:55:28 +02:00
Matthew Meszaros
5cd4e0cad2
feat: add developer api landing mock
...
Add the API keys and webhook mock that supports the developer-focused landing section.
2026-06-06 11:55:23 +02:00
Matthew Meszaros
2c32940ee3
feat: add integrations landing mock
...
Show provider connections, signed webhook configuration, and encrypted-token positioning for the integrations section.
2026-06-06 11:55:19 +02:00
Matthew Meszaros
77fa10a3dd
feat: add ai assistant landing mock
...
Add the writing assistant screen that demonstrates prompt-driven email drafting and tone controls.
2026-06-06 11:55:15 +02:00
Matthew Meszaros
9d4cf33880
feat: add analytics landing mock
...
Show deliverability metrics, campaign ranking, and account health in a product-style analytics screen.
2026-06-06 11:55:10 +02:00
Matthew Meszaros
c66c0a4856
feat: add unified inbox landing mock
...
Present the reply triage workflow with mailbox filters, message classification, and an inline reply pane.
2026-06-06 11:55:07 +02:00
Matthew Meszaros
26abb6e17c
feat: add campaign schedule landing mock
...
Add a weekly sending-window editor mock with preset controls, timezone details, and drag-to-create animation hooks.
2026-06-06 11:55:01 +02:00
Matthew Meszaros
7badea0a1b
feat: add campaign builder landing mock
...
Show the sequence builder canvas with branching, step controls, and an email composer for the campaign feature section.
2026-06-06 11:54:58 +02:00
Matthew Meszaros
417db48b14
feat: add reusable feature showcase section
...
Introduce the framed product-window section used to present each landing-page feature with consistent copy, callouts, and scaling.
2026-06-06 11:54:53 +02:00
Matthew Meszaros
5a0e42620b
feat: allow sequence mock step limits
...
Let the sequence mock render a compact subset of steps for smaller landing-page showcase contexts.
2026-06-06 11:54:48 +02:00
Matthew Meszaros
098c65377c
feat: normalize dashboard mock copy punctuation
...
Align the existing dashboard mock comments with the site copy guidance before adding the new landing sections.
2026-06-06 11:54:43 +02:00
Matthew Meszaros
c3489b3bee
feat: widen site content containers
...
Give landing sections a shared wider content measure so the new feature showcase aligns with the header, hero, and footer.
2026-06-06 11:54:39 +02:00
Matthew Meszaros
82f3677a94
feat: add site copy style guidance
...
Document the house rule for avoiding overused em dashes in user-facing site and web copy.
2026-06-06 11:54:34 +02:00
Matthew Meszaros
6abb26192b
Merge pull request #27 from warmbly/feature/campaign-experience-2
...
feat: campaign experience overhaul
2026-06-06 09:01:38 +02:00
Matthew Meszaros
8bc85efe07
feat: authenticate protoc setup in ci
...
Pass the GitHub token to arduino/setup-protoc so Go CI avoids unauthenticated GitHub API rate limits.
2026-06-06 08:39:42 +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
10ffc2ad67
feat: mark live campaign analytics
...
Show a live indicator beside campaign performance metrics while a campaign is actively sending.
2026-06-06 07:53:15 +02:00
Matthew Meszaros
a4801de99a
feat: animate campaign overview stats
...
Use the animated number primitive for live campaign overview counters and rates.
2026-06-06 07:52:43 +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
8b93230c19
feat: document data modeling guidance
...
Add repository guidance for typed columns versus jsonb configuration blobs and track the schema placeholder.
2026-06-06 07:50:46 +02:00
Matthew Meszaros
cd1b503575
feat: add personalization guide
...
Document merge variables, custom fields, and conditional template syntax in the public Learn section.
2026-06-06 07:50:32 +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
da82993846
feat: add campaign workflow backend support
...
Add sequence action-node storage and execution, template conditional rendering, lead progress state, profile updates, webhook fan-out throttling, and supporting repository fixes.
2026-06-06 07:49:52 +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
49f1b28bd1
feat: add campaign lead order api
...
Wire campaign lead ordering through handlers, service methods, and campaign routes.
2026-06-05 15:44:26 +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
293842c842
feat: expose campaign lead order service contract
...
Add campaign service method declarations for listing and replacing manual campaign lead order.
2026-06-05 15:42:40 +02:00
Matthew Meszaros
c4c27fcc19
feat: add campaign lead ordering backend
...
Add campaign lead ordering repository methods for manual send order and tighten strict ESP matching so SMTP/IMAP is only a fallback outside strict mode.
2026-06-05 15:42:12 +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
77de336d78
feat: unify campaign sender pools
...
Resolve campaign senders as the union of explicit accounts and tag-selected mailboxes, with all active mailboxes as the empty-selection fallback. Update readiness checks, active-campaign counts, and rotation cursor handling for the unified pool.
2026-06-05 14:35:52 +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
0e26b9cd00
feat: refine campaign branch scheduling
...
Evaluate branch conditions relative to the previous send, defer while windows are still undecided, and let the routed pair finder handle deleted targets and loops at schedule time.
2026-06-05 09:10:57 +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
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
e92ec7c661
feat: add ai writing credit backend
...
Add an organization credit ledger with idempotent consumption, plan credit grants, Anthropic/OpenAI writing providers, and a gated generation endpoint for campaign writing assistance.
2026-06-05 06:03:32 +02:00
Matthew Meszaros
b701e4efab
feat: send campaign email attachments
...
Carry attachment references inside the stored email body blob, resolve bytes on workers, and encode attachments for Gmail API and SMTP sends without changing the Kafka send-email contract.
2026-06-05 06:03:21 +02:00
Matthew Meszaros
3c440a9f0c
feat: add campaign attachment endpoints
...
Persist campaign attachment metadata, enforce attachment storage quotas, and expose list, upload, and delete routes backed by object storage.
2026-06-05 06:03:13 +02:00
Matthew Meszaros
630e69037a
feat: add per-step campaign ab variants
...
Scope campaign A/B variants to individual sequence steps and select step variants deterministically per contact and step. Keep campaign-level variants on the existing assignment flow.
2026-06-05 06:03:00 +02:00
Matthew Meszaros
2a2e248ad9
feat: add campaign sequence branching backend
...
Store per-step branching conditions, validate branch targets, and select campaign contact steps by following the flow graph. Preserve linear progression for steps without branch conditions.
2026-06-05 06:02:55 +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