- 34 Minutes to read
- Print
- DarkLight
- PDF
Manage notifications
- 34 Minutes to read
- Print
- DarkLight
- PDF
Within the platform, there is a non-exhaustive list of notifications: invitation, modification, cancellation, reminder, etc.
They are easily activated and personalisable.
In this section, we describe how a notification works:
how to create a notification?
where in the platform?
which content to enter?
when to send,
etc.
List of email models
As indicated above, the application contains a non-exhaustive list of notifications. They are classed thematically/per type:
Alerts
Virtual class
Communities
Curricula
Evaluations
Registrations
etc.
The visibility of this notification list is via the personalisation of a newly-created notification in a specific context: New personalisation.
Privileges linked to these pages: See/Modify the notifications
Certain notifications are linked to a specific licence – for exemple those linked to a curriculum sub licence
The list of notification models regrouped thematically.
In the table, the notion of context indicates how much notification context can be used (explanation in the following section).
Personalisation
Context
Definition of the notion of personalisation: the creation of a notification for a given context.
There are several contexts in the LMS platform as shown in this list:
For exemple, you can create a notification personalisation for training session A and another for training session B – session level. You can also create a personalisation at domain level to inform default behavior for this domain.
Notifications linked to a domain are visible and personalisable from the page Settings > Notifications.
Notifications linked to a training session are visible and personnalisable from a training file via a dedicated tab.
As for the previous notifications to view/personalize a notification per training, you require privileges.
Notifications linked to a session are visible and personnalisable from a training session file via a dedicated tab.
As for a curriculum or a training path, there is a dedicated notifications page.
As for previous notifications, to view/personalize a notification per session, curriculum, training path, you require privileges.
The interfaces
Context: domain
View To send: at domain level
For a context, the notifications display has 2 views:
To send
All
The objective of this display is to have a precise view of the notifications to potentially send AND all those parameters concerning the context. And another advantage, the configuration is more intuitive and simple for a manager.
The objectif of the view To send is to make visible all notifications that can be sent potentially for a given context.
The objective of the view All is to make notifications visible concerning the context without exception.
Explanation of the view To send:
Block per context to regroup notifications that apply in a specific context:
Applicable to the domain,
Applicable to a training,
Applicable to an evaluation,
Applicable to a curriculum,
Regrouping of the notifications per theme with the indicator of the number of notifications per theme (expanded by default + sorted alphabetically on the themes).
Only display active notifications for the current context (in our case: domain).
In a theme, notifications are sorted per creation date.
Certain notifications include the conditions closely linked to these elements:
Registration mode: FO, BO, Self-service
Learning mode: In-person, E-learning, etc.
Process: generic, …, specialised
Examples of notifications concerned:
Cursus: Cancellation of a registration to a path, …
Training: Reminder of a registration, …
Evaluation: Evaluation certificate, …
Examples of a notification of a same type: Reminder of an accreditation
Explanation of the view All:
Block per context to regroup notifications that apply to a given context:
Applicable to the domain,
Applicable to a training,
Applicable to an evaluation,
Applicable to a cursus.
Regrouping of the notifications per theme with the indicator of the number of notifications per theme (expanded by default + sorted alphabetically per themes).
Display all notifications in the context.
However, the sorting of notifications of a same type when there are several for a same type is as follows:
Type > Level > Code > Date of creation (+ potentially specific conditions, as explained in the previous section).
The first in the list of the notifications of a same type corresponding to the Leader - is shown in bold characters = the most applicable in the context.
Actions | Objective | Associated privilege |
Preview | Quick access rapid for a preview of the notification | x |
Duplicate | Copie of the notification to se the approprier in the context courant | Modify in the current context |
Activate | Action to activate the notification | Modify + be in the context of the notification |
Deactivate | Action to deactivate the notification | Modify + be in the context of the notification |
Delete | Action to delete the notification | Modify + be in the context of the notification |
Context: other
For the other contexts, the rules are the same and the almost identical interface, except that the blocks context in the view To send for a simple reason that all notifications apply to the current context.
Possibles actions
In this section, we will take the case of a user with full right on notifications (see the privileges concerned).
On the list of notifications, several possibilities:
Creation of a personalised notification from a model
See the personalisation
Duplication
Deletion
Immediate send of the notifications to collaborators concerned: action possible in the training session page, evaluation and path.
See notification histories: action possible in the page of a training session, evaluation and path.
Create a personalisation
As seen previously, the Bealink LMS platform provides a user with a panel of notifications of different types.
When creating a notification, the user has to choose a notification type in the list proposed. They need to know what type of notification they need for which context.
After choosing the notification, enter the data. Il se retrouve sur sa personalisation with 2 tabs: Parameters and Content.
New configuration – main page
The tab Parameter is the main container for general information specific to the notification. These fields can vary following the types of notifications. And mandatory fields vary according to the models.
Explanation of the key fields:
Reference: name of the personalised notification.
Activate: this notification is activated if this case is checked.
Send a copy to the recipients managers: option to send in CC to the recipient managers of the notification.
Copy the referent of the recipient: This option allows us to send notifications to delegated admin who manages a dedicated group. The groups of managers can be configured from the menu Directory > Referent groups. Note that a user can only belong to a single referent group, and each group to a single referent.
Copy to the group referent (correspondant training).
Cc: Possibility to add copy recipients – email address from the directory of the users OR an external email address.
Cci: Possibility to add blind copy recipients – email address from the directory of the users OR an external email address. NB: The language of the user in Cc or Cci is not taken into account for the content of the mail
Send strategy:
Internal and external mailbox in immediate mode: the mails are sent via the internal and external mailboxes immediately.
Internal and external mailbox in operator mode: the mails are sent via the internal and external mailboxes or to the operateur – the notion of operator is for internal use at Bealink, the email address is the one defined in the configuration of the project and is fixed.
Internal mailbox and external deferred mode: the mails are sent via the internal and external mailboxes in deferred mode.
Model: if the models of notifications are configured and available, you can select a suitable model.
Parameter specifics: enter the number of days before the start of the session for mail notification send parameter.
Learning mode: information linked to the trainings targeted and the notification.
Registration: information linked to targeted training sessions and the notification.
The tab Content completes the object and the email body for each active language of the application (see the section on the content for more explanations).
Duplication
For simplifier the creation of notification, the user a the possibility of dupliquer a notification to the aide of a button Duplicate in the kebab menu of the notification concerned.
During duplication, all properties are copied, including the reference label of the reference. However, for differentiate the notification originale of the copie (in the list of the notifications), this label is followed a number ‘(1)’.
In the case of several duplications of a same notification personalised, it's the latest notification duplicated (which has been created lately) which will be used when there is a send (if it is activated).
Deletion
Simple deletion of a notification personalised using a button Delete in the notification kebab menu in question.
You need to have the privilege Modify the notifications.
Preview
The preview of a notification displays a mail preview close to the reality of the actual send and also show content or design inconsistencies.
The object and the email body are displayed per language.
In a content, there can be dynamic fields. And previews of these fields are automatically calculated/generated for the user – there is no need to insert text to have an acceptable look.
If, in a notification, there are fields concerning the training, the session or other, and that the user is in the training context for exemple, the preview loads automatically the merge fields [%(Training.Name)%] per the label of the current training course.
By default, these are simple parameters that enable their transformation.
By default, no modification is necessary for a client for the preview.
Configuration parameter in The notifications > Preview.
Explanation of the preview configuration:
Parameter | Default value | Goal | Example |
Model of property of type text for the preview of notifications | [[%(*)%]] | Template for the merge fields of type text. | PropertyDomain [Domain] |
Number of elements to add in the lists for the preview of notifications | 2 | Number of elements added in the lists - for each | A user will be assigned to 2 structures |
Maximum depth level of the properties for the preview of notifications | 3 | The depth for the calculation of a dynamic field Recommended value: 1 to 3 | PropertySession.Training.Name sera calculated mais pas Session.Training.CreatedBy.Name |
Boolean to take into account for the preview of notifications | Yes | Value displayed for a boolean property | Propertydto.IsElearning will be set to true |
List of the first names male / female possible | Adam;Adrian;Alan;… | Value displayed for the property FirstName of User | PropertyUser.FirstName set to Evan |
List of the last names possible | Bautista;Belcher;… | Value displayed for the property LastName of User | PropertyUser.LastName set to Pilot |
Name of the training by default | Training | Labelled by default for a merge fields of type text and element concerned = Training | [Training] |
Name of the training session by default | Training session | Labelled by default for a merge fields of type text and element concerned = TrainingSession | [Training session] |
Name of the evaluation by default | Evaluation | Labelled by default for a merge fields of type text and element concerned = Evaluation | [Evaluation] |
Name of the evaluation session | Evaluation session | Labelled by default for a merge fields of type text and element concerned = EvaluationSession | [Evaluation session] |
Name of the curriculum by default | Curriculum | Labelled by default for merge fields of type text and element concerned = Cursus | [Curriculum] |
Name of the training path by default | Path | Labelled by default for merge fields of type text and element concerned = CursusSession | [Path] |
The latest parameter for an entity have a single language – FR by default
Management at application level – and not at domain level
Example for this context:
Notification: Invitation cancellation
In the context Training
Display the name of the training course in the preview !
Immediate send of the notifications activated
In the platform, there are 2 ways to resend activated notifications:
Via the batch: automatic send when running the Send emails by batch process – they are sent every day (or different periods depending on the client configuration).
Manually: buttons exist on certain pages to send certains notifications.
The Notifications batch task simplifies the creation of mails to send.
In the event of a mail send error by the batch, the processing of other Notification mail continues – application logs are provided. The mail is then set to do not send mode.
At session level, a manager or a trainer may want to inform learners or other users of specific information at a given time T, without waiting for the batch to run at night. If a user has Access privilege to the button enabling session notification sends. They can resend the mails (active notifications using the button in the session notification page.
The action resend the notifications concerns ALL active notifications in the view To send.
Notifications history
Open Settings > Notifications > Notification history
A page exists to consult mails sent by the platform at application level, for a training session/evaluation, or for a training path.
Privileges for the pages History: See notification histories
Search criteria
A search page will filter mails sent with different criteria:
Object of the mail: search in the mail title
Content: search in the content of the mail
Send status:
Sent: the mail has been sent.
Ready to send via batch: the mail is waiting to go via the batch.
Send failed: send errors of the mail.
Ready for immediate send: the mail can be sent now.
Sent with warnings: the mail has been sent partially to some recipients – send errors for certain mails.
Search period: set a start and end date as a search interval.
Recipient: search the mails of a specific recipient in the application directory.
Type of mail: search per mail type, exemple invitation to a session.
Training session / Evaluation / Path: retrieve all the mails sent for a given element.
Page of notification histories
During a search, the mails found are those sent by the batch (those for which the sender is not a user) and not those sent via the internal mailbox of a user to from the page Mon webmail.
Example:
For a manager who wants to view the history of mails sent to their team. The list is sorted from the most recent to the oldest in terms of the send – column Created on.
A button Resend will perform a bulk resend of the selected mails in the list – it's an immediate send to all the recipients of the mails even those who have already received the mail in the case of a mail with a partial (with errors).
Privilege for this button: Resend notifications
The title of the mail is a link enabling access to the detail of the mail (see below).
Privilege to see the detail: See the detail of notification histories
The column Last send attempt is actualised at each send attemp (field in Com_MailBoxMessage: Mess_LastTry). If the first send is successful, this column will have the same value as the date of creation Created on. In all the cases, it's the column Send status which indicates if the mail has actually been sent. The column Last attempt to send is for purely indicative purposes.
A history is also accessible in other contexts – at training session level, at evaluation session level or at training path level. To access this, there are other privileges:
Access notification histories of a training session.
Access notification histories of an evaluation session.
Access notification histories of a curriculum training path.
On the other hand, the general privilege (explained above) remains the one that filters the data sent back = the mails.
Contents
Each notification a a content by default. It is the email body sent to a recipient.
Global information
The content can be added in the Content tab. For each language activated, a block is displayed with these fields:
Date of latest content modification
Object: the subject of the mail – 250 characters maximum
Body: the email body– HTML text with the possibility of adding dynamic fields.
By default, each notification already includes content, stored in the translation files. If a user personalizes a notification, the content is stored in the database.
Several actions are available for the user at the content level:
Save: All page contents are saved in the database – on the first save, the notification becomes specific to the current domaine.
Verify: as the content can have dynamic fields – calculated when the first mail is generated – the syntax is important (explanation in the following section). This button enables you to validate the syntax of the text for all the languages. In the case of an error of syntax, a message alerts the user – you must correct if this is the case, otherwise the mails linked to this notification will fail when they are sent.
Preview: see how the mail to send looks like the actual mail – in read only form, you can see the appropriate section.
Verification
After modifying the content, the user can check the content of the mail to rapidly locate syntax errors and avoid having problems when sending the mails. Using the button Verify, the text of the content of all the languages is valid.
In the event of error, a message appears showing the errors.
A dynamic field linked to data of type Object [%(Step.Data.RequestTitle)%] is not checked.
Active by default, the content of a notification is checked when saved – same function as the button. In the case of an error, the save will not be performed, we need to correct the problem retrieved by the platform.
Feature to deactivate in a configuration parameter: Verify the syntax of the content before the save – to true by default. Even in the case of an activation, the button Verify is still available in the page.
Dynamic fields
For each notification, of the parameter (entities/application objects) are passed to the mail for its construction. The user can add properties/dynamic fields from the database in the content of the mail.
To insert a property or a dynamic field in the content of the mail, you first need to open the text with the HTML editor. You must then click on the button Insert a fusion field (next to the save button) in the action bar of the HTML editor. A window opens with the list of properties possibles:
Insertion of a dynamic field in the content
Syntax
An explanation of the syntax is necessary to better understand the insertion of an element in a mail.
Configuration Text
To insert a parameter of type Text, use this syntax [%(Name_Parameter)%].
Example: Hello [%(User.Name)%]
In the case of a parameter of type Text but in HTML format, the user can delete the HTML tags around the text with this syntaxe:
[%(Name_Parameter:-HTML)%]
Example:
The training with the description: [%(Training.Description:-HTML)%]
The option +HTML in a text does not exist – this syntax should transform carriage returns into <br/>.
Configuration Date
For a parameter of type DateTime, you can specify the required format.
Example:
[%(TrainingSession.FinishedOn:yyyy/MM/dd)%]
[%(TrainingSession.FinishedOn:D)%] equals by default dd/MM/yyyy
[%(TrainingSession.FinishedOn:D)%] equals by default to dd/MM/yyyy HH:mm
The equivalence D and DT can be changed via the multilingual (Syfadis.Framework.Formatting.Format.Date and Syfadis.Framework. Formatting.Format.DateTime), the date in the e-mail can therefore open differently according to the language of the user.
The other possibilities of a date format:
D = Format for local date (without the time)
DT = Format for date + local time
T = Format for local time
DZ = Format for exact date (UTC)
DTZ = Format for exact date + time (UTC)
TZ = Format for the exact time (UTC)
To add today's date, you must pass via a property calculated that indicates the notification send date to the creation of the mail.
Syntax to add in the notification MailType: [%(TIME:D)%]
Conditions: IF
Syntax: [%IF(Condition)[%Instruction1%][%instruction2%]%]
Warning, do not add or leave a space!
For an "if" without "else", you still need the empty brackets:
[%IF(Condition)[%Instruction1%][%%]%]
The only tests possibles are of the conditions of equality between a property and a chain, or a test to check that a property is not null.
Syntax: [%IF(property)[%...%][%...%]%] or [%IF(property,chain)[%...%][%...%]%]
Example:: [%IF(RendezVous.Rooms)[%...%][%...%]%][%IF(TrainingSession.MeetingSessions.Count, 3)[%...%][%...%]%]
Loop: Forever
Syntax: [%FOREACH(collection,name variable)[%instruction%]%]
Warning, do not add or leave a space!
Example: [%FOREACH(TrainingSession.MeetingSessions,ms)[%[%ms.Name%]%]%]
Attachment
You can add any type of document (PDF, txt, doc, etc.) to a notification using the expression ATTACH as long as we can have a relative link to a file on the application.
For example, the user can perform a PDF export of the page Catalogue, you must then add this file as a document to the Documents of the training and attach this document to a mail with a instruction of this type:
[%ATTACH()[%~/Files/Applications/65536/Documents/337772544/report_70c48a58-b3c2-4975-9066-51e8db52ebd2.pdf%][%Presentation%]%]
Syntax: [%ATTACH()[%(url)%][%Name attachment%]%]
The name of the attachment is optional.
Attachments of type HTML Document
You can add a document of the type HTML to a notification using the expression ATTACHHTMLDOCUMENT as long as we can have a relative link to a file on the application. The link must be complete in the content of the mail. Enter an ID or the import code (ExternalId) corresponding to the HTML document. The name of the document must be entered:
ID: application report ID
ExternalID: import report ID
Examples:
[%ATTACHHTMLDOCUMENT()[%attendancemeeting_html%][%file name of the attendance sheet%]%]
For an attendance sheet to a session
Syntax:
[%ATTACHHTMLDOCUMENT()[% ID or ExternalID %][% name %]%]
The name of the attachment is optional.
Method call
Syntax:
With 1 argument as a property:
[%DATASOURCE(Name of the result,class,method)[%(argument1)%]%]
Example: The following code generates the file .ics of a meeting
[%DATASOURCE(fileCal,Syfadis.Community.Rendezvous.Management.IRendezvousManagementService,GenerateRendezvousForCalendar)[%(idRendezvous)%]%]
Next, you can add the attachment to the mail:
[%ATTACH()[%(fileCal)%][%AddCalendar%]%]
With 2 arguments including 1 with a string:
[%DATASOURCE(Name of the result,class,method)[%(argument1)%][%argument2%]%]
Example: The following code retrieves a list of trainings for a user sorted by the end date
[%DATASOURCE(training,Syfadis.Directory.Users.Educations.IEducationService, FindByUserSort)[%(idUser)%][%FinishedOn DESC%]%]
As you can see, the second argument is a string, it should not be between brackets otherwise it will not be taken into account.
LINK
In certains notifications, you can insert the links to the pages. The property used is LINK. It generates a URL based on the setting of the domain of the context concerned.
Example of a context:
URL of a root domain = ‘https//client_monde.bealink.com’
URL of a child domain – France = ‘https//client_france.bealink.com’
On generating a mail, this parameter is taken into account to build the url. Next, all depends which domain to choose, based on the context:
Session domain:
Alert: the session attendance sheet has not been provided
Alert: Session cancellation
Alert: Confirmation of the session
Alert: Break-even point not reached for a session
Alert: Creation of a new session with of the learners on a waiting list for the training
Training domain:
Alert: Learner waiting list threshold reached for a training course
Learner or trainer domain:
All other notifications
iCal file
An iCal file is a file attached to a mail as an event in a mailbox calendar.
This section explains the possibilities of gestion sur this type of file.
Content of an iCal event
You can manage the content of a file iCal. Other information can be added to this file or deleted in the content to inform the recipient.
This management uses a label to personalize:
Content of an iCal Description | Technique: translation key used for the generation of the event | Which content generates? |
Timezone management feature not activated by default | Catalog.Invitation.Description | Display dates and other information below according to certain rules * – no timezone display. |
Timezone management feature activated | Catalog.Invitation.Description. CanPreciseTimeZone | Display dates calculated with the notion of the external mailbox timezone + that of the element. And also the other information below. |
Rules * = rules applied concerning the timezone taken into account for a notification:
Timezone of the first recipient of the mail received in the case of the platform timezone,
If the opposite is true, the management domain is taken into account for the session,
Rules *: rules applied concernant the time zone in all the other contexts (rapport HTML, webpart, etc.):
Timezone of the current domain = NavigationContext.Current.TimeZoneId
Example of iCal content:
React
Session: react - juillet 2024 - S2
Start: 20/07/2024 09:00
End: 25/07/2024 18:00
Session: SP01
Start: 20/07/2024 09:00
End: 25/07/2024 18:00
Location: Bealink Rennes
Access the platform: Catalog/Learner/Home.aspx?idTraining=7962624&idTrainingSession=35651584&idTrainee=35946496
Concerning the information sent to an iCal:
The name of the training
The label, together with the session dates
The label, along with session dates
The location
The room(s)
The access plan via a URL created using the training location address – URL redirected to Google Map:
[%IF(Dto.GoogleMapUrl)[%Plan of access to the training: [%(Dto.GoogleMapUrl)%]%][%%]%]
You must first enter the coordinates of the training location, without these, no training location can be designated on the Google map application.
The access to the session directly in the platform.
If the opposite is true, the session management domain timezone is taken into account.
You can also of personalize the content of a file iCal for a space via an invitation notification. There is a tab Event description which is a shortcut to modify rapidly the translation – privilege used: Modify the translation.
Language
For a notification with an attached event (file iCal), when the file is generated, you need to give the information of the recipient's language (the person concerned by the mail).
Example: if an English trainer has received an invitation to a training session with English content and other sessions to animate, they must receive the events of the sessions in their language = English
For the language of the user to be taken into account, in the notification content, you need to add a parameter to the method generating the event (file .iCal). The parameter to add is the language, which is an enumeration.
It is not an obligation to have this parameter. For a client working with a single language it is not necessary
Notifications concerned: those calling the methods of iCal generation.
Invitation to a training session / Modification of une invitation côte apprenant
Invitation of the trainer / Modification of the invitation of the trainer.
Technical methods concerned by this parameter:
GenerateICalendarForTrainee
GenerateMeetingForCalendar
GenerateMeetingForCalendarByTrainee
GenerateMeetingTutorForCalendar
GenerateMeetingSessionICalendarForUser
Example:
[%DATASOURCE(cals,…GenerateMeetingTutorForCalendar)[%(idTrainingSession)%][%(Dto.TutorId)%][%(User.Language:N)%]%]
Preview
The preview of a notification permet to have a visual of the mail as close to reality as possible when it’s sent and also view inconsistances in the content or on the design.
The object and the email body are displayed, per language.
In a content, there can be dynamic fields. And during a preview, these fields are automatically calculate/generate for the user – it has not inserting of the text to have an acceptable look.
Also, in a notification, there are of the fields concerning the training, the session or other, and that the user can follow the context of a training for exemple, the preview loads automatically and replaces the merge fields [%(Training.Name)%] by the current training label.
By default, this are of the parameter simples qui permettent of faire this transformation. In the case of a manager voulant the modifier, it's entirely possible.
By default, no modification is required for a client for the preview
Configuration parameter in The notifications > Preview
Explanation of the parameters for the preview:
Parameter | Default value | Objective | Example |
Model of property of type text for the preview of notifications | [[%(*)%]] | Template for the merge fields of type text. | PropertyDomain [Domain] |
Number of elements to add in the lists for the preview of notifications | 2 | Number of elements added in the lists - for each | A user will be assigned to 2 structures |
Maximum depth level of the properties for the preview of notifications | 3 | Up to which depth for the calculation of a dynamic field Recommended value: 1 to 3 | PropertySession.Training.Name will be calculated but not Session.Training.CreatedBy.Name |
Boolean to take into account for the preview of notifications | Yes | Displayed boolean value for a property | Propertydto.IsElearning will be set to true |
List of the male / female first names possible | Adam;Adrian;Alan;… | Displayed value for the property FirstName of User | PropertyUser.FirstName will be Evan |
List of the last names possible | Bautista;Belcher;… | Displayed value for the property LastName of User | PropertyUser.LastName will be Pilot |
Name of the training by default | Formation | Labelled by default for merge fields of type text and element concerned = Training | [Formation] |
Name of the training session by default | Training session | Labelled by default for merge fields of type text and element concerned = TrainingSession | [Training session] |
Name of the evaluation by default | Evaluation | Labelled by default for merge fields of type text and element concerned = Evaluation | [Evaluation] |
Name of the evaluation session | Session d’evaluation | Labelled by default for merge fields of type text and element concerned = EvaluationSession | [Evaluation session] |
Name of the curriculum by default | Curriculum | Labelled by default for merge fields of type text and element concerned = Curriculum | [Curriculum] |
Name of the path by default | Path | Labelled by default for merge fields of type text and element concerned = CurriculumSession | [Path] |
The latest parameter are in a single language – FR by default
Application management – and not domain
Multilingual notification
Concerning a multilingual client, entering a personalised notification can be multilingual.
There is a special case where a user can have received a mail with N times the same content in N languages different. This is the case of a notification with a copy to the recipients managers or trainer.
Example:
A recipient can speak French and have an English-speaking manager for example.
As a result, we send a single mail with 2 contents in the mail body, one after the other, 1 in French, the other in English, with a copy also sent to the manager so that both recipients can read and understand the mail.
It is possible to deactivate this mode using the configuration parameter: Add the languages other than the main recipient in the mail body. In this way, there will only be one content = the one linked to the language of the main recipient.
Timezone
The Bealink LMS platform includes a feature to manage international mode by assigning a timezone to an in-presence element:
a session
a session
a virtual class
Configuration parameter to activate to have feature: Use of a timezone (training session, in-person session, virtual class, training location).
At notification level, the information on the dates and times of an in-presence element is key to the smooth organisation and of the realisation of international training. Poor communication on the time or location of a session can potentially provoke additional expense to the training budget: the collaborator will for example miss the session – absent but invoiced.
iCal file
The iCal file, the content is already managed in International mode – explanation with a exemple:
a training session with a session taking place in New York
a collaborator registered to this session, in Paris
A mail is sent to the collaborator registered to the session as an event (file iCal), received in an external mailbox / calendar.
For the notifications
On the notification side, this is not automatically managed. The adjustments are required in the content for ensure the timezone information of the timezone, and the dates calculated based on this timezone.
For in-presence container elements the start and end dates, with the notion of timezone, an attribute has been added called TimeZonedPeriod :
for a session = TrainingSession.TimeZonedPeriod
for a session = MeetingSession.TimeZonedPeriod
for a virtual class = PlannedVirtualClassroom.TimeZonedPeriod
Syntax to use in the content: [%(MeetingSession.TimeZonedPeriod)%] - ‘x’ with the following format.
Several formats are proposed in the display of the information:
Dates and timezone associated with the entity concerned = Owner
‘o’ from 20/07/2024 21:56 to 31/07/2024 19:00 (UTC-06:00) Centre (US and Canada)
‘O’ from 20/07/2024 21:56 to 31/07/2024 19:00 (UTC-06:00) Centre (US and Canada)
Example: [%(MeetingSession.TimeZonedPeriod:o)%]
Dates and timezones of the recipient + of the entity ( in this order) = Full
‘f’ of the 21/07/2024 04:56 to 01/08/2024 02:00 (UTC+01:00) Bruxelles, Paris (from 20/07/2024 21:56 to 31/07/2024 19:00 (UTC-06:00) Centre (US and Canada)
‘F’ from 21/07/2024 04:56 to 01/08/2024 02:00 (UTC+01:00) Bruxelles, Paris (from 20/07/2024 21:56 to 31/07/2024 19:00 (UTC-06:00) Centre (US and Canada)
Example: [%(MeetingSession.TimeZonedPeriod:f)%]
Display and concatenation of the start and end dates – without the notion of timezone (neither in the display, nor the calculation) = None
‘n’ of the 20/07/2024 21:56 to the 31/07/2024 19:00
Example: [%(MeetingSession.TimeZonedPeriod:n)%]
Display of the timezone of the entity – without the dates
‘s’ or ‘S’ (UTC-06:00) Centre (US and Canada)
Example: [%(MeetingSession.TimeZonedPeriod:s)%]
Another code possible to display dates in the current timezone – in the case of the deactivated feature, where we display the dates calculated based on a timezone, but this is not known to the current user (not displayed) = Current (Context)
‘c’ from 21/07/2024 04:56 to 01/08/2024 02:00 (UTC+01:00) Bruxelles, Madrid, Paris
‘C’ from 21/07/2024 04:56 to 01/08/2024 02:00 (UTC+01:00) Bruxelles, Madrid, Paris
Rules applied concernant the time zone taken into account in the cadre of a notification:
Timezone of the first recipient of the mail received in the case of the platform timezone,
If the opposite is true, taken into account of the timezone of the domain of gestion of the session,
Rules applied concernant the time zone in all the other contexts (HTML report, webpart, etc.):
Current domain timezone = NavigationContext.Current.TimeZoneId
Rules applied to the code ‘c’ in the standard case, with the option to use the timezone non activated!
Mail model management
A notification is both a container and content. As explained above: there are different contents to personalize, simply and rapidly.
For a client who needs to send N notifications all the days, it is very interesting to have a model (= container), to not repeat N times the same job. This section explains the creation of a model for the mails.
The principle is simple: create a model and the use in the notifications personalised.
The repository of the models of mail is located in the menu Settings > The notifications. A tab Models is present next to the domain-level notification repository.
Privileges associated with the mail models: View and modify mail models
Management possible of the models per domain
In the case of a model management per domain, no parameter configuration activates this principe. It is automatic when it is created.
The repository
Mail model repository
In this repository, we list all the models of a application. The duplication enables you to create one model very rapidly from another. Deleting a model is only possible if it not used by a notification. We do not delete a model that is in use.
The model template format
A model template includes a label and some content.
The fields of a model are multilingual if the multilingual feature is active in the platform – enter data for the international.
Template
Explanation of the fields:
Name: name of the repository template – mandatory field
Replacement string: the string ID of the location of the notification content in the model – it must appear in the content of the model, if not, the content will not be inserted when the mail is sent. Read only ##content##
Domain: model management domain = current creation domain
Content: the HTML content of the model (multilingual by default: English + French are active).
Using the content, the client can create a model with a header and a footer however they want (in HTML, with an image or a table, a signature, etc.) , it's rapid and a very straightforward design.
Other information: images or other documents inserted in the content are stored by default in the application directory:
Files\Applications\idApplication\EditorResources
In other words, elements linked to models (images, documents, etc.) are not contextualised per model, other models can use these elements in their content.
Consequently, this directory must be visible externally for images to be accessible.
For clients with maximal security, we do not recommend using templates.
Using a model
After creating a model, we need to be able to use it. A field has been added on the file of a notification on the selection of a model.
This field is a drop down list containing the list of all application models.
In the case of no model in the repository, the field is not visible in the file.
With this feature, a preview of the notification is possible – see the appropriate section. In the case of a notification without model, the output is raw.
Personalise criteria application
We can ask the following question: which notification is taken into account if it has been personalised at domain level, training and/or session level?
This section explains the different cases possible which are applied on the LMS platform.
Notifications linked to a session
The notifications linked to a session concern above all the registrations.
The notification activated at the lowest level and which the corresponding registration mode is taken into account and sent:
The fields Reference is not taken into account.
If several notifications of the same level exist, the most recent notification is taken into account(following the creation date).
The following case explains which notification is sent for a user registered to a session:
Simple case: if a personalisation of a notification for a session concerned exists, it will be taken into account in the language of the user.
Simple case: if a single personalisation of the notification for the training concerned exists with the correct registration mode, it will be taken into account in the language of the user.
Simple case: if several personalisations of the notification for the training concerned exist with the correct registration mode, the notification taken into account will be the latest personalisation created and activated in the language of the user.
Complex case: if several personalisations of the notification for the training concerned exist with the correct registration mode, and that none is activated, we select the latest personalisation created in the language of the user (no send will occur).
Simple case: if a single personalisation of the notification exists at session domain level and if the constraints on the type of training and the type of registration applied to the session concerned are specified, it will be taken into account in the language of the user.
Complex case: if several personalisations of the notification exist at session domain level and if the constraints on the type of training and the type of registration applied to the session concerned are specified, the notification taken into account will be the latest personalisation created and activated in the language of the user.
Complex case: if several personalisations of the notification exist at session domain level and if the constraints on the type of training and the type of registration applied to the session concerned are specified, and that none is activated, the notification taken into account will be the latest personalisation created in the language of the user (no send will occur).
Simple case: if a single personalisation of the notification exists at parent domain level and if the constraints on the type of training and of type of registration applied to the session concerned are specified, it will be taken into account in the language of the user.
Complex case: if several personalisations of the notification exist at parent domain level of the session and if the constraints on the type of training and the type of registration applied to the session concerned are specified, the notification taken into account will be the latest personalisation created and activated in the language of the user.
Complex case: if several personalisations of the notification exist at a domain session level and if the constraints on the type of training and the type of registration applied to the session concerned are specified, and that none is activated, the notification taken into account will be the latest personalisation created in the language of the user (no send will occur).
Other notifications
Simple case: if a single personalisation of the notification exists at session domain level and if the constraints on the type of training and the type of registration applied to the session concerned are specified, it will be taken into account in the language of the user.
Complex case: if several personalisations of the notification exist at session domain level and if the constraints on the type of training and the type of registration applied to the session concerned are specified, the notification taken into account will be the latest personalisation created and activated in the language of the user.
Complex case: if several personalisations of the notification exist at session domain level and if the constraints on the type of training and the type of registration applied to the session concerned are specified, and that none is activated, the notification taken into account will be the latest personalisation created in the language of the user (no send will occur).
Simple case: if a single personalisation of the notification exists at parent domain level and if the constraints on the type of training and of type of registration applied to the session concerned are specified, it will be taken into account in the language of the user.
Complex case: if several personalisations of the notification exist at parent domain level of the session and if the constraints on the type of training and the type of registration applied to the session concerned are specified, the notification taken into account will be the latest personalisation created and activated in the language of the user.
Complex case: if several personalisations of the notification exist at parent domain level and if the constraints on the type of training and the type of registration applied to the session concerned are specified, and that none is activated, the notification taken into account will be the latest personalisation created in the language of the user (no send will occur).
Manage external emails
Following issues of mails received as spam in certain client mailboxes – the platform can be considered to be a spam tool (blacklisted), the manner in which we send mails externally has been largely redesigned.
Now, a mail sent externally is automatically sent via a known email address. This email address is defined in a configuration parameter: The email address of the sender of the mails by default, with the default value anonyme@bealink.com.
The email address of the sender is included in the property ReplyTo of the mail allowing the recipient of the mail to reply directly to the sender.
Domain management for this parameter
Tutoring
Manual email sends via a button on the trainer side.
A trainer or a manager of training can send a mail via a button Send a mail to these people they are tutoring/training.
When sending, the recipients are all CCi to not share personal details with other participants.
Configuration options
Url
Configuration parameter (technical side):
External URL access
Mails
Config parameters (technical elements):
Max. number of mails to send per session (-1 = no restriction).
Goal: Limiter the number of mails sent lors of the batch quand il y en a beaucoup.
Example: in the case of a new notification in a version and the client runs this version. When creating a notification of this type, the first batch send can have consequences. As a result, the sending of these notifications will be divided into several batch sends.
Utilisation: It is used for mails which are in the outbox before being sent by the batch process, and also if the mails are sent directly.
However, if the send is immediate, the use of this parameter will essentially be at application level (root domain) and not at sub-domain level of a training course or session.
Track replies
For a mail of type event or invitation such as an invitation to a session, it is interesting to be able to retreive responses of people who have received and replied to the invitation (accepted, maybe or refused).
With this principle, a manager can need besoin to know the presence or not of a collaborator to manage the attendance by reading the response received, or prompt the person/people if no response is forthcoming and perhaps resend a mail.
Example: a service training via a generic email address is notified of all the responses of the collaborators to store, relaunch, or manage training session attendance.
The fonctionnement is as follows:
After replying to an invitation, the response is sent in an external mailbox which is defined in a configuration parameter: Email address to use for the personnes to of the events – no email address by default = feature not activated!
Techniquement, when generating the mail with a file iCal, we transmit this email address to the invitation – technical property in the object Organiser. The gestion is per domain, however, we take into account the configuration parameter for the event session domain.
Another email address is transmitted: that of the replier to the invitation – technical property in the object Attendee