To automate proposal generation, take approved customer requirements from your CRM, select services and prices from a maintained source, and populate a controlled document template. Check missing information and commercial exceptions before sending, then retain the exact proposal version the customer received.
This removes copying and formatting work. It does not make an incorrect price or an ambiguous scope safe to send. If staff currently rebuild proposals from old documents, start by separating reusable content from decisions that need approval.
Roll Out Proposal Generation Safely
Move from mapped customer details and pricing rules to a tested document and controlled launch.
Map fields and rules
Trace each field to its source; flag prices and changes for approval.
Configure the template
Link approved customer details, services and prices to the template.
Test proposals
Check missing details, price exceptions, wording and saved versions.
Launch with review
Start with reviewed cases; send only proposals that pass the checks.
The basic mechanism is already supported in some CRM workflows. Salesforce documents a Flow Builder example that creates and populates a pricing proposal when an opportunity reaches Proposal/Quote, records its URL and later attaches a completed PDF to the opportunity. Your implementation still needs rules for what may be generated, approved and sent.
Prepare the customer details, services and pricing rules
Before connecting tools, take one representative proposal and mark where every field comes from. Customer details may belong in the CRM, while approved prices live in an accounting system or maintained service catalogue. Choose an authoritative source for each value rather than copying whichever record is easiest to access.
Use this as the preparation checklist:
- Customer details: buying organisation, proposal recipient, email address, billing details and the staff member responsible for the opportunity.
- Approved scope: service identifiers, customer-facing descriptions, quantities or units, deliverables, exclusions and customer responsibilities.
- Commercial rules: currency, unit prices, one-off and recurring charges, discount permissions, applicable tax treatment and rounding rules.
- Terms: payment schedule, proposal validity, delivery assumptions and the approved terms text or template version.
- Approval rules: which changes require review, who can approve them and who takes over when that person is unavailable.
- Records: where generated documents, issued revisions and acceptance evidence will be stored.
Map these fields explicitly. An internal account note should not become customer-facing scope simply because it contains useful text. If quantities, delivery dates or tax treatment are required but missing, stop the workflow and give the responsible person a specific correction task. Do not silently substitute blanks or guesses.
For prices that change over time, define when a price becomes fixed: for example, when the proposal is approved, with an agreed validity period. A later revision can use updated prices under your policy, but it should not silently alter an already issued offer.
Build the workflow around approval, not document creation
1. Start with an explicit proposal request
A CRM stage change can trigger the process, but a stage alone does not prove discovery is complete. Combine it with a completeness check, or provide a deliberate “Generate proposal draft” action.
Give each proposal request a unique reference. If the connection retries after a timeout, it should find the existing draft rather than create or send another one.
2. Validate scope and calculate the commercial details
Check that every selected service is approved, quantities use the right units and prices come from the designated source. Calculate totals using defined rules rather than asking staff to type them into the document.
Route non-standard discounts, unusual payment terms and edited scope descriptions to the appropriate approver. A technically valid calculation can still represent an unauthorised commitment.
Approval should apply to a particular set of proposal details. If someone changes the scope, price or terms afterwards, mark the proposal as needing approval again.
3. Generate a draft and review what the customer will see
Populate a maintained template with the validated details and approved content blocks. Show the reviewer the complete document, including exclusions, recurring charges, dates and terms, rather than only a CRM summary.
I would automate draft preparation first and keep sending under human control until the validation and revision tests pass.
Assign a named reviewer and make blocked requests visible. A failed document-generation step should leave a recoverable task, not an opportunity that appears to have progressed successfully.
4. Send the approved document and record the outcome
Only the approved revision should be eligible for sending. Record its proposal reference, revision, recipient, sent time and document location against the CRM opportunity.
Acceptance should update the opportunity with a reference to that same revision. If acceptance happens by email rather than through a proposal platform, retain the message alongside the issued document. An “Accepted” status on its own does not explain what the customer accepted.
From Proposal Draft to Approved Customer Document
Proposal draft
Preserve each issued proposal instead of linking it to live prices
A sent proposal should preserve the scope, prices and terms approved at that moment, even if the CRM or price list changes later. Treat it as a fixed record, not a fresh view of current customer data.
Retain the issued document and its underlying approved details. For a revision, create a separate version, keep the previous one and record which version replaces it. Do not overwrite the old file and reuse its acceptance record.
Ask the chosen software provider to demonstrate what happens when a customer opens an older proposal link after a revision. Depending on your process, that link might show the original clearly marked as superseded, or prevent further acceptance and direct the customer to the replacement. It should not display changed terms under the same apparent version.
Document storage and acceptance tracking need checking separately. A PDF attachment can preserve content, but you also need to retrieve the acceptance evidence associated with it. Do not assume that every CRM or proposal tool provides both controls.
A worked example: a standard service with an extra request
Illustrative example: a consultancy sells a standard assessment package. Its CRM holds the customer's details and agreed requirements; a service catalogue holds the package description, price and optional workshops.
For a standard request, the workflow selects the package and workshops, checks quantities, generates a draft and asks the account manager to review it. Once approved, it issues version 1 and stores the sent document.
The customer then requests an additional workshop and different payment terms. That creates version 2. The workshop price comes from the catalogue, while the payment change goes to the designated approver. Version 1 stays in the record, and its acceptance route is handled according to the superseded-proposal rule.
A template workflow is sufficient if existing tools can perform those checks and retain both versions. A custom connection becomes justified if, for example, the proposal tool cannot reliably associate acceptance with the correct CRM revision. Adding AI would not solve that record-keeping problem.
Proposal revision and its acceptance evidence
Final record
Evidence used
Choose templates, AI or a custom connection by the work required
Use ordinary template automation when proposals mainly combine structured fields, approved service descriptions and predictable pricing rules. First test the native CRM and proposal-tool features against your actual workflow, including approvals and revisions.
Consider AI for narrative drafting when staff spend substantial effort turning discovery notes into a customer-specific summary. Keep that output separate from authoritative prices and terms. A person should check that the narrative has not introduced deliverables, deadlines or promises that were never agreed.
Consider custom automation and integrations when essential systems lack suitable connectors, approval routes have complex conditions, or revision and acceptance records cannot be maintained reliably through existing features.
Compare options using proposal frequency, exception frequency, systems involved, required approval actions and recovery work after failures. Include ongoing ownership: someone must maintain templates, prices, permissions and connections. A low-volume process with frequent bespoke negotiation may benefit more from reliable draft generation than automatic sending.
Test these cases before enabling automatic sending
Run the normal proposal first, then deliberately test the situations that could create an incorrect commitment:
- Missing customer information: generation stops, identifies the missing field and assigns a correction task.
- Non-standard discount: the proposal waits for an authorised decision and cannot be sent while pending or rejected.
- Changed requirements: editing approved scope creates a new revision or invalidates approval before sending.
- Changed catalogue price: the issued proposal stays unchanged; a new draft follows the agreed pricing policy.
- Outdated proposal link: the customer cannot unknowingly accept a superseded offer as though it were current.
- Duplicate trigger or failed connection: retrying does not send twice, and staff can see what failed and safely resume it.
- Customer acceptance: the stored record identifies the exact revision and lets staff retrieve both its content and acceptance evidence.
Give an implementer an anonymised proposal, the source fields and pricing rules, your approval conditions, and examples of revisions and acceptance records. Those materials reveal whether configuration is enough or a connection needs building. Enable automatic sending only for the standard cases that pass the tests; keep exceptions in a visible review queue.
Stop rebuilding each proposal by hand
Show ZappFlow an anonymised proposal, where its customer details and prices come from, and which changes need approval. We can help assess whether your existing tools can handle the workflow or need a custom connection.