๐Ÿ›ก๏ธ
Who can access this page

The IAM module is accessible to Super Admins and to admins who have been granted the iam.read permission by a Super Admin. Changes to roles and assignments require the iam.assign permission.

Overview

The Identity & Access Management (IAM) system gives Super Admins fine-grained control over what each admin user can see and do inside the CRM. Instead of every admin having identical full access, you create roles with specific permissions and assign those roles to individual admin accounts.

Navigate to Admin โ†’ Access Management in the sidebar to reach the IAM dashboard. From here you can manage roles, review user assignments, and inspect the audit log.


Key Concepts

TermWhat it means
ModuleA section of the CRM (e.g. Clients, Invoices, IAM). Each module has a set of configurable permission actions.
PermissionA specific action within a module, formatted as module.action โ€” e.g. clients.read, invoices.delete.
RoleA named bundle of granted permissions. Roles are created by Super Admins and assigned to admin users.
Super AdminBypasses all IAM checks โ€” always has full access regardless of roles.
Legacy AdminAn admin with no IAM role assigned. Retains full access for backward compatibility until a role is explicitly assigned.

How Access is Determined

Every admin API route and page checks permissions in this order:

  1. Super Admin? โ†’ Always allowed (full bypass, no checks performed).
  2. No IAM role assigned? โ†’ Full access โ€” legacy admin fallback for backward compatibility.
  3. IAM role assigned? โ†’ Only permissions explicitly granted to that role are allowed. Everything else returns 403 Forbidden on APIs or redirects to the Access Denied page.
โš ๏ธ
Assigning a role activates strict enforcement

Once a role is assigned to an admin, their access becomes strictly limited to what the role grants. Verify the role has all required permissions before assigning it to an active user.


Managing Roles

Go to Admin โ†’ Access Management โ†’ Roles.

Creating a Role

  1. Click New Role.
  2. Enter a role name (e.g. "Account Manager", "Support Agent") and an optional description.
  3. Click Create. The role opens in the permission editor.

Editing Permissions (Permission Matrix)

Each row in the permission matrix corresponds to a CRM module. Toggle the switches to grant or revoke individual actions for the role. Changes are saved immediately on toggle.

ModuleAvailable Actions
Clientsread, create, update, delete, export, import
Leadsread, create, update, delete, convert, export, import
Invoicesread, create, update, delete, send, export
Proposalsread, create, update, delete, send, export
Contractsread, create, update, delete, send
Projectsread, create, update, delete
Employeesread, create, update, delete, invite
Supportread, reply, close
Reportsread, export
Documentsread, upload, delete
Corporate Documentsread, create, update, delete
Brand Centerread, create, delete
Time Logsread, create, update, delete
Catalogread, create, update, delete, import
Blog / Contentread, create, update, delete, import
Onboardingsread, create, update, delete
Business Appsread, create, update, delete, archive, restore
Settingsread, update
Securityread
Audit Logread
Notificationsread
Locationsread, create, update, delete
Accountsread, create, update, delete
IAMread, assign, audit_log.read

Archiving a Role

Archived roles cannot be assigned to new users. Existing user assignments with an archived role remain active โ€” those users continue to have the role's permissions until the assignment is manually updated. To archive, open the role and click Archive Role.

โ„น๏ธ
System roles are read-only

The built-in system role (if present) cannot be edited or deleted. Create custom roles for your team's specific needs.


Assigning Roles to Users

Go to Admin โ†’ Access Management โ†’ Users.

  1. Find the admin user in the list. The table shows their current role (if any) and when they joined the tenant.
  2. Click the role dropdown in their row.
  3. Select a role from the list and confirm. The dropdown only shows active (non-archived) roles.
  4. To remove a user's role (reverting to legacy full-access mode), select No Role.

Permission changes take effect on the user's next request โ€” no logout required.

โš ๏ธ
Self-lockout prevention

You cannot remove your own IAM role. This prevents accidentally locking yourself out of the IAM module. Ask another Super Admin to update your role if needed.


When an admin lacks the .read permission for a module, that module's sidebar link is automatically hidden. Admins only see the modules they are authorized to use โ€” reducing confusion and surface area for mistakes.


IAM Audit Log

Go to Admin โ†’ Access Management โ†’ Audit Log. Every role creation, permission toggle, and user assignment is recorded here. Each entry shows:

  • Actor โ€” who made the change
  • Action โ€” what happened (role_created, permission_granted, role_assigned, etc.)
  • Target โ€” which role or user was affected
  • Before / After โ€” previous and new values
  • Timestamp

Access Level Summary

WhoPermissions setAccess level
Super Admin (role = super_admin)null (bypassed)Full access โ€” all modules, always
Admin with no IAM rolenull (legacy)Full access โ€” backward compatible
Admin with IAM roleSet of granted keysStrict โ€” only what the role grants
Admin with empty role (no grants)Empty setDenied on all permission-gated modules

Frequently Asked Questions

What happens if I assign an empty role (no permissions)?

The admin will see only the wiki, their profile, and the dashboard. They will be denied access to all permission-gated modules and redirected to the Access Denied page. Always verify the role has the necessary permissions before assigning it.

Can a user have multiple roles?

No. Each admin user has one active IAM role at a time. To combine sets of permissions, create a custom role that includes all required actions.

Does IAM affect client or employee portals?

No. IAM only controls admin panel access. Clients and employees have their own separate portal authentication and do not have IAM roles.

How do I give a new admin exactly the same access as an existing one?

Create or reuse a role with the permissions you need, then assign that role to both users.

Is there a way to test a role before assigning it?

Open the role in the permission matrix and review each toggle. The matrix shows exactly which actions will be allowed. You can also assign the role to a test admin account to verify behavior before rolling it out to production users.