KamoCRM

A market decides who a quote names as the customer's contact

Featurekamo-shared-library
Shipped
2 செப்டம்பர், 2026 அன்று 1:55 AM UTC
Author
Kamo
Commit
b8aedd9

QuoteContactMode gives a LeadMarket three answers: the lead's assigned agent (resolved per read, which is what every quote does today and what a null column means), one explicit person, or a choice made on each quote. The latter two are snapshotted onto Quote.contactMemberId when the quote is raised, so changing a market's mind never rewrites the contact a customer was already given, and a revision carries the snapshot forward — it is the same offer. QuoteService takes the resolved contact as an argument rather than reading it off the request body: this module reaches the lead only by soft id, and a value a client could set would let anyone be named on a document. Update honours it only when the caller passes one, which is how ADJUSTABLE_PER_QUOTE is enforced server-side rather than by the editor hiding a field. agentForMember is named rather than overloaded — agentFor(null, ...) would be ambiguous at any call site passing a literal null — and the lead-taking form now delegates to it, so the two cannot drift on a printed document.

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing