Vulnsy Docs

Creating Templates

Build Word DOCX templates for Vulnsy report export — tag placement, testing, and uploading.

Vulnsy templates are .docx files with placeholder tags. Design your layout in Word, add tags where dynamic data should appear, then upload.

Familiarise yourself with the Template Tags reference first.

Creating Your Template

Create a New Word Document and Disable Spell Check

Open Word and create a blank .docx document. Before adding any tags, disable spell check — it silently splits tags across XML nodes, breaking them.

File → Options → Proofing — uncheck "Check spelling as you type" and "Mark grammar errors as you type".

This is the most common cause of broken templates. With spell check enabled, Word may split {client.name} into {client + .name} in the underlying XML.

Add Static Content

Add your report structure: cover page, logo, section headings, headers/footers, page numbers, table styles, and branding.

Add Template Tags

Type each tag in one continuous motion — opening { to closing } without stopping. Do not copy/paste tags or edit them after typing.

{report.title}
Version {report.version} | Status: {report.status}
Generated: {metadata.generatedDate} by {metadata.generatedBy}

Prepared by {organization.name} for {client.name}
Contact: {client.contactName} ({client.contactEmail})

Project: {project.name}
Testing Period: {project.startDate} — {project.endDate}

EXECUTIVE SUMMARY
{~report.executiveSummary}

METHODOLOGY
{~report.methodology}

Add Findings Loop

Loop opening/closing tags must each be in their own paragraph.

{#findings}
{findingId} - {title}
Severity: {severity} | CVSS: {cvssScore}

{~description}

Remediation:
{~remediation}

{#evidence}
{%image}
{caption}
{/evidence}
{/findings}

{#findings}, {/findings}, {#evidence}, {/evidence}, and {%image} must each be alone in their own paragraph.

Add Consultants and Tabs (Optional)

{#consultants}
{name} — {email} — {jobTitle}
{/consultants}
{#tabs}
{name} ({exportTagPrefix})
{/tabs}

Save and Upload

Save as .docx (not .doc or .dotx). Navigate to Admin → Report Templates, upload the file, give it a name, and save.

Test with a Real Report

Export a report using your template and verify:

  • All tags replaced with real values (no raw {tag} text remaining)
  • Findings loop generates entries for each finding
  • Evidence images appear within findings
  • Consultants list renders correctly
  • Formatting, headers/footers, and page breaks look correct
  • Conditional sections show/hide as expected

Tag Placement Rules

Tag TypePlacement
Inline tags ({report.title})Can be mixed with text
Loop tags ({#findings}, {/findings})Own paragraph
Image tags ({%image})Own paragraph
Conditional tags ({#field}, {/field})Own paragraph

Troubleshooting

ProblemFix
Tag shows raw {tag} textDelete and retype in one motion — XML is likely split
Loop produces no outputEnsure loop tags are in their own paragraphs. Verify data exists.
Image not appearingPut {%image} on its own line. Check evidence has uploaded images.
Export failsCheck every {#loop} has a matching {/loop}. Check for typos.

Next Steps

On this page