New

Experience Smart HR with Horilla Mobile App

Google Play Store Google Play Store
Home / Blogs

Overview of Managing Field-Level Permissions for Normal Users in Horilla CRM

CRM
·

May 21, 2026

overview-of-managing-field-level-permissions-for-normal-users-in-horilla-crm

Controlling access at the model level — who can create, view, edit, or delete records — is a foundational part of CRM security. But in real sales environments, that level of control is often not enough. Two users with the same role may still need different visibility into specific fields on the same record. A sales representative might need to see a lead’s contact details, but should not be able to modify the assigned territory. A support agent might not need to see financial fields at all.

Thank you for reading this post, don't forget to subscribe!

Field-level permissions in Horilla CRM extend the standard permission model down to individual fields. Administrators can control whether a specific field on any model is fully editable, read-only, or completely hidden — configured per user, directly from the Roles and Permissions interface. This provides precise data governance without creating separate interfaces or custom views for every user type.

Navigating to User Permissions

Field-level permissions for normal users are managed from the central permissions interface.

To get there:

  • Go to Settings from the left sidebar
  • Select Roles and Permissions under the General section
  • Click the Permissions tab at the top of the page

The Permissions tab opens the User Permissions section, which lists all non-superuser accounts in the system. Each user appears as a collapsible row showing their name and assigned role in parentheses.

User Permissions List

The User Permissions section displays all users in an accordion layout.

Each row shows:

  • User’s full name
  • Role assigned in parentheses
  • A collapse/expand control on the right

A search bar at the top lets you quickly locate a specific user by name. The Assign button on the right side of the header enables bulk permission assignment across multiple users at once, which is covered separately below.

Expanding a User to View Model Permissions

Clicking a user’s row expands it to reveal their model-level permissions.

The expanded view shows a table of all models in the system. For each model, the following permissions are displayed as checkboxes:

  • Create and Create Own
  • Change and Change Own
  • View and View Own
  • Delete and Delete Own

A search bar inside the expanded section lets you filter the model list. A Select All option is available to grant or revoke permissions across all models at once.

This expanded view covers standard model-level access. Field-level permissions are configured separately from this same view by interacting with individual model rows.

Opening the Field Level Permissions Modal

The Field Level Permissions modal appears when clicking any model row for which field-level permissions need to be configured.

Clicking a model row opens a dialog that displays:

  • User — the name of the user being configured
  • Role — the role currently assigned to that user
  • Model — the name of the model whose field permissions are being configured

A yellow informational note at the top of the modal explains that fields marked as required cannot be hidden during record creation. However, the configured permission settings are fully enforced when editing existing records.

The modal contains a table with one row for each configurable field in the selected model.

Each row includes:

  • Field Name — the label as it appears in forms. Required fields are marked with a red asterisk.
  • Read Only — radio button
  • Read and Write — radio button (default selection)
  • Don’t Show — radio button

The currently active permission for each field is automatically pre-selected, based either on previously saved settings or the system default of Read and Write.

Read Only

The field remains visible in forms and displays its current value, but the user cannot modify it. The input appears visually disabled to clearly indicate the restriction.

If a user attempts to submit a modified value for a read-only field, the system ignores the change and preserves the original value.

Read and Write

The field is fully visible and editable.

This is the default permission applied to all fields unless a different permission is explicitly configured.

Don’t Show

The field is completely hidden from the form for the selected user. It does not appear in edit forms or detail views.

If the field is marked as required, the Don’t Show setting is ignored during record creation or duplication. The field remains visible in those cases, so the system can enforce required data validation and maintain data integrity.

Saving Field-Level Permissions

After selecting the appropriate permission level for each field, click Save All Changes at the bottom of the modal.

The permissions take effect immediately. The next time the user opens a form for that model, the fields will reflect the configured access levels. Hidden fields will not appear. Read-only fields will appear with disabled styling and will not respond to edit attempts.

Bulk Assignment: Setting Field Permissions for Multiple Users at Once

When the same field permission configuration needs to be applied to several users simultaneously, the Assign button in the User Permissions header provides a bulk assignment workflow.

Step 1 — Open the Assign Users modal

Click the Assign button in the top-right corner of the User Permissions section. The Assign Users modal opens.

Step 2 — Select users

In the Users field at the top of the modal, search for and select the users you want to configure. Selected users appear as removable tags. The modal shows the model permission table below, listing all models with their Create, Change, View, and Delete checkboxes.

Step 3 — Open Field Level Permissions for a model

Click any model row inside the Assign Users modal to open the Field Level Permissions modal for that model.

  • Selected Users: [count] — the number of users selected for this bulk operation
  • Model — the name of the model being configured

The same three-column radio button table appears, showing all configurable fields for that model.

Step 4 — Configure and save

Select the desired permission level for each field and click Save All Changes. The configuration is applied to all selected users simultaneously.

How Permissions Are Reflected in the Interface

Once field permissions are saved, the changes are reflected in every context where that model appears for the user:

In edit forms

Read-only fields appear with their current value but cannot be changed. Don’t Show fields are removed from the form entirely.

In list views

Hidden fields are excluded from the visible column list for that user. They do not appear in the column selector or in exported data.

During record creation

Required fields override the Don’t Show setting. If a field is marked required, it will always be visible when creating or duplicating a record, regardless of the field permission. The Don’t Show setting applies only in the edit context.

In validation

If a user attempts to submit a changed value for a read-only field through any method, the system discards the change and keeps the original value. The restriction is enforced server-side, not just in the UI.

Permission Hierarchy

When the system determines a user’s access level for a specific field, it follows a resolution order:

  1. User-specific permission — A permission set directly on the user from the User Permissions interface takes the highest priority.
  2. Role permission — If no user-specific setting exists, the permission configured on the user’s role is applied.
  3. Model default — If neither the user nor the role has a specific setting, the model’s built-in defaults are used.
  4. System default — If none of the above apply, the system falls back to Read and Write access.

Superuser accounts always receive full Read and Write access to all fields and are not affected by field permission configuration.

Key Benefits

Field-level permissions for normal users in Horilla CRM provide several practical advantages:

  • Configured directly from the Roles and Permissions interface without navigating away
  • Applies per user individually for precise overrides on top of role-level settings
  • Bulk assignment allows the same configuration to be applied to multiple users in a single operation
  • Required fields are always protected during record creation, preventing data integrity issues
  • Permissions are enforced in forms, list views, exports, and server-side validation consistently

Field-level permissions in Horilla CRM give administrators granular control over what individual users can see and edit on any model in the system. Accessed directly from the Permissions tab under Roles and Permissions, the interface allows field permissions to be set per user through the User Permissions section or applied across multiple users at once using the bulk Assign workflow. The three permission levels — Read Only, Read and Write, and Don’t Show — cover the full range of access control requirements, and the system enforces these settings consistently across every part of the interface where the field appears.

Horilla CRM Editorial Team Author

Horilla CRM Editorial Team is a group of experienced CRM practitioners, revenue operations specialists, and SaaS product analysts who are passionate about CRM software. We have a deep, practical understanding of the customer relationship landscape — from pipeline management and lead nurturing to sales automation and customer retention — and are committed to providing our readers with the most up-to-date and actionable content. We have written extensively on a variety of CRM software topics, including sales pipeline tools, contact management systems, marketing automation platforms, and customer success software. Our reviews and guides are grounded in real-world usage across SMB and enterprise environments. We are always looking for new ways to share our knowledge with the sales and RevOps community. If you have a question about our CRM software, please don't hesitate to contact us.