HELP CENTER SMART WAY LMS

Find answers and helpful instructions.

Browse by topic

Find the information you need by category.

Popular articles

The most popular Help Center articles.

LMS

AI Assistant: How to Enable, Configure, and Use It

The AI Assistant improves the quality of training, accelerates onboarding, and reduces the workload on mentors. It answers employees' questions quickly, in an understandable form, and only using materials available to those employees. This reduces the number of repetitive questions to managers and colleagues, helps employees find the necessary information faster, and complete onboarding and training more confidently. What the AI Assistant does? - Answers employee queries based on lesson materials to which they have access. - Helps explain topics and find the necessary information within courses. - Adheres to access restrictions: it does not “see” materials that are not available to a specific user. How to enable the AI Assistant? 1. Go to the menu section Settings - Company. 2. Switch on the toggle in the AI Assistant block. 3. The system will automatically create an AI knowledge base and add all activated courses. 4. Non-activated courses are not added to the AI knowledge base. The administrator does not need to configure anything manually; simply enabling the “AI Assistant” function is sufficient. The system does everything automatically thereafter. The initial full processing of all data and addition to the AI knowledge base may take some time, depending on the number of training courses, sometimes up to several hours. How to disable the AI Assistant? - Simply switch off the toggle in the menu section Settings - Company. - After this, the AI Assistant will be unavailable to users. - After disabling the AI Assistant, the company's AI knowledge base will be automatically deleted 3 days after disabling. If it is re-enabled more than 3 days after disabling, a new AI knowledge base will be created, and tokens will be deducted for adding all training courses. If it is re-enabled less than 3 days after disabling, the current AI knowledge base will be restored, and tokens will be deducted only for processing video and audio files and new content. How to open the chat to ask the AI Assistant a question? For administrators: 1. Click on the chat icon (in the middle of the right side of the screen). 2. A channel selection menu will open; click “AI Assistant”. For learners: 1. Click on the chat icon (in the middle of the right side of the screen); the “AI Assistant” chat will open immediately. Which languages are supported? The AI Assistant is multilingual and responds in the language in which the question was asked. If the query language differs from the language of the training materials, the assistant will automatically translate the answer. For example, if a user asks in German, but the course content is in Ukrainian, the AI Assistant will find the information, translate it into German, and provide the answer to the user. Can users take tests with the help of the AI Assistant? 1. On the test-taking page, the ability to open the AI Assistant is blocked. 2. To prevent situations where users open the AI Assistant in other tabs or on other devices, we have created a control system that, before referring to the AI Assistant, analyses whether the question is from a test or not. If it is a test question, the AI Assistant will report that it cannot answer test questions. Tip. If you want to ensure high-quality knowledge assessment and prevent learners from “bypassing” the system, set a timer to limit the test duration and use the test uniqueness function. How the knowledge base works (important for administrators)? After enabling the AI Assistant, the system creates the company's knowledge base. All activated courses are automatically added to it. When a new course is activated, it is automatically added to the knowledge base. If content changes in an activated course, the system automatically updates the information in the knowledge base. If a course is deactivated or deleted, the system automatically removes it from the AI knowledge base after 3 days. When a user contacts the AI Assistant, the system first checks which training materials the learner has access to, then looks for the answer to the question specifically among these training materials. The AI Assistant does not provide information from courses not assigned to the user. The administrator does not have to do anything manually — the system itself monitors changes in content and permissions, and automatically maintains the knowledge base in an up-to-date state. When are AI tokens deducted? 1. Enabling the AI Assistant. A knowledge base is created, and all activated courses are added. 2. Activation of new courses. Every new activated course is automatically added to the knowledge base. Tokens are deducted for the added course. 3. Updating course content. If text lessons have not changed, the system does not re-index them, and tokens are not deducted. If lessons contain images, audio, or video, tokens are deducted for each processing of these files, even if they have not changed. This is because images, audio, and video are analysed by AI models, and each processing requires resources. 4. User queries. When the AI Assistant is enabled, every user query deducts AI tokens. All token deduction statistics are recorded in detail and displayed in the AI Tokens section. If tokens run out before the end of the paid period, a red message will appear at the bottom of the screen when attempting to open the AI Assistant chat: “Not enough tokens to use the personal assistant, please contact the administrator.”. Additional tokens can be purchased in the AI Tokens section. Working with a negative token balance 1. Can the balance become negative? Yes. If you run out of tokens while an operation is being performed (for example, video processing), the system will not interrupt the process. It will complete the action and deduct the full cost, resulting in a negative balance ("minus"). This debt will be automatically deducted upon the next balance top-up. 2. Adding courses to the AI knowledge base with a negative balance. If the "AI Assistant" function is enabled, we do not block knowledge base updates even with a negative balance. This is done so that the assistant always has up-to-date information. Therefore, when activating new courses or changing content, tokens will continue to be deducted, which may increase the negative balance. 3. How to avoid a negative balance? You can temporarily disable the "AI Assistant" function in the settings and enable it after free tokens are credited. Or purchase additional tokens. ⚠️ Important: If you disable the assistant, the current AI knowledge base will be deleted after 3 days. Re-enabling the assistant will result in the creation of a new base and full re-indexing of all courses. This will cost significantly more tokens than maintaining the existing base in an up-to-date state.

