Master Templates: One Template, Many Variations
Build one Word template with every possible section, then enable only the relevant ones per appraisal. Disabled sections drop out of the rendered PDF.
You maintain four versions of your appraisal report template: roof-only, roof-plus-interior, full-property, and full-property-with-weather-events. Every time you tweak the standard boilerplate at the top of the report, you have to make the same edit in four places. Miss one and the next case using that variant looks inconsistent.
A Master Template collapses those four files into one. You author every possible section, wrap each in conditional show markers, and toggle sections Included or Skipped per case. The PDF only renders what is enabled. This is the most advanced template pattern AwardLettr supports, and it pays off when you have meaningful variation across cases combined with shared boilerplate you do not want to maintain in N places.
This article walks through the per-appraisal toggle UI, the showBegin/showEnd markers in your Word template, dynamic section headers, and a full skeleton you can adapt.
How it works in one sentence
Toggling on the Appraisal Page
Open any appraisal's Report Details tab. Each Data Table card and each Narrative Snippet card has a small pill in its header:
- Included (indigo dot) — the section will appear in the rendered PDF. This is the default.
- Skipped (grey dot) — the body collapses with a "Skipped on this appraisal — won't appear in generated reports" message. The section drops out at render time.
Click the pill to toggle
Wiring Conditional Sections in Word
Toggling Skipped on the appraisal makes the underlying data empty (empty array for tables, empty string for snippets). If your template just references the data tokens directly, you'll get an empty Word table or empty paragraph — the section header and surrounding markup still render. To make the entire section disappear, wrap it in Carbone's show markers:
{d.tableEnabled.comparisonRows:showBegin}
{d.tableLabel.comparisonRows} ← section header pulls from settings
[your loop table here, with {d.comparisonRows[i].coverage} etc.]
[your totals row, with {d.comparisonRowsTotals.awardRcv} etc.]
{d.tableEnabled.comparisonRows:showEnd}Now, when comparisonRows is Skipped on the appraisal, everything between showBegin and showEnd drops out. When it's Included, the section renders normally with the looped rows and totals.
Same Pattern for Snippets
{d.snippetEnabled.roofNarrative:showBegin}
{d.snippetLabel.roofNarrative} ← section header (Roof Inspection Narrative)
{d.snippet.roofNarrative:html} ← the prose, rendered as HTML for bullets / bold
{d.snippetEnabled.roofNarrative:showEnd}showBegin/showEnd is opt-in
Dynamic Headers: Renaming Without Touching Templates
Each Data Table and Snippet has a Display label you set in Settings. Templates can pull that label as the section header — when you rename the label, every template using the dynamic-header token picks up the new name on the next render.
| Token | What It Renders |
|---|---|
| {d.tableLabel.<tableName>} | The Data Table's display label, e.g. 'Award Comparison Table' |
| {d.snippetLabel.<slotName>} | The Snippet slot's display label, e.g. 'Roof Inspection Narrative' |
Headers render even when the section is Skipped
Putting It All Together: A Master Template Skeleton
Here's the conceptual structure of a master template that handles roof, interior, weather events, and an award comparison — any subset of which might apply to a given case:
# At the top of the template:
Insured: {d.insuredName} Claim: {d.claimNumber} DOL: {d.dateOfLossLong}
# Each major section is wrapped in show markers:
{d.snippetEnabled.roofNarrative:showBegin}
{d.snippetLabel.roofNarrative}
{d.snippet.roofNarrative:html}
{d.snippetEnabled.roofNarrative:showEnd}
{d.snippetEnabled.interiorNarrative:showBegin}
{d.snippetLabel.interiorNarrative}
{d.snippet.interiorNarrative:html}
{d.snippetEnabled.interiorNarrative:showEnd}
{d.tableEnabled.weatherEvents:showBegin}
{d.tableLabel.weatherEvents}
[loop table for weather events, with totals if applicable]
{d.tableEnabled.weatherEvents:showEnd}
{d.tableEnabled.comparisonRows:showBegin}
{d.tableLabel.comparisonRows}
[loop table for comparison rows + totals]
{d.tableEnabled.comparisonRows:showEnd}
# Closing signature, etc.Now: a roof + interior + weather case enables those three on the appraisal, leaves comparison off, generates a PDF with three sections. An interior-only case enables just that one slot, generates a much shorter PDF. Same template, different output, no template editing per case.
When to Reach for This Pattern
- You write similar reports across many cases but the section list varies
- You find yourself maintaining N templates that differ only in which sections they include
- Different file types (carrier-side, insured-side, umpire) share most sections but each has a few unique ones
- You want to give staff a single template to use rather than asking them to pick the right variant
You can mix Included and Skipped freely
Related Articles
Data Tables: Repeating Sections in Your Templates
Define per-appraisal tables (comparison rows, weather events, roof slopes) that loop in your Word templates with auto-totaled currency columns.
Narrative Snippets: Reusable Boilerplate Prose
Define reusable paragraph templates with embedded tokens. Write the boilerplate once, fill it per appraisal, ship it in any number of Word templates.
Computed Defaults: Auto-Fill Custom Fields
Make a custom field auto-compute its value from a Data Table cell or by aggregating other custom fields. The user can still type a value to override.