notification-api icon indicating copy to clipboard operation
notification-api copied to clipboard

Use `sent` status on notifications that were sent instead of `sending`

Open jimleroyer opened this issue 3 years ago • 1 comments

Do not merge / do not close PR yet

This requires changes in the admin as well. Merging this without the admin changes could break how we properly report the statistics in the admin UI and reports.

We are keeping this PR opened until research gets back on the user experience output of such changes.

Summary | Résumé

Exploring the option to use the SENT status for the notifications after it went through the AWS provider.

At the moment, the current code base for emails complete skip the SENT status. The SENDING status is set instead when the notifications are sent to the AWS provider. Upon receiving the receipt, the status then becomes DELIVERED status.

This lead to some confusion to know the real status of the notifications, especially as it gets carried up through the UI where users see that many of their notifications that were actually sent are still with a SENDING status despite it was really sent, but did not have a receipt yet and might never because there is a certain percentage that never will (around 1%-3% of sent notifications).

Looking on the GDS side, they have a similar logic to what our current code base reflect.

Test instructions | Instructions pour tester la modification

More to come with this...

Unresolved questions / Out of scope | Questions non résolues ou hors sujet

  • Will this affect the notifications or their status reporting somehow by having the SENT status set earlier?

Reviewer checklist | Liste de vérification du réviseur

This is a suggested checklist of questions reviewers might ask during their review | Voici une suggestion de liste de vérification comprenant des questions que les réviseurs pourraient poser pendant leur examen :

  • [ ] Does this meet a user need? | Est-ce que ça répond à un besoin utilisateur?
  • [ ] Is it accessible? | Est-ce que c’est accessible?
  • [ ] Is it translated between both offical languages? | Est-ce dans les deux langues officielles?
  • [ ] Is the code maintainable? | Est-ce que le code peut être maintenu?
  • [ ] Have you tested it? | L’avez-vous testé?
  • [ ] Are there automated tests? | Y a-t-il des tests automatisés?
  • [ ] Does this cause automated test coverage to drop? | Est-ce que ça entraîne une baisse de la quantité de code couvert par les tests automatisés?
  • [ ] Does this break existing functionality? | Est-ce que ça brise une fonctionnalité existante?
  • [ ] Should this be split into smaller PRs to decrease change risk? | Est-ce que ça devrait être divisé en de plus petites demandes de tirage (« pull requests ») afin de réduire le risque lié aux modifications?
  • [ ] Does this change the privacy policy? | Est-ce que ça entraîne une modification de la politique de confidentialité?
  • [ ] Does this introduce any security concerns? | Est-ce que ça introduit des préoccupations liées à la sécurité?
  • [ ] Does this significantly alter performance? | Est-ce que ça modifie de façon importante la performance?
  • [ ] What is the risk level of using added dependencies? | Quel est le degré de risque d’utiliser des dépendances ajoutées?
  • [ ] Should any documentation be updated as a result of this? (i.e. README setup, etc.) | Faudra-t-il mettre à jour la documentation à la suite de ce changement (fichier README, etc.)?

jimleroyer avatar Aug 05 '21 20:08 jimleroyer