Mathias Schüpany
7b6540a748
fix: Adapt SNS Webhook validation regex pattern to also support AWS eusc partition
2026-03-29 11:32:04 +02:00
Edvin
3b39d847cd
fix: add alt text to email badge image
2026-03-23 09:08:24 +00:00
Dries Augustyns
a99cde8839
fix: Enhance email step configuration validation and recipient handling
2026-03-19 15:18:40 +01:00
Dries Augustyns and GitHub
f44d987bc9
Merge pull request #310 from mdwt/feature/multi-branch-conditions
2026-03-14 16:21:25 +01:00
Dries Augustyns
b9d692cf5b
fix: normalize field references and handle undefined values in JSON
2026-03-13 20:26:28 +01:00
Mikkel Svartveit
4451e921ca
fix: visual editor preview
2026-03-11 14:04:47 +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 <noreply@anthropic.com >
2026-03-11 12:57:05 +02:00
Dries Augustyns
1dc423a1c4
chore: Enhance image upload validation with magic byte checks
2026-03-10 20:10:13 +01:00
Dries Augustyns
cc7fcdb4ef
fix: Align preview and actual email for templates and campaigns
2026-03-05 19:45:28 +01:00
Dries Augustyns and GitHub
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
dependabot[bot] and GitHub
d162f255c2
chore(deps): bump multer from 2.0.2 to 2.1.1
...
Bumps [multer](https://github.com/expressjs/multer ) from 2.0.2 to 2.1.1.
- [Release notes](https://github.com/expressjs/multer/releases )
- [Changelog](https://github.com/expressjs/multer/blob/main/CHANGELOG.md )
- [Commits](https://github.com/expressjs/multer/compare/v2.0.2...v2.1.1 )
---
updated-dependencies:
- dependency-name: multer
dependency-version: 2.1.1
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-05 07:56:38 +00:00
Dries Augustyns
b8f1ad9ab5
fix: Verify SNS URL before sending fetch request
2026-03-03 08:02:36 +01:00
Dries Augustyns
ec1f4c9374
fix: Support any locale on creation
2026-02-26 20:57:14 +01:00
Dries Augustyns
5528288c7b
Merge branch 'next' of https://github.com/useplunk/plunk into next
2026-02-23 21:45:25 +01:00
Dries Augustyns
7bd098bdd0
fix: Add support for STATIC segment type in CampaignService
2026-02-23 21:45:17 +01:00
Dries Augustyns and GitHub
cbea263a91
Merge pull request #298 from josephsellers/fix/cookie-domain-local-tld
2026-02-23 14:17:36 +01:00
Dries Augustyns
4b51e386e3
feat: Static segments
2026-02-23 13:57:32 +01:00
josephsellers
59aa7845ba
fix: correct cookie domain for .local TLD hostnames
...
getCookieDomain() returns '.localhost' for hostnames ending in '.local'
(e.g., app.plunk.local), causing the browser to reject the cookie
because the domain doesn't match the request origin.
Split the .localhost and .local cases so that .local hostnames return
the actual base domain (e.g., .plunk.local).
2026-02-22 16:01:25 +00:00
Dries Augustyns
21af8fe05e
fix: Correctly set domain status on manual verify
2026-02-21 08:41:24 +01:00
Dries Augustyns
2c4d95e604
fix: Do not unsubscribe existing contacts
2026-02-20 16:58:17 +01:00
Dries Augustyns
573e2e8449
security: Enhance job status retrieval with project authorization
2026-02-19 19:51:22 +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
e639c72e8b
fix: Enhance email bounce notification with latest bounce details
2026-02-18 10:20:58 +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
d050b55baa
feat: Add inbound handling
2026-02-17 16:52:56 +01:00
Dries Augustyns
7964563b62
feat: Add advanced DNS configuration
2026-02-17 16:33:34 +01:00
Dries Augustyns
c286f49097
feat: Add initial handling in webhook for inbound
2026-02-17 16:03:50 +01:00
Dries Augustyns
a928666dfc
fix: Update contact subscription logic for upsert operations
2026-02-17 10:25:01 +01:00
Shuvadipta Das
64ba19e589
fix(test): consolidate SES MIME boundary tests into EmailService.test.ts
2026-02-16 18:55:03 +05:30
Shuvadipta Das
3a42012ac7
fix: removed "any" data type from SESService.test.ts
2026-02-16 18:47:42 +05:30
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
Dries Augustyns
d55dda3127
feat: add minimum thresholds for bounce and complaint rates
2026-02-16 11:03:54 +01:00
Dries Augustyns
42ceb6edc0
refactor: remove unnecessary logging for segment processing
2026-02-10 20:23:31 +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
ad0c17da56
fix: Enhance email activity filtering by adding date range checks
2026-01-26 09:24:49 +01:00
Dries Augustyns
c85df75d53
feat: Add bounce and complaint filter to activity feed
2026-01-21 20:52:23 +01:00
Dries Augustyns
e16093a264
chore: Increaes complaint thresholds
2026-01-21 20:46:33 +01:00
Dries Augustyns
3a16ad3221
chore: Add bundled notification for segment membership updates
2026-01-15 19:47:12 +01:00
Dries Augustyns and GitHub
0d1ed0ec67
Merge pull request #263 from 5h0ov/new-olderthan-segmentfilter
2026-01-13 10:30:56 +01:00
Dries Augustyns
e6baace00d
feat: Remove domain from AWS if no longer in use by other projects
2026-01-13 10:19:54 +01:00
Dries Augustyns
0a67a8278f
feat: Add additional checks for website, NS records and personal emails
2026-01-12 20:02:08 +01:00
Dries Augustyns
26800a8553
fix: Improve email verification logic by prioritizing MX record checks and clarifying domain existence validation
2026-01-12 18:49:30 +01:00
Dries Augustyns
93165644af
feat: Ability to disable signups and disable email verification for self-hosters
2026-01-12 15:20:14 +01:00
Dries Augustyns
4db1ccc3fc
fix: Refactor Redis keys to prevent multiple messages on concurrent requests
2026-01-12 08:33:51 +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
Shuvadipta Das
ddbe5237fe
fix: added missing services:down script, added "win32" to supportedArchitectures for yarn package installation, added missing required WIKI_URI to .env.example of api
2026-01-12 11:07:53 +05:30