Skip to main content
Insyrge - Zoho CRM & Business Automation Consulting
← Back to All ArticlesArtificial Intelligence & Business Automation

Client Portal File Sharing, Done Securely

How to design secure document exchange in a client portal: organisation, safe uploads, private storage, versions and audit.

•Manav Sharma
Client Portal File Sharing, Done Securely

Replace email attachments with client portal file sharing: organised documents, safe uploads, private storage, expiring links, versions and audit logs.

Email is still how many businesses exchange documents with clients: contracts, drawings, statements, identity documents, reports. It is convenient, but attachments get lost in inboxes, size limits block large files, versions multiply and sensitive documents end up in places nobody controls. Client portal file sharing moves that exchange into a secure, organised space where each document belongs to the right client and project, access is controlled and every upload and download is recorded. This guide explains how to design client portal file sharing: organising documents, handling uploads safely, storing and serving files securely, versioning, retention and audit, with a worked example.

What clients and staff need

  • Find documents quickly, organised by project, matter, property or period rather than one long list
  • Upload files easily, including large ones, from a computer or phone
  • Know that a document arrived and who has seen it
  • See the latest version without confusion, with older versions available if needed
  • Trust that only the right people can see each document

For your team, file sharing should also link documents to the right records in your CRM or project system, so nobody has to re-file attachments by hand.

Organising documents

Model documents around the client's world. Each document belongs to an organisation, usually to a specific project or record within it, and has a type, such as contract, invoice, drawing or report. Folders can help, but metadata is more flexible: a client can filter by type, date or project without you predicting every folder structure. Use consistent, readable names generated from metadata rather than whatever the uploaded file was called.

Separate client-visible documents from internal ones clearly. A common and serious mistake is storing internal working files in the same place as client documents, one misplaced permission away from exposure.

Client portal file sharing: handling uploads safely

Uploaded files are untrusted input. The OWASP File Upload Cheat Sheet sets out the main defences, including:

  • Allow only the file types you need, checking the actual content type, not just the extension
  • Set size limits and tell users what they are before they upload
  • Rename files on storage rather than using the uploaded name
  • Scan files for malware before making them available to anyone
  • Store uploads outside the web root, so they cannot be executed or browsed directly

For large files, uploading directly from the browser to object storage using short-lived, pre-authorised upload URLs avoids routing big files through your application servers, and lets uploads resume more easily.

Storing and serving files securely

Keep files in private storage that is never publicly accessible. When a user requests a document, the application checks that they are allowed to see it, then either streams the file or issues a short-lived download link. Links should expire quickly and be tied to the authorised request, so a forwarded link stops working soon after. Encrypt files at rest and in transit, and keep storage credentials out of the application code.

Versions, retention and deletion

When a document is updated, keep previous versions rather than overwriting, and show clearly which version is current. Decide how long each document type is kept, based on contracts, regulation and your own policy, and apply retention automatically rather than relying on someone to remember. When documents must be deleted, make sure copies in backups and caches are handled according to the same policy.

Sharing with people outside the portal

Sometimes a client needs to pass a document to their own adviser, auditor or contractor who has no portal account. Rather than encouraging downloads and forwarding, consider controlled external sharing: a link to a specific document, issued by an authorised user, that expires after a set period, may require a code sent separately, and is logged like any other access. Make it easy to see and revoke active external links. If your clients rarely need this, leaving it out keeps the system simpler and the risk lower.

Audit and notifications

Record every upload, view, download, version change and deletion, with user, time and document. This answers questions such as "did the client download the contract?" with evidence, and supports security investigations. Notify the right people when documents arrive: the project team when a client uploads, the client when a requested document is ready, with links straight to the document page.

Worked example: document exchange for a legal practice

Suppose a law firm replaces email attachments with portal file sharing for its corporate clients. Documents are attached to matters, and only users assigned to a matter can see its documents. Downloads use short-lived links generated after a permission check. This is a simplified, untested illustration using Amazon S3; can_view and audit stand in for the firm's own permission and logging code:

import boto3

s3 = boto3.client("s3")
BUCKET = "client-documents-private"

def download_link(user, document):
    if not can_view(user, document):
        raise PermissionError("not allowed")
    audit("download_link", user=user.id, document=document.id)
    return s3.generate_presigned_url(
        "get_object",
        Params={"Bucket": BUCKET, "Key": document.storage_key},
        ExpiresIn=300,
    )

The firm's other design decisions:

AreaDecisionOrganisationDocuments attached to matters; types such as engagement letter, draft, executed agreement, correspondenceUploadsPDF, Office documents and images only; size limit stated on the upload screen; malware scan before releaseLarge filesDirect browser-to-storage upload with pre-authorised URLsAccessMatter-level permissions; internal working drafts stored separately and never client-visibleVersionsAll versions kept; current version labelled; clients see only versions shared with themRetentionApplied by document type according to the firm's records policyAuditUploads, views, downloads and permission changes logged; available to the matter partner

Download links expire after five minutes, so a link forwarded by email soon stops working, while the client can always generate a fresh one by signing in. The choices are this firm's, shown to illustrate the approach.

Making it easier than email

Adoption depends on file sharing being at least as easy as attaching a file. Support drag-and-drop and phone uploads, show clear progress and confirmation, and send notification emails that link to the document rather than attaching it. Ask staff to share documents through the portal by default, so clients learn to look there.

Common mistakes

  • Public storage buckets or guessable file URLs
  • Trusting file extensions and skipping malware scanning
  • Long-lived or permanent download links
  • Mixing internal and client-visible files in one place
  • Overwriting versions without history
  • No audit trail of who accessed what

For the wider portal architecture, see our guide to client portal development. The access principles here mirror those in our guide to CRM security.

Frequently Asked Questions

Is client portal file sharing more secure than email?

Usually, when designed well: documents stay in controlled storage, access is checked on every request, links expire and every download is recorded.

How should a client portal handle uploaded files?

Allow only needed types, check content, enforce size limits, rename files, scan for malware and store them privately outside the web root.

How do portals let clients download files securely?

The application checks permissions, then streams the file or issues a short-lived download link from private storage, logging each access.

Can clients upload large files to a portal?

Yes. Direct uploads from the browser to object storage using short-lived, pre-authorised URLs handle large files without burdening application servers.

Share documents securely

We build client portals with secure, organised file sharing linked to your CRM and project systems. See our custom app development services, or talk to us about your portal.

About the Author

Manav Sharma is the founder of Insyrge and a CRM solutions architect. He works across Zoho, Salesforce, HubSpot, Odoo and more, designing the CRM setups, integrations and automations that keep sales and operations teams working from the same data.

Need Help Implementing This in Your Business?

Our certified Zoho consultants and automation experts can help you design and deploy custom workflows tailored to your operations.

Book Free Consultation