---
id: CON-PFM-NOT-002
name: Notification Submission
feature: FEAT-PFM-NOT-02
product_area: platform
module: notifications
revision: 1
status: superseded
product_intent: confirmed
implementation_evidence: observed
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
definition: >-
  A retained description of the notification submission facets now included
  within the broad Staff Notification concept.
owned_by: MOD-PFM-NOT
synonyms:
  - publish
  - notification request
not_to_be_confused_with:
  - 'A notification, which is one person’s item'
  - 'A communication request, which asks for association e-mail'
facets:
  - name: Event identity
    meaning: >-
      A producer-selected event key derives the request identifier and
      recognizes repeated submissions.
    used_for: Make transaction retries refer to the existing request.
  - name: Recipient selection
    meaning: >-
      Entries specify users, scoped responsibilities, roles or permissions, with
      optional reasons, exclusions and actor inclusion.
    used_for: Resolve current staff recipients during processing.
  - name: Event context
    meaning: >-
      Declared data, a subject record and optional responsibility scope
      accompany the announcement.
    used_for: 'Support rendering, navigation and collapse matching.'
  - name: Delivery interval
    meaning: >-
      Optional not-before and expiry instants bound when the request remains
      useful.
    used_for: Delay future work and reject stale delivery.
  - name: Replacement and withdrawal
    meaning: >-
      A replacement key links successor events; cancellation withdraws an
      earlier request.
    used_for: Keep notices aligned with the underlying event.
  - name: Processing result
    meaning: >-
      Acceptance, empty audiences, invalidity, replacement, expiry and
      cancellation explain how processing ended.
    used_for: Include unsuccessful and recipient-less submissions in history.
  - name: Rejected outsiders
    meaning: >-
      Processing records named users removed by the customer and account
      boundary.
    used_for: Explain isolation decisions rather than silently losing recipients.
  - name: Closure
    meaning: >-
      Settlement follows expiry and completion of outstanding work, closing
      further request changes.
    used_for: Retain cancellation opportunities while the request remains open.
  - name: Transactional queue entry
    meaning: >-
      The producer inserts short-lived publication work in its business
      transaction.
    used_for: Tie dispatch availability to business commit.
  - name: HQ selection
    meaning: Only the reserved system workspace can address the system audience.
    used_for: >-
      Select Slack channels for operational alerts without selecting customer
      staff.
relationships:
  - to: CON-PFM-NOT-003
    statement: >-
      The active declaration restricts permitted audience types for its
      submissions.
    provenance: test
    source: >-
      services-platform:modules/notifications/tests/unit/audience-planner.spec.js#refuses
      a kind the definition does not accept, naming the kinds it does
  - to: CON-PFM-NOT-003
    statement: >-
      One occurrence has at most one item for each recipient, while collapse can
      combine several requests.
    provenance: test
    source: >-
      services-platform:modules/notifications/tests/integration/services/orchestration/orchestrate-request.integration.spec.js#makes
      one instance for one occurrence however many requests name it
  - to: CON-PFM-NOT-005
    statement: >-
      Staff notification and association communication publication both use
      queued work, with different recipient models.
    provenance: documented
    source: >-
      services-platform:docs/notifications.md#2. The producer’s door: the queue
      row
lifecycle:
  - state: queued
    meaning: Publication is committed but processing has not evaluated it.
    how_it_changes: A committed producer entry becomes available for dispatch when due.
  - state: accepted and open
    meaning: Processing created notices and the request can still be withdrawn.
    how_it_changes: Audience resolution succeeds and notices are persisted.
  - state: settled
    meaning: The request has reached closure and further cancellation has no effect.
    how_it_changes: Reconciliation finds expiry passed and no outstanding work.
  - state: told nobody
    meaning: >-
      An empty audience, invalidity, expiry or cancellation explains why there
      were no notices.
    how_it_changes: Processing identifies the corresponding terminal non-sending outcome.
  - state: superseded
    meaning: The request has been replaced or withdrawn through its event identity.
    how_it_changes: Cancellation or an eligible successor uses its replacement key.
