Appearance
Amendments and Renewals
Contracts are not static. Rates change, scopes expand, terms renew. FoxCLM handles this with amendments (as child contracts) and a renewal system driven by each contract's end date and renewal settings.
Amendments
An amendment is a new contract linked to a parent via parent_contract_id. The parent stays intact; the amendment documents the change.
Creating an amendment
On any Active, Expiring Soon, or Approved contract, click Amend (top-right workflow buttons). FoxCLM:
- Prompts for:
- Effective date - when the amendment takes effect
- Amendment summary - what's changing
- Creates a new contract with:
type: Amendmentparent_contract_idpointing to the parent- Empty obligations and parties (you can inherit the parent's or add new)
- Sets the parent contract's status to
Amended(so its list badge reflects the change) - Navigates to the amendment's editor in
Draftstatus
From here, edit the amendment's content to capture exactly what changed (e.g. "Section 3.2 updated: monthly retainer increased from $4,000 to $4,500").
Amendment workflow
Amendments go through the same lifecycle as a new contract:
Draft -> Under Review -> Submitted for Approval -> Approved
-> Out for Signature -> ActiveOnly the Active amendment takes effect. Amendments in Draft or Under Review are proposals.
Viewing amendments
From the parent contract's editor, click the Amendments tab. You see each child amendment with its title, status, and effective date. Click to navigate.
To see every amendment across all contracts, filter the main Contracts list by Type: Amendment.
Multiple amendments
A contract can have many amendments. Each is linked to the parent, not to other amendments. If Amendment #2 modifies Amendment #1, you create it from the parent and reference Amendment #1 in its summary or content.
Renewals
Renewal is about what happens as a contract approaches its End Date. FoxCLM tracks three configurable fields per contract:
- Renewal Date - when renewal kicks in (defaults to
end_dateif blank) - Renewal Term (days) - how long the renewed term lasts
- Renewal Notice (days, comma-separated) - how many days before
end_dateto start warning (e.g.60,30,14for multiple escalating reminders)
The Expiring Soon status
A contract auto-transitions from Active to Expiring Soon when:
end_date - todayis within the smallest renewal notice window- The contract has a workflow transition with this condition
Status badges turn orange on the list so overdue-to-renew contracts stand out.
Renewal cron
A background job (runs daily) evaluates every Active and Expiring Soon contract:
- For each renewal notice day (e.g. 60, 30, 14), fires
send_renewal_warningif configured. - If the contract has
auto_renew: trueandend_date <= today:- Extend
end_datebyrenewal_term_days - Transition to
Renewed - Fire any
send_contract_approved_emailaction
- Extend
Without auto_renew, the contract transitions to Expired on the day after end_date (no extension).
Auto-renew
Tick Auto-renew at end date on the Details tab. On the day after end_date, FoxCLM:
- Extends
end_datebyrenewal_term_days(default: the same number of days as the original term) - Transitions to
Renewed(then typically back toActivevia workflow) - Fires configured actions
Turn off for contracts that should require explicit renewal action (e.g. rate increase negotiations).
Renewal workflow actions
Configure on the Active -> Expiring Soon or Active -> Renewed transition:
| Action | Use for |
|---|---|
send_renewal_warning | Email you / the client N days before end |
send_expiry_notice | Final notice on the day the contract expires without renewal |
send_contract_approved_email | Fire on Renewed to notify all parties the new term is in effect |
Termination
Distinct from expiry - termination is an early end.
On any Active contract, click Terminate. Prompts for:
- Reason - stored for the audit trail
Sets terminated_at, transitions to Terminated, fires configured actions.
Termination is not a soft-delete - the contract is preserved with its termination reason. Use it for mutual cancellation, breach, or any early wind-down.
Tips
- Set realistic renewal notice days. 60 days is typical for commercial contracts; 30 for simple service agreements; 14 for short-term.
- Use auto-renew sparingly. Only for contracts with no expected changes. Anything with price, scope, or regulatory risk should be renewed manually.
- Document amendments thoroughly. A future reader should understand what changed and why, without cross-referencing multiple documents.
- Keep the parent intact. Amendments modify via reference, not replacement. Don't edit the parent's HTML to reflect the amendment's changes.
Next steps
- Obligations - track renewal-related commitments (e.g. "renewal decision deadline")
- Signatures - amendments typically need signing too
