Quotations Module
Sales price-quoting module on the frozen platform. Mirrors the Opportunities notes/timeline/assignment pattern, kept leaner (no pipeline board, no related Contact/Company/Lead FKs beyond the opportunity link).
Hard dependency: Quotations requires the Opportunities module — Marketplace install is blocked until Opportunities is entitled.
Guides
| Audience | Document |
|---|---|
| Operators / workspace users | quotations.md |
| Engineers | quotations.md |
| Production / ops | quotations.md |
| Module Development Standard | module-development.md |
| Reference blueprint | opportunities.md |
| Tenant API | ../api/tenant-v1-quotations.md |
Capabilities
- Quote fields: opportunity (required), title, optional contact/company link, currency, valid-until date, notes
- Line items (description, quantity, unit price, tax rate) — subtotal / tax total / total computed server-side
- Status workflow:
draft → sent → accepted | rejected | expired(POST /quotations/{id}/send,.../accept,.../status) - Download quotation PDF (workspace-branded; line HTML, memo, terms)
- Email customer after Send (
POST /quotations/{id}/email,quotations.send) — optional PDF attachment; for Sent quotes, appends a one-time customer accept link; default recipient from linked contact/company; recordsemailedtimeline + tenant email log - Customer e-signature (v1) — public accept page (
/#/accept/quotations/{token}); staff can Copy accept link; signer name/email/IP recorded on accept - Convert to invoice (
POST /quotations/{id}/convert) — one-shot draft CustomerInvoice when Invoices is entitled (soft check; not a Marketplace hard dependency) - Assignment with assignee scoping via
quotations.assign - Notes + domain activity timeline (mirrors Opportunities)
- Ask EloSync triage (with AI Assistant entitled): fetch quotation, confirmed status / assign / note writes — see AI Assistant
- Trash filtering plus Restore and Delete permanently
- Module licensing (
module:quotations) + Spatie permissions — free Marketplace opt-in (Sales category) - Audit + activity logging; assignment notification
Permissions
quotations.view · create · update · delete · restore · force.delete · assign · send · accept · convert
Enable Quotations from Marketplace (free) once Opportunities is installed. Catalog: slug quotations, category sales, is_default_included = false, is_billable = false, sort_order = 50, version 1.9.0.
Related modules
Hard dependency: Opportunities (see Module Dependencies). Optional: Invoices — convert-to-invoice is hidden until Invoices is entitled. Contracts may optionally link a Quotation once both modules are entitled.
Explicitly deferred
- Multi-signer / countersign / third-party e-sign providers (DocuSign, Adobe Sign)
- Drawn signature image capture on the PDF
- Multi-currency conversion
- Approval workflow beyond the status enum