InTouch Hub · Blue Isle Software

PandaDoc

Generate, send, and track quotes and proposals via the PandaDoc REST API. Lists documents, reads document status/details, creates a document from a template, and sends a document for signature.

Provided free and as is, without warranty of any kind — including merchantability, fitness for a particular purpose, and the accuracy or completeness of any result. See the licence. You are responsible for checking what this produces before relying on it.

crm-salesdocumentemailmessagesignaturestatus

PandaDoc

Generate, send, and track quotes and proposals via the PandaDoc REST API.

This tool lists documents, reads a document's status/details, creates a document from a template, and sends a document for signature. It uses the Python standard library only (no requests), and every call returns the raw PandaDoc response body plus the HTTP status code.

Operations

operation method + path required inputs optional inputs
list_documents GET /documents — status, count, query
get_document GET /documents/{id} documentId —
create_document POST /documents name, templateUuid, recipientEmail recipientFirstName, recipientLastName, recipientRole
send_document POST /documents/{id}/send documentId subject, message, silent

Notes: - list_documents status is a PandaDoc status code (0–13); count defaults to 50, max 100; query searches by name or reference number. - A document must be in document.draft status before send_document will send it. create_document is asynchronous — poll get_document until the status leaves document.uploaded before sending. - silent: true on send_document suppresses recipient and sender email notifications.

API key setup

  1. Sign in to PandaDoc.
  2. Go to Settings → API & Integrations → API Key.
  3. Copy the Sandbox key for testing or the Production key for live use.
  4. Pass it as the apiKey input. The tool sends it as Authorization: API-Key <apiKey>.

The key is the only credential needed — there is no OAuth/JWT exchange for the API-key flow.

Output

Every operation prints a JSON envelope:

{ "status": "200", "result": "<raw PandaDoc JSON response as a string>" }

On a bad input or a transport failure (DNS, connection refused, timeout) the tool prints {"error": "<message>"} and exits non-zero so the job step fails. HTTP 4xx/5xx responses are NOT treated as transport failures — the PandaDoc error body is returned in result with its real status code so you can see exactly what PandaDoc rejected.

Examples

List the 10 most recently changed documents:

{
  "apiKey": "YOUR_KEY",
  "operation": "list_documents",
  "count": "10"
}

Search documents by name or reference number:

{
  "apiKey": "YOUR_KEY",
  "operation": "list_documents",
  "query": "Acme Q3 Proposal"
}

Get one document's status/details:

{
  "apiKey": "YOUR_KEY",
  "operation": "get_document",
  "documentId": "ABCdef123..."
}

Create a document from a template:

{
  "apiKey": "YOUR_KEY",
  "operation": "create_document",
  "name": "Acme Q3 Proposal",
  "templateUuid": "TEMPLATE_UUID",
  "recipientEmail": "[email protected]",
  "recipientFirstName": "Jordan",
  "recipientLastName": "Lee",
  "recipientRole": "signer"
}

Send a (draft) document for signature:

{
  "apiKey": "YOUR_KEY",
  "operation": "send_document",
  "documentId": "ABCdef123...",
  "subject": "Your proposal from Acme",
  "message": "Hi Jordan — please review and sign.",
  "silent": "false"
}

Publishes

The keys a later task may reference as {{taskName.key}}. Referencing anything not listed here resolves to nothing at run time.

Input Properties

Every property this tool accepts, from its own tool.iml.

Property Type Required Default Description
apiKey string yes — DEPRECATED — bind an API Key credential to the task with credentialName instead. A key pasted here is stored in the workflow definition in clear and appears in every export of it. Still honoured for workflows built before the change.
operation string yes — One of: list_documents, get_document, create_document, send_document
status string no — Filter list_documents by document status code (0-13). Ignored by other operations.
count string no — Max number of results for list_documents (PandaDoc 'count', default 50, max 100).
query string no — Search list_documents by name or reference number (PandaDoc 'q'). Ignored by other operations.
documentId string no — Document id (uuid). Required for get_document and send_document.
name string no — Document name for create_document.
templateUuid string no — Template uuid for create_document (the PandaDoc template the document is built from).
recipientEmail string no — Recipient email for create_document.
recipientFirstName string no — Recipient first name for create_document (optional).
recipientLastName string no — Recipient last name for create_document (optional).
recipientRole string no — Recipient role for create_document (matches a role defined in the template, e.g. 'signer').
subject string no — Email subject for send_document (optional).
message string no — Email message body for send_document (optional).
silent string no — If 'true', send_document suppresses recipient/sender email notifications. Default false.