guardian / guardian/notifications-tooling
US-19 — Notify internal communications teams after dispatch
- Dominant language
- TypeScript
- Stars
- 3
- Forks
- 0
- Avg merge
- 1d 6h
- Merged PRs (30d)
- 108
Description
## User story
As an internal communications team member, I want to be notified when a notification has been sent so that regional teams have visibility of dispatched notifications.
The initial integration should be with Google Chat.
_Slack has deemed to be out of scope and will not be supported as an additional internal communication channel._
## Notification details
The internal alert should include:
- [ ] Notification subject
- [ ] Topic
- [ ] Audience regions
- [ ] Customer communication channels
- [ ] Author or dispatcher
- [ ] Dispatch date and time
- [ ] Delivery status
- [ ] Link to the notification in the internal Dispatcher tool
## Acceptance scenarios
``` gherkin
Feature: Notify internal communications teams after dispatch
Background:
Given an internal communications destination has been configured
Scenario: Notify the internal communications team after a successful dispatch
Given a notification has been successfully dispatched
When the dispatch process completes
Then an internal communications alert should be sent
And the alert should identify the notification subject
And the alert should identify the notification topic
And the alert should identify the selected audience regions
And the alert should identify the customer communication channels
And the alert should identify the user who dispatched the notification
And the alert should include the dispatch date and time
And the alert should include a link to the notification
Scenario: Send an alert to Google Chat
Given Google Chat is configured as an internal communications destination
When a notification is successfully dispatched
Then the notification details should be posted to the configured Google Chat space
Scenario: Send an alert to Slack
Given Slack is configured as an internal communications destination
When a notification is successfully dispatched
Then the notification details should be posted to the configured Slack channel
Scenario: Send alerts to multiple internal communications destinations
Given Google Chat is configured as an internal communications destination
And Slack is configured as an internal communications destination
When a notification is successfully dispatched
Then the notification details should be posted to Google Chat
And the notification details should be posted to Slack
Scenario: Notify the relevant regional teams
Given a notification targets "United Kingdom"
And a Google Chat space has been configured for the United Kingdom communications team
When the notification is successfully dispatched
Then the notification details should be posted to the United Kingdom communications space
And teams for unselected regions should not be notified
Scenario: Notify all regional teams for a Global notification
Given the notification audience is "Global"
And Global represents United Kingdom, United States and Australia
When the notification is successfully dispatched
Then the United Kingdom communications team should be notified
And the United States communications team should be notified
And the Australia communications team should be notified
Scenario: Do not send an internal alert before dispatch
Given a notification has status "draft"
When the notification is saved
Then an internal communications alert should not be sent
Scenario: Do not send a successful-dispatch alert when delivery fails
Given the customer notification could not be successfully dispatched
When the dispatch attempt completes
Then a successful-dispatch alert should not be sent
And the dispatch failure should be recorded
Scenario: Internal communications alert fails
Given the customer notification has been successfully dispatched
And the configured internal communications service is unavailable
When the system attempts to send the internal alert
Then the customer notification should remain marked as dispatched
And the internal alert failure should be recorded
And the system should retry or allow the alert to be resent
Scenario: Prevent duplicate internal alerts
Given an internal alert has already been sent for a notification dispatch
When the dispatch result is processed again
Then a duplicate internal alert should not be sent
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by tracing the dispatch completion flow and the configured internal communications destination described in the issue. Use the Gherkin acceptance scenarios to define the Google Chat alert contents, regional routing, failure handling, retries, and duplicate prevention. Done means successful dispatches produce the required Google Chat alerts while drafts, failed customer deliveries, and repeated results do not send them.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100