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.