Skip to content

Document Management (DMS)

Last Updated: February 2026

The Document Management System (DMS) stores, organizes, and shares company files directly inside Odoo. It replaces scattered file shares and email attachments with a centralized, permission-controlled document library accessible to every department.

Target Audience: All Employees, Managers, HR, System Administrators

Installed Modules:

Module Purpose
DMS (core) Storages, directories, files, tags, access groups, portal sharing
DMS Attachment Link Attach DMS files to any Odoo record via the chatter
HR Employee Document View and manage documents on employee profiles

Open the Documents app from the main Odoo dashboard, or use the top menu bar:

Documents
├── Files                              (all files you have access to)
├── Directories                        (folder structure)
└── Configuration
    ├── General Settings               (upload limits, forbidden extensions)
    ├── Organizing
    │   ├── Tags                       (color-coded labels)
    │   └── Categories                 (hierarchical groupings)
    └── System                         (Managers only)
        ├── Storages                   (where files are physically saved)
        ├── Migration                  (file storage migration tool)
        └── Access Groups              (permission sets)

Menu Visibility

The Documents menu is only visible to users with the DMS User security group. Configuration > System items require DMS Manager.


Key Concepts

Before diving in, understand these five building blocks:

  • Storages — The backend that holds file data (database, file system, or linked to Odoo attachments). Every directory belongs to exactly one storage.
  • Directories — Folders organized in a hierarchy. Directories inherit access rules from their parents and hold both files and subdirectories.
  • Files — Individual documents with metadata, tags, version tracking, and locking support.
  • Access Groups — Named permission sets that control who can read, create, edit, or delete files in a directory.
  • Tags & Categories — Organizational labels. Categories group related tags (e.g., category "Department" with tags "HR", "Sales", "Operations").

Storages

A storage defines where file data is physically saved. You typically create one storage per use case (e.g., "Company Documents", "Employee Files").

Storage Fields

Field Description Example
Name Display name for the storage "Company Documents"
Save Type How files are stored (see below) Database
Company Restricts storage to a specific company Scott Recycling
Is Hidden Hides storage from non-manager users False
Root Directories Top-level directories in this storage HR, Operations, Sales

Save Types

Type How It Works Best For
Database Files stored as binary data in PostgreSQL General documents — simplest setup, included in database backups automatically
File Files stored on the server's file system Large file collections — reduces database size
Attachment Links to Odoo's built-in attachment system Records that already use attachments (e.g., auto-creating directories for sales orders)

Which Save Type to Use

For most company document storage, Database is the simplest and most reliable choice. Files are backed up with the database and require no extra server configuration. Use File only if you expect very large volumes that would bloat the database.

Attachment Storage — Special Options

When save type is set to Attachment, two additional options appear:

Field Description
Inherit Access from Parent Record File permissions follow the linked Odoo record's access rules instead of DMS access groups
Include Message Attachments Automatically create DMS files from attachments posted in the chatter
Models Which Odoo models this storage applies to (e.g., Sale Order, Purchase Order)

Directories

Directories are the folder structure inside a storage. They can be nested to any depth.

Directory Fields

Field Description Example
Name Folder name "HR Documents"
Is Root Directory True for top-level folders (directly under a storage) True
Storage Which storage this directory belongs to (set automatically for non-root) "Company Documents"
Parent Directory Parent folder (required for non-root directories) "HR Documents"
Category Optional category for classification "Department Files"
Tags Color-coded labels "Confidential", "2026"
Access Groups Which groups control access to this directory "HR Team", "All Employees Read"
Inherit Groups Whether to inherit parent directory's access groups True

Directory Hierarchy

Directories form a tree:

Storage: Company Documents
├── HR Documents          (root directory)
│   ├── Policies          (child directory — inherits HR access groups)
│   ├── Benefits          (child directory)
│   └── Employee Files    (child directory)
├── Operations            (root directory)
│   ├── SOPs              (child directory)
│   └── Safety            (child directory)
└── Sales                 (root directory)
    ├── Proposals         (child directory)
    └── Contracts         (child directory)

Directory Features

Starring — Click the star icon on any directory to add it to your favorites. Use the "Starred Directories" filter to quickly find them.

Email Alias — Directories can have an email alias (e.g., hr-docs@yourdomain.com). Emails sent to the alias automatically create files from the attachments. The Alias Process setting controls behavior:

Setting Behavior
Files Email attachments become files in this directory
Directory A new subdirectory is created, and attachments go inside it

Stat Buttons — The directory form shows counts for subdirectories and files. Click either button to jump to the full list.


Files

Files are the actual documents stored in the DMS.

File Fields

Field Description Example
Name File name (including extension) "Employee_Handbook_2026.pdf"
Directory Which folder this file lives in "HR Documents / Policies"
Content The file data (upload via the content field) (binary)
Extension Auto-detected file extension ".pdf"
MIME Type Auto-detected file type "application/pdf"
Size File size (auto-calculated) "2.4 MB"
Category Optional category "Policy Documents"
Tags Color-coded labels "Current", "All-Staff"
Locked By User who locked the file (if any) "Dan Smith"

