Back to Reports & Documents

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.

Intermediate10 min readUpdated 2026-05-03

Every roof inspection report you write starts with roughly the same paragraph: "On [date], I inspected the roof at [address]. The roof is comprised of [material] with [age] years of service…" You retype it on every case, occasionally forgetting to update one of the fields, and over a hundred reports the time adds up to a full work week of pure boilerplate.

Narrative Snippets are how you write that paragraph once and never write it again. The boilerplate lives at the workspace level with tokens like {d.insuredName} and {d.custom.roofType} embedded. On every appraisal the snippet auto-fills with the case's actual data, and you can hand-edit before generating. This is an advanced feature, but if you write similar prose section across dozens of cases, the leverage is enormous.

This article covers creating a snippet slot, what tokens it accepts, how per-case editing works, the stale-token detection that catches when underlying data changes, and how to reference snippets in your Word templates.

The big idea

Snippets let you separate the pattern (the boilerplate) from the per-case data (the actual values). You write a roof inspection narrative once. On every case, AwardLettr substitutes the case's values automatically, and you can hand-tweak before generating the PDF.

Creating a Snippet Slot

1

Go to Settings → Narrative Snippets

You'll see your existing slots (if any) and a New snippet button.

2

Click "New snippet"

Enter a Name (camelCase token, e.g. roofNarrative) and a Label (what shows on the dashboard and as the section header, e.g. Roof Inspection Narrative).

3

Write the Default body

This is the boilerplate. Use the Insert token button to embed standard tokens like {d.insuredName}, custom field tokens like {d.custom.causeOfLoss}, and filter expressions like {d.comparisonRows[where coverage='Coverage A'].awardRcv}.

4

Save

The slot is now available on every appraisal in the workspace.

What You Can Put in a Default Body

Snippet bodies accept three kinds of tokens. Loop iterators ([i], [i+1]) are NOT allowed — snippets resolve to literal text, so they need single-value tokens.

Token TypeExampleResolves To
Standard tokens{d.insuredName}The insured's name on the appraisal
Custom field tokens{d.custom.causeOfLoss}The custom field value on the appraisal
Data table filters{d.comparisonRows[where coverage='Dwelling'].awardRcv}A single value pulled from one matching row in a Data Table
Plain proseOn {d.dateOfLossLong}, the property…Text wraps around tokens naturally

No loop iterators

Tokens like {d.x[i].y} and {d.x[i+1].y} are rejected at save time. If you need a list of items in your prose, either join them with a filter expression that returns a single value, or use a Data Table directly in your template (outside the snippet).

Per-Appraisal Editing

On any appraisal, the Report Details tab shows a Narrative Snippets card with one editor per active slot. The first time you click into the textarea, AwardLettr resolves your default body against this case's data and saves the result as the editable copy. From there you can tweak the wording, add details, delete sentences — whatever the case needs.

1

Default body

Workspace-level template

2

Click into editor

Tokens resolve against case data

3

Per-case copy saved

Edit freely; original is preserved

4

Render PDF

Your edited text is what generates

Stale Token Detection

When you first resolve a snippet, AwardLettr captures a snapshot of every token value used. Later, if the underlying data changes (new claim number, edited custom field, updated comparison row), the snapshot diverges from current values and the editor surfaces an amber tokens may be stale badge.

Refresh Tokens to re-resolve

Click Refresh tokens at the top of the snippet card. AwardLettr re-runs the resolver with current data and replaces your edited body with the freshly-resolved version. Use this when the change is meaningful (insured name corrected, claim number updated). Skip it when your edits are intentional and the underlying data drift doesn't matter.

Referencing Snippets in Templates

Each slot exposes a single token in your Word document — drop it where you want the resolved prose to appear:

# In your Word template:
{d.snippetLabel.roofNarrative}        ← optional dynamic header (renders the slot's label)

{d.snippet.roofNarrative:html}         ← the body, rendered as HTML so bullets, bold, italic flow through
# (use {d.snippet.x:html(nospace)} if you want tighter paragraph spacing)

Always reference snippets with :html

The snippet editor is rich text — it stores HTML so you can use bullet lists, bold, italic, etc. Carbone needs the :html formatter to render that markup. If you reference {d.snippet.x} without :html, you'll see literal HTML tags in the PDF.

Why use {d.snippetLabel.x} for the header

If you rename a snippet from "Roof Inspection Narrative" to "Roof Findings", every template using {d.snippetLabel.roofNarrative} picks up the new name on the next render. Hardcoding the header text in the Word doc means renaming requires editing every template.

Worked Example: Roof Inspection Narrative

  1. Settings → Narrative Snippets → New snippet. Name: roofNarrative. Label: Roof Inspection Narrative.
  2. Default body: "On {d.inspectionDateLong}, I inspected the roof at {d.lossLocation}. The roof is comprised of {d.custom.roofType} with {d.custom.roofAge} years of service. Visible damage is consistent with the reported {d.custom.causeOfLoss} event."
  3. Save. The slot is now active on every appraisal.
  4. On a specific case: open Report Details, click into the Roof Inspection Narrative editor. The body resolves with the case's actual inspection date, address, roof type, age, and cause of loss.
  5. Edit as needed for the specific case (add specifics, mention notable conditions, etc.).
  6. In your Word template, put {d.snippetLabel.roofNarrative} as a header and {d.snippet.roofNarrative:html} as a paragraph. Generate the PDF — your edited prose lands in the right place.

Reserved Names

You can't name a snippet slot after a reserved AwardLettr token (snippet, snippetEnabled, snippetLabel, etc.) — the editor rejects the name.

Common Snippets Customers Build

  • roofNarrative — Roof inspection findings
  • interiorNarrative — Interior damage walkthrough
  • exteriorNarrative — Exterior siding/trim/flashing review
  • documentReview — Summary of materials reviewed
  • riskParagraph — Coverage and policy risk discussion
  • outcomeSummary — Closing paragraph with award rationale
  • introductionParagraph — Standard opening per case type
Suggest an editLast updated 2026-05-03
Narrative Snippets: Reusable Boilerplate Prose | AwardLettr Docs