# Generate PDFs from Glide


## Documents from your Glide app

[Glide](https://www.glideapps.com/) turns a spreadsheet or a Glide table into an app, and sooner or later someone using that app needs **a document to keep**. You design that document once in PDFMonkey. Glide sends the values from the current row each time the action runs, and the link to the finished file lands back in your data.

It fits any document built from one record: a **certificate** when someone completes a course, a **quote or a receipt**, an **inspection report** filled in on a phone, a **booking confirmation**.

## Setting it up

1. Create your template in PDFMonkey, with the visual Builder or in code, and publish it.
2. In your Glide app, open **Settings**, go to **Integrations**, find **PDFMonkey** and add it with your API secret key.
3. Add the **Generate PDF file** action to a button, a form or a workflow. Give it your template ID and a filename, then map your columns to your template variables.
4. Point **File output** to a text column. That's where the download link appears once the document is ready.

The link is valid for **one hour**, so show it or send it right away rather than keeping it for later.

## What's in the integration

There's one action, **Generate PDF file**. It sends your values as simple key/value pairs, which covers names, dates, amounts and most single-record documents.

What it can't send is **a list**, like the rows of an invoice. That's on Glide's side, and we've asked them for it more than once. Until then there are workarounds: build the rows as a JSON string in Glide and parse it in the template, or route the generation through [Make](/integrations/make/) or [Zapier](/integrations/zapier/), which both handle line items.

Our [Glide guide](/docs/integrations/glide/) covers the action fields, those workarounds step by step, and what to check when a document comes out blank.

[Create a free PDFMonkey account](https://dashboard.pdfmonkey.io/register), publish a template and wire it to a button. If you get stuck, write to us. We're happy to help.

## FAQ

<div class="not-prose my-8 border-t border-taupe-900/20">
    <details class="group border-b border-taupe-900/20" open>
      <summary class="flex cursor-pointer list-none items-baseline gap-4 py-5 font-display text-xl/tight after:ml-auto after:shrink-0 after:font-mono after:text-2xl after:leading-none after:text-teal-800 after:content-['+'] group-open:after:content-['–'] hover:text-teal-800 [&::-webkit-details-marker]:hidden">
        <i class="shrink-0 font-mono text-xs font-semibold tracking-widest text-taupe-900/75 uppercase not-italic">Q1</i>Who makes the Glide integration?
      </summary>
      <div class="grid gap-3 pb-5.5 text-base/relaxed text-taupe-900/80 sm:pl-11 [&_a]:font-semibold [&_a]:underline [&_a]:decoration-pink-500 [&_a]:decoration-2 [&_a]:underline-offset-4 [&_code]:bg-teal-100 [&_code]:px-1"><p>Glide does. It&rsquo;s one of the integrations Glide ships in its app settings, so it&rsquo;s Glide that decides what the action can send. We handle the other end, the template and the document.</p>
      </div>
    </details>
    <details class="group border-b border-taupe-900/20" >
      <summary class="flex cursor-pointer list-none items-baseline gap-4 py-5 font-display text-xl/tight after:ml-auto after:shrink-0 after:font-mono after:text-2xl after:leading-none after:text-teal-800 after:content-['+'] group-open:after:content-['–'] hover:text-teal-800 [&::-webkit-details-marker]:hidden">
        <i class="shrink-0 font-mono text-xs font-semibold tracking-widest text-taupe-900/75 uppercase not-italic">Q2</i>Do I need a paid Glide plan?
      </summary>
      <div class="grid gap-3 pb-5.5 text-base/relaxed text-taupe-900/80 sm:pl-11 [&_a]:font-semibold [&_a]:underline [&_a]:decoration-pink-500 [&_a]:decoration-2 [&_a]:underline-offset-4 [&_code]:bg-teal-100 [&_code]:px-1"><p>Yes. Glide doesn&rsquo;t offer the integration on its free plans. On the PDFMonkey side, the Free plan is enough to get started.</p>
      </div>
    </details>
    <details class="group border-b border-taupe-900/20" >
      <summary class="flex cursor-pointer list-none items-baseline gap-4 py-5 font-display text-xl/tight after:ml-auto after:shrink-0 after:font-mono after:text-2xl after:leading-none after:text-teal-800 after:content-['+'] group-open:after:content-['–'] hover:text-teal-800 [&::-webkit-details-marker]:hidden">
        <i class="shrink-0 font-mono text-xs font-semibold tracking-widest text-taupe-900/75 uppercase not-italic">Q3</i>Does generating a document use Glide updates?
      </summary>
      <div class="grid gap-3 pb-5.5 text-base/relaxed text-taupe-900/80 sm:pl-11 [&_a]:font-semibold [&_a]:underline [&_a]:decoration-pink-500 [&_a]:decoration-2 [&_a]:underline-offset-4 [&_code]:bg-teal-100 [&_code]:px-1"><p>Yes. Each successful run of the Generate PDF file action uses Glide updates, and Glide shows how many when you set up the action. Failed runs don&rsquo;t count.</p>
      </div>
    </details>
    <details class="group border-b border-taupe-900/20" >
      <summary class="flex cursor-pointer list-none items-baseline gap-4 py-5 font-display text-xl/tight after:ml-auto after:shrink-0 after:font-mono after:text-2xl after:leading-none after:text-teal-800 after:content-['+'] group-open:after:content-['–'] hover:text-teal-800 [&::-webkit-details-marker]:hidden">
        <i class="shrink-0 font-mono text-xs font-semibold tracking-widest text-taupe-900/75 uppercase not-italic">Q4</i>Is there a free plan?
      </summary>
      <div class="grid gap-3 pb-5.5 text-base/relaxed text-taupe-900/80 sm:pl-11 [&_a]:font-semibold [&_a]:underline [&_a]:decoration-pink-500 [&_a]:decoration-2 [&_a]:underline-offset-4 [&_code]:bg-teal-100 [&_code]:px-1"><p>Yes. The Free plan includes 20 documents per month, forever, with no credit card required. Every new account also starts with a 30-day trial that includes 300 documents. Paid plans start at €5 per month with Starter (300 documents per month).</p>
      </div>
    </details>
    <details class="group border-b border-taupe-900/20" >
      <summary class="flex cursor-pointer list-none items-baseline gap-4 py-5 font-display text-xl/tight after:ml-auto after:shrink-0 after:font-mono after:text-2xl after:leading-none after:text-teal-800 after:content-['+'] group-open:after:content-['–'] hover:text-teal-800 [&::-webkit-details-marker]:hidden">
        <i class="shrink-0 font-mono text-xs font-semibold tracking-widest text-taupe-900/75 uppercase not-italic">Q5</i>Do I need to know HTML to design my template?
      </summary>
      <div class="grid gap-3 pb-5.5 text-base/relaxed text-taupe-900/80 sm:pl-11 [&_a]:font-semibold [&_a]:underline [&_a]:decoration-pink-500 [&_a]:decoration-2 [&_a]:underline-offset-4 [&_code]:bg-teal-100 [&_code]:px-1"><p>No. When you create a template, you pick one of two modes: the visual drag-and-drop Builder, or a Code template written in HTML, CSS and Liquid. A template uses one mode or the other, never both. Glide sends the same data in both cases.</p>
      </div>
    </details>
    <details class="group border-b border-taupe-900/20" >
      <summary class="flex cursor-pointer list-none items-baseline gap-4 py-5 font-display text-xl/tight after:ml-auto after:shrink-0 after:font-mono after:text-2xl after:leading-none after:text-teal-800 after:content-['+'] group-open:after:content-['–'] hover:text-teal-800 [&::-webkit-details-marker]:hidden">
        <i class="shrink-0 font-mono text-xs font-semibold tracking-widest text-taupe-900/75 uppercase not-italic">Q6</i>Where is my data hosted?
      </summary>
      <div class="grid gap-3 pb-5.5 text-base/relaxed text-taupe-900/80 sm:pl-11 [&_a]:font-semibold [&_a]:underline [&_a]:decoration-pink-500 [&_a]:decoration-2 [&_a]:underline-offset-4 [&_code]:bg-teal-100 [&_code]:px-1"><p>In the European Union. PDFMonkey&rsquo;s application servers, file storage and rendering engines run in Paris, France, and its database runs in Frankfurt, Germany. A GDPR Data Processing Agreement is available.</p>
      </div>
    </details>
</div>
<script type="application/ld+json">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","acceptedAnswer":{"@type":"Answer","text":"Glide does. It\u0026rsquo;s one of the integrations Glide ships in its app settings, so it\u0026rsquo;s Glide that decides what the action can send. We handle the other end, the template and the document."},"name":"Who makes the Glide integration?"},{"@type":"Question","acceptedAnswer":{"@type":"Answer","text":"Yes. Glide doesn\u0026rsquo;t offer the integration on its free plans. On the PDFMonkey side, the Free plan is enough to get started."},"name":"Do I need a paid Glide plan?"},{"@type":"Question","acceptedAnswer":{"@type":"Answer","text":"Yes. Each successful run of the Generate PDF file action uses Glide updates, and Glide shows how many when you set up the action. Failed runs don\u0026rsquo;t count."},"name":"Does generating a document use Glide updates?"},{"@type":"Question","acceptedAnswer":{"@type":"Answer","text":"Yes. The Free plan includes 20 documents per month, forever, with no credit card required. Every new account also starts with a 30-day trial that includes 300 documents. Paid plans start at €5 per month with Starter (300 documents per month)."},"name":"Is there a free plan?"},{"@type":"Question","acceptedAnswer":{"@type":"Answer","text":"No. When you create a template, you pick one of two modes: the visual drag-and-drop Builder, or a Code template written in HTML, CSS and Liquid. A template uses one mode or the other, never both. Glide sends the same data in both cases."},"name":"Do I need to know HTML to design my template?"},{"@type":"Question","acceptedAnswer":{"@type":"Answer","text":"In the European Union. PDFMonkey\u0026rsquo;s application servers, file storage and rendering engines run in Paris, France, and its database runs in Frankfurt, Germany. A GDPR Data Processing Agreement is available."},"name":"Where is my data hosted?"}]}</script>


## Other no-code integrations

PDFMonkey also works with [Zapier](/integrations/zapier/), [Make](/integrations/make/), [n8n](/integrations/n8n/) and [Bubble](/integrations/bubble/). If your data sits in a database or a spreadsheet, we have pages for [Airtable](/integrations/airtable/) and [Google Sheets](/integrations/google-sheets/) too.
