DOCUMENT HUB
The Leaseora Document Hub is the platform’s Centralised Document Management System (CDMS). It acts as the single source of truth for documents created, uploaded, requested, shared, analysed, signed, versioned, verified, or migrated from every major Leaseora module.
|
LEASEORA DOCUMENT HUB End-to-End User and Technical Operations Guide Documents • Folders • Sharing • Requests • AI Analysis • Versioning • Blockchain • Client Portal • Security |
For real estate companies, corporate landlords, property managers, legal, compliance, finance and operations teams
Version 1.0 | July 2026
|
Purpose of this guide |
Document Control
|
Item |
Details |
|
Document title |
Leaseora Document Hub User and Technical Operations Guide |
|
Version |
1.0 |
|
Date |
July 2026 |
|
Primary audience |
Real estate companies, corporate landlords, property managers, legal/compliance teams, finance and mortgage teams, staff users, and clients/tenants |
|
Platform area |
Corporate Landlord Document Hub and connected Client/Tenant Document Portal |
|
Purpose |
Explain how to configure, operate, secure, govern, and troubleshoot the centralised document management system from end to end. |
|
Terminology |
This guide uses “Client” for the customer-facing term. “Tenant” appears where it is the actual backend model, field, controller, route, or system label. |
|
Important implementation note |
Contents
Part 1: Understanding the Document Hub
Part 2: First-Time Setup and Governance
Part 3: Everyday Document Operations
Part 4: Sharing, Requests and the Client Portal
Part 5: AI Document Understanding and Generation
Part 6: Versioning, Blockchain and Legal Integrity
Part 7: Module-Specific Document Workflows
Part 8: Security, Privacy and Operational Control
Part 9: Administration, Migration and Platform Oversight
Part 10: Standard Operating Procedures and Troubleshooting
Appendices: Backend systems, field dictionaries, scopes, controllers, services, events, notifications, mail and glossary
Phase 1 - Understanding The Document Hub
What the module is, who uses it, what it controls, and how documents move through Leaseora.
1.1 What the Document Hub Is
The Leaseora Document Hub is the platform’s Centralised Document Management System (CDMS). It acts as the single source of truth for documents created, uploaded, requested, shared, analysed, signed, versioned, verified, or migrated from every major Leaseora module.
Instead of keeping lease agreements in one section, property title documents in another, mortgage files in email, compliance certificates on a staff member’s laptop, and client identity documents in chat messages, the Document Hub brings them together in one controlled repository. Every document retains its business context through links to the relevant property, lease, client, folder, source module, and underlying module record.
1.2 Business Problems the Module Solves
· Scattered files across email, messaging applications, cloud drives, paper files and employee devices.
· Difficulty identifying the latest or legally approved version of a contract.
· Uncontrolled sharing of confidential client, legal, mortgage or compliance records.
· Missed insurance, licence, certificate and compliance expiry dates.
· Slow collection of documents from clients because requests are not tracked.
· Lack of proof that a client viewed or acknowledged a shared notice.
· Manual reading of long leases, invoices, policies and mortgage documents.
· Weak auditability when documents are changed, downloaded, revoked, deleted or verified.
· Duplicate storage across property, lease, mortgage, development, WeBuild, land, CRM and compliance modules.
1.3 What the Dashboard Brings Together
|
Document source |
Typical contents |
How it appears in the Hub |
|
Property |
Title deeds, certificates, permits, surveys, floor plans, inspection reports |
Linked by property_id and/or PropertyDocument; filterable as Property Documents |
|
Lease |
Lease agreements, addenda, renewal notices, termination notices, invoices, receipts |
Linked by lease_id and LeaseDocument; may be AI-generated and versioned |
|
Client/Tenant |
Identity documents, proof of income, references, insurance, acknowledgments |
Linked by tenant_id or TenantDocumentShare; visible according to permissions |
|
Mortgage |
Applications, valuations, loan agreements, legal charges, payment records |
Linked to MortgageDocument or MortgageApplicationDocument |
|
Property Development |
Plans, approvals, contractor documents, progress reports, legal contracts |
Linked to project records and development document models |
|
WeBuild |
Booking contracts, BOQs, construction documents, client agreements |
Connected through WeBuild document records and AI contract tools |
|
Land |
Survey plans, allocation letters, purchase agreements, payment schedules, receipts |
Connected through land document services and source_module metadata |
|
Compliance and verification |
Certificates, filings, KYC/AML evidence, regulatory records |
Eligible for expiry tracking, notifications and blockchain verification |
|
CRM |
Proof of funds, identity records, financial statements and lead attachments |
Stored as CrmLeadDocument and consolidated in the CDMS |
|
Media |
Property photographs, videos and supporting images |
Filterable through scopeMedia and Media / Images category |
1.4 Main Users and Responsibilities
|
Role |
Primary responsibilities in Document Hub |
Recommended access |
|
Company owner / account administrator |
Owns the document governance policy, approves sensitive access, manages staff roles and oversees storage usage. |
Full view, create, update, delete, download, share, folder, request, AI and blockchain permissions. |
|
Document administrator |
Maintains folders, metadata, naming standards, archive rules, request queues and quality checks. |
Broad document management without access to unrelated finance or platform settings. |
|
Property manager |
Uploads and manages property, lease, maintenance and client records for assigned properties. |
Only assigned properties and clients; no company-wide confidential records unless required. |
|
Legal / compliance officer |
Reviews contracts, compliance certificates, expiry dates, legal versions, e-signature and blockchain verification. |
View and manage legal/compliance categories; controlled delete and share rights. |
|
Finance / mortgage officer |
Manages invoices, payment evidence, mortgage application requirements and lender documents. |
Finance and mortgage categories only; access to relevant client files. |
|
Development project team |
Uploads plans, approvals, BOQs, contractor records and legal project documents. |
Assigned development projects and project templates. |
|
Support / client operations |
Sends document requests, follows up outstanding submissions and helps clients access shared documents. |
Request and portal support rights; no unrestricted download of sensitive files. |
|
Client / tenant |
Views documents shared with them, downloads when allowed, acknowledges notices, and fulfils document requests. |
Only active TenantDocumentShare records and secure request upload links. |
|
SuperAdmin |
Maintains system-wide services, migrations, AI lease records and platform oversight. |
Platform-level administrative access, subject to audit and operational controls. |
1.5 Core Document Lifecycle
1. A document enters Leaseora through manual upload, module generation, client request fulfilment, migration, mobile upload, or AI lease generation.
2. The system stores the physical file through DocumentService in a user-scoped storage path and creates the relevant database record.
3. Metadata connects the document to a module, category, property, lease, client, folder and owner.
4. DocumentScope automatically restricts queries to the correct landlord, client or authorised staff context.
5. DocumentPolicy checks every protected action, including viewing, updating, deleting, downloading and sharing.
6. The company may organise, edit, archive, share, request acknowledgment, analyse with AI, create versions or register the document on blockchain.
7. The document remains available according to its status, visibility, sharing expiry, retention policy and access permissions.
|
Key principle |
1.6 Dashboard Overview
After signing in, open Document Hub from the Corporate Landlord navigation. The main route is /document-hub and the dashboard is served by LandlordDocumentHubController@index($request). Depending on your account configuration, the sidebar may also show direct links such as All Documents, Upload Document, Property Documents, Lease Documents, Mortgage Documents, Tenant-Assigned Documents, Compliance Documents, Verification Documents, WeBuild Documents, Land Parcel Documents, Property Development Documents, Mortgage Legal Documents, General Documents, Media / Images, Manage Folders and Document Requests.
|
Dashboard area |
What it tells you |
Typical next action |
|
All documents |
Total active records accessible to your account, across modules. |
Search, filter, preview or open a document. |
|
Folder navigation |
Documents arranged in company-defined folder hierarchy. |
Open, create, rename, recolour or restructure folders. |
|
Pending requests |
Clients who still need to submit requested files. |
Send a follow-up, change the deadline or cancel the request. |
|
Recently shared |
Documents most recently shared with clients. |
Review access, download permission, acknowledgment and expiry. |
|
Expiring soon |
Documents with expiry_date within the next 30 days through scopeExpiringSoon(30). |
Request a replacement, renew the document or update expiry metadata. |
|
Unfiled documents |
Documents not yet assigned to a folder. |
Classify and move them into the approved structure. |
|
Module filters |
Documents grouped by lease, property, mortgage, development, compliance and other source modules. |
Work within a business process instead of browsing the full library. |
How a real estate company should prepare permissions, folders, metadata standards and internal controls before uploading documents at scale.
2.1 First-Time Setup Checklist
|
Setup task |
Owner |
Completion standard |
|
Confirm Document Hub is enabled for the landlord account |
Account owner / SuperAdmin |
Document Hub menu and routes are visible for authorised users. |
|
Define staff roles and permissions |
Account owner / security administrator |
Users receive only the minimum document permissions required for their duties. |
|
Approve document classification and naming rules |
Document administrator / legal |
All departments use the same categories, tags and file naming convention. |
|
Create the master folder hierarchy |
Document administrator |
Properties, leases, clients, legal, finance, compliance and projects have an agreed structure. |
|
Assign folder and document owners |
Department heads |
Each folder has a responsible person or team for quality and lifecycle management. |
|
Define visibility defaults |
Legal / security |
Sensitive uploads default to landlord_only and private unless sharing is intentional. |
|
Define request templates and service levels |
Client operations |
Common requests include instructions, deadlines and escalation steps. |
|
Define AI review controls |
Legal / compliance / operations |
AI results are reviewed before they are used for legal, financial or compliance decisions. |
|
Define blockchain eligibility |
Legal / compliance |
Only approved high-value final documents are registered. |
|
Train client-facing staff |
Operations manager |
Staff can share, revoke, request, explain acknowledgment and support mobile uploads. |
2.2 Recommended Permission Design
Leaseora enforces document access through both global data scoping and action-level policies. The company should still design staff roles carefully. Avoid giving every staff member company-wide download, share and delete permissions merely because they need to upload documents.
|
Permission capability |
Give to |
Restrict from |
|
View document lists |
Staff who need document context for assigned work |
Staff with no document-related responsibility |
|
View a document |
Staff assigned to the relevant property, lease, client or department |
Unassigned staff and users outside the owning landlord account |
|
Create / upload |
Property, lease, legal, finance, compliance and development staff as needed |
Read-only auditors and unrelated departments |
|
Update metadata |
Document owners or administrators |
Casual viewers |
|
Delete |
Very limited administrators, ideally with review process |
Most operational staff |
|
Download |
Users who need a local copy for approved work |
Users who only need in-platform review |
|
Share with client |
Authorised client operations, legal and property managers |
Users without responsibility for client communication |
|
Folder administration |
Document administrators |
General uploaders |
|
AI analysis |
Trained users who understand verification requirements |
Users likely to treat AI output as final legal advice |
|
Blockchain registration |
Legal/compliance approvers |
General uploaders and unapproved staff |
|
Security recommendation |
2.3 Recommended Master Folder Structure
DocumentFolder supports nested folders through parent_id, so the company can build a professional digital filing cabinet. The hierarchy should reflect how staff search for documents, not merely the names of internal departments.
|
Top-level folder |
Suggested subfolders |
Examples |
|
01 - Corporate & Legal |
Company registration; board records; licences; insurance; policies; signed vendor contracts |
Certificate of incorporation, professional indemnity policy, data-processing agreements |
|
02 - Properties |
One folder per property; title; permits; surveys; floor plans; inspections; insurance |
Property title, building approval, valuation, inspection checklist |
|
03 - Leases |
One folder per property/lease; agreements; addenda; notices; invoices; receipts; handover |
Signed lease, renewal notice, rent invoice, move-in report |
|
04 - Clients |
One folder per client; identity; income; references; correspondence; acknowledgments |
Passport, proof of income, insurance, signed acknowledgment |
|
05 - Mortgage & Finance |
Applications; lender records; valuations; legal charges; payment evidence |
Mortgage application, offer letter, valuation report |
|
06 - Property Development |
One folder per project; approvals; designs; BOQs; contracts; progress; handover |
Planning permit, contractor agreement, progress certificate |
|
07 - WeBuild |
Bookings; client contracts; design; BOQ; payment schedule; completion |
WeBuild booking contract, construction schedule |
|
08 - Land |
One folder per parcel; survey; allocation; sale; payment; transfer |
Survey plan, allocation letter, deed of assignment |
|
09 - Compliance & Verification |
KYC/AML; tax; regional compliance; audit evidence; certificates |
Compliance certificate, regulator filing, verification result |
|
10 - CRM & Sales |
Lead attachments; proof of funds; due diligence; offers; purchase milestones |
Proof of funds, buyer ID, due diligence report |
|
99 - Archive |
Closed leases; sold properties; completed projects; superseded documents |
Historical records retained under company policy |
2.4 Naming Convention
A consistent title and file-name pattern makes search, sorting, export and audit work far easier. Use a pattern that remains understandable outside Leaseora.
|
Recommended pattern |
· Use the actual document date, not the upload date, when the two are different.
· Use standard document type names such as Lease Agreement, Insurance Certificate, Valuation Report or Proof of Income.
· Include a property, unit, lease, project or client reference whenever the document belongs to a specific business record.
· Use Draft, Under Review, Final or Signed to describe approval state where relevant.
· Use version numbers only when the document is genuinely version-controlled; do not create “final-final-new” file names.
· Avoid special characters that may cause storage or export problems.
2.5 Metadata Standard
Metadata is what makes the Document Hub more powerful than a normal drive. A document can be physically stored once but located through its type, category, property, lease, client, module, folder, tags, expiry date and visibility.
|
Metadata element |
Company rule |
Example |
|
Title |
Clear business name, not the original scanner filename |
Rivergate Apartments - Building Insurance Certificate |
|
Document type |
Use an approved controlled list |
insurance |
|
Source module |
Use the business process that created or owns the document |
property |
|
Category |
Use a narrower classification within the module |
building_insurance |
|
Property |
Link whenever the document relates to a specific property |
Rivergate Apartments |
|
Lease |
Link when the document affects a specific lease relationship |
Lease #LS-2048 |
|
Client/Tenant |
Link only where there is a direct client context |
Client #CL-1082 |
|
Folder |
Use the master hierarchy; avoid leaving important files unfiled |
02 - Properties / Rivergate / Insurance |
|
Tags |
Use short reusable search terms |
renewal, insurer, 2026, fire-cover |
|
Expiry date |
Set for certificates, policies, IDs, licences and time-limited approvals |
30 June 2027 |
|
Visibility |
Default to landlord_only unless the business purpose requires sharing |
landlord_only |
|
Download permission |
Enable only when the recipient needs a local copy |
false for read-only policy notice |
2.6 Document Categories and Examples
|
Document type |
Common examples |
Recommended expiry tracking |
|
Contract |
Service agreements, vendor contracts, management agreements |
Only if contract has an end or renewal date |
|
Lease |
Lease agreement, addendum, renewal, termination notice |
Track lease end separately; expiry may be used for time-limited notices |
|
Invoice |
Rent, service charge, contractor or project invoice |
Usually no expiry; use due dates in source module |
|
ID |
Passport, national ID, residence permit, company representative ID |
Yes, where the ID has an expiry date |
|
Certificate |
Compliance, safety, occupancy, inspection or professional certificate |
Yes |
|
Insurance |
Property, liability, contents, construction or mortgage insurance |
Yes |
|
Report |
Valuation, inspection, progress, market, financial or compliance report |
Usually no expiry; use report date |
|
Legal |
Deed, legal opinion, charge, conveyancing record, court or dispute record |
Usually no expiry; version and status are critical |
|
Mortgage |
Loan agreement, offer, valuation, repayment or discharge document |
Depends on the document |
|
Media |
Property images, videos, site photographs, scanned evidence |
No expiry unless used for a time-bound listing |
How to upload, classify, search, preview, edit, move, archive, delete, download and process documents in bulk.
3.1 Accessing the Document Hub
|
STEP |
Sign in |
Expected result: Your dashboard opens within the correct landlord/company context.
|
STEP |
Open Document Hub |
Expected result: You see only documents allowed by DocumentScope and your staff permissions.
|
STEP |
Choose the work area |
Expected result: The document list is narrowed to the business task you are performing.
|
Access issue |
3.2 Uploading a New Document
Use Upload Document or the create action in the Document Hub. The upload is handled by LandlordDocumentHubController@create and @store. The file itself is stored through DocumentService@storeDocument($user, $file, $attributes) in a user-scoped path.
3.2.1 Upload Procedure
8. Select Upload Document.
9. Choose the file from your device. Supported categories can include PDF, Word, Excel, image, media and archive formats, subject to platform validation.
10. Enter a clear document title and, where useful, a description explaining purpose, source, approval status or important handling instructions.
11. Select the document type, source module and category.
12. Link the correct property, lease and client where applicable. Use getLeasesForProperty when the interface needs to load lease options for a selected property.
13. Choose an existing folder or leave the file temporarily unfiled only when classification is genuinely unknown.
14. Add searchable tags.
15. Set the expiry date for time-limited documents.
16. Select visibility and privacy settings. New sensitive documents should generally remain landlord-only until sharing is intentional.
17. Choose whether the client may view and download the document. These settings do not replace the creation of a specific TenantDocumentShare when controlled sharing is required.
18. Submit the upload and wait for confirmation.
19. Open the saved document to verify the preview, file name, size, business links and permissions.
3.2.2 Upload Field Guide
|
Field |
Requirement |
Operational meaning |
|
title |
Yes |
Human-readable document title used throughout Leaseora. |
|
slug |
Automatic |
Unique URL identifier generated by the system. |
|
description |
Optional |
Purpose, context, instructions or status notes. |
|
document_type |
Yes |
Broad type such as contract, invoice, lease, ID, certificate, report, insurance or legal. |
|
source_module |
Recommended |
Module of origin such as lease, property, mortgage, maintenance or development. |
|
category |
Recommended |
Narrower classification within the source module. |
|
property_id |
When applicable |
Links the document to a property. |
|
lease_id |
When applicable |
Links the document to a lease. |
|
tenant_id |
When applicable |
Links the document to a client/tenant. |
|
user_id / owner_id |
System/required |
Identifies the owning landlord or user. |
|
owner_type |
System |
Polymorphic owner type. |
|
documentable_id / documentable_type |
System or module-driven |
Polymorphic link to any supported module entity. |
|
folder_id |
Optional |
Places the document in a DocumentFolder. |
|
file_path |
System |
Stored file path. |
|
file_name |
System |
Original or normalised file name. |
|
file_size |
System |
File size in bytes. |
|
file_type |
System |
Extension such as pdf, docx, xlsx or jpg. |
|
file_category |
System |
Document, media, spreadsheet or archive. |
|
mime_type |
System |
Detected MIME type used for validation and preview behaviour. |
|
is_private |
User/system |
Private-document control within the permitted owner context. |
|
status |
User/system |
Active, archived or expired. |
|
visibility |
Yes |
landlord_only, shared_with_tenant or public. |
|
tags |
Optional |
Searchable JSON tags. |
|
expiry_date |
When applicable |
Date used for expiry monitoring. |
|
tenant_can_view |
When sharing |
Whether the linked client may view. |
|
tenant_can_download |
When sharing |
Whether the linked client may download. |
|
document_request_id |
Automatic for fulfilment |
Links an upload to the request it fulfils. |
|
external_ref_id / external_ref_table |
Optional/integration |
Reference to an external system record. |
3.2.3 Upload Quality Check
|
Check |
Pass condition |
|
Correct file |
The file opens, is readable, complete and is not a temporary scan or wrong attachment. |
|
Correct title |
A colleague can understand the document without opening it. |
|
Correct links |
Property, lease, client, module and category match the document. |
|
Correct folder |
The file appears in the approved location. |
|
Correct visibility |
No client or unrelated staff member can access the file unintentionally. |
|
Correct expiry |
Time-limited documents have an accurate expiry date. |
|
Correct version |
The upload is identified as draft, final, signed or superseded where relevant. |
|
Correct AI status |
When automatic AI analysis is enabled, results are reviewed rather than assumed correct. |
3.3 Viewing a Document
Select the document title or action menu to open the detail page through LandlordDocumentHubController@show($slug). The detail view should provide the document metadata, file information, property/lease/client links, sharing information and other available history.
· Confirm the document identity before downloading or sharing.
· Review file size and type to detect accidental uploads.
· Check visibility, tenant view/download rights and active sharing records.
· Check expiry date and status.
· Review module links to understand the business context.
· Review version or blockchain information where available.
3.4 Previewing and Downloading
Use Preview for inline display of supported PDFs and images. Use Download when a local copy is required. LandlordDocumentHubController@preview($slug) and @download($slug) enforce DocumentPolicy checks. The model’s computed attributes help the interface determine file URL, human-readable size, extension and whether the file is an image, PDF, Word or Excel document.
|
Do not download by habit |
3.5 Editing Metadata
20. Open the document detail page.
21. Select Edit.
22. Update the title, description, tags, visibility, expiry date, folder or allowed business links presented by the form.
23. Do not use metadata editing to disguise a different file. When the actual file content changes, create a new version or replace it using the appropriate version-aware workflow.
24. Save the update and re-open the document to confirm the change.
3.6 Deleting a Document
Deletion is performed through LandlordDocumentHubController@destroy($slug). DocumentPolicy@delete must authorise the user, after which DocumentService@deleteDocument($document) removes the database/file record according to implementation.
|
Deletion control |
3.7 Archiving
Archiving changes the operational status without treating the document as active. Use it for completed leases, sold properties, closed mortgage applications, completed projects, superseded reports and historic compliance evidence that must still be retained under company policy.
|
Use Active when |
Use Archived when |
Use Expired when |
|
The document is current and used in an ongoing process. |
The document is no longer current but must remain available for history, audit or legal retention. |
The document has passed its expiry date and should be renewed, replaced or formally retained as expired evidence. |
3.8 Searching and Filtering
Use search and filters before creating a duplicate. The Document model provides scopes for common queries. The exact filter controls may differ by screen, but the underlying capabilities include the following.
|
Model scope |
User-facing purpose |
|
ofType($type) |
Filter by document type. |
|
forProperty($propertyId) |
Show documents for one property. |
|
forLease($leaseId) |
Show documents for one lease. |
|
private() |
Show private documents only. |
|
public() |
Show public documents only. |
|
forModule($module) |
Show documents from one source module. |
|
inCategory($category) |
Show documents in one category. |
|
tenantVisible() |
Show documents visible to clients. |
|
tenantDownloadable() |
Show documents clients may download. |
|
withVisibility($visibility) |
Filter by the visibility value. |
|
expiringSoon($days = 30) |
Show documents expiring within the selected number of days. |
|
forTenant($tenantId) |
Show documents linked to one client. |
|
inFolder($folderId) |
Show documents in a folder. |
|
media() |
Show image/video files. |
|
documentsOnly() |
Exclude media files. |
|
unfiled() |
Show documents without a folder. |
3.9 Folder Management
Folder operations are served by LandlordDocumentHubController@folders, @createFolder, @storeFolder, @updateFolder, @destroyFolder and @moveFolder. DocumentFolder supports nested parent-child relationships, colour, icon, description and document_count.
3.9.1 Create a Folder
25. Open Manage Folders.
26. Select Create Folder.
27. Enter a clear name and optional description.
28. Choose a parent folder when creating a nested folder.
29. Choose a colour and icon that support visual scanning but do not replace the folder name.
30. Save and confirm the folder appears under the intended parent.
3.9.2 Move a Document to a Folder
31. Open the document action menu or select the document.
32. Choose Move to Folder.
33. Select the destination folder.
34. Confirm the move.
35. Verify the folder’s document count and the document’s new location.
3.9.3 Move a Folder
Use moveFolder to restructure a folder and all its contents under a different parent. Review the destination carefully because the move changes how an entire branch of documents is found. Avoid deep nesting that requires many clicks; three to four levels are usually sufficient for daily operations.
3.9.4 Delete a Folder
Deleting a folder should move its documents to the unfiled area rather than deleting the documents. After deletion, immediately review Unfiled Documents and reassign important records. Do not treat folder deletion as document disposal.
3.10 Bulk Operations
LandlordDocumentHubController@bulkAction($request) supports operations across multiple selected records. Bulk actions are efficient but have greater risk, so use filters and review the selection count before confirmation.
|
Bulk action |
Use case |
Mandatory check before confirming |
|
Bulk delete |
Remove genuine duplicates, invalid uploads or approved disposable records. |
Confirm none are signed, current, legally retained, linked to fulfilled requests or required by another module. |
|
Bulk move to folder |
Classify a group of unfiled or newly migrated records. |
Confirm all selected records belong in the same folder. |
|
Bulk archive |
Close a completed lease, project, sale or historical batch. |
Confirm the business process is closed and records remain searchable. |
|
Bulk share |
Provide a document pack to one client. |
Confirm every document is appropriate for that recipient and has the correct download/acknowledgment rules. |
|
Bulk download ZIP |
Prepare a due-diligence, legal, audit or handover pack. |
Use an approved device and secure storage; check that no unrelated client records are included. |
|
Bulk assign |
Link multiple documents to one property, lease or client. |
Confirm the selection is not mixed across entities. |
How to give clients controlled access, request missing records, track acknowledgments and support document use on web and mobile.
4.1 Document Visibility Model
|
Visibility |
Who can access |
When to use |
|
landlord_only |
The owning landlord and authorised staff according to scope and policy. |
Internal contracts, staff notes, legal advice, finance records, draft documents and sensitive evidence. |
|
shared_with_tenant |
The landlord plus clients with an active share or allowed tenant visibility. |
Lease agreements, notices, invoices, receipts, policies and documents directly relevant to the client. |
|
public |
Authenticated users with the correct property/lease context, subject to implementation. |
Only documents intentionally approved for broad contextual access. |
|
Default safely |
4.2 Sharing a Document with a Client
Use the Share action on the document. LandlordDocumentHubController@share($request, $slug) creates a TenantDocumentShare record for each selected client and fires the DocumentShared notification.
4.2.1 Share Procedure
36. Open the correct document and confirm that it is the approved version.
37. Select Share.
38. Select the intended client or clients. Check names, property and lease context carefully.
39. Set can_download. Leave it disabled when the client only needs to read the document inside Leaseora.
40. Set requires_acknowledgment when the company needs evidence that the client has read the document.
41. Enter a clear share note explaining why the document is being sent and any required action.
42. Set expires_at when access should end automatically.
43. Confirm the property and lease context.
44. Submit the share and verify the notification was created.
45. Monitor view and acknowledgment status from the document or share record.
4.2.2 Share Record Explained
|
TenantDocumentShare field |
Meaning |
|
property_document_id |
The document being shared. |
|
tenant_id |
Recipient client/tenant. |
|
shared_by |
User who created the share. |
|
property_id / lease_id |
Business context for the share. |
|
share_note |
Message displayed or communicated to the client. |
|
can_download |
Whether download is permitted. |
|
requires_acknowledgment |
Whether the client must acknowledge reading. |
|
acknowledged_at |
Time acknowledgment was recorded. |
|
first_viewed_at |
First time the client opened the document. |
|
last_viewed_at |
Most recent view time. |
|
view_count |
Total number of recorded views. |
|
expires_at |
Access expiry date/time. |
|
is_active |
Whether the share is currently active. |
4.3 Acknowledgment Tracking
When requires_acknowledgment is enabled, the client can use TenantDocumentPortalController@acknowledge($shareId). The system records acknowledged_at and can also set first_viewed_at if this is the first interaction. The landlord can track whether a notice was opened and acknowledged.
|
Legal caution |
4.4 Revoking Client Access
46. Open the document or client sharing record.
47. Choose Revoke from Client/Tenant.
48. Confirm the correct recipient and reason.
49. The system disables tenant visibility and sets the relevant TenantDocumentShare to inactive.
50. Verify the document no longer appears in the client portal.
Revocation is appropriate when the wrong recipient was selected, a sharing period has ended, the document was superseded, the client relationship ended, or a security issue requires immediate restriction.
4.5 Assigning Documents to a Property or Client
Use assignToProperty to link an existing document to a property. Use assignToTenant to link it directly to a client. Assignment improves context and search, but assignment alone should not be treated as a full sharing decision. Use revokeFromTenant to remove access when the client should no longer see the file.
4.6 Creating a Document Request
A DocumentRequest is used when the company needs a client to upload a specific file, such as proof of income, ID, insurance certificate, signed form or mortgage evidence. LandlordDocumentHubController@createRequest and @storeRequest create the request and DocumentRequestedMail sends a secure token-based upload URL.
4.6.1 Request Procedure
51. Open Document Requests and choose Request a Document.
52. Select the client.
53. Select the related property and lease where applicable.
54. Choose the required document type and category.
55. Enter a precise title, such as “Current Proof of Income - Last 3 Months”.
56. Write clear instructions, including acceptable format, required pages, date range, quality standard and whether certification is required.
57. Set the source module so the response is classified correctly.
58. Set a realistic deadline.
59. Submit the request. The system generates a unique token and secure upload URL.
60. Confirm the request appears as Pending and the client has been notified.
4.6.2 Writing Good Instructions
|
Weak request |
Better request |
|
Upload your ID. |
Upload a clear colour copy of the photo page of your valid passport or both sides of your national ID. The full name, document number and expiry date must be readable. |
|
Send proof of income. |
Upload your three most recent payslips in PDF format. Each file must show your name, employer, pay period and net pay. Deadline: 5 August 2026. |
|
Insurance document needed. |
Upload the current insurance certificate for the leased premises, including policy number, insured party, coverage period and expiry date. |
4.7 Document Request Status Lifecycle
|
Status |
Meaning |
Available action |
|
pending |
The request has been sent and no qualifying document has been accepted as fulfilment. |
Follow up, review deadline or cancel. |
|
fulfilled |
The client uploaded a document through the secure request flow; fulfilled_at and fulfilled_document_id are populated. |
Review the file, classify it, run AI analysis if appropriate, approve or request correction through business process. |
|
cancelled |
The landlord cancelled the request and the client is no longer expected to submit it. |
Create a new request later if requirements change. |
4.8 Client Fulfils a Request
The client opens the unique upload URL from DocumentRequestedMail. The token is matched to the DocumentRequest. After upload, DocumentService stores the file, the request becomes fulfilled, fulfilled_at is set, fulfilled_document_id points to the new Document record, and DocumentFulfilledMail notifies the landlord.
|
Landlord review after fulfilment |
What to check |
|
Identity |
The upload came through the correct request and client context. |
|
Completeness |
All required pages, statements, signatures or supporting documents are present. |
|
Readability |
Text and images are clear enough for review or AI extraction. |
|
Validity |
The document is current, genuine-looking and within the required date range. |
|
Classification |
Type, category, property, lease, client and folder are correct. |
|
Expiry |
Expiry date is captured when applicable. |
|
Security |
Visibility remains appropriate; do not make the response public. |
4.9 Cancelling a Request
Use cancelRequest($requestId) when the file is no longer required, the request was sent to the wrong client, the requirement was fulfilled elsewhere, or the business process has ended. Record the reason in your internal notes where available. Do not cancel merely to hide overdue requests; cancellation should reflect a genuine change in requirement.
4.10 Managing the Request Queue
LandlordDocumentHubController@listRequests($request) provides a central list of requests. Filter by pending, fulfilled or cancelled; property; client; document type; or deadline. Use the queue as an operational worklist.
|
Daily review |
Weekly review |
Monthly review |
|
New fulfilments; requests due within the next few days; failed or unclear submissions. |
Overdue requests; repeated non-response; common errors; client support cases. |
Request volumes; average fulfilment time; most-requested document types; process improvements; stale cancelled records. |
4.11 Client Document Portal
Clients access /tenant/documents through TenantDocumentPortalController@index($request). The portal displays active TenantDocumentShare records organised by property and lease. The client sees only documents shared with them and only the actions allowed by each share.
|
Portal function |
Controller action |
Client experience |
|
All shared documents |
index |
Browse active shared records. |
|
Document detail |
show($shareId) |
View one document and its context. |
|
By lease |
byLease($leaseId) |
See all accessible documents for a lease. |
|
By property |
byProperty($propertyId) |
See all accessible documents for a property. |
|
Search |
search($request) |
Search accessible documents by title, type or tag. |
|
Statistics |
getStats() |
See totals, pending acknowledgments and recent activity. |
|
Recent |
getRecent($request) |
See recently shared or updated documents. |
|
Download |
download($shareId) |
Download only when can_download is true. |
|
Acknowledge |
acknowledge($shareId) |
Confirm reading and populate acknowledgment timestamp. |
|
View version |
viewVersion($shareId, $versionId) |
Open a permitted historical version. |
|
Download version |
downloadVersion($shareId, $versionId) |
Download a permitted version when allowed. |
4.12 Mobile Document Access
On the Leaseora client mobile app, clients can view shared documents, download when permitted, acknowledge required documents and upload files requested by the landlord. Tax-specific mobile document access is supported through API\Mobile\TaxDocumentController, while broader mobile workflows use the corresponding document portal and request APIs in the deployed application.
· Ask clients to use a stable internet connection for large files.
· Photograph documents in good lighting with all corners visible.
· Use PDF when multiple pages belong together.
· Do not upload passwords, PINs or unrelated personal records.
· After upload, confirm the request shows as fulfilled or the document appears in the expected portal area.
How to analyse documents, extract fields, interpret confidence, reanalyse files, export summaries and generate lease documents responsibly.
5.1 What AI Document Understanding Does
AIDocumentUnderstandingController allows an authorised landlord user to upload a PDF, Word document or image for text extraction and analysis. The implementation uses the OpenAI Laravel facade, document parsers and OCR where required. Results are stored in DocumentAnalysis.
|
AI is an assistant, not the final approver |
5.2 Starting an AI Analysis
61. Open Document Understanding (AI) or the relevant AI analysis action from a document.
62. Select or upload the document to analyse.
63. Choose the document type.
64. Enter an analysis name that identifies the business purpose.
65. Enter a clear query or prompt, such as “Extract all parties, dates, financial obligations, renewal clauses, termination rights and penalties”.
66. Start the analysis. The DocumentAnalysis status begins as processing.
67. Wait for completed or failed status.
68. Open the result and compare extracted fields against the original file.
69. Correct the business record or rerun the analysis when output is incomplete or uncertain.
70. Export or email the summary only after review.
5.3 DocumentAnalysis Record
|
Field |
Purpose |
|
name |
User-friendly analysis label. |
|
document_type |
Type of document analysed. |
|
document_path / document_url |
Stored path and accessible URL of the analysed file. |
|
query |
Prompt or analytical question sent to AI. |
|
analysis_result |
Full analysis response. |
|
extracted_fields |
Structured key-value data such as names, dates, amounts and clauses. |
|
confidence_score |
Overall extraction confidence from 0 to 100. |
|
processing_time |
Time taken to complete analysis. |
|
file_size |
Size of the analysed file. |
|
page_count |
Number of pages analysed. |
|
status |
processing, completed or failed. |
|
error_message |
Failure details when analysis does not complete. |
|
analyzed_by |
User who triggered the analysis. |
|
analyzed_at |
Analysis timestamp. |
5.4 Typical Extraction by Document Type
|
Document type |
AI may extract |
Human verification priority |
|
Lease agreement |
Landlord, client, property, rent, deposit, start/end dates, break clauses, obligations and termination terms. |
Names, property, money, dates, signatures, renewal and termination clauses. |
|
Insurance certificate |
Policy number, insurer, insured party, coverage, effective date and expiry. |
Policy status, exclusions, insured property and expiry. |
|
Mortgage document |
Loan amount, interest rate, term, instalment, lender and security details. |
Interest, repayment, fees, default terms, collateral and legal charge. |
|
ID document |
Name, date of birth, document number and expiry. |
Identity match, authenticity, expiry and data-minimisation requirements. |
|
Invoice |
Invoice number, vendor, amount, date, due date and line items. |
Currency, total, tax, bank details, duplication and approval. |
|
Legal contract |
Parties, key dates, obligations, penalties, representations and termination. |
Every clause affecting liability, rights, payment, dispute and termination. |
5.5 Recommended Confidence Review Rules
|
Confidence |
Recommended handling |
|
90-100 |
High confidence, but still verify all critical names, dates, amounts, legal clauses, signatures and expiry information. |
|
70-89 |
Perform a full side-by-side review; correct missing or ambiguous fields before use. |
|
Below 70 |
Treat as unreliable. Improve scan quality, upload a better source, simplify the prompt or complete manual extraction. |
|
No score / failed |
Do not use the output. Review error_message, file format, file size, OCR quality and service availability. |
|
Recommended rule |
5.6 Writing Better Analysis Prompts
|
Purpose |
Example prompt |
|
General lease review |
Summarise the agreement and extract all parties, property details, rent, deposit, dates, renewal terms, termination rights, notice periods, penalties and unusual obligations. Quote the relevant section heading for each item. |
|
Insurance expiry check |
Extract insurer, insured party, policy number, insured property, coverage period, expiry date, coverage amount, exclusions and renewal requirements. Flag missing or inconsistent information. |
|
Invoice validation |
Extract supplier, invoice number, issue date, due date, currency, subtotal, tax, total, payment details and line items. Flag duplicate numbers, arithmetic inconsistencies or missing tax information. |
|
Mortgage risk review |
Extract principal, interest rate, repayment schedule, term, security, default triggers, fees, early repayment terms and lender rights. Summarise material risks for manual legal review. |
5.7 Reanalysing a Document
Use AIDocumentUnderstandingController@reanalyzeDocument($analysisId) when the first result is incomplete, the prompt needs improvement, a clearer file is available, or Leaseora introduces improved analysis capabilities. Reanalysis should not silently overwrite a previously approved business decision; document why the result was rerun and which output is treated as authoritative.
5.8 Exporting an AI Summary
AIDocumentExportSummary can send an AI-generated analysis summary to the landlord by email. Before sending, remove or restrict confidential personal data not required by the recipient, confirm the recipient, and label the summary as AI-assisted and human-reviewed where appropriate.
5.9 AI-Generated Lease Documents
LeaseDocumentService and AILeaseDocument support the creation of lease agreements, addenda, renewal notices, termination notices and related records. AutoGenerateLeaseDocuments can generate standard documents when a lease is activated, and LeaseDocumentGenerated is fired when generation completes.
5.9.1 Generation Workflow
71. Create or activate the lease with complete property, client, rent, deposit, payment, duration and company information.
72. Choose the required document type or allow the activation job to generate standard records.
73. Set generation options and jurisdiction-specific template where supported.
74. LeaseDocumentService@generateLeaseAgreementPdf creates the professional PDF.
75. The system stores prompt and AI response in AILeaseDocument, together with tenant_id, property_id, lease_id, status and file path.
76. LeaseDocumentService@triggerAIDocumentAnalysis may populate extracted data, summary and risk score.
77. A legal or authorised leasing officer reviews the full document.
78. Correct errors through an approved revision or template process.
79. Finalise and route for e-signature where required.
80. After signing, store the signed version, update is_signed/signed_at and consider blockchain registration if the company policy permits.
5.9.2 AILeaseDocument Fields
|
Field |
Purpose |
|
lease_id |
Lease for which the document is generated. |
|
generated_by |
User who initiated generation. |
|
document_type |
lease_agreement, addendum, renewal_notice, termination_notice or another supported type. |
|
ai_prompt_used |
Prompt used to generate content. |
|
ai_response |
Raw generated content. |
|
status |
draft, finalized or signed. |
|
document_path / file_path |
Stored PDF or generated file path. |
|
tenant_id / property_id |
Client and property context. |
|
is_signed / signed_at |
Signature state and timestamp. |
5.9.3 LeaseDocumentService Capabilities
|
Method |
Operational use |
|
generateLeaseAgreementPdf($lease, $options) |
Create a professional lease agreement PDF. |
|
generateInvoicePdf($lease, $invoiceData) |
Create a lease-related invoice PDF. |
|
uploadDocumentWithAI(...) |
Upload a lease document and automatically trigger AI analysis. |
|
triggerAIDocumentAnalysis($document, $lease) |
Populate extracted data, AI summary and risk score. |
|
getDocumentTypes() |
Return supported lease document types. |
|
searchDocuments($leaseId, $keyword) |
Search within lease documents. |
|
getLatestVersion($leaseId, $documentType) |
Retrieve the most recent version of a type. |
|
getDocumentVersions($leaseId, $documentType) |
Review the full version history. |
|
archiveOldVersions($leaseId, $documentType, $keepVersions = 5) |
Archive older versions while retaining the latest N. |
|
getStorageUsage($leaseId) |
Measure storage used by a lease’s documents. |
|
cleanupOrphanedFiles($leaseId) |
Remove files that no longer have valid database links. |
5.10 Other AI Document Features Connected to the Hub
|
Feature |
System action |
Purpose |
|
WeBuild name suggestion |
CorporateLandlordWeBuildController@generateDocumentNameSuggestion |
Suggests consistent document names. |
|
WeBuild contract generation |
CorporateLandlordWeBuildController@generateContract |
Generates booking or construction contract content. |
|
WeBuild analysis |
CorporateLandlordWeBuildController@aiAnalyzeDocument |
Analyses uploaded WeBuild contracts. |
|
Tax auto-fill |
TaxController@aiAutoFillTax |
Extracts and fills tax document fields. |
|
Lease risk scoring |
LeaseDocument.ai_risk_score |
Highlights potentially risky lease content for review. |
How to preserve document history, roll back changes, verify authenticity and use blockchain appropriately.
6.1 Why Versioning Matters
PropertyDocumentVersion records each update to a property-level document. Versioning prevents a new upload from silently erasing the history of title documents, permits, floor plans, certificates, legal records or other controlled files.
|
Version capability |
Meaning |
|
getFileUrlAttribute |
Access the file stored for a specific version. |
|
getHumanFileSizeAttribute |
Show the version size in a readable format. |
|
getHumanSizeDifferenceAttribute |
Show how much the file size changed compared with the previous version. |
|
getSizeChangePercentageAttribute |
Show the percentage size change. |
|
getChangesFromPrevious |
Describe metadata or file changes between versions. |
|
canRollback |
Indicate whether restoration is permitted. |
|
rollback(int $userId) |
Restore the property document to the selected version and record the acting user. |
|
scopeCurrent |
Filter to the current active version. |
|
scopeChangeType |
Filter by the kind of change. |
|
scopeRollbackable |
Show versions eligible for rollback. |
6.2 Creating a New Version
81. Open the current property document.
82. Confirm whether the change is a true replacement, corrected version or new signed version.
83. Upload the new file through the version-aware property document workflow.
84. Describe the change, such as “renewed certificate”, “corrected property address”, “signed by both parties” or “updated floor plan”.
85. Verify that the old version remains in history and the new version is marked current.
86. Review existing client shares. Decide whether clients should continue seeing the previous version or receive the new one.
87. For critical final versions, perform legal review and blockchain registration according to policy.
6.3 Rolling Back
Rollback restores a previous version to current status. Use it when a wrong, corrupted, unauthorised or incomplete version was uploaded. Before rollback, assess whether any client has viewed, downloaded, acknowledged or signed the newer version, and whether a legal correction notice is required.
|
Rollback does not erase history |
6.4 Client Access to Versions
TenantDocumentPortalController@viewVersion($shareId, $versionId) and @downloadVersion($shareId, $versionId) allow authorised clients to access a specific shared version. Share only versions that the client is entitled to see and clearly identify which version is current.
6.5 Blockchain Document Verification
BlockchainDocumentService can register a cryptographic hash of a high-value document. The blockchain record can later confirm whether the document content matches the version originally registered. The service may return blockchain_hash, blockchain_tx_hash and blockchain_block_number.
6.5.1 Eligible Documents
· Final signed lease agreements.
· Mortgage contracts and legal charges.
· WeBuild, property development and land sale legal documents.
· Insurance policies and certificates.
· Compliance certificates and approved regulatory records.
· Other final documents approved by the company’s legal or compliance policy.
6.5.2 Registration Procedure
88. Confirm the document is final, complete and approved.
89. Confirm signatures and dates where required.
90. Confirm the file is the correct current version and is not a draft.
91. Select Register on Blockchain or use the module-specific verification action.
92. BlockchainDocumentService@registerDocument($documentData) generates and records the document hash and transaction details.
93. Store the returned blockchain information with the document record.
94. Verify that the blockchain badge or verification status appears.
95. Restrict further replacement of the registered file to the approved versioning process.
6.5.3 Verification Results
|
Result |
Meaning |
Required response |
|
verified |
The calculated document hash matches the registered blockchain record. |
Use the verified record, subject to normal legal and business review. |
|
tampered |
The current content does not match the registered hash. |
Stop use, restrict access, preserve evidence, investigate version history and notify legal/security. |
|
not_found |
No matching blockchain record exists. |
Confirm the correct file/hash, network/environment and registration status. |
6.5.4 Other Blockchain Service Capabilities
|
Method |
Purpose |
|
verifyDocument($documentHash, $documentContent = null) |
Compare a document with its blockchain record. |
|
createAuditTrail($transactionData) |
Create an on-chain audit trail entry for document access or activity. |
|
getAuditTrail($transactionId) |
Retrieve the blockchain audit trail. |
|
createMortgageSmartContract($mortgageData) |
Create a mortgage agreement smart contract. |
|
executePayment($contractAddress, $paymentData) |
Execute a payment through a smart contract where configured. |
|
What blockchain does not do |
6.6 Legal and Compliance Events
ComplianceDocumentUploaded fires when a compliance document is uploaded. PropertyDocumentUpdated and MortgageDocumentUpdated fire when corresponding module documents change. These events support downstream notifications, logging, review or automation according to the deployed listeners.
How Document Hub connects to property, lease, mortgage, development, CRM, land, WeBuild, legal and compliance operations.
7.1 Property Documents
PropertyDocumentController manages records attached to a specific property, including title deeds, certificates, permits, floor plans, surveys and inspection evidence. PropertyDocumentVersion provides history and rollback. PropertyDocumentUpdated can notify or trigger connected processes.
|
Recommended property workflow |
Action |
|
Property onboarding |
Upload title, survey, ownership, planning, insurance and inspection records; link every file to the property. |
|
Due diligence |
Create a controlled folder, restrict access and use bulk download only for approved reviewers. |
|
Certificate renewal |
Set expiry_date, monitor Expiring Soon, request replacement and archive the old version. |
|
Floor plan update |
Create a new version; describe what changed; confirm which version is current. |
|
Property sale |
Prepare a complete legal and due-diligence pack; include only approved client/buyer records. |
7.2 Lease Documents
Lease documents may be uploaded manually, generated by AI, automatically created on lease activation, searched, versioned, analysed and shared with the client. Use the lease link and document type consistently so the latest version can be retrieved reliably.
· Lease agreement and signed final version.
· Addenda and amendments.
· Renewal and rent escalation notices.
· Termination, breach or handover notices.
· Invoices, payment schedules and receipts.
· Inspection, inventory and move-in/move-out records.
· Correspondence or acknowledgment records where appropriate.
7.3 Mortgage Application Documents
DocumentManagementController and DocumentManagementService handle mortgage application document workflows. The service can define upload requirements, upload multiple documents, retrieve records per tenant/application, enforce secure download with user/access token, delete documents, calculate statistics and bulk-delete authorised records.
|
Capability |
Use |
|
getUploadRequirements |
Display the checklist of documents required for a mortgage application. |
|
uploadDocuments |
Upload multiple application files and associate them correctly. |
|
getDocuments |
Retrieve documents for a client and application. |
|
downloadDocument |
Securely download using user and access token checks. |
|
getDocumentStatistics |
Show uploaded, pending, approved and rejected counts. |
|
bulkDeleteDocuments |
Clean up authorised invalid or duplicate records. |
7.4 Mortgage Documents and Legal Records
MortgageDocumentController manages mortgage records and can bulk-delete, export files as ZIP, export a document list as PDF or CSV, and verify documents on blockchain. MortgageLegalDocumentController manages legal contracts and charges connected to mortgage activity. MortgageDocumentUpdated can trigger connected processing.
7.5 Property Development Documents
PropertyDevelopmentDocumentController manages project documents. PropertyDevelopmentDocumentTemplate supports reusable document templates, while PropertyDevelopmentLegalDocument supports legal contracts and e-signature workflows. Team members may receive upload and deletion notifications.
|
Project phase |
Typical documents |
|
Feasibility and acquisition |
Site assessment, valuation, market study, title review, acquisition contract. |
|
Design and planning |
Architectural drawings, BIM files, permits, planning approvals, specifications. |
|
Procurement |
Tender documents, bids, contractor due diligence, award letters, contracts. |
|
Construction |
BOQs, work programmes, progress reports, change orders, certificates, site photographs. |
|
Finance |
Budgets, drawdown requests, lender documents, invoices, payment evidence. |
|
Sales and pre-leasing |
Marketing approvals, reservation agreements, buyer/client files, sales contracts. |
|
Completion and handover |
Completion certificates, warranties, manuals, as-built drawings, handover records. |
7.6 CRM Lead Documents
CrmLeadDocumentsController stores and removes documents attached to leads. Typical records include proof of funds, identity documents, financial statements, letters of intent and due-diligence files. Access should be limited because lead documents may contain sensitive personal and financial data.
7.7 WeBuild and Development Legal Documents
LegalDocument and PropertyDevelopmentLegalDocument support AI-assisted drafting, e-signature, download, email distribution and blockchain verification. Treat generated drafts as unapproved until reviewed by authorised legal personnel.
7.8 Land Sale Documents
LandDocumentService supports land sale agreements, payment schedules and receipts. Store survey plans, allocation records, title evidence, application records, instalment schedules and transfer documents under the correct parcel and transaction context.
7.9 Compliance and Verification Documents
ComplianceDocument and verification-related records should be classified by jurisdiction, regulator, certificate type, property/company context and expiry. Use the Expiring Soon view, strict visibility, appropriate retention and blockchain registration for approved final certificates.
7.10 Agency Documents and Workflow History
AgencyDocument may use DocumentWorkflowHistory to record actions, status transitions and metadata. This is useful when a document passes through submission, review, correction, approval, signing, issue and archive stages. Do not skip workflow history by replacing files outside the controlled process.
7.11 Tax Documents
Tax documents may be uploaded, accessed on mobile through the tax document controller, and assisted by AI auto-fill. Tax records require strict access control, accuracy review and retention according to the company’s jurisdiction-specific obligations.
How Leaseora isolates data and how the company should prevent unauthorised access, accidental disclosure and weak document governance.
8.1 Two-Layer Access Control
DocumentScope applies automatically to Document queries and limits records to the correct business context. DocumentPolicy then checks whether the authenticated user may perform a specific action on a specific document.
|
Control |
What it protects against |
Key checks |
|
DocumentScope |
Cross-company or cross-user exposure in normal queries. |
Owning landlord, authenticated client, staff assignment and permitted context. |
|
DocumentPolicy |
Unauthorised actions on an individual document. |
owner_id, tenant_can_view, tenant_can_download, is_private, visibility and action permission. |
8.2 DocumentPolicy Actions
|
Policy method |
Question answered |
|
viewAny(User $user) |
May this user view the document library? |
|
view(User $user, Document $document) |
May this user open this document? |
|
create(User $user) |
May this user upload a document? |
|
update(User $user, Document $document) |
May this user edit the document or metadata? |
|
delete(User $user, Document $document) |
May this user delete the document? |
|
download(User $user, Document $document) |
May this user download the file? |
|
share(User $user, Document $document) |
May this user share the document? |
8.3 Privacy Rules for Real Estate Companies
· Collect and store only documents needed for a legitimate property, lease, mortgage, compliance or client process.
· Do not use public visibility for identity, financial, legal, mortgage, tax or confidential client documents.
· Limit staff access by role, assigned property, department and business need.
· Disable downloads when in-platform viewing is sufficient.
· Use share expiry and revoke access when the business purpose ends.
· Avoid including sensitive personal data in share notes, email subjects or unnecessary AI prompts.
· Review exports and ZIP files before release; bulk export can unintentionally include unrelated records.
· Use approved devices, secure networks and company storage for downloaded copies.
· Remove obsolete access when staff leave or change roles.
· Investigate unexpected view counts, failed verification or access to the wrong document.
8.4 Handling Sensitive Document Types
|
Sensitive type |
Minimum controls |
|
Identity / KYC |
Private visibility, restricted role, no public share, limited retention, encrypted/secure access and controlled download. |
|
Proof of income / bank records |
Finance or screening team only; do not share broadly; verify deletion/retention requirements. |
|
Legal advice / dispute documents |
Legal team only; maintain privilege/confidentiality where applicable. |
|
Mortgage documents |
Mortgage team and authorised legal/finance users; secure token downloads and strict client context. |
|
Tax records |
Finance/tax roles only; jurisdiction-specific retention and access. |
|
Signed contracts |
Version control, final status, restricted replacement, e-signature evidence and optional blockchain registration. |
|
Security incident evidence |
Security/legal access only; preserve integrity and audit trail. |
8.5 Staff Offboarding and Role Changes
96. Disable or remove the staff user’s access promptly.
97. Remove document, folder, sharing, deletion, AI and blockchain permissions.
98. Reassign document ownership, pending requests and folder responsibilities.
99. Review recent downloads, shares, deletions and bulk exports where audit data is available.
100. Rotate access credentials or tokens where necessary.
101. Confirm company documents remain within Leaseora and approved storage.
8.6 Incident Response for Wrong Sharing
102. Immediately revoke the TenantDocumentShare or disable access.
103. Confirm whether the document was viewed or downloaded using first_viewed_at, last_viewed_at and view_count.
104. Preserve the document, share record and audit evidence; do not delete the incident history prematurely.
105. Notify the company security, legal or data-protection contact.
106. Assess the sensitivity, recipient, download status and legal reporting obligations.
107. Correct the sharing process and staff permissions.
108. Send an appropriate recipient instruction or correction through the approved incident process.
8.7 Expiry Monitoring
Use scopeExpiringSoon(30) as an operational queue. A company should assign responsibility for each expiry category. Expired documents should not simply disappear; they should be renewed, replaced, archived, escalated or marked with an approved exception.
|
Expiry category |
Owner |
Typical action |
|
Property insurance |
Property/insurance manager |
Request renewal, upload new version, verify coverage, archive previous certificate. |
|
Client ID |
Client operations/compliance |
Request updated ID where legally and operationally required. |
|
Safety/compliance certificate |
Compliance/property manager |
Schedule inspection or renewal; escalate expired status. |
|
Planning or temporary permit |
Development/legal |
Confirm extension, replacement or project impact. |
|
Professional licence |
Compliance/vendor management |
Suspend approval if required and request updated evidence. |
8.8 Retention and Disposal
Leaseora provides status, archive, version and delete capabilities, but the company must define its own retention schedule based on applicable law, contracts, limitation periods, regulatory requirements, tax obligations, insurance requirements and litigation holds. Consult qualified legal and compliance advisers for each operating country.
|
Lifecycle decision |
Questions to answer |
|
Keep active |
Is the document current and needed for an open property, lease, mortgage, project or compliance process? |
|
Archive |
Is the document no longer current but still required for history, audit, legal defence, tax, warranty or regulatory evidence? |
|
Replace/version |
Has the document changed while the old version must remain traceable? |
|
Delete |
Has retention expired, no hold applies, no module depends on it, and an authorised disposal decision been made? |
How SuperAdmin and technical teams consolidate legacy documents, organise user storage and maintain the supporting services.
9.1 CDMS Consolidation
MigrateAllDocumentsToCDMS (console command cdms:migrate-all) consolidates module-specific document records into the central Document model while preserving source_module and polymorphic links. It can migrate ComplianceDocument, LeaseDocument, LegalDocument, MortgageDocument, PropertyDevelopmentDocument, PropertyDocument and other attached files.
|
Command mode |
Purpose |
|
cdms:migrate-all --dry-run |
Preview migration counts and potential scope without writing records. |
|
cdms:migrate-all |
Create central CDMS records according to migration logic. |
|
MigrateDocumentsToUserFolders |
Move or organise physical files into the correct user-scoped storage paths. |
9.2 Migration Operating Procedure
109. Back up the database and document storage.
110. Run the dry-run mode and review counts by source model/module.
111. Identify duplicates, orphaned records, missing owners, broken paths and invalid property/lease/client links.
112. Confirm storage capacity and user directory mapping.
113. Run the migration in a controlled environment or approved maintenance window.
114. Validate sample records from every source model.
115. Compare source counts, central Document counts and physical file counts.
116. Run user-folder migration where required.
117. Test landlord, staff and client access to ensure DocumentScope and policies remain correct.
118. Record migration date, operator, version and exceptions.
9.3 DocumentServiceProvider
DocumentServiceProvider registers document-related services and bindings across Leaseora, including DocumentService and DocumentManagementService. Technical teams should ensure the provider is loaded, storage disks are configured, queues and mail are operational, and service dependencies are available in each deployment environment.
9.4 SuperAdmin AI Lease Oversight
AILeaseDocument2Controller and AILeaseDocumentExportController manage AILeaseDocument2 records and exports at SuperAdmin level. AILeaseDocument2 contains tenant_id, property_id, lease_id, generated_by, document_type, ai_prompt_used, ai_response, status, file_path, is_signed and signed_at.
9.5 Operational Monitoring
|
Area |
Monitor |
|
Storage |
Total usage, rapid growth, orphaned files, failed writes and user-path correctness. |
|
Preview/download |
Missing files, MIME mismatch, broken URLs, policy denials and performance. |
|
Requests |
Mail delivery, token validity, upload failures and unfulfilled request backlog. |
|
AI |
Processing time, failed status, error_message, extraction quality and usage limits. |
|
Blockchain |
Registration failures, network status, transaction confirmation and verification mismatch. |
|
Queues/jobs |
AutoGenerateLeaseDocuments, notifications, mail and event listeners. |
|
Migration |
Unmigrated legacy records, duplicates and invalid polymorphic links. |
|
Security |
Unexpected access, bulk downloads, deletions, share errors and scope leakage tests. |
Ready-to-use workflows for common real estate operations, quality assurance and issue resolution.
10.1 SOP - New Property Onboarding
119. Create or confirm the property record in Leaseora.
120. Create the approved property folder structure.
121. Upload ownership/title, survey, planning, permits, insurance, valuation, floor plans, inspections and utility evidence.
122. Link every document to the property and correct source module.
123. Set expiry dates for insurance, permits and certificates.
124. Run AI analysis on lengthy reports or legal documents where useful and verify results.
125. Register approved final legal documents on blockchain when required by policy.
126. Restrict access to legal, identity and finance records.
127. Complete the upload quality checklist and assign a document owner.
10.2 SOP - New Lease and Client Onboarding
128. Confirm the client and lease records are complete.
129. Request missing ID, proof of income, references, insurance or compliance files through Document Requests.
130. Review fulfilled documents and correct metadata.
131. Generate or upload the lease agreement.
132. Run AI extraction and risk review, then complete legal review.
133. Finalise and obtain e-signatures.
134. Store the signed version as current; archive drafts according to policy.
135. Share the signed lease with the client, permit download if appropriate and require acknowledgment if company policy requires it.
136. Register the final signed lease on blockchain when approved.
137. Confirm the client portal shows the correct property/lease documents only.
10.3 SOP - Insurance Renewal
138. Review Expiring Soon documents.
139. Open the insurance certificate and confirm property, insurer, policy number and expiry.
140. Create a request or task for renewal evidence.
141. Upload the new policy/certificate as a new version or replacement according to the module workflow.
142. Use AI extraction to capture policy details and verify them manually.
143. Update expiry_date.
144. Archive the previous certificate but retain it according to policy.
145. Verify any required client, lender or regulator sharing.
10.4 SOP - Mortgage Application Document Pack
146. Load the application’s required document checklist from getUploadRequirements.
147. Request missing documents from the client.
148. Track uploaded, pending, approved and rejected counts through document statistics.
149. Review identity, income, property, valuation and legal records.
150. Use secure download only for approved reviewers and lender workflows.
151. Run AI extraction on mortgage terms and verify financial/legal fields.
152. Export ZIP, PDF or CSV only after checking the selected records.
153. Blockchain-verify approved final mortgage legal documents where configured.
10.5 SOP - Property Development Project
154. Create the project folder hierarchy by phase.
155. Use document templates for recurring approvals, reports and contracts.
156. Assign project team permissions.
157. Upload plans, permits, BOQs, contracts, progress reports, invoices and site evidence against the correct project/phase.
158. Use upload/deletion notifications to keep team members informed.
159. Version controlled plans and legal records instead of overwriting.
160. Use AI for document naming, contract analysis and summaries, with human review.
161. Register final legal contracts or certificates on blockchain where approved.
162. Archive the project pack after completion and handover.
10.6 SOP - Client Notice Requiring Acknowledgment
163. Confirm the notice is final and legally approved.
164. Upload or generate it under the correct lease/client context.
165. Share with requires_acknowledgment enabled.
166. Choose whether download is allowed.
167. Set a share expiry only if access should end.
168. Write a clear share note explaining the required action and deadline.
169. Monitor first_viewed_at, last_viewed_at, view_count and acknowledged_at.
170. Use the legally required service method in addition to Leaseora acknowledgment where applicable.
10.7 SOP - Closing a Lease or Client Relationship
171. Confirm all final notices, move-out inspection, settlement, receipts and handover records are uploaded.
172. Resolve pending document requests.
173. Review active client shares and revoke those no longer required.
174. Preserve signed lease, notices, financial records and dispute evidence according to retention policy.
175. Archive the lease document folder and mark documents appropriately.
176. Do not delete client records solely because the relationship ended.
177. Restrict ongoing access to staff with a legitimate post-termination need.
10.8 Daily, Weekly and Monthly Administration
|
Frequency |
Tasks |
|
Daily |
Review fulfilled requests, failed uploads, new shares, urgent expiry alerts, AI failures and client support issues. |
|
Weekly |
Review overdue requests, unfiled documents, duplicate uploads, pending acknowledgments, recently deleted records and access exceptions. |
|
Monthly |
Review storage usage, folder quality, expiry trends, permissions, bulk exports, blockchain verification issues, migration backlog and staff training needs. |
|
Quarterly |
Audit roles and permissions, test cross-company isolation, review retention/disposal, evaluate AI accuracy and update document standards. |
10.9 Troubleshooting Guide
|
Issue |
Likely cause |
Resolution |
|
Document Hub is not visible |
Module/menu disabled, plan limitation or missing staff permission. |
Ask the account owner to review menu visibility, subscription and permissions. |
|
Upload fails |
Unsupported type, file too large, network interruption, storage issue or validation error. |
Check format/size, rename file, retry stable network, review error and contact administrator. |
|
Preview does not open |
Unsupported preview type, MIME mismatch, missing file or browser issue. |
Download if authorised, verify file type/path, try another browser and report missing file. |
|
Download denied |
DocumentPolicy or can_download restriction. |
Confirm your role and business need; request access rather than bypassing controls. |
|
Client cannot see shared document |
Share inactive/expired, wrong client, tenant_can_view false or policy/context mismatch. |
Review TenantDocumentShare, recipient, is_active, expires_at and property/lease context. |
|
Client can view but not download |
can_download is false. |
Enable only if the business purpose requires a local copy. |
|
Acknowledgment not recorded |
Client has not selected acknowledge, wrong share, or request failed. |
Check view history, guide the client through the portal, and confirm the correct share. |
|
Request email not received |
Incorrect email, mail delivery issue, spam filtering or notification failure. |
Confirm client email, resend through approved process, check mail logs and request record. |
|
Secure request link fails |
Token invalid/expired, request cancelled/fulfilled or route issue. |
Confirm request status and token; create a new request when appropriate. |
|
Request remains pending after upload |
Upload did not use token flow or update failed. |
Check whether a Document was created and manually reconcile only through authorised support. |
|
Wrong folder count |
Move/delete operation did not update count or cache is stale. |
Refresh, verify actual contents and ask administrator to recalculate if required. |
|
AI analysis fails |
Unreadable scan, unsupported file, service error, token/limit issue or prompt problem. |
Improve scan, reduce file, retry, review error_message and use manual review. |
|
AI extracted wrong amount/date |
OCR or contextual ambiguity. |
Correct manually, improve prompt or source file, then reanalyse and document review. |
|
Blockchain verification says tampered |
File content differs from registered version. |
Stop use, preserve evidence, compare versions and escalate to legal/security. |
|
Blockchain record not found |
Wrong file/hash, registration incomplete, wrong network/environment. |
Check transaction details and registration status. |
|
Old version was shared |
Incorrect current version or legacy share. |
Revoke, share correct version, assess client impact and preserve audit trail. |
|
Bulk action affected wrong records |
Selection/filter error. |
Stop further changes, use rollback/archive recovery where possible, preserve logs and escalate. |
|
Document appears under wrong company |
Potential scope or ownership defect. |
Do not access further; report immediately as a security incident. |
10.10 Quality Assurance Checklist
|
Area |
Questions |
|
Identity |
Is this the correct document, client, property, lease, project and company? |
|
Completeness |
Are all pages, attachments, signatures and schedules present? |
|
Readability |
Can a human and, where used, AI read the content accurately? |
|
Metadata |
Are title, type, category, source module, tags and expiry correct? |
|
Storage |
Is the file in the correct user path and folder? |
|
Visibility |
Is access limited to the intended users? |
|
Sharing |
Are recipient, download, acknowledgment and expiry settings correct? |
|
Version |
Is this the current, draft, final or signed version? |
|
AI |
Were critical extracted fields manually verified? |
|
Blockchain |
Was only the approved final file registered and successfully verified? |
|
Retention |
Should the document be active, archived, replaced or deleted? |
Controllers, models, services, fields, events, notifications, mail classes, jobs and console commands supporting the Document Hub.
Appendix A - Core Backend Systems Reference
|
System |
Purpose |
|
Document |
Core CDMS record: metadata, owner, module links, folder, visibility, client rights, expiry, status and file information. |
|
DocumentFolder |
Hierarchical folder structure with parent_id, colour, icon and document_count. |
|
DocumentRequest |
Token-based client document request with deadline and fulfilment tracking. |
|
DocumentAnalysis |
AI analysis result, extracted fields, confidence, processing status and errors. |
|
DocumentWorkflowHistory |
Action and status history for workflow-driven agency documents. |
|
TenantDocumentShare |
Recipient-specific share permissions, acknowledgment, view tracking and expiry. |
|
PropertyDocumentVersion |
Version history, comparison and rollback for property documents. |
|
AILeaseDocument / AILeaseDocument2 |
AI-generated lease documents, prompts, responses, status and signing information. |
|
LeaseDocument |
Lease-specific file with AI extracted data, summary, risk score, signature, version and access permissions. |
|
PropertyDocument |
Property-level record with versioning. |
|
MortgageDocument |
Mortgage-related record, export and blockchain verification. |
|
MortgageApplicationDocument |
Documents submitted with mortgage applications. |
|
PropertyDevelopmentDocument |
Development project document. |
|
PropertyDevelopmentDocumentTemplate |
Reusable project document template. |
|
PropertyDevelopmentLegalDocument |
Development legal contract with e-signature support. |
|
LegalDocument |
General legal document. |
|
ComplianceDocument |
Compliance-related document. |
|
CrmLeadDocument |
CRM lead attachment. |
|
AgencyDocument |
Agency document linked to workflow history. |
|
DocumentScope |
Global data isolation scope. |
|
DocumentPolicy |
Authorisation policy for list, view, create, update, delete, download and share. |
Appendix B - Controller Reference
|
Controller / action |
Responsibility |
|
LandlordDocumentHubController@index |
Dashboard, aggregation, filtering and overview. |
|
@create / @store |
Upload form and persistence. |
|
@show / @edit / @update / @destroy |
Document detail, metadata editing and deletion. |
|
@download / @preview |
Protected file access. |
|
@folders / @createFolder / @storeFolder / @updateFolder / @destroyFolder |
Folder management. |
|
@moveToFolder / @moveFolder |
Document and folder restructuring. |
|
@share |
Create client share and notification. |
|
@assignToProperty / @assignToTenant / @revokeFromTenant |
Business linking and access revocation. |
|
@createRequest / @storeRequest / @cancelRequest / @listRequests |
Document request lifecycle. |
|
@bulkAction |
Bulk delete, move, archive, share, download and assignment. |
|
AIDocumentUnderstandingController@index / create / store / show / destroy |
AI analysis CRUD. |
|
AIDocumentUnderstandingController@reanalyzeDocument |
Rerun AI analysis. |
|
AILeaseDocumentController / AILeaseDocument2Controller |
SuperAdmin management of AI lease documents. |
|
AILeaseDocumentExportController |
AI lease document export. |
|
DocumentManagementController |
Mortgage application document CRUD, download, preview and share. |
|
TenantDocumentPortalController |
Client portal list, detail, lease/property filters, search, stats, recent, download and acknowledgment. |
|
TenantDocumentPortalController@viewVersion / downloadVersion |
Client access to specific versions. |
|
PropertyDocumentController |
Property-level document management and versioning. |
|
MortgageDocumentController |
Mortgage document management, bulk deletion, export and blockchain verification. |
|
MortgageLegalDocumentController |
Mortgage legal documents. |
|
PropertyDevelopmentDocumentController |
Development project document management. |
|
CrmLeadDocumentsController |
CRM lead upload and deletion. |
|
API\Mobile\TaxDocumentController |
Tax-specific mobile document access. |
Appendix C - Service Reference
|
Service |
Responsibility |
|
DocumentService |
Store/delete files, resolve user paths, retrieve user documents and handle contractor document storage. |
|
DocumentService@storeDocument |
Store a file using user and metadata attributes. |
|
DocumentService@getUserDocumentPath |
Resolve a user’s document directory. |
|
DocumentService@getUserBasePath |
Resolve the user base storage path. |
|
DocumentService@deleteDocument |
Remove a document and associated file. |
|
DocumentManagementService |
Mortgage application upload, retrieval, requirement, statistics, download and bulk deletion. |
|
BlockchainDocumentService |
Register/verify document hashes, audit trails and mortgage smart-contract operations. |
|
LeaseDocumentService |
Generate PDFs, trigger AI, search, version, archive, measure storage and clean orphaned files. |
|
LandDocumentService |
Generate and manage land agreements, payment schedules and receipts. |
|
MofiDocumentVerificationService |
MOFI-specific document verification. |
|
DocumentServiceProvider |
Register document service bindings. |
Appendix D - Events, Notifications, Mail and Jobs
|
Type |
Name |
Purpose |
|
Event |
LeaseDocumentGenerated |
Fires when an AI lease document is generated. |
|
Event |
PropertyDocumentUpdated |
Fires when a property document changes. |
|
Event |
MortgageDocumentUpdated |
Fires when a mortgage document changes. |
|
Event |
ComplianceDocumentUploaded |
Fires when a compliance document is uploaded. |
|
Notification |
DocumentShared |
Notifies a client that a landlord shared a document, including landlord and optional message. |
|
Notification |
PropertyDevelopmentDocumentUploadedNotification |
Notifies project team members of an upload. |
|
Notification |
PropertyDevelopmentDocumentDeletedNotification |
Notifies project team members of deletion. |
|
Mail |
DocumentRequestedMail |
Sends request details, instructions, deadline and secure upload URL. |
|
Mail |
DocumentFulfilledMail |
Notifies the landlord that a request was fulfilled and includes the request/document context. |
|
Mail |
AIDocumentExportSummary |
Emails an AI-generated analysis summary. |
|
Job |
AutoGenerateLeaseDocuments |
Automatically generates standard lease documents when a lease is activated. |
Appendix E - Computed Document Attributes
|
Attribute |
Purpose |
|
file_url |
Generate the full file access URL. |
|
human_file_size |
Display a readable size such as 2.5 MB. |
|
file_extension |
Return the extension. |
|
is_image |
Identify image files. |
|
is_pdf |
Identify PDF files. |
|
is_word |
Identify Word files. |
|
is_excel |
Identify Excel files. |
Appendix F - Document Visibility and Request Flow
|
Visibility flow |
|
Request flow |
|
AI flow |
Appendix G - Glossary
|
Term |
Definition |
|
CDMS |
Centralised Document Management System; the unified Document Hub repository. |
|
Client/Tenant |
The person or organisation leasing, purchasing, applying or otherwise receiving services. “Tenant” remains in backend names. |
|
Documentable |
A polymorphic module record to which a document is attached. |
|
Metadata |
Information describing a file, such as type, category, property, lease, tags and expiry. |
|
DocumentScope |
Automatic query filter that isolates documents to authorised business context. |
|
DocumentPolicy |
Action-level authorisation rules. |
|
TenantDocumentShare |
Recipient-specific access record. |
|
Acknowledgment |
Recorded client confirmation that a shared document was read. |
|
Version |
A preserved historical state of a document. |
|
Rollback |
Restoring a previous version as current. |
|
OCR |
Optical character recognition used to extract text from images or scans. |
|
AI analysis |
Automated extraction, summary and risk assistance that requires human verification. |
|
Blockchain hash |
Cryptographic fingerprint used to verify whether content changed. |
|
Audit trail |
History of access, actions, versions or transactions. |
|
Polymorphic relationship |
A database relationship allowing one Document record to link to different module entity types. |
|
Orphaned file |
A stored file without a valid database record or business link. |
Appendix H - One-Page Quick Reference
|
Task |
Fast path |
|
Upload |
Document Hub -> Upload Document -> choose file -> classify -> link property/lease/client -> set visibility -> save -> verify. |
|
Share |
Open approved document -> Share -> select client -> set download/acknowledgment/expiry -> send -> monitor. |
|
Request |
Document Requests -> Request a Document -> select client/context -> instructions/deadline -> send -> track status. |
|
AI analyse |
Document Understanding -> upload/select -> choose type -> enter prompt -> analyse -> verify all critical fields. |
|
Version |
Open property document -> upload new version -> describe change -> verify current/previous versions. |
|
Blockchain |
Confirm final approved file -> register -> store transaction details -> verify badge/result. |
|
Revoke |
Open share -> confirm recipient -> revoke -> verify portal access removed. |
|
Archive |
Select closed/superseded record -> Archive -> retain search/history. |
|
Delete |
Confirm no retention, legal, version, share or module dependency -> authorised delete. |
|
Final operating principle |
Tags
Was this article helpful?
Your feedback helps us improve our documentation.