CMS · Push notification list & publishing
Lists push notifications with subject, segment, frequency, date window, status and delivery stats (active app users, sent, opened), with publish, duplicate, detail, edit and delete actions.
| Area | CMS |
| Routes | cms.push-notifications · cms.push-notifications.index · cms.push-notifications.show |
| Centre modules | cms |
| Staff levels | root · admin · manager · crmmanager · weboperator · content_creator |
| Models | push-firebase-config · push-notification |
| UI label | title.header.push-notifications / menu.navbar.push-notification.index |
| Coverage | 4 use cases · 2 happy · 4 failure |
How it works
Four statuses (draft, scheduled, active, archived). Duplication has a dedicated temporal guard: a push scheduled in the past cannot be duplicated (cms.push-notification-duplicated-startdate-after-now-error), because the copy would otherwise be born invalid. Duplicates are named with the cms.push-notification.copy-of prefix. The list also surfaces the filters a push targeted, so it is auditable after the fact.
Use cases
Why someone opens this (4)
- Checking how many app users a push reached and how many opened it.
- Re-sending a successful notification by duplicating and rescheduling it.
- Publishing a prepared draft at the right moment.
- Auditing which audience a past notification went to.
Path map
flowchart LR F(["Push notification list and publishing"]):::feat F --> H1["Draft published"]:::ok F --> H2["Notification duplicated and rescheduled"]:::ok F -.-> X1["Duplicating a past notification"]:::bad F -.-> X2["Duplication fails"]:::bad F -.-> X3["Invalid record"]:::bad F -.-> X4["Action not permitted"]:::bad classDef feat fill:#6a4a8f,stroke:#6a4a8f,color:#ffffff,font-weight:bold classDef ok fill:#e3f1ea,stroke:#0d6b42,color:#0d4a2e classDef bad fill:#f7e6e2,stroke:#9a2d1c,color:#6e1f13
Happy paths
Draft published
- User opens the list and clicks publish on a draft.
- The notification moves to scheduled/active and begins delivering at its start datetime.
- Sent and opened counts populate on the list.
Notification duplicated and rescheduled
- User duplicates a notification whose start date is still in the future.
- A copy is created with the
copy-ofprefix.- The user adjusts the date and publishes it.
Failure paths
Duplicating a past notification
Cause — Source push has a start datetime in the past.
What happens —
cms.push-notification-duplicated-startdate-after-now-error(‘Push notifications scheduled in the past cannot be duplicated’).
Duplication fails
Cause — API error.
What happens —
cms.push-notification-duplicated-error.
Invalid record
Cause — An action is invoked without a valid model.
What happens — Throws
TypeError('model' is not a valid push notification).
Action not permitted
Cause —
push-notificationability denies publish/edit/delete for the role.What happens — Icons hidden.
QA checklist
Tick these off while regression-testing this feature. The boxes are plain Markdown, so progress is visible in git diffs.
- ✅ Draft published
- ✅ Notification duplicated and rescheduled
- ⛔ Duplicating a past notification
- ⛔ Duplication fails
- ⛔ Invalid record
- ⛔ Action not permitted
Implementation
app/controllers/cms/push-notifications/index.jsapp/routes/cms/push-notifications/index.jsapp/enums/push-notification-status.jsapp/abilities/push-notification.js
Translation keys (15)
Key English title.header.push-notificationsPush notifications menu.navbar.push-notification.indexPush notifications push-notification.newNew push notification push-notification.subjectSubject push-notification.segmentSegment push-notification.frequencyFrequency push-notification.active-app-usersActive users push-notification.sentSent push-notification.openedOpened push-notification.statusStatus push-notification.stateState push-notification.filtersFilters cms.push-notification.copy-ofCopy Of cms.push-notification-duplicated-errorError on duplicating push notification cms.push-notification-duplicated-startdate-after-now-errorPush notifications scheduled in the past cannot be duplicated
Related
- Same area — Proposal list & publication workflow · Proposal editor (content, coupon, push, AI images) · Push notification editor (scheduling, geofencing, deep links) · Content categories · App button manager (MOFs) · Multicentre proposals
Generated from doc/feature-inventory.json · id cms-push-notification-list · commit 276788ca6