Campaign audience: multi-group/segment include and exclude #59

Closed
opened 2026-10-15 16:39:57 -04:00 by vmanne-poc · 0 comments
Owner
  • Select one or more groups and/or segments to INCLUDE, plus optional groups/segments to EXCLUDE.
  • Recipient = ACTIVE contact matching ANY include (or all active contacts if no includes) AND NOT matching any exclude.
  • Each contact is emailed once (dedupe).
  • Backward compatibility with the existing single Campaign.segmentId: existing API clients sending segmentId must keep working.
  • Live recipient count via the existing GET audience endpoint, accepting the new selection.
  • Count the audience in SQL (COUNT/EXISTS), not by loading all recipients (Phase 12 review finding).
  • Send/schedule confirmation spells out the audience.
  • Sent campaigns record the targeted groups/segments, shown in the campaign report.
  • Block (409) deleting a group or segment used by a DRAFT or SCHEDULED campaign.
  • Tests for include/exclude logic, dedupe, legacy segmentId, count endpoint and 409 on delete.
- Select one or more groups and/or segments to INCLUDE, plus optional groups/segments to EXCLUDE. - Recipient = ACTIVE contact matching ANY include (or all active contacts if no includes) AND NOT matching any exclude. - Each contact is emailed once (dedupe). - Backward compatibility with the existing single `Campaign.segmentId`: existing API clients sending `segmentId` must keep working. - Live recipient count via the existing GET audience endpoint, accepting the new selection. - Count the audience in SQL (COUNT/EXISTS), not by loading all recipients (Phase 12 review finding). - Send/schedule confirmation spells out the audience. - Sent campaigns record the targeted groups/segments, shown in the campaign report. - Block (409) deleting a group or segment used by a DRAFT or SCHEDULED campaign. - Tests for include/exclude logic, dedupe, legacy segmentId, count endpoint and 409 on delete.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
vmanne-poc/Postak#59
No description provided.