AI reports
A scheduled flow writes a report page with the organization's AI, a person approves it, and the PDF is sent by e-mail
A report in PNeX is written by a flow: a schedule gathers the data of the period, the organization's AI writes the text, the text becomes a page, a person approves it, and the PDF leaves by e-mail. There is no separate report studio — everything is built from ordinary flow nodes.
You build it in Automation › Flows. The organization needs an AI provider (organization settings) and an e-mail (SMTP) notification channel.
1. Write the report
In a first flow:
-
Inject with a cron schedule — for example every Monday at 7:00 — starts the flow.
-
Gather the data of the period: an HTTP fetch, a Memory read, the output of a Video description, events…
-
AI text: write the Instruction ("Write the weekly report of these events: what happened, when, anything unusual"), and if needed the Data (path in the message) and the Maximum length (characters). The answer is Markdown, marked as AI-generated.
-
Write a page, in one of two modes:
- A new page for each message, with a Title of the new pages such as
Weekly report {week}—{date},{time}and{week}are replaced (UTC); - Append at the end of a page, for a running log.
Each write freezes a named version (
{date}by default), marked written by a flow and, when the text comes from the AI, Holds AI text · review it before it is sent. - A new page for each message, with a Title of the new pages such as
-
Page PDF right after Write a page, with the Version set to The one of the message. It has two outputs:
- PDF ready — the PDF is in the media library;
- To approve — the version holds AI text not yet approved. Wire a Notification there ("weekly report to review", with the page link).
2. Approve it
The reviewer opens the page in Knowledge › Pages, reads the version, fixes it if needed (then saves a new version), and clicks Approve. Approval records who approved and when; viewers cannot approve. The PDF button of any version downloads it at any time.
3. Send it once approved
In a second flow:
- Inject every 15 minutes.
- Page PDF with the Version set to The latest sendable version of a page, once, and the report page picked. A version is never sent twice by the same node.
- Notification on the e-mail channel, with the PDF attached:
- use a template with a variable, for example
report(subjectReport {{ report.title }} v{{ report.version }}), and wire PDF ready to thereportrow; - set PDF attachment to
report— or toasset_idwhen the template has no variable; - wire the mandatory trigger row to an Inject that sends
trueonce when the flow starts.
- use a template with a variable, for example
Only e-mail channels carry the file; other channels get the message alone. Only PDFs made by a Page PDF node can be attached. If the file cannot be read, the e-mail is not sent — no report leaves without its PDF — and the delivery shows as failed in the notification journal.
Unticking Approval required for AI text on the Page PDF node sends AI reports without review; the PDF then says "not reviewed". Keep it ticked unless the data cannot carry hostile or wrong text.
Good to know
- The data is passed to the AI as data: instructions written inside it (a transcript saying "ignore your rules…") are ignored. An AI report is still meant to be read by a person before it leaves the organization.
- Every AI text call counts in the organization's daily AI quota, shared with image and video descriptions.
- Without an AI provider, the node shows "AI call failed".
- PDF language on the Page PDF node sets the language of the PDF's own words (header, notices): English or French.
What it does not do yet
- No charts or tables inside the report page: a Markdown table becomes one paragraph per row.
- No report templates or report gallery: each report is a flow you build.
- Sending is by e-mail only for the attachment.
Related pages
- Pages — versions, approval and PDF
- Flows — the editor and the runtime
- Notifications — channels and templates
- AI assistant — the organization's AI provider

