# Turn Notion database items into designed PDFs

Notion database to PDF, automatically. Turn each item into a branded invoice, proposal or report PDF with Zapier, Make or n8n, no manual exports.

**Quick answer.** When you add or update an item in a Notion database, Zapier, Make or n8n reads its properties. They go into a template, html-pdf.com turns it into a PDF, and the link or file goes back to Notion, your inbox or Google Drive.

## What you'll build

Many teams run clients, projects and invoices in Notion. Notion's own export gives you a plain copy of a page. This setup gives you a designed document instead.

For example, you set an invoice item's **Status** to "Send". A minute later a branded invoice PDF exists with the client's name, the line items and the total, and its link sits in a **PDF** property on the same Notion item.

## What you need

- **A Notion database** with the fields you want on the document (client, amount, date and so on).
- **Zapier, Make or n8n**, connected to your Notion workspace. Share the database with the integration in Notion's **Connections** menu.
- **A design.** Pick the [invoice](https://html-pdf.com/templates/invoice), [proposal](https://html-pdf.com/templates/proposal) or [report](https://html-pdf.com/templates/report) template. The template is a web page design that we turn into a PDF, so you only swap in your fields.
- **An API key** from [html-pdf.com](https://html-pdf.com/login). New accounts get 100 free pages once, with no card.

## Step by step with Zapier

1. **Trigger.** Create a Zap with **Notion** and the event **Updated Properties in Data Source Item**. Notion now calls databases "data sources" in Zapier. Pick your database.
2. **Filter.** Add **Filter by Zapier** so the Zap continues only when Status is "Send".
3. **Make the PDF.** Add **Webhooks by Zapier → Custom Request**. Method `POST`, URL `https://html-pdf.com/v1/pdf`, headers `Authorization` (`Bearer hp_live_...`) and `Content-Type` (`application/json`).
4. **Data.** Paste the JSON below and map Notion properties into it.
5. **Save the result.** Add **Notion → Update Data Source Item** to write the `url` into a URL property, or **Google Drive → Upload File** to keep the PDF.

```json
{
  "html": "<h1>Invoice INV-031</h1><p>Client: Blue Harbor Inc</p><p>Total: 2,400 USD</p>",
  "format": "A4",
  "margin": "15mm",
  "filename": "INV-031.pdf",
  "response": "url"
}
```

The link lasts 24 hours, so upload the file somewhere permanent if you need it later. See the [Zapier guide](https://html-pdf.com/guides/zapier) for details.

## Step by step with Make

1. Add **Notion → Watch Data Source Items** and choose your database.
2. Add a **Filter** on the route for the status you want.
3. Add **HTTP → Make a request** with URL `https://html-pdf.com/v1/pdf`, method `POST`, an `Authorization` header and a JSON body. Set **Parse response** to Yes when you use `"response": "url"`.
4. Add **Notion → Update a Data Source Item** to write the PDF link back.

The [Make guide](https://html-pdf.com/guides/make) shows the HTTP module settings, and the [n8n guide](https://html-pdf.com/guides/n8n) covers the same flow with the **Notion Trigger** and **HTTP Request** nodes.

## Code path for developers

You can also read the item with the Notion API and render it yourself.

```js
import { Client } from "@notionhq/client";
const notion = new Client({ auth: process.env.NOTION_TOKEN });

const page = await notion.pages.retrieve({ page_id: pageId });
const p = page.properties;
const client = p.Client.title[0].plain_text;
const total = p.Total.number;

const r = await fetch("https://html-pdf.com/v1/pdf", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.HTML_PDF_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({ html: `<h1>Invoice</h1><p>${client}</p><p>Total ${total} USD</p>`, response: "url" }),
});
const { url } = await r.json();
```

Property names like `Client` and `Total` must match your database columns.

## Ask your AI agent

With the [html-pdf.com MCP server](https://html-pdf.com/pdf-mcp-server) and a Notion connector in Claude or ChatGPT, an agent can do this on request.

> Read the "Q3 Client Report" page in Notion and use html-pdf to turn it into a clean A4 PDF report with a cover page, our brand color #1F4FD8 and page numbers in the footer.

This is handy for one off documents. For every item, use the automation above. See the [Claude guide](https://html-pdf.com/guides/claude) and [ChatGPT guide](https://html-pdf.com/guides/chatgpt) for setup.

## Notion export or this?

Notion's built in **Export → PDF** is quick for a single page and keeps Notion's look. Use an automation when you want your own design, need it for every item, or want the PDF created without anyone clicking.

## FAQ

### Can I convert a Notion database to PDF for free?

Notion's export is free for single pages. For automatic, designed PDFs, html-pdf.com gives 100 free pages once, and Zapier, Make and n8n all have free tiers with limits.

### Can I include the page content, not just properties?

Yes. Properties come with the trigger. For the text blocks inside the page, add a step that fetches the page's block children and turn them into HTML.

### Can the PDF link go back into Notion?

Yes. Write the `url` into a URL property. Remember it expires after 24 hours, so upload the file to Drive or a Files property for a permanent copy.

### How much does it cost?

One credit per PDF page. After the free credits, packs start at $10 for 1,000 pages, and purchased credits never expire.
