URD: Marketing
| Module | EXT-02 | Version | v0.2 |
|---|---|---|---|
| Status | Planned | Date | 2026-06-04 |
Business documentation. This URD is Marketing's feature list - each feature below is one Functional Area (
<AREA>). The same<AREA>keys the feature's PRDs (PRD-<AREA>-NNN) and tests (TC-<AREA>-NNN), and each feature is listed in the Delivery feature catalog. See the Feature Spine convention.
1. Purpose
Help merchants reach customers efficiently - capture interested leads, then send relevant, automated messages across channels to drive engagement and repeat visits.
2. Scope
| Included | Excluded |
|---|---|
| Inquiry & newsletter capture | Provider-side delivery infrastructure |
| Multi-channel campaigns & automation | Promotional pricing (Campaign module) |
| Campaign analytics & A/B testing | Loyalty earning rules (Loyalty module) |
3. Definitions
| Term | Definition |
|---|---|
| Inquiry | A contact/sales/demo request captured from the public site |
| Subscriber | A newsletter opt-in with subscribe/unsubscribe state |
| Campaign | A planned message sent to an audience segment |
| Automation | A triggered or scheduled message sequence (drip) |
4. Conceptual Model
Conceptual only - capture-side detail lives in the developer outreach docs.
5. Feature Catalog
The feature list of this module. Each row is one feature (a Functional Area). Detail in §6. Mirrored in the Delivery feature catalog.
| Feature ID | Feature | Phase | Status | Priority |
|---|---|---|---|---|
CAP | Lead & Subscriber Capture | P1 | Built | High |
CMP | Campaigns & Automation | P2 | Planned | Medium |
Status: live from Plane where mapped, otherwise registry-declared. Vocabulary mirrors Plane (state-group / phase).
6. Features
One sub-section per feature, in catalog order. Each feature keeps its description, requirements, and acceptance together. Priority = MoSCoW (Must / Should / Could / Won't).
CAP - Lead & Subscriber Capture Planned
Feature ID: marketing/CAP · Phase: P1 · PRDs: - · Dev: @nx/outreach
What it does for users: collects inquiries (contact/sales/demo requests) and newsletter sign-ups from the public site, with idempotent subscribe, token-based unsubscribe, and subscriber statistics for admins.
Requirements
| ID | P | Requirement |
|---|---|---|
| URD-CAP-001 | M | Capture an inquiry submitted from the public site |
| URD-CAP-002 | M | Newsletter subscribe is idempotent by email |
| URD-CAP-003 | S | Token-based unsubscribe |
| URD-CAP-004 | S | Subscriber statistics for admin |
Acceptance
AC-CAP-01: Idempotent subscribe
| Given | When | Then |
|---|---|---|
| An email not yet subscribed | The email subscribes twice | A single active subscriber exists; no duplicate |
CMP - Campaigns & Automation Planned
Feature ID: marketing/CMP · Phase: P2 · PRDs: - · Dev: @nx/outreach
What it does for users: send a campaign to a customer segment, build triggered/drip automation sequences, and A/B test and report campaign performance.
Requirements
| ID | P | Requirement |
|---|---|---|
| URD-CMP-001 | S | Send a campaign to a customer segment |
| URD-CMP-002 | C | Triggered / drip automation |
| URD-CMP-003 | C | A/B test and report campaign performance |
Acceptance
AC-CMP-01: Campaign to segment
| Given | When | Then |
|---|---|---|
| A customer segment exists | A campaign is sent to that segment | Each subscriber in the segment receives the campaign |
7. Constraints & Non-Goals
Constraints
| ID | Constraint |
|---|---|
| C-01 | Unsubscribe must always be honored before any send |
| C-02 | Capture tables are global (not merchant-scoped) |
Non-Goals
- Building email/SMS delivery infrastructure (uses external providers)
- Promotional pricing logic (owned by Campaign)
8. Version History
| Date | Author | Description | Ver |
|---|---|---|---|
| 2026-05-30 | PM | Initial stub; capture live, campaigns planned | v0.1 |
| 2026-06-04 | Claude (AI pair) | Reorganize by feature (Feature Spine) | v0.2 |