Skip to main content
Reporting turns workflow data into a web page you can share with a client: a template sets the layout, and a workflow’s Generate Report step fills it in. Anyone who can open Reporting, which includes Admins and Approvers, can create and edit templates.

Reports: designing a template, filling it from a workflow, then viewing and sharing the report (1:25).

The Templates page, Manage your reporting templates, with Refresh and New Template buttons, a Search templates box and one template, Docs sample – Monthly client summary, type html, created Oct 16, 2026, with Edit and delete actions.

Example: a monthly client summary

1

Create the template

Go to Reporting > Templates, click New Template, name it, keep the type on HTML and paste the template into the editor:
2

Preview it with sample data

Click Preview Context, paste data shaped like your workflow’s and click Apply & Close.
The Handlebars Preview Context dialog, Enter JSON data to use for previewing your Handlebars template, containing the Acme Corp sample data, with Close and Apply & Close buttons.
The preview beside the editor shows the result. Click Create Template.
The Create New Template dialog: name Docs sample – Monthly client summary, Template Type HTML, the template in the Template Editor with How Templating Works, Apply Base Template, Preview Context and Hide Preview above it, and a preview showing Acme Corp: IT summary for September 2026 with a backups table where ACME-NAS01 is Failed in red.
3

Generate it from a workflow

Add Generate Report from Reporting, choose the template, enter a report name and put the data in Parameters; here {{ ctx.params | json }} passes everything the trigger received.
The Generate Report step: Template Docs sample – Monthly client summary, Report Name built from ctx.params.client and month, Visibility Shareable Externally, Password sample-only and Parameters ctx.params with the json filter.
Visibility is Internal Only (your team, in Studio) or Shareable Externally (a public link), with an optional password; neither can change once the report exists.
4

Test it

Save, click Manual Trigger and enter the sample data from step 2. The output has the new report’s reportId.
The Generate Report step in a run: Status success, Type generate_report and Output with status success, message Report generated successfully, reportId, createdAt, reportName Acme Corp: IT summary for September 2026 and visibility shareable.
In a real workflow, fill Parameters from earlier steps, such as a ticket count from your PSA and backup results from your backup tool, and run it on the 1st of each month with a Cron trigger such as 0 7 1 * *.

Template syntax

Templates use Handlebars and see exactly the JSON object in Parameters. Do sums and date formatting in a Code step before Generate Report and pass the results in Parameters. A Markdown template is filled the same way, then turned into HTML.

Reports

Reporting > Reports lists every generated report. Click View to open one; Download Report saves it as an HTML file, and Show in the Password column reveals a shareable report’s password.
The Reports page, View and manage generated reports, with Search reports, an All Visibilities filter and one report, Acme Corp: IT summary for September 2026, Shareable Externally, a hidden password with Show, the created date, and Share, View and delete actions.
A report open from View, titled Acme Corp: IT summary for September 2026 with a Download Report button, showing the tickets sentence, the backups table and the notes line.

Share a report

Click Share on a shareable report and copy the link. It uses your custom forms domain if you have one (Branding).
The Share Report dialog with a Public Report URL starting https://forms.yourmsp.com/telescope/reports/, a Copy button and Open in new tab.
Recipients enter the password, if there is one, then see the report under your Dark Mode Logo, or your display name if you haven’t uploaded one:
A public report page for Acme Corp: IT summary for September 2026 saying This report requires a password to access, with a Password box and an Access Report button.
The public report with a black header showing Your MSP, the report name, the generated date and Download, above the Acme Corp summary.
To email the link from the workflow, add a Send Email step after Generate Report with https://forms.yourmsp.com/telescope/reports/<org-id>/{{ ctx.steps['Generate Report'].reportId }}, using your forms domain (or app.triggr-app.com) and your organisation’s ID from Support > Copy Org ID in the top bar. Send the password separately. A report is a snapshot: editing the template changes only reports generated afterwards. To withdraw a report, delete it.

FAQ

Reports are web pages; recipients can download the page or print it to PDF from their browser.
Only if you pass them in Parameters, such as "client": "{{ ctx.client.name }}".
Set a background colour in the template, as the example does with background: #ffffff.
Yes, through MCP with the Report Templates and Reports tools, such as create_report_template and generate_report.
Use Decks.

Troubleshooting

Parameters isn’t a JSON object once its templates are filled in. Put quotes around text values, as in "client": "{{ ctx.client.name }}", or use | json.
The template has a Handlebars mistake, such as an {{#each}} without {{/each}}. Check it with sample data in the template’s preview.
The step’s template was deleted. Choose another in the step and save.
The name in the template doesn’t match Parameters: {{tickets.closed}} needs "tickets": { "closed": … }. Names are case-sensitive.
The report is Internal Only. Generate it again with Visibility set to Shareable Externally.