Rendex
Recipe

Save a Scheduled Report PDF to SharePoint in Power Automate

Render your weekly or monthly report to a PDF on a schedule and file it straight into SharePoint or OneDrive — no custom connector, no headless browser. Power Automate's built-in HTTP action calls Rendex, and one base64ToBinary() expression turns the response into the file.

Last updated 2026-07-15

The Problem

Recurring reports belong in a shared library, not an inbox — a weekly ops summary in SharePoint, a month-end statement in OneDrive. Power Automate can schedule the flow and build the HTML, but two things trip people up: there's no native rendering connector, and the built-in HTTP action doesn't hand you a file you can drop into SharePoint — you get a response body you have to convert. Guess the wrong shape and the Create file action writes a broken PDF, so most people give up and email a link instead.

The Solution

Use the built-in HTTP action against /v1/screenshot/json — the JSON endpoint returns the PDF as base64 in the body, which is exactly what Power Automate parses cleanly (the binary endpoint is awkward here). Then in a Create file action, set the File Content to base64ToBinary(body('HTTP')?['data']?['image']) and Power Automate writes a real PDF into your SharePoint library or OneDrive folder. Template the report HTML with a data object so each run fills in the period and figures. No custom connector to get approved, no headless browser, and it runs on the free tier — a scheduled, filed, versioned report with one flow.

How the Workflow Runs

Recurrence trigger

A scheduled Power Automate flow fires — weekly, daily, or month-end.

HTTP → Rendex (JSON)

POST to /v1/screenshot/json returns the PDF as base64 in the response body.

Create file

base64ToBinary() decodes it into a Create file action for SharePoint or OneDrive.

Input → Rendered Output

Left: a Power Automate flow — a Recurrence trigger, an HTTP action calling Rendex /v1/screenshot/json, and a Create file action with a base64ToBinary() expression. Right: a SharePoint document library showing the freshly filed 'Weekly-Report-2026-05-25.pdf', with an orange Rendex accent on the rendered report thumbnail.

Rendered by Rendex

What You Need

  • A Rendex API key — the free tier includes 100 renders/month with no card required.
  • A Power Automate flow with a Recurrence trigger (or any trigger that has the report data ready).
  • A step that builds the report HTML string (a Compose action, or data from Dataverse/SQL/Sheets).
  • A SharePoint site or OneDrive folder connected in Power Automate for the Create file action.

What This Recipe Uses

JSON response, base64 PDF

POST to /v1/screenshot/json and the PDF comes back base64 in the body — the shape Power Automate parses natively, so there's no custom connector to install or approve.

base64ToBinary → real file

In the Create file action, set File Content to base64ToBinary(body('HTTP')?['data']?['image']). Power Automate writes a genuine PDF into SharePoint or OneDrive — no broken-file guesswork.

Scheduled and versioned

A Recurrence trigger files a fresh report every cycle, and SharePoint versions it — a clean archive without anyone running it by hand.

Template the report per run

Pass a data object of Mustache values with the HTML so each run fills in the period, figures, and title — one template, a correct report every cycle.

Build It

flow.yaml
# Power Automate — flow outline
Trigger:  Recurrence — every Monday 07:00
Action 1: HTTP
  Method:  POST
  URI:     https://api.rendex.dev/v1/screenshot/json
  Headers: Authorization: Bearer YOUR_API_KEY
           Content-Type: application/json
  Body:    { "html": "<your report template with {{period}}>",
             "data": { "period": "Week of May 25" },
             "format": "pdf", "pdfFormat": "A4" }
Action 2: SharePoint — Create file
  File Name:    Weekly-Report-@{formatDateTime(utcNow(),'yyyy-MM-dd')}.pdf
  File Content: @{base64ToBinary(body('HTTP')?['data']?['image'])}
render-json.sh
# What the HTTP action posts — note /json returns base64, not raw bytes.
curl -X POST https://api.rendex.dev/v1/screenshot/json \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "html": "<h1>Weekly Report — {{period}}</h1> ...",
    "data": { "period": "Week of May 25" },
    "format": "pdf",
    "pdfFormat": "A4"
  }'
# -> { "data": { "image": "<base64 PDF>", "format": "pdf", ... } }

100 free API calls/month — no credit card required. Get your API key and start building.

Reach for this when a report needs to land in the Microsoft stack on a cadence — a weekly KPI summary versioned in a SharePoint library, a month-end statement dropped in a client's OneDrive folder, a compliance snapshot archived where auditors already look. The scheduling and the HTML assembly are the easy parts; the friction that stops people is turning Rendex's response into a file Power Automate can actually save. The fix is choosing the right endpoint and expression: /v1/screenshot/json returns the PDF as base64 (the shape Power Automate parses without a custom connector), and base64ToBinary(body('HTTP')?['data']?['image']) in a Create file action decodes it into a genuine PDF. Template the HTML with a data object so the period and figures fill per run, point the Create file action at your library, and the flow files a fresh, correctly-named report every cycle with nothing to host. It runs on the free 100 renders a month — enough to prove a reporting cadence before it scales.

Frequently Asked Questions

Related Resources