# Turn every Typeform response into a PDF

Typeform to PDF, automatically. Turn each response into a branded PDF summary, quote or certificate with Zapier, n8n or a webhook, then email it.

**Quick answer.** When someone finishes your Typeform, Zapier or n8n receives the answers. The answers go into a template, html-pdf.com turns it into a PDF, and the PDF is emailed to the respondent, your team or a Google Drive folder.

## What you'll build

Each submission becomes a tidy, branded document. A client intake form becomes a one page brief for your team. A quote request becomes a price estimate the customer gets right away. A quiz becomes a results PDF with their score.

The PDF looks like your company made it by hand, with your logo and colors, but nobody has to copy and paste anything.

## What you need

- **A Typeform account** with a live form.
- **Zapier** (with Webhooks by Zapier) or **n8n**.
- **A design.** The [report template](https://html-pdf.com/templates/report) works well for summaries and the [proposal template](https://html-pdf.com/templates/proposal) for quotes. The template is a web page design that we turn into a PDF, so you only change the words.
- **An API key** from [html-pdf.com](https://html-pdf.com/login). You get 100 free pages once, without a card.

## Step by step with Zapier

1. **Trigger.** Create a Zap with **Typeform** as the app and **New Entry** as the event. Pick your form and load a test response.
2. **Make the PDF.** Add **Webhooks by Zapier → Custom Request**. Method `POST`, URL `https://html-pdf.com/v1/pdf`.
3. **Headers.** `Authorization` with `Bearer hp_live_...` and `Content-Type` with `application/json`.
4. **Data.** Paste the JSON below. Replace each sample answer with the matching Typeform field from the dropdown.
5. **Deliver.** Add **Gmail → Send Email** and map the `url` from the Custom Request into **Attachments**. Or use **Google Drive → Upload File** to keep a copy.

```json
{
  "html": "<h1>Project brief</h1><p><b>Company:</b> Acme Ltd</p><p><b>Budget:</b> 5,000 to 10,000 USD</p><p><b>Goals:</b> New website by March</p>",
  "format": "A4",
  "margin": "18mm",
  "filename": "project-brief.pdf",
  "response": "url"
}
```

The `url` in the response is a download link that works for 24 hours. The [Zapier guide](https://html-pdf.com/guides/zapier) explains every field.

**Tip.** If an answer can contain quotes or line breaks, run it through a **Formatter** step first, or build the HTML in a **Code by Zapier** step, so the JSON stays valid.

## Step by step with n8n

1. Add a **Typeform Trigger** node and select your form. n8n registers the webhook for you.
2. Add a **Code** node that turns the answers into HTML. Loop over the answers to list every question and reply.
3. Add an **HTTP Request** node with method `POST`, URL `https://html-pdf.com/v1/pdf`, an `Authorization` header and a JSON body with your `html`.
4. Add **Gmail** or **Google Drive** to send or save the file.

Exact node settings are in the [n8n guide](https://html-pdf.com/guides/n8n). The [Make guide](https://html-pdf.com/guides/make) covers the same flow in Make.

## Code path for developers

Typeform can post each response to your own webhook (in the form, open **Connect → Webhooks**).

```js
app.post("/typeform", express.json(), async (req, res) => {
  const { definition, answers } = req.body.form_response;
  const titles = Object.fromEntries(definition.fields.map(f => [f.id, f.title]));

  const rows = answers.map(a => {
    const value = a.text ?? a.email ?? a.number ?? a.choice?.label ?? a.boolean ?? "";
    return `<tr><th>${titles[a.field.id]}</th><td>${value}</td></tr>`;
  }).join("");

  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>${definition.title}</h1><table>${rows}</table>`, response: "url" }),
  });
  const { url } = await r.json();
  // Email or store the link.
  res.sendStatus(200);
});
```

Escape answers before inserting them into HTML, and verify the `Typeform-Signature` header if you set a secret.

## Ask your AI agent

With the [html-pdf.com MCP server](https://html-pdf.com/pdf-mcp-server) connected to [Claude](https://html-pdf.com/guides/claude) or [ChatGPT](https://html-pdf.com/guides/chatgpt), paste a sample response and ask for a design.

> Here is a Typeform response from a new client. Use html-pdf to turn it into a one page A4 project brief with our logo text "Brightside Studio", a summary box at the top and the full answers below.

Happy with it? Ask for the HTML and reuse it in your automation.

## FAQ

### Can Typeform export a response as a PDF on its own?

Typeform lets you view and download responses, but it does not create a designed PDF for each submission automatically. This setup adds that.

### Will long answers break the layout?

No. Text wraps and the PDF grows to more pages when needed. Each page costs one credit.

### Can I send the PDF to the respondent?

Yes. Add an email question to your form and map that answer into the **To** field of the email step.

### Is the response data stored by html-pdf.com?

No. HTML is not stored, and download links expire after 24 hours.
