Notifications#
The service notifies persons when interaction is required, or in order to inform them about the service. These notifications are sent via email.
Interaction messages#
- Todo: invitation to collaborate
Informational messages#
These messages are sent via third party Brevo, formerly named "Send in Blue". Message templates are created at the third party, and the Novospace backend triggers email creation using an API call.
The spaces-backend service must be configured with a valid API key.
Usecases#
The following use cases exist:
- Reactivation of old users: a manual task, which notifies users inactive for a long time, reminding them of their Novospace account.
- Onboarding: a series of messages that are being sent automatically to new users after their successful signup to Novospace. Messages are sent over several days.
- Reactivation: a series of messages that are being sent automatically to existing users that have been inactive for a while, but have not received these messages within the last eight weeks. Message are sent over several days.
Each message of these usecases maps to a spaces-backend IScopeDefinition
implementation.
Templates#
Templates for transactional messages are created and maintained in the web portal of Brevo: https://app-smtp.brevo.com/templates/.
Usecase | Template ID [DE] | Template ID [EN] |
---|---|---|
Manual reactivation | 5 | 26 |
Onboarding step 1 | 3 | 30 |
Onboarding step 2 | 7 | 29 |
Onboarding step 3 | 9 | 28 |
Onboarding step 4 | 11 | 27 |
Onboarding step 5 | 13 | 24 |
Reactivation step 1 | 15 | 25 |
Reactivation step 2 | 17 | 22 |
Reactivation step 3 | 19 | 23 |
Mapping of template ID to usecase and language is configured in each IScopeDefinition
implementation.
The templates have access to some context via the params
JSON object. It is provided by spaces-backend as part of the API call to trigger an individual email notification. The following fields are available:
profile
: the public profile of the personuid
(string, required): The unique ID of the person within Skalio IDname
(string, optional): Name of the person, as set by themselves, possibly nullemail
(string, required): Verified, primary email address of the personhasAvatar
(boolean, required): True, if the person has uploaded his avatarlocale
(string, required): The person's localetimezone
(string, required): The person's time zone
To access a field, use the following code inside the template:
Hello {{ params.profile.name | default : "my friend" }},
Execution#
Notifications are triggered by various scheduled jobs:
OnboardingMailJob
: runs all usecases of the onboarding-seriesReactivationMailTueWedThuJob
: runs reactivation step 1, on specific days onlyReactivationMailDailyJob
: runs the reactivation steps 2 and 3
The NotifyUsersCommand
can be used to manually run a single usecase, or even interactively trigger a specific template for selected persons.
Execution fails if the API key is not configured.