Reporting Templates Admin
URL: https://pentest.ws/reporting-admin
Once that you have collected your set of Findings for the client, you need to build a client deliverable document with these details. The Reporting Module processes user-uploaded Word files with embedded {{tags}} to generate fully customized reporting documents with a single click.
Report Templates Admin

Start by downloading a report template and begin customizing your company name, logo and other needed details.
Upload your Report Template using the Report Templates Admin screen. From here, the template will be available for use in the Engagement's Reports tab. See Generating Deliverable for more details.
Template Syntax
The template syntax includes For loops, If statements, and Variables and HTML content from your Findings entries including embedded images like screenshots for evidence. Using the Client Manager you can add tags such as {{= client.name}}
and {{= client.shortName}}
, its just one less thing you need to fill out in the final report. Once the Reporting Module is finished processing, your browser downloads the new DOCX file where you can further customize the report as needed.
Fields List
For a full list of fields available in your report templates, visit:
https://gist.github.com/PenTestWS/c5d378e789e06e81a142495ea3823a52
Text Variables
{{= engagement.name}}
Simple text variables are referenced using the {{= variable}}
format. You can also insert statements such as {{= client.city + ", " + client.state + " " + client.zip}}
Notice that with simple text variables, the dollar sign $ is not required to reference the variable, but other syntax statements requires the dollar sign $.
Rich Text / HTML
{{HTML $finding.descFull}}
Fields in the PenTest.WS user interface that use the rich text editor require the HTML format {{HTML $variable}}
to reference the variable in the reporting template.
The HTML format is also capable of rending images you have inserted into the associated field.
IF Statements
{{IF $finding.evidence != ""}}
Evidence:
{{HTML $finding.evidence}}
{{END-IF}}
Conditional statements are supported through the {{IF $variable = "value"}}
syntax. To end the if statement use {{END-IF}}
.
FOR Loops
{{FOR finding IN findings}}
Title: {{= finding.title}}
Risk: {{= finding.riskLevel}}
{{END-FOR finding}}
For loops allow you to step through arrays such as Hosts and Findings and follow the classic For Loop programming language structure {{FOR x IN array}}
and end with the {{END-FOR x}}
statement.
Working with Grouped Findings
When using Findings Groups in engagements, your reporting templates can be updated to display findings organized by group. This allows your exported reports to mirror the same structure you set inside PenTest.WS (e.g., grouping findings into External, Internal, or Social Engineering).
To enable this, use the findingsGrouped
collection in your Word template. The general structure looks like this:
{{FOR group IN findingsGrouped}}
{{= $group.groupName}} Detailed Findings
{{FOR finding IN $group.findings}}
{{= $finding.findingId}} - {{= $finding.title}}
{{= $finding.riskLevel}}
{{= $finding.descFull}}
{{= $finding.impactFull}}
{{= $finding.recoFull}}
{{END-FOR finding}}
{{END-FOR group}}
Explanation
findingsGrouped – The collection of all groups defined in the engagement.
$group.groupName – The display name of the group (e.g., External).
$group.findings – The list of findings inside that group.
$finding – A single finding object, which exposes all the same fields available when working with ungrouped findings (e.g.,
findingId
,title
,riskLevel
,descFull
,impactFull
,recoFull
).
If no groups are created in the engagement, the findingsGrouped
collection will be empty and you can continue to use the standard findings
collection as before.
Example Output
External Detailed Findings
101 - Outdated Apache HTTP Server
102 - Weak TLS Configuration
Internal Detailed Findings
201 - Excessive SMB Share Permissions
202 - Hardcoded Credentials in Scripts
This structure ensures grouped findings appear neatly in your final reports, giving clients context for how issues relate to one another.
Sample Report Template - Non-Grouped Findings
Sample Report Template - Grouped Findings
Tier Availability
Reporting Templates are available on Hobby Tier and Pro Tier.
Last updated