# PandaDoc on boxd

> PandaDoc offers document creation, e-signatures, and workflow automation, helping sales teams and businesses streamline proposals, contracts, and agreement processes.

- Page: https://boxd.sh/integrations/pandadoc/
- CLI: `run pandadoc` (14 commands, 12 marked common)
- SDK: `import { pandadoc } from "@boxd/run"`; every parameter and response type is at `@boxd/run/pandadoc`
- Triggers: none
- Connect: `run auth pandadoc` (API key), or https://app.boxd.sh/integrations/detail/pandadoc
- All integrations: https://boxd.sh/integrations/ (Markdown: https://boxd.sh/integrations/index.md)

## From the shell

```sh
run auth pandadoc      # once: prints a link to connect your account
run pandadoc           # list its commands
run pandadoc list-contacts
```

Parameters are flags (`--flag value`); object and array parameters take a JSON string. Output is YAML, or JSON with `--json`. Calls use your own connection; `--scope <name>` uses a connection shared with your team.

## From a script

```ts
import { every, pandadoc } from "@boxd/run";

every("1 hour", async () => {
  const result = await pandadoc.listContacts({});
  console.log(result);
});
```

Run it with `run pandadoc.run.ts`. PandaDoc has no triggers; `every()` polls on a schedule, keeps the script running as a job, and wakes the machine when it is due.

## Commands

Required flags are listed; `run pandadoc <command> --help` lists the optional ones. "common" marks what `run pandadoc` shows without `--all`.

| Command | SDK method | Required flags | Optional | Description |
|---|---|---|---|---|
| `create-document-attachment` ·common | `pandadoc.createDocumentAttachment()` | `--document-id` `--file` | 0 | Creates and adds an attachment to a PandaDoc document |
| `create-document-from-file` ·common | `pandadoc.createDocumentFromFile()` | `--name` `--recipients` | 5 | Creates a new document in PandaDoc by uploading a file (PDF, DOCX, or RTF) |
| `create-folder` ·common | `pandadoc.createFolder()` | `--name` | 1 | Creates a new folder in PandaDoc to organize documents |
| `create-or-update-contact` | `pandadoc.createOrUpdateContact()` | `--email` | 10 | This tool creates a new contact or updates an existing one in PandaDoc based on the email address |
| `create-template` ·common | `pandadoc.createTemplate()` | `--name` | 4 | This tool allows users to create a new template in PandaDoc from a PDF file or from scratch |
| `create-webhook` ·common | `pandadoc.createWebhook()` | `--name` `--triggers` `--url` | 2 | Creates a new webhook subscription in PandaDoc to receive notifications about specific events |
| `delete-contact` ·common | `pandadoc.deleteContact()` | `--contact-id` | 0 | This tool allows you to delete a contact from your PandaDoc account |
| `delete-template` ·common | `pandadoc.deleteTemplate()` | `--template-id` | 0 | This tool deletes a specific template from PandaDoc |
| `get-document-details` ·common | `pandadoc.getDocumentDetails()` | `--id` | 0 | Fetch detailed metadata for a specific PandaDoc document including recipients, fields/tokens values, pricing data, metadata, tags, and content-block names |
| `get-template-details` | `pandadoc.getTemplateDetails()` | `--template-id` | 0 | This tool retrieves detailed information about a specific template by its ID |
| `list-contacts` ·common | `pandadoc.listContacts()` | — | 1 | List all contacts in your PandaDoc workspace |
| `list-document-folders` ·common | `pandadoc.listDocumentFolders()` | — | 3 | This tool retrieves a list of all document folders in PandaDoc |
| `list-templates` ·common | `pandadoc.listTemplates()` | — | 9 | This tool retrieves a list of all templates available in the PandaDoc account |
| `move-document-to-folder` ·common | `pandadoc.moveDocumentToFolder()` | `--document-id` `--folder-id` | 0 | This tool allows users to move a document to a specific folder within their PandaDoc account |

## Docs

- [run CLI](https://docs.boxd.sh/cli/run): Call connected integrations from the shell, connect new ones, and run automations.
- [Quickstart](https://docs.boxd.sh/guides/integrations/quickstart): Connect an integration, call it from the shell, and turn a script into an automation.
- [Connections](https://docs.boxd.sh/guides/integrations/connections): Connect an account once, for yourself or for your whole organization.
- [Scripts](https://docs.boxd.sh/guides/automations/scripts): Typed integrations, triggers, schedules and state in a .run.ts file.
- [Jobs](https://docs.boxd.sh/guides/automations/jobs): How a script becomes a background job: states, retries, sleep and wake.
- [Beyond the catalog](https://docs.boxd.sh/guides/automations/beyond-the-catalog): Reach your own APIs, databases and cloud accounts from a script.
