Legal Department
Roles covered: Lawyer · Legal Counsel · DPO (Data Protection Officer) · Compliance Manager
Primary modules: Contracts · Document Management · GDPR · Proposals · HR Contracts · Purchase Contracts · Workflow Automation
Who this guide is for
| Role | What they do in CRMConnect |
|---|---|
| Lawyer / Legal Counsel | Drafts and manages contracts with clients, suppliers and partners; monitors expirations and renewals |
| DPO (Data Protection Officer) | Manages GDPR consents, data deletion requests, compliance audits |
| Compliance Manager | Approves internal documents, maintains approval flows, manages document archive |
| Legal Secretary | Administers contract templates, sends documents for signing, tracks signature statuses |
Map of legal documents in CRMConnect
CONTRACTS (4 types)
├── Client Documents /admin/contracts
│ Client → digital or manual signature
├── Vendor Documents /admin/contracts_vendor
│ Vendor → digital or manual signature
├── Opportunity Documents /admin/contracts_opportunity
│ Lead/Opportunity → pre-sale commitment
└── HR Contracts /admin/hr_profile/contracts
Employee → individual employment contract
INTERNAL DOCUMENTS
└── Document Management /admin/document_management
Multi-level internal approval → electronic signature
COMMERCIAL PROPOSALS (quasi-contract)
└── Proposals /admin/proposals
Digital acceptance/signing by client → quasi-contractual force
COMPLIANCE & GDPR
└── GDPR /admin/gdpr
Consents, deletion requests, right to be forgotten
Recommended daily routine
Morning (15–20 min)
1. Contracts expiring in 30 / 60 days/admin/contracts → filter dateend between today and today + 60 days
Initiate the renewal process or send the client a notification.
2. Documents awaiting your approval/admin/document_management → filter documents with approval = 0 where you are an approver
Review and approve or return with comments.
3. Sent but unsigned contracts/admin/contracts → filter signed = 0 AND marked_as_signed = 0 AND sent
Follow up on signing and contact the client if needed.
4. Pending GDPR requests/admin/gdpr → unresolved deletion or data export requests
Process within legal deadlines (30 days).
During the week
- Monday: Review contracts newly created by the sales team — check standard clauses
- Wednesday: Approve internal documents from Document Management
- Friday: Contract status report — how many signed, how many pending, how many expiring this month
Contract types and where to find them
1. Client Documents
Where: /admin/contracts
Contracts with clients — NDAs, service agreements, framework contracts, annexes.
Key fields:
| Field | Notes |
|---|---|
subject |
Contract title (visible in client portal) |
nr |
Contract number (manual or auto) |
contract_type |
Type: NDA, Service Agreement, Framework Contract, Annex, etc. |
client |
Contracting client |
datestart / dateend |
Validity period |
contract_value |
Contractual value |
content |
HTML content with automatically populated merge fields |
not_visible_to_client |
If 1 → client cannot see the contract in portal |
parent_id |
Link to parent contract (for addenda) |
project_id |
Associated project (optional) |
2. Vendor Documents
Where: /admin/contracts_vendor
Identical structure to client contracts, but linked to the vendor record. Includes procurement contracts, vendor NDAs, external service agreements.
3. Opportunity Documents
Where: /admin/contracts_opportunity
Contracts attached to a lead or opportunity — letters of intent (LOI), heads of agreement, pre-contracts. Linked to tblleads instead of tblclients.
4. HR Contracts
Where: /admin/hr_profile/contracts
Individual employment contracts, salary addenda, signed job descriptions. Separate functionality with employee-specific merge fields and a dedicated PDF.
Contract templates
Where: /admin/contracts/templates
Creating a template
- Draft the contract content in the HTML/rich text editor
- Insert merge fields — fields that auto-populate when the contract is generated
Available merge fields
Contract data:
| Merge field | Value |
|---|---|
{contract_subject} |
Contract title |
{contract_nr} |
Contract number |
{contract_value} |
Contractual value |
{datestart} |
Start date |
{dateend} |
Expiry date |
{contract_type} |
Contract type |
Client data:
| Merge field | Value |
|---|---|
{client_name} |
Company name |
{client_email} |
Contact email |
{client_phone} |
Phone |
{client_address} |
Full address |
{client_vat} |
Client VAT number |
Company and other data:
| Merge field | Value |
|---|---|
{staff_name} |
Internal representative |
{current_date} |
Current date |
{current_year} |
Current year |
| Email signature | Data from staff profile |
Contract types
Where: /admin/contracts/types
Classify contracts by type for organisation and reporting: NDA, Service Agreement, Framework Contract, Annex, Addendum, SLA, Licence, Partnership.
Signing flow — complete guide
Step 1: Drafting and sending
Contract drafted (from template or from scratch)
↓
Optional: Internal approval (Legal reviews before sending)
↓
"Send" button → automatic email to client with:
- Unique link: https://company.com/contract/{hash}
- PDF attached (if configured)
- Custom message from email template
Step 2: Client signs digitally
Client accesses the link (no authentication — the hash is the authentication):
- Reads the contract in browser (HTML or PDF)
- Draws signature (canvas touchscreen or mouse)
- Fills in: First name, Last name, Email (if not pre-populated)
- Clicks Sign and Accept
Step 3: Audit capture — what is recorded
On signing, the system automatically records:
| Field | Captured value |
|---|---|
acceptance_firstname |
Signatory's first name (from form) |
acceptance_lastname |
Last name |
acceptance_email |
Signatory's email |
acceptance_date |
Exact signing timestamp (DATETIME) |
acceptance_ip |
IP address from which signing occurred |
signature |
PNG image of the digital holographic signature |
signed |
1 (digital signature confirmation flag) |
Legal value: The combination of IP + timestamp + name + signature image constitutes electronic evidence of acceptance. It is not equivalent to a qualified electronic signature (QES) under eIDAS, but has probative value.
Step 4: Staff notification
On signing → automatic email sent to the internal team (Contract_signed_to_staff.php) with:
- Contract identification
- Signatory details
- Link to the contract in CRM
Manual signing (marked_as_signed)
If the contract was signed physically (paper + scanned) or via another external method:
- From the open contract → Mark as Signed →
marked_as_signed = 1 - Does not capture the digital signature, but blocks editing
Edit lock after signing
Once signed = 1 OR marked_as_signed = 1:
- Contract fields are read-only — cannot be modified
- Any modification requires an Addendum (new contract linked via
parent_id)
Contract renewals
Where: From the open contract → Renew
What the renewal function does
The renew() method creates a record in tblcontract_renewals:
| Recorded field | Notes |
|---|---|
old_value |
Previous contractual value |
new_value |
New value (can be changed) |
old_start_date |
Previous start date |
new_start_date |
Renewal start date |
new_end_date |
New expiry date |
date_renewed |
When the renewal was made |
renewed_by |
Who renewed (staff name) |
renewed_by_staff_id |
Staff member's ID |
Options on renewal:
- Keep signature (
renew_keep_signature = 1) → existing signature remains - Reset signature (
renew_keep_signature = 0) →signed = 0, contract must be re-signed by client - The
isexpirynotifiedflag resets to0→ expiry reminders will be re-sent on the new term
Renewal history
All renewals are stored in tblcontract_renewals — you can see the complete renewal history with values and periods, including who performed each renewal.
Monitoring expirations
Automatic expiry notification
The system checks daily (via cron) contracts with dateend < current_date:
- Email sent to client contacts with
contract_emails = 1 - Template:
Contract_expiration_reminder_to_customer - Internal template:
Contract_expiration_reminder_to_staff isexpirynotified = 1flag set after sending (prevents re-sending)
Workflow Automation — proactive alert
Configure in Workflow Automation an alert 30 / 60 days before:
Trigger: dateend − 60 days
→ Action: Task "Initiate contract renewal [X]" → Responsible lawyer
→ Action: Reminder email → Client
Trigger: dateend − 30 days (if not renewed)
→ Action: Urgent task "Contract expires in 30 days — action required"
→ Action: Notification to Legal Manager
Contract report — useful filters
| Filter | Purpose |
|---|---|
dateend < today |
Already expired contracts — follow-up or archiving |
dateend within next 30 days |
Expiring this month — urgent renewal |
signed = 0 AND marked_as_signed = 0 |
Unsigned — follow-up on signature |
signed = 1 OR marked_as_signed = 1 |
Signed — active archive |
Per contract_type |
NDAs only, framework contracts only, etc. |
Comments and communication on contracts
Where: Comments tab from the open contract
Bidirectional communication
| Who comments | Who receives notification |
|---|---|
| Internal staff | Client (email Contract_comment_to_customer) |
| Client (from portal) | Internal team (email Contract_comment_to_staff) |
Comment fields:
staffid— Who commented (null = client comment)content— Comment textdateadded— Timestamp
Legal use: Clause clarifications, term negotiations, receipt confirmations — all archived in the contract thread with timestamp and author.
Addenda and Annexes
Contracts can form hierarchies through the parent_id field:
Framework Contract #1 (parent)
├── Annex no. 1 — Technical specifications (parent_id = 1)
├── Annex no. 2 — Prices (parent_id = 1)
└── Addendum no. 1 — Clause modification (parent_id = 1)
Each addendum follows the same signing flow as the main contract.
Document Management — internal approval flows
Where: /admin/document_management
When to use Document Management vs. Contracts
| Situation | Module |
|---|---|
| Document sent to client for signing | Contracts |
| Internal document requiring multi-level approval | Document Management |
| Internal policies, procedures, regulations | Document Management |
| Documents with versioning and structured archive | Document Management |
| Technical proposals requiring director approval | Document Management |
Folder structure
Organise documents in a folder tree with permissions per folder:
📁 Active Contracts/
📁 Clients 2026/
📁 Vendors 2026/
📁 Legal Templates/
📄 Standard NDA.docx
📄 Service Framework Contract.docx
📁 Internal Documents/
📁 HR Policies/
📁 Compliance Procedures/
📁 Archive/
📁 Expired Contracts 2025/
Multi-level approval flow
Configuration: From Document Management settings → Approval Flows
Document created/uploaded
↓
Approver 1 notified (e.g. Department Manager)
→ Approves → moves to next level
→ Rejects → feedback to creator (note field)
↓
Approver 2 notified (e.g. Legal Director)
→ Approves → document FINALLY APPROVED (approve = 1)
→ Optionally: automatically moved to another folder (folder_after_approval)
Document versioning
Each document modification creates a new version in tblmg_file_versions. You can:
- View the complete version history
- Revert to a previous version
- Download any version from the archive
Reminders for pending documents
Configure automatic reminders for approvers who have not responded (tblmg_remiders):
- Email with direct link to document
- Custom message
- Specific send date
Audit log for documents
Table tblmg_audit_logs automatically records all actions on documents in Document Management with: user_id, user_name, action, item_id, date.
GDPR — Personal data compliance
Where: /admin/gdpr
Consents (Consent Tracking)
Table tblconsent_purposes — processing types for which you request consent:
- Email marketing
- Data transfer to partners
- Use of data for analytics
- Tracking cookies
Table tblconsents — individual consent records:
| Field | Value |
|---|---|
contact_id / lead_id |
Data subject |
purpose_id |
Processing purpose |
action |
opt-in (consent) / opt-out (withdrawal) |
date |
Timestamp |
ip |
IP from which consent was given |
opt_in_purpose_description |
Description of accepted purpose |
Data deletion requests (Right to be forgotten)
Table tblgdpr_requests:
| Field | Notes |
|---|---|
request_type |
account_removal — complete deletion request |
status |
pending → manually processed by DPO |
request_date |
Request date |
Legal process:
- Client / lead requests data deletion (from portal or email)
- DPO receives the request in
/admin/gdpr - DPO verifies if there are contractual or legal obligations preventing deletion
- If deletion is possible → record is anonymised or deleted
- Response sent to person within 30 days (GDPR obligation)
Important: The
Gdpr_contracts.phplibrary implements the anonymisation/deletion of contractual data — personal fields are deleted or replaced with anonymous data, the contract remaining in archive without identifiable data.
Right to portability
Data export for a contact/lead can be done from the client or lead record — includes all activities, documents and data stored in the system.
Proposals as quasi-contractual instrument
Where: /admin/proposals
A proposal digitally accepted by the client captures:
| Field | Value |
|---|---|
acceptance_firstname / acceptance_lastname |
Acceptor's identity |
acceptance_email |
|
acceptance_date |
Acceptance timestamp |
acceptance_ip |
IP from which acceptance occurred |
signature |
Signature image (if signature is enabled) |
rejected_reason |
Reason for rejection (if applicable) |
The accepted proposal can be converted into a formal contract or can serve as evidence of commercial agreement before signing the actual contract.
Terms and conditions: The terms field on proposals allows including standard legal clauses (T&C) directly in the document sent to the client.
Custom fields for legal needs
Where: /admin/custom_fields (admin only)
The administrator can add custom fields on contracts for specific legal data:
| Example field | Type | Use |
|---|---|---|
| Confidentiality level | Dropdown | Public / Internal / Confidential / Secret |
| Legal basis (GDPR) | Dropdown | Art. 6(1)(a)/(b)/(c)/(f) |
| Responsible lawyer | Text | Tracking responsibility |
| Penalty clause | Checkbox | Contract with penalty? |
| Applicable law | Text | Jurisdiction |
| Arbitration | Checkbox | Disputes through arbitration? |
| Signature type required | Dropdown | Holographic / Simple electronic / QES |
Complete audit trail — what is logged
CRMConnect maintains an automatic log of all actions on legal documents:
Contract activity log
| Event | What is recorded |
|---|---|
| Contract created | Staff, timestamp, subject, client |
| Contract modified | Staff, timestamp, modified fields |
| Contract sent to client | Timestamp, recipient |
| Contract signed (digitally) | IP, timestamp, signatory name, signature image |
| Contract signed (manually) | Staff who marked it, timestamp |
| Contract renewed | Staff, timestamp, old vs. new values |
| Comment added | Author (staff or client), timestamp, content |
| File attached | Staff, timestamp, file name |
| Contract deleted | Staff, timestamp |
HR Contracts — employees
Where: /admin/hr_profile/contracts
Differences from client contracts
| Aspect | Client Contracts | HR Contracts |
|---|---|---|
| Linked entity | Client (tblclients) |
Employee (staff) |
| Merge fields | Client data | Employee data (function, salary, employment contract details) |
| PDF template | Standard template | Employment contract-specific template |
| Signature | Client in portal | Employee in HR portal |
HR contract-specific features
- Import from XLSX — can import contracts in bulk
- Salary table in PDF — structured display of salary components
- Special merge fields —
Hr_contract_merge_fieldsincludes specific fields: function, department, salary, hire date, probation period
Recommended legal automations
Configurable in Workflow Automation (/admin/workflow_automation):
| Trigger | Action | Benefit |
|---|---|---|
| Contract created by Sales | Task "Legal review required" → Lawyer | Zero contracts without verification |
| Contract signed by client | Team notification + archiving task | Immediate confirmation |
dateend − 60 days |
Task "Initiate renewal" → Lawyer | Proactive renewal |
dateend − 30 days |
Reminder email → Client | External alert |
dateend passed |
Notification to Legal Manager | Zero expired contracts undetected |
| DM document approved | Move to "Approved" folder + notification | Automatic archiving |
| GDPR request received | Urgent task "Process GDPR request 30 days" → DPO | Compliance with legal deadline |
| Proposal accepted | Task "Issue formal contract" → Lawyer | Continuity of sale→contract flow |
Internal announcements — communicating legal policies
Where: /admin/announcements
The legal team can publish internal announcements for:
- New privacy policies
- Relevant legislative changes
- New signing procedures
- Compliance alerts (e.g. new GDPR requirements, tax changes)
Announcements appear when all users log in and remain visible until confirmation (dismiss).
Recommended permissions for the Legal team
Request from the administrator at /admin/roles:
| Permission | Required for |
|---|---|
| Contracts → View / Create / Edit | Full contract management |
| Contracts → Delete | Delete contracts (usually restricted) |
| Document Management → View / Create / Approve | Document approval flow |
| GDPR → View / Manage | Manage requests and consents |
| Proposals → View | View accepted proposals |
| HR Profile → Contracts | Employment contracts |
| Reports → View | Reports and audits |
| Utilities → Activity Log | Audit log access |
| Announcements → Create | Publish internal policies |
| Custom Fields → View | Legal fields on contracts |
Quick reference
Workflows: Contract Approval + Signature · Lead → Cash · Recruit to Payroll
Modules: Contracts · Document Management · GDPR · Proposals · HR Profile · Purchase Contracts · Custom Fields · Utilities · Announcements
Related departments: Sales Department · VRM — Vendor Relations · Finance Department · HR Department
Use Document Management's approval workflow for all contracts before signature — no contract should reach a client or partner without the required internal sign-offs captured in the system as a timestamped audit trail.
Contract renewal alerts (60 and 30 days) configured in Workflow Automation are the Legal department's most important automation. One missed renewal can leave services running without a contractual basis — a legal and financial risk that is difficult to remediate retroactively.