Send an invitation
At app.erp.io/settings/org/members. You need an administrator role.
The role applies to everyone in that batch. Send finance people and contractors separately if their roles differ.
Each person gets a mail with a single-use link. The invitation row exists in your members list immediately, marked pending.
The link takes them to /invite/<token>. If they have no account, they create one there and the membership attaches to it. If they do, it attaches to the account they are signed in as.
Members
14 active · 2 pending · 12 billable
| Person | Role | Modules | Last seen | Seat |
|---|---|---|---|---|
| Dana Okoro | Platform admin | All | 2 min ago | Billable |
| Sam Whitfield | Entity admin | All | 1 hour ago | Billable |
| Priya Raman | Member | Accounting, CFO | Yesterday | Billable |
| Tom Baird | Member | Projects, Chat | 3 days ago | Billable |
| [email protected] | Member | Projects | Invited | — |
What a role grants
Roles are set at the organisation level and every module respects them. A member cannot be an administrator in one module and not another — that distinction is expressed by module access, which is a separate and narrower control.
| Role | Can do | Cannot do |
|---|---|---|
| Platform admin | Everything, including billing, members, module entitlement and the audit log. | Nothing within the organisation. |
| Entity admin | Members, module access, most settings. | Change the billing relationship. |
| Member | Use the modules they have access to. | See settings, invite people, or read the audit log. |
Full detail, including how a module narrows an organisation role further, is on Roles and permissions and Module access.
Seats and the bill
A seat is an active, billable member. Pending invitations are not seats — nothing is charged for an invitation somebody never accepted. Removing a member removes the seat. There is no per-module seat: a person who uses six modules is one seat, which is the main reason the pricing is shaped the way it is.
People who sign in to the Client Portal to see their own work orders are not members of your organisation and are not counted or charged. That is the difference between a portal user and a member, and it is why client-facing work does not scale your bill with your client list.
Adding a user row directly — through an integration, a script, or a support request — creates the account without the membership. That account can sign in to the shell and then bounces straight back out of every module, because the hand-off refuses a session with no current organisation. It looks like a broken module and it is a missing row. Always invite.
What this does not do
Access is granted per person. There is no group object to attach a role or a module to.
Automatic joiner/leaver sync from an identity provider is not built. Invitations and removals are manual.
Tokens are single-use but you cannot set an organisation-wide expiry window on them.
Questions
Can I re-send an invitation?
Yes, from the pending row. It issues a fresh token; the old one stops working.
What happens if I invite an address that already has an account?
The membership attaches to the existing account. They keep their password and MFA.
Can somebody belong to my organisation and their own?
Yes. Memberships are independent and they switch between them.