Dries Augustyns
c32b54f588
fix: Prevent switching if nodes are attached to multi-branch
2026-03-11 15:30:00 +01:00
mdwt and Claude Opus 4.6
92949b7596
feat: Add multi-branch workflow conditions (switch/case)
...
Add a `mode: 'multi'` variant to CONDITION steps that allows matching a
field against multiple values, each routing to its own named branch.
Branches are evaluated in order; first match wins. A `default` branch
catches unmatched contacts.
- Schema: z.union for legacy binary + multi-branch condition configs
- Backend: executeCondition handles multi-branch evaluation with stable
branch IDs, falls back to default when no branch matches
- Builder: Dynamic branch rendering with per-branch colors/labels,
dagre layout spreads branches horizontally
- Config UI: Mode toggle (Simple If/Else vs Multi-branch Switch),
dynamic branch list with add/remove
- Tests: 8 new multi-branch tests covering matching, ordering, default
fallback, mixed operators, and transition routing
- Full backward compatibility: all changes gated on config.mode === 'multi'
Co-Authored-By: Claude Opus 4.6 <[email protected] >
2026-03-11 12:57:05 +02:00
Dries Augustyns
1a1e3204ee
chore: Add web analytics
2026-03-10 20:03:11 +01:00
Dries Augustyns
4b51e386e3
feat: Static segments
2026-02-23 13:57:32 +01:00
Dries Augustyns
eec37ecb31
feat: Ability to change workflow trigger
2026-02-18 20:26:41 +01:00
Dries Augustyns
f947ee6f22
feat: Add dedicated received type
2026-02-18 16:24:55 +01:00
Dries Augustyns
d9ae171cc7
chore: fix linting errors
2026-02-17 19:09:01 +01:00
Dries Augustyns
78d3d224af
feat: Add support for custom email recipients in workflow steps
2026-02-17 18:57:15 +01:00
Dries Augustyns
4c81d9ec04
feat: add documentation link and redirect to WIKI_URI
2026-02-17 10:30:17 +01:00
Dries Augustyns
0cf0a26a97
feat: Integrate NuqsAdapter for improved state management and query handling
2026-02-06 09:01:25 +01:00
Dries Augustyns
c85df75d53
feat: Add bounce and complaint filter to activity feed
2026-01-21 20:52:23 +01:00
Dries Augustyns and Copilot
de106f9d91
Update apps/web/src/pages/templates/[id].tsx
...
Co-authored-by: Copilot <[email protected] >
2026-01-17 12:30:00 +01:00
Jan Behrends
8a38766c02
fix: Ensure template type is loaded before rendering Select
...
Addresses #242 . The Select component renders with value={undefined}
before useEffect populates editedTemplate.type. This triggers a React
warning: 'Select is changing from uncontrolled to controlled.'
On the hosted environment, this likely causes Radix UI's data-placeholder
attribute to remain set on the trigger, with the selected value text
not being rendered despite the value being loaded in state.
This change extends the loading condition to wait for editedTemplate.type,
ensuring the Select never renders in an undefined/uncontrolled state.
2026-01-16 13:09:14 +01:00
Dries Augustyns
b6c5471d27
fix: Update template fetching to use Template type and simplify body access
2026-01-06 07:46:28 +01:00
Dries Augustyns
fa22b8220a
fix: Update templates data fetching to use PaginatedResponse type
2026-01-06 07:35:12 +01:00
Dries Augustyns
ee00eb3481
fix: Update sentCount on campaign sent for correct overview stats
2026-01-03 11:18:44 +01:00
Dries Augustyns
8790c45edc
fix: Migrate over to new pagination format in dashboard
2026-01-02 10:40:39 +01:00
Dries Augustyns
457c829b2d
feat: Add cooldown to resend verification email
2026-01-01 14:26:26 +01:00
Dries Augustyns
da7f3e5718
chore: Remove comments
2026-01-01 14:08:08 +01:00
Dries Augustyns
85c992a9f9
types: Abstract inline interfaces to @plunk/types
2026-01-01 10:52:43 +01:00
Dries Augustyns
d56ba0cf9b
chore: Resolve linting warnings
2025-12-29 15:29:29 +01:00
Dries Augustyns
bc8611a662
feat: Add additional banner and information about security metrics
2025-12-28 14:00:15 +01:00
Dries Augustyns
e1f826357d
feat: Add project-scoped language for unsubscribe footer and contact-facing pages
2025-12-21 13:09:21 +01:00
Dries Augustyns
8a136dde55
feat: Allow to pick currency when starting subscription
2025-12-21 11:53:32 +01:00
Dries Augustyns
1a5607f278
feat: Add email verification and password reset
2025-12-20 20:06:25 +01:00
Dries Augustyns
661bf2a9e7
style: Remove shadow from input element for consistency
2025-12-19 13:40:52 +01:00
Dries Augustyns
726f66762b
feat: Add bulk actions to contact overview
2025-12-18 16:12:42 +01:00
Dries Augustyns
3336fa1e38
fix: Overflow of inputs in email editor
2025-12-16 13:50:32 +01:00
Dries Augustyns
11ef47b576
fix: Unauthenticated users are redirected to login on subscribe/unsubscribe/manage pages
2025-12-11 18:41:37 +01:00
Dries Augustyns
fbd303801f
feat: Add security center and warning for exceeding bounce/complaint rates
2025-12-11 18:34:30 +01:00
nithur-m
1452cbd591
format fulldate for campaign sent time
2025-12-11 20:03:01 +05:30
Dries Augustyns
07f875c18c
fix: display email progress instead of scheduling progress for campaigns
2025-12-11 14:36:26 +01:00
Dries Augustyns
5e4adb71ad
fix: custom relative time to shorten strings for better UI fit
2025-12-11 11:13:39 +01:00
Dries Augustyns
1019ba0d82
feat: Improved createdAt and updatedAt visualisation
2025-12-11 10:57:56 +01:00
Dries Augustyns
6b25bbe2f8
feat: ability to create new campaigns based on templates or previous campaigns
2025-12-10 21:04:51 +01:00
Dries Augustyns
b9758149f5
chore: update description in subscription card
2025-12-10 20:30:27 +01:00
Dries Augustyns
9375c598ee
chore: add indicator about campaign recipients recalculation
2025-12-10 19:52:09 +01:00
Dries Augustyns
badb035585
fix: ability to clear reply-to and from name from templates and campaigns
2025-12-09 15:47:27 +01:00
Dries Augustyns
5a0a41c6bb
fix: Only fetch project members if project Id is defined
2025-12-09 13:24:54 +01:00
Dries Augustyns
129a496206
chore: linting error
2025-12-09 11:24:13 +01:00
Dries Augustyns
d0191be31d
fix: Correctly show recipient count during creation and edit
2025-12-09 11:08:53 +01:00
Dries Augustyns
85b9d7afe7
fix: Allow changing audience type after creation of campaign
2025-12-09 10:40:42 +01:00
Dries Augustyns
672f1e6657
feat: Add improved html editor using CodeMirror
2025-12-09 10:15:33 +01:00
Dries Augustyns
433e796c04
fix: Hide upsell banner if billing is not configured
2025-12-09 08:45:53 +01:00
Dries Augustyns
77089fcdd6
style: Hide labels of tabs on smaller screens
2025-12-08 21:48:09 +01:00
Dries Augustyns
a372e55b78
style: Added placeholder to EmailEditor.tsx
2025-12-08 17:45:08 +01:00
Dries Augustyns
82e846e993
Add improved filtering in conditions block of workflows
2025-12-07 17:35:44 +01:00
Dries Augustyns
4d7c68db3a
Use alert instead of custom component
2025-12-07 16:29:38 +01:00
Dries Augustyns
16572b8f49
Remove emojis and improve descriptions
2025-12-07 16:25:34 +01:00
Dries Augustyns
c189175658
Selectors with description
2025-12-07 14:20:44 +01:00