Unimicro integration
Connect Huma to Unimicro to keep employee profiles, employments, salary and absence in sync
Table of contents
- Roles and access
- How data flows
- Before you start
- Set up the integration
- When the integration is active
- Supported fields
- Error log and troubleshooting
- FAQ
- Related articles
Roles and access
| Role in Huma | System role with full access to Organization |
| Role in Unimicro | A user who can log in and authorize the connection to the company |
💡 Not sure which roles you need in Unimicro? Contact your Unimicro administrator or Unimicro support.
💡 The Unimicro integration is marked as beta in Huma.
How data flows
| Data | Huma → Unimicro | Unimicro → Huma | When |
|---|---|---|---|
| Profile fields | ✅ Automatic | ✅ Manual only | Changes in Huma are sent in real time. Changes in Unimicro are brought in when you click "Sync users". |
| New employees | ✅ Automatic, if turned on | ✅ Manual only | When an employee is added in Huma, or when you click "Sync users" |
| Positions (employments) | ✅ Updates only, if turned on | ❌ | When a position is updated in Huma |
| Salary | ✅ Automatic, if turned on | ❌ | When a salary is created, updated or deleted in Huma |
| Absence | ✅ Automatic, if turned on | ❌ | When an absence is created, updated or deleted in Huma |
⚠️ Historical data is not transferred. Only positions, salaries and absences created or updated after the integration is active are sent to Unimicro.
Before you start
- You have a system role with full access to Organization in Huma.
- You know which environment your company uses. You choose it during setup: Unimicro, Unimicro SMB, DNB Regnskap, Eika Regnskap, Azets Complete, or one of the SpareBank 1 Regnskap environments (Gudbrandsdal, Hallingdal Valdres, Lom og Skjåk, Nord-Norge, Nordmøre, Ringerike Hadeland, Sør-Norge, Østfold Akershus, Østlandet and SMN). If you use one of these, you don't need a separate Unimicro login.
- If your user in Unimicro has access to more than one company, you need the company's organization number.
- If the company has more than one sub entity ("Underenhet") in Unimicro, you need the sub entity's organization number. Set up one connection per sub entity if you need more than one.
- Employees who exist in both systems have the same email address in Huma and Unimicro. Huma matches employees by email only.
- Every employee has an employee ID in Huma that is a number. It is required when employees are created in Unimicro.
- Employments exist in Unimicro. The integration can't create employments.
Set up the integration
Step 1: Start the setup in Huma
- In Huma, go to "Integrations" and select "Unimicro".
- Read the "Overview" and "Details" tabs.
- Click "Set up" in the top-right corner.
- Give the connection a name.
- Choose who to include in the connection: everyone, or a specific team, location or company.
- Choose the environment.
- Fill in the organization number and the sub entity organization number, if needed.
- Confirm that you have the authority to accept the terms on behalf of your organization.
🔗 Need more than one connection, for example one per sub entity? See Multiple connections.

Step 2: Choose what to sync
You can change these settings later.
| Setting | When on | When off |
|---|---|---|
| Users: Create in Unimicro when added in Huma | New employees in Huma are created in Unimicro automatically, in the sub entity of the connection. | New employees are only created in Unimicro when you click "Sync users". |
| Positions: Update in Unimicro when updated in Huma | Changes to a position in Huma update the matching employment in Unimicro. | No position data is sent. |
| Salary: Create, update and delete in Unimicro when updated in Huma | Salaries are added to the salary history on the matching employment in Unimicro. | No salary data is sent. |
| Absence: Create, update and delete in Unimicro when updated in Huma | Absence is registered as leave on the matching employments in Unimicro. | No absence is sent. |


Step 3: Authorize the connection in Unimicro
- You are sent to the login page for the environment you chose.
- Log in with your user.
- Authorize the connection to your account.
- You are sent back to Huma.
Step 4: Map absence types
Do this step if you turned on absence.
- For each absence type in Huma, choose the matching leave type in Unimicro.
- Click "Save".
⚠️ Absence types that are not mapped are not sent to Unimicro. Keep the mapping in place for absence types that are already synced, or later changes and deletions fail.

