# PandaDoc integration overview

> Create PandaDoc documents from templates, send them for signature, and track their status from Persona Workflows using a PandaDoc API key.

Source: https://help.withpersona.com/articles/cerA3ikE5vrrEHvd6bKBe3/
Section: Marketplace and 3rd-Party Integrations > Productivity > PandaDoc

## Overview

[PandaDoc](https://www.pandadoc.com/) is a document automation platform for building proposals, quotes, and contracts from reusable templates, sending them for electronic signature, and tracking each document from draft to completion.

Persona's PandaDoc integration lets a Workflow create a document from one of your PandaDoc templates, fill in its recipients and variables with Persona data, send it for signature, and check its status. For example, a Workflow can send an agreement to an individual once their identity has been verified.

## Integration features

The PandaDoc integration supports these Workflow actions:

- **List templates:** List the templates in your PandaDoc workspace.
- **List documents:** List documents, filtered by status, template, tag, or creation date.
- **Create document from template:** Create a document from a template, with recipients, variables, and field values.
- **Get document status:** Return a document's current status.
- **Send document:** Send a draft document to its recipients by email.

## Prerequisites

Before configuring the integration, you need:

- A PandaDoc account on a plan with API access. PandaDoc offers sandbox API keys on its free trial and on the PandaDoc Business and Enterprise tiers; production keys need approval from PandaDoc.
- At least one template in your PandaDoc workspace, with at least one **role** (for example `Client`) and a signature field assigned to that role. Templates from PandaDoc's public gallery cannot be used until they are saved in your workspace.

API keys belong to the PandaDoc user who creates them and inherit that user's permissions. If the user is removed from the workspace, their keys stop working, so create the key as a long-lived user.

## Set up PandaDoc credentials

1. In PandaDoc, open **Settings > API and Integrations > API** and turn on **API and Webhooks**.
2. Open the **Dev Center** and go to **Configuration > API key**.
3. Create a sandbox key, or generate a production key if your plan has one, and copy it.
4. In the Persona Dashboard, go to **Integrations > Marketplace** and select **PandaDoc**.
5. Click **Add Credential**, enter a nickname for the credential, and paste the API key.
6. Save the credential.

Paste only the key itself. Persona adds the `API-Key` prefix that PandaDoc expects, so do not type it yourself.

## Use PandaDoc in a Workflow

1. Create a Workflow, or open the Workflow you want to update.
2. Add an **Action** step and select **Integrations**.
3. Select **PandaDoc**, choose the saved credential, and select an action.
4. Map Persona data to the action's input fields.
5. Save and publish the Workflow.

## How a PandaDoc document moves through a Workflow

PandaDoc builds a new document asynchronously, so a document cannot be sent the moment it is created. A Workflow that creates and sends a document follows this order:

1. **Create document from template.** The document starts in the `document.uploaded` status.
2. **Get document status** until the status is `document.draft`. This usually takes a few seconds. `document.error` means creation failed; check the template ID, role names, and field names.
3. **Send document.** The status moves to `document.sent`, and each recipient receives an email with their own signing link.
4. **Get document status** again to follow progress. The status moves to `document.viewed` when a recipient opens the document and `document.completed` once everyone has signed.

If your PandaDoc workspace requires approval before sending, Send document moves the document to `document.waiting_approval` and nothing is emailed. Once an approver approves it in PandaDoc, the status is `document.approved`, and you call Send document again to send it.

## PandaDoc actions

### List templates

Returns the templates in your workspace, most recently modified first. Use a template's ID as the **Template ID** when creating a document.

**Optional fields:** Search, Tags, Shared Only, Deleted Only, Page Size, Page.

### List documents

Returns documents in your workspace. Use it to find a **Document ID**.

**Optional fields:** Search, Status, Template ID, Tag, Created From, Created To, Deleted Only, Sort By, Page Size, Page.

### Create document from template

Creates a document from a template, assigning recipients to the template's roles.

**Required fields:**

- **Template ID**
- **Recipients:** Each recipient needs an email address. Assign each one a **Role** from the template so they get that role's fields; role names are case-sensitive and must match the template exactly, so check them in the PandaDoc template editor. First Name, Last Name, and Signing Order are optional.

**Optional fields:**

- **Document Name**
- **Variables:** Values for the template's variables, named without brackets, for example `Client.Company` for `[Client.Company]`.
- **Fields**, **Metadata**, and **Tags**

### Get document status

Returns a document's current status.

**Required fields:** Document ID.

### Send document

Sends a draft document to its recipients by email and finalizes its content. The document must be in the `document.draft` status.

**Required fields:** Document ID.

**Optional fields:** Email Subject, Email Message, Send Silently, Sender.

## FAQs

### Why does Send document return a 409 error?

The document is not in the `document.draft` status yet. Use Get document status until it reaches `document.draft`, then send it.

### Why is sending rejected with a sandbox key?

With a sandbox key, PandaDoc only sends to recipients on the same email domain as your PandaDoc account and rejects other addresses with `403`. Documents created with a sandbox key also get a `[DEV]` prefix on their name. Use a production key for real recipients.

### Does PandaDoc limit API requests?

Yes. Sandbox keys are limited to 10 requests per minute per endpoint. Production limits are per user over a 60-second window: 500 per minute for creating documents, 400 per minute for sending, and 2,000 per minute for listing and status checks. PandaDoc returns HTTP `429` above a limit.

## Plans Explained

### PandaDoc Integration by plan

|                      | Startup Program | Essential Plan | Growth Plan | Enterprise Plan |
| -------------------- | --------------- | -------------- | ----------- | --------------- |
| PandaDoc Integration | Not Available   | Not Available  | Limited     | Available       |

[Learn more about pricing and plans](https://withpersona.com/pricing?utm_source=product&utm_medium=referral&utm_audience=a&utm_campaign=cm_gen_ds_hc-plan-table).
