PDF

Automate weekly report PDFs and images with Make or Power Automate

Schedule a weekly report in Make or Power Automate, send the numbers to a saved thirds.ai design over HTTP, and get a branded PDF or image back every time.

Theo Whitfield 9 min read

Schedule your Make scenario or Power Automate flow to pull this week's numbers, send them as JSON to thirds.ai, and get back a branded PDF or image built from a saved design. There is no published Make app or Power Automate connector for thirds.ai, so each tool reaches the API through its own generic HTTP action. Each successful file costs one credit, and a verified free account starts with 50 credits a month with no card.

This guide adds a weekly schedule trigger and the exact HTTP steps for both tools. The API workflow guide covers the same request for n8n, Zapier, and other workflow tools.

Connect Make or Power Automate to the API

Both tools call the same thirds.ai endpoint, so the setup only differs in where each one keeps the schedule and the request. Create a key on the API keys page and send it as Authorization: Bearer YOUR_API_KEY. Keep the key in the tool's own connection or secret store, never typed into a step you export or share.

Make: HTTP module

  1. Add a schedule to the scenario. Click the clock icon and set it to run every Monday morning.
  2. Add a module that reads this week's numbers from your CRM, spreadsheet, or database.
  3. Add an HTTP > Make a request module:
    • URL: https://thirds.ai/v1/pdf for a document, or https://thirds.ai/v1/image for a picture.
    • Method: POST.
    • Headers: Authorization: Bearer YOUR_API_KEY, Content-Type: application/json, and Idempotency-Key set to something that changes only once a week, such as weekly-report-{{formatDate(now; "YYYY-WW")}}. A key like this keeps a retried scenario run from making a second file.
    • Body type: Raw. Content type: JSON (application/json).
    • Request content: the JSON body in Fill a saved report design below, with your own values mapped in from the previous module.

Power Automate: HTTP action

  1. Add a Recurrence trigger and set it to run every Monday morning.
  2. Add an action that reads this week's numbers from your system of record.
  3. Add an HTTP action:
    • Method: POST.
    • URI: https://thirds.ai/v1/pdf or https://thirds.ai/v1/image.
    • Headers: Authorization as Bearer @{parameters('ThirdsApiKey')}, Content-Type as application/json, and Idempotency-Key as something like weekly-report-@{utcNow('yyyy-MM-dd')}.
    • Body: the JSON body below, with your own values in place of the sample ones.

Fill a saved report design

Two verified gallery designs fit a weekly update. Open either one, choose Open in editor to save your own copy, and read its template ID from your templates list.

One metric and a next step

The Campaign report template design leads with one number, a short note on what moved it, and one action for next week. Every field is optional, so you can send only the ones you have.

A portrait report with a near-black diagonal header, an amber metric card showing +31%, and a white next-step panel with an orange edge
Campaign results report templatePDF
FieldHolds
periodThe week or reporting range
title, summaryThe report heading and a short summary
metric_label, metric, metric_noteThe headline number, its label, and why it moved
next_stepThe one thing to do next
footerWho prepared the report
primary_colourYour brand colour for the metric card
POST /v1/pdf
curl --fail-with-body --silent --show-error https://thirds.ai/v1/pdf \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: weekly-report-2026-38' \
  --data '{
    "template_id": "tpl_00000000000000000000000000000000",
    "version": 1,
    "data": {
      "period": "Week 38, 2026",
      "title": "Revenue pipeline expanded across inbound tiers.",
      "summary": "Weekly inbound pipeline and conversion summary for the RevOps team.",
      "metric_label": "Weekly conversion rate",
      "metric": "+31%",
      "metric_note": "Refined landing copy and a faster lead response time.",
      "next_step": "Review mid-funnel drop-off with the outbound team on Tuesday.",
      "footer": "Prepared by RevOps",
      "primary_colour": "#E2A73A"
    }
  }'

Revenue, clients, and growth in one page

The Monthly report template design fits a fuller update with a growth badge, a revenue card, a new-clients card, and a short plan for next period. Its schema requires every field below and rejects extra ones.

A monthly report on cream paper with a dark green header, an orange growth badge, a dark green revenue card, an orange new-clients card, and a white what-went-well panel
Monthly report templatePDF
FieldHolds
business_nameThe team or company issuing the report
periodThe reporting range
revenueThe headline revenue figure, already formatted
clientsThe new-clients count
growthThe growth figure for the badge
highlightsWhat went well, in a sentence or two
next_stepsThe plan for next period

Send this body to the same /v1/pdf request, with template_id and version set to your saved copy of Monthly report.

Read the job and download the file

thirds.ai returns 200 with a terminal status when the file is ready inside the request's short wait, or 202 while the job is still queued or running. A 200 response can still carry succeeded, failed, or cancelled, so read status either way.

  1. If status is succeeded, copy download.url from the response. It is a relative path, so add https://thirds.ai in front of it before you use it.
  2. If the response is 202, poll GET /v1/pdf/{id} (or /v1/image/{id}) with a short delay under your own timeout. Stop at succeeded, failed, or cancelled.
  3. The signed download link lasts 15 minutes, and the file itself stays available for 30 days. Add a step after the download to save it straight to SharePoint, Google Drive, or S3, or to send it as an email or Teams attachment, so nobody has to revisit the run later.
GET /v1/pdf/{id}
curl --fail-with-body --silent --show-error \
  https://thirds.ai/v1/pdf/pdf_00000000000000000000000000000000 \
  -H 'Authorization: Bearer YOUR_API_KEY'

Save the job ID next to the week it covers in your own workflow history. If a run times out or a step fails after the create request, run the same step again with the same Idempotency-Key and body. You get the same job back, and you're never billed twice for one week's report. Read retry and download recovery for the full contract.

Sending the same report to many clients each week? Batches fills one saved design from a CSV of rows and returns every file in one ZIP, so your scheduled flow only needs to build one file and one row per client.

What this costs each week

One finished file costs one credit, and a failed file costs nothing. Four weekly reports sent to ten clients make 40 files a month, so that run spends exactly 40 credits. A verified free account starts with 50 credits a month with no card, and Starter adds 2,500 credits a month for $29 billed monthly or $290 billed yearly as your reporting volume grows.

Fix the common failures

What you seeWhat it means and what to do
400 template_data_invalidThe data fails the saved design's schema. Fix the listed fields and send the step again.
template_missing_dataThe saved design reads a field the request didn't include. Send every required field.
402 insufficient_creditsAdd credits or wait for next month's grant, then retry with the same key.
409 idempotency_conflictThe same key was used with different data. Give this week's run its own key.
429 rate_limitedWait for Retry-After, then retry with the same key.
Job category renderer_failureInternal recovery ended. Start a new job with a retry limit, or contact support with the job ID.

Sign in to copy a report template and send your first request with the free monthly credits.

Make the file this guide describes

Start from a real template, put in your own words and colours, and click one button to get the finished file.