> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pdfnoodle.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Zapier Integration

> Automate PDF generation workflows by connecting Zapier with pdf noodle

Integrate pdf noodle with [Zapier](https://zapier.com) to automate your PDF generation workflows. Connect to 5000+ apps and generate documents with zero code.

## Prerequisites

Before you begin, make sure you have:

* A pdf noodle account ([sign up here](https://app.pdfnoodle.com/auth/sign-up))
* Your API key from [API Settings](https://app.pdfnoodle.com/settings/api)
* At least one template created in pdf noodle
* A Zapier account ([sign up here](https://zapier.com))

***

## Setting Up the Integration

Zapier connects to pdf noodle using **Webhooks by Zapier** to call the API.

<Steps>
  <Step title="Create a New Zap">
    In Zapier, click **Create Zap** and choose your trigger app (e.g., Google Sheets, Typeform, Stripe).
  </Step>

  <Step title="Add Webhooks Action">
    For the action step, search for **Webhooks by Zapier** and select **POST**.
  </Step>

  <Step title="Configure the Webhook">
    Set up the webhook with these settings:

    | Setting          | Value                                   |
    | ---------------- | --------------------------------------- |
    | **URL**          | `https://api.pdfnoodle.com/v1/pdf/sync` |
    | **Payload Type** | `json`                                  |
    | **Data**         | See below                               |
  </Step>

  <Step title="Add Headers">
    In the **Headers** section, add:

    | Key             | Value                 |
    | --------------- | --------------------- |
    | `Authorization` | `Bearer YOUR_API_KEY` |
    | `Content-Type`  | `application/json`    |
  </Step>

  <Step title="Set the Data Fields">
    Add the following data fields:

    | Key          | Value                                                       |
    | ------------ | ----------------------------------------------------------- |
    | `templateId` | `your-template-id`                                          |
    | `data`       | `{"customerName": "{{customer_name}}", "total": {{total}}}` |

    Use Zapier's field picker to map data from your trigger.
  </Step>

  <Step title="Test the Zap">
    Click **Test action** to generate a test PDF. You should see a response with the PDF URL.
  </Step>
</Steps>

***

## Finding Your Template ID

1. Go to [app.pdfnoodle.com](https://app.pdfnoodle.com)
2. Navigate to the **Templates** section
3. Copy the Template ID shown in the list next to your template

***

## Example: Certificate on Course Completion

A typical Zap that generates a certificate when a student completes a course:

1. **Trigger** - Teachable "Course Completed"
2. **Webhooks** - Generate certificate PDF with pdf noodle
3. **Gmail** - Email the certificate to the student

***

## Working with the Response

The webhook returns a JSON response:

```json theme={null}
{
  "signedUrl": "https://pdforge-production.s3.us-east-2.amazonaws.com/...",
  "metadata": {
    "executionTime": "1.805 seconds",
    "fileSize": "4.066 kB"
  }
}
```

To use the PDF URL in subsequent steps:

1. Add another action after the webhook
2. Use the response field `signedUrl` from the webhook step

***

## Common Use Cases

| Trigger          | Action               | Result                |
| ---------------- | -------------------- | --------------------- |
| Stripe payment   | Generate invoice     | Email PDF to customer |
| Form submission  | Generate contract    | Save to Google Drive  |
| CRM deal closed  | Generate proposal    | Attach to record      |
| Course completed | Generate certificate | Email to student      |

***

## Error Handling

<AccordionGroup>
  <Accordion title="401 Unauthorized">
    * Verify your API key is correct
    * Check the Authorization header format: `Bearer YOUR_API_KEY`
  </Accordion>

  <Accordion title="400 Bad Request">
    * Ensure the `data` field is valid JSON
    * Check that all required template variables are included
    * Verify the template ID exists
  </Accordion>

  <Accordion title="Zap Turns Off">
    * Check your Zapier task limits
    * Review the error in Zap History
    * Verify your pdf noodle plan has available credits
  </Accordion>
</AccordionGroup>

***

## API Endpoints

| Endpoint                    | Description                               |
| --------------------------- | ----------------------------------------- |
| `POST /v1/pdf/sync`         | Generate PDF from template (synchronous)  |
| `POST /v1/pdf/async`        | Generate PDF from template (asynchronous) |
| `POST /v1/html-to-pdf/sync` | Convert HTML to PDF (synchronous)         |

<Info>
  See the complete [API Reference](/api-reference) for all endpoints and options.
</Info>

***

<Note>
  You can also generate PDFs using Webhooks by Zapier or any HTTP Request action by calling the pdf noodle API directly. See the [API Reference](/api-reference) for all available endpoints and options.
</Note>

## Resources

* [Zapier Integration Page](https://pdfnoodle.com/integrations/zapier) - pdf noodle + Zapier overview
* [Zapier Automation Guide](https://pdfnoodle.com/blog/how-to-automate-pdf-generation-with-zapier-and-pdforge) - Step-by-step tutorial
* [Zapier Help Center](https://help.zapier.com) - Official Zapier docs
* [pdf noodle API Reference](/api-reference) - Full API documentation
