Structure Your Success: Understanding Hierarchy in Smackdab!
The Hierarchy module in Smackdab provides a comprehensive and flexible framework to perfectly model your organization’s structure, roles, and permissions. At its foundation, the Hierarchy begins with the Organization’s Main Block, which acts as the primary container for all other blocks, representing your branches, regions, departments, teams, positions, and more.
This module allows you to visually design and manage your entire organizational layout through the Hierarchy Designer. It offers granular control over permission groups and user assignments at every single level. Each block type, such as Branches, Regions, Departments, Teams, and Positions, serves a specific purpose to accurately represent real-world operational units and roles.
Permissions are precisely managed through Policy Groups that are assigned to Permission Blocks within this structure. Users automatically inherit permissions based on their assigned blocks, while the system also supports custom overrides for ultimate flexibility.
With features to create, edit, assign users, and manage visibility for each block, the Hierarchy module empowers administrators to maintain clear control over organizational access, user roles, and operational divisions—all within a unified and scalable interface.
How to Access Hierarchy
Smackdab provides two distinct levels of access for managing your user and organization-wide hierarchy structures.
Accessing User-Level Hierarchy
To manage user hierarchy settings within the CRM interface:
Navigate to Settings from the main menu.
Click on Administration, then select Hierarchy.
Here, you can view the current structure, add new users, and update user relationships as needed.
Accessing Organization-Level Hierarchy
To manage hierarchy at the organizational level:
Click on the User icon located in the top-right corner of the CRM header.
From the dropdown menu, click on Administrator. This will open the Smackdab Admin Site.
In the main menu (on the left), select Hierarchy to begin configuring your organization-wide structure.
Hierarchy Canvas
The Hierarchy Canvas is an intuitive, visual, drag-and-drop tool specifically designed to help you manage your organizational structure. It allows you to configure various elements such as:
Organizational layout
Branches and departments
Positions and roles
Permission blocks
Teams and reporting lines
You can use the Zoom In/Out and Fit to Screen controls for easier navigation and better visibility, even across very complex hierarchies.
How Hierarchy Works
When a user registers on the platform, Smackdab automatically creates a dedicated organization for them. This user then becomes the Organization Admin and gains access to the Back Office and the Hierarchy module for comprehensive organization-wide management.
Hierarchy Visibility
When accessed via the Back Office, the hierarchy displays the entire organizational structure.
When accessed from a user’s Settings → Administration → Hierarchy, the view is limited to the user’s own branch, showing only the structure relevant to their level.
Initial Structure and Permission Setup
Upon organization creation, the following default elements are automatically established:
-
A default Permission Block is created and linked to a Global Administrator Policy Group. This group includes high-level permissions such as:
Managing company information
Handling billing at both the branch and CRM level
Creating, editing, or deleting branches
-
Within this Permission Block, a Default Branch is also created. This branch is linked to a Branch Administrator Policy Group, granting permissions for:
Managing branch settings
Administering users within the branch
Permission Blocks and Policy Groups
Each branch typically contains two main permission blocks:
Administration Block – assigned an Admin Policy Group
User Block – assigned a User Policy Group
Each policy group governs the permissions for the roles underneath it. By default:
Users and their assigned positions inherit permissions from the associated Permission Block.
If needed, a custom policy group can be assigned to override inherited permissions.
Further customization is possible by manually configuring specific permissions for a user or position, which will take precedence over any policy group settings.
Key Components of the Hierarchy
The core building blocks of the hierarchy structure include:
Organization Block: The top-level structure that represents your entire organization.
Permission Blocks: Define permission boundaries and control access based on policy groups.
Branch Blocks: Represent major subdivisions within the organization, typically aligned with locations or business units.
Region Blocks: Group multiple branches by geographical or operational scope.
Sub-Region Blocks: Allow for more granular structuring within a region.
Department Blocks: Represent functional areas within a branch or region, such as Sales or Support.
Sub-Department Blocks: Provide further segmentation within a department for specialized teams or functions.
Team Blocks: Represent groups of users working collaboratively within a department or sub-department.
Position Blocks: Define individual roles and reporting relationships within the hierarchy.
Deep Dive into Hierarchy Blocks
Organization’s Main Block
The Organization Block represents the highest level of your hierarchy. All other blocks, such as permission blocks, branches, and departments, will reside underneath it. This acts as the parent structure for your entire organizational setup.
Features of the Organization Block:
Edit Organization Details: Update the name and description of your organization.
Assign Organization Admin: Change the organization admin to another user. By default, the user who registered the account is the admin. When changed, the current admin is replaced by the newly selected user.
View Policy Group: Inspect the default policy group assigned to the organization and review its individual permissions.
Show/Hide Child Blocks: Choose whether to expand or collapse the child blocks nested under the organization block for better visibility.
Permission Blocks
Permission Blocks define access boundaries by attaching policy groups that control what users under that block can view or manage. You can create permission blocks under various structures like the Organization Block, Region, Sub-Region, Branch, Team, Department, Sub-department, or Position Blocks.
Creating a Permission Block:
Add New: Provide a name, an optional description, and select a policy group.
-
Policy Group Options:
If the permission block is not nested under a branch (directly or indirectly), you can assign organization-level policy groups (default or custom).
If it is nested under a branch (directly or indirectly), you can assign branch-level policy groups instead, under which the permission block is nested.
Managing a Permission Block:
Edit Details: Update the name and description of the permission block.
View Policy Group: Review the current policy group and its permissions.
Edit Policy Group: Change the assigned policy group if needed.
Override Permissions: Configure custom permissions for the block, which will override the policy group’s permissions without modifying the original policy group itself.
Show/Hide Child Blocks: Control the visibility of nested child blocks beneath this permission block.
Branch Block
A Branch Block represents a specific office or operational unit (for example, a city-based office or internal division) within your organization’s hierarchy. While you cannot create branches directly from the Hierarchy module, all existing branches created from the Admin portal are automatically displayed here.
To create a new branch, go to the Branches section in the Admin portal. You will also need to define its parent block within the hierarchy.
Branches can be placed:
Directly under the Organization Block
Under the default Permission Block
Under Position Blocks that exist between the default permission block and any existing branch blocks
For more details, refer to the Branches module documentation.
Branch Block Features in Hierarchy:
Edit Branch Block: Update the name or description of the branch.
Edit Branch Details: Launch a popup to modify the full branch profile and settings.
Assign User to Branch: Assign one or more users to the branch. A single user can be assigned to multiple branches and switch between them.
View Policy Group: Review the policy group assigned to the branch, along with its specific permissions.
Show/Hide Child Blocks: Toggle visibility of child elements nested under this branch.
Region Block
A Region Block is used to group multiple branches or sub-regions by a geographical or operational scope. Region Blocks can only be created under:
The Organization Block, or
A Permission Block (that is not nested under a branch or position)
You cannot create a Region Block under a Branch or Position Block.
Newly created regions inherit the permissions of their parent permission block.
Creating and Managing Region Blocks:
Create Region: Provide a region name.
Policy Group: Inherits from the immediate parent permission block.
Edit Region: Modify the title and description of the region.
Assign User to Region: Assign a user to manage or access the region.
View Policy Group: See the assigned policy group and its detailed permissions.
Edit Policy Group: Reassign a different policy group if needed.
Override Permissions: Customize permissions for the region without affecting the original policy group.
Show/Hide Child Blocks: Expand or collapse sub-elements under this region.
Sub-Region Block
A Sub-Region Block allows for more granular organization within a region. These blocks can only be created under:
A Region Block, or
A Permission Block that exists under a Region
Like Region Blocks, Sub-Region Blocks automatically inherit the policy group of their direct parent permission block.
Creating and Managing Sub-Region Blocks:
Create Sub-Region: Enter a name for the sub-region.
Policy Group: Automatically inherited from the parent permission block.
Edit Sub-Region: Update the title and description.
Assign User to Sub-Region: Assign users to the sub-region as needed.
View Policy Group: Review the assigned policy group and its permissions.
Edit Policy Group: Change the policy group if necessary.
Override Permissions: Customize permissions independently of the assigned policy group.
Show/Hide Child Blocks: Manage visibility of child blocks under the sub-region.
Department Block
A Department Block represents a functional unit within a branch, such as Sales, Marketing, or Support. These blocks can be created only under a branch, whether it’s the branch’s main block, a permission block, or a position block.
Department blocks inherit the permissions of their direct parent permission block by default.
A Department Block should include at least one Position Block beneath it, as the Owner dropdown relies on the positions and teams nested within the department for its list of selectable options.
Creating and Managing Department Blocks:
Create Department: Add a department name and define its parent block under the branch.
Policy Group: Inherits from the department’s immediate parent permission block.
Edit Department: Modify the department’s name or description.
Assign User to Department: Assign a single user to the department. If a user is already assigned to another team, position, or department/sub-department, they can switch between their assigned roles as needed.
View Policy Group: View the details of the department's policy group and its specific permissions.
Edit Policy Group: Reassign a different policy group or override it with custom permissions (applied only to this block).
Show/Hide Child Blocks: Toggle the visibility of any nested blocks under the department.
-
Move Block: If a department is placed incorrectly, use the Move button to relocate it to another block within the same branch, such as:
Another Permission Block
Sub-Department Block
A Sub-Department Block provides even more granular structuring under a department. These can be created only within a department, whether it’s the department’s main block, a permission block, a position block, or even another sub-department.
Sub-departments also inherit permissions from their direct parent permission block by default.
A Sub-Department Block should include at least one Position Block beneath it, as the Owner dropdown relies on the positions and teams nested within the department for its list of selectable options.
Creating and Managing Sub-Department Blocks:
Create Sub-Department: Add the sub-department name and specify the parent block.
Policy Group: Inherits from the direct parent permission block.
Edit Sub-Department: Update the name or description of the sub-department.
Assign User to Sub-Department: Assign a single user. Users can be part of multiple sub-departments, departments, or positions and can switch between them.
View Policy Group: Review the assigned policy group and permissions.
Edit Policy Group: Reassign or override permissions without affecting the original group.
Show/Hide Child Blocks: Toggle the visibility of nested blocks.
-
Move Block: Reposition the sub-department using the Move button. You can move it to any valid parent within the same branch, such as:
Another Department
A Permission Block
Team Block
A Team Block represents a collaborative group within a branch and can be created under various blocks, such as the branch’s main block, permission block, department, sub-department, or position block. Team blocks inherit the permissions of their direct parent permission block by default.
Creating and Managing Team Blocks:
Create Team: Add the team name and assign it under the appropriate parent block within the branch.
Policy Group: Inherits from the immediate parent permission block.
Edit Team: Modify the team’s name or description.
Assign User to Team: Assign a single user to the team. Users with multiple assignments (positions, teams, departments, sub-departments) can switch between their roles seamlessly.
View Policy Group: View details of the policy group assigned to the team and the permissions granted.
Edit Policy Group: Change or override the policy group permissions specifically for this team without affecting the original policy group.
Show/Hide Child Blocks: Toggle visibility of nested blocks under the team.
-
Move Block: Relocate a team block using the Move button to other valid blocks within the same branch, including:
Another Permission Block
Another Position Block
Another Sub-Department Block
Team Settings:
For each team, you can configure the following settings:
Share all team records with team members: Toggle Yes/No to allow sharing of all records among team members.
Access Level (enabled only if sharing is on): Choose between View Only or Manage Records access.
Allow deletion of records by non-owners: Toggle Yes/No to permit team members who do not own a record to delete it.
Position Block
A Position Block represents an individual role or job title within various parts of the organization hierarchy. You can create position blocks under any block, such as the organization’s main block, region, sub-region, branch, permission block, or even another position block.
Important: Position blocks always inherit permissions from their parent permission block, regardless of any manual permission adjustments made to an intermediate position block.
Creating and Managing Position Blocks:
Create Position: Add the position name and assign it under the desired parent block.
Policy Group: By default, the position inherits permissions from its direct parent permission block.
Edit Position: Modify the position’s name or description.
Assign User to Position: Assign a user to the position. Users with multiple roles (positions, teams, departments, sub-departments) can switch between their assignments.
View Policy Group: View details of the assigned policy group and its permissions.
Edit Policy Group: Change or customize permissions for this position without affecting the original policy group.
Show/Hide Child Blocks: Toggle visibility of any nested blocks under the position.
-
Move Block: If placed incorrectly, use the Move button to relocate the position block within the same branch. Valid move targets include:
Another Position Block
Another Permission Block
Directly under the Branch Block
Real-Life Example: Using Hierarchy to Manage a Retail Chain
Consider a retail chain operating across multiple states. The Organization’s Main Block represents the entire company. The company is divided into Regions based on states, and within each Region, there are Sub-Regions representing clusters of cities.
Under each Sub-Region, Branch blocks represent individual stores located in specific cities. Within each Branch, Department blocks cover functions like Sales, Customer Service, and Inventory.
Teams handle specialized tasks within departments, for example, a Sales team for in-store sales and another for online orders. Positions define roles such as Store Manager, Team Lead, and Sales Associate.
Permissions are assigned at different hierarchy levels. Regional managers have access to all branches within their Region, sub-regional managers oversee their Sub-Region, store managers manage branch-level operations, and team members have access limited to their teams.
This hierarchical structure ensures clear role-based access control and efficient management across all locations.