157 Commits

Author SHA1 Message Date
Dries Augustyns 94ceadbbe4 feat: add disabledReason field to projects for better tracking of disable reasons 2026-05-22 13:03:32 +02:00
Dries Augustyns de6335e999 feat: implement bulk contact action selector for improved flexibility in bulk operations 2026-05-10 10:40:40 +02:00
Dries Augustyns fadc19d139 feat: Ability to change subscription status in workflows 2026-05-09 08:43:05 +02:00
Dries Augustyns 361ec0b1eb refactor: convert forwardRef components to function components for consistency 2026-05-04 21:08:14 +02:00
Dries Augustyns a3cc62213f feat: add segment membership operators and enhance segment filter functionality 2026-05-04 19:07:04 +02:00
Dries Augustyns 0f00ca1b8c feat: add 'notTriggeredWithin' operator to segment filters for enhanced event tracking 2026-05-04 18:04:24 +02:00
Dries Augustyns 29883ffc71 fix: enhance project name validation to exclude invisible and decorative characters 2026-05-03 08:14:18 +02:00
Dries Augustyns bb72911fa2 feat: enhance contact addition with bulk email lookup and subscription options 2026-05-01 19:44:48 +02:00
Dries Augustyns 2eb407993b feat: add configurable attachment limits for email service
Closes #358
2026-04-29 08:48:03 +02:00
Dries Augustyns d7eb85ffdd fix: update project disabled messages for clarity and consistency 2026-04-24 19:21:07 +02:00
Dries Augustyns 1c89ed083e feat: implement CommandPalette for enhanced navigation and recent pages tracking 2026-04-24 18:42:04 +02:00
Dries Augustyns f40cc86cec fix: Harmonize rings and hover states 2026-04-24 16:01:18 +02:00
Dries Augustyns c1bcd358cc fix: Consistency across buttons and labels 2026-04-24 13:35:25 +02:00
Dries Augustyns 60146fcc10 ui: replace custom loading spinners with IconSpinner component across multiple files 2026-04-21 16:28:03 +02:00
Dries Augustyns e048fc1570 feat: implement meter event processing with queue for Stripe billing 2026-04-20 21:30:52 +02:00
Dries Augustyns 0803fd7bc4 ui: Clean up empty states, modals, animations 2026-04-17 12:27:40 +02:00
Dries Augustyns c0b2abaeca feat: Enhance security metrics handling with new thresholds and improved messaging 2026-04-15 20:55:42 +02:00
Dries Augustyns 7834b9e7ef fix: Update language validation regex to support locale variants 2026-04-05 11:42:25 +02:00
Dries Augustyns fb5aa8796a feat: Add headless template type 2026-04-02 12:43:27 +02:00
Dries Augustyns d24259e8d2 feat: Add type to campaign 2026-04-01 18:49:51 +02:00
Dries Augustyns 3343e891bd feat: Disable projects on failed payment 2026-04-01 18:07:08 +02:00
Dries Augustyns b50b5af763 fix: Enhance email step configuration validation and recipient handling 2026-03-31 19:22:46 +02:00
Hana Chang 33df5632a3 feat(i18n): add Chinese translations (zh-TW, zh-HK, zh-CN)
Add three Chinese locale variants with region-specific flags:
- zh-TW: Traditional Chinese (Taiwan) 🇹🇼
- zh-HK: Traditional Chinese (Hong Kong) 🇭🇰
- zh-CN: Simplified Chinese (China) 🇨🇳

Each variant uses region-appropriate terminology (e.g. 郵件/電郵/邮件
for "email"), consistent with the existing pattern of tying languages
to specific regions (e.g. Spanish (Spain), Portuguese with 🇧🇷).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 16:45:18 +08:00
Sigmabrogz 7b6872c4b7 feat(i18n): add Italian translation 2026-03-18 20:05:39 +00:00
Dries Augustyns f44d987bc9 Merge pull request #310 from mdwt/feature/multi-branch-conditions 2026-03-14 16:21:25 +01:00
Mikkel Svartveit 44987d2b5e fix: update old references to next.useplunk.com 2026-03-11 15:11:13 +01:00
mdwt 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 <noreply@anthropic.com>
2026-03-11 12:57:05 +02:00
Dries Augustyns 9b15b93b96 Merge pull request #281 from 5h0ov/multipart/related-support-embed-image
feat(api): support inline images in emails using Content-ID
2026-03-05 11:26:41 +01:00
Dries Augustyns 4b51e386e3 feat: Static segments 2026-02-23 13:57:32 +01:00
Ryan Casas 9568b7d345 Add Spanish translations to i18n index 2026-02-19 12:16:40 +01:00
Ryan Casas 6bba9b6199 Add Spanish localization for email preferences 2026-02-19 12:10:29 +01:00
Ryan Casas 2f55d32485 Add Spanish (Spain) language support 2026-02-19 12:05:07 +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 de7ed84fcf feat: Add billing for inbound 2026-02-18 15:23:31 +01:00
Dries Augustyns 78d3d224af feat: Add support for custom email recipients in workflow steps 2026-02-17 18:57:15 +01:00
Shuvadipta Das 08e5c0d930 fix: contentId header injection fixed and separte unit test SESService added to verify MIME boundaries 2026-02-16 18:27:32 +05:30
Shuvadipta Das 18788ac1ca Merge branch 'next' of https://github.com/5h0ov/plunk into multipart/related-support-embed-image 2026-02-16 18:27:07 +05:30
Bart Potmalnik d2d779c68f feat(i18n): add Polish locale translations
Add polish translations

Ref #246
2026-02-15 21:43:29 +01:00
Jan Wunsch 14c471e4ca feat(i18n): add Czech locale translations
Add Czech (cs) translations for contact-facing pages and email footers,
and wire up the locale in the i18n system with the correct flag.
2026-02-11 01:48:38 +01:00
Shuvadipta Das c40394ffd6 feat(api): support inline images in emails using Content-ID 2026-01-31 10:23:42 +05:30
Dries Augustyns c85df75d53 feat: Add bounce and complaint filter to activity feed 2026-01-21 20:52:23 +01:00
Milen Mihalev 663bc2be8d feat(i18n): Add Bulgarian translations 2026-01-15 11:50:25 +02:00
Marcel Cruz c2afb2dfab feat(i18n): Add Portuguese translations 2026-01-15 00:32:37 +01:00
Dries Augustyns 0d1ed0ec67 Merge pull request #263 from 5h0ov/new-olderthan-segmentfilter 2026-01-13 10:30:56 +01:00
Dries Augustyns 0a67a8278f feat: Add additional checks for website, NS records and personal emails 2026-01-12 20:02:08 +01:00
Shuvadipta Das b5fa21a57c feat: add "olderThan" segment filter operator
- Added `olderThan` and `triggeredOlderThan` operators to types and schemas
- Implemented backend logic for `olderThan` operator in SegmentService
- Updated SegmentFilterBuilder and shared index/types files to support new time-based operators
2026-01-12 11:10:53 +05:30
Dries Augustyns e75e07f73f fix: Add better validation for sender email 2026-01-08 09:04:50 +01:00
Dries Augustyns e732c76490 feat: Add forwarding domains as verification check 2026-01-03 09:54:17 +01:00
Dries Augustyns da7f3e5718 chore: Remove comments 2026-01-01 14:08:08 +01:00