Corporate Plugins
Extend your Forma Cloud with powerful enhancements, designed for corporate training
- Audit Trail
- Course Alert
- Doko
- Landing Generator
- Lotify
- Test Charts
- Retraining
- Templedit
- Learn Compete
- Extended Domain Settings
- SAML Integration
- User Impersonation
Audit Trail
Settings
Plugin settings are available under
Admin > Settings > Plugin Manager > AuditTrail- Plugin Settings.
Here, you can activate or deactivate the logging and visibility of each event.
Log Report
The report of logged events is visible under
Admin > Report > Audittrail
Event Details
Details for the logged event are visible, clicking on the “show” button:
Course Alert
Features Description
This plugin introduces a new notification feature to automatically send custom reminders for courses:
- Login Reminder: user has not begun the course X days after enrolling
- Completion Reminder: user has not completed the course X days after the first access
- Course Closing reminder: user has not completed the course X days before the course end date (if set)
- Course Completed: When a user completes the course, they automatically receive a notification confirming their course completion
- Certification validation reminder: this reminder is added by the "Retraining" plugin
Each reminder can be activated separately for each course.
For each reminder, it will be possible to set a standard text or a custom notification text and scheduling.
Cron Job
To allow the system to properly work you need to set up a cron job on your server calling periodically (i.e every 10 minutes) the following URL:
[platform_url]/plugins/CourseAlert/Cron/cron.coursealert.php
Reminders activation and settings
The course alert function is available for every course. From the course management page, just click on the new envelope icon to access the configuration panel:
This will open a configuration panel where you’ll be able to:
- Select one or more reminder for each course
- Define to send them by e-mail and/or popup the message upon user login
- Time Settings:
- Define how many days after or before the “trigger” your reminder should be sent.
- Interval: how many days to wait before resending the notification
- Repeat: how many times the alert will be sent/shown to the user
- Reset: flag to rest upon saving the settings. All the notifications for this alert will be sent again.
- Set a custom notification text
- Notification Log: see a log of all the notifications sent to users in this course
Notification text customization
Writing a custom message
The message field for each notification displays a default text (the text that has previously been set under language management): just click on the text area and start writing to enter a custom text, if you want this course to have a custom reminder.
Conventional HTML tags can be used for text formatting.
Obviously we recommend using standard text, it makes maintenance much easier.
DynamicTags
The following dynamic tags are available to customize your Course Alert notification text:
- [user]: will print the name of the user receiving the notification
- [course]: displays the course title
- [days]: displays the number of days as set in the notification settings
Edit the default message
The default text message can be edited through the standard Forma language management features. The plugin adds another set of keys, so you can find the messages you need to customize by filtering for "course alert".
Time Settings
Interval days
The Interval days parameter controls the minimum gap between two consecutive displays of the same pop-up to the same user. For example, with Interval days = 3, after clicking "Remind me later" the user will not see that pop-up again for at least 3 days. Setting Interval days = 1 means the pop-up can reappear on the following day's first login
Repeat days
Indicates how many times the alert should be re-proposed.
Note: By entering a value of 0, the system will continue to show the pop-up or send the email indefinitely until the required action is completed.
Reset Notifications
The Reset Notifications checkbox is available for each alert type in the configuration panel.
When this checkbox is selected and the configuration is saved, the system deletes the notification history (send log) for that alert type on the selected course. This means:
All users who had previously received this alert — including those who had reached the maximum number of repetitions — will be eligible to receive it again.
The repetition counter (sent_times) is cleared for all users associated with this course and alert type.
The alert cycle restarts from scratch as if no notification had ever been sent.
This is useful, for example, after updating the course content or extending the course deadline, when it makes sense to re-notify users who had already been informed.
Note: Reset Notifications only affects the selected alert type for the selected course. Other alert types and other courses are not affected.
Pop-Up Alert
When the Pop-up delivery method is enabled for an alert, the system checks at each user login whether any active alerts apply to that user. If so, the pop-up will appear at the next login.
The pop-up presents two action buttons:
- "Enter": Redirects the user directly to the course. The alert is recorded as sent and the repetition counter is incremented.
- "Remind me later": The alert is recorded as sent and the repetition counter is incremented. The pop-up will appear again at the user's next login, provided that the number of days configured in Interval days has elapsed since the last display.
Closing the pop-up (×): Dismisses the pop-up for the current session only, without incrementing the repetition counter or updating the last-send date. The pop-up will reappear at the next login unless an action is taken by clicking one of the buttons
If user is enrolled to multiple courses requiring notifications, multiple popups might be displayed at the same time:
Notification Log
A log of all the notification sent to users can be accessed:
- Whithin a specific course alert settings, showing all the notifications sent for that specific course
- Whithin the plugin global settings, showing all the notifications sent for all the courses
Sending Criteria
Global Sending Criteria
Before sending any notification, the system always checks:
- Active user: the user account must be active
- Active course: course status must not be archived, deleted, or suspended
- Maximum number of sends: if set to 0, sends without limit; otherwise stops at the configured number
- Minimum interval between sends: does not resend until the configured number of days has passed since the last send
Specific Sending Criteria
Login Reminder
Purpose: reach enrolled users who have never opened the course.
Users receive the notification if:
- They have never made their first access to the course
- They have no completion date recorded
- They have been enrolled for at least X days (X is configurable)
- Their enrollment date is valid
- Their enrollment status is not one of: Suspended, Pending, Deleted, Overbooking
Completion Reminder
Purpose: prompt users who have started the course but have not yet finished it.
Users will receive the notification if:
- They have made at least one access to the course
- Their enrollment status is exactly In progress (1) — no other status is accepted
- They have no completion date recorded
- Their first access was at least X days ago (X is configurable)
Course Closing Reminder
Purpose: notify enrolled users that the course has an upcoming end date.
Users will receive the notification if:
- The course has a defined end date (not empty)
- The end date is still in the future
- The end date falls within X days from today (X is configurable)
- Their enrollment status is not one of: Suspended, Pending, Completed (2), Deleted, Overbooking
Course Completed
Purpose: notify the user that they have completed the course.
Users will receive the notification if:
- They have a completion date recorded
- Their enrollment status is not one of: Suspended, Pending, Deleted, Overbooking
Certificate Expiry — Retraining (Certificate Validation Length Reminder)
Purpose: notify users that the certificate obtained upon course completion has expired, prompting them to retrain.
This notification is managed by the Retraining module and is only available when that module is active on the platform.
Users will receive the notification if:
- They have completed the course (certificate obtained)
- The certificate has a validity duration configured on the course
- The certificate validity period has elapsed since the completion date
Doko
Plugin Installation, removal and update
Global settings
Plugin settings are available under
Admin > Settings > Plugin Manager > Doko > Settings
- Admin User: set a superadmin username to be used for cron automation (only needed if you are using cron to send emails)
- Manager: set up to 3 custom user fields containing extra recipient emails
- Send on course completion: a zip package containing the certificate and the selected documents will be automatically sent to the selected recipients
- Download user LO report: enables the generation of a PDF report for each user
- Doko course signature sheet: enables the creation of a signature sheet to be printed for each course
- Custom fields: select course and edition customfields to be added to signature sheets header
Using Doko
Doko “Package”
When a user completes a course, Doko creates a zip package containing several documents:
- Course Certificate
- LO Report
- Printout of final test answers
- Detailed course trackings: a XLS file reporting the details of user
[Immagine]
The package is available in two ways:
- Automatic Mailing to the student and/or his managers (See course settings)
- Manual download from the users stats page in course teacher/stats area:
The .zip file includes:
- the certificate in a .pdf format
- the .xls reporting with the user’s tracking data (the same that can be found under the users-object grid)
- A test printout, with the detail of the answers given by the user in the final test
Course Settings
The plugin adds a new section in the course creation or editing wizard.
It’s called “course certificate delivery” and it appears under “documents upload”.
If you expand this section, these are the settings you can configure:
- e-mail settings and recipients → dropdown menu, where you can decide to send your documents to
- nobody
- student only
- student and managers (if you have set them under “configuration”)
If you send without selecting the other options, your e-mail will include the user’s certificate and the print-out of the tests completed by the user.
You can also include other documents, see below:
- attach LO report to e-mail → this allows you to automatically export the Excel file related to the users-object grid for that user and that course and to attach it to the e-mail
- attach Path report → it allows you to attach a PDF file with the same information as above. This is meant for financed projects, it can include static information.
Finally, the e-mail can be sent either upon course completion (once every time a course has been completed) or with a cron (once a day).
Custom Text
If you don’t flag “use custom text”, the e-mail will be sent with the text that you set under language management.
If you flag it, then you’ll be able to have a different customized text for every course. You’ll also be able to use the tags that you see in the image above, dynamically customizing the text with the user ID, the date, the company, and the course name.
LO Report
A pdf document reporting the completion status on LO, that can be printed and signed by the student
This can be inserted in the doko package, or manually generated for each student from the course subscription management page:
Signature Sheet
This feature generates a PDF document to collect students signatures in classroom courses.
The Signature Sheet can be downloaded clicking on the new icon in the course list:
Settings
By default, the signature sheet will add the course logo as a header.
You can set a custom header and footer in course settings:
Adviced size for the header image is 720x100px
If no header image is set, course and sponsor logos will be used instead.
A default header image can be named course_signature_sheet_header_image.jpg and uploaded via FTP under /files/Doko/signature
- Header Image: upload a banner header image
- Footer Left
- Footer Right
Landing Generator
Plugin Description
The Landing Generator Plugin allows the creation of a custom login and registration page for each course, featuring:
- Dedicated URL
- Add registering users to a specific Org Chart node
- Enroll users to the course
- Choose Standard or Advanced registration, to display either the standard registration form or just the fields associated to the selected node
- Direct login to the course
- Display course and sponsor logo on the login/registration page
- Add custom styles to the page
Global Configuration
The plugin requires the Forma API’s to be enabled and fully configured under
Administrator > Settings > General Configuration > API & SSO
Check the official forma documentation for details on the API configuration
Features
Plugins features are available inside the standard menu edit form. Go to:
Admin > Elearning > Course
And click to edit your course
Plugin Settings will be available under the tab “course landing”:
- Landing Enabled: activate or deactivate the landing page
- Landing node form enabled: use custom node fields instead of the standard registration form
- Landing node ID: insert the ID of the node to be used for user registration and field selection (see note below)
- Unavailable Text: Enter a text to be displayed when the course is closed or unavailable to user
- Landing CSS: add a stylesheet class for the landing page
- Course landing link: URL of the landing page
Notes:
- platform registration must be enabled
- to retrieve the node ID, go to user management, right-click on the “assign users” icon and copy/paste the link URL to your notepad. The node ID will be the last number in the URL, i.e: http://testing.formalms.org/testing/appCore/index.php?r=adm/usermanagement/assignuser&id=4
Multiple Templates and URL
The landing generator only creates landing pages with the default URL.
But if you simply change the part of your URL before the /index.php and replace it with the desired, different, URL it will also work with your other templates and URL’s.
[Your Platform URL]/index.php?r=lms/courseaccess/show&courseId=1&nodeId=1&no_redirect
Finally, it’s a good idea to use URL shorteners
Landing Page Layout
This is an example of how your login/registration page will look like.
If you inserted the course logo it will display on the left, and if you inserted the sponsor it will display on the right.
Lotify
Setup and Configuration
Plugin Settings
Notification minutes expire: notification expires if not sent within the amount of minutes set. Note: if set to 0 all notifications will be suspended.
Notification Google Enabled: enable the use of Google short URL services
Platform Settings
Some settings are needed on your LMS and on the plugin for the correct functioning of the shortlinks that allow direct access to the LO’s and that are sent together with the notifications:
- Enable Single Sign-On on your platform, from the settings > System settings > Forma API & SSO
2. Insert your Google API Key in the plugin configuration panel
Configuration > Plugin Manager > Lotify - Settings.
If you don’t have an API Key, you can get one here: https://developers.google.com/maps/documentation/embed/get-api-key
Text message (SMS) Service
To enable text message (SMS) notifications, configure your LMS with the credentials of your service provider, under:
Settings > System Configuration > Settings > SMS
Note: Forma Lms is natively configured to work with www.skebby.it. This feature will be removed in Forma 4.x
Cron Job
You need to set up a cron job on your server, to allow the system to properly work, launching periodically this URL:
[platform_url]/plugins/Notification/Cron/cron.notification.php
Standard notification
The plugin adds a new icon to the Learning Object Management panel:
Clicking on this icon, you are taken to the settings panel where you can control the notifications for every LO:
Notification View Log: from this link you’ll be able to extract a log of the notifications you sent
Notification is Active: enables the sending of the notifications for this LO.
The notifications will be sent upon the publication date you set in the properties of the object itself.
If you didn’t set a date, the notifications will be sent upon saving the form.
You can send notification either by e-mail or by SMS (text message to a mobile phone).
Notification Text: insert here the notification text. It’s possible to customize your text with the following placeholders:
[URL]: direct link to the LO, different for every user (see related paragraph)
[USERNAME]: userid
[USER_COMPLETE_NAME]: first and last name
[COURSE_NAME]: course name
Send on publish date: the notification will be sent on the day set as “start publishing date” in LO properties
Send on: lets you set the day and time for sending the message
Reset last send date: by selecting this option, upon saving, the last send date will be reset. Use this option if you want to re-send the notification to users who have already received it.
NOTE: EMAIL SENDER
The e-mail sender will be the same that you set in the general settings of your LMS for general notifications.
NOTE: SENDING CONDITIONS
Users that completed the course or the LO will be excluded by the notification
Sending a short url
The short-url inserted in the notification messages with the [URL] tag allows to directly open the object, bypassing the login to the LMS and the access to the course. The process happens in a way invisible to the user. Every link is unique for a specific user.
The link generated this way could also be used by other people who are not the user the link has been sent to.
It’s important to:
- tell users not to share the link with other users, in order not to compromise the course stats
- avoid using this method for evaluation tests, since there is a risk users would share the link with other users
- configure the LO properly, for example: make it visible just one time or until it’s completed
Advanced notification
For the TEST objects there is an advanced settings feature that allows you to manage text, planning and recipients of your notifications.
Adding a new notification
1.From “Learning Object Management” panel click on “edit test”:
2. Click on “Notification Management”:
3. Add a new notification:
Scheduling Notifications
Lotify allows for a very flexible scheduling of notifications:
Send every: lets you choose the frequency, from 1 (every day) to 7 (every week)
How many notifications a day: self-explanatory, for every sending you have to specify a time
Time: at what time the notification will be sent
Active from – to: You can set your notifications to be sent only from a specific date to a specific date
Exclude Saturdays and Sundays: self-explanatory
Reset last send date: resets the last send date, so you can resend your notifications even to users who have already received them
Setting the recipients
When you create a new notification, you can choose if you want to send it:
- To yourself only: useful for testing or to send personal reminders
- All: sends to all users who are enrolled to the course
- Selected: after saving the notification, you’ll be able to choose the recipients
This option is only available upon creating a notification. Then you’ll be able to edit it from the user's icon:
Troubleshooting
A User didn’t receive a notification
- Verify that in the user profile there is an active e-mail address and/or a correct mobile phone number
- Check the user status on course and learning object: only users with status “subscribed”, “In progress” or without a completion date will receive the notifications
- Check the plugin setting for “notification minutes expire” is not set to 0 (zero)
- Verify if the notification log has some errors (see paragraph 2.1)
Resend a notification to a user
If a user didn’t receive a notification or has canceled it by mistake, it’s not possible to resend it directly from the system, but you can do as follows:
- Access the notification settings panel (see 2.1 and 2.2)
- Open the notification log. The log lists all the cron call, sorted by time. Look for the notification text you want to resend and copy it. Please find the right user and the right text, because short-urls are personal
- Send the user the text you copied with a direct e-mail or text message
The system asks for a password
If the user is asked for a password after clicking on the shortlink, it might be that the user was set to force the change of password upon first access. In that case, inform the user about how to reset password or give him a new one.
Send Conditions
Notifications are NOT sent in these cases:
- Course is in status canceled, closed or under construction
- User completed the course
Test Charts
Description
The plugin extends the standard functionality of the “Evaluation Register” module in LMS format, integrating:
-
Export functions for the details of the answers provided by users
-
Category charts, showing test results for all users, aggregated by question category
These exports will allow further statistical analysis activities on the answers provided to the tests administered on the platform
Export answers details
The plugin“TestChart”adds, by clickingon the histogram in the Evaluation Register two LINKS:
Aggregated answers
Aggregate responses: which reports the aggregated data of the answers provided by all the users who took the test
Detailed Responses
Detailed Answers: where for each individual user the question, the answer provided and the score obtained are reported, for all the questions in the test
Export Detailed answers to individual questions
Export the list of all answers given by users to the specific question.
The file can be integrated with data from additional personal data fields, based on the selection set in the export configurations for each test.
Charts for question categories
The plugin integrates statistics from answers to tests with a new “Statistics by Category” tab, which shows a graph of correct answers aggregated by question category
Export and chart configuration
In the test configuration, the plugin adds the Link: Test Chart Management, which allows you to configure the data of the .csv file that is extracted
Retraining
Plugin Retraining
Courses that belong to mandatory training, such as all safety-related courses, have an expiry date. After that date, participants are required to complete the course again. Managing this process can be quite complex, but the Retraining plugin makes it simple and automated.
1. Sets the course validity period
2. Automatically checks conditions the validity of a course for each user has expired or is about to expire
3. Resets the user’s status on the course
4. Sends a reminder to users X days before the expiry date
5. Maintains the certificate history
1. How to set the validity days of a course
Go to Administration/Elearning/Courses
and click the Edit icon for the course in which you want to set the validity days
In the “Time Options” section, enter the number of validity days. For example, if a course is valid for one year, enter 365.
2. How to check course validity for each user from the reports.
When creating a report, simply add the “time before expiring” field
to the fields to be displayed in the table.
In the newly created report, a column will appear showing the days remaining until course expiry for each user
3. How to reset the user’s status
When a user needs to retake the course, the administrator can manually reset their status by clicking the appropriate icon.
Go to Administration/Elearning/Courses
and click the enrolled users icon for the course whose users’ status you want to reset.
Click the “Reset” icon
When the pop-up opens, click the OK button
4. How to send a reminder to users X days before the course expiry date
Retraining integrates with Course Alert to notify users by adding a dedicated reminder:
Enabling notifications:
The configuration panel of Course Alert (and the specific integration for Retraining) allows you to precisely define how, when and how many times a user should be prompted.
A. Selecting the Sending Mode
For each type of reminder (e.g. "Certificate validity reminder"), the administrator can choose one or both channels:
· E-mail: Sends a message to the user's email inbox.
· Pop-up: Activates a blocking alert within the platform at the time of login.
Defining Scheduling Fields
The numeric fields determine the notification lifecycle:
● Send to users after X days: Defines the timing of the first send relative to the triggering event (e.g. after receiving a certificate or after enrolment).
● Interval days: Specifies how much time must pass between one send (or pop-up display) and the next. This avoids overwhelming the user if they do not act immediately.
● Repetition days (or Number of repetitions): Indicates how many times the system should re-present the alert.
Technical note: Setting this value to 0, the system will perform an infinite send until the user completes the required actiona.
● Reset Notifications: If checked, allows the send cycle to be re-initialised for users who have already received reminders previously.
Pop-up Notification
The introduction of the pop-up system transforms a simple passive notification (email) into a guided and immediate action. This feature is designed to maximise the renewal rate of expiring courses.
Display (Entry Phase):
- · Trigger Event: The pop-up appears immediately after the user’s Login on the platform.
- · Frequency: If the user does not complete the required action, the pop-up will reappear on subsequent logins based on the "Interval days" and "Number of repetitions" settings configured in the Course Alert panel
Dynamic Interaction (Selection Phase)
Once the pop-up is displayed (e.g. "Certificate validity reminder"), the user has two main options:
By clicking "Retake the course",
- · Warning Message: A second confirmation level appears: "Do you confirm you want to retake the course? Your previous results will be saved". This reassures the user that their certificate history will be preserved.
- · Automatic Reset: Upon clicking "Confirm", the plugin resets the user's completion status on the specific course.
Once confirmed, the pop-up displays the final button:
Advantage: The user goes from login to course access in just 3 clicks.
5. Certificate History
Each user, in their own Certificate Area, will be able to generate and download all certificates obtained upon course completion (even when the previous year’s completion status has been reset)
Templedit
Template Management
Templedit section is located in Administration (gear wheel) > Settings> templedit.
From this page you can see a standard template, and you can create new templates, edit and update the existing ones.
Add new template: enter the name of new template and press the "Add template" button: a copy of the standard template is created, ready to be modified.
Update Templates: in some cases, platform upgrades will require to updated some template core files. Use this button to update your templates to the latest versions while maintaining your style anche images changes.
Overwrite Images: selecting this option when updating a template, also the template images folder will be owervritten. Useful if you manually replaced template icons.
Setting your platform standard template
Last step, to set the created or modified template as the default template you need to go to: administration (gear wheel) > settings> system configuration > settings.
In the Main Options tab open the "Default Template" drop-down menu and select the desired template.
Template Settings
Once created, you can configure your template by clicking on edit, you will then be able to:
· Set the basic colors of the template (see legend below)
· Upload logo, cover image and favicon
· Edit the custom.css file: all styles in this file will overwrite the standard classes and colors set in templedit.
Note: do not remove the first line @import url('templedit.css'); which is added when you first save the template
Color Legend
Below is a small legend of the color entries that can be set to help the user set their own style.
We have set the various fields with different colors to make their display clear.
The legend above is intended to guide the user in setting up their own style for the platform, the images used serve as examples and it is possible to find any tabs, banners, etc. in other parts of the platform.
Learn Compete
The LearnCompete plugin is an advanced gamification system for the e-learning platform that introduces competitive and ranking elements to increase user engagement. The plugin allows the creation of global and per-course leaderboards, stimulating active participation through mechanisms of competition and recognition.
Main Features
Leaderboard System
-
Global Leaderboard: A general ranking of all users on the platform, calculated based on the total points and the number of courses completed.
-
Course Leaderboard: A specific ranking for a single course, based on user performance within it.
-
User Ranking: A detailed view showing the list of courses a single user has completed, along with their scores and rankings.
Technical Features
-
Score calculation based on performance and course difficulty.
-
Display of a single user's results history.
-
Data visualization through clear and intuitive tables.
-
Integration with the user dashboard via a dedicated widget.
Leaderboards: mastering your corporate academy
Accessing your Leaderboards
The plugin is accessible through a dedicated menu in the administration panel:
-
Access the admin panel.
-
Navigate to the "Leaderboard" menu item.
1. LearnCompete Global Ranking
The global leaderboard shows the general ranking of all active users on the platform.
Features:
-
Displays rank, username, total completed courses, and points.
-
Sorted by total score. In case of a tie, the user who has completed more courses is ranked higher.
-
Ability to search for specific users.
-
Clicking on a user's name allows you to view their course history.
Metrics displayed:
-
Rank: Position in the leaderboard.
-
Name: User's name.
-
Tot. Courses: Total number of completed courses.
-
Points: Total accumulated score.
2. LearnCompete Course Ranking
A specific leaderboard for a single course, showing users who have completed or are currently taking a specific course.
Features:
-
Displays the participant leaderboard for a single course.
-
Displays completion time (Tracking Time).
-
Shows specific points earned in the course.
-
Identifies the course leader.
Metrics displayed:
-
Rank: Position in the course leaderboard.
-
Name: User's name.
-
Tracking Time: Time taken to complete the course.
-
Points: Points earned in the specific course.
3. LearnCompete User Ranking
This view shows the individual performance of the logged-in user, with a history of their performance and progress over time. It lists the courses the user has completed and the results achieved in each.
Features:
-
Lists the courses completed by the user.
-
Details of the score, completion date, and rank obtained for each course.
-
Access the specific course leaderboard by clicking on the corresponding row.
Metrics displayed:
-
Course Name: The name of the completed course.
-
Tracking Time: The time taken to complete the course.
-
Points: The score obtained in the single course.
-
Rank: The leaderboard position achieved in that course.
4. LearnCompete Aggregated Course Ranking (Course List)
This section displays an aggregated list of all courses that contribute to the general leaderboard, providing an at-a-glance view of which courses are included in the ranking system.
Features:
-
A list of all courses active in the gamification system.
-
Displays the number of enrolled students per course.
-
Identifies the leader of each course.
-
Displays the maximum achievable score for each course.
Metrics displayed:
-
Name: Course name.
-
Students: Number of enrolled students.
-
Leader: The user with the best performance.
-
Points: The maximum score achievable in the course.
Course Configuration
Adding Courses to Ranking System
To include a course in the LearnCompete ranking system:
Note: Only courses with the "add to ranking" option enabled will appear in the leaderboards and contribute to user scores in the gamification system.
Scoring System
The plugin uses a scoring system to calculate user ranks, based on the following factors.
Calculation Factors:
-
Course Score: Each course assigns a variable score based on the user's performance (result and completion time) and is weighted by the course's difficulty.
-
Global Ranking: The platform's global ranking is calculated based on the total points acquired by each user across all courses and the total number of courses completed.
Example of Scoring Parameters:
-
Base Score: A score assigned by each course for the purpose of the global leaderboard.
-
Difficulty Index: The impact of course difficulty can be configured in two ways:
-
Through a multiplier applied based on the course's difficulty level.
-
By assigning a different base score for each difficulty threshold.
User Dashboard Integration
The plugin integrates natively with the user dashboard, providing an immediate overview of performance.
User Global Ranking (Dashboard Widget)
The User Global Ranking widget provides each user with a quick overview of their position in the platform’s global leaderboard directly from the dashboard.
Features displayed:
-
Rank: The user’s position compared to all active users.
-
Global Score: The total points accumulated across all courses included in the gamification system.
-
Total Courses: The number of courses completed by the user that contribute to the ranking.
This widget offers immediate feedback on the user’s progress and fosters engagement by highlighting their standing relative to peers.
Suggested Courses Section
The dashboard can include personalized suggestions for the user, such as:
-
Available courses with direct links.
-
References to the F.A.Q. section for support.
-
Access to the helpdesk for technical assistance.
-
Motivational messages (e.g., "Happy Learning!").
Customization and Configuration
Dashboard Settings
Administrators can customize the dashboard layout and the blocks displayed using the Dashboard Settings panel.
To access:Settings → Dashboard Settings → Create a new dashboard
Available configuration options:
-
Type: Defines the layout of the block (e.g., 1-col, 2-col).
-
Title: Allows the administrator to input a custom title for the dashboard block.
Manual Leaderboard Update
To manually update the leaderboards, navigate to Configuration > Plugin then find the plugin and click on "Configuration" in the administration panel. Here you will find the following options:
-
Generate Actions: This button runs a script that generates user actions (e.g., "test completed," etc.) which serve as the basis for leaderboard computations.
-
Generate Aggregated Courses Leaderboard: This button generates the leaderboard for aggregated courses.
-
Generate Courses Leaderboard: This button generates the leaderboard for individual courses.
-
Generate User Global Ranking: This button generates the global user ranking leaderboard.
Troubleshooting
Common Issues
Scores Not Updating
-
Verify that the course has been effectively completed.
-
Check that the score calculation rules are correct.
-
Perform a manual recalculation if necessary.
Empty Leaderboards
-
Verify the presence of active users who meet the criteria.
-
Check the course's configuration.
-
Check the viewing permissions.
Slow Performance
-
Optimize database queries.
-
Implement a caching system for results.
-
Limit the number of results displayed per page.
Best Practices
Gamification Implementation
-
Maintain healthy competition: The goal is to motivate, not discourage.
-
Balance challenge and achievability: Objectives should be difficult but not impossible.
-
Celebrate individual successes: Publicly acknowledge achieved milestones.
Community Management
-
Leaderboard Moderation: Monitor for incorrect behavior within the system.
-
Communication: Clearly explain the scoring rules and celebrate achievements.
Monitoring user Engagement
Engagement Metrics
The system allows for monitoring the impact of gamification on user engagement.
Main KPIs:
-
Course completion rate.
-
Average completion time.
-
Leaderboard participation rate.
-
User retention rate.
Competitive Analysis
-
Analysis of score distribution.
-
Identification of user clusters based on performance.
Extended Domain Settings
The "Extended Domain Settings" plugin is an advanced tool for multi-domain management of the e-learning platform. It allows you to configure and manage multiple platform instances under different domains, each with their own customized settings.
The plugin extends the standard domain settings with most of the options you have for the global platform configuration, this way each domain will behave as an independent platform. For each of your client you will be able to setup different registration modes, home-page settings, SSO token, and much more
Plugin Configuration
Access to Configuration
The plugin is accessible through the administration panel:
-
Access the administrative panel
-
Navigate to the "System Configuration" section
-
Select "Domain Settings"
By default domains will inherit the global platform settings, and any configuration change made to a specific domain will override the default ones
Domain Profile Management
Creating New Domain Profile
To create a new domain profile:
-
Click on the "Insert" button (green)
-
Fill in the required fields:
- Title: Profile identifier
- Domain: Complete domain URL
- Template: Select the appropriate template for this domain
- Organizational node: Associate a specific orgchart node for the users that will self-register to this domain
- Mail Profile: Configure specific email settings for this domain
To add a new domain to your Forma Cloud check our Email & DNS settings documentation
Edit an Existing Domain Profile
To modify an existing profile:
-
Locate the profile in the list
-
Click on the "Edit" button (blue)
-
Update the necessary fields
-
Click "Save changes" to confirm
Profile Deletion
To delete a profile:
-
Locate the profile in the list
-
Click on the "Delete" button (red)
-
Confirm the operation
Advanced Configuration
Domain Settings
Title and Branding
- Title: Platform name customization
- Domain: Main URL configuration
- Template: Graphic layout selection
- Organizational node: Associated hierarchical structure
- Mail Profile: Specific email configuration
Main Options
Language and Localization
- Default language: Main language selection (e.g., Italian)
- Page title: Browser title customization
- Site properties: Copyright and property information
User Management
Access Configuration
- Required checkboxes: Definition of mandatory fields for the profile
- Profile edit URL: Configuration path for profile modifications
- Profile edit options:
- Allow complete modification
- Allow only password modification
- Disable profile modifications
- Redirect to external page
Password Management
- Password composition: Letters and numbers requirements
- Password history: Number of previous passwords to store
- Minimum length: Required minimum characters
- Password expiration: Days of validity (0 = no expiration)
- Mandatory password change: Force change at first login
User Registration
- Registration code: Code usage mode
- Required fields: Name and Surname mandatory
- Advanced mode: Use of advanced registration form
- Time limit: Available hours to confirm registration
- Registration type: Access control (Administrators only/Everyone)
- Privacy policy: Mandatory acceptance
- Registration code: Code activation for specific users
E-Learning
Course Configuration
- Course sorting: Display criteria in "My courses" area
- By Name
- By Company
- By Status
- Home page: Initial page selection (Dashboard / Course Catalog / MyCourses)
- Course list: Display a "Catalog" button on login page
- Send user to catalogue if not enrolled in any course: Redirect users from "MhyCourses" to "Catalog" if not enrolled in courses
E-Commerce
- Purchase notifications: Username or ID configuration for notifications
- Currency symbol: Monetary symbol setting (e.g., €)
- PayPal environment: Sandbox mode for testing or real environment
- PayPal account: Account configuration for payments
- PayPal currency: Currency setting (e.g., EUR)
Advanced Configurations
Google Integration
- Google Analytics: Statistics tracking activation
- Google Code: Tracking code insertion
Security Configurations
- Simultaneous access: Disabling multiple access for same username
- IP control: IP consistency activation during session
- Maintenance password: Password setting for maintenance mode
- Site under maintenance: Maintenance mode activation
- Administration session: Public session sharing with administration
API and Authentication
SSO Configuration
IMPORTANT NOTICE: Unlike Forma's standard global configurations, in multidomain, users will be authenticated based on the email field, not the username. This allows the same person to be registered on the platform with different user accounts.
You will be able to create different SSO configurations for each domain:
- SSO Password Key: Keyword for calculating the hash used in SSO
- Enable SSO with other applications through token: Checkbox to enable SSO functionality with external applications
Allowing SSO only for domain users
The plugin adds a new additional field, "Assigned Domain", to associate users to a domain. Note that:
- The dropdown list is automatically populated with the list of domains available on the platform.
- The SSO feature verifies that the user belongs to the corresponding domain, otherwise it prevents access.
Forma.LMS API
You will be able to create different configurations for API access for each domain
IMPORTANT NOTICE: Providing API access to different companies in multi-client platforms is strongly discouraged: the system is not able to filter data by domain with potential privacy risks
Authentication Method
The system supports three authentication methods:
- Single Access Code
- Uses a single code for all API access
- Simple but less secure option
- Token Generation on Each Connection (Default)
- Generates a new token for each API session
- More secure as tokens have limited lifespan
- Recommended for production environments
- Secret Key Authentication
- Uses a permanent secret key for authentication
- Balance between security and simplicity
API Configuration Options
- Token Lifetime (minutes): Set the duration for which tokens remain valid (default: 60 minutes)
- Single Access Code: Define a unique code for API access when using single code method
- Reset token lifetime on each connection: Checkbox to refresh token expiration time with each API call
- Secret API Code: Configuration field for secret key authentication
- API Key: Configuration field for API key authentication
- Enable API functionality: Master checkbox to activate all API features for the domain
Best Practices
Naming Convention
- Use descriptive names for profiles (e.g., "PROFILE-1")
- Maintain consistency in nomenclature
- Include client or project references
Template Management
- Use dedicated templates for each client
- Test templates before activation
- Maintain backups of custom templates
Security
- Set complex passwords for maintenance
- Configure IP controls when necessary
- Use sandbox environment for e-commerce testing
Troubleshooting
Domain Not Reachable
- Verify DNS configuration
- Check URL correctness in domain field
- Verify server accessibility
Template Not Displayed
- Check template existence in system
- Verify template file permissions
- Verify correct template-domain association
Email Problems
- Verify mail profile configuration
- Check SMTP parameters
- Test email sending from configured profile
SAML Integration
User Impersonation
1. Introduction
The User Impersonation plugin for Forma LMS allows authorized administrators to temporarily access the platform as another user.
The plugin is intended for support and debugging activities: an administrator can verify what a specific user sees in the LMS, reproduce access issues, and check course visibility or navigation problems without asking for the user's credentials.
During impersonation, the platform shows a visible banner and prevents learning tracking from being written as the impersonated user.
2. Installation and Activation
- Go to Administration > Plugin > Plugin Management.
- Locate User Impersonation in the plugin list.
- Click Install and then Activate.
When activated, the plugin registers:
- the impersonation controller;
- the Impersonation Log menu under the management area;
- the permission role used to enable impersonation actions.
3. Plugin Configuration
No external API credentials are required.
After activation, access depends on the administrator level and on the standard Forma LMS visibility rules:
- Super administrators can impersonate standard users and administrators, but not other super administrators.
- Administrators can impersonate visible standard users only.
- Administrators cannot impersonate other administrators or super administrators.
- Users cannot impersonate anyone.
The plugin requires Forma LMS 4.2 or later.
4. User Impersonation from User Management
4.1 Starting an Impersonation Session
Within the user management area:
- Open Administration > Users > User Management.
- Find the user to verify.
- Click the Impersonate action available on the user row.
- Confirm the operation.
After confirmation, Forma LMS switches the current session to the selected user and redirects the administrator to the LMS area.
The administrator can then navigate the platform with the same visibility and permissions as the selected user.
5. Active Impersonation Session
While impersonation is active, Forma LMS displays a red banner across the interface.
During the session, the plugin:
- blocks learning tracking writes, so course progress is not altered;
- bypasses forced password renewal for the impersonated user;
- bypasses concurrent access checks, so the real user's session is not invalidated;
- prevents nested impersonation sessions.
6. Stopping Impersonation
To return to the original administrator session:
- Click Stop Impersonation in the banner.
- The plugin restores the original administrator user.
- Forma LMS redirects back to user management.
The stop action is protected by a token and the session ID is regenerated when impersonation starts and stops.
If the session expires while impersonation is active, the plugin writes a timeout entry in the audit log.
7. Reports and History
The plugin provides an Impersonation Log page for super administrators.
The log shows:
- date and time of the action;
- administrator username;
- impersonated username;
- action type: start, stop, or timeout;
- IP address.
The log can be filtered by administrator and by impersonated user.
8. Security Notes
The plugin is designed for support and troubleshooting, not for normal user activity.
Main safeguards:
- no impersonation of yourself;
- no impersonation of super administrators;
- no administrator-to-administrator impersonation for standard administrators;
- CSRF-protected stop action;
- session regeneration on start and stop;
- visible banner during the whole session;
- audit log for traceability;
- tracking protection to avoid corrupting learning data.