Dries Augustyns
b7eb2549d4
fix: turn warning into success log
2026-04-21 22:08:07 +02:00
Dries Augustyns
91d0d2d297
fix: update response format for phishing analysis and improve JSON parsing comment
2026-04-21 21:53:16 +02:00
Dries Augustyns
862875428d
fix: log message for projects passing phishing checks
2026-04-21 21:49:57 +02:00
Dries Augustyns
2da8b065d0
feat: implement phishing detection using OpenRouter API with configurable sampling rate
2026-04-21 21:28:31 +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
4322de929a
fix: reconcile totalRecipients in CampaignService to prevent stuck campaigns
...
closes #348
2026-04-20 20:15:56 +02:00
Dries Augustyns
b79d416667
feat: implement AWS SNS signature verification in SecurityService
2026-04-20 18:40:19 +02:00
Dries Augustyns
5e62f517fc
feat: Update new project bounce thresholds for stricter email handling
2026-04-16 08:05:56 +02:00
Dries Augustyns
effdfdb6d6
test: Update absolute count ceilings tests for established projects with project aging logic
2026-04-15 21:04:53 +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
52cb2b6c77
fix: Refactor date filtering logic for pagination in ActivityFeed and ActivityService
2026-04-13 17:06:22 +02:00
Dries Augustyns
9e2400c6de
fix: Enhance email processing to support campaign types and improve unsubscribe logic
2026-04-02 14:09:01 +02:00
Dries Augustyns
fb5aa8796a
feat: Add headless template type
2026-04-02 12:43:27 +02:00
Dries Augustyns
284838279d
test: Mock DNS lookup in integration tests for WorkflowExecutionService
2026-04-02 07:56:54 +02:00
Dries Augustyns
2c5a71518d
fix: Implement SSRF protection in webhook handling with safeFetch method
2026-04-02 07:48:43 +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
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
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
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
78d3d224af
feat: Add support for custom email recipients in workflow steps
2026-02-17 18:57:15 +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
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