LMS

Department manager: access to team reports and statistics

The "Department manager" role is useful when an employee needs to monitor their team's learning, testing and statistics, but should not receive administrator rights. This is view-only access. A manager can analyse data for employees in their departments, but cannot manage courses, tests, files, company settings or other users' access rights. When should this role be used? Assign the "Department manager" role when an employee is responsible for a group of people and needs to see their performance data in Smart Way. Typical examples: - a retail network manager monitors training for store employees; - a regional manager reviews statistics for several departments; - a sales department manager checks their team's test results; - a mentor or training owner monitors progress for specific departments. Do not use this role as a replacement for an administrator. If a user needs to create courses, edit employees, configure tests or change access rights, they need the LMS platform administrator role. What does a department manager see? A user with this role has the standard employee access to the Academy plus additional view-only access to reports for their departments. Their menu includes: - "Testing reports"; - "Hall of Achievements"; - "All courses"; - "User". In "All courses", the manager works like a regular employee on the LMS platform: they can view available courses and complete learning. They do not see actions for creating, editing or deleting courses. In "Testing reports", the manager sees reports for employees in their departments, can use filters, open PDF reports and download consolidated Excel reports. Deleting reports and administrative actions are not available to them. In the "Hall of Achievements", the manager sees: - their own learning metrics; - their own test results; - the "Performance ratings" table; - the "Employees who did not complete assigned tests" report; - the "Course test results" report. In the "Performance ratings" table, the manager sees general company employee metrics, as a regular employee does. In addition, they can open metric details only for employees in their departments. For those employees, the table shows "i" icons. The "Employees who did not complete assigned tests" and "Course test results" reports are generated only for employees in the manager's departments. How does Smart Way define "their departments"? Manager access is granted based on the values in the "Department" field in the employee card. If the manager and the employee share at least one department, the manager can view detailed reports and statistics for that employee. | Scenario | What the manager sees | | ------------------------------------------------------------------------------------------------ | ----------------------------------------------------------- | | The manager has the department "Retail network", and the employee also has "Retail network" | The manager sees details for this employee. | | The manager has the departments "Retail network" and "Training", and the employee has "Training" | Access is granted, because one shared department is enough. | | The manager has the department "Retail network", and the employee has only "Logistics" | Details for this employee are not available. | If the manager is responsible for several areas, add all required departments to their employee card. The same applies to employees: if a person belongs to several departments, add all current values. It is important to keep department names consistent. For example, "Retail network", "Retail" and "Роздрібна мережа" are different values for the system. What does the "Department manager" role not allow? The "Department manager" role does not give administrative rights. A manager cannot: - create, edit or delete courses; - manage lessons, tests or files; - add, edit or delete employees; - assign roles to other users; - change company settings; - view detailed data for employees without a shared department; - delete testing reports. What should be checked before enabling the role? Before assigning the role, check that the "Department" field contains all departments the employee is responsible for. If the "Department" field is empty, the "Department manager" option will be unavailable. After at least one department is added, the option can be enabled. A department manager needs to sign in to the personal account, so when this role is enabled, Smart Way also enables Academy access. If Academy access is later disabled, the department manager role is also removed. How to enable the role in the employee card 1. Sign in to Smart Way with an administrator account. 2. Go to "Employees". 3. Find the required employee in the list. 4. Open their card. 5. Check the "Department" field and add all departments this employee is responsible for. 6. Enable "Department manager". 7. Make sure "Grant access to the Academy" is also enabled. 8. Click "Save". After saving, the employee will be able to sign in and will see the menu available to a department manager. If the employee is an administrator, the "Department manager" block is not shown in their card. Administrators already have broader rights, so this role does not need to be enabled separately for them. How do you enable the role via XLSX import? For bulk employee creation, use the current XLSX template in "Employees". The template contains a manager column. It is optional. Fill it in as follows: | **Value in the ****manager** column | Result | | ------------------------------------- | ------------------------------------------------------------------------------------------ | | true | The employee will be created as a department manager. Academy access will also be enabled. | | 1 | Same as true. | | blank | The department manager role is not assigned. | | false | The department manager role is not assigned. | | 0 | The department manager role is not assigned. | The manager column does not replace the "Department" field. For the manager to see the right employees, departments must be filled in correctly in the file. If one employee belongs to several departments, enter them in one cell separated by commas. For example: Retail network, Training. How to disable the role To disable the role for a specific employee: 1. Go to "Employees". 2. Open the employee card. 3. Disable "Department manager". 4. Click "Save". If the employee should continue learning in the Academy, leave "Grant access to the Academy" enabled. In that case, they remain a regular Academy user but lose extended access to department reports. If the employee no longer needs a personal account, you can disable "Grant access to the Academy". In this case, department manager access will also be removed. What typical issues can occur? | Situation | What to do | | ------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | | The manager does not see team reports | Check that the "Department manager" role is enabled and that departments are filled in correctly in the manager and employee cards. | | The "Department manager" option is unavailable | Fill in the "Department" field in the employee card. | | Some employees are missing from reports | Check whether those employees share at least one department with the manager. | | The manager sees the wrong department | Check the department list in their card. | | There is no "i" icon next to an employee in "Performance ratings" | The most common reason is that there is no shared department. | | The "Department manager" option is not visible in an administrator's card | This option is not shown for employees who are administrators, because they already have broader access. | What should administrators keep in mind? - Use consistent department names and avoid duplicate variants. - Fill in the department field in every employee card. - For managers responsible for several areas, add all required departments at once. - After changes to the company structure, check whether the departments in manager cards need to be updated. - Periodically review who has this role so access remains up to date. FAQ Can a manager see employees from several departments? Yes. If several departments are specified for the manager, they get access to statistics for employees who have at least one of those departments. Can an employee have several departments? Yes. Several departments can be specified in an employee card. For manager access, one match with the manager's departments is enough. Does the manager receive administrator rights? No. The role only gives access to view reports and statistics within their departments. Administrative actions remain unavailable. Can a manager edit courses or tests? No. They work as a regular Academy employee and do not have content management rights. Why is Academy access enabled when the role is enabled? The manager needs to sign in to the personal account to view reports and statistics. This role therefore requires active Academy access. What happens if Academy access is disabled? The employee loses access to the personal account, and the department manager role is also removed. Should this role be assigned to administrators? No. Administrators already have broader rights, and the "Department manager" block is not shown for them.

