Skip to content

How notifications work

Kai Hendry edited this page Feb 21, 2019 · 3 revisions

Goal

Make notifications useful to the end user

Project tracker: https://github.com/orgs/unee-t/projects/2

How they work

https://media.dev.unee-t.com/2019-02-21/notification-overview.mp4

When email fails

https://github.com/unee-t/ses2case is a lambda function that takes AWS SES delivery reports and basically tells frontend whether to mark the email as unverified again, to prevent emails.

[1] Notification settings

The collection notificationSettingsOverrides on a global context allows to set rules on a per unit or per case id level for each user:

"notificationSettings" : {
            "assignedNewCase" : true,
            "assignedExistingCase" : true,
            "invitedToCase" : true,
            "caseNewMessage" : true,
            "caseUpdate" : true,
            "caseUpdate_types" : {
                    "Solution" : true,
                    "Deadline" : true,
                    "StatusResolved" : true
            },
            "caseNewMessage_types" : {
                    "Tenant" : true,
                    "Owner/Landlord" : true,
                    "Contractor" : true,
                    "Management Company" : true,
                    "Agent" : true
            },
            "severityOverrideThreshold" : null
    },

We have a way of granular filtering whether messages become notifications or not.

Problems

https://github.com/unee-t/frontend/labels/notifications

  • since we rely on lambda functions, it is largely impossible to test end to end locally or replicate with an AWS account
  • to setup up the lambdas even if have your own AWS account. Permissions are rather painful and there are lot of nuances. There are some tests: https://github.com/unee-t/lambda2sns/tree/master/tests
  • You can locally simulate messages if you know the payloads. Hint: Study messagePayloads for a template and use Postman!
  • this is very hard to test end to end. For example on the test system you must make sure you have a Bugzilla ID with your own email, in order to receive the messages in order to verify the notification is what you expect it to be
  • it's difficult for users to actually understand the value of each notification type or how it was generated / came to be
  • it typically takes several hours to rule a email recipient as failing, providing their SMTP actually tell AWS SES

Engagement

Last but not least, we do have a way to measure if users engaged with a notification https://github.com/unee-t/engagement

However can we say that if a user doesn't engage with the URL, the notification was ineffective? Some people might just be reading updates via email.

Clone this wiki locally