Back to the blog

Salesforce document generation: automate contract and quote PDFs

Salesforce 6 min read 7 October 2026

The problem in two sentences

Every month your sales team clicks together Word docs, pastes pricing from Quotes, and rearranges pages in a 60-page Master Service Agreement. You lose time, introduce errors, and then spend days chasing signatures—because your process forces manual PDF assembly before you even start the signature step.

Why Salesforce document generation fails when you assemble contracts manually

You or your reps are likely pulling fields from multiple places: Opportunity for deal terms, Account for billing address, Quote and QuoteLineItem for pricing, Contact for signers, and maybe a custom object like Renewal__c for subscription details. That means multiple downloads, copy/paste, and reformatting. Manual steps create three predictable failures:

  • Data drift: price or address updates after the doc was made.
  • Version confusion: signed PDF ends up in someone’s email, not on the Contract record.
  • Signature delays: a 4-day chase is common when recipients must download, sign, scan and email back.

How Salesforce document generation can automate contract assembly

If you want to stop assembling documents by hand, you need two things: a tool that can merge templates from any Salesforce record and an automation trigger that makes it happen without a rep’s manual file juggling. That’s the real meaning of Salesforce document generation.

Concrete scenario

Imagine you have a 60-page MSA and 200 renewals a month. Each renewal needs a filled cover sheet, the standard MSA, and a Quote PDF with line items. Bundling those three documents and sending them together for signature reduces back-and-forth. Using an automated merge and signature flow, you replace a four-day signature chase with an immediate, auditable request.

What to expect from a practical implementation

As the Salesforce Admin, you want clicks, predictable mapping, and safe storage of the finished files. Here are the capabilities to rely on and how they map to admin tasks:

Fill templates from any record

Create Word or PDF templates that reference fields from Opportunity, Quote, Contract, Account, Contact, or your custom objects (for example Renewal__c). The generator can pull five levels of parent lookups, so you can include Account-owner or parent Account fields without extra work.

Repeat child records as tables

Quote line items or custom child objects can become table rows in your document. That means your Quote PDF lists every QuoteLineItem without manual copy/paste.

Bundle multiple templates into one signature run

If a single signature session must cover a cover letter, the MSA and the Quote, bundle the templates so recipients sign them in one go and the signed PDF is returned as one file.

Signature placement and identity checks

Put anchor tags in your template where signatures belong so placements survive repagination. You can require a one-time emailed code for signer identity, and also enforce a per-signer password that the integration reads from that Contact or User record.

File storage and limits

The finished document is filed back to the originating record. You can choose Salesforce Files or Notes and Attachments—remember Notes and Attachments is capped at 25 MB, and the connector handles documents up to 40 MB if you use Files.

How to wire this up in your org (admin-friendly steps)

You don’t need code. Use point-and-click whenever possible and keep the logic in Flow so it’s maintainable.

  • Create templates: Build Word/PDF templates with the fields you need and place anchor tags for signatures.
  • Map data: Confirm which fields come from Opportunity, Quote, Contract, Account, Contact, or Renewal__c and test that parent lookups return expected values.
  • Configure repeating rows: Identify the child object (QuoteLineItem or a custom child) and verify the table output in a sample merge.
  • Set file options: Decide whether finished files go to Files or Notes and Attachments; default to Files for anything near 25 MB.
  • Choose your trigger: Add a Flow that runs on Opportunity stage change, a Quick Action button on Quote, a field change on Contract, or when a new file is attached.
  • Send for signature: Set the signature run to use your company’s Circularo account so signing sends from your domain and the signed PDF writes back to the same record.

Flow example (conceptual)

Build a record-triggered Flow on Opportunity where Stage = Closed Won. The Flow calls the document generator action, passes the Opportunity Id and selected Quote Ids, and tells the connector to bundle templates and send for signature. No Apex required; the Flow is auditable and deployable between sandboxes and production.

Common admin pitfalls and my opinions

Don’t hard-code coordinates for signature placement. Fixed coordinates break when pagination changes. Anchor tags are the right choice. Also, prefer Files over Notes and Attachments for large or bundled PDFs—you’ll hit the 25 MB cap faster than you think with multi-document bundles. Finally, test signer identity flows: if you rely on a per-signer password stored on Contact, make sure that field is populated and permissioned correctly before you go live.

What Savvy DocuGen actually gives you

Savvy DocuGen fills Word and PDF templates from any Salesforce record, supports five levels of parent lookups, and repeats child and grandchild records as table rows. It files the finished document to the record (Files or Notes and Attachments), sends for signature through your company’s Circularo account, and writes the signed PDF back to the same record. Anchor-tag signature positions survive repagination, signer identity can require an emailed one-time code and a per-signer password read from the signer’s Salesforce record, and you can bundle multiple templates into one signature run. There’s no managed package to install; the connector works in sandboxes exactly as in production and can be triggered by a button, a stage change, a field change, or a new file.

If you’re ready to stop assembling documents by hand, try Savvy DocuGen in your sandbox and run a Flow-triggered merge and signature on a sample Opportunity.

Read next