Skip to content

Contracts Module

Sales contract-tracking module on the frozen platform. Mirrors the Opportunities / Quotations notes/timeline/assignment pattern, kept lean (no line items — a contract is a single signed agreement record).

Hard dependency: Contracts requires the Opportunities module — Marketplace install is blocked until Opportunities is entitled. Contracts may optionally link a Quotation once the Quotations module is also entitled.

Guides

AudienceDocument
Operators / workspace userscontracts.md
Engineerscontracts.md
Production / opscontracts.md
Module Development Standardmodule-development.md
Reference blueprintopportunities.md · quotations.md
Tenant API../api/tenant-v1-contracts.md

Capabilities

  • Contract fields: opportunity (required; gated New when opportunities.create), optional quotation link, title, party name, start date (required), optional end date, value, currency, rich-text description and notes
  • Status workflow: draft → sent | active | terminated; sent → active | expired | terminated; active → expired | terminated (POST /contracts/{id}/send, .../accept, .../status)
  • Download contract PDF (workspace-branded; description, notes, party, value, dates)
  • Email customer after Send (POST /contracts/{id}/email, contracts.send) — optional PDF attachment; for Sent contracts, appends a one-time customer sign link; default recipient from the opportunity’s contact/company; records emailed timeline + tenant email log
  • Customer e-signature (v1) — public accept page (/#/accept/contracts/{token}); staff can Copy accept link; signer name/email/IP recorded on accept → status Active
  • Staff may still Activate without signature from Draft (contracts.update) without issuing a customer link
  • Create invoice (POST /contracts/{id}/convert) — repeatable draft CustomerInvoice from an active contract when Invoices is entitled (soft check). Confirming in the UI acknowledges repeat billing (acknowledge_repeat_billing); the API requires that flag for the second and later invoices from the same contract.
  • Assignment with assignee scoping via contracts.assign
  • Notes + domain activity timeline (mirrors Opportunities / Quotations)
  • Trash filtering plus Restore and Delete permanently
  • Module licensing (module:contracts) + Spatie permissions — free Marketplace opt-in (Sales category)
  • Audit + activity logging; assignment notification

Permissions

contracts.view · create · update · delete · restore · force.delete · assign · send · accept · convert

Enable Contracts from Marketplace (free) once Opportunities is installed. Catalog: slug contracts, category sales, is_default_included = false, is_billable = false, sort_order = 60, version 1.5.0.

Hard dependency: Opportunities (see Module Dependencies). Optional: Quotations — the quotation picker on a contract only appears (and validates) when Quotations is entitled. Optional: Invoices — create-invoice is hidden until Invoices is entitled.

Explicitly deferred

  • Multi-signer / countersign / third-party e-sign providers (DocuSign, Adobe Sign)
  • Drawn signature image capture on the PDF
  • Renewal reminders
  • Multi-currency conversion

Official documentation for the EloSync SaaS Platform.