Most businesses that implement Odoo start storing documents as attachments on records - a PDF contract on the customer record, a vendor invoice on the bill, a technical drawing on the product. This works until it doesn't: when you need to find all contracts for a specific customer, or all technical drawings for products in a category, or all documents that need approval this week.
The Documents module (Odoo Enterprise) gives you a dedicated document workspace with folders, tags, activity-based workflows, and integrations with other Odoo modules that push documents into the right place automatically.
What the Documents module is (and isn't)#
Odoo Documents is a document workspace, not a full-featured DMS like SharePoint or Google Drive. It handles:
- Centralised storage with structured folders (Workspaces)
- Tag-based classification
- Activity workflows (request signature, approve, archive)
- Integration with vendor bills, purchase orders, HR documents, and projects
- PDF splitting and merging
- Shared access links for external users
It does not handle versioning beyond simple file replacement, complex access control down to the file level (access is workspace-level), or advanced compliance features like retention policies.
For most SMBs that currently use a shared network drive or a mix of email attachments and Google Drive, Odoo Documents is a significant improvement. For organisations with strict compliance requirements, it may be a starting point rather than the destination.
Workspaces#
Workspaces are the top-level folders. They can be nested. Each workspace has:
- Name
- Company (optional - restrict to a company in multi-company setups)
- Access groups - who can read, write, or manage documents in this workspace
- Default activities - what activity types are suggested when a document lands here
Create workspaces in Documents → Configuration → Workspaces. A typical structure for a mid-size company:
Finance
└── Vendor Bills
└── Customer Invoices
└── Bank Statements
HR
└── Employment Contracts
└── ID Documents
└── Training Certificates
Operations
└── Quality Documents
└── SOPs
└── Supplier Certifications
Sales
└── Contracts
└── ProposalsNesting is supported but keep it shallow - three levels maximum. Deep nesting creates navigation overhead without adding real organisation.
Tags#
Tags cross-cut workspaces. A document can have multiple tags. Unlike workspaces (which are structural), tags are semantic: Confidential, Requires Signature, Pending Approval, Archived (Legal Hold).
Create tag categories in Documents → Configuration → Tags. Tag categories group related tags in the filter panel. Examples:
- Category "Status": Pending / Approved / Archived
- Category "Department": Finance / HR / Operations
- Category "Document Type": Contract / Certificate / Invoice / Drawing
Tags are the primary way to run cross-workspace searches. "Show me all Contracts with status Pending" uses two tags from different categories.
Uploading and organising documents#
Drag-and-drop upload is available directly in the Documents kanban view. Select the target workspace before dropping - documents land in the workspace that is currently selected in the left panel.
From the upload dialog or the document detail view, assign:
- Workspace (required)
- Tags (optional but recommended)
- Contact - link to a res.partner (useful for contracts, correspondence)
- Activity - immediately schedule an activity on the uploaded document
Automatic document collection from other modules#
The value of Documents comes from its integrations. When configured, documents generated in other modules flow automatically into the correct workspace:
Vendor bills#
In Accounting → Configuration → Settings → Digitalization, enable Documents. When a vendor bill PDF is received by email or uploaded via the alias, Odoo places the original PDF in the configured Finance workspace and links it to the bill. After the bill is posted, the document is tagged "Validated".
Purchase orders#
In Purchase → Configuration → Settings, enable Lock Confirmed Sales and Documents. Purchase order confirmations can be automatically sent to a Documents workspace for approval workflows.
HR employees#
In HR → Configuration → Settings, enable Documents. When an employee record is created, Odoo creates a subfolder in the HR workspace for that employee. Documents attached directly to the employee record (ID, contract, certifications) sync to that subfolder.
Project tasks#
In Project → Configuration → Settings, enable Documents. Each project gets a subfolder in the configured workspace. Documents attached to tasks appear in that subfolder.
Workflows and activities#
The Documents module extends Odoo's standard activity system with document-specific activity types:
- Upload Document - requests a specific file from a colleague
- Approve - routes the document to a manager for approval; the document gets a status badge
- Sign - sends the document to Odoo Sign for e-signature (requires Odoo Sign module)
- Mark as Done - closes the workflow
Schedule an activity from the document kanban card (the clock icon) or the document detail view. Activities appear in the recipient's activity inbox and can trigger email notifications.
Automated workflows run on upload: in workspace configuration, you can define rules that automatically schedule an activity when a document with a specific tag lands in the workspace. Example: any document tagged "Requires Approval" in the Finance workspace automatically creates an "Approve" activity assigned to the Finance Manager.
Sharing documents externally#
The Share button on a document or workspace generates a link you can send to external users (suppliers, customers, auditors). Options:
- Read-only - the recipient can view and download but not upload
- Upload - the recipient can add documents to the workspace via the shared link (useful for collecting supplier certifications)
- Expiry date - the link stops working after a set date
Shared links do not require the external user to have an Odoo account. They access a simplified portal view.
PDF tools#
The Documents toolbar includes basic PDF operations:
- Split - divide a multi-page PDF into separate documents (useful when a scanned batch contains multiple invoices)
- Merge - combine multiple documents into one PDF
- Rotate - fix orientation for scanned documents
These tools run in the browser without a separate application. For organisations that scan paper documents in bulk, the split tool is a significant time-saver.
Access control#
Access is workspace-level, not file-level. Each workspace has three levels:
- Read - can view and download documents in the workspace
- Write - can upload, tag, and move documents; can add activities
- Manage - can configure the workspace, set access rules, delete documents
Assign access via res.groups in the workspace configuration. There is no per-document permission beyond workspace membership.
For confidential documents that only specific users should see, create a separate workspace with restricted access rather than trying to hide individual files in a shared workspace.
Common implementation patterns#
Central inbox workspace. Create a workspace called "Inbox" with Write access for all employees. Documents that arrive by email or scan land here. A weekly activity reminds the document owner to classify incoming documents into the correct workspace.
Vendor certification tracker. Create a workspace "Supplier Certifications" with tag categories for Status (Current / Expiring / Expired) and Certification Type (ISO / HACCP / Custom). Schedule a recurring "Review" activity on expiring documents 30 days before their expiry date.
Contract lifecycle. Use tag-based stages: Draft → Review → Signed → Active → Expired. Each stage transition is a manual tag update, but the kanban grouped-by-tag view gives a visual pipeline. Combine with an "Approve" activity at the Review stage routed to the legal team.
For broader Odoo Enterprise features, see the Odoo Studio guide. For managing vendor bills in Odoo Accounting, see the accounting journal entries guide.