Uploading Files

  1. Navigate to Documents > Files
  2. Click New (or use the Upload button in kanban view)
  3. Select the target Directory
  4. Click the content field to upload your file
  5. Add tags and category as needed
  6. Click Save

File Locking

Locking prevents other users from editing a file while you're working on it.

Action How What Happens
Lock Click Lock button on the file form (or from the kanban dropdown) File shows a "Locked" ribbon; only you can edit or upload a new version
Unlock Click Unlock button Lock is released; anyone with write access can edit again

Lock Behavior

Locking only prevents edits — other users can still read and download a locked file. Only the user who locked the file (or a manager) can unlock it.

Archiving Files

Files can be archived (soft-deleted) rather than permanently removed:

  • Archive: From the file form or kanban dropdown, select Archive. The file is hidden from default views but still exists.
  • Restore: Use the Archived Files filter in the search bar, open the file, and click Unarchive.

Moving Files

To move files to a different directory:

  1. Select one or more files in the list/kanban view
  2. Use Action > Move Files from the toolbar
  3. Select the target directory
  4. Confirm the move

Moving Files Changes Permissions

When you move files, they inherit the access groups of the new directory. Users who could access the file before may lose access, and new users may gain access.


Access Groups

Access groups are the permission system for DMS. They control who can do what with files and directories.

Access Group Fields

Field Description Example
Name Group name (must be unique) "HR Team — Full Access"
Parent Group Inherit permissions from a parent group "All Employees — Read"
Create Members can create new files/subdirectories True
Write Members can edit existing files True
Unlink Members can delete files False
Groups Link to Odoo security groups (all users in those groups gain access) "Human Resources / Officer"
Explicit Users Individual users added directly "Dan Smith", "Jane Doe"

Read Access Is Always Granted

Every access group grants read access by default. The checkboxes control create, write, and delete permissions on top of read.

Permission Inheritance

Access groups support a hierarchy:

All Employees — Read Only
└── HR Team — Full Access (inherits read, adds create/write/unlink)
    └── HR Managers — Delete (inherits everything, adds unlink)

When a child group has a parent:

  • All users from the parent group are automatically included
  • Permissions are additive — if the parent grants create, the child also has create even without its own checkbox

Linking Groups to Directories

  1. Open a Directory record
  2. Go to the Groups tab
  3. Add the access group(s) that should have access

Child directories with Inherit Groups enabled automatically get their parent's groups. Disable this to set independent permissions on a subdirectory.


Portal & Sharing

Portal Access

External portal users can access DMS documents at the /my/dms URL if they are added to a DMS access group linked to a directory.

To grant portal access:

  1. Add the portal user to a DMS access group (via the Explicit Users field)
  2. Assign that access group to the directories they should see
  3. The portal user will see their documents at My Account > Documents

The Share wizard generates tokenized links that can be sent to anyone — even users without an Odoo account.

  1. Open a file or directory
  2. Click Action > Share (DMS Manager required)
  3. The wizard generates a unique URL with an access token
  4. Send the link to the recipient

Share Links Are Read-Only

Shared links provide download access only. Recipients cannot edit or delete files through a share link.


Employee Documents

The HR Employee Document module connects DMS to employee records, making it easy to store and find employee-related files (contracts, certifications, ID copies, etc.).

How It Works

  • Each employee record gets a Documents stat button showing the count of attached files
  • Click the stat button to see all documents for that employee
  • Documents are stored as standard Odoo attachments linked to the employee record

For Employees

  • Employees can view their own documents through the public employee view
  • The stat button only appears when viewing your own record
  • Self-service access — no need to ask HR for copies of your documents

For HR

  • HR Officers and Managers see the Documents stat button on all employee records
  • Click the stat button to view, upload, or manage documents for any employee
  • Use the attachment search to find specific documents across employees

Attachment Linking

The DMS Attachment Link module bridges the DMS with Odoo's standard attachment system (the chatter).

Adding DMS Files to Records

On any record with a chatter (sales orders, contacts, etc.):

  1. Look for the Add DMS File button next to the standard file upload button in the chatter
  2. Click it to open the DMS file selector (kanban view)
  3. Browse or search for the file you want to attach
  4. Click Add on the file card
  5. The DMS file is linked as an attachment on the record

How It Works Internally

  • The attachment links to the DMS file — it doesn't duplicate the data
  • Downloading the attachment retrieves the content from the DMS file
  • If the DMS file is updated, the attachment reflects the latest version
  • Deleting the attachment does not delete the DMS file (and vice versa)

Configuration

General Settings

Navigate to Documents > Configuration > General Settings (or Settings app > Documents):

Setting Description Default
Maximum Upload Size Max file size in MB. Files larger than this are rejected. 25 MB
Forbidden Extensions Comma-separated list of blocked file types (none)

