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.