HaileyHR
Connect HaileyHR: API-key setup, the employee and company data Noru reads, the schema profile that feeds the privacy data map, and what stays in Hailey.
- Authentication
- API key
- Categories
- HR
- Sync cadence
- Daily by default (hourly, weekly, or monthly on request)
HaileyHR is Noru's HR source of record. It supplies the employee roster and organization structure to the People directory, and it profiles which employee fields exist so the privacy data map can describe HR processing without Noru storing the underlying values.
What Noru collects
| Object | Source call | What it feeds |
|---|---|---|
| Employees | GET /employees: id, first name, last name, company email, employment status, department id, title ids, last day of employment, last working day | People directory, roster and lifecycle evidence |
| Company structure | GET /company: departments, titles, business areas, cost centers, legal entities, locations, teams, custom field definitions | Org-structure evidence, department and role labels |
| Schema profile | Optional reads of /Employments, /CasualEmployments, /Salaries, /Company/SalaryTypes, /Educations, /EducationSessions, /Competences, /Competences/Employees, /JobAd, /EmployeeDocuments/Folders, /Company/Certifications, /Certificates, and /TimeOff for today only | Privacy data map datasets: employees, employments, compensation, absence, competence |
The schema profile is reduced in memory to field-presence counts. Records are treated as opaque and no record value is persisted.
What Noru does not collect
- Salary amounts. The data map notes "Amounts are not read by Noru".
- Individual absence records. Only the reason list for today is read.
- Document contents. The Hailey API has no document read endpoint; Noru sees folder names only.
- Custom field values. Definitions are read, values are not.
- Payroll data.
- Noru never writes to HaileyHR.
Before you connect
- A HaileyHR API key. Hailey scopes a key to the rights of the user who issued it, so issue it from an account that can read all employees and the company structure. A restricted key produces a thinner roster and schema profile.
- Decide who owns department and role data. HaileyHR overrides values from identity providers (above Entra ID, which is above Google Workspace); only manual edits in the People directory rank higher.
Connect
/data-sources and click Connect Data Source.

The source shows Connected as soon as you save. The first sync is the
real connection test: it calls GET /company on https://api.haileyhr.app
with Bearer authentication.
After connecting
- People directory rows are created from HaileyHR with identity metadata for department and role. Status derives from employment status: WillJoin and BeingHired become onboarding, HasLeft becomes departed.
- Evidence rows: employee roster (inventory), organization structure, lifecycle status (log), and the schema profile. These map to IAM controls for onboarding, offboarding, and access review, plus personnel-security and security-governance controls.
- The schema profile feeds the connector data-map refresh, then grant attribution proposals and drift detection run.
Permissions in detail
HaileyHR has no OAuth scopes. Access is whatever the issuing user can see.
| Credential | Why Noru asks | What it could technically allow |
|---|---|---|
| API key (Bearer) | Read employees, company structure, and field presence across HR endpoints | Every read the issuing user is entitled to, including salary and absence records. Noru reads those endpoints only to count field presence and discards the records |
The key is encrypted at rest with a key held by Noru before it is stored. Revoke it in HaileyHR to cut access immediately.
Troubleshooting
| Symptom | Cause and fix |
|---|---|
| "Authentication failed: 401" | The key was revoked or rotated. The source shows Disconnected and is not retried automatically. Reconnect with a new key |
| Employees missing from the directory | The issuing user cannot see them. Issue the key from an account with full employee visibility |
| Schema profile has few datasets | Expected on restricted keys; the profile only counts endpoints the key can read |
| Role or department differs from Entra ID or Google Workspace | HaileyHR wins by precedence. Edit the person manually if Hailey is wrong |
| Company call succeeds but the sync ends with errors | Check for a partially revoked key; each endpoint is called independently |
Related
- How syncs run
- Permissions and security
- Troubleshooting data sources
- People directory
- Data map
- Records of processing
- JungleMap for training completion
Last updated on
Google Workspace
Connect Google Workspace: admin-only OAuth, directory and group sync, connected-app discovery, and the scopes that are broader than read-only.
JungleMap
Connect JungleMap (NanoLearning): credential setup, how activity plans become training campaigns, and which completion data Noru writes.