SuiteCRM security groups and record-level access

SuiteCRM security groups and roles decide which team, region or business unit sees which records. This page explains the design choices, the setup sequence and the testing needed before go-live.

On this page

Why SuiteCRM security groups decide who sees which records

In SuiteCRM, security groups and roles decide which records a user can see, edit and act on, so they are the first design decision for any CRM where sales, service and regional staff must not see each other's data by accident. The short answer is that a user's visibility comes from the combination of the role they hold, the security groups their records are assigned to, and the access level granted for each module. Getting that combination right before go-live matters more than any single setting.

Roles define what a user may do with a module, such as viewing, creating, editing or deleting. Security groups define which records a user can reach, usually by tying a record to a group and then granting membership to people who need that group. Teams need record-level separation when the same module holds records that belong to different sales territories, service queues, countries or business units, and when a regional lead should see their own region only. Separation by module alone is rarely enough in these cases, because every record in a module would otherwise share the same visibility.

Decide early which separations are hard requirements and which are convenience. For each team or region, list the modules involved, the records that must stay private, and who needs cross-group visibility, such as managers or shared service staff. A common pitfall is assigning a record to a group but forgetting that related records, such as activities, notes or linked accounts, may follow different rules. An illustrative example: a service agent in one region may need to see an account owned by sales in another region, but only the open cases for that account. That requirement changes the group design, so write it down before building anything.

Do not assume the rule behavior from general CRM experience. Inheritance of access through related records, how additive rights combine across multiple roles, and whether a group can be set to restrict access strictly all depend on the SuiteCRM version in use. Confirm each of these against the SuiteCRM 8 admin documentation for the exact version you plan to run, and check the release notes for changes before you commit to a design. Ask your implementation partner to show the rule behavior with test accounts, not only to describe it.

Plan the test before the build is finished. Create test users in each role and group, seed records that cross the boundaries you care about, and check every module and related list from each user's point of view, including reports, exports and dashboards, since these can expose data that list views hide. Record the expected result for each case, rerun the tests after any role or group change, and keep the test results as evidence that the separation works as designed.

Which access pattern fits your team structure

This table compares four access patterns for SuiteCRM security groups and record-level access, showing when each fits, what it simplifies, what becomes hard to change, and what to verify in the running system. Read each row against your own org chart, and treat the last row as the main takeaway: the pattern you pick sets how much rework a reorganization will cost later.

PatternWhen it fitsWhat gets easierWhat gets harder laterWhat to verify in the running system
Group-only accessSmall teams where everyone in a group needs the same view of every record in their module, with few exceptionsFew groups to maintain and a short list of who can see whatAdding a record-level exception usually means a new group or a manual override on individual recordsMembers of each group see only the modules and records the design intends, tested with one test user per group
Team or region separation through groupsSales or service teams that own their own accounts and are split by territory or product lineAssigning new staff to a team or region controls most of their visibilityAccounts or contacts that span two regions need a rule for ownership and shared accessRecords created by one team are hidden from others, and cross-region records follow the agreed ownership rule
Business unit separation with shared recordsBusiness units that must keep data apart but still share certain accounts, such as group-level customersKeeps unit data isolated while allowing a defined set of shared recordsShared records need clear owners, and moving a record between units can expose or hide data unexpectedlyShared records are visible to the right units only, and a record moved between units changes access as designed
Additive rightsUsers who hold several roles and should gain access from each oneAdding a role extends access without editing existing rolesRemoving access requires checking every role a user holds, which makes audits harderEffective permissions for a user with multiple roles match the combined intent, tested before go-live
Strict rightsRegulated teams where each role should grant only the minimum access and overlaps must be explicitEach role is easy to read and audit on its ownMore roles and groups are needed, and changes to shared roles affect many usersUsers in overlapping roles do not receive access that no single role grants, confirmed with a documented test matrix

How inheritance and additive rights combine in SuiteCRM

The most important step is to write down every source of access a user can receive before you build anything. In SuiteCRM 8, a user's effective access comes from role assignments, Security Group memberships and, for individual records, ownership or assignment. Each source can grant or limit what a user sees and changes, and the combination rule decides which one wins when they disagree. Record the sources and the expected result for each user type on paper first, because a later change to one group can alter access for people you did not plan to affect.

