Share what an n8n workflow produced
n8n is very good at assembling a report. Pull yesterday's rows, run them through a Code node, template the HTML, and you have a clean daily summary.
Then you reach the last node and discover n8n does not host anything. The options on offer are: email it as an attachment, drop it in Drive, or paste a truncated version into Slack. All three are worse than the report you just built.
One HTTP Request node
Add an HTTP Request node at the end:
- Method —
POST - URL —
https://commareports.com/api/v1/reports - Authentication — Generic Credential → Header Auth, with
Authorizationset toBearer comma_sk_…(create the token under API tokens) - Body — JSON:
{
"title": "Daily pipeline summary — {{ $now.format('yyyy-LL-dd') }}",
"html": "{{ $json.html }}"
}
The response gives you url and id. Feed url into the Slack or Gmail node
and send a link:
Daily pipeline summary is up: {{ $json.url }}
That message is three lines long, renders as a card, and opens as a page. The attachment version is a file your finance lead will not double-click.
Stop creating a new link every night
The first version of this workflow makes a fresh report per run, and after a month the channel has thirty links, twenty-nine of which are wrong.
Store the id once — in a data table, a static workflow variable, wherever your
setup keeps state — and switch the node to PATCH:
https://commareports.com/api/v1/reports/{{ $json.report_id }}
Now the same address always shows today's numbers, and every comment anyone left is still attached to it. If you would rather not own the schedule at all, routines run the job and update the report for you.
The AI Agent node
If the report is written by n8n's AI Agent node rather than templated, give the agent the publish call as a tool — an HTTP Request tool, or Comma's MCP endpoint — and instruct it to end with the URL. The run then finishes with an address instead of a long string that has to pass through every subsequent node.
Worth knowing
- Header Auth credential, not a hardcoded header. The token stays in n8n's credential store rather than in the workflow JSON you export and share.
reports:writeis the only scope a publisher needs — see scoped tokens for AI agents.- 5 MB per report body. Trim embedded base64 images before the node.
- Reports render sandboxed, so charts run without touching anything else.
Try it
Free — unlimited reports, commenters and revisions.