API

How to obtain an access token

An access token is required to authorise subsequent API requests in LMS Smart Way. After obtaining the token, you pass it in the Authorization header with the Bearer type and use it to call the available endpoints in accordance with the scopes embedded in the token. This article shows how to obtain a token, what exactly the API returns in the response, and what to pay attention to before integration. If you are just starting the integration setup, first ensure that you have a valid company_api_key. Prerequisites - You must have a valid company_api_key for your company. - The token request must be sent to the /api/v1/auth/token endpoint. - The API key is passed in the X-API-Key header. - The obtained access token is used only for subsequent API calls and does not replace the API key. Request curl -X POST 'https://smartway.pro/api/v1/auth/token' \ -H 'X-API-Key: <company_api_key>' Successful response { "access_token": "<short_lived_jwt>", "token_type": "Bearer", "expires_in": 900, "scope": "academy.read academy.write employees.read employees.write tests.read tests.write files.read" } Response rules - access_token — short-lived JWT for subsequent public API calls - token_type — always Bearer - expires_in — TTL in seconds - scope — list of scopes separated by spaces embedded in the token What is inside the access token - The JWT contains the companyId claim for tenant isolation. - The JWT also contains the hrEmail claim — the email of the HRADMIN who created or rotated the company’s current active API key. - If another HRADMIN generates or rotates the API key, newly issued tokens will contain a different hrEmail, which will be used for subsequent employee write operations. How to use the access token in subsequent requests After successfully obtaining the token, pass it in the Authorization header in the format Bearer <access_token>. This token is used to authorise subsequent requests to the public API. Before making a request, check that the token has not expired. If it has expired, obtain a new access token by calling the authorisation endpoint again.