Inheritance decides whether access granted at one level of a group hierarchy passes to the levels beneath it, or upward to the parent. A common design places regional groups under business unit groups, so a business unit manager can see everything beneath. (Illustrative: a Northern Europe team sits under an EMEA group, and an EMEA sales director is expected to see that team's accounts.) Confirm in your SuiteCRM 8 release whether the grant flows down, whether membership in a child group gives any rights at the parent, and how the hierarchy is set in the admin interface. Do not assume the direction from another CRM or from SuiteCRM 7, because the behavior may differ.

Additive rights mean that permissions from every source are combined, so the broadest grant usually wins. Strict rights mean that a restrictive setting can block access even when another source allows it. In practice, an additive model makes removal the hard operation: if a contractor is placed in a narrow group but still belongs to a broader group from an earlier project, the broader access remains. (Illustrative: a consultant added to a regional group keeps the old business unit membership and can still export that region's leads.) Find out which model applies to each setting you plan to use, and assign a named owner to review group memberships on a set schedule.

Group-only access is a design choice in which records are shared through group membership and never through individual assignment. It keeps the rule set small but depends on every record having a correct group owner at creation. Before go-live, build a test matrix covering users in one group, users in two groups, users who moved between regions and users who have left. Check detail views, list views, related records, reports, exports, dashboards and API responses for each case, because a record can be hidden in one view and visible in another. Run these tests on a staging instance with the same configuration as production, and keep the results as evidence for your access review.

Setting up groups, roles and test users before go-live

This sequence builds the groups, roles, user assignments and record rules that decide what each team can see and change in SuiteCRM. Each step ends with a check, so the business owner signs off the access model and the test results pass in a non-production instance before any live user signs in.

  1. Document the team, region and business unit model

    Work with the business owner to write down every team, region and business unit that should see different records, and list which users may see records across those boundaries. The implementation lead runs the workshop, and the business owner signs off the model. Done means a one-page model lists each user population, the records it owns, and any cross-boundary exceptions, with every existing user mapped to exactly one primary unit.

  2. Create security groups and their hierarchy

    Create one security group for each unit in the signed-off model, then set parent and child relationships only where the business needs access to pass down the tree. Before relying on inheritance, confirm how it behaves in the SuiteCRM version you run, and record that behavior in the model. Done means the group tree matches the model, and a test group in a non-production instance shows the inherited access you expect.

  3. Define roles and their module rights

    Build roles around job functions such as sales representative, service agent, regional manager and administrator, then set view, create, edit, delete and export rights for each module in scope. Decide where a user holding several roles should gain the combined rights and where a stricter limit applies, and write that decision down because the two cases produce different results. Done means a role matrix, reviewed by the business owner, lists every role against every module.

  4. Confirm directory group membership for sign-in

    Skip this step if sign-in uses local accounts only. If you use LDAP or SAML, ask your identity team which directory groups or attributes supply SuiteCRM group membership, and map each one to a group from the earlier steps. Check the configuration reference for your version to confirm how the authentication type is set. Note that the SuiteCRM 8.7.0 and later SAML implementation does not support IdP-initiated logout, so signing out at the identity provider does not end the SuiteCRM session. Done means a test account from each directory group lands in the expected group after a fresh sign-in.

  5. Assign users to groups and roles

    Assign each user to one primary unit and the roles for their job, either manually for a small population or through the directory mapping confirmed in the previous step. Record who approved each assignment, especially for managers and administrators who hold broader rights. Done means an export of the user list shows every active user with a group and at least one role, and no administrator account exists without a named approver.

  6. Set record ownership and visibility rules

    For each module in scope, decide the default owner of a new record, which fields control visibility, and which modules restrict access to members of the owning group only. Confirm how imported legacy records are assigned, because their existing ownership may not match the new model. Done means a written rule for each module, applied to a sample record, shows the expected owner and the expected visibility for each group.

  7. Test access with dedicated test users

    Create one test user for each persona in the role matrix, sign in as each one, and check list views, detail views, search results, reports, exports and related records. Include negative tests: records from another region or unit should not appear in lists or search, and a direct link to one should return no data. Log each result against the matrix, correct any gap in the group, role or rule, and retest. Done means every test case has a recorded pass in the pre-production instance and the business owner has accepted the results.

Testing record-level access before go-live

Before SuiteCRM goes live, build a written test matrix that proves each security group and role sees and changes only the records it should. The matrix should be a grid: one axis lists the users you have created for each group and role, the other lists the record cases you need to exercise, and each cell records the expected result (view, edit, delete, see in list view, see in reports, or no access). Treat the matrix as a design artifact, not a one-off check, because the expected results are the access policy written down in a form someone can challenge.

The boundary cases matter more than the happy path. Include records owned by one team and viewed by a user in another team or region, records shared to a group through the sharing or assignment mechanisms you chose, and records that were reassigned from one owner to another after creation. Add lead and account transfers, where a record moves between groups and you need to confirm that the old group loses access, the new group gains it, and related records such as contacts, opportunities or notes do not leak across the boundary. Finally, test users who move between groups: a salesperson who changes region should lose the old visibility on the next login, not only after a cache refresh or a manual rebuild. Confirm the exact behavior of each step in your own instance, because the rules you tested in design can differ from what the running system does.

Assign ownership of the matrix explicitly. The CRM or platform team should build and execute it, with a business owner from sales, service or marketing signing off on the expected results, since they define who should see what. An independent tester, ideally someone who did not configure the groups, should run the negative cases and attempt to reach records through list views, search, exports, reports, dashboards and API calls. Keep as evidence the matrix version, the date and version of the SuiteCRM build tested, the test user accounts used, screenshots or exported results for failed and passed cells, and a log of defects with their resolution. Store these with the change records so an auditor or internal reviewer can trace each access decision back to a test.

Plan to rerun the matrix whenever access could change. That includes any role or group edit, any change to a module's visibility or field-level settings, any new custom module or workflow that creates or moves records, and any SuiteCRM version upgrade or patch. Patch releases carry security and bug fixes, so a patch can still alter authorization behavior, and minor releases should be treated as a full regression for access. Ask your implementation partner or internal team to confirm which subset of cases is rerun for minor changes and which full set is run for upgrades, and write that rule into the change procedure before go-live rather than deciding it under deadline pressure.

Expect the first run to fail in some cells. Defects usually cluster around inherited rights, roles that were assumed to be additive but behave as strict, and group-only patterns where a single unscoped role grants wider access than intended. Record each failure with the group, role, user, record type and expected versus actual result, then fix the configuration and rerun the affected rows and their neighbors. Do not sign off until every cell has a passed result or a documented, approved exception with a named owner and a review date.

Security risks in group-based access

Group-based access in SuiteCRM depends on roles, security groups, inheritance and the login method working together, so a weakness in one can widen what a user sees or changes. The cards below pair each risk with one control you can check during design, testing and routine review, before the system goes live and after staff or teams change.

Over-broad roles granted for convenience

Administrators often grant a broad role so a team can start work immediately, then never narrow it. A role that grants more module or record rights than the team needs widens what every member can see or change, even when security groups are configured correctly. Check each role against the tasks the team performs, record who approved any exception and when it expires, and review role assignments on a fixed schedule rather than only after a complaint.

Orphaned memberships after staff leave

When someone changes teams or leaves, their group memberships can remain in place, so former staff keep access through groups they no longer work in. The control is a written offboarding step that removes group memberships, reassigns record ownership and confirms the user account is disabled, with a named owner for each action. Test the step with one departing user in a staging instance before relying on it.

Inherited access nobody intended

Access can reach records indirectly through related modules, parent records or group hierarchies, so a team lead may end up sharing records they never meant to expose. Because the effect is indirect, a standard screen review often misses it. Build a test matrix that lists each user type, team, region or business unit with its expected visibility, run it against the live configuration, and repeat it after every role or module change.

Identity-level gaps between directory and CRM

If group or attribute mapping depends on LDAP or SAML, the directory becomes part of the access model, and a change made there may not apply to an existing SuiteCRM account in the way administrators expect. Local accounts that can sign in without the identity provider sit outside that model entirely. Inventory every login path, list which accounts can authenticate without the directory, and confirm how attribute changes take effect at the next login for your version.

SAML logout does not end the CRM session

From SuiteCRM 8.7.0 and later, the SAML implementation does not support IdP-initiated logout or POST binding to the logout service, so signing out at the identity provider leaves the SuiteCRM session open. A departing user may keep working until that session ends. Design session lifetime, forced session termination and account disablement as explicit offboarding steps, and test them with a live session before go-live. Confirm the current behavior in the SuiteCRM SAML configuration reference for your version.

How migrations and upgrades affect existing access rules

SuiteCRM documents the move from version 7 to version 8 as a migration into a new environment, so security groups, role assignments and record-level settings should be treated as things to rebuild and verify, not things to assume will carry over. Before any data moves, export a complete picture of the SuiteCRM 7 access model: every group, its members, the modules where group-only access applies, the roles attached to each group, and any custom code that checks ownership or group membership. The SuiteCRM 7 instance also needs to be brought to the latest 7.14.x or later release first, as the migration documentation describes. Ask your implementation partner or internal team to confirm that inventory matches what users actually see, because undocumented exceptions are the most common source of surprises after cutover.

Run the full migration on a staging instance built from a recent copy of production before any cutover date is set. Take a backup of the files and the database immediately before each trial run, and test the restore as well as the backup, so you know a failed attempt can be reversed. The migration documentation also warns that it may remove non-core files under the public/legacy folder. Search your 7 instance for customizations placed in that location, including custom modules, scripts, templates and logic hooks, and decide for each one whether it is reapplied in the 8 environment, rewritten, or retired. Each reapplied customization that touches visibility, ownership or sharing needs its own access test before it is accepted.

Once the 8 environment is live, rerun the access test matrix after each minor release. SuiteCRM's LTS page states that minor 8.x releases arrive roughly every eight weeks, so put the retest on the operations calendar as a recurring task with a named owner. Each test case should record the user, the group, the module, the record type and the expected result for view, edit, list and export actions. Compare the results against the release notes for the modules and access-related code involved, and treat any unexplained change as a blocker until it is resolved.

Patch releases are different in scope. SuiteCRM's LTS page describes patch releases as containing only security and bug fixes, with no new features or database changes. That makes them quicker to apply, but a patch still changes code that runs your access checks, so run a reduced set of the matrix on staging before production. Ask any partner quoting this work to state what the retest covers for each release type, how many groups, roles and custom modules are in scope, and who holds the staging environment and test accounts after handover.

What to confirm in your SuiteCRM environment

Security groups and record-level access depend on the exact SuiteCRM release, its runtime stack, how directory identities reach the application and how long that release line stays supported. Check these items before the access design is final, so the model is tested on the version and configuration you will run.

Exact release and runtime stack

Confirm the precise SuiteCRM 8 release you run or plan to run, then check it against the compatibility matrix for that line. The 8.10 line lists PHP 8.2, 8.3 and 8.4, Apache 2.4, MariaDB 10.6, 10.11, 11.4 and 11.8, and MySQL 8.0 and 8.4, on Linux, Unix or macOS. Record the PHP, web server and database versions in your environment, and test group and permission behavior on that same stack.

Group and role behavior in that release

Read the group and role documentation for your exact release and confirm how group membership, role assignments and module-level rights combine for a user who belongs to several groups. Check whether inherited permissions, group-only access and team-based visibility behave in your version as your design assumes. Write down each behavior the design depends on so the staging test cases can verify it directly.

Record-level rules and custom code

Determine whether the record-level restrictions you need can be met through the built-in configuration of your release, or whether they need custom logic in extensions, logic hooks or database views. Review existing customizations for overlapping rules. The migration documentation advises reviewing customizations, and a migration may remove non-core files under the public/legacy folder. Include any custom code in the upgrade and regression plan.

Directory group mapping

Map each directory group that drives access to a SuiteCRM group, and confirm which sign-on method carries those group attributes: LDAP, enabled with AUTH_TYPE=ldap, or SAML, enabled with AUTH_TYPE=saml. Check when group membership is refreshed and how removed users lose access. In the SAML implementation for 8.7.0 and later, IdP-initiated logout and POST binding to the logout service are not supported, so signing out at the identity provider does not end the SuiteCRM session.

Lifecycle position of your release line

Identify where your SuiteCRM line sits in its release cycle. Minor 8.x releases arrive roughly every eight weeks, and patch releases contain only security and bug fixes, with no new features or database changes. SuiteCRM 7.15 receives security fixes until January 2028, and no SuiteCRM 8 extended support release had been nominated, with one expected by Q3 2027. Confirm the support window you need before you commit the access design to a release line.

Questions buyers ask before hiring help with SuiteCRM access design

How much effort does SuiteCRM access design and testing take?

Effort depends mainly on how many teams, regions, roles and exceptions the design must separate, and on how many records and workflows each rule touches. A design with a few business units and one region is a much smaller job than one with overlapping teams, cross-region account owners and manager exceptions. Each added role or exception needs its own test cases, because access rules interact with each other. Ask for the work to be broken into design workshops, rule build, a test matrix that covers each role against each record type, and retesting after fixes. Ask how many review rounds are included. The effort figure should come from your written scope, not from a general estimate.

How long does SuiteCRM security group design usually take?

Timing follows the same drivers as effort: the number of teams, regions and exceptions, plus how many decisions the business must make before the build starts. Sign-off often waits on people outside IT, such as regional sales leads or compliance owners, so calendar time can run longer than working time. Testing adds time when defects send rules back for redesign. Ask for a timeline tied to milestones: an agreed access matrix, a built configuration in a non-production instance, completed test results and a go-live readiness review. DeployOpen works on a fixed-scope basis, so the timeline is agreed in writing before work starts and reflects your environment.

What do we need from our business and IT staff?

The business side needs named owners for each team, region and role, plus clear decisions on who should see which records, including exceptions for managers and shared accounts. Ask them to provide representative records and the workflows people actually use, so tests reflect daily work. IT needs administrator access to a non-production SuiteCRM instance, a current backup and a change process for moving approved configuration to production. If login uses LDAP or SAML and group membership comes from the identity source, IT must confirm which attributes carry group data and who maintains them. Both sides should name reviewers with time in the schedule, because delayed approvals are a common cause of late go-live.

Can our internal team design SuiteCRM access on its own?

Yes, a team with SuiteCRM administration skills can design and test access, provided it has time, a named decision owner and a test environment. The work requires understanding how inheritance works, how additive and strict rights combine and how group-only access behaves for records owned by people in other groups. Teams often underestimate the test matrix, which grows with every role and region. Ask who will maintain the design after go-live, since rules change whenever a team is added or reorganized. Compare internal effort with a quote built from the same scope, including design, build, testing, documentation and handover. An outside partner adds the most value when the internal team lacks time or needs an independent test.

What should a fixed-scope SuiteCRM access quote include?

A fixed-scope quote should list the teams, regions, roles and exceptions in scope, plus the modules and record types the access model covers. It should name the deliverables, such as the access matrix, the built configuration, the test plan and results, and handover documentation. Look for the test approach: which roles and record cases are tested, in which environments and how many retest rounds are included. State whether login integration is in scope and what is excluded. Confirm the acceptance criteria and who signs off. Separate one-time work from any recurring work, such as post-go-live review or rule changes, which may fall under a retainer. The quote should be traceable to the written scope so both sides can see what is included.

Does the access design need to change when SuiteCRM is upgraded?

Access rules should be retested after each upgrade, and they may need review after a major change. SuiteCRM 8 minor releases arrive roughly every eight weeks, and patch releases contain only security and bug fixes, with no new features or database changes. Because of that, the access model usually stays stable through patch releases, but the test matrix should still run on staging. Minor releases can change behavior, so plan a regression run before each production upgrade. Ask a partner whether post-go-live retesting is included in the original scope or offered as a retainer, and confirm who owns the test matrix after handover.

How does the login method affect SuiteCRM group membership?

If SAML or LDAP supplies group membership, the identity source becomes part of the access design. Changes made in the directory must reach SuiteCRM in the way the design expects, so confirm the attribute mapping before the build. SuiteCRM 8.7.0 and later SAML implementations do not support IdP-initiated logout or POST binding to the logout service. In practice, logging out at the identity provider does not end the SuiteCRM session. Access testing should include removing a user from a group and confirming that the session and record access change as expected. Agree with IT which team owns the directory attributes, because a change there can alter SuiteCRM access without any change inside the CRM.

How DeployOpen scopes SuiteCRM access design

DeployOpen starts with the teams, regions and business units that must see different records, then writes that model down before anything is configured. We design the security group, role and inheritance rules for your SuiteCRM 8 instance, build them in your own infrastructure, and test them against real user scenarios before go-live.

How we scope

  • Map every team, region and business unit to the records and fields each group may view, create, edit or delete
  • Record which rights are additive and which must be strict, and where group-only access applies
  • Agree in writing which SuiteCRM modules and customizations are in the access design before work starts
  • Engagements are fixed-scope, so scope, deliverables and timelines are confirmed in writing first

How we build

  • Configure Security Groups, roles and inheritance rules in a staging SuiteCRM 8 instance first
  • Document each access rule with the business reason behind it so administrators can review it later
  • Check for conflicts between additive role grants and strict group restrictions before any data is loaded
  • Keep access configuration under version control so changes can be reviewed and rolled back

How we hand over

  • Deliver a test matrix showing expected access for each persona, group and record scenario, with results
  • Provide an administrator guide covering how to add users, groups and new modules without breaking access rules
  • Walk your administrators through the change process for future access requests and reviews
  • Hand over the staging test scripts so your team can rerun them after each SuiteCRM minor release

How we support

  • Retest access rules after SuiteCRM minor releases, which arrive roughly every eight weeks, before you apply them in production
  • Review access changes when teams are reorganized, new regions open or modules are added
  • Ongoing support, upgrades and continuous testing are available as a retainer
  • Confirm with your team which support scope and response arrangements apply, as these are set in the written agreement

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.