/hr/employees/:id → Employment
📷 Screenshot: Employment History timeline with the current contract highlighted, and the Add Employment button — to be added.
Why contracts are per-business
A single Employee identity is shared across your whole organisation, but the contract is tied to one business (one legal entity). That’s deliberate: the things that vary by legal entity — the country the work is performed in, the country whose PAYE/social-security rules apply, the pay currency, the payroll calendar, the tax and social-security identifiers — all live on the contract, never on the person. So when the same individual works for two of your businesses, each engagement is its own contract with its own statutory and pay rules. When you create a contract through the web app, the business is taken from your active business switcher (or an explicit business on the request). Make sure the right business is selected first.The Employment History timeline
The Employment section lists every employment record for the person, newest first, as a timeline. Each entry shows:- The position and department (with the title / position-type fallback).
- The employment type badge — Full Time, Part Time, Contract or Intern.
- A Current badge on the active contract, or Ended on a closed one.
- The dates (start – end, or “Present”), the tenure, the work location and the manager.
What a contract holds
Opening a contract reveals the full detail, grouped into sections:Contract
Role & placement (editable)
On an active contract this block has an Edit button — change the department, position, manager or work location in place and Save. (These are the only role fields editable directly here; a structured move with an effective date and reason is a Transfer.)
Statutory & compliance
These per-contract fields support multi-country payroll. They’re displayed read-only on the sheet (set when the contract is created via the API):Bank details
Per-contract remittance details for paying salary — bank name, branch, branch code, account name, account number, SWIFT code. If none are recorded, the sheet says so.Compensation
The active salary structure assignment for this contract — the basis for what the employee is paid. See Salary structures.Leave approver
An optional designated leave approver for this contract. When set, only that person may approve this employee’s leave requests; clear it to fall back to “any authorised approver”. Editable on an active contract.Adding an employment record
From the Employment section choose Add Employment. The modal asks for:
The new record is created against your active business and starts in the Active state. (The web add modal covers the everyday fields; the statutory, currency and bank fields are set via the API when needed.)
Note the add-employee form already creates a first employment record, so you’ll usually only add another one for a renewal, a second concurrent engagement, or to re-place someone.
Editing a contract
- Role & placement — edit department, position, manager and work location inline on an active contract’s detail sheet (described above).
- Leave approver — set or clear the designated approver inline.
Ending employment
On an active contract, the detail sheet has an End Employment action (under Actions). It asks for:
Ending a contract marks it Ended and stamps the end date — the employee stays in the system, but that contract is no longer active and stops driving the org chart, leave approvals and so on. Ending a single contract is not the same as terminating the employee: it closes one engagement only.
How this ties into separation and termination
- Terminating the employee (the Delete-adjacent Terminate action on the profile) sets the employee’s status to Terminated, records the termination date, and ends their active employment contract in one step.
- The full offboarding workflow — clearance, exit interview, final settlement — runs through the dedicated Separation (offboarding) module, which is the right path for a managed leaver rather than just ending the contract record.
The e-signature envelope
Every employment contract has a Contract Envelope — the employment agreement itself, sent for e-signature. It shows as a chip on the contract’s detail sheet (and in the Employment History row) alongside Generate & Send, Resend, or Void & Reissue actions depending on its current status:
Clicking the chip (whenever it has an envelope) opens the same document viewer the CRM Agreements module uses — the rendered contract, each recipient’s signing progress, and a full audit timeline (sent, delivered, reminded, signed, declined, voided). Resend and Void & Reissue are also available from that viewer.
Contracts are sent automatically
You almost never need to click Generate & Send yourself. Creating a new employment record — through Add Employment on this page, or through accepting a job offer in recruitment — automatically fires off the envelope, using the business’s configured template and employer-representative signatory. This never blocks or fails the hire: if nothing’s configured yet, the contract is simply created with the envelope showing “Not sent”, and someone can send it later — manually, or in bulk via the backfill action described below.⚠️ A contract cannot be sent to sign itself — if the configured employer-representative signatory is the same person as the employee on the contract, sending is skipped (“Not sent”) rather than silently misfiring.
Setting it up
Before any of this can actually send, a business needs a template and a signatory configured once at HR settings → Employment Contracts. See Employment contract templates for building the document itself.⚠️ If a contract arrives with no signature areas for either party, the template’s signature blocks are tagged with the wrong signer roles. They must be Employee and Employer_rep — see Signer roles are fixed.
Catching up on contracts that predate this
If you have employees hired before this feature (or before signing was configured for the business), use “Send contracts for signature” on the same HR settings card — it runs Generate & Send for every Active contract in the business that doesn’t already have a current envelope, and reports back how many were sent, already had one, or are still unconfigured.Permissions
How contracts feed everything else
- Org chart & My Team — only active contracts (
workflowState = Active, employee not terminated) for the selected business build the reporting tree, via the manager on each contract. - Work history — a contract’s start produces a “Hired” event and its end a “Contract ended” event on the employee’s Work History timeline (draft/cancelled contracts don’t).
- Payroll — the contract’s salary structure assignment, pay currency and statutory fields drive the employee’s pay and statutory deductions.
Permissions
All employment reads and writes are scoped by the contract’s own business against your active business context, so you can’t reach a contract that belongs to a business you’re not in.
Related
- Employees (the people directory) — the person these contracts belong to
- The employee profile & its tabs — where the Employment section lives
- Transfers · Promotions — structured role changes with history
- Separation (offboarding) — the managed leaver workflow
- Salary structures — the compensation assigned to a contract
- Org chart — built from active contracts’ manager lines
- Org Structure — departments, seats & reporting lines — where seats and reporting lines come from
- Employment contract templates — build the document the e-signature envelope sends
- HR settings — Employment Contracts — configure the template, signatory and backfill
- Job offers — accepting an offer creates a contract the same way Add Employment does