Recommended Forbidden Extensions

Consider blocking executable file types to prevent security risks: exe,msi,bat,cmd,ps1,vbs,js,wsf,scr

Creating a Storage

  1. Go to Documents > Configuration > System > Storages
  2. Click New
  3. Enter a Name (e.g., "Company Documents")
  4. Set Save Type to Database (recommended for most use cases)
  5. Click Save

Creating an Access Group

  1. Go to Documents > Configuration > System > Access Groups
  2. Click New
  3. Enter a Name (e.g., "All Employees — Read Only")
  4. Set permission checkboxes (Create, Write, Unlink) as needed
  5. In the Groups tab, add Odoo security groups whose members should have access
  6. Optionally add individual users in the Explicit Users tab
  7. Click Save

Setting Up Directory Structure

  1. Go to Documents > Directories
  2. Click New
  3. Check Is Root Directory
  4. Select the Storage you created
  5. Enter a Name (e.g., "HR Documents")
  6. In the Groups tab, add the appropriate access groups
  7. Click Save
  8. To create subdirectories, click New again, leave "Is Root Directory" unchecked, and select the parent directory

Common Tasks

Setting Up DMS for the First Time (Admin)

  1. Create a storage: Documents > Configuration > System > Storages > New. Name it "Company Documents", save type "Database". Save.
  2. Create access groups:
    • "All Employees — Read Only" — no create/write/unlink checkboxes, add the "Internal User" Odoo group
    • "Department Managers — Full Access" — check create and write, add relevant manager groups
    • "Admin — Full Control" — check all permissions, add yourself
  3. Create the root directory structure:
    • "HR Documents" — root, assign "All Employees — Read Only" + "HR Team — Full Access"
    • "Operations" — root, assign "All Employees — Read Only" + "Department Managers"
    • "Sales" — root, assign "Sales Team" groups
  4. Create subdirectories under each root as needed (Policies, SOPs, Contracts, etc.)
  5. Upload initial documents into the appropriate directories

Uploading a Document

  1. Go to Documents > Files
  2. Click New
  3. Select the target Directory from the dropdown
  4. Click the Content field and select your file
  5. Add Tags for easy searching (optional but recommended)
  6. Click Save

Sharing a File with an External User

  1. Open the file you want to share
  2. Click Action > Share (requires DMS Manager permission)
  3. The wizard generates a unique link
  4. Copy the link and send it to the recipient via email

Finding Documents

Use the powerful search and filter tools on the Files view:

  • Search bar — Type a filename to search
  • Filters — "My Files" shows only files you created; "Archived Files" shows soft-deleted files
  • Group By — Organize results by directory, category, storage, or color
  • Search Panel — The left sidebar shows the directory tree and categories for quick navigation; click any directory to filter to its contents
  • Date Filters — Filter by creation or modification date

Managing Employee Documents

  1. Open the Employees app and select an employee
  2. Click the Documents stat button (visible to HR Officers/Managers, or to the employee viewing their own record)
  3. To upload: click Upload in the attachment view and select the file
  4. Documents are automatically linked to the employee record and respect HR access rules

Tips

Use Tags Consistently

Establish a tagging convention early. For example, use year tags ("2025", "2026"), status tags ("Current", "Archived", "Draft"), and department tags. Consistent tagging makes searching much easier as your document library grows.

Set Up Categories Before Directories

Create your category hierarchy first (e.g., "Policies", "Contracts", "Certifications"), then assign categories to directories and files. This gives you a second axis for organizing beyond the folder structure.

Use Access Group Inheritance

Instead of creating separate access groups for every directory, use a hierarchy. Create a base "All Employees — Read" group, then create child groups like "HR — Full Access" that inherit from it. This reduces maintenance overhead.

Star Your Frequently Used Directories

Click the star icon on directories you access daily. Use the "Starred Directories" filter to jump straight to them without navigating the full tree.

Lock Before Editing

If you're downloading a file to edit it locally (e.g., a Word document), lock it first to prevent someone else from uploading a conflicting version while you work.


Security

Security Groups

Group Access Level Who Has It
DMS User View all non-hidden files and directories. Full CRUD on files, directories, tags, categories, and own access groups. All internal users (inherits from Internal User)
DMS Manager Everything DMS User has, plus: manage storages, access hidden storages, manage all access groups (not just own), share files via wizard. Administrators
Portal User Read-only access to files/directories they've been explicitly granted access to via access groups. External portal users

Record Rules

Rule Effect
Multi-Company Users only see storages, directories, and files belonging to their company (or company-agnostic records)
File Locking Only the user who locked a file can modify it; all others get read-only access to locked files
Hidden Storage Storages marked "Is Hidden" are only visible to DMS Managers
Access Group Ownership DMS Users can only edit/delete access groups they created; Managers can edit all
Computed Permissions Read/create/write/delete access on individual directories and files is controlled by the access groups assigned to each directory

External Resources