Integration of BC-HCM LMS
Extension — SMART Payroll and SMART HCM & LMS Connector (add-on to SMART Payroll)
The system provides the ability to configure integration between Business Central and SMART HCM & LMS (Human Capital Management & Learning Management System). The integration ensures automatic synchronization of HR and payroll data between the two systems.
Key capabilities:
- synchronization of organizational structure (organizational units, job titles, positions, employee categories)
- synchronization of person data and labor contracts with lines
- synchronization of causes of absence and time activity groups
- transfer of payroll documents and timesheet statuses
- receiving absence requests from HCM & LMS to Business Central
- support for cross-company persons
Synchronization operates on an event-based model: when data changes in Business Central, an integration queue entry is automatically created, which is then processed by the job queue and sent to HCM & LMS.
Step 1: Integration Setup
Path: HCM & LMS Setup
The following sections of fields are available on the setup page:
Section "General"
| Field | Description | Dependencies and details |
|---|---|---|
| HCM Company Id | Identifier (GUID) of the company in the HCM & LMS system. Used as AccountId in all integration requests. | Populated automatically when the setup page is first opened (taken from Company.Id). Required for activation. |
| HCM Company Code | Company code in the HCM & LMS system. | Required for activation. Used when creating a company record in HCM. When the value is cleared — the integration queue is purged. |
| Active | Enables or disables data exchange between systems. | On first activation, the system automatically generates initial integration records for all entities (details in Step 2). The following fields must be filled for activation: HCM Company Id, HCM Company Code, HCM User ID. |
| Integration Token | Authorization token for the HCM & LMS API. | Stored in a secured (masked) field. Assigned individually. |
| Integration URL | Base URL of the HCM & LMS API. | Do not include /create, /update, /delete paths — they are appended automatically. Assigned individually. |
| Restore Integration Func. | Automatic recovery of the integration job queue upon unexpected stoppage. | If enabled, the system automatically restarts the job queue when a user logs in, if the queue has stopped due to an error. |
Section "Administration"
| Field | Description | Dependencies and details |
|---|---|---|
| Default Taxpayer Document Type | Default identity document type. Used for transferring passport data of persons. | Depends on the "Person Document Types" reference (SMA Person Document Type). If filled — when synchronizing a person, the series, number, issue date, and issuing authority of the document of the specified type are transferred. |
| HCM User ID | Business Central user code whose changes are NOT synchronized to HCM. | Depends on the Users table. Required for activation. Used to prevent synchronization loops — changes made by this user (e.g., from the HCM side) do not create integration records. |
| API TimeZone | Windows time zone for formatting dates and times in requests. | For example: "FLE Standard Time" for Kyiv. |
| Enable Payroll Documents | Whether to synchronize payroll documents to HCM & LMS. | Enabled by default. If disabled — payroll documents are not transferred. |
| Enable Between Payroll Docs | Whether to include inter-period payroll documents in synchronization. | Enabled by default. Works together with Enable Payroll Documents. |
| Enable Employee Timesheet | Whether to synchronize timesheet statuses to HCM & LMS. | Enabled by default. Only timesheets with the "Released" status are transferred. |
Section "Filters"
| Field | Description | Dependencies and details |
|---|---|---|
| Labor Contract Filter | Filter for the "Labor Contract" table. | Restricts which labor contracts are synchronized to HCM. Edited via AssistEdit — opens the filter builder. If empty — all contracts are synchronized. |
| Position Filter | Filter for the "Position" table. | Restricts which positions are synchronized to HCM. Edited via AssistEdit. By default, positions with "Planned" status and budget positions are not synchronized. |
Section "Portal"
| Field | Description | Dependencies and details |
|---|---|---|
| Paid Leave Group Code | Time activity group code for paid leaves. | Depends on the "Time Activity Groups" reference (SMA Time Activity Group). Used to calculate timesheet days on the HCM portal. |
| Unpaid Leave Group Code | Time activity group code for unpaid leaves. | Depends on the "Time Activity Groups" reference. |
| Sick Leave Group Code | Time activity group code for sick leaves. | Depends on the "Time Activity Groups" reference. |
| Other Leave Group Code | Time activity group code for other types of absences. | Depends on the "Time Activity Groups" reference. |
Step 2: Integration Activation
When the Active field is set to Yes, the system automatically creates initial integration records for transferring all current data to HCM & LMS. Records are created in the following order:
- Organization information — one record is created for the current company
- Job Titles (Job Titles reference) — all job titles
- Employee Categories (Employee Categories) — all categories
- Causes of Absence (Causes of Absence) — only those with the "Export to HCM" flag enabled
- Organizational Units (Organizational Units) — all units
- Time Activity Groups (Time Activity Groups) — only those with the "Export to HCM" flag enabled
- Persons (Persons) — only those where the "HCM Primary Company" field is empty
- Positions (Positions) — taking into account the Position Filter, excluding positions with "Planned" status and budget positions
- Labor Contracts (Labor Contracts) — taking into account the Labor Contract Filter, only those with an employee number filled in. For each contract, the following are also created:
- contract lines (approved)
- payroll documents (if Enable Payroll Documents is enabled, for the last year)
- timesheet statuses (if Enable Employee Timesheet is enabled, only with "Released" status)
Note: the order of creation matters — references (job titles, categories, causes of absence, organizational units) are created first, so that when processing dependent entities (positions, contracts), the reference data is already present in HCM & LMS.
After activation, you need to start the Job Queue for the actual data transfer. The job queue is created automatically when the extension is installed with the "On Hold" status — it needs to be activated manually. Recommended interval: 1–5 minutes.
Step 3: Pages Between Which Systems Are Integrated
Below is the field mapping for each synchronized entity. The arrow indicates the direction of data transfer:
- → Business Central to HCM & LMS
- ← HCM & LMS to Business Central
- ↔ bidirectional exchange
For each entity, the field changes in Business Central that trigger synchronization and the supported operations (create, modify, delete) are indicated.
3.1. Organization Information (Business Central) → Organization Name (HCM & LMS)
Operations: modify
Synchronization is triggered when any of the following fields change: Name, Address, Phone, Website, Email.
| Business Central Field | HCM & LMS Field | Description and dependencies |
|---|---|---|
| — | id | Taken from HCM Company Id in the setup |
| — | Code | Taken from HCM Company Code in the setup |
| Name (Name) | Organization Name (Name) | Company name |
| Phone (Phone No.) | Phone (Telephone1) | Company phone |
| Address (Address) | Address (Address) | Company address |
| Website (Home Page) | Website (WebSiteUrl) | Company home page |
| Principal Activity (SMA Principal Activity) | Description (Description) | Transferred only if filled |
| Email (E-Mail) | Email (Emailaddress1) | Company email |
3.2. Job Titles (Business Central) → Job Titles (HCM & LMS)
Operations: create, modify, delete
Synchronization is triggered on: creation, modification of Name or Status fields, deletion, code renaming.
| Business Central Field | HCM & LMS Field | Description and dependencies |
|---|---|---|
| Code (Code) | Code (Code) | Job title code |
| Name (Name) | Name (Name) | Job title name |
| Status (Status) | State (State) | If Status = "Closed" → "Inactive", otherwise → "Active" |
3.3. Employee Categories (Business Central) → Position Level (HCM & LMS)
Operations: create, modify, delete
Synchronization is triggered on: creation, modification of the Description field, deletion, code renaming.
| Business Central Field | HCM & LMS Field | Description and dependencies |
|---|---|---|
| Code (Code) | Code (Code) | Category code |
| Description (Description) | Name (Name) | Position level name |
3.4. Organizational Units (Business Central) → Subdivision (HCM & LMS)
Operations: create, modify, delete
Synchronization is triggered on: creation, modification of the Name, Full Name, Status, Manager, Parent Unit, or Starting Date fields, deletion.
| Business Central Field | HCM & LMS Field | Description and dependencies |
|---|---|---|
| Code (Code) | Code (Code) | Organizational unit code |
| Name (Name) | Name (Name) | Short name of the unit |
| Full Name (Full Name) | Description (Description) | Full name of the unit |
| Manager (Manager No.) | Head of Subdivision (HeadOfSubdivisionId) | Depends on: Employee → Person. The SystemId of the manager's person is transferred. For cross-company persons, the SystemId from the primary company is used. |
| Manager Position | Head of Subdivision Position (HeadOfSubdivisionPositionId) | Depends on: Employee → Position (SMA Position No.). The SystemId of the manager's position is transferred. |
| Parent Unit (Parent Code) | Main Subdivision (MainSubdivisionId) | Depends on: parent organizational unit. The SystemId of the parent unit is transferred. |
| Starting Date (Starting Date) | Created On (CreatedOn) | Unit creation date |
| Status (Status) | State (State) | If Status = "Closed" → "Inactive", otherwise → "Active" |