For Salesforce Admins
Templates you can read.
Tables that just work.
No proprietary tags. No HTML hacks pasted from a KB article. No line items crawling over your page header. Build your first template in 10 minutes, free, no sales call.
You know this template. You hate this template.
You opened the quote template to change a column width and found raw HTML with vendor-proprietary tags. The fix for your broken table, per the vendor’s own knowledge base, was to paste <class>none</class> into your markup. That’s not template editing. That’s surgery with oven mitts on.
And the limits aren’t bugs; they’re documented in S-Docs’ own knowledge base:
10 related lists, maximum. Your eleventh table doesn't render.
20-page cap on DOCX output. Page 21 of your proposal is the vendor's problem, which makes it your problem.
No related lists in XLSX at all. The format built for tables can't have your tables.
Line items overlapping the page header. A Trailblazer-forum classic with a workaround, not a fix.
You’re not a developer. You weren’t supposed to need to be one.
Tables are the product, not the limitation.Live today
Read your templates again
A LinePDF template reads like the document it produces. Open it, see your quote. Change a label, change the label. No tag glossary, no KB scavenger hunt, no ticket to anyone.
Line items that never break
Per-line tax. Per-line discounts. Page breaks that land between rows, never through them. As many sections as your document needs; the cap is your data model, not our renderer.
Every change tracked
Roll back the Tuesday experiment. Clone the invoice into a packing slip. Templates live in your org as readable text, which means your agent, and your successor, can work with them too.
A real LinePDF template body
<template object="Quote">
<header>
<img src="{{Org.Logo}}" />
<h1>Quote {{Quote.QuoteNumber}}</h1>
</header>
<line-table source="QuoteLineItems" group-by="Section__c">
<col field="Description" />
<col field="Quantity" align="right" />
<col field="UnitPrice" format="currency" />
<col field="Discount__c" format="percent" />
<col field="Tax_Rate__c" format="percent" />
<col field="Line_Total__c" format="currency" />
<section-subtotal />
</line-table>
<totals subtotal discounts tax grand-total />
</template>The same table, incumbent style (representative)
Quote_Template.html · pasted from a KB article
<table border="0" cellpadding="2"
class="sdoc-relatedlist" width="640">
<class>none</class>
<tr><td colspan="6"
style="mso-pagination:none">
<!--{{!Quote.LineItems}}-->
</td></tr>
...
</table>Representative of the HTML-tag workarounds the incumbent KB prescribes; see their published template articles.
Watch an agent edit a template. Then ask a Word binary to do it.
Make a packing-slip template from the invoice template. Drop the prices, add a signature line.
Cloned Invoice · Standard into Packing Slip · Standard. Removed Unit Price, Discount, and Line Total; kept Qty and Description. Added a signature block above the footer. Here’s a rendered sample from order 00482.
This works because LinePDF templates are readable text the agent can actually edit. A Word binary or a wall of proprietary HTML can’t be transformed this way. That’s not a feature gap for the incumbents. It’s a structural one.
The receipts
- 01The 10-related-list cap, 20-page DOCX limit, and XLSX restriction are from S-Docs’ own documentation, not our characterization of it.
- 02The
<class>none</class>fix is the vendor’s published workaround for related-list width problems. - 03The LinePDF template above is the real format, not a mock. The full template spec ships with the package, and the security page documents how it’s sanitized.
Build your first template in 10 minutes.
Free tier. Full line-item engine. No sales call, no card, no 25-user minimum.
Free tier: unlimited documents, 3 templates, full line-item engine. No card, no minimums, no sales call. AppExchange listing in security review.