LMS

Creating a training course

To create a new training course: 1. Click the button with the graduation cap icon in the lower right corner of the screen. 2. A pop-up window will open. Make sure to enter the course name (this can be changed later) and optionally provide a course description (this can also be changed or added later). 3. Click on the "Create" button. This will create an empty training course that you will need to fill with content later. Note. A course is created simultaneously in all language versions of the Academy. If you plan to translate the course into other languages, you will need to update the title and description in the selected language (details will be provided in the lesson ‘Multilingual courses’).

API

How to get a testing report PDF via API

Short answer The GET /api/v1/tests/reports/pdf endpoint returns a testing report PDF by uniqueId. The uniqueId query parameter is required, and lang can be sent to select the PDF report language. Before returning the PDF, the server checks that the report belongs to the current company. Which endpoint is used? Use GET /api/v1/tests/reports/pdf. The endpoint returns a binary PDF file by the unique testing report identifier. | Parameter | Value | | ------------- | --------------------------- | | Method | GET | | Endpoint | /api/v1/tests/reports/pdf | | Base URL | https://smartway.pro | | Auth | Bearer token | What is this API endpoint used for? This endpoint is used to download or open a testing report PDF. It is used after retrieving uniqueId from the testing report list. What prerequisites are required before sending the request? - A Bearer token with company context is required. - The token must include the tests.read scope. - A uniqueId of a testing report belonging to the current company is required. | Prerequisite | Description | Required | | ---------------- | --------------------------------- | ------------ | | access_token | Bearer token with company context | Yes | | tests.read | Scope for reading testing reports | Yes | | uniqueId | Unique testing report identifier | Yes | Which parameters must be sent in the request? Headers | Header | Type | Required | Description | | --------------- | -------- | ------------ | -------------------------------------------------- | | Authorization | string | Yes | Bearer token in the Bearer <access_token> format | | Accept | string | Yes | application/pdf | Path parameters Path parameters are absent. Query parameters | Parameter | Type | Required | Description | | ------------- | -------- | ------------ | ------------------------------------------------------------------------ | | uniqueId | string | Yes | Unique testing report identifier | | lang | string | No | PDF report language; default en, available languages: uk, ru, en | Request body Request body is not used. curl example curl -X GET 'https://smartway.pro/api/v1/tests/reports/pdf?uniqueId=abc12345&lang=en' \ -H 'Authorization: Bearer <access_token>' \ -H 'Accept: application/pdf' \ --output test-report-abc12345.pdf What response does the API return? A successful request returns 200 OK and a binary PDF file. The successful response has Content-Type: application/pdf and Content-Disposition: inline; filename=test-report-<uniqueId>.pdf. JSON response body is not used because the response is a binary PDF file. What do the API response fields mean? Insufficient data to describe response fields. What happens under the hood? - Before returning the PDF, the server checks that the report belongs to the current company. - Access requires the tests.read scope. Which edge cases should be considered? | Scenario | API behaviour | Integrator action | | --------------------------------------------- | --------------------------- | -------------------------------------------------------------------------- | | uniqueId not found | API returns 404 Not Found | Check uniqueId from the testing report list | | Report does not belong to the current company | API returns 404 Not Found | Use only uniqueId values available in the current company tenant context | | lang not sent | API uses en | Send lang when another PDF language is required | Which errors can the API return? | HTTP status | Description | | --------------------------- | ---------------------------------------------------------- | | 401 Unauthorized | Missing or invalid Bearer token | | 403 Forbidden | Insufficient permissions | | 404 Not Found | Report not found or does not belong to the current company | | 500 Internal Server Error | Unexpected error | | 503 Service Unavailable | Service failure | How to use the result in subsequent API requests? The uniqueId value comes from the POST /api/v1/tests/reports/search response. Save the PDF request result to a file or open it as a PDF document. Example of retrieving uniqueId from the report list: curl -X POST 'https://smartway.pro/api/v1/tests/reports/search?lang=en' \ -H 'Authorization: Bearer <access_token>' \ -H 'Accept: application/json' \ -H 'Content-Type: application/json' \ -d '{ "page": 0, "size": 20, "view": "all" }' Which mistakes should integrators avoid? - Sending a uniqueId that does not belong to the current company. - Omitting Accept: application/pdf. - Expecting a JSON response instead of a binary PDF file. - Calling the endpoint without the tests.read scope. FAQ Which parameter is required? The uniqueId query parameter is required. Which PDF language can be requested? lang supports uk, ru and en; if it is not sent, en is used. What does the API return? The API returns a binary PDF file with Content-Type: application/pdf. What happens if the report does not belong to the company? The API returns 404 Not Found. Which scope is required? The tests.read scope is required.

