Keeping employee records current is the foundation everything else rests on. If someone's department, role or supervisor is wrong in Performance Leader, their reviews route to the wrong person and they appear in the wrong reports.
Most firms solve this by connecting their HR system to Performance Leader so employee data updates automatically, usually overnight. This guide explains how those connections work, what the platform does with the data it receives, and what we need from you to set one up.
Setting up a connection is done with your Customer Success Manager and your IT team. This guide is here so you know what you are agreeing to and what to ask for.
How connections work
Automatic imports and manual ones share a home: the Employee data import and HRIS sync card, under Utilities > Data Utilities. That is where a connection is configured, where an administrator can trigger a sync by hand, and where past runs are listed.
Whatever the source, the shape is the same. On a schedule, Performance Leader reads a current list of your employees, compares it with what it already holds, and updates accordingly — creating new starters, updating people whose details have changed, and deactivating people who are no longer on the list.
There are three routes, and which one you use depends mostly on what your HR system supports.
API connectors — we connect directly to your HR system through its API. Available connectors are:
Microsoft Entra ID (Azure AD)
Sage People
Oracle Cloud HCM (SOAP)
Direct database connection — for SQL Server, we pull employee data straight from your hosted database. You give us access; we query it on the schedule.
File drop over SFTP — for CSV File and Excel File connections, we set up a secure folder, you drop a file into it, and we ingest the most recent file each morning. This is the most flexible option, because almost any HR system can be made to export a file on a schedule.
There is also an Azure Profile Photos connection, which brings employee photographs across from Azure. It complements an employee data connection rather than replacing one.
Which route should you choose?
If your HR system is one we have a connector for, we should start there.
If there is no connector, or there is a reason we can’t use one, the SFTP file drop is usually the best option, and it’s how many of our clients automate their updates. Anything that can produce a scheduled export will work. Microsoft Power Automate is a common choice: a flow exports the employee list on a schedule and drops it into the folder we provide.
The direct SQL Server route suits firms whose HR data already sits in a database they are comfortable giving us read access to.
Scheduling
When a connection is created it is set to one of two import modes:
Automatic — the import runs on a schedule without anyone doing anything
Manual — the import only runs when an administrator triggers it
Most firms run automatically, once a day, early in the morning before the working day starts. That way any changes made in the HR system yesterday are reflected in Performance Leader before people log in. The exact time is agreed when the connection is set up.
An administrator can also trigger a sync at any time from Utilities > Data Utilities > Run HRIS Sync — useful after a bulk change in your HR system when you do not want to wait for the overnight run.
What the sync does with your data
Three behaviours matter, and they are the source of most questions.
1) It expects a complete list, not a list of changes
Performance Leader treats each import as the full list of your current active employees — not a delta of what has changed since last time.
Anyone in Performance Leader who is not on the list is deactivated.
That is deliberate: it means leavers are handled automatically, without anyone having to remember. But it has an important consequence.
Protect your test and administrator accounts. Any account that does not come from your HR system — a training account, a CSM account, an admin login that is not a real employee — will be deactivated by the first sync unless it is marked as a test account.
To protect one, open the user in Manage Users, edit their profile, and tick This is a test or training account. Do this before your first automated run, and check it again if you add accounts of this kind later.
2) People are matched on employee ID
Records are matched on employee ID, so those IDs must be unique across your workforce.
If the sync finds a duplicate ID — in either your active or your deactivated users — it stops and does not process the import, on the basis that the data cannot be trusted. An email notification goes to the addresses nominated when the connection was set up.
This is a safety feature rather than a fault: it is far better to pause than to merge two people's records. When it happens, correct the duplicate at source and the next run will proceed.
3) Custom fields come across too
The import is not limited to the standard fields. Any custom attributes you have configured — a gender field, for example — can be included, and once imported they flow through to reporting, leadership views and filters in the same way as the built-in attributes.
This needs to be defined when scoping the sink with your IT team Beyond the core required attributes, what else do you want to pass into Performance Leader?
The file, if you are using CSV or Excel
The file should be formatted exactly like the manual user import file — the same columns, with the same headers. The simplest approach is to download the import template from the employee importer and have your export match it.
A few practical points:
Include every active employee, every time. Remember the platform treats the file as the complete picture.
Keep employee IDs unique and stable. An ID that changes between runs looks like a leaver and a new starter.
The folder is IP constrained, so the export job must run from an address we have whitelisted.
We ingest the most recent file in the folder each morning.
Getting set up
Setting up a connection is a joint exercise. To start, contact your Customer Success Manager. What happens next depends on the route, but broadly:
For an SFTP file drop, we create the secure, IP-constrained folder and send you the connection details. From you we need:
The outbound or public IP address or addresses the export job will connect from, so we can whitelist them
The email addresses that should receive notifications if a sync fails or pauses
For an API or SQL Server connection, we will agree credentials and access with your IT team. The same notification addresses apply.
In both cases, agree the schedule and confirm your test accounts are flagged before the first automated run.
Checking that it is working
Import history, at the top of Data Utilities, lists recent import runs with the file, type, status, who or what triggered it, the date, and the number of rows processed. This is the first place to look if someone reports that their details are out of date, or if you want to confirm last night's run completed.
Related guides
Import employee data and run HRIS sync — the manual CSV importer and triggering a sync by hand
Manage user details and roles — editing a user, including the test account setting
Create, update or delete core attributes (roles, departments, location) — the attributes your imported data populates
Export data and pull user lists — getting a current user list out of the platform
Common questions
What happens to someone who leaves?
They drop off your HR system's active list, so the next sync deactivates them in Performance Leader. Their historic reviews and feedback are retained.
What if we need to make a change immediately?
Edit the user directly in Manage Users. Be aware the next sync will overwrite it if your HR system still holds the old value — fix it at source as well.
Can we run the sync more than once a day?
Yes, while the schedule is agreed at setup an administrator can always trigger a run manually in the meantime.
Who gets told if a sync fails?
The email addresses nominated when the connection was configured. If you are not sure who is on that list, ask your Customer Success Manager — it is worth checking that it is a shared mailbox rather than one person.


