Understanding Categories
Categories serve two primary purposes:- Organization - Group similar items for easier management and reporting
- Behavior Control - Define policies like EULA acceptance requirements and checkout notifications
Categories are higher-level than Asset Models. For example:
- Category: “Laptops” → Models: “MacBook Pro 16”, “Dell XPS 15”, “ThinkPad X1”
- Category: “Monitors” → Models: “Dell U2720Q”, “LG 27UK850”
Category Types
Each category must have a specific type, which determines what items can be assigned to it:- Asset
- Accessory
- Consumable
- Component
- License
For physical assets that can be checked out to users, locations, or other assets.Examples:
- Laptops
- Desktops
- Monitors
- Phones
- Tablets
- Peripherals
Creating a Category
Step 1: Navigate to Categories
Go to Settings (gear icon) > Categories in the admin interface.Step 2: Create New Category
Click Create New and configure the following:The category name (e.g., “Laptops”, “Network Equipment”, “Software Licenses”).Note: Category names must be unique within their category type.
Select from: Asset, Accessory, Consumable, Component, or License.Warning: The category type cannot be changed after creation.
End User License Agreement text that users must accept when checking out items from this category.Supports Markdown formatting.
Use the system-wide default EULA instead of a category-specific one.Set the default EULA in Settings > General > Default EULA.
Force users to accept the EULA before checking out items from this category.Users must click “Accept” and the acceptance is logged in the activity log.
Send an email notification to the category admin when items are checked in or out.The recipient is set in the category’s admin field.
Send alerts when users respond to EULA acceptance requests.
Internal notes about the category (not visible to end users).
Optional color code for visual organization in the interface.
Category Behavior Settings
EULA Management
Categories can enforce End User License Agreements for assets. This is defined inapp/Models/Category.php:256-266:
- If category has custom EULA text → use category EULA
- Else if “Use Default EULA” is enabled → use system default
- Else → no EULA required
Checkout Email Notifications
When Send Email on Check-in/Check-out is enabled, the checkin_email attribute is stored as a boolean value (app/Models/Category.php:283-286):
Organizing with Categories
Best Practices for Category Structure
Use broad categories - Create categories that group similar items, not individual models.Good: “Laptops”, “Desktop Computers”, “Network Equipment”Bad: “MacBook Pro 2023”, “Dell Latitude 5420”, “Cisco Switch 2960”
Align with procurement - Structure categories to match how your organization purchases and budgets.
Consider reporting needs - Categories appear in reports, so organize in a way that supports your reporting requirements.
Set consistent policies - Use category-level settings (EULA, notifications) to enforce consistent policies across similar items.
Example Category Structure
Asset Categories:- Laptops (Require Acceptance: Yes)
- Desktop Computers (Require Acceptance: Yes)
- Monitors (Require Acceptance: No)
- Mobile Devices (Require Acceptance: Yes, with Mobile Device Policy EULA)
- Network Equipment (Require Acceptance: No)
- Printers (Require Acceptance: No)
- Keyboards & Mice
- Cables & Adapters
- Docking Stations
- Headsets
- Printer Supplies
- Office Supplies
- Storage Media
- Memory (RAM)
- Storage Drives
- Graphics Cards
- Batteries
- Operating Systems
- Productivity Software
- Design Software
- Development Tools
Category Relationships
Categories have several important relationships defined inapp/Models/Category.php:
Assets
Categories relate to assets through models:Asset Models
Asset models belong to a category:Other Item Types
Direct relationships exist for other types:Deleting Categories
Categories can only be deleted if they meet specific criteria (app/Models/Category.php:103-117):
To delete a category with existing items:
- Reassign all items to a different category
- For asset categories, reassign or delete all models
- Then delete the category
Permissions
Category management requires specific permissions defined inconfig/permissions.php:277-294:
categories.view- View categoriescategories.create- Create new categoriescategories.edit- Edit existing categoriescategories.delete- Delete categories
API Access
Categories are accessible via the REST API:List All Categories
Get Specific Category
Create Category
Reporting with Categories
Categories are a primary dimension in Snipe-IT reports:- Assets by Category - See asset counts and values grouped by category
- Category Depreciation - Track depreciation across categories
- License Compliance - Report on software licenses by category
Advanced: Category Scoping
Categories support advanced query scoping for filtering (app/Models/Category.php:302-321):
Troubleshooting
”Category name already exists”
Category names must be unique per category type. You can have “Accessories” as both an Asset category and an Accessory category, but not two Asset categories with the same name. This is enforced by the validation rule inapp/Models/Category.php:44:
Cannot Change Category Type
Category type is immutable after creation. If you need to change the type:- Create a new category with the desired type
- Reassign all items to the new category
- Delete the old category
Category Not Appearing in Dropdowns
Ensure:- The category type matches the item type you’re creating
- You have permission to view the category
- The category is not soft-deleted
Next Steps
Assets
Learn about asset management
Custom Fields
Add custom fields via fieldsets linked to models
Asset Management
Check out assets with EULA acceptance
API Reference
Use the Categories API
