Marketing · Email campaign list, duplication & stop
Lists email campaigns with their segment, subject, send date, A/B template and delivery statistics (delivered, opened, clicked, bounced, blocked, spam), and offers duplicate, stop, edit, delete and a read-only detail view.
| Area | Marketing |
| Routes | marketing.emailing · marketing.emailing.index · marketing.emailing.show |
| Centre modules | marketingMailing |
| Staff levels | root · admin · manager · crmmanager · weboperator · content_creator |
| Models | email-campaign · email-campaign-template · segment · test-ab |
| UI label | title.header.emailing.campaigns / menu.navbar.marketing.emailing.index |
| Coverage | 4 use cases · 2 happy · 3 failure |
How it works
Four statuses: draft, scheduled, active, archived. Statistics are columns on the list itself, so performance is visible without opening each campaign. stop halts a running or scheduled campaign; duplicate clones it as a new draft (marketing.emailing.copy-of prefix). Both are confirmation-modal driven (onCloseDuplicateModal, onCloseStopModal). Errors are routed through _setSaveError reading adapterError?.errors.
Use cases
Why someone opens this (4)
- Monitoring open and click rates across recent sends.
- Stopping a campaign immediately when an error in the content is spotted mid-send.
- Cloning a recurring newsletter rather than rebuilding it.
- Spotting a bounce or spam spike that suggests a list-quality problem.
Path map
flowchart LR F(["Email campaign list, duplication and stop"]):::feat F --> H1["Campaign duplicated"]:::ok F --> H2["Running campaign stopped"]:::ok F -.-> X1["Duplication fails"]:::bad F -.-> X2["Stop fails"]:::bad F -.-> X3["Edit/stop not permitted"]:::bad classDef feat fill:#b0432c,stroke:#b0432c,color:#ffffff,font-weight:bold classDef ok fill:#e3f1ea,stroke:#0d6b42,color:#0d4a2e classDef bad fill:#f7e6e2,stroke:#9a2d1c,color:#6e1f13
Happy paths
Campaign duplicated
- User clicks duplicate and confirms.
- A copy is created named with the
marketing.emailing.copy-ofprefix, in draft.- The user edits the copy and schedules it.
Running campaign stopped
- User clicks stop on an active campaign and confirms.
- The send is halted and the status changes.
Failure paths
Duplication fails
Cause — API error while cloning.
What happens —
marketing.emailing.duplicate-error(‘Error on duplicating campaign’).
Stop fails
Cause — API error, or the campaign already finished sending.
What happens —
marketing.emailing.stop-error(‘Error on stopping campaign’). Because a send in progress cannot be un-sent, a failed stop has real consequences.
Edit/stop not permitted
Cause —
email-campaignabilitycanEdit/canStopfalse for the status or role.What happens — Actions are hidden.
QA checklist
Tick these off while regression-testing this feature. The boxes are plain Markdown, so progress is visible in git diffs.
- ✅ Campaign duplicated
- ✅ Running campaign stopped
- ⛔ Duplication fails
- ⛔ Stop fails
- ⛔ Edit/stop not permitted
Implementation
app/controllers/marketing/emailing/index.jsapp/routes/marketing/emailing/index.jsapp/enums/emailing-campaign-status.jsapp/abilities/email-campaign.js
Translation keys (20)
Key English title.header.emailing.campaignsEmail campaigns menu.navbar.marketing.emailing.indexEmail campaigns marketing.new-emailingNew emailing campaign email-campaign.nameCampaign name email-campaign.subjectSubject email-campaign.sentDatetimeSent date email-campaign.statistic.deliveredDelivered email-campaign.statistic.openedOpened email-campaign.statistic.clickedClicked email-campaign.statistic.bouncedBounced email-campaign.statistic.blockedBlocked email-campaign.statistic.spamSpam email-campaign.ab-test.templateA/B test template email-campaign.activeActive email-campaign.scheduledScheduled email-campaign.draftDraft email-campaign.archivedArchived marketing.emailing.duplicate-errorError on duplicating campaign marketing.emailing.stop-errorError on stopping campaign marketing.emailing.copy-ofCopy of
Related
- Same area — Activity list & duplication · Activity editor (loyalty mechanics, rules & targeting) · Activity report & PDF · Activity campaigns (programme grouping) · Email campaign builder (wizard, A-B test, scheduling) · Digital games (lottery) · Fidcard · Present cards (Fideliza gift cards) · Book appointment
- Shares data with — Customer list & filtering · Save current filters as a segment · Segment list, refresh & export · Segment builder with automatic tag actions · Proposal editor (content, coupon, push, AI images) · Push notification editor (scheduling, geofencing, deep links) · Filter & segment builder component
- Behind the same module — Email campaign builder (wizard, A-B test, scheduling)
Generated from doc/feature-inventory.json · id marketing-email-campaign-list · commit 276788ca6