Matthew Meszaros
2c910dcdeb
feat: make a campaign step's Original a first-class weighted A/B arm driven by a single draggable traffic-split bar, persisting the control share as an is_control variant row
2026-06-15 08:11:53 +02:00
Matthew Meszaros
c5dfa5e4e7
feat: remove the HTTP-request action from campaign steps and automations in favor of signed webhooks, keep fire_event for custom payloads, and drop the now-unused outbound quota plumbing
2026-06-15 08:11:35 +02:00
Matthew Meszaros
fcafac4195
refactor: remove the campaign 'notify (webhook)' step type now that the HTTP request step covers outbound calls and there is no webhook setup surface
2026-06-14 10:48:06 +02:00
Matthew Meszaros
ab24d8bbc8
feat: add a 'Fire event' action and campaign step that publish custom events to the realtime gateway (no public URL), an HTTP-request campaign step, a configurable automation dry-run test with per-step toggles, and fix the false 'updated by a teammate' toast on your own save
2026-06-14 09:52:49 +02:00
Matthew Meszaros
c5911fe37a
feat: fire run_automation on campaign instant branches (reply/open/click) through a wired AutomationRunner instead of stamping the action node sent without ever running the flow
2026-06-13 06:26:48 +02:00
Matthew Meszaros
ba89a932cd
feat: run the label_email action on reply — campaign instant and scheduled paths via advanced LabelThread/LabelLatestThreadForContact, automations via execNativeAction reading thread_id and _user_id from the reply payload — and move the native-actions adapter to a shared package wired into the consumer too so reply/bounce/warmup automation actions stop silently failing
2026-06-12 16:44:16 +02:00
Matthew Meszaros
8de7e32857
feat: treat a campaign step's own email as the A/B control arm so contacts split across the original plus active variants by weight, and redesign the step variants editor to show the original and variants as one weighted set with live split percentages
2026-06-12 08:04:03 +02:00
Matthew Meszaros
abdfd05c34
feat: org-scope realtime events (inbox, campaign, tracking, account health) and emit EMAIL_SENT/EMAIL_REPLIED/EMAIL_DELETED pulses so the whole team's dashboard updates live
2026-06-11 07:43:57 +02:00
Matthew Meszaros
e67ee189a2
feat: add in-app notification core
...
Adds the persisted notification feed, user preferences, realtime notification events, and advanced-service notification hooks for replies and deliverability health events.
2026-06-08 15:04:29 +02:00
Matthew Meszaros
c113cd5646
feat: generalize instant action execution
2026-06-07 17:24:28 +02:00
Matthew Meszaros
b1518579bb
feat: fire reply branch actions instantly
2026-06-07 12:39:27 +02:00
Matthew Meszaros
f5abb8cbb6
feat: add CRM deal sequence actions
2026-06-07 11:48:03 +02:00
Matthew Meszaros
714d316bbe
feat: classify inbound campaign replies
2026-06-07 11:47:26 +02:00
Matthew Meszaros
9885e8b952
feat: create CRM tasks from campaign actions
2026-06-07 06:18:22 +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
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
5b9029d2a8
feat: add campaign schedule windows backend
...
Store per-day schedule windows on campaigns and validate updates before persistence. Use the schedule windows in campaign scheduling, including legacy day/time derivation for existing campaigns.
2026-06-04 18:56:43 +02:00
Matthew Meszaros
1afe453eb0
feat: add deliverability controls
...
Add seed inbox-placement testing with admin management, placement result polling, and seed mailbox persistence.
Add pre-send email verification, invalid-recipient skipping, warmup-health campaign gating, and RFC 8058 one-click unsubscribe headers/endpoints.
2026-06-03 16:47:53 +02:00
Matthew Meszaros
f96bdfd2c1
feat: improve warmup content safeguards
...
Use subject-specific humanization so short warmup subjects are not mangled by body-level opener stripping.
Add rDNS verification logging after provisioning and remove the unused public campaign breaker interface method.
2026-06-03 11:32:19 +02:00
Matthew Meszaros
de7e28d294
feat: add campaign deliverability breaker
...
Track complaint events in campaign progress and evaluate rolling bounce and complaint rates before auto-pausing campaigns.
Emit an early warning webhook when campaign deliverability enters the warning band.
2026-06-03 06:26:56 +02:00
Matthew Meszaros
4500aeba0f
feat: add integration oauth connections
...
Adds OAuth-backed integration connection management across the API, repository, event dispatch, migrations, docs, and dashboard UI.
Includes realtime invalidation and small dashboard type compatibility fixes needed for the web typecheck gate.
2026-06-01 04:25:14 +02:00
Matthew Meszaros
0f883e38ac
fix: record bounces in campaign progress so analytics and auto-pause work
2026-04-12 11:05:10 +00:00
Matthew Meszaros
7f90323d55
chore: remove metrics endpoint, prometheus instrumentation, and IP rate limiter
2026-04-10 06:32:30 +00:00
Matthew Meszaros
0799020dac
feat: add metrics, warmup content variety, tz-aware scheduling, org budget, admin stubs, and bug fixes
2026-04-09 14:33:45 +00:00
Matthew Meszaros
19d20e72b4
feat: add warmup health throttled state, complaint/bounce metrics, A/B analysis, and rate limiting
2026-04-09 12:51:30 +00:00
Matthew Meszaros
21ffb6a748
feat: add advanced outreach controls with A/B testing, deliverability dashboard, and DLQ
2026-02-20 08:59:17 +00:00