Running in 1,163 Salesforce orgs today 5.0 on the AppExchange · 20 reviews

Stop paying per seat for Salesforce document generation.

Invoices, quotes, contracts, receipts, board packets, year-end statements — merged from live Salesforce data, emailed, signed, and filed back on the record. PDF, Word, Excel, or PowerPoint. Nothing ever leaves your org, and it's free for unlimited users.

Free forever, unlimited users — no call required to use it. Book time only if you want us to scope a migration or build the templates for you.

Runs 100% inside your org E-signatures included, no envelope fees 50,000+ child records per document Unlimited users, no paid tiers
Generated by Portwood
W Automation_Brief_Template.docx
AUTOMATION BRIEF
Prepared for
{Lead.Company} {Lead.Industry} · {Lead.Country}
Recommended workflow
{#WorkflowSteps} {Name}{Document} {/WorkflowSteps}
Delivery · Signature · Storage
Send: {Lead.Email} Track: {*Tracking_Token__c:qr} Sign: {@Signature_Approver}
P Nonprofit_Automation_Brief.pdf
AUTOMATION BRIEF
Prepared for
Riverbend Community Fund
Nonprofit donor operations
Workflow path
Donation receivedReceipt PDF
Major gift pledgeAgreement + signature
Board meetingImpact packet
Year-end closeGiving statements
Automation output
Generated, emailed, storedIn Salesforce
Program approval
1,163
Salesforce orgs
automating documents natively
50,000+
Child records
per document, via Giant Query
$0
Forever
unlimited users and documents
Zero
External callouts
your data never leaves your org
Reviews

Rated 5.0 on the AppExchange.

Real admins, real names, public reviews — pulled live from Salesforce's own review API, so this is whatever the listing says today.

Braiden RoachTriple Star Ranger · 7 Aug 20265.0 out of 5

This Product Rocks!

I would absolutely recommend this app to others! Portwood has easily hit the nail on the head when it comes to solving our Document Generation and E-Signature issues. I originally showed it to the team a few weeks ago and they were impressed, but the constant updates to this product with new features has astounded us! We're happy to see this come to life and recently be listed on the official AppExchange. Many congratulations are in order to the entire Portwood team!

Joseph EdwardsRanger · 4 Aug 20265.0 out of 5

Absolute game changer in the area of document generation

The Portwood document generation solution is one of the most exciting Salesforce apps to come along in years. I've been enthusiastically testing and using Portwood since its earliest days, and I'm constantly delighted to see community-driven feature requests (including a couple of my own) quickly incorporated into the package. A complete beginner can create professional-looking documents in literally minutes. No SOQL expertise or extensive design skills are required. What I most appreciate is how flexible the app is: you can invoke templates from a runner on a record page, configure buttons using CMDT, or use invocable Apex actions inside Flows to create and disseminate documents. For more advanced users, you can even "bring your own data" and construct documents from unrelated objects and records. This really opens up opportunities to create analytical artifacts with real business purpose, not just printouts. Many kudos to the Portwood team for a free solution the Salesforce ecosystem has needed for years.

Sarah Amin31 Jul 20265.0 out of 5

Amazing free solution and fantastic support

DocGen solves a need for so many of my nonprofit clients that need a DocGen solution but can't afford one of the big name document generation solutions, especially if they need eSignature. DocGen is versatile and easy to configure. The team behind DocGen makes the solution even better. They're super responsive, encouraging and knowledgeable. As a independent consultant, having great support makes my life so much easier.

Already paying for this

Your renewal quote is the strongest argument we have.

If you're on Conga, S-Docs, Nintex DocGen, PandaDoc or DocuSign Gen, you're paying every year for something your org can already do natively. We'll be straight with you about the catch: merge syntax differs between vendors, so templates get rebuilt, not imported. That's a one-off piece of work against a bill that repeats.

  • Per-seat licence$0
  • Per-envelope signing fees$0
  • Document volume capNone
  • Renewal negotiationNone
  • Your data leaving the orgNever
Workflow automation platform

Documents are the output. The workflow is the product.

Portwood connects Salesforce data, templates, Flow, email, signatures, and file storage into complete document automation patterns your team can actually run.

Generate from records, lists, and Flow actions Email personalized PDFs, decks, and packets from Salesforce Route for signature and store the final audit trail Keep the app free; bring Portwood in when you want expert hands
Replacing a paid vendor? See how migration works

Nonprofit donor journey

Every gift acknowledged the day it lands, pledges signed, board meetings briefed — and year-end giving statements for every donor at once.

Donation receipt Pledge agreement Impact packet Year-end giving statements

Lead to invoice

Use the same Salesforce-native engine for follow-up packets, proposals, quotes, contracts, and invoices.

Lead brief Proposal Quote Agreement

Field and customer service

Generate field summaries, inspection reports, customer packets, and operational exports from live Salesforce data.

Work order Inspection report Data export Customer summary
Global footprint

Reducing document automation costs worldwide

Every install on the map is a Salesforce team choosing native automation over another external document vendor.

Capabilities

Everything a document automation platform needs.

Every capability is included. No paywalled features. No upgrade prompts. No "contact sales" to unlock the workflow your team actually needs.

Native templates

Start with the template your team already uses: Word, Excel, PowerPoint, HTML, or a packaged web page. Upload, add merge tags, and generate from Salesforce.

Giant Query engine

Generate documents from records with 50,000+ child rows. Cursor-based pagination, global ORDER BY across all batches, template-embedded images preserved.

Zero external callouts

100% Apex and Lightning Web Components. Your record data never touches a third-party API. Works when competitors' vendors have outages. Works in air-gapped orgs.

Built-in e-signatures

Send documents for signing directly from Portwood. Guest-user signing pages, namespace-aware URLs, and tamper-evident audit trails. No DocuSign, no PandaDoc, no per-envelope fees.

Barcodes & QR codes

Code 128 barcodes and QR codes render natively in Word templates and PDFs. No external libraries, no font installations, no licensing. Just add a tag.

{*ProductCode}

Flow automation

Generate and route documents from any Salesforce Flow. Sample Flows bundled. Dedicated Giant Query Flow Action for bulk automation. DML-bulkified and governor-safe.

Hebrew, Arabic & RTL

Right-to-left language support built in. Multi-language documents work natively. No plugins, no add-ons, no separate template branch for each locale.

Conditionals & aggregates

{#IF Amount > 50000} clauses. Inverse conditionals. Checkbox format. SUM, COUNT, AVG, MIN, MAX aggregates. Date and currency formatting at any depth.

Free forever, no seat math

Unlimited users, unlimited templates, unlimited documents. No paywalled features, no "upgrade to unlock," no renewal negotiation when your team doubles. Apache 2.0 licensed, so it stays that way.

HTML-native templating

Author in HTML. Or Word. Automate anywhere.

The same merge syntax lives in a pure-HTML template or a Word doc — both run on the same engine, because Portwood renders HTML and converts your Word file into it. Word is the quick on-ramp for straightforward documents; when a layout gets genuinely complex, authoring in HTML is the safest path — what you write is exactly what renders, with no conversion surprises.

INVOICE
Bill to:   {Account.Name}
           {Account.BillingStreet}
           {Account.BillingCity}, {Account.BillingState}

{#Opportunities}
  {Name}                      {Amount:currency}
  Closed: {CloseDate:MMMM d, yyyy}
{/Opportunities}

Line items: {COUNT:Opportunities}
Subtotal:   {SUM:Opportunities.Amount:currency}

{#IF Amount > 50000}
  Enterprise pricing applied: 15% discount
{:else}
  Standard pricing
{/IF}

Barcode:   {*InvoiceNumber}
QR code:   {*Website:qr}
Signed by: {@Signature_Buyer}
Logo:      {%Company_Logo__c:200x60}

Merge tags, loops, conditionals, aggregates — all in one automation syntax.

The same template can produce a single-record PDF, a bulk batch of 10,000 invoices, or a Giant Query document with 50,000 line items. Nothing to reconfigure. The engine decides.

{Field} merge
{Parent.Field} lookup
{#List}{/List} loop
{^Field} inverse
{SUM:List.Field} aggregate
{Date:MMMM d} format
{*Field} barcode
{*Field:qr} QR code
{%Image} image embed
{@Signature_X} e-sign
{Flag:checkbox} checkbox
{#IF x > y} conditional
One engine

Bring any template. One rendering core.

Word, Excel, PowerPoint, or pure HTML — every template converges on the same native HTML rendering engine. It's why a Word file and a hand-coded HTML template come out looking identical.

Author anywhere

Start in the tool your team already knows — Word, Excel, PowerPoint, or hand-written HTML. Add merge tags and go. No proprietary editor to learn, no format to convert by hand.

An HTML engine at the core

Under the hood, Portwood is an HTML rendering engine. Your template is merged and converted to HTML, then rendered to pixel-perfect PDF by Salesforce's own Blob.toPdf() — entirely inside your org, with zero external callouts.

Your choice of output

Want a PDF? It's rendered straight from that HTML. Want an editable Word, Excel, or PowerPoint file instead? Portwood assembles the Office document natively. Same tags, same data — you pick the format.

Built in. Not an add-on.

Electronic signatures inside the same automation flow.

Send any Portwood-generated document out for signing. Guest users sign on a public portal, signatures land back on the record, and the whole audit trail lives inside your org — tamper-evident, FLS-enforced, and visible to whoever already has access to the source record.

$0 Envelope fees
FLS Enforced
Flow Ready
1
Flow-triggered

Record-triggered Flows fire off signing requests. No human in the loop required. Send one, send a thousand.

2
Guest-user signing portal

Signers don't need a Salesforce license. Namespace-aware URLs work cleanly in subscriber orgs. Mobile-friendly out of the box.

3
Tamper-evident audit trail

Every signature captured with timestamp, IP, consent record, and the exact document version. All inside your Salesforce org. Nothing leaves.

Signature request · MSA-2026-042 Complete
MSA Agreement
Buyer
Approver
Date
Record ID
Authorized signer
JW
Jennifer Walsh
Buyer · Acme Global Logistics
Signed
RP
Rajesh Patel
Deal desk approver
Signed
DM
Dana Morales
Counter-signer · Portwood LLC
Signed
Audit trail
2026-04-10 14:22 UTC — Walsh signed (IP 73.14.*.*)
2026-04-10 14:38 UTC — Patel signed (IP 12.84.*.*)
2026-04-10 15:01 UTC — Morales signed (IP 98.22.*.*)
2026-04-10 15:01 UTC — Final PDF sealed on MSA__c record
Timestamped IP captured Record sealed

Illustrative example — the signers and org above are made up. The fields, audit entries and record sealing are exactly what Portwood writes.

The business model

What's the catch?

There isn't one, and the honest answer is more useful than a nice one: the app is free because the expertise isn't. Portwood is Apache 2.0, every feature included, unlimited users, free for life — we don't have a paid tier waiting to be unlocked. We make our money when a team wants us in it with them: building their templates, scoping a migration off a paid vendor, or staying on call through the three Salesforce releases a year. Most orgs never pay us a cent, and that's fine. The ones that do are buying our time, not our software.
P
Portwood LLC
Salesforce document automation

Install the automation engine in 30 seconds.

No configuration needed. Assign the permission set, open the app, and start building your first document workflow.

sf package install --package 04t... --wait 10 --target-org your-org
Then assign Portwood Admin (called Portwood DocGen Admin before 3.50) · open the Portwood app · automate your first document
Community

Built by Salesforce admins, for Salesforce admins.

Ask how Portwood works, request features, report bugs, and help shape the roadmap.

Discussion board

General questions about Portwood, tips, and other admins building what you're building.

Join discussions

Feature requests

Vote on what gets built next. The community drives the roadmap.

View roadmap

GitHub

Found a bug? Open an issue. Want to contribute? Open a PR.

View repo

Need someone in your org's context — your templates, your queries, a release that broke something? That's Premium Support: a private channel with the people who write Portwood, priced by the size of your org.