Contracts Module Overview
The Contract Lifecycle Management (CLM) module enables your school to create, send, track, and manage enrollment contracts digitally. From generating contracts using DOCX templates to collecting signatures from parents and school representatives, the CLM module streamlines what is traditionally a paper-heavy process.
What Contracts Are For
Contracts in the admissions context are formal enrollment agreements between your school and a family. They typically include:
- Enrollment terms -- The academic year, program, and campus the student will attend.
- Fee schedules -- Tuition fees, registration fees, and payment terms.
- Terms and conditions -- School policies, cancellation terms, and obligations.
- Signatory information -- Who signs on behalf of the school and the family.
Key Capabilities
Contract Generation
Create contracts from pre-configured DOCX templates with automatic variable substitution. The system fills in student names, parent details, fee tables, and school information automatically.
Contract Numbering
Each contract receives a unique number based on configurable numbering series with prefixes, sequential counters, and optional annual reset rules.
Multi-Party Signing
Send contracts to multiple participants (parents, school representatives) for review and signature. Track who has signed and who is pending.
Channel-Aware Signing
Collect signatures over emailed shared links or through DocuSign, and switch between channels mid-flight without recreating the contract. A header chip on every contract shows the current channel.
Editing a Generated Contract
After generation you can still revise the contract title, swap signatories, change the fee schedule, override field values, and re-render the PDF -- all from a single Edit contract modal. No need to void and recreate.
Lifecycle Tracking
Follow each contract through defined stages: Draft, Sent, In Progress, Review, Completed, Voided, or Declined. The system records timestamps for each stage transition.
Document Management
Store generated PDFs, signed copies, and related documents. Download or share documents via presigned URLs.
Bulk Operations
Perform actions on multiple contracts at once -- void, download, send reminders, or delete. Bulk actions route per contract's delivery channel automatically.
Billing Forecast & Revenue Reports
Two preset reports on the Reports page surface contract-driven revenue: Contract Billing Forecast (forward-looking, grouped by company / year / program / category) and Contract Revenue Breakdown (per-contract row with monthly columns).
Module Structure
The CLM module consists of several interconnected pages:
| Page | Purpose |
|---|---|
| Contracts List | Browse, filter, and manage all contracts with statistics dashboard |
| Contract Detail | View a single contract's full details, documents, participants, and history |
| Contracts Configuration | Set up companies, signatories, contract types, and templates |
| Create Contract Wizard | Step-by-step wizard to generate a new contract |
Statistics Dashboard
The Contracts List page includes stat cards at the top showing:
- Total -- All contracts across all stages.
- In Progress -- Contracts that have been sent and are awaiting signatures.
- Completed -- Fully signed and finalized contracts.
- Review -- Contracts where all parties have signed but need admin review.
- Declined -- Contracts that a participant has declined.
- Voided -- Contracts that have been cancelled.
Prerequisites
Before creating contracts, you need to configure:
- At least one company with legal details and bank information.
- At least one signatory assigned to a company.
- At least one contract type (series) defining the numbering pattern.
- At least one DOCX template with variable placeholders.
See the Configuration article for setup instructions.
Permissions
Contract operations require specific permissions:
- View contracts -- Basic access role.
- Create contracts -- Requires
contracts.createpermission. - Send contracts -- Requires
contracts.sendpermission. - Complete contracts -- Requires
contracts.completepermission. - Void contracts -- Requires
contracts.voidpermission.