Skip to content

Contractors and access terms

By the end of this page you will be able to:

  1. invite a contractor with a limited access term;
  2. understand what a contractor reads and writes;
  3. extend or remove the term and know when the seat is freed.

Example: Vera is an outside developer whom Northwind hired for 60 days to integrate Client X’s API.

The Contractor role is limited in scope, not just in time:

Contractor
ReadsOnly their own records and records with “project” visibility
Does not see“Unit” and “whole organization” records, other people’s drafts
New recordsGet “project” visibility right away
KeysIssues their own, like a member
People listOnly themselves

This way Vera and the in-house developers on the project share project knowledge, while the company’s internal agreements stay out of Vera’s view.

  1. The admin opens People → “Invite a person”.

  2. They enter Vera’s email, the unit, the Contractor role and “Access term, days”: 60. Allowed values are 1 to 365 days.

  3. They pass Vera the invitation link, valid for 7 days. See Invitations and keys.

  4. The access term starts when Vera accepts the invitation, not when it is created.

In the people list, Vera’s row shows “access until 2026-12-04”.

The server checks the term on every request. After it ends:

  • Vera can no longer read or write — neither in the account nor through an agent; the server answers access_expired, and the account says “Your access to this organization has expired. Contact the admin.”;
  • the organization disappears from her space switcher;
  • the admin’s people list shows “access expired” next to her;
  • her seat is no longer billed.

Records Vera created stay in the organization with “project” visibility.

  1. The admin opens People and clicks “Extend” next to the contractor.

  2. They enter how many days from today the access should last (1–365). The new term replaces the old one rather than adding to it.

  3. If the term had already ended, access returns immediately.

To remove the limit entirely, update the member through the account API with "access_days": null. Every term change is written to the audit log as access_term_changed with the new end date.

Contractor stateSeat
Access activeTaken
Term endedNot taken
Left (offboarding completed)Not taken

See Organization billing.