Setu Recipes: reusable digital workers across every app.Browse templates

Integrations / PandaDoc

PandaDoc

Document automation and e-signature: templates, documents and sending for signature.

5 actions API key 3 read2 write Calls api.pandadoc.com

Connect

TypeScript
const conn = await setu.connections.initiate({ userId: "user_1", toolkit: "pandadoc" });
console.log(conn.connectUrl); // show this to your user
await conn.waitUntilActive();

Permissions requested

This toolkit uses a single credential and requests no scopes.

Actions

Create document from templatewritepandadoc.create_document_from_templateCreate a draft document from a template, filling recipients (by role), merge variables (tokens), fields and metadata. It is created as a draft; PandaDoc processes it asynchronously, so poll get_document until status is document.draft before sending.
InputTypeDescription
template_uuidstringRequiredTemplate id from list_templates
namestringOptionalDocument name
recipientsarray of objectRequiredRecipients: [{email, first_name, last_name, role}] where role matches a template role
tokensarray of objectOptionalTemplate variables: [{name, value}]
fieldsobjectOptionalField name to {value}, e.g. {"Delivery": {"value": "Same Day"}}
metadataobjectOptionalYour own key-value data stored on the document
tagsarray of stringOptionalTags
TypeScript
await setu.execute({
  userId: "user_1",
  action: "pandadoc.create_document_from_template",
  input: {
    "template_uuid": "<template_uuid>",
    "recipients": []
  },
});
Get documentreadpandadoc.get_documentGet a document's details: status, dates, recipients, total and template.
InputTypeDescription
idstringRequiredDocument id
TypeScript
await setu.execute({
  userId: "user_1",
  action: "pandadoc.get_document",
  input: {
    "id": "<id>"
  },
});
List documentsreadpandadoc.list_documentsList and search documents with id, name and status. Filter by name, status number (0 draft, 1 sent, 2 completed...), template or tag.
InputTypeDescription
qstringOptionalMatch on name or reference number
statusintegerOptional0 draft, 1 sent, 2 completed, 5 viewed, 6 waiting approval, 11 voided, 12 declined
template_idstringOptionalOnly documents made from this template
tagstringOptionalOnly documents with this tag
order_bystringOptionalSort field, prefix with - for descending, e.g. -date_created
countintegerOptionalResults per page (max 100, default 50)
pageintegerOptionalPage number
TypeScript
await setu.execute({
  userId: "user_1",
  action: "pandadoc.list_documents",
  input: {},
});
List templatesreadpandadoc.list_templatesList document templates with ids and names; search by name or tag.
InputTypeDescription
qstringOptionalMatch on template name
tagstringOptionalOnly templates with this tag
countintegerOptionalResults per page
pageintegerOptionalPage number
TypeScript
await setu.execute({
  userId: "user_1",
  action: "pandadoc.list_templates",
  input: {},
});
Send documentwritepandadoc.send_documentSend a draft document to its recipients by email for signature. This emails external people; the document must be in draft status. With a sandbox key, sending is limited.
InputTypeDescription
idstringRequiredDocument id
subjectstringOptionalEmail subject
messagestringOptionalEmail message with the signing link
silentbooleanOptionalSend no email notifications; recipients use a shared link instead
TypeScript
await setu.execute({
  userId: "user_1",
  action: "pandadoc.send_document",
  input: {
    "id": "<id>"
  },
});