acted_on_by:
  - CAP-PFM-NOT-002
  - CAP-PFM-NOT-003
  - CAP-PFM-NOT-005
  - CAP-PFM-NOT-006
  - CAP-PFM-NOT-008
  - CAP-PFM-NOT-011
  - CAP-PFM-NOT-012
  - CAP-PFM-NOT-013
  - CAP-PFM-NOT-014
visible_to:
  - ACT-PFM-030
  - ACT-PFM-028
  - ACT-PFM-029
  - ACT-PFM-031
evidence:
  - >-
    Pinned evidence inventory 1:
    services-platform:modules/notifications/tests/unit/audience-planner.spec.js;
    services-platform:docs/notifications.md
  - >-
    Pinned evidence inventory 2:
    services-platform:modules/notifications/tests/integration/services/orchestration/orchestrate-request.integration.spec.js;
    services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md
supersedes: []
intent_sources:
  - 'services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#2. Scope'
---

# Notification Submission

## What It Is

This record is superseded. The notification submission is a facet of Staff Notification, and the permanent record remains available for historical references. The active staff model combines declarations, transactional requests, recipient items and delivery history.

A notification submission records that an application wants Platform to announce an event. The producer describes the audience instead of assembling channel addresses. Platform can then evaluate current staff membership and responsibility holders when work is processed. The submission remains useful as a history record even when it reaches nobody.

This distinction matters when a business transaction is retried or an event is withdrawn. The submission identity links retries to the same work, while its result distinguishes acceptance from invalid data, an empty audience or expiry. A receipt is acknowledgement of publication; it does not establish that a recipient has received or read anything.

## What It Is Not

A submission is neither an inbox item nor proof of delivery. Its audience can resolve to no eligible users. It is also separate from association e-mail submission, even though both systems use transactional queue publication. The two models select recipients and render content for different purposes.

## How It Is Used

The producer writes publication work alongside its business change using a restricted capability role. After commit, dispatch and consumer processing validate the definition, resolve recipients and create notices. Future-dated work waits, and expired work stops. Producers cancel or replace events that no longer apply. Reconciliation closes requests after expiry and completion of pending delivery work.

## Its Facets

**Event identity.** A producer-selected event key derives the request identifier and recognizes repeated submissions. Make transaction retries refer to the existing request.

**Recipient selection.** Entries specify users, scoped responsibilities, roles or permissions, with optional reasons, exclusions and actor inclusion. Resolve current staff recipients during processing.

**Event context.** Declared data, a subject record and optional responsibility scope accompany the announcement. Support rendering, navigation and collapse matching.

**Delivery interval.** Optional not-before and expiry instants bound when the request remains useful. Delay future work and reject stale delivery.

**Replacement and withdrawal.** A replacement key links successor events; cancellation withdraws an earlier request. Keep notices aligned with the underlying event.

**Processing result.** Acceptance, empty audiences, invalidity, replacement, expiry and cancellation explain how processing ended. Include unsuccessful and recipient-less submissions in history.

**Rejected outsiders.** Processing records named users removed by the customer and account boundary. Explain isolation decisions rather than silently losing recipients.

**Closure.** Settlement follows expiry and completion of outstanding work, closing further request changes. Retain cancellation opportunities while the request remains open.

**Transactional queue entry.** The producer inserts short-lived publication work in its business transaction. Tie dispatch availability to business commit.

**HQ selection.** Only the reserved system workspace can address the system audience. Select Slack channels for operational alerts without selecting customer staff.

## How It Relates

The registered notification type bounds the submission's audience and data. One accepted submission may create several recipient notices; collapse can make several submissions contribute to one notice. The request remains the audit connection between producer activity and what recipients encountered.

## What It Could Become

The product should resolve whether an ending event remains useful when its original assignment announcement never reached the recipient. Producer adoption also needs the shared submission role confirmed by the owning infrastructure work. Future planning should preserve inspectable empty and invalid outcomes rather than treating publication receipts as delivery success.