API

Get a test by ID

GET /v1/tests/{testId} returns detailed test information if the test is available to the current company and is not an integrated synthetic SCORM/CMI5/xAPI test. Endpoint | Method | URL | | ---------- | -------------------------------------------- | | GET | https://smartway.pro/api/v1/tests/{testId} | Purpose Retrieve settings for a specific test: activity status, question count, timer, uniqueness, validation and passing score. Prerequisites | Requirement | Value | | --------------- | ------------------------------------------------------------------- | | Authorisation | Authorization: Bearer <access_token> | | Scope | tests.read | | Tenant context | Search is performed within the tenant context from the Bearer token | Request Path parameters | Parameter | Type | Required | Description | | ------------- | -------- | ------------ | --------------- | | testId | int64 | yes | Test ID | curl example curl -X GET 'https://smartway.pro/api/v1/tests/200001' \ -H 'Authorization: Bearer <access_token>' \ -H 'Accept: application/json' Response Successful response: 200 OK. { "testId": 200001, "name": "Adaptive Sales", "active": true, "companyOwned": true, "questionCount": 12, "timerEnabled": true, "timerMinutes": 10, "uniquenessEnabled": true, "uniquenessQuestionCount": 25, "validationEnabled": true, "passingScore": 75 } Response fields | Field | Type | Description | | ------------------------- | -------- | ------------------------------------------------- | | testId | int64 | Test ID | | name | string | Test name | | active | boolean | Test activity flag | | companyOwned | boolean | true if the test belongs to the current company | | questionCount | int32 | Number of questions in the test | | timerEnabled | boolean | Whether the timer is enabled | | timerMinutes | int32 | Timer duration in minutes | | uniquenessEnabled | boolean | Whether question uniqueness is enabled | | uniquenessQuestionCount | int32 | Number of unique questions | | validationEnabled | boolean | Whether result validation is enabled | | passingScore | int32 | Passing score | Business logic - The API searches for the test within the tenant context from the Bearer token. - If the test is not available to the current company, the API returns 404 Not Found. - Integrated synthetic SCORM/CMI5/xAPI tests are not returned by this endpoint. Edge cases | Scenario | API behaviour | | -------------------------------------------------------------------- | -------------------------------- | | The test is not available to the current company | 404 Not Found | | testId belongs to an integrated synthetic SCORM/CMI5/xAPI test | 404 Not Found | | Timer, uniqueness, validation or passing score settings do not apply | The related fields can be null | Errors | HTTP status | Reason | | ------------------------- | ------------------------------------------------------------------------------------ | | 401 Unauthorized | Bearer token is missing or invalid | | 403 Forbidden | Insufficient permissions | | 404 Not Found | Test not found, unavailable to the current tenant or is an integrated synthetic test | | 500 Internal Server Error | Unexpected LMS Smart Way error | | 503 Service Unavailable | LMS Smart Way internal integration failure | Usage Use this endpoint after GET /v1/tests to retrieve details for a specific test before creating an invitation or analysing settings. Common mistakes | Mistake | How to avoid it | | --------------------------------------------------- | ------------------------------------------------ | | Using a testId unavailable to the current company | Retrieve testId values through GET /v1/tests | | Treating nullable fields as required | Check for null in test settings | FAQ Why does the API return 404 Not Found for an existing testId? The test may be unavailable to the current company or may be an integrated synthetic SCORM/CMI5/xAPI test. Are all test settings always populated? No. Some settings can be null.