Documents

The Documents module lets you upload and manage files for your clients. Files are stored securely in Supabase Storage and are visible to clients through their portal under the relevant client record.


Uploading a Document

Documents are uploaded from the Client Detail page, not from a standalone Documents module list. This ensures every document is explicitly tied to a client.

How to upload

  1. Navigate to Clients and open the relevant client record.
  2. Click the Documents tab.
  3. Click + Upload Document.
  4. Select the file from your computer.
  5. Fill in the optional metadata:
Field Required Notes
File Yes The file to upload
Display Name No Human-readable name shown to the client (defaults to filename)
Description No Brief note about what the document is
Visible to Client Yes Toggle — if enabled, the client can see it in their portal
  1. Click Upload.

The file is uploaded to Supabase Storage and the record is created immediately.


Supported File Types

The following MIME types are accepted:

Category Formats
Documents PDF (.pdf), Word (.docx, .doc), Excel (.xlsx, .xls), PowerPoint (.pptx, .ppt), plain text (.txt)
Images PNG (.png), JPEG (.jpg, .jpeg), GIF (.gif), WebP (.webp), SVG (.svg)
Archives ZIP (.zip)
Spreadsheets CSV (.csv)
⚠️
Unsupported file types

Files with unsupported MIME types will be rejected at upload time. If you need to share an unsupported file type, compress it into a .zip archive first.


File Size Limit

The maximum file size per upload is 20 MB.

💡
Large files

For files larger than 20 MB (e.g. video files, large design exports), use a cloud storage link (Google Drive, Dropbox, OneDrive) and share the link in the document's description field or directly with the client via email.


File Storage

Files are stored in Supabase Storage in a private bucket. Files are not publicly accessible via a raw URL — access is controlled by the CRM's authentication layer.

  • Clients access their documents through an authenticated session in their portal.
  • Admin users access documents from the client detail page.
  • Direct links without authentication do not work.

Client Visibility

Each document has a Visible to Client toggle:

Setting Effect
On Document appears in the client's portal under their documents section
Off Document is stored internally only — clients cannot see it

Use internal-only documents for:

  • Internal briefs and strategy documents
  • Vendor contracts or supplier documents related to the client
  • Internal cost estimates not intended for client review

Deleting a Document

  1. Open the client's Documents tab.
  2. Find the document you want to remove.
  3. Click the Delete (trash) icon.
  4. Confirm the deletion.
🚨
Deletion removes the file from storage

Deleting a document removes both the database record and the underlying file from Supabase Storage. This cannot be undone. Download the file first if you need to keep a local copy.


Audit Trail

The CRM records who uploaded each document and when. This metadata is visible in the documents table:

Field Description
Uploaded By The admin user who uploaded the file
Upload Date Timestamp of the upload
Last Modified Timestamp of the most recent metadata update

This provides a basic audit trail for compliance and dispute resolution purposes.


Best Practices for Naming Documents

Good document naming makes it easy for both your team and your clients to find the right file quickly.

Recommended naming format:

[ClientName]_[DocumentType]_[Date].[ext]

Examples:

Good ✓ Poor ✗
AcmeCorp_ServiceAgreement_2025-07.pdf contract.pdf
AcmeCorp_WebsiteProposal_v2.pdf proposal final FINAL.pdf
AcmeCorp_BrandGuide_2025.pdf brand stuff.pdf
AcmeCorp_InvoiceINV-042_2025-08.pdf invoice.pdf

Additional tips:

  • Use ISO date format (YYYY-MM or YYYY-MM-DD) so files sort chronologically.
  • Use version suffixes (_v1, _v2) for documents that go through multiple revisions.
  • Avoid spaces in filenames — use underscores or hyphens instead.
  • Use the Display Name field to show a friendlier name to the client while keeping the technical filename consistent internally.