URD: Marketing
| Module | Version | Updated |
|---|---|---|
EXT-02 | v0.2 | 2026-06-04 |
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.
| Feature ID | Feature | Phase | Epic | 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: PRD-CAP-001 · PRD-CAP-002 · 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 |
| URD-CAP-005 | M | Operator manages captured inquiries from the back office - list, filter, and move each through its lifecycle (assign, reply, status, lost reason) |
| URD-CAP-006 | M | Operator converts an inquiry into onboarding, pre-filling the new client from the inquiry |
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 |