SeamlessHR
Bring new starters, changes and leavers from SeamlessHR into every system that needs them, with HR approving each change.
18 ways to read.
Quality checks
Built and tested with example responses.
- Ready to connect: doneEvery listed action is built in.
- Built and tested with example responses: doneEach action is built from the provider’s published API and tested against example responses, errors, rate limits and paging.
Connected, approved, proven.
The things teams do most with SeamlessHR, an example flow with a person in the loop, and what Nexra keeps as proof.
Top actions
- List direct reportsRead
Example flow
- SeamlessHR · List direct reportsDone
- Nexra · Record the decision and result in the evidence chainProven
Example workflow. Routine runs go through on their own. Only a change your rules flag, such as one over a limit you set, waits for the right person, who sees the exact change and the rule before it reaches SeamlessHR.
What gets logged
- Whether it ran on its own or who approved it, and under which rule
- A fingerprint of the exact request sent to SeamlessHR
- SeamlessHR's reply: what it created or changed
- One entry in the evidence chain, linked to the one before
Try this in the sandbox
Run the whole flow with test data in your sandbox, then connect your own account when you are ready to go live.
For developers
Technical detail
Read SeamlessHR (Nigeria, Africa) employees, direct reports, departments, job roles, contract types, attendance (clock-ins), leave and recruitment job postings. Read-only; sensitive HR fields are never mapped.
SeamlessHR API docs- Source actions
- 18
- Data types
- 15
What you can map
Reads are always available. Writes are off until you switch them on for a connection, and governed writes follow your policies.
Attendance1
- List attendance (clock-ins)Source
Clock-in and clock-out records for every employee for a day or a date range (today by default), with the scheduled times and SeamlessHR's punctuality status.
Contract types2
- Get contract typeSource
Get a contract type by its name.
- List contract typesSource
List employment contract types such as Full Time, Contract Staff or NYSC.
Countries1
- List countriesSource
List countries used for job posting locations.
Departments1
- List departments and org unitsSource
List the company's departments, or directorates, divisions or units by org unit type.
Direct reports1
- List direct reportsSource
List an employee's direct reports by employee code (never by email).
Employees on leave1
- List employees on leaveSource
List approved leave for a period (today by default), optionally for one department or org unit.
Employees2
- Get employeeSource
Get one employee's minimal work profile by staff ID (employee code).
- List employeesSource
List employees with a minimal work profile, filtered by status, creation date, employment or exit date range, or a name or employee-code search.
Job companies1
- List recruitment companiesSource
List the companies that publish jobs in the recruitment system.
Job roles1
- List job rolesSource
List the company's job roles.
Job specializations1
- List job specialisationsSource
List the specialisations used to categorise job postings.
Jobs2
- Get job postingSource
Get one recruitment job posting by ID.
- List job postingsSource
List recruitment job postings (requisitions) by status, search text, work style, location or job type.
Leave balances1
- Get leave balanceSource
Get an employee's balance for one leave type, for the current or a given year.
Leave policies1
- List leave policiesSource
List leave policies (leave types) and their rules.
Leave requests1
- List leave requestsSource
List leave requests for the company or one employee, optionally only pending, current or upcoming leave.
States1
- List statesSource
List the states of a country, used for job posting locations.
Access and limits
- Authentication
- Client ID and client secret (x-client-id / x-client-secret headers)
- Plans and access
- SeamlessHR customers (Africa, primarily Nigeria) with API access enabled for their company. Client ID and client secret are issued by SeamlessHR on request (support@seamlesshr.com) and grant company-wide access to the modules enabled for them.
- Test environment
- SeamlessHR documents a test environment at api-sandbox.seamlesshr.app; request sandbox credentials from support@seamlesshr.com.
- Rate limits
- SeamlessHR does not publish numeric limits. Its docs say rate limiting is usually returned as HTTP 503 with a Retry-After header; Nexra treats that as a rate limit and backs off. HTTP 429 is documented as the employee-limit error when adding employees, which this connector never does.
- Pagination
- Attendance uses page and perPage with meta.to and meta.total. Employees use page and limit (default 10). Job postings return 10 per page with meta.current_page and meta.last_page. Leave requests, employees on leave and leave policies return a meta paginator; Nexra sends page while meta reports more pages. Org, contract type and reference lists are single pages.
- Provider events
- SeamlessHR webhooks for employee created, updated and deactivated, birthdays, work anniversaries and leave request events, signed with HMAC SHA-512 in x-seamlesshr-signature. The webhook URL is configured by SeamlessHR. Flows can start the moment something happens: when a new employee is added; when an employee's details change; when an employee leaves; when a leave request is approved.
Before you build a flow
- Read-only. Adding, updating, activating, deactivating or exiting employees, creating or updating departments, job roles and contract types, loans, payments, attendance sync and performance (KPIs, objectives) writes are intentionally not implemented. Deletes are never implemented.
- The public recruitment (RMS) API covers job postings, companies, specialisations, countries and states only. Candidates, applicants, applications, stages, notes, offers and hires are not in the public API, so they cannot be read or written; no rejection, stage move, offer or hire is automated.
- Sensitive fields are never mapped: salary, net pay, pay group and grade, bank and account numbers, pension and tax PINs, loans, date of birth, age, sex, marital status, religion, state of origin, personal email, phone numbers, addresses, next of kin, qualifications, experience, photos, exit reasons and remarks, and leave reasons or proof documents. Birthdays, pay groups, payroll, ledger and pay-item endpoints are not used.
- Email addresses and phone numbers are never sent in URLs: direct reports are looked up by employee code only, and employee search refuses values that contain @ or look like phone numbers.
- No updated-since filter is documented. Employees can be filtered by creation date (date) and by employment or exit date ranges.
- Departments, job roles and contract types have no numeric ID in the API; Nexra uses the department or job role code when set, otherwise the name, and the contract type title.
- Date-range filters are sent as indexed array parameters (employment_date[0], employment_date[1]); SeamlessHR documents the employment_date[] form, which PHP parses identically.
- Attendance (clock-ins) is read from Get Attendance Records with a custom date range. It needs SeamlessHR's Time and Attendance module; where the business doesn't use it, the read returns no rows and Nexra's "Who's in today" falls back to active employees minus those on leave. Bulk Sync Attendance Records (a write) is not implemented.
- The page parameter for leave requests, employees on leave and leave policies is inferred from the meta paginator the docs show; it is not listed as a parameter. Without meta, these lists return a single page.
- Get employee puts the staff ID in the URL path, so staff IDs containing a slash (for example ADV/FTE/22/09) are refused; find them with List employees and search.
- The employee page-size maximum is not documented; Nexra caps limit at 100.
- Locations: there is no locations or branches endpoint. Employee records include branch, region and deployed state, and RMS countries and states give job-posting locations. Whether other org unit tags (for example branch) are accepted is not documented.
- RMS endpoints are documented for career pages; whether a client credential sees every job state (DRAFT, SUSPENDED) depends on SeamlessHR's configuration.
Developer reference
- Create the SeamlessHR credentials described above with the narrowest permissions your flows need.
- In Nexra, open Connect, then Connections, then New connection, choose SeamlessHR, enter its settings and credentials, and tick only the write actions you need. Connection guide
- Test the connection, then use its actions as flow sources and destinations. Flow guide
Machine-readable detail: GET /api/public/connect/connectors/seamlesshr and the Connections API.