Step 5: Sync users to activate the integration
After setup, the integration page shows "This integration is configured but not active". Nothing is sent until you complete this step.
- Click "Sync users".
- Matching users are employees with the same email in both systems.
- Review which fields have different or missing values.
- For each case, choose to update Huma with the value from Unimicro, update Unimicro with the value from Huma, or leave it as it is.
- Click "Next".
- Non-matching users are employees who exist in only one of the systems.
- Choose to create all, only the ones you select, or none.
- Choose the direction: Unimicro → Huma, or Huma → Unimicro.
- Click "Sync users".
The status changes to "Connected and active". You get an email with the result.
💡 Note
Before you sync, decide which system has the most up-to-date information. The choices you make here overwrite data.
⚠️ Users missing required fields, such as the employee ID, are not synced until the values are filled in.
When the integration is active
What happens automatically
- Changes to supported profile fields in Huma are sent to Unimicro in real time.
- New employees are created in Unimicro, if "Users" is turned on.
- Updated positions, salaries and absences are sent, if the settings are turned on.
When you need to sync manually
Click "Sync users" when:
- You have changed a supported field in Unimicro and want it in Huma.
- You have added employees in Unimicro that should be created in Huma.
- You have added employees in Huma, and "Users: Create in Unimicro when added in Huma" is off.
How positions are updated
- The integration can't create employments. Create the employment in Unimicro first, then the position in Huma with the same values.
- When you update a position, Huma looks for the employment in Unimicro where all of these match the values the position had before the change: start date, job title, employment percentage, contract type, end date and end reason.
- If no employment matches, the update is not sent, and you see an error in the error log.
- Huma only updates the employment percentage if it can tell which percentage is current. If the percentage history in Unimicro has an entry without a start date, or the percentage doesn't match what Huma had before the change, the change is saved in Huma but not sent. The error log shows "Position not synced to Unimicro", followed by the reason.
- Deleting a position in Huma doesn't delete the employment in Unimicro.
💡 When you edit the first position that Huma created automatically when Employee history was launched, make sure all the values match the employment in Unimicro.
How salary is sent
- Only salaries in NOK are sent. Other currencies are rejected.
- Monthly, yearly and hourly salaries are supported. Weekly salaries are rejected and must be registered manually in Unimicro.
- A new salary is added to the employment whose period covers the salary's start date. If more than one employment covers it, the standard employment in Unimicro is used. If none of them is standard, the salary is rejected.
- When you edit or delete a salary, Huma looks for the entry in Unimicro with the same start date and amount as before the change. If none is found, the change is rejected, and you need to make it manually in Unimicro.
- Unimicro doesn't store an end date. A salary is valid until the next salary starts.
💡 Unimicro sets the start date of the first salary entry to the employment's start date. A later edit of that salary may then not find a match. Check the entry in Unimicro if this happens.
How absence is sent
- Absence is registered as leave on every employment in Unimicro whose period covers the whole absence.
- If no employment covers the period, the absence is rejected.
- If Unimicro already has leave of the same type that overlaps the period, the absence is rejected.
- When you change an absence, the leave is updated. If you change the absence type, the old leave is deleted and a new one is created. Both absence types must be mapped.
- When you delete an absence, Huma deletes the leave with the same type and dates on every matching employment.
- A vacation can't span two calendar years in Unimicro. Register it as one absence per year.
When an employee leaves
Deactivated in Huma:
- The employee is not deactivated in Unimicro.
- The employee is locked from updates from the integration.
Deleted in Huma:
- The employee is not deleted in Unimicro.
- The next time you click "Sync users", you are offered to create the employee in Huma again.
💡 To register that an employment ends in Unimicro, set an end date and end reason on the employment in Unimicro first, then on the position in Huma. Or turn on positions and set them in Huma, as long as the old values match.
Change settings or the connection
- Go to the Unimicro integration in Huma.
- Click ··· in the top-right corner.
- Select an option:
- "Edit connection settings" to change the settings, the environment, the organization numbers or the absence mapping.
- "Edit connection details" to change the name or who is included in the connection.
Disconnect or remove
- Disconnect: Stops syncing but keeps your setup.
- Remove: Stops syncing and deletes all saved setup.
Supported fields
Profile fields
Changes in Huma are sent automatically. Changes in Unimicro are brought in with "Sync users".
| Huma field | Unimicro field | Required | Notes |
|---|---|---|---|
| Email address | Used to match employees. Must be unique in Huma. When you change the email in Huma, it is updated in Unimicro. API name: businessRelation.emails[].emailAddress |
||
| Employee ID | Employee number | ✅ | Must be a number and unique in Huma and Unimicro. Only sent when the employee is created. Changes in Huma are not sent to Unimicro. Update it manually in Unimicro. API name: employeeNumber |
| Given name and family name | Name | Unimicro has one name field. API name: businessRelation.name |
|
| Phone number | Phone | Must be unique in Huma and Unimicro. API name: businessRelation.phones[].number |
|
| Date of birth | Birth date | API name: birthDate |
|
| Identifications | Social security number and International ID | A Norwegian national identity number goes to the social security number. The first non-Norwegian identification goes to the international ID, with type and country. API names: socialSecurityNumber, internationalID, internasjonalIDType, internasjonalIDCountry |
|
| Address | Address | API name: businessRelation.addresses[] |
|
| Gender | Sex | Only male and female are supported. If gender is unspecified in Unimicro, it stays unchanged in Huma. A custom gender in Huma becomes unspecified in Unimicro. API name: sex |
Position fields (Huma → Unimicro)
Sent only when "Positions: Update in Unimicro when updated in Huma" is turned on. Only updates are sent.
| Huma field | Unimicro field | Notes |
|---|---|---|
| Contract start date | Start date | API name: employments[].startDate |
| Contract end date | End date | API name: employments[].endDate |
| Job title | Job name | API name: employments[].jobName |
| Employment percentage | Work percent | Updates the current entry in the work percentage history. API name: employments[].workPercent |
| Contract type | Employment type | Permanent → Permanent. Temporary → Temporary. All other contract types are sent as "Not set". API name: employments[].employmentType |
| End reason | End date reason | See the table below. API name: employments[].endDateReason |
| End reason in Huma | End date reason in Unimicro |
|---|---|
| The employee has resigned | Employee has resigned |
| The employer has terminated the employee | Employer has terminated the employee |
| The contract, engagement, or temporary position has expired | Temporary employment has expired |
| Change in organizational structure or internal job transfer | Change in organization structure or changed job internally |
| Changed payroll system or accountant | Changed accounting system or accountant |
| Other | Not set |
Salary fields (Huma → Unimicro)
| Huma field | Unimicro field | Notes |
|---|---|---|
| Start date | From date | Required. API name: EmploymentSalaryHistory.FromDate |
| Amount | Month rate, Year rate or Hour rate | Monthly → month rate. Yearly → year rate. Hourly → hour rate. Weekly is not supported. API names: MonthRate, YearRate, HourRate |
Absence fields (Huma → Unimicro)
| Huma field | Unimicro field | Notes |
|---|---|---|
| Absence type | Leave type | From the absence type mapping. Required. API name: LeaveType |
| Start and end date | From date and To date | Required. API names: FromDate, ToDate |
| Grade | Leave percent | Required. API name: LeavePercent |
| Note | Description | If there is no note, the comment is sent. API name: Description |
Error log and troubleshooting
Where to find the error log
- Go to the Unimicro integration in Huma.
- Open the "Error log" tab.
Errors are grouped by day. Each entry shows a message, the time, which employee it concerns and a level:
| Level | What it means |
|---|---|
| 🔴 Error | Something was not sent to Unimicro. You need to take action. |
| 🟡 Warning | Something needs your attention. |
| 🔵 Info | For your information. No action needed. |
Integration status
| Status on the integration page | What to do |
|---|---|
| This integration is configured but not active | Click "Sync users" to activate it. |
| Connected and active | Everything works. |
Common errors
| Problem | What it means | How to fix it |
|---|---|---|
| No matching position found | No employment in Unimicro has the same values as the position had before the change. | Compare the employment in Unimicro with the position in Huma, and make the change manually in Unimicro. |
| Position not synced to Unimicro: … | The employment percentage history in Unimicro has an entry without a start date, or a different percentage. | Update the percentage manually in Unimicro. Add a start date to the entry, so future changes sync. |
| Leave type mapping is missing | The absence type isn't mapped to a leave type in Unimicro. | Map the absence type in "Edit connection settings". Register the absence manually in Unimicro if needed. |
| No matching employment found for period … | No employment in Unimicro covers the whole absence period. | Check the employment dates in Unimicro. |
| Overlapping absence of the same type already exists in Unimicro | Unimicro already has leave of the same type in the period. | Remove or correct the existing leave in Unimicro. |
| Unimicro does not allow a vacation to span two calendar years | The vacation crosses the new year. | Register it as two absences in Huma: one that ends on December 31, and one that starts on January 1. |
| Salary rejected | The salary is weekly, not in NOK, or no employment covers the start date. | Register the salary manually in Unimicro, or correct it in Huma. |
| Email mismatch when trying to update | The email address in Unimicro no longer matches the employee in Huma. | Make sure the email address is the same in both systems, and click "Sync users". |
FAQ
Why don't changes I make in Unimicro show up in Huma?
Changes only go automatically from Huma to Unimicro. To bring changes from Unimicro into Huma, click "Sync users".
Why isn't an employment created in Unimicro when I add a position in Huma?
The integration can't create employments. Create the employment in Unimicro first, then the position in Huma with the same start date, job title, percentage and contract type.
Why isn't the position removed in Unimicro when I delete it in Huma?
The integration can't delete employments. Delete it manually in Unimicro.
Why doesn't the employee ID update in Unimicro when I change it in Huma?
The employee number is a unique identifier in Unimicro and is only sent when the employee is created. Update it manually in Unimicro.
Can I register vacation that spans two calendar years?
No, not as one absence. Register it as two absences: one that ends on December 31, and one that starts on January 1. If you change an existing vacation so it spans the new year, the old leave is still in Unimicro. The error log shows which one. Delete it manually in Unimicro, then register the vacation again as one absence per year. This only applies to absence types mapped to vacation.
Which salary types are supported?
Monthly, yearly and hourly salaries in NOK. Weekly salaries and other currencies must be registered manually in Unimicro.
Can historical data be transferred?
No. Only positions, salaries and absences created or updated after the integration is active are sent.
Related articles
🔗 How absence